]> git.ipfire.org Git - thirdparty/bash.git/commitdiff
commit bash-20080410 snapshot
authorChet Ramey <chet.ramey@case.edu>
Wed, 7 Dec 2011 14:21:48 +0000 (09:21 -0500)
committerChet Ramey <chet.ramey@case.edu>
Wed, 7 Dec 2011 14:21:48 +0000 (09:21 -0500)
220 files changed:
AUTHORS
AUTHORS~ [new file with mode: 0644]
CWRU/CWRU.chlog
CWRU/CWRU.chlog~
MANIFEST
MANIFEST~
Makefile.in
Makefile.in~
arrayfunc.c
arrayfunc.c~
arrayfunc.h
arrayfunc.h~ [new file with mode: 0644]
bashhist.c
bashhist.c~ [new file with mode: 0644]
bashhist.h
bashline.c
bashline.c.save1
bashline.c.save2
bashline.c.save3 [new file with mode: 0644]
bashline.c.save4 [new file with mode: 0644]
bashline.c.save5 [new file with mode: 0644]
bashline.c~
builtins.h~
builtins/Makefile.in
builtins/Makefile.in~
builtins/alias.def
builtins/alias.def~
builtins/bind.def
builtins/bind.def~
builtins/break.def
builtins/break.def~
builtins/builtin.def
builtins/builtin.def~
builtins/caller.def
builtins/caller.def~
builtins/cd.def
builtins/cd.def~
builtins/colon.def
builtins/colon.def~
builtins/command.def
builtins/command.def~
builtins/complete.def
builtins/complete.def~
builtins/declare.def
builtins/declare.def~
builtins/echo.def
builtins/echo.def~
builtins/enable.def
builtins/enable.def~
builtins/eval.def
builtins/eval.def~
builtins/evalstring.c
builtins/evalstring.c~ [new file with mode: 0644]
builtins/exec.def
builtins/exec.def~
builtins/exit.def
builtins/exit.def~
builtins/fc.def
builtins/fc.def~
builtins/fg_bg.def
builtins/fg_bg.def~
builtins/getopts.def
builtins/getopts.def~ [new file with mode: 0644]
builtins/hash.def
builtins/hash.def~
builtins/help.def
builtins/help.def~
builtins/history.def
builtins/history.def~
builtins/inlib.def
builtins/inlib.def~
builtins/jobs.def
builtins/jobs.def~
builtins/kill.def
builtins/kill.def~
builtins/let.def
builtins/let.def~
builtins/mapfile.def [new file with mode: 0644]
builtins/printf.def
builtins/printf.def~
builtins/pushd.def
builtins/pushd.def~
builtins/read.def
builtins/read.def~
builtins/reserved.def
builtins/reserved.def~
builtins/return.def
builtins/return.def~
builtins/set.def
builtins/set.def~
builtins/setattr.def
builtins/setattr.def~
builtins/shift.def
builtins/shift.def~
builtins/shopt.def
builtins/shopt.def~
builtins/source.def
builtins/source.def~
builtins/suspend.def
builtins/suspend.def~
builtins/test.def
builtins/test.def~
builtins/times.def
builtins/times.def~
builtins/trap.def
builtins/trap.def~
builtins/type.def
builtins/type.def~
builtins/ulimit.def
builtins/ulimit.def~
builtins/umask.def
builtins/umask.def~
builtins/wait.def
builtins/wait.def~
doc/bash.0
doc/bash.1
doc/bash.1~
doc/bash.html
doc/bash.pdf
doc/bash.ps
doc/bashref.aux
doc/bashref.bt
doc/bashref.bts
doc/bashref.dvi
doc/bashref.html
doc/bashref.info
doc/bashref.log
doc/bashref.pdf
doc/bashref.ps
doc/bashref.texi
doc/bashref.texi~
doc/bashref.toc
doc/bashref.vr
doc/bashref.vrs
doc/builtins.0
doc/builtins.ps
doc/rbash.ps
doc/version.texi
doc/version.texi~
error.c
error.c~
examples/loadables/basename.c
examples/loadables/basename.c~
examples/loadables/cat.c
examples/loadables/cat.c~ [new file with mode: 0644]
examples/loadables/cut.c
examples/loadables/cut.c~
examples/loadables/dirname.c
examples/loadables/dirname.c~
examples/loadables/finfo.c
examples/loadables/finfo.c~
examples/loadables/getconf.c
examples/loadables/getconf.c~ [new file with mode: 0644]
examples/loadables/head.c
examples/loadables/head.c~
examples/loadables/hello.c
examples/loadables/hello.c~ [new file with mode: 0644]
examples/loadables/id.c
examples/loadables/id.c~ [new file with mode: 0644]
examples/loadables/ln.c
examples/loadables/ln.c~
examples/loadables/logname.c
examples/loadables/logname.c~
examples/loadables/mkdir.c
examples/loadables/mkdir.c~
examples/loadables/mypid.c
examples/loadables/mypid.c~ [new file with mode: 0644]
examples/loadables/necho.c
examples/loadables/necho.c~ [new file with mode: 0644]
examples/loadables/pathchk.c
examples/loadables/pathchk.c~
examples/loadables/print.c
examples/loadables/print.c~
examples/loadables/printenv.c
examples/loadables/printenv.c~
examples/loadables/push.c
examples/loadables/push.c~
examples/loadables/realpath.c
examples/loadables/realpath.c~
examples/loadables/rmdir.c
examples/loadables/rmdir.c~
examples/loadables/sleep.c
examples/loadables/sleep.c~
examples/loadables/sprintf.c
examples/loadables/sprintf.c~ [new file with mode: 0644]
examples/loadables/strftime.c
examples/loadables/strftime.c~ [new file with mode: 0644]
examples/loadables/sync.c
examples/loadables/sync.c~ [new file with mode: 0644]
examples/loadables/tee.c
examples/loadables/tee.c~
examples/loadables/template.c
examples/loadables/template.c~ [new file with mode: 0644]
examples/loadables/truefalse.c
examples/loadables/truefalse.c~
examples/loadables/tty.c
examples/loadables/tty.c~
examples/loadables/uname.c
examples/loadables/uname.c~
examples/loadables/unlink.c
examples/loadables/unlink.c~
examples/loadables/whoami.c
examples/loadables/whoami.c~
examples/loadables/xtitle.c
examples/loadables/xtitle.c~ [new file with mode: 0644]
flags.c
lib/readline/doc/rluser.texi
make_cmd.c
make_cmd.c~
parse.y
parse.y~
print_cmd.c
print_cmd.c~
tests/RUN-ONE-TEST
tests/mapfile.data [new file with mode: 0644]
tests/mapfile.right [new file with mode: 0644]
tests/mapfile.tests [new file with mode: 0644]
tests/run-mapfile [new file with mode: 0644]
variables.c
version.c

diff --git a/AUTHORS b/AUTHORS
index a44e906e4420fad50defd684e8ff8ce41c1c0278..15914b848abfe1e77228ca49637f5f42f756fb75 100644 (file)
--- a/AUTHORS
+++ b/AUTHORS
@@ -125,6 +125,7 @@ builtins/let.def    Chet Ramey, Brian Fox
 builtins/history.def   Brian Fox, Chet Ramey
 builtins/jobs.def      Brian Fox, Chet Ramey
 builtins/kill.def      Brian Fox, Chet Ramey
+builtins/mapfile.def   Rocky Bernstein
 builtins/mkbuiltins.c  Brian Fox, Chet Ramey
 builtins/pushd.def     Brian Fox, Chet Ramey
 builtins/read.def      Brian Fox, Chet Ramey
diff --git a/AUTHORS~ b/AUTHORS~
new file mode 100644 (file)
index 0000000..a44e906
--- /dev/null
+++ b/AUTHORS~
@@ -0,0 +1,458 @@
+#
+# Master author manifest for bash
+#
+# The files in lib/intl were taken from the GNU gettext distribution.
+#
+# Any files appearing in the bash distribution not listed in this file
+# were created by Chet Ramey.
+#
+# Filename     authors (first is original author)
+#
+README         Brian Fox, Chet Ramey
+INSTALL                Brian Fox, Chet Ramey
+COPYING                Brian Fox, Chet Ramey
+MANIFEST       Brian Fox, Chet Ramey
+configure      Chet Ramey
+Makefile.in    Brian Fox, Chet Ramey
+configure.in   Chet Ramey
+aclocal.m4     Chet Ramey
+config.h.top   Chet Ramey
+config.h.bot   Chet Ramey
+config.h.in    Chet Ramey
+array.c                Chet Ramey
+print_cmd.c    Brian Fox, Chet Ramey
+general.c      Brian Fox, Chet Ramey
+variables.c    Brian Fox, Chet Ramey
+make_cmd.c     Brian Fox, Chet Ramey
+copy_cmd.c     Brian Fox, Chet Ramey
+unwind_prot.c  Brian Fox, Chet Ramey
+dispose_cmd.c  Brian Fox, Chet Ramey
+getcwd.c       Roland McGrath, Brian Fox, Chet Ramey
+bashhist.c     Chet Ramey
+hash.c         Brian Fox, Chet Ramey
+parse.y                Brian Fox, Chet Ramey
+subst.c                Brian Fox, Chet Ramey
+shell.c                Brian Fox, Chet Ramey
+sig.c          Chet Ramey
+trap.c         Brian Fox, Chet Ramey
+siglist.c      Brian Fox, Chet Ramey
+version.c      Brian Fox, Chet Ramey
+flags.c                Brian Fox, Chet Ramey
+jobs.c         Brian Fox, Chet Ramey
+input.c                Chet Ramey
+mailcheck.c    Brian Fox, Chet Ramey
+pathexp.c      Chet Ramey
+test.c         Brian Fox, Chet Ramey
+expr.c         Chet Ramey, Brian Fox
+alias.c                Brian Fox, Chet Ramey
+execute_cmd.c  Brian Fox, Chet Ramey
+bashline.c     Brian Fox, Chet Ramey
+braces.c       Brian Fox, Chet Ramey
+bracecomp.c    Brian Fox, Chet Ramey, Tom Tromey
+nojobs.c       Brian Fox, Chet Ramey
+vprint.c       Chet Ramey
+oslib.c                Chet Ramey
+error.c                Brian Fox, Chet Ramey
+xmalloc.c      Brian Fox, Chet Ramey
+alias.h                Brian Fox, Chet Ramey
+array.h                Chet Ramey
+builtins.h     Brian Fox, Chet Ramey
+parser.h       Brian Fox, Chet Ramey
+variables.h    Brian Fox, Chet Ramey
+machines.h     Brian Fox, Chet Ramey
+jobs.h         Brian Fox, Chet Ramey
+maxpath.h      Brian Fox, Chet Ramey
+pathexp.h      Chet Ramey
+mailcheck.h    Chet Ramey
+filecntl.h     Brian Fox, Chet Ramey
+hash.h         Brian Fox, Chet Ramey
+quit.h         Brian Fox, Chet Ramey
+flags.h                Brian Fox, Chet Ramey
+shell.h                Brian Fox, Chet Ramey
+bashjmp.h      Chet Ramey
+sig.h          Chet Ramey
+trap.h         Brian Fox, Chet Ramey
+general.h      Brian Fox, Chet Ramey
+unwind_prot.h  Brian Fox, Chet Ramey
+input.h                Brian Fox, Chet Ramey
+error.h                Brian Fox, Chet Ramey
+command.h      Brian Fox, Chet Ramey
+externs.h      Chet Ramey
+siglist.h      Chet Ramey
+subst.h                Brian Fox, Chet Ramey
+dispose_cmd.h  Brian Fox, Chet Ramey
+bashansi.h     Brian Fox, Chet Ramey
+make_cmd.h     Brian Fox, Chet Ramey
+bashhist.h     Chet Ramey
+bashline.h     Chet Ramey
+execute_cmd.h  Chet Ramey
+bashtypes.h    Chet Ramey
+bashtty.h      Chet Ramey
+pathnames.h    Chet Ramey
+y.tab.c                Brian Fox, Chet Ramey
+y.tab.h                Brian Fox, Chet Ramey
+parser-built   Brian Fox, Chet Ramey
+posixstat.h    Brian Fox, Chet Ramey
+stdc.h         Chet Ramey
+ansi_stdlib.h  Brian Fox, Chet Ramey
+memalloc.h     Chet Ramey
+builtins/ChangeLog     Brian Fox, Chet Ramey
+builtins/Makefile.in   Brian Fox, Chet Ramey
+builtins/alias.def     Brian Fox, Chet Ramey
+builtins/bind.def      Brian Fox, Chet Ramey
+builtins/break.def     Brian Fox, Chet Ramey
+builtins/builtin.def   Brian Fox, Chet Ramey
+builtins/caller.def    Rocky Bernstein, Chet Ramey
+builtins/cd.def                Brian Fox, Chet Ramey
+builtins/colon.def     Brian Fox, Chet Ramey
+builtins/command.def   Brian Fox, Chet Ramey
+builtins/common.c      Brian Fox, Chet Ramey
+builtins/declare.def   Brian Fox, Chet Ramey
+builtins/echo.def      Brian Fox, Chet Ramey
+builtins/enable.def    Brian Fox, Chet Ramey
+builtins/eval.def      Brian Fox, Chet Ramey
+builtins/exec.def      Brian Fox, Chet Ramey
+builtins/exit.def      Brian Fox, Chet Ramey
+builtins/fc.def                Brian Fox, Chet Ramey
+builtins/fg_bg.def     Brian Fox, Chet Ramey
+builtins/getopt.c      Roland McGrath, Brian Fox, Chet Ramey
+builtins/getopt.h      Roland McGrath, Brian Fox, Chet Ramey
+builtins/getopts.def   Brian Fox, Chet Ramey
+builtins/hash.def      Brian Fox, Chet Ramey
+builtins/hashcom.h     Brian Fox, Chet Ramey
+builtins/help.def      Brian Fox, Chet Ramey
+builtins/let.def       Chet Ramey, Brian Fox
+builtins/history.def   Brian Fox, Chet Ramey
+builtins/jobs.def      Brian Fox, Chet Ramey
+builtins/kill.def      Brian Fox, Chet Ramey
+builtins/mkbuiltins.c  Brian Fox, Chet Ramey
+builtins/pushd.def     Brian Fox, Chet Ramey
+builtins/read.def      Brian Fox, Chet Ramey
+builtins/reserved.def  Brian Fox, Chet Ramey
+builtins/return.def    Brian Fox, Chet Ramey
+builtins/set.def       Brian Fox, Chet Ramey
+builtins/setattr.def   Brian Fox, Chet Ramey
+builtins/shift.def     Brian Fox, Chet Ramey
+builtins/shopt.def     Chet Ramey
+builtins/source.def    Brian Fox, Chet Ramey
+builtins/suspend.def   Brian Fox, Chet Ramey
+builtins/test.def      Brian Fox, Chet Ramey
+builtins/times.def     Brian Fox, Chet Ramey
+builtins/trap.def      Brian Fox, Chet Ramey
+builtins/type.def      Brian Fox, Chet Ramey
+builtins/ulimit.def    Chet Ramey, Brian Fox
+builtins/umask.def     Brian Fox, Chet Ramey
+builtins/wait.def      Brian Fox, Chet Ramey
+builtins/psize.c       Chet Ramey, Brian Fox
+builtins/psize.sh      Chet Ramey, Brian Fox
+builtins/inlib.def     Chet Ramey
+builtins/bashgetopt.c  Chet Ramey
+builtins/common.h      Chet Ramey
+builtins/bashgetopt.h  Chet Ramey
+lib/doc-support/texindex.c     bug-texinfo@prep.ai.mit.edu, Chet Ramey
+lib/doc-support/Makefile.in    Chet Ramey
+lib/doc-support/getopt.h       Roland McGrath
+lib/doc-support/getopt.c       Roland McGrath
+lib/doc-support/getopt1.c      Roland McGrath
+lib/glob/ChangeLog     Brian Fox, Chet Ramey
+lib/glob/Makefile.in   Brian Fox, Chet Ramey
+lib/glob/strmatch.c    Roland McGrath, Brian Fox, Chet Ramey
+lib/glob/strmatch.h    Roland McGrath, Brian Fox, Chet Ramey
+lib/glob/glob.c                Richard Stallman, Roland McGrath, Brian Fox, Chet Ramey
+lib/glob/glob.h                Chet Ramey
+lib/glob/ndir.h                Doug Gwyn, Richard Stallman
+lib/glob/doc/Makefile.in       Brian Fox, Chet Ramey
+lib/glob/doc/glob.texi Brian Fox, Chet Ramey
+lib/malloc/Makefile.in Chet Ramey
+lib/malloc/alloca.c    Doug Gwyn, Richard Stallman, Brian Fox, Chet Ramey
+lib/malloc/getpagesize.h       Brian Fox, Chet Ramey
+lib/malloc/malloc.c    Chris Kingsley, Mike Muuss, Richard Stallman, Brian Fox, Chet Ramey
+lib/malloc/gmalloc.c   Mike Haertel, Roland McGrath
+lib/malloc/stub.c      Chet Ramey
+lib/malloc/i386-alloca.s       Richard Stallman
+lib/malloc/x386-alloca.s       Chip Salzenberg, Richard Stallman
+lib/malloc/xmalloc.c   Brian Fox, Chet Ramey
+lib/posixheaders/posixstat.h   Brian Fox, Chet Ramey
+lib/posixheaders/ansi_stdlib.h Brian Fox, Chet Ramey
+lib/posixheaders/stdc.h        Chet Ramey
+lib/posixheaders/memalloc.h    Chet Ramey
+lib/posixheaders/filecntl.h    Brian Fox, Chet Ramey
+lib/readline/Makefile.in       Brian Fox, Chet Ramey
+lib/readline/COPYING   Brian Fox, Chet Ramey
+lib/readline/ChangeLog Brian Fox, Chet Ramey
+lib/readline/readline.c        Brian Fox, Chet Ramey
+lib/readline/vi_mode.c Brian Fox, Chet Ramey
+lib/readline/emacs_keymap.c    Brian Fox, Chet Ramey
+lib/readline/vi_keymap.c       Brian Fox, Chet Ramey
+lib/readline/funmap.c  Brian Fox, Chet Ramey
+lib/readline/keymaps.c Brian Fox, Chet Ramey
+lib/readline/xmalloc.c Brian Fox, Chet Ramey
+lib/readline/search.c  Brian Fox, Chet Ramey
+lib/readline/isearch.c Brian Fox, Chet Ramey
+lib/readline/parens.c  Brian Fox, Chet Ramey
+lib/readline/rltty.c   Brian Fox, Chet Ramey
+lib/readline/complete.c        Brian Fox, Chet Ramey
+lib/readline/bind.c    Brian Fox, Chet Ramey
+lib/readline/display.c Brian Fox, Chet Ramey
+lib/readline/signals.c Brian Fox, Chet Ramey
+lib/readline/kill.c    Brian Fox, Chet Ramey
+lib/readline/undo.c    Brian Fox, Chet Ramey
+lib/readline/input.c   Brian Fox, Chet Ramey
+lib/readline/macro.c   Brian Fox, Chet Ramey
+lib/readline/util.c    Brian Fox, Chet Ramey
+lib/readline/callback.c        Chet Ramey
+lib/readline/readline.h        Brian Fox, Chet Ramey
+lib/readline/chardefs.h        Brian Fox, Chet Ramey
+lib/readline/keymaps.h Brian Fox, Chet Ramey
+lib/readline/rldefs.h  Brian Fox, Chet Ramey
+lib/readline/posixstat.h       Brian Fox, Chet Ramey
+lib/readline/ansi_stdlib.h     Brian Fox, Chet Ramey
+lib/readline/memalloc.h        Chet Ramey
+lib/readline/rlconf.h  Chet Ramey
+lib/readline/rltty.h   Chet Ramey
+lib/readline/history.c Brian Fox, Chet Ramey
+lib/readline/histexpand.c      Brian Fox, Chet Ramey
+lib/readline/histfile.c        Brian Fox, Chet Ramey
+lib/readline/histsearch.c      Brian Fox, Chet Ramey
+lib/readline/history.h Brian Fox, Chet Ramey
+lib/readline/histlib.h Brian Fox, Chet Ramey
+lib/readline/tilde.c   Brian Fox, Chet Ramey
+lib/readline/tilde.h   Brian Fox, Chet Ramey
+lib/readline/doc/texindex.c    bug-texinfo@prep.ai.mit.edu, Chet Ramey
+lib/readline/doc/Makefile      Brian Fox, Chet Ramey
+lib/readline/doc/rlman.texinfo Brian Fox, Chet Ramey
+lib/readline/doc/rltech.texinfo        Brian Fox, Chet Ramey
+lib/readline/doc/rluser.texinfo        Brian Fox, Chet Ramey
+lib/readline/doc/hist.texinfo  Brian Fox, Chet Ramey
+lib/readline/doc/hstech.texinfo        Brian Fox, Chet Ramey
+lib/readline/doc/hsuser.texinfo        Brian Fox, Chet Ramey
+lib/readline/examples/Makefile Brian Fox
+lib/readline/examples/fileman.c        Brian Fox
+lib/readline/examples/manexamp.c       Brian Fox
+lib/readline/examples/histexamp.c      Brian Fox, Chet Ramey
+lib/readline/examples/rltest.c Brian Fox, Chet Ramey
+lib/readline/examples/Inputrc  Brian Fox, Chet Ramey
+lib/termcap/Makefile.in        David MacKenzie, Chet Ramey
+lib/termcap/termcap.c  David MacKenzie
+lib/termcap/termcap.h  David MacKenzie
+lib/termcap/tparam.c   David MacKenzie
+lib/termcap/version.c  David MacKenzie
+lib/termcap/grot/termcap.info  David MacKenzie
+lib/termcap/grot/termcap.info-1        David MacKenzie
+lib/termcap/grot/termcap.info-2        David MacKenzie
+lib/termcap/grot/termcap.info-3        David MacKenzie
+lib/termcap/grot/termcap.info-4        David MacKenzie
+lib/termcap/grot/NEWS  David MacKenzie
+lib/termcap/grot/INSTALL       David MacKenzie
+lib/termcap/grot/ChangeLog     David MacKenzie
+lib/termcap/grot/texinfo.tex   David MacKenzie
+lib/termcap/grot/termcap.texi  David MacKenzie
+lib/termcap/grot/Makefile.in   David MacKenzie
+lib/termcap/grot/configure     David MacKenzie
+lib/termcap/grot/configure.in  David MacKenzie
+lib/termcap/grot/COPYING       David MacKenzie
+lib/termcap/grot/README        David MacKenzie
+lib/tilde/ChangeLog    Brian Fox, Chet Ramey
+lib/tilde/Makefile.in  Brian Fox, Chet Ramey
+lib/tilde/doc/tilde.texi       Brian Fox, Chet Ramey
+lib/tilde/doc/Makefile Brian Fox, Chet Ramey
+lib/tilde/tilde.c      Brian Fox, Chet Ramey
+lib/tilde/tilde.h      Brian Fox, Chet Ramey
+lib/tilde/memalloc.h   Brian Fox, Chet Ramey
+CWRU/misc/open-files.c Chet Ramey
+CWRU/misc/sigs.c       Chet Ramey
+CWRU/misc/pid.c                Chet Ramey
+CWRU/misc/sigstat.c    Chet Ramey
+CWRU/misc/bison                Chet Ramey
+CWRU/misc/aux-machine-desc     Chet Ramey
+CWRU/PLATFORMS         Chet Ramey
+CWRU/README            Chet Ramey
+CWRU/CWRU.CHANGES.051093       Chet Ramey
+CWRU/POSIX.NOTES       Chet Ramey
+CWRU/CWRU.CHANGES.071193       Chet Ramey
+CWRU/CWRU.CHANGES.090393       Chet Ramey
+doc/Makefile.in                Brian Fox, Chet Ramey
+doc/bash.1             Chet Ramey
+doc/builtins.1         Chet Ramey
+doc/bash.ps            Chet Ramey
+doc/bash.txt           Chet Ramey
+doc/readline.3         Chet Ramey
+doc/readline.ps                Chet Ramey
+doc/readline.txt       Chet Ramey
+doc/texinfo.tex                Richard Stallman
+doc/features.texi      Brian Fox, Chet Ramey
+doc/features.ps                Brian Fox, Chet Ramey
+doc/features.info      Brian Fox, Chet Ramey
+doc/features.dvi       Brian Fox, Chet Ramey
+doc/bash_builtins.1    Chet Ramey
+doc/bash_builtins.ps   Chet Ramey
+doc/bash_builtins.txt  Chet Ramey
+doc/bash_builtins.readme       Chet Ramey
+doc/article.ms         Chet Ramey
+doc/FAQ                        Chet Ramey
+support/cat-s          Brian Fox, Chet Ramey
+support/mksysdefs      Brian Fox, Chet Ramey
+support/mkversion.c    Brian Fox, Chet Ramey
+support/mksignames.c   Brian Fox, Chet Ramey
+support/getcppsyms.c   Brian Fox, Chet Ramey
+support/cppmagic       Brian Fox, Chet Ramey
+support/pagesize.sh    Chet Ramey, Brian Fox
+support/pagesize.c     Chet Ramey, Brian Fox
+support/bash.xbm       Brian Fox
+support/FAQ            Brian Fox
+support/PORTING                Brian Fox
+support/mklinks                Brian Fox
+support/fixlinks       Chet Ramey
+support/mkdirs         Chet Ramey
+support/clone-bash     Chet Ramey
+support/bashbug.sh     Chet Ramey
+support/mkmachtype     Chet Ramey
+support/recho.c                Chet Ramey
+support/config.guess   Per Bothner, Chet Ramey
+support/config.sub     Richard Stallman, Chet Ramey
+support/install.sh     MIT X Consortium (X11R5)
+support/endian.c       Chet Ramey
+support/printenv       Chet Ramey
+examples/precedence-tester     Brian Fox, Chet Ramey
+examples/functions/substr      Brian Fox, Chet Ramey
+examples/functions/kshenv      Chet Ramey
+examples/functions/autoload    Chet Ramey
+examples/functions/csh-compat  Brian Fox, Chet Ramey
+examples/functions/shcat       Chet Ramey
+examples/functions/substr2     Chet Ramey
+examples/functions/term                Chet Ramey
+examples/functions/whatis      Chet Ramey
+examples/functions/whence      Chet Ramey
+examples/functions/func                Chet Ramey
+examples/functions/dirname     Brian Fox, Noah Friedman
+examples/functions/basename    Brian Fox, Noah Friedman
+examples/functions/exitstat    Noah Friedman, Roland McGrath
+examples/functions/external    Noah Friedman
+examples/functions/fact                Brian Fox
+examples/functions/manpage     Tom Tromey
+examples/functions/fstty       Chet Ramey
+examples/functions/jj.bash     Chet Ramey
+examples/functions/notify.bash Chet Ramey
+examples/scripts/shprompt      Chet Ramey
+examples/scripts/adventure.sh  Chet Ramey, Doug Gwyn
+examples/scripts/bcsh.sh       Chris Robertson, Chet Ramey
+examples/startup-files/Bashrc  Brian Fox
+examples/startup-files/Bash_aliases    Brian Fox
+examples/startup-files/Bash_profile    Brian Fox
+examples/startup-files/bash-profile    Brian Fox
+examples/startup-files/bashrc  Chet Ramey
+examples/suncmd.termcap        Brian Fox, Chet Ramey
+examples/alias-conv.sh Brian Fox, Chet Ramey
+tests/README           Chet Ramey
+tests/arith.tests      Chet Ramey
+tests/arith.right      Chet Ramey
+tests/array.tests      Chet Ramey
+tests/array.right      Chet Ramey
+tests/dollar-at.sh      Chet Ramey
+tests/dollar-star.sh    Chet Ramey
+tests/dollar.right      Chet Ramey
+tests/exp-tests        Chet Ramey
+tests/exp.right        Chet Ramey
+tests/glob-test        Chet Ramey
+tests/glob.right        Chet Ramey
+tests/ifs-test-1.sh     Chet Ramey
+tests/ifs-test-2.sh     Chet Ramey
+tests/ifs-test-3.sh     Chet Ramey
+tests/ifs.1.right       Chet Ramey
+tests/ifs.2.right       Chet Ramey
+tests/ifs.3.right       Chet Ramey
+tests/input-line.sh     Chet Ramey
+tests/input-line.sub    Chet Ramey
+tests/input.right       Chet Ramey
+tests/minus-e          Chet Ramey
+tests/minus-e.right     Chet Ramey
+tests/new-exp.tests     Chet Ramey
+tests/new-exp.right     Chet Ramey
+tests/prec.right        Chet Ramey
+tests/precedence        Chet Ramey
+tests/run-all          Chet Ramey
+tests/run-dollars       Chet Ramey
+tests/run-exp-tests     Chet Ramey
+tests/run-glob-test     Chet Ramey
+tests/run-ifs-tests     Chet Ramey
+tests/run-input-test    Chet Ramey
+tests/run-minus-e       Chet Ramey
+tests/run-new-exp       Chet Ramey
+tests/run-precedence    Chet Ramey
+tests/run-set-e-test    Chet Ramey
+tests/run-strip        Chet Ramey
+tests/run-varenv        Chet Ramey
+tests/set-e-test        Chet Ramey
+tests/set-e.right       Chet Ramey
+tests/strip.tests       Chet Ramey
+tests/strip.right       Chet Ramey
+tests/tilde-tests       Chet Ramey
+tests/tilde.right       Chet Ramey
+tests/varenv.right      Chet Ramey
+tests/varenv.sh        Chet Ramey
+tests/misc/chld-trap.sh Chet Ramey
+tests/misc/dot-test-1.sh        Chet Ramey
+tests/misc/dot-test-1.sub       Chet Ramey
+tests/misc/gotest       Chet Ramey
+tests/misc/perf-script  Chet Ramey
+tests/misc/redir.t1.sh  Chet Ramey
+tests/misc/redir.t2.sh  Chet Ramey
+tests/misc/redir.t3.sh  Chet Ramey
+tests/misc/redir.t3.sub Chet Ramey
+tests/misc/redir.t4.sh  Chet Ramey
+tests/misc/run.r1.sh    Chet Ramey
+tests/misc/run.r2.sh    Chet Ramey
+tests/misc/run.r3.sh    Chet Ramey
+tests/misc/sigint.t1.sh Chet Ramey
+tests/misc/sigint.t2.sh Chet Ramey
+tests/misc/sigint.t3.sh Chet Ramey
+tests/misc/sigint.t4.sh Chet Ramey
+tests/misc/test-minus-e.1       Chet Ramey
+tests/misc/test-minus-e.2       Chet Ramey
+lib/sh/Makefile.in     Chet Ramey
+lib/sh/clktck.c                Chet Ramey
+lib/sh/clock.c         Chet Ramey
+lib/sh/fmtullong.c     Chet Ramey
+lib/sh/fmtulong.c      Chet Ramey
+lib/sh/getcwd.c                Chet Ramey, Roland McGrath
+lib/sh/getenv.c                Chet Ramey, Brian Fox
+lib/sh/inet_aton.c     Chet Ramey, Ulrich Drepper, Paul Vixie
+lib/sh/itos.c          Chet Ramey
+lib/sh/mailstat.c      Chet Ramey
+lib/sh/makepath.c      Chet Ramey
+lib/sh/mktime.c                Chet Ramey, Paul Eggert
+lib/sh/netconn.c       Chet Ramey
+lib/sh/netopen.c       Chet Ramey
+lib/sh/oslib.c         Chet Ramey, Brian Fox
+lib/sh/pathcanon.c     Chet Ramey
+lib/sh/pathphys.c      Chet Ramey
+lib/sh/rename.c                Chet Ramey
+lib/sh/setlinebuf.c    Chet Ramey, Brian Fox
+lib/sh/shquote.c       Chet Ramey
+lib/sh/shtty.c         Chet Ramey
+lib/sh/snprintf.c      Chet Ramey, Unknown
+lib/sh/spell.c         Chet Ramey
+lib/sh/strcasecmp.c    Chet Ramey, Brian Fox
+lib/sh/strerror.c      Chet Ramey, Brian Fox
+lib/sh/strftime.c      Arnold Robbins
+lib/sh/strindex.c      Chet Ramey
+lib/sh/stringlist.c    Chet Ramey
+lib/sh/stringvec.c     Chet Ramey
+lib/sh/strpbrk.c       Roland McGrath
+lib/sh/strtod.c                Chet Ramey, Roland McGrath
+lib/sh/strtoimax.c     Chet Ramey, Paul Eggert
+lib/sh/strtol.c                Chet Ramey, Paul Eggert
+lib/sh/strtoll.c       Chet Ramey, Paul Eggert
+lib/sh/strtoul.c       Chet Ramey, Paul Eggert
+lib/sh/strtoull.c      Chet Ramey, Paul Eggert
+lib/sh/strtoumax.c     Chet Ramey, Paul Eggert
+lib/sh/strtrans.c      Chet Ramey
+lib/sh/times.c         Chet Ramey, Brian Fox
+lib/sh/timeval.c       Chet Ramey
+lib/sh/tmpfile.c       Chet Ramey
+lib/sh/vprint.c                Chet Ramey, Brian Fox
+lib/sh/xstrchr.c       Chet Ramey, Mitsuru Chinen
+lib/sh/zread.c         Chet Ramey
+lib/sh/zwrite.c                Chet Ramey
+
+tests/posix-ifs.sh     Glenn Fowler
index e2fbce5d47034b38d60a68018d1ae4682de1cc67..d2d92821150b1fc8330674b75db6870d6653da73 100644 (file)
@@ -14313,6 +14313,11 @@ subst.c
        - change cond_expand_word to translate SPECIAL==2 into passing
          QGLOB_REGEXP to quote_string_for_globbing
 
+locale.c
+       - by default, if all else fails, set shell's idea of locale to ""
+         instead of its idea of `default_locale' -- the library functions
+         behave better with that value
+
                                    2/2
                                    ---
 builtins/printf.def
@@ -15504,3 +15509,79 @@ lib/readline/bind.c
 
 doc/bash.1,lib/readline/doc/{rluser.texi,readline.3}
        - document new `history-size' settable readline variable
+
+                                   4/8
+                                   ---
+builtins/complete.def
+       - change build_actions calling sequence to take a struct with `other'
+         (non-action) flag arguments (-p, -r)
+       - add support for `-E' option to build_actions and complete builtin --
+         modifies or displays (internal) `_EmptycmD_' completion spec
+
+bashline.c
+       - change attempt_shell_completion to try programmable completion on an
+         `empty' command line and return the results
+
+doc/bash.1,lib/readline/doc/rluser.texi
+       - documented new `-E' option to `complete'
+
+                                   4/9
+                                   ---
+bashline.c
+       - new variable, `enable_history_list', used to reflect setting of
+         `-o history' option
+       - change bash_history_{enable,disable,reinit} to set enable_history_list
+         as well as remember_on_history
+
+builtins/set.def
+       - use `enable_history_list' instead of `remember_on_history' to keep
+         value of `-o history' option
+
+builtins/evalstring.c
+       - instead of unwind-protecting remember_on_history, use a function to
+         restore it to the value of `enable_history_list' after
+         parse_and_execute runs the commands in the string.  This allows
+         history to be turned off in a startup file, for instance.  Problem
+         reported by Dan Jacobson <jidanni@jidanni.org>
+
+                                  4/11
+                                  ----
+bashline.c
+       - limited support for completing command words with globbing characters
+         (only a single match completed on TAB, absolute or relative
+         pathnames supported, no $PATH searching, some support for displaying
+         possible matches, can be used with menu completion).
+         Suggested by Harald Koenig <h.koenig@science-computing.de>
+
+print_cmd.c
+       - change redirection printing to output r_err_and_out as `&>file',
+         since the man page says that's the preferred form
+
+                                  4/12
+                                  ----
+builtins/*.def
+       - change long doc so the first line is a short description
+       - add `Exit Status:' section to each longdoc describing exit values
+
+builtins/help.def
+       - new `-d' option to print short description of each utility
+       - new `-m' option to print description of each builtin in a
+         pseudo-manpage format (inspired by ksh93)
+
+doc/{bash.1,bashref.texi}
+       - document new `-d' and `-m' options to `help'
+
+builtins/mapfile.def
+       - new builtin, `mapfile', imported from bash-4.0-devel branch
+
+tests/{mapfile.{data,right,tests},run-mapfile}
+       - tests for `mapfile' builtin
+
+doc/{bash.1,bashref.texi}
+       - added description of `mapfile' builtin
+
+MANIFEST,Makefile.in,builtins/Makefile.in
+       - added entries for mapfile source files
+
+arrayfunc.[ch]
+       - new function, bind_array_element, to support mapfile builtin
index 748a63ff8c2a80ccddb96a7eb185c9d77c99d8c9..3ddb2a8b3faba6f11fa321b70466cfdc17ea1b95 100644 (file)
@@ -15495,3 +15495,88 @@ builtins/read.def
 
 doc/{bash.1,bashref.texi}
        - document new `-i text' option to read builtin
+
+                                   4/7
+                                   ---
+lib/readline/bind.c
+       - new settable variable, `history-size', sets the max number of
+         entries in the history list
+
+doc/bash.1,lib/readline/doc/{rluser.texi,readline.3}
+       - document new `history-size' settable readline variable
+
+                                   4/8
+                                   ---
+builtins/complete.def
+       - change build_actions calling sequence to take a struct with `other'
+         (non-action) flag arguments (-p, -r)
+       - add support for `-E' option to build_actions and complete builtin --
+         modifies or displays (internal) `_EmptycmD_' completion spec
+
+bashline.c
+       - change attempt_shell_completion to try programmable completion on an
+         `empty' command line and return the results
+
+doc/bash.1,lib/readline/doc/rluser.texi
+       - documented new `-E' option to `complete'
+
+                                   4/9
+                                   ---
+bashline.c
+       - new variable, `enable_history_list', used to reflect setting of
+         `-o history' option
+       - change bash_history_{enable,disable,reinit} to set enable_history_list
+         as well as remember_on_history
+
+builtins/set.def
+       - use `enable_history_list' instead of `remember_on_history' to keep
+         value of `-o history' option
+
+builtins/evalstring.c
+       - instead of unwind-protecting remember_on_history, use a function to
+         restore it to the value of `enable_history_list' after
+         parse_and_execute runs the commands in the string.  This allows
+         history to be turned off in a startup file, for instance.  Problem
+         reported by Dan Jacobson <jidanni@jidanni.org>
+
+                                  4/11
+                                  ----
+bashline.c
+       - limited support for completing command words with globbing characters
+         (only a single match completed on TAB, absolute or relative
+         pathnames supported, no $PATH searching, some support for displaying
+         possible matches, can be used with menu completion).
+         Suggested by Harald Koenig <h.koenig@science-computing.de>
+
+print_cmd.c
+       - change redirection printing to output r_err_and_out as `&>file',
+         since the man page says that's the preferred form
+
+                                  4/12
+                                  ----
+builtins/*.def
+       - change long doc so the first line is a short description
+       - add `Exit Status:' section to each longdoc describing exit values
+
+builtins/help.def
+       - new `-d' option to print short description of each utility
+       - new `-m' option to print description of each builtin in a
+         pseudo-manpage format (inspired by ksh93)
+
+doc/{bash.1,bashref.texi}
+       - document new `-d' and `-m' options to `help'
+
+builtins/mapfile.def
+       - new builtin, `mapfile', imported from bash-4.0-devel branch
+
+tests/{mapfile.{data,right,tests},run-mapfile}
+       - tests for `mapfile' builtin
+
+doc/{bash.1,bashref.texi}
+       - added description of `mapfile' builtin
+
+MANIFEST,Makefile.in,builtins/Makefile.in
+       - added entries for mapfile source files
+
+arrayfunc.[ch]
+       - new function, bind_array_element, to support mapfile builtin
index 470ff111947c0a64f5ebae1273cf6c8df41076b2..b5f4b0fa4aa3c7c4970d9fb847236caddf3f2d2a 100644 (file)
--- a/MANIFEST
+++ b/MANIFEST
@@ -176,6 +176,7 @@ builtins/let.def    f
 builtins/history.def   f
 builtins/jobs.def      f
 builtins/kill.def      f
+builtins/mapfile.def   f
 builtins/mkbuiltins.c  f
 builtins/printf.def    f
 builtins/pushd.def     f
@@ -813,6 +814,9 @@ tests/jobs2.sub             f
 tests/jobs3.sub                f
 tests/jobs4.sub                f
 tests/jobs.right       f
+tests/mapfile.data     f
+tests/mapfile.right    f
+tests/mapfile.tests    f
 tests/more-exp.tests   f
 tests/more-exp.right   f
 tests/new-exp.tests    f
@@ -906,6 +910,7 @@ tests/run-intl              f
 tests/run-iquote       f
 tests/run-invert       f
 tests/run-jobs         f
+tests/run-mapfile      f
 tests/run-more-exp     f
 tests/run-new-exp      f
 tests/run-nquote       f
index daaf0bda68c6ee7e3141ec9aa0c24e366b7643f4..470ff111947c0a64f5ebae1273cf6c8df41076b2 100644 (file)
--- a/MANIFEST~
+++ b/MANIFEST~
@@ -374,6 +374,7 @@ lib/readline/examples/rl.c  f
 lib/readline/examples/rlcat.c  f
 lib/readline/examples/Inputrc  f
 lib/sh/Makefile.in     f
+lib/sh/casemod.c       f
 lib/sh/clktck.c                f
 lib/sh/clock.c         f
 lib/sh/eaccess.c       f
@@ -422,6 +423,8 @@ lib/sh/strtrans.c   f
 lib/sh/times.c         f
 lib/sh/timeval.c       f
 lib/sh/tmpfile.c       f
+lib/sh/uconvert.c      f
+lib/sh/ufuncs.c                f
 lib/sh/vprint.c                f
 lib/sh/wcsdup.c                f
 lib/sh/winsize.c       f
index c20cbd22576ce601b4e404730edafe9dbfecf280..5688375a5ca66597fa8bf295456960f35ae94a75 100644 (file)
@@ -1,6 +1,6 @@
-# Makefile for bash-3.1, version 2.159
+# Makefile for bash-4.0, version 3.4
 #
-# Copyright (C) 1996-2005 Free Software Foundation, Inc.
+# Copyright (C) 1996-2008 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
@@ -465,7 +465,8 @@ BUILTIN_DEFS = $(DEFSRC)/alias.def $(DEFSRC)/bind.def $(DEFSRC)/break.def \
               $(DEFSRC)/times.def $(DEFSRC)/trap.def $(DEFSRC)/type.def \
               $(DEFSRC)/ulimit.def $(DEFSRC)/umask.def $(DEFSRC)/wait.def \
               $(DEFSRC)/getopts.def $(DEFSRC)/reserved.def \
-              $(DEFSRC)/pushd.def $(DEFSRC)/shopt.def $(DEFSRC)/printf.def
+              $(DEFSRC)/pushd.def $(DEFSRC)/shopt.def $(DEFSRC)/printf.def \
+              $(DEFSRC)/mapfile.def
 BUILTIN_C_SRC  = $(DEFSRC)/mkbuiltins.c $(DEFSRC)/common.c \
                 $(DEFSRC)/evalstring.c $(DEFSRC)/evalfile.c \
                 $(DEFSRC)/bashgetopt.c $(GETOPT_SOURCE)
@@ -484,7 +485,7 @@ BUILTIN_OBJS = $(DEFDIR)/alias.o $(DEFDIR)/bind.o $(DEFDIR)/break.o \
               $(DEFDIR)/source.o $(DEFDIR)/suspend.o $(DEFDIR)/test.o \
               $(DEFDIR)/times.o $(DEFDIR)/trap.o $(DEFDIR)/type.o \
               $(DEFDIR)/ulimit.o $(DEFDIR)/umask.o $(DEFDIR)/wait.o \
-              $(DEFDIR)/getopts.o $(BUILTIN_C_OBJ)
+              $(DEFDIR)/getopts.o $(DEFDIR)/mapfile.o $(BUILTIN_C_OBJ)
 GETOPT_SOURCE   = $(DEFSRC)/getopt.c $(DEFSRC)/getopt.h
 PSIZE_SOURCE   = $(DEFSRC)/psize.sh $(DEFSRC)/psize.c
 
@@ -1383,6 +1384,9 @@ builtins/complete.o: bashtypes.h bashansi.h ${BASHINCDIR}/ansi_stdlib.h
 builtins/complete.o: builtins.h 
 builtins/complete.o: pcomplete.h
 builtins/complete.o: ${DEFSRC}/common.h ${DEFSRC}/bashgetopt.h
+builtins/mapfile.o: command.h config.h ${BASHINCDIR}/memalloc.h error.h general.h xmalloc.h ${BASHINCDIR}/maxpath.h
+builtins/mapfile.o: quit.h dispose_cmd.h make_cmd.h subst.h externs.h ${BASHINCDIR}/stdc.h
+builtins/mapfile.o: shell.h syntax.h bashjmp.h ${BASHINCDIR}/posixjmp.h sig.h unwind_prot.h variables.h arrayfunc.h conftypes.h 
 
 # libintl dependencies
 builtins/bind.o: ${topdir}/bashintl.h ${LIBINTL_H} $(BASHINCDIR)/gettext.h
@@ -1406,6 +1410,7 @@ builtins/inlib.o: ${topdir}/bashintl.h ${LIBINTL_H} $(BASHINCDIR)/gettext.h
 builtins/jobs.o: ${topdir}/bashintl.h ${LIBINTL_H} $(BASHINCDIR)/gettext.h
 builtins/kill.o: ${topdir}/bashintl.h ${LIBINTL_H} $(BASHINCDIR)/gettext.h
 builtins/let.o: ${topdir}/bashintl.h ${LIBINTL_H} $(BASHINCDIR)/gettext.h
+builtins/mapfile.o: ${topdir}/bashintl.h ${LIBINTL_H} $(BASHINCDIR)/gettext.h
 builtins/mkbuiltins.o: ${topdir}/bashintl.h ${LIBINTL_H} $(BASHINCDIR)/gettext.h
 builtins/printf.o: ${topdir}/bashintl.h ${LIBINTL_H} $(BASHINCDIR)/gettext.h
 builtins/pushd.o: ${topdir}/bashintl.h ${LIBINTL_H} $(BASHINCDIR)/gettext.h
@@ -1457,6 +1462,7 @@ builtins/inlib.o: $(DEFSRC)/inlib.def
 builtins/jobs.o: $(DEFSRC)/jobs.def
 builtins/kill.o: $(DEFSRC)/kill.def
 builtins/let.o: $(DEFSRC)/let.def
+builtins/mapfile.o: $(DEFSRC)/mapfile.def
 builtins/pushd.o: $(DEFSRC)/pushd.def
 builtins/read.o: $(DEFSRC)/read.def
 builtins/reserved.o: $(DEFSRC)/reserved.def
index 90e9d0f1032d9f77819035af7bb7dcf58c21681f..c20cbd22576ce601b4e404730edafe9dbfecf280 100644 (file)
@@ -211,7 +211,9 @@ SHLIB_SOURCE =      ${SH_LIBSRC}/clktck.c ${SH_LIBSRC}/getcwd.c \
                ${SH_LIBSRC}/strnlen.c ${SH_LIBSRC}/winsize.c \
                ${SH_LIBSRC}/eaccess.c ${SH_LIBSRC}/wcsdup.c \
                ${SH_LIBSRC}/zmapfd.c ${SH_LIBSRC}/fpurge.c \
-               ${SH_LIBSRC}/zgetline.c ${SH_LIBSRC}/mbscmp.c
+               ${SH_LIBSRC}/zgetline.c ${SH_LIBSRC}/mbscmp.c \
+               ${SH_LIBSRC}/casemod.c ${SH_LIBSRC}/uconvert.c \
+               ${SH_LIBSRC}/ufuncs.c
 
 SHLIB_LIB = -lsh
 SHLIB_LIBNAME = libsh.a
index 98208bafe773a3f6d438855e6bf477f77c43130f..6c3e15783eccc3bcf7b5fbeaae0f977ad3a2e0a1 100644 (file)
@@ -160,6 +160,16 @@ bind_array_variable (name, ind, value, flags)
   return (bind_array_var_internal (entry, ind, value, flags));
 }
 
+SHELL_VAR *
+bind_array_element (entry, ind, value, flags)
+     SHELL_VAR *entry;
+     arrayind_t ind;
+     char *value;
+     int flags;
+{
+  return (bind_array_var_internal (entry, ind, value, flags));
+}
+                    
 /* Parse NAME, a lhs of an assignment statement of the form v[s], and
    assign VALUE to that array element by calling bind_array_variable(). */
 SHELL_VAR *
index 36727a3ce327e4d1bd78ec5f6c0019ed74d25da9..98208bafe773a3f6d438855e6bf477f77c43130f 100644 (file)
@@ -693,8 +693,8 @@ array_variable_part (s, subp, lenp)
 /* Return a string containing the elements in the array and subscript
    described by S.  If the subscript is * or @, obeys quoting rules akin
    to the expansion of $* and $@ including double quoting.  If RTYPE
-   is non-null it gets 1 if the array reference is name[@] or name[*]
-   and 0 otherwise. */
+   is non-null it gets 1 if the array reference is name[*], 2 if the
+   reference is name[@], and 0 otherwise. */
 static char *
 array_value_internal (s, quoted, allow_all, rtype)
      char *s;
@@ -722,7 +722,7 @@ array_value_internal (s, quoted, allow_all, rtype)
   if (ALL_ELEMENT_SUB (t[0]) && t[1] == ']')
     {
       if (rtype)
-       *rtype = 1;
+       *rtype = (t[0] == '*') ? 1 : 2;
       if (allow_all == 0)
        {
          err_badarraysub (s);
index 5c3f94477be51535c9afa90440551d995cea9035..92fe5949d52bf76d7e34ae7de516da5d41493e82 100644 (file)
@@ -28,6 +28,7 @@
 extern SHELL_VAR *convert_var_to_array __P((SHELL_VAR *));
 
 extern SHELL_VAR *bind_array_variable __P((char *, arrayind_t, char *, int));
+extern SHELL_VAR *bind_array_element __P((SHELL_VAR *, arrayind_t, char *, int));
 extern SHELL_VAR *assign_array_element __P((char *, char *, int));
 
 extern SHELL_VAR *find_or_make_array_variable __P((char *, int));
diff --git a/arrayfunc.h~ b/arrayfunc.h~
new file mode 100644 (file)
index 0000000..3ac1f38
--- /dev/null
@@ -0,0 +1,59 @@
+/* arrayfunc.h -- declarations for miscellaneous array functions in arrayfunc.c */
+
+/* Copyright (C) 2001-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. */
+
+#if !defined (_ARRAYFUNC_H_)
+#define _ARRAYFUNC_H_
+
+/* Must include variables.h before including this file. */
+
+#if defined (ARRAY_VARS)
+
+extern SHELL_VAR *convert_var_to_array __P((SHELL_VAR *));
+
+extern SHELL_VAR *bind_array_variable __P((char *, arrayind_t, char *, int));
+extern SHELL_VAR *bind_array_element _P((SHELL_VAR *, arrayind_t, char *, int));
+extern SHELL_VAR *assign_array_element __P((char *, char *, int));
+
+extern SHELL_VAR *find_or_make_array_variable __P((char *, int));
+
+extern SHELL_VAR *assign_array_from_string  __P((char *, char *, int));
+extern SHELL_VAR *assign_array_var_from_word_list __P((SHELL_VAR *, WORD_LIST *, int));
+
+extern WORD_LIST *expand_compound_array_assignment __P((char *, int));
+extern void assign_compound_array_list __P((SHELL_VAR *, WORD_LIST *, int));
+extern SHELL_VAR *assign_array_var_from_string __P((SHELL_VAR *, char *, int));
+
+extern int unbind_array_element __P((SHELL_VAR *, char *));
+extern int skipsubscript __P((const char *, int));
+extern void print_array_assignment __P((SHELL_VAR *, int));
+
+extern arrayind_t array_expand_index __P((char *, int));
+extern int valid_array_reference __P((char *));
+extern char *array_value __P((char *, int, int *));
+extern char *get_array_value __P((char *, int, int *));
+
+extern char *array_keys __P((char *, int));
+
+extern char *array_variable_name __P((char *, char **, int *));
+extern SHELL_VAR *array_variable_part __P((char *, char **, int *));
+
+#endif
+
+#endif /* !_ARRAYFUNC_H_ */
index 6468a538307ce63a94dc31e8c90af115cbd4b64e..9e77bc5911ce28f79f3c192634e27ff3cb851894 100644 (file)
@@ -1,6 +1,6 @@
 /* bashhist.c -- bash interface to the GNU history library. */
 
-/* Copyright (C) 1993-2004 Free Software Foundation, Inc.
+/* Copyright (C) 1993-2008 Free Software Foundation, Inc.
 
    This file is part of GNU Bash, the Bourne Again SHell.
 
@@ -80,6 +80,7 @@ static struct ignorevar histignore =
    list.  This is different than the user-controlled behaviour; this
    becomes zero when we read lines from a file, for example. */
 int remember_on_history = 1;
+int enable_history_list = 1;   /* value for `set -o history' */
 
 /* The number of lines that Bash has added to this history session.  The
    difference between the number of the top element in the history list
@@ -234,7 +235,7 @@ bash_history_reinit (interact)
   history_expansion = interact != 0;
   history_expansion_inhibited = 1;
 #endif
-  remember_on_history = interact != 0;
+  remember_on_history = enable_history_list = interact != 0;
   history_inhibit_expansion_function = bash_history_inhibit_expansion;
 }
 
diff --git a/bashhist.c~ b/bashhist.c~
new file mode 100644 (file)
index 0000000..bb7df07
--- /dev/null
@@ -0,0 +1,824 @@
+/* bashhist.c -- bash interface to the GNU history library. */
+
+/* Copyright (C) 1993-2008 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 (HISTORY)
+
+#if defined (HAVE_UNISTD_H)
+#  ifdef _MINIX
+#    include <sys/types.h>
+#  endif
+#  include <unistd.h>
+#endif
+
+#include "bashtypes.h"
+#include <stdio.h>
+#include <errno.h>
+#include "bashansi.h"
+#include "posixstat.h"
+#include "filecntl.h"
+
+#include "bashintl.h"
+
+#include "shell.h"
+#include "flags.h"
+#include "input.h"
+#include "parser.h"    /* for the struct dstack stuff. */
+#include "pathexp.h"   /* for the struct ignorevar stuff */
+#include "bashhist.h"  /* matching prototypes and declarations */
+#include "builtins/common.h"
+
+#include <readline/history.h>
+#include <glob/glob.h>
+#include <glob/strmatch.h>
+
+#if defined (READLINE)
+#  include "bashline.h"
+extern int rl_done, rl_dispatching;    /* should really include readline.h */
+#endif
+
+#if !defined (errno)
+extern int errno;
+#endif
+
+static int histignore_item_func __P((struct ign *));
+static int check_history_control __P((char *));
+static void hc_erasedups __P((char *));
+static void really_add_history __P((char *));
+
+static struct ignorevar histignore =
+{
+  "HISTIGNORE",
+  (struct ign *)0,
+  0,
+  (char *)0,
+  (sh_iv_item_func_t *)histignore_item_func,
+};
+
+#define HIGN_EXPAND 0x01
+
+/* Declarations of bash history variables. */
+/* Non-zero means to remember lines typed to the shell on the history
+   list.  This is different than the user-controlled behaviour; this
+   becomes zero when we read lines from a file, for example. */
+int remember_on_history = 1;
+int enable_history_list = 1;   /* value for `set -o history' */
+
+/* The number of lines that Bash has added to this history session.  The
+   difference between the number of the top element in the history list
+   (offset from history_base) and the number of lines in the history file.
+   Appending this session's history to the history file resets this to 0. */
+int history_lines_this_session;
+
+/* The number of lines that Bash has read from the history file. */
+int history_lines_in_file;
+
+#if defined (BANG_HISTORY)
+/* Non-zero means do no history expansion on this line, regardless
+   of what history_expansion says. */
+int history_expansion_inhibited;
+#endif
+
+/* With the old default, every line was saved in the history individually.
+   I.e., if the user enters:
+       bash$ for i in a b c
+       > do
+       > echo $i
+       > done
+   Each line will be individually saved in the history.
+       bash$ history
+       10  for i in a b c
+       11  do
+       12  echo $i
+       13  done
+       14  history
+   If the variable command_oriented_history is set, multiple lines
+   which form one command will be saved as one history entry.
+       bash$ for i in a b c
+       > do
+       > echo $i
+       > done
+       bash$ history
+       10  for i in a b c
+    do
+    echo $i
+    done
+       11  history
+   The user can then recall the whole command all at once instead
+   of just being able to recall one line at a time.
+
+   This is now enabled by default.
+   */
+int command_oriented_history = 1;
+
+/* Set to 1 if the first line of a possibly-multi-line command was saved
+   in the history list.  Managed by maybe_add_history(), but global so
+   the history-manipluating builtins can see it. */
+int current_command_first_line_saved = 0;
+
+/* Non-zero means to store newlines in the history list when using
+   command_oriented_history rather than trying to use semicolons. */
+int literal_history;
+
+/* Non-zero means to append the history to the history file at shell
+   exit, even if the history has been stifled. */
+int force_append_history;
+
+/* A nit for picking at history saving.  Flags have the following values:
+
+   Value == 0 means save all lines parsed by the shell on the history.
+   Value & HC_IGNSPACE means save all lines that do not start with a space.
+   Value & HC_IGNDUPS means save all lines that do not match the last
+   line saved.
+   Value & HC_ERASEDUPS means to remove all other matching lines from the
+   history list before saving the latest line. */
+int history_control;
+
+/* Set to 1 if the last command was added to the history list successfully
+   as a separate history entry; set to 0 if the line was ignored or added
+   to a previous entry as part of command-oriented-history processing. */
+int hist_last_line_added;
+
+/* Set to 1 if builtins/history.def:push_history added the last history
+   entry. */
+int hist_last_line_pushed;
+
+#if defined (READLINE)
+/* If non-zero, and readline is being used, the user is offered the
+   chance to re-edit a failed history expansion. */
+int history_reediting;
+
+/* If non-zero, and readline is being used, don't directly execute a
+   line with history substitution.  Reload it into the editing buffer
+   instead and let the user further edit and confirm with a newline. */
+int hist_verify;
+
+#endif /* READLINE */
+
+/* Non-zero means to not save function definitions in the history list. */
+int dont_save_function_defs;
+
+/* Variables declared in other files used here. */
+extern int current_command_line_count;
+
+extern struct dstack dstack;
+
+static int bash_history_inhibit_expansion __P((char *, int));
+#if defined (READLINE)
+static void re_edit __P((char *));
+#endif
+static int history_expansion_p __P((char *));
+static int shell_comment __P((char *));
+static int should_expand __P((char *));
+static HIST_ENTRY *last_history_entry __P((void));
+static char *expand_histignore_pattern __P((char *));
+static int history_should_ignore __P((char *));
+
+/* Is the history expansion starting at string[i] one that should not
+   be expanded? */
+static int
+bash_history_inhibit_expansion (string, i)
+     char *string;
+     int i;
+{
+  /* The shell uses ! as a pattern negation character in globbing [...]
+     expressions, so let those pass without expansion. */
+  if (i > 0 && (string[i - 1] == '[') && member (']', string + i + 1))
+    return (1);
+  /* The shell uses ! as the indirect expansion character, so let those
+     expansions pass as well. */
+  else if (i > 1 && string[i - 1] == '{' && string[i - 2] == '$' &&
+            member ('}', string + i + 1))
+    return (1);
+#if defined (EXTENDED_GLOB)
+  else if (extended_glob && i > 1 && string[i+1] == '(' && member (')', string + i + 2))
+    return (1);
+#endif
+  else
+    return (0);
+}
+
+void
+bash_initialize_history ()
+{
+  history_quotes_inhibit_expansion = 1;
+  history_search_delimiter_chars = ";&()|<>";
+  history_inhibit_expansion_function = bash_history_inhibit_expansion;
+#if defined (BANG_HISTORY)
+  sv_histchars ("histchars");
+#endif
+}
+
+void
+bash_history_reinit (interact)
+     int interact;
+{
+#if defined (BANG_HISTORY)
+  history_expansion = interact != 0;
+  history_expansion_inhibited = 1;
+#endif
+  remember_on_history = enable_history_list = interact != 0;
+  history_inhibit_expansion_function = bash_history_inhibit_expansion;
+}
+
+void
+bash_history_disable ()
+{
+  remember_on_history = 0;
+#if defined (BANG_HISTORY)
+  history_expansion_inhibited = 1;
+#endif
+}
+
+void
+bash_history_enable ()
+{
+  remember_on_history = enable_history_list = 1;
+#if defined (BANG_HISTORY)
+  history_expansion_inhibited = 0;
+#endif
+  history_inhibit_expansion_function = bash_history_inhibit_expansion;
+  sv_history_control ("HISTCONTROL");
+  sv_histignore ("HISTIGNORE");
+}
+
+/* Load the history list from the history file. */
+void
+load_history ()
+{
+  char *hf;
+  struct stat buf;
+
+  /* Truncate history file for interactive shells which desire it.
+     Note that the history file is automatically truncated to the
+     size of HISTSIZE if the user does not explicitly set the size
+     differently. */
+  set_if_not ("HISTSIZE", "500");
+  sv_histsize ("HISTSIZE");
+
+  set_if_not ("HISTFILESIZE", get_string_value ("HISTSIZE"));
+  sv_histsize ("HISTFILESIZE");
+
+  /* Read the history in HISTFILE into the history list. */
+  hf = get_string_value ("HISTFILE");
+
+  if (hf && *hf && stat (hf, &buf) == 0)
+    {
+      read_history (hf);
+      using_history ();
+      history_lines_in_file = where_history ();
+    }
+}
+
+#ifdef INCLUDE_UNUSED
+/* Write the existing history out to the history file. */
+void
+save_history ()
+{
+  char *hf;
+  struct stat buf;
+
+  hf = get_string_value ("HISTFILE");
+  if (hf && *hf && stat (hf, &buf) == 0)
+    {
+      /* Append only the lines that occurred this session to
+        the history file. */
+      using_history ();
+
+      if (history_lines_this_session < where_history () || force_append_history)
+       append_history (history_lines_this_session, hf);
+      else
+       write_history (hf);
+
+      sv_histsize ("HISTFILESIZE");
+    }
+}
+#endif
+
+int
+maybe_append_history (filename)
+     char *filename;
+{
+  int fd, result;
+  struct stat buf;
+
+  result = EXECUTION_SUCCESS;
+  if (history_lines_this_session && (history_lines_this_session < where_history ()))
+    {
+      /* If the filename was supplied, then create it if necessary. */
+      if (stat (filename, &buf) == -1 && errno == ENOENT)
+       {
+         fd = open (filename, O_WRONLY|O_CREAT, 0600);
+         if (fd < 0)
+           {
+             builtin_error (_("%s: cannot create: %s"), filename, strerror (errno));
+             return (EXECUTION_FAILURE);
+           }
+         close (fd);
+       }
+      result = append_history (history_lines_this_session, filename);
+      history_lines_in_file += history_lines_this_session;
+      history_lines_this_session = 0;
+    }
+  return (result);
+}
+
+/* If this is an interactive shell, then append the lines executed
+   this session to the history file. */
+int
+maybe_save_shell_history ()
+{
+  int result;
+  char *hf;
+  struct stat buf;
+
+  result = 0;
+  if (history_lines_this_session)
+    {
+      hf = get_string_value ("HISTFILE");
+
+      if (hf && *hf)
+       {
+         /* If the file doesn't exist, then create it. */
+         if (stat (hf, &buf) == -1)
+           {
+             int file;
+             file = open (hf, O_CREAT | O_TRUNC | O_WRONLY, 0600);
+             if (file != -1)
+               close (file);
+           }
+
+         /* Now actually append the lines if the history hasn't been
+            stifled.  If the history has been stifled, rewrite the
+            history file. */
+         using_history ();
+         if (history_lines_this_session <= where_history () || force_append_history)
+           {
+             result = append_history (history_lines_this_session, hf);
+             history_lines_in_file += history_lines_this_session;
+           }
+         else
+           {
+             result = write_history (hf);
+             history_lines_in_file = history_lines_this_session;
+           }
+         history_lines_this_session = 0;
+
+         sv_histsize ("HISTFILESIZE");
+       }
+    }
+  return (result);
+}
+
+#if defined (READLINE)
+/* Tell readline () that we have some text for it to edit. */
+static void
+re_edit (text)
+     char *text;
+{
+  if (bash_input.type == st_stdin)
+    bash_re_edit (text);
+}
+#endif /* READLINE */
+
+/* Return 1 if this line needs history expansion. */
+static int
+history_expansion_p (line)
+     char *line;
+{
+  register char *s;
+
+  for (s = line; *s; s++)
+    if (*s == history_expansion_char || *s == history_subst_char)
+      return 1;
+  return 0;
+}
+
+/* Do pre-processing on LINE.  If PRINT_CHANGES is non-zero, then
+   print the results of expanding the line if there were any changes.
+   If there is an error, return NULL, otherwise the expanded line is
+   returned.  If ADDIT is non-zero the line is added to the history
+   list after history expansion.  ADDIT is just a suggestion;
+   REMEMBER_ON_HISTORY can veto, and does.
+   Right now this does history expansion. */
+char *
+pre_process_line (line, print_changes, addit)
+     char *line;
+     int print_changes, addit;
+{
+  char *history_value;
+  char *return_value;
+  int expanded;
+
+  return_value = line;
+  expanded = 0;
+
+#  if defined (BANG_HISTORY)
+  /* History expand the line.  If this results in no errors, then
+     add that line to the history if ADDIT is non-zero. */
+  if (!history_expansion_inhibited && history_expansion && history_expansion_p (line))
+    {
+      expanded = history_expand (line, &history_value);
+
+      if (expanded)
+       {
+         if (print_changes)
+           {
+             if (expanded < 0)
+               internal_error ("%s", history_value);
+#if defined (READLINE)
+             else if (hist_verify == 0 || expanded == 2)
+#else
+             else
+#endif
+               fprintf (stderr, "%s\n", history_value);
+           }
+
+         /* If there was an error, return NULL. */
+         if (expanded < 0 || expanded == 2)    /* 2 == print only */
+           {
+#    if defined (READLINE)
+             if (expanded == 2 && rl_dispatching == 0 && *history_value)
+#    else            
+             if (expanded == 2 && *history_value)
+#    endif /* !READLINE */
+               maybe_add_history (history_value);
+
+             free (history_value);
+
+#    if defined (READLINE)
+             /* New hack.  We can allow the user to edit the
+                failed history expansion. */
+             if (history_reediting && expanded < 0 && rl_done)
+               re_edit (line);
+#    endif /* READLINE */
+             return ((char *)NULL);
+           }
+
+#    if defined (READLINE)
+         if (hist_verify && expanded == 1)
+           {
+             re_edit (history_value);
+             return ((char *)NULL);
+           }
+#    endif
+       }
+
+      /* Let other expansions know that return_value can be free'ed,
+        and that a line has been added to the history list.  Note
+        that we only add lines that have something in them. */
+      expanded = 1;
+      return_value = history_value;
+    }
+#  endif /* BANG_HISTORY */
+
+  if (addit && remember_on_history && *return_value)
+    maybe_add_history (return_value);
+
+#if 0
+  if (expanded == 0)
+    return_value = savestring (line);
+#endif
+
+  return (return_value);
+}
+
+/* Return 1 if the first non-whitespace character in LINE is a `#', indicating
+ * that the line is a shell comment. */
+static int
+shell_comment (line)
+     char *line;
+{
+  char *p;
+
+  for (p = line; p && *p && whitespace (*p); p++)
+    ;
+  return (p && *p == '#');
+}
+
+#ifdef INCLUDE_UNUSED
+/* Remove shell comments from LINE.  A `#' and anything after it is a comment.
+   This isn't really useful yet, since it doesn't handle quoting. */
+static char *
+filter_comments (line)
+     char *line;
+{
+  char *p;
+
+  for (p = line; p && *p && *p != '#'; p++)
+    ;
+  if (p && *p == '#')
+    *p = '\0';
+  return (line);
+}
+#endif
+
+/* Check LINE against what HISTCONTROL says to do.  Returns 1 if the line
+   should be saved; 0 if it should be discarded. */
+static int
+check_history_control (line)
+     char *line;
+{
+  HIST_ENTRY *temp;
+  int r;
+
+  if (history_control == 0)
+    return 1;
+
+  /* ignorespace or ignoreboth */
+  if ((history_control & HC_IGNSPACE) && *line == ' ')
+    return 0;
+
+  /* ignoredups or ignoreboth */
+  if (history_control & HC_IGNDUPS)
+    {
+      using_history ();
+      temp = previous_history ();
+
+      r = (temp == 0 || STREQ (temp->line, line) == 0);
+
+      using_history ();
+
+      if (r == 0)
+       return r;
+    }
+
+  return 1;
+}
+
+/* Remove all entries matching LINE from the history list.  Triggered when
+   HISTCONTROL includes `erasedups'. */
+static void
+hc_erasedups (line)
+     char *line;
+{
+  HIST_ENTRY *temp;
+  int r;
+
+  using_history ();
+  while (temp = previous_history ())
+    {
+      if (STREQ (temp->line, line))
+       {
+         r = where_history ();
+         remove_history (r);
+       }
+    }
+  using_history ();
+}
+
+/* Add LINE to the history list, handling possibly multi-line compound
+   commands.  We note whether or not we save the first line of each command
+   (which is usually the entire command and history entry), and don't add
+   the second and subsequent lines of a multi-line compound command if we
+   didn't save the first line.  We don't usually save shell comment lines in
+   compound commands in the history, because they could have the effect of
+   commenting out the rest of the command when the entire command is saved as
+   a single history entry (when COMMAND_ORIENTED_HISTORY is enabled).  If
+   LITERAL_HISTORY is set, we're saving lines in the history with embedded
+   newlines, so it's OK to save comment lines.  We also make sure to save
+   multiple-line quoted strings or other constructs. */
+void
+maybe_add_history (line)
+     char *line;
+{
+  hist_last_line_added = 0;
+
+  /* Don't use the value of history_control to affect the second
+     and subsequent lines of a multi-line command (old code did
+     this only when command_oriented_history is enabled). */
+  if (current_command_line_count > 1)
+    {
+      if (current_command_first_line_saved &&
+         (literal_history || dstack.delimiter_depth != 0 || shell_comment (line) == 0))
+       bash_add_history (line);
+      return;
+    }
+
+  /* This is the first line of a (possible multi-line) command.  Note whether
+     or not we should save the first line and remember it. */
+  current_command_first_line_saved = check_add_history (line, 0);
+}
+
+/* Just check LINE against HISTCONTROL and HISTIGNORE and add it to the
+   history if it's OK.  Used by `history -s' as well as maybe_add_history().
+   Returns 1 if the line was saved in the history, 0 otherwise. */
+int
+check_add_history (line, force)
+     char *line;
+     int force;
+{
+  if (check_history_control (line) && history_should_ignore (line) == 0)
+    {
+      /* We're committed to saving the line.  If the user has requested it,
+        remove other matching lines from the history. */
+      if (history_control & HC_ERASEDUPS)
+       hc_erasedups (line);
+        
+      if (force)
+       {
+         really_add_history (line);
+         using_history ();
+       }
+      else
+       bash_add_history (line);
+      return 1;
+    }
+  return 0;
+}
+
+/* Add a line to the history list.
+   The variable COMMAND_ORIENTED_HISTORY controls the style of history
+   remembering;  when non-zero, and LINE is not the first line of a
+   complete parser construct, append LINE to the last history line instead
+   of adding it as a new line. */
+void
+bash_add_history (line)
+     char *line;
+{
+  int add_it, offset, curlen;
+  HIST_ENTRY *current, *old;
+  char *chars_to_add, *new_line;
+
+  add_it = 1;
+  if (command_oriented_history && current_command_line_count > 1)
+    {
+      chars_to_add = literal_history ? "\n" : history_delimiting_chars ();
+
+      using_history ();
+      current = previous_history ();
+
+      if (current)
+       {
+         /* If the previous line ended with an escaped newline (escaped
+            with backslash, but otherwise unquoted), then remove the quoted
+            newline, since that is what happens when the line is parsed. */
+         curlen = strlen (current->line);
+
+         if (dstack.delimiter_depth == 0 && current->line[curlen - 1] == '\\' &&
+             current->line[curlen - 2] != '\\')
+           {
+             current->line[curlen - 1] = '\0';
+             curlen--;
+             chars_to_add = "";
+           }
+
+         new_line = (char *)xmalloc (1
+                                     + curlen
+                                     + strlen (line)
+                                     + strlen (chars_to_add));
+         sprintf (new_line, "%s%s%s", current->line, chars_to_add, line);
+         offset = where_history ();
+         old = replace_history_entry (offset, new_line, current->data);
+         free (new_line);
+
+         if (old)
+           free_history_entry (old);
+
+         add_it = 0;
+       }
+    }
+
+  if (add_it)
+    really_add_history (line);
+
+  using_history ();
+}
+
+static void
+really_add_history (line)
+     char *line;
+{
+  hist_last_line_added = 1;
+  hist_last_line_pushed = 0;
+  add_history (line);
+  history_lines_this_session++;
+}
+
+int
+history_number ()
+{
+  using_history ();
+  return (remember_on_history ? history_base + where_history () : 1);
+}
+
+static int
+should_expand (s)
+     char *s;
+{
+  char *p;
+
+  for (p = s; p && *p; p++)
+    {
+      if (*p == '\\')
+       p++;
+      else if (*p == '&')
+       return 1;
+    }
+  return 0;
+}
+
+static int
+histignore_item_func (ign)
+     struct ign *ign;
+{
+  if (should_expand (ign->val))
+    ign->flags |= HIGN_EXPAND;
+  return (0);
+}
+
+void
+setup_history_ignore (varname)
+     char *varname;
+{
+  setup_ignore_patterns (&histignore);
+}
+
+static HIST_ENTRY *
+last_history_entry ()
+{
+  HIST_ENTRY *he;
+
+  using_history ();
+  he = previous_history ();
+  using_history ();
+  return he;
+}
+
+char *
+last_history_line ()
+{
+  HIST_ENTRY *he;
+
+  he = last_history_entry ();
+  if (he == 0)
+    return ((char *)NULL);
+  return he->line;
+}
+
+static char *
+expand_histignore_pattern (pat)
+     char *pat;
+{
+  HIST_ENTRY *phe;
+  char *ret;
+
+  phe = last_history_entry ();
+
+  if (phe == (HIST_ENTRY *)0)
+    return (savestring (pat));
+
+  ret = strcreplace (pat, '&', phe->line, 1);
+
+  return ret;
+}
+
+/* Return 1 if we should not put LINE into the history according to the
+   patterns in HISTIGNORE. */
+static int
+history_should_ignore (line)
+     char *line;
+{
+  register int i, match;
+  char *npat;
+
+  if (histignore.num_ignores == 0)
+    return 0;
+
+  for (i = match = 0; i < histignore.num_ignores; i++)
+    {
+      if (histignore.ignores[i].flags & HIGN_EXPAND)
+       npat = expand_histignore_pattern (histignore.ignores[i].val);
+      else
+       npat = histignore.ignores[i].val;
+
+      match = strmatch (npat, line, FNMATCH_EXTFLAG) != FNM_NOMATCH;
+
+      if (histignore.ignores[i].flags & HIGN_EXPAND)
+       free (npat);
+
+      if (match)
+       break;
+    }
+
+  return match;
+}
+#endif /* HISTORY */
index 0a01d691eabb0bf0ecc4c8e93375e090749fb37c..35929aca4dcc508c25b92e641e14eea7f79e1fb7 100644 (file)
@@ -31,6 +31,7 @@
 #define HC_IGNBOTH     (HC_IGNSPACE|HC_IGNDUPS)
 
 extern int remember_on_history;
+extern int enable_history_list;                /* value for `set -o history' */
 extern int history_lines_this_session;
 extern int history_lines_in_file;
 extern int history_expansion;
index e91e6e3c03bcda9413cef8cf009b8be230817682..9c0ec21c6be3c5b1565abc7a372ecc4bdd2d0789 100644 (file)
@@ -1,6 +1,6 @@
 /* bashline.c -- Bash's interface to the readline library. */
 
-/* Copyright (C) 1987-2006 Free Software Foundation, Inc.
+/* Copyright (C) 1987-2008 Free Software Foundation, Inc.
 
    This file is part of GNU Bash, the Bourne Again SHell.
 
@@ -100,6 +100,8 @@ static int history_and_alias_expand_line __P((int, int));
 #endif
 
 /* Helper functions for Readline. */
+static char *restore_tilde __P((char *, char *));
+
 static void bash_directory_expansion __P((char **));
 static int bash_directory_completion_hook __P((char **));
 static int filename_completion_ignore __P((char **));
@@ -1070,8 +1072,9 @@ attempt_shell_completion (text, start, end)
 
 #if defined (PROGRAMMABLE_COMPLETION)
   /* Attempt programmable completion. */
-  if (!matches && in_command_position == 0 && prog_completion_enabled &&
-      (progcomp_size () > 0) && current_prompt_string == ps1_prompt)
+  if (matches == 0 && (in_command_position == 0 || text[0] == '\0') &&
+      prog_completion_enabled && (progcomp_size () > 0) &&
+      current_prompt_string == ps1_prompt)
     {
       int s, e, foundcs;
       char *n;
@@ -1084,7 +1087,9 @@ attempt_shell_completion (text, start, end)
       s = find_cmd_start (start);
       e = find_cmd_end (end);
       n = find_cmd_name (s);
-      if (e > s && assignment (n, 0) == 0)
+      if (e == 0 && e == s && text[0] == '\0')
+        prog_complete_matches = programmable_completions ("_EmptycmD_", text, s, e, &foundcs);
+      else if (e > s && assignment (n, 0) == 0)
        prog_complete_matches = programmable_completions (n, text, s, e, &foundcs);
       else
        foundcs = 0;
@@ -1092,7 +1097,8 @@ attempt_shell_completion (text, start, end)
       /* 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. */
+        option has been set with the `-o default' option to complete or
+        compopt. */
       if (foundcs)
        {
          pcomp_set_readline_variables (foundcs, 1);
@@ -1230,8 +1236,10 @@ command_word_completion_function (hint_text, state)
   static char *filename_hint = (char *)NULL;
   static char *dequoted_hint = (char *)NULL;
   static char *directory_part = (char *)NULL;
+  static char **glob_matches = (char **)NULL;
   static int path_index, hint_len, dequoted_len, istate, igncase;
   static int mapping_over, local_index, searching_path, hint_is_dir;
+  static int old_glob_ignore_case, globpat;
   static SHELL_VAR **varlist = (SHELL_VAR **)NULL;
 #if defined (ALIAS)
   static alias_t **alias_list = (alias_t **)NULL;
@@ -1240,7 +1248,7 @@ command_word_completion_function (hint_text, state)
 
   /* 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 (state == 0)
     {
       if (dequoted_hint && dequoted_hint != hint)
        free (dequoted_hint);
@@ -1254,11 +1262,19 @@ command_word_completion_function (hint_text, state)
       temp = rl_variable_value ("completion-ignore-case");
       igncase = strcmp (temp, "on") == 0;
 
+      if (glob_matches)
+       {
+         free (glob_matches);
+         glob_matches = (char **)NULL;
+       }
+
+      globpat = glob_pattern_p (hint_text);
+
       /* 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))
+      if (globpat || absolute_program (hint_text))
        {
          /* Perform tilde expansion on what's passed, so we don't end up
             passing filenames with tildes directly to stat(). */
@@ -1297,9 +1313,18 @@ command_word_completion_function (hint_text, state)
 
          filename_hint = savestring (hint);
 
-         mapping_over = 4;
          istate = 0;
-         goto inner;
+
+         if (globpat)
+           {
+             mapping_over = 5;
+             goto globword;
+           }
+         else
+           {
+             mapping_over = 4;
+             goto inner;
+           }
        }
 
       dequoted_hint = hint = savestring (hint_text);
@@ -1398,6 +1423,50 @@ command_word_completion_function (hint_text, state)
       mapping_over++;
     }
 
+globword:
+  /* Limited support for completing command words with globbing chars.  Only
+     a single match (multiple matches that end up reducing the number of
+     characters in the common prefix are bad) will ever be returned on
+     regular completion. */
+  if (glob_pattern_p (hint))
+    {
+      if (state == 0)
+       {
+         glob_ignore_case = igncase;
+         glob_matches = shell_glob_filename (hint);
+         glob_ignore_case = old_glob_ignore_case;
+
+         if (GLOB_FAILED (glob_matches) || glob_matches == 0)
+           {
+             glob_matches = (char **)NULL;
+             return ((char *)NULL);
+           }
+
+         local_index = 0;
+               
+         if (glob_matches[1] && rl_completion_type == TAB)     /* multiple matches are bad */
+           return ((char *)NULL);
+       }
+
+      while (val = glob_matches[local_index++])
+        {
+         if (executable_or_directory (val))
+           {
+             if (*hint_text == '~')
+               {
+                 temp = restore_tilde (val, directory_part);
+                 free (val);
+                 val = temp;
+               }
+             return (val);
+           }
+         free (val);
+        }
+
+      glob_ignore_case = old_glob_ignore_case;
+      return ((char *)NULL);
+    }
+
   /* If the text passed is a directory in the current directory, return it
      as a possible match.  Executables in directories in the current
      directory can be specified using relative pathnames and successfully
@@ -1415,7 +1484,7 @@ command_word_completion_function (hint_text, state)
 
   istate = (val != (char *)NULL);
 
-  if (!istate)
+  if (istate == 0)
     {
       char *current_path;
 
@@ -1477,41 +1546,7 @@ command_word_completion_function (hint_text, state)
          /* If we performed tilde expansion, restore the original
             filename. */
          if (*hint_text == '~')
-           {
-             int l, vl, dl, dl2, xl;
-             char *rd, *dh2, *expdir;
-
-             vl = strlen (val);
-
-             rd = savestring (filename_hint);
-             bash_directory_expansion (&rd);
-             dl = strlen (rd);
-             free (rd);
-
-             dh2 = directory_part ? bash_dequote_filename (directory_part, 0) : 0;
-             bash_directory_expansion (&dh2);
-             dl2 = strlen (dh2);
-
-             expdir = bash_tilde_expand (directory_part, 0);
-             xl = strlen (expdir);
-             free (expdir);
-
-             /*
-                dh2 = unexpanded but dequoted tilde-prefix
-                dl = length of entire passed filename
-                dl2 = length of tilde-prefix
-                expdir = tilde-expanded tilde-prefix
-                xl = length of expanded tilde-prefix
-                l = length of remainder after tilde-prefix
-             */
-             l = (vl - xl) + 1;
-
-             temp = (char *)xmalloc (dl2 + 2 + l);
-             strcpy (temp, dh2);
-             strcpy (temp + dl2, val + xl);
-
-             free (dh2);
-           }
+           temp = restore_tilde (val, directory_part);
          else
            temp = savestring (val);
          freetemp = 1;
@@ -2308,6 +2343,45 @@ bash_ignore_everything (names)
   return 0;
 }
 
+/* Replace a tilde-prefix in VAL with a `~', assuming the user typed it.  VAL
+   is an expanded filename.  DIRECTORY_PART is the tilde-prefix portion
+   of the un-tilde-expanded version of VAL (what the user typed). */
+static char *
+restore_tilde (val, directory_part)
+     char *val, *directory_part;
+{
+  int l, vl, dl2, xl;
+  char *dh2, *expdir, *ret;
+
+  vl = strlen (val);
+
+  /* We need to duplicate the expansions readline performs on the directory
+     portion before passing it to our completion function. */
+  dh2 = directory_part ? bash_dequote_filename (directory_part, 0) : 0;
+  bash_directory_expansion (&dh2);
+  dl2 = strlen (dh2);
+
+  expdir = bash_tilde_expand (directory_part, 0);
+  xl = strlen (expdir);
+  free (expdir);
+
+  /*
+     dh2 = unexpanded but dequoted tilde-prefix
+     dl2 = length of tilde-prefix
+     expdir = tilde-expanded tilde-prefix
+     xl = length of expanded tilde-prefix
+     l = length of remainder after tilde-prefix
+  */
+  l = (vl - xl) + 1;
+
+  ret = (char *)xmalloc (dl2 + 2 + l);
+  strcpy (ret, dh2);
+  strcpy (ret + dl2, val + xl);
+
+  free (dh2);
+  return (ret);
+}
+
 /* 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. */
index f9041a2337c1cf546053352f4c63b73eadc4732a..ca968a41f66e6f31790d9433b1609cd3db634b92 100644 (file)
@@ -1070,8 +1070,9 @@ attempt_shell_completion (text, start, end)
 
 #if defined (PROGRAMMABLE_COMPLETION)
   /* Attempt programmable completion. */
-  if (!matches && in_command_position == 0 && prog_completion_enabled &&
-      (progcomp_size () > 0) && current_prompt_string == ps1_prompt)
+  if (matches == 0 && (in_command_position == 0 || text[0] == '\0') &&
+      prog_completion_enabled && (progcomp_size () > 0) &&
+      current_prompt_string == ps1_prompt)
     {
       int s, e, foundcs;
       char *n;
@@ -1084,7 +1085,9 @@ attempt_shell_completion (text, start, end)
       s = find_cmd_start (start);
       e = find_cmd_end (end);
       n = find_cmd_name (s);
-      if (e > s && assignment (n, 0) == 0)
+      if (e == 0 && e == s && text[0] == '\0')
+        prog_complete_matches = programmable_completions ("_EmptycmD_", text, s, e, &foundcs);
+      else if (e > s && assignment (n, 0) == 0)
        prog_complete_matches = programmable_completions (n, text, s, e, &foundcs);
       else
        foundcs = 0;
@@ -1092,16 +1095,11 @@ attempt_shell_completion (text, start, end)
       /* 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. */
+        option has been set with the `-o default' option to complete or
+        compopt. */
       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;
+         pcomp_set_readline_variables (foundcs, 1);
          /* Turn what the programmable completion code returns into what
             readline wants.  I should have made compute_lcd_of_matches
             external... */
@@ -1421,7 +1419,7 @@ command_word_completion_function (hint_text, state)
 
   istate = (val != (char *)NULL);
 
-  if (!istate)
+  if (istate == 0)
     {
       char *current_path;
 
@@ -1460,6 +1458,28 @@ command_word_completion_function (hint_text, state)
   val = rl_filename_completion_function (filename_hint, istate);
   istate = 1;
 
+  if (glob_pattern_p (hint))
+    {
+      char **temp;
+
+      if (state > 0)
+        return ((char *)NULL);
+      temp = shell_glob_filename (hint);
+      if (GLOB_FAILED (temp))
+       return ((char *)NULL);
+      if (temp && temp[1])     /* multiple matches are bad */
+       {
+         strvec_dispose (temp);
+         return ((char *)NULL);
+       }
+      val = temp[0];
+      free (temp);
+      if (val && (searching_path ? executable_file (val) : executable_or_directory (val)))
+        return (val);
+      free (val);
+      return ((char *)NULL);
+    }      
+
   if (val == 0)
     {
       /* If the hint text is an absolute program, then don't bother
@@ -2862,9 +2882,17 @@ bash_dequote_filename (text, quote_char)
   ret = (char *)xmalloc (l + 1);
   for (quoted = quote_char, p = text, r = ret; p && *p; p++)
     {
-      /* Allow backslash-quoted characters to pass through unscathed. */
+      /* Allow backslash-escaped characters to pass through unscathed. */
       if (*p == '\\')
        {
+         /* Backslashes are preserved within single quotes. */
+         if (quoted == '\'')
+           *r++ = *p;
+         /* Backslashes are preserved within double quotes unless the
+            character is one that is defined to be escaped */
+         else if (quoted == '"' && ((sh_syntaxtab[p[1]] & CBSDQUOTE) == 0))
+           *r++ = *p;
+
          *r++ = *++p;
          if (*p == '\0')
            break;
index d4956d26bfdc674dd0097016b0476c7b5a53609e..d39d221310ba0329592bbb599b5a8992eda7002d 100644 (file)
@@ -1,6 +1,6 @@
 /* bashline.c -- Bash's interface to the readline library. */
 
-/* Copyright (C) 1987-2006 Free Software Foundation, Inc.
+/* Copyright (C) 1987-2008 Free Software Foundation, Inc.
 
    This file is part of GNU Bash, the Bourne Again SHell.
 
@@ -1070,8 +1070,9 @@ attempt_shell_completion (text, start, end)
 
 #if defined (PROGRAMMABLE_COMPLETION)
   /* Attempt programmable completion. */
-  if (!matches && in_command_position == 0 && prog_completion_enabled &&
-      (progcomp_size () > 0) && current_prompt_string == ps1_prompt)
+  if (matches == 0 && (in_command_position == 0 || text[0] == '\0') &&
+      prog_completion_enabled && (progcomp_size () > 0) &&
+      current_prompt_string == ps1_prompt)
     {
       int s, e, foundcs;
       char *n;
@@ -1084,7 +1085,9 @@ attempt_shell_completion (text, start, end)
       s = find_cmd_start (start);
       e = find_cmd_end (end);
       n = find_cmd_name (s);
-      if (e > s && assignment (n, 0) == 0)
+      if (e == 0 && e == s && text[0] == '\0')
+        prog_complete_matches = programmable_completions ("_EmptycmD_", text, s, e, &foundcs);
+      else if (e > s && assignment (n, 0) == 0)
        prog_complete_matches = programmable_completions (n, text, s, e, &foundcs);
       else
        foundcs = 0;
@@ -1092,16 +1095,11 @@ attempt_shell_completion (text, start, end)
       /* 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. */
+        option has been set with the `-o default' option to complete or
+        compopt. */
       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;
+         pcomp_set_readline_variables (foundcs, 1);
          /* Turn what the programmable completion code returns into what
             readline wants.  I should have made compute_lcd_of_matches
             external... */
@@ -1238,6 +1236,7 @@ command_word_completion_function (hint_text, state)
   static char *directory_part = (char *)NULL;
   static int path_index, hint_len, dequoted_len, istate, igncase;
   static int mapping_over, local_index, searching_path, hint_is_dir;
+  static int old_glob_ignore_case;
   static SHELL_VAR **varlist = (SHELL_VAR **)NULL;
 #if defined (ALIAS)
   static alias_t **alias_list = (alias_t **)NULL;
@@ -1246,7 +1245,7 @@ command_word_completion_function (hint_text, state)
 
   /* 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 (state == 0)
     {
       if (dequoted_hint && dequoted_hint != hint)
        free (dequoted_hint);
@@ -1260,6 +1259,8 @@ command_word_completion_function (hint_text, state)
       temp = rl_variable_value ("completion-ignore-case");
       igncase = strcmp (temp, "on") == 0;
 
+      old_glob_ignore_case = glob_ignore_case;
+
       /* 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
@@ -1421,7 +1422,7 @@ command_word_completion_function (hint_text, state)
 
   istate = (val != (char *)NULL);
 
-  if (!istate)
+  if (istate == 0)
     {
       char *current_path;
 
@@ -1460,6 +1461,36 @@ command_word_completion_function (hint_text, state)
   val = rl_filename_completion_function (filename_hint, istate);
   istate = 1;
 
+  /* Limited support for completing command words with globbing chars.  Only
+     a single match (multiple matches that end up reducing the number of
+     characters in the common prefix are bad) will ever be returned. */
+  if (glob_pattern_p (hint))
+    {
+      char **temp;
+
+      if (state > 0)
+       {
+          glob_ignore_case = old_glob_ignore_case;
+         return ((char *)NULL);
+       }
+      glob_ignore_case = igncase;
+      temp = shell_glob_filename (hint);
+      glob_ignore_case = old_glob_ignore_case;
+      if (GLOB_FAILED (temp))
+       return ((char *)NULL);
+      if (temp && temp[1])     /* multiple matches are bad */
+       {
+         strvec_dispose (temp);
+         return ((char *)NULL);
+       }
+      val = temp[0];
+      free (temp);
+      if (val && executable_or_directory (val))
+        return (val);
+      free (val);
+      return ((char *)NULL);
+    }      
+
   if (val == 0)
     {
       /* If the hint text is an absolute program, then don't bother
@@ -1484,42 +1515,38 @@ command_word_completion_function (hint_text, state)
             filename. */
          if (*hint_text == '~')
            {
-             int l, tl, vl, dl, dl2, tlen, xl;
-             char *rd, *dh, *dh2, *expdir;
-
-             dh = bash_dequote_filename ((char *)hint_text, 0);
-             dh2 = directory_part ? bash_dequote_filename (directory_part, 0) : 0;
+             int l, vl, dl, dl2, xl;
+             char *rd, *dh2, *expdir;
 
              vl = strlen (val);
-             tl = strlen (dh);
 
              rd = savestring (filename_hint);
              bash_directory_expansion (&rd);
              dl = strlen (rd);
              free (rd);
 
+             dh2 = directory_part ? bash_dequote_filename (directory_part, 0) : 0;
              bash_directory_expansion (&dh2);
              dl2 = strlen (dh2);
 
              expdir = bash_tilde_expand (directory_part, 0);
              xl = strlen (expdir);
+             free (expdir);
 
              /*
+                dh2 = unexpanded but dequoted tilde-prefix
                 dl = length of entire passed filename
                 dl2 = length of tilde-prefix
-                tlen = number of characters past tilde prefix in original name
                 expdir = tilde-expanded tilde-prefix
                 xl = length of expanded tilde-prefix
                 l = length of remainder after tilde-prefix
              */
-             tlen = dl - dl2;
              l = (vl - xl) + 1;
 
              temp = (char *)xmalloc (dl2 + 2 + l);
              strcpy (temp, dh2);
              strcpy (temp + dl2, val + xl);
 
-             free (dh);
              free (dh2);
            }
          else
@@ -2866,9 +2893,17 @@ bash_dequote_filename (text, quote_char)
   ret = (char *)xmalloc (l + 1);
   for (quoted = quote_char, p = text, r = ret; p && *p; p++)
     {
-      /* Allow backslash-quoted characters to pass through unscathed. */
+      /* Allow backslash-escaped characters to pass through unscathed. */
       if (*p == '\\')
        {
+         /* Backslashes are preserved within single quotes. */
+         if (quoted == '\'')
+           *r++ = *p;
+         /* Backslashes are preserved within double quotes unless the
+            character is one that is defined to be escaped */
+         else if (quoted == '"' && ((sh_syntaxtab[p[1]] & CBSDQUOTE) == 0))
+           *r++ = *p;
+
          *r++ = *++p;
          if (*p == '\0')
            break;
diff --git a/bashline.c.save3 b/bashline.c.save3
new file mode 100644 (file)
index 0000000..84506ab
--- /dev/null
@@ -0,0 +1,3273 @@
+/* bashline.c -- Bash's interface to the readline library. */
+
+/* Copyright (C) 1987-2008 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;
+
+/* Flag values for the final argument to bash_default_completion */
+#define DEFCOMP_CMDPOS         1
+
+/* 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, SD_NOJMP)) <= 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, SD_NOJMP);
+  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", SD_NOJMP);
+
+  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, dflags;
+  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 == 0 && (in_command_position == 0 || text[0] == '\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 == 0 && e == s && text[0] == '\0')
+        prog_complete_matches = programmable_completions ("_EmptycmD_", text, s, e, &foundcs);
+      else 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 or
+        compopt. */
+      if (foundcs)
+       {
+         pcomp_set_readline_variables (foundcs, 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)
+    {
+      dflags = 0;
+      if (in_command_position)
+       dflags |= DEFCOMP_CMDPOS;
+      matches = bash_default_completion (text, start, end, qc, dflags);
+    }
+
+  return matches;
+}
+
+char **
+bash_default_completion (text, start, end, qc, compflags)
+     const char *text;
+     int start, end, qc, compflags;
+{
+  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 == 0 && (compflags & DEFCOMP_CMDPOS))
+    {
+      /* If END == START and text[0] == 0, we are trying to complete an empty
+        command word. */
+      if (no_empty_command_completion && end == start && text[0] == '\0')
+       {
+         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 char *directory_part = (char *)NULL;
+  static char **glob_matches = (char **)NULL;
+  static int path_index, hint_len, dequoted_len, istate, igncase;
+  static int mapping_over, local_index, searching_path, hint_is_dir;
+  static int old_glob_ignore_case;
+  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 == 0)
+    {
+      if (dequoted_hint && dequoted_hint != hint)
+       free (dequoted_hint);
+      if (hint)
+       free (hint);
+
+      mapping_over = searching_path = 0;
+      hint_is_dir = CMD_IS_DIR (hint_text);
+      val = (char *)NULL;
+
+      temp = rl_variable_value ("completion-ignore-case");
+      igncase = strcmp (temp, "on") == 0;
+
+      if (glob_matches)
+       {
+         strvec_dispose (glob_matches);
+         glob_matches = (char **)NULL;
+       }
+
+      if (glob_pattern_p (hint_text))
+       {
+         hint = (*hint_text == '~') ? bash_tilde_expand (hint_text, 0) : savestring (hint_text);
+        
+         old_glob_ignore_case = glob_ignore_case;
+
+         local_index = 0;
+         mapping_over = 5;
+         goto globword;
+       }
+
+      /* 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);
+             directory_part = savestring (hint_text);
+             temp = strchr (directory_part, '/');
+             if (temp)
+               *temp = 0;
+             else
+               {
+                 free (directory_part);
+                 directory_part = (char *)NULL;
+               }
+           }
+         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++;
+    }
+
+globword:
+  /* Limited support for completing command words with globbing chars.  Only
+     a single match (multiple matches that end up reducing the number of
+     characters in the common prefix are bad) will ever be returned. */
+  if (glob_pattern_p (hint))
+    {
+      if (state > 0)
+       {
+          glob_ignore_case = old_glob_ignore_case;
+         return ((char *)NULL);
+       }
+      glob_ignore_case = igncase;
+      glob_matches = shell_glob_filename (hint);
+      glob_ignore_case = old_glob_ignore_case;
+      if (GLOB_FAILED (glob_matches))
+       return ((char *)NULL);
+      if (glob_matches && glob_matches[1])     /* multiple matches are bad */
+       {
+         strvec_dispose (glob_matches);
+         glob_matches = (char **)NULL;
+         return ((char *)NULL);
+       }
+      val = glob_matches[0];
+      free (glob_matches);
+      glob_matches = (char **)NULL;
+      if (val && executable_or_directory (val))
+        return (val);
+      free (val);
+      return ((char *)NULL);
+    }      
+
+  /* If the text passed is a directory in the current directory, return it
+     as a possible match.  Executables in directories in the current
+     directory can be specified using relative pathnames and successfully
+     executed even when `.' is not in $PATH. */
+  if (hint_is_dir)
+    {
+      hint_is_dir = 0; /* only return the hint text once */
+      return (savestring (hint_text));
+    }
+    
+  /* 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 == 0)
+    {
+      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);
+
+      searching_path = 1;
+      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);
+    }
+
+ 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;
+
+      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, vl, dl, dl2, xl;
+             char *rd, *dh2, *expdir;
+
+             vl = strlen (val);
+
+             rd = savestring (filename_hint);
+             bash_directory_expansion (&rd);
+             dl = strlen (rd);
+             free (rd);
+
+             dh2 = directory_part ? bash_dequote_filename (directory_part, 0) : 0;
+             bash_directory_expansion (&dh2);
+             dl2 = strlen (dh2);
+
+             expdir = bash_tilde_expand (directory_part, 0);
+             xl = strlen (expdir);
+             free (expdir);
+
+             /*
+                dh2 = unexpanded but dequoted tilde-prefix
+                dl = length of entire passed filename
+                dl2 = length of tilde-prefix
+                expdir = tilde-expanded tilde-prefix
+                xl = length of expanded tilde-prefix
+                l = length of remainder after tilde-prefix
+             */
+             l = (vl - xl) + 1;
+
+             temp = (char *)xmalloc (dl2 + 2 + l);
+             strcpy (temp, dh2);
+             strcpy (temp + dl2, val + xl);
+
+             free (dh2);
+           }
+         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 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))
+#else
+      /* If we have found a match, and it is an executable file, return it.
+        We don't return directory names when searching $PATH, since the
+        bash execution code won't find executables in directories which
+        appear in directories in $PATH when they're specified using
+        relative pathnames. */
+      if (match && (searching_path ? executable_file (val) : executable_or_directory (val)))
+#endif
+       {
+         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; *alist; alist++)
+       {
+         aentry = *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.  NAME undergoes tilde expansion. */
+static int
+test_for_directory (name)
+     const char *name;
+{
+  char *fn;
+  int r;
+
+  fn = bash_tilde_expand (name, 0);
+  r = file_isdir (fn);
+  free (fn);
+
+  return (r);
+}
+
+/* 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 (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;
+    }
+
+#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, W_NOCOMSUB);  /* 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 == 0 && (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-escaped characters to pass through unscathed. */
+      if (*p == '\\')
+       {
+         /* Backslashes are preserved within single quotes. */
+         if (quoted == '\'')
+           *r++ = *p;
+         /* Backslashes are preserved within double quotes unless the
+            character is one that is defined to be escaped */
+         else if (quoted == '"' && ((sh_syntaxtab[p[1]] & CBSDQUOTE) == 0))
+           *r++ = *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;
+
+  qc = rl_dispatching ? rl_completion_quote_character : 0;  
+  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 */
diff --git a/bashline.c.save4 b/bashline.c.save4
new file mode 100644 (file)
index 0000000..43f73d4
--- /dev/null
@@ -0,0 +1,3279 @@
+/* bashline.c -- Bash's interface to the readline library. */
+
+/* Copyright (C) 1987-2008 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;
+
+/* Flag values for the final argument to bash_default_completion */
+#define DEFCOMP_CMDPOS         1
+
+/* 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, SD_NOJMP)) <= 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, SD_NOJMP);
+  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", SD_NOJMP);
+
+  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, dflags;
+  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 == 0 && (in_command_position == 0 || text[0] == '\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 == 0 && e == s && text[0] == '\0')
+        prog_complete_matches = programmable_completions ("_EmptycmD_", text, s, e, &foundcs);
+      else 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 or
+        compopt. */
+      if (foundcs)
+       {
+         pcomp_set_readline_variables (foundcs, 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)
+    {
+      dflags = 0;
+      if (in_command_position)
+       dflags |= DEFCOMP_CMDPOS;
+      matches = bash_default_completion (text, start, end, qc, dflags);
+    }
+
+  return matches;
+}
+
+char **
+bash_default_completion (text, start, end, qc, compflags)
+     const char *text;
+     int start, end, qc, compflags;
+{
+  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 == 0 && (compflags & DEFCOMP_CMDPOS))
+    {
+      /* If END == START and text[0] == 0, we are trying to complete an empty
+        command word. */
+      if (no_empty_command_completion && end == start && text[0] == '\0')
+       {
+         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 char *directory_part = (char *)NULL;
+  static char **glob_matches = (char **)NULL;
+  static int path_index, hint_len, dequoted_len, istate, igncase;
+  static int mapping_over, local_index, searching_path, hint_is_dir;
+  static int old_glob_ignore_case;
+  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 == 0)
+    {
+      if (dequoted_hint && dequoted_hint != hint)
+       free (dequoted_hint);
+      if (hint)
+       free (hint);
+
+      mapping_over = searching_path = 0;
+      hint_is_dir = CMD_IS_DIR (hint_text);
+      val = (char *)NULL;
+
+      temp = rl_variable_value ("completion-ignore-case");
+      igncase = strcmp (temp, "on") == 0;
+
+      if (glob_matches)
+       {
+         free (glob_matches);
+         glob_matches = (char **)NULL;
+       }
+
+      if (glob_pattern_p (hint_text))
+       {
+         hint = (*hint_text == '~') ? bash_tilde_expand (hint_text, 0) : savestring (hint_text);
+         dequoted_hint = hint;        
+
+         old_glob_ignore_case = glob_ignore_case;
+
+         local_index = 0;
+         mapping_over = 5;
+         goto globword;
+       }
+
+      /* 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);
+             directory_part = savestring (hint_text);
+             temp = strchr (directory_part, '/');
+             if (temp)
+               *temp = 0;
+             else
+               {
+                 free (directory_part);
+                 directory_part = (char *)NULL;
+               }
+           }
+         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++;
+    }
+
+globword:
+  /* Limited support for completing command words with globbing chars.  Only
+     a single match (multiple matches that end up reducing the number of
+     characters in the common prefix are bad) will ever be returned on
+     regular completion. */
+  if (glob_pattern_p (hint))
+    {
+      if (state == 0)
+       {
+         glob_ignore_case = igncase;
+         glob_matches = shell_glob_filename (hint);
+         glob_ignore_case = old_glob_ignore_case;
+
+         if (GLOB_FAILED (glob_matches))
+           {
+             glob_matches = (char **)NULL;
+             return ((char *)NULL);
+           }
+
+         if (glob_matches && glob_matches[1] && rl_completion_type == TAB)     /* multiple matches are bad */
+           return ((char *)NULL);
+
+         local_index = 0;
+       }
+
+      while (val = glob_matches[local_index++])
+        {
+         if (executable_or_directory (val))
+           return (val);
+         free (val);
+        }
+
+      glob_ignore_case = old_glob_ignore_case;
+      return ((char *)NULL);
+    }
+
+  /* If the text passed is a directory in the current directory, return it
+     as a possible match.  Executables in directories in the current
+     directory can be specified using relative pathnames and successfully
+     executed even when `.' is not in $PATH. */
+  if (hint_is_dir)
+    {
+      hint_is_dir = 0; /* only return the hint text once */
+      return (savestring (hint_text));
+    }
+    
+  /* 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 == 0)
+    {
+      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);
+
+      searching_path = 1;
+      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);
+    }
+
+ 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;
+
+      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, vl, dl, dl2, xl;
+             char *rd, *dh2, *expdir;
+
+             vl = strlen (val);
+
+             rd = savestring (filename_hint);
+             bash_directory_expansion (&rd);
+             dl = strlen (rd);
+             free (rd);
+
+             dh2 = directory_part ? bash_dequote_filename (directory_part, 0) : 0;
+             bash_directory_expansion (&dh2);
+             dl2 = strlen (dh2);
+
+             expdir = bash_tilde_expand (directory_part, 0);
+             xl = strlen (expdir);
+             free (expdir);
+
+             /*
+                dh2 = unexpanded but dequoted tilde-prefix
+                dl = length of entire passed filename
+                dl2 = length of tilde-prefix
+                expdir = tilde-expanded tilde-prefix
+                xl = length of expanded tilde-prefix
+                l = length of remainder after tilde-prefix
+             */
+             l = (vl - xl) + 1;
+
+             temp = (char *)xmalloc (dl2 + 2 + l);
+             strcpy (temp, dh2);
+             strcpy (temp + dl2, val + xl);
+
+             free (dh2);
+           }
+         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 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))
+#else
+      /* If we have found a match, and it is an executable file, return it.
+        We don't return directory names when searching $PATH, since the
+        bash execution code won't find executables in directories which
+        appear in directories in $PATH when they're specified using
+        relative pathnames. */
+      if (match && (searching_path ? executable_file (val) : executable_or_directory (val)))
+#endif
+       {
+         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; *alist; alist++)
+       {
+         aentry = *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.  NAME undergoes tilde expansion. */
+static int
+test_for_directory (name)
+     const char *name;
+{
+  char *fn;
+  int r;
+
+  fn = bash_tilde_expand (name, 0);
+  r = file_isdir (fn);
+  free (fn);
+
+  return (r);
+}
+
+/* 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 (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;
+    }
+
+#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, W_NOCOMSUB);  /* 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 == 0 && (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-escaped characters to pass through unscathed. */
+      if (*p == '\\')
+       {
+         /* Backslashes are preserved within single quotes. */
+         if (quoted == '\'')
+           *r++ = *p;
+         /* Backslashes are preserved within double quotes unless the
+            character is one that is defined to be escaped */
+         else if (quoted == '"' && ((sh_syntaxtab[p[1]] & CBSDQUOTE) == 0))
+           *r++ = *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;
+
+  qc = rl_dispatching ? rl_completion_quote_character : 0;  
+  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 */
diff --git a/bashline.c.save5 b/bashline.c.save5
new file mode 100644 (file)
index 0000000..b3b10c0
--- /dev/null
@@ -0,0 +1,3321 @@
+/* bashline.c -- Bash's interface to the readline library. */
+
+/* Copyright (C) 1987-2008 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 char *restore_tilde __P((char *, char *));
+
+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;
+
+/* Flag values for the final argument to bash_default_completion */
+#define DEFCOMP_CMDPOS         1
+
+/* 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, SD_NOJMP)) <= 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, SD_NOJMP);
+  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", SD_NOJMP);
+
+  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, dflags;
+  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 == 0 && (in_command_position == 0 || text[0] == '\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 == 0 && e == s && text[0] == '\0')
+        prog_complete_matches = programmable_completions ("_EmptycmD_", text, s, e, &foundcs);
+      else 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 or
+        compopt. */
+      if (foundcs)
+       {
+         pcomp_set_readline_variables (foundcs, 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)
+    {
+      dflags = 0;
+      if (in_command_position)
+       dflags |= DEFCOMP_CMDPOS;
+      matches = bash_default_completion (text, start, end, qc, dflags);
+    }
+
+  return matches;
+}
+
+char **
+bash_default_completion (text, start, end, qc, compflags)
+     const char *text;
+     int start, end, qc, compflags;
+{
+  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 == 0 && (compflags & DEFCOMP_CMDPOS))
+    {
+      /* If END == START and text[0] == 0, we are trying to complete an empty
+        command word. */
+      if (no_empty_command_completion && end == start && text[0] == '\0')
+       {
+         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 char *directory_part = (char *)NULL;
+  static char **glob_matches = (char **)NULL;
+  static int path_index, hint_len, dequoted_len, istate, igncase;
+  static int mapping_over, local_index, searching_path, hint_is_dir;
+  static int old_glob_ignore_case, globpat;
+  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 == 0)
+    {
+      if (dequoted_hint && dequoted_hint != hint)
+       free (dequoted_hint);
+      if (hint)
+       free (hint);
+
+      mapping_over = searching_path = 0;
+      hint_is_dir = CMD_IS_DIR (hint_text);
+      val = (char *)NULL;
+
+      temp = rl_variable_value ("completion-ignore-case");
+      igncase = strcmp (temp, "on") == 0;
+
+      if (glob_matches)
+       {
+         free (glob_matches);
+         glob_matches = (char **)NULL;
+       }
+
+      globpat = glob_pattern_p (hint_text);
+
+      /* 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 (globpat || 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);
+             directory_part = savestring (hint_text);
+             temp = strchr (directory_part, '/');
+             if (temp)
+               *temp = 0;
+             else
+               {
+                 free (directory_part);
+                 directory_part = (char *)NULL;
+               }
+           }
+         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);
+
+         istate = 0;
+
+         if (globpat)
+           {
+             mapping_over = 5;
+             goto globword;
+           }
+         else
+           {
+             mapping_over = 4;
+             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++;
+    }
+
+globword:
+  /* Limited support for completing command words with globbing chars.  Only
+     a single match (multiple matches that end up reducing the number of
+     characters in the common prefix are bad) will ever be returned on
+     regular completion. */
+  if (glob_pattern_p (hint))
+    {
+      if (state == 0)
+       {
+         glob_ignore_case = igncase;
+         glob_matches = shell_glob_filename (hint);
+         glob_ignore_case = old_glob_ignore_case;
+
+         if (GLOB_FAILED (glob_matches))
+           {
+             glob_matches = (char **)NULL;
+             return ((char *)NULL);
+           }
+
+         if (glob_matches && glob_matches[1] && rl_completion_type == TAB)     /* multiple matches are bad */
+           return ((char *)NULL);
+
+         local_index = 0;
+       }
+
+      while (val = glob_matches[local_index++])
+        {
+         if (executable_or_directory (val))
+           return (val);
+         free (val);
+        }
+
+      glob_ignore_case = old_glob_ignore_case;
+      return ((char *)NULL);
+    }
+
+  /* If the text passed is a directory in the current directory, return it
+     as a possible match.  Executables in directories in the current
+     directory can be specified using relative pathnames and successfully
+     executed even when `.' is not in $PATH. */
+  if (hint_is_dir)
+    {
+      hint_is_dir = 0; /* only return the hint text once */
+      return (savestring (hint_text));
+    }
+    
+  /* 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 == 0)
+    {
+      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);
+
+      searching_path = 1;
+      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);
+    }
+
+ 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;
+
+      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, vl, dl2, xl;
+             char *dh2, *expdir;
+
+             vl = strlen (val);
+
+#if 0
+             /* XXX -- don't need this or RD or DL */
+             rd = savestring (filename_hint);
+             bash_directory_expansion (&rd);
+             dl = strlen (rd);
+             free (rd);
+#endif
+
+             dh2 = directory_part ? bash_dequote_filename (directory_part, 0) : 0;
+             bash_directory_expansion (&dh2);
+             dl2 = strlen (dh2);
+
+             expdir = bash_tilde_expand (directory_part, 0);
+             xl = strlen (expdir);
+             free (expdir);
+
+             /*
+                dh2 = unexpanded but dequoted tilde-prefix
+                dl2 = length of tilde-prefix
+                expdir = tilde-expanded tilde-prefix
+                xl = length of expanded tilde-prefix
+                l = length of remainder after tilde-prefix
+             */
+             l = (vl - xl) + 1;
+
+             temp = (char *)xmalloc (dl2 + 2 + l);
+             strcpy (temp, dh2);
+             strcpy (temp + dl2, val + xl);
+
+             free (dh2);
+           }
+         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 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))
+#else
+      /* If we have found a match, and it is an executable file, return it.
+        We don't return directory names when searching $PATH, since the
+        bash execution code won't find executables in directories which
+        appear in directories in $PATH when they're specified using
+        relative pathnames. */
+      if (match && (searching_path ? executable_file (val) : executable_or_directory (val)))
+#endif
+       {
+         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; *alist; alist++)
+       {
+         aentry = *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.  NAME undergoes tilde expansion. */
+static int
+test_for_directory (name)
+     const char *name;
+{
+  char *fn;
+  int r;
+
+  fn = bash_tilde_expand (name, 0);
+  r = file_isdir (fn);
+  free (fn);
+
+  return (r);
+}
+
+/* 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;
+}
+
+/* Replace a tilde-prefix in VAL with a `~', assuming the user typed it.  VAL
+   is an expanded filename.  DIRECTORY_PART is the leading directory portion
+   of the un-tilde-expanded version of VAL. */
+static char *
+restore_tilde (val, directory_part)
+     char *val, *directory_part;
+{
+  int l, vl, dl2, xl;
+  char *dh2, *expdir, *ret;
+
+  vl = strlen (val);
+
+  /* We need to duplicate the expansions readline performs on the directory
+     portion before passing it to our completion function. */
+  dh2 = directory_part ? bash_dequote_filename (directory_part, 0) : 0;
+  bash_directory_expansion (&dh2);
+  dl2 = strlen (dh2);
+
+  expdir = bash_tilde_expand (directory_part, 0);
+  xl = strlen (expdir);
+  free (expdir);
+
+  /*
+     dh2 = unexpanded but dequoted tilde-prefix
+     dl2 = length of tilde-prefix
+     expdir = tilde-expanded tilde-prefix
+     xl = length of expanded tilde-prefix
+     l = length of remainder after tilde-prefix
+  */
+  l = (vl - xl) + 1;
+
+  ret = (char *)xmalloc (dl2 + 2 + l);
+  strcpy (ret, dh2);
+  strcpy (ret + dl2, val + xl);
+
+  free (dh2);
+  return (ret);
+}
+
+/* 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 (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;
+    }
+
+#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, W_NOCOMSUB);  /* 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 == 0 && (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-escaped characters to pass through unscathed. */
+      if (*p == '\\')
+       {
+         /* Backslashes are preserved within single quotes. */
+         if (quoted == '\'')
+           *r++ = *p;
+         /* Backslashes are preserved within double quotes unless the
+            character is one that is defined to be escaped */
+         else if (quoted == '"' && ((sh_syntaxtab[p[1]] & CBSDQUOTE) == 0))
+           *r++ = *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;
+
+  qc = rl_dispatching ? rl_completion_quote_character : 0;  
+  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 1d05bce24bf5efbb18d2f61c2e9917d5b80d199f..6ae7f622cbe3df2e2a51c2bd94286157ff3c4c8d 100644 (file)
@@ -1,6 +1,6 @@
 /* bashline.c -- Bash's interface to the readline library. */
 
-/* Copyright (C) 1987-2006 Free Software Foundation, Inc.
+/* Copyright (C) 1987-2008 Free Software Foundation, Inc.
 
    This file is part of GNU Bash, the Bourne Again SHell.
 
@@ -100,6 +100,8 @@ static int history_and_alias_expand_line __P((int, int));
 #endif
 
 /* Helper functions for Readline. */
+static char *restore_tilde __P((char *, char *));
+
 static void bash_directory_expansion __P((char **));
 static int bash_directory_completion_hook __P((char **));
 static int filename_completion_ignore __P((char **));
@@ -1070,8 +1072,9 @@ attempt_shell_completion (text, start, end)
 
 #if defined (PROGRAMMABLE_COMPLETION)
   /* Attempt programmable completion. */
-  if (!matches && in_command_position == 0 && prog_completion_enabled &&
-      (progcomp_size () > 0) && current_prompt_string == ps1_prompt)
+  if (matches == 0 && (in_command_position == 0 || text[0] == '\0') &&
+      prog_completion_enabled && (progcomp_size () > 0) &&
+      current_prompt_string == ps1_prompt)
     {
       int s, e, foundcs;
       char *n;
@@ -1084,7 +1087,9 @@ attempt_shell_completion (text, start, end)
       s = find_cmd_start (start);
       e = find_cmd_end (end);
       n = find_cmd_name (s);
-      if (e > s && assignment (n, 0) == 0)
+      if (e == 0 && e == s && text[0] == '\0')
+        prog_complete_matches = programmable_completions ("_EmptycmD_", text, s, e, &foundcs);
+      else if (e > s && assignment (n, 0) == 0)
        prog_complete_matches = programmable_completions (n, text, s, e, &foundcs);
       else
        foundcs = 0;
@@ -1092,16 +1097,11 @@ attempt_shell_completion (text, start, end)
       /* 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. */
+        option has been set with the `-o default' option to complete or
+        compopt. */
       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;
+         pcomp_set_readline_variables (foundcs, 1);
          /* Turn what the programmable completion code returns into what
             readline wants.  I should have made compute_lcd_of_matches
             external... */
@@ -1236,8 +1236,10 @@ command_word_completion_function (hint_text, state)
   static char *filename_hint = (char *)NULL;
   static char *dequoted_hint = (char *)NULL;
   static char *directory_part = (char *)NULL;
+  static char **glob_matches = (char **)NULL;
   static int path_index, hint_len, dequoted_len, istate, igncase;
   static int mapping_over, local_index, searching_path, hint_is_dir;
+  static int old_glob_ignore_case, globpat;
   static SHELL_VAR **varlist = (SHELL_VAR **)NULL;
 #if defined (ALIAS)
   static alias_t **alias_list = (alias_t **)NULL;
@@ -1246,7 +1248,7 @@ command_word_completion_function (hint_text, state)
 
   /* 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 (state == 0)
     {
       if (dequoted_hint && dequoted_hint != hint)
        free (dequoted_hint);
@@ -1260,11 +1262,19 @@ command_word_completion_function (hint_text, state)
       temp = rl_variable_value ("completion-ignore-case");
       igncase = strcmp (temp, "on") == 0;
 
+      if (glob_matches)
+       {
+         free (glob_matches);
+         glob_matches = (char **)NULL;
+       }
+
+      globpat = glob_pattern_p (hint_text);
+
       /* 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))
+      if (globpat || absolute_program (hint_text))
        {
          /* Perform tilde expansion on what's passed, so we don't end up
             passing filenames with tildes directly to stat(). */
@@ -1303,9 +1313,18 @@ command_word_completion_function (hint_text, state)
 
          filename_hint = savestring (hint);
 
-         mapping_over = 4;
          istate = 0;
-         goto inner;
+
+         if (globpat)
+           {
+             mapping_over = 5;
+             goto globword;
+           }
+         else
+           {
+             mapping_over = 4;
+             goto inner;
+           }
        }
 
       dequoted_hint = hint = savestring (hint_text);
@@ -1404,6 +1423,50 @@ command_word_completion_function (hint_text, state)
       mapping_over++;
     }
 
+globword:
+  /* Limited support for completing command words with globbing chars.  Only
+     a single match (multiple matches that end up reducing the number of
+     characters in the common prefix are bad) will ever be returned on
+     regular completion. */
+  if (glob_pattern_p (hint))
+    {
+      if (state == 0)
+       {
+         glob_ignore_case = igncase;
+         glob_matches = shell_glob_filename (hint);
+         glob_ignore_case = old_glob_ignore_case;
+
+         if (GLOB_FAILED (glob_matches) || glob_matches == 0)
+           {
+             glob_matches = (char **)NULL;
+             return ((char *)NULL);
+           }
+
+         local_index = 0;
+               
+         if (glob_matches[1] && rl_completion_type == TAB)     /* multiple matches are bad */
+           return ((char *)NULL);
+       }
+
+      while (val = glob_matches[local_index++])
+        {
+         if (executable_or_directory (val))
+           {
+             if (*hint_text == '~')
+               {
+                 temp = restore_tilde (val, directory_part);
+                 free (val);
+                 val = temp;
+               }
+             return (val);
+           }
+         free (val);
+        }
+
+      glob_ignore_case = old_glob_ignore_case;
+      return ((char *)NULL);
+    }
+
   /* If the text passed is a directory in the current directory, return it
      as a possible match.  Executables in directories in the current
      directory can be specified using relative pathnames and successfully
@@ -1421,7 +1484,7 @@ command_word_completion_function (hint_text, state)
 
   istate = (val != (char *)NULL);
 
-  if (!istate)
+  if (istate == 0)
     {
       char *current_path;
 
@@ -1484,15 +1547,18 @@ command_word_completion_function (hint_text, state)
             filename. */
          if (*hint_text == '~')
            {
-             int l, vl, dl, dl2, xl;
-             char *rd, *dh2, *expdir;
+             int l, vl, dl2, xl;
+             char *dh2, *expdir;
 
              vl = strlen (val);
 
+#if 0
+             /* XXX -- don't need this or RD or DL */
              rd = savestring (filename_hint);
              bash_directory_expansion (&rd);
              dl = strlen (rd);
              free (rd);
+#endif
 
              dh2 = directory_part ? bash_dequote_filename (directory_part, 0) : 0;
              bash_directory_expansion (&dh2);
@@ -1504,7 +1570,6 @@ command_word_completion_function (hint_text, state)
 
              /*
                 dh2 = unexpanded but dequoted tilde-prefix
-                dl = length of entire passed filename
                 dl2 = length of tilde-prefix
                 expdir = tilde-expanded tilde-prefix
                 xl = length of expanded tilde-prefix
@@ -2314,6 +2379,45 @@ bash_ignore_everything (names)
   return 0;
 }
 
+/* Replace a tilde-prefix in VAL with a `~', assuming the user typed it.  VAL
+   is an expanded filename.  DIRECTORY_PART is the tilde-prefix portion
+   of the un-tilde-expanded version of VAL (what the user typed). */
+static char *
+restore_tilde (val, directory_part)
+     char *val, *directory_part;
+{
+  int l, vl, dl2, xl;
+  char *dh2, *expdir, *ret;
+
+  vl = strlen (val);
+
+  /* We need to duplicate the expansions readline performs on the directory
+     portion before passing it to our completion function. */
+  dh2 = directory_part ? bash_dequote_filename (directory_part, 0) : 0;
+  bash_directory_expansion (&dh2);
+  dl2 = strlen (dh2);
+
+  expdir = bash_tilde_expand (directory_part, 0);
+  xl = strlen (expdir);
+  free (expdir);
+
+  /*
+     dh2 = unexpanded but dequoted tilde-prefix
+     dl2 = length of tilde-prefix
+     expdir = tilde-expanded tilde-prefix
+     xl = length of expanded tilde-prefix
+     l = length of remainder after tilde-prefix
+  */
+  l = (vl - xl) + 1;
+
+  ret = (char *)xmalloc (dl2 + 2 + l);
+  strcpy (ret, dh2);
+  strcpy (ret + dl2, val + xl);
+
+  free (dh2);
+  return (ret);
+}
+
 /* 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. */
index f75e5038bdb61005a8e73989858ea1d0f8ee8858..265fc6c370cbac608856462e3fe4db5146f48490 100644 (file)
@@ -1,6 +1,6 @@
 /* builtins.h -- What a builtin looks like, and where to find them. */
 
-/* Copyright (C) 1987,1991 Free Software Foundation, Inc.
+/* Copyright (C) 1987-2007 Free Software Foundation, Inc.
 
    This file is part of GNU Bash, the Bourne Again SHell.
 
 #endif
 
 /* Flags describing various things about a builtin. */
-#define BUILTIN_ENABLED 0x   /* This builtin is enabled. */
-#define BUILTIN_DELETED 0x   /* This has been deleted with enable -d. */
-#define STATIC_BUILTIN  0x   /* This builtin is not dynamically loaded. */
-#define SPECIAL_BUILTIN 0x   /* This is a Posix `special' builtin. */
+#define BUILTIN_ENABLED 0x01   /* This builtin is enabled. */
+#define BUILTIN_DELETED 0x02   /* This has been deleted with enable -d. */
+#define STATIC_BUILTIN  0x04   /* This builtin is not dynamically loaded. */
+#define SPECIAL_BUILTIN 0x08   /* This is a Posix `special' builtin. */
 #define ASSIGNMENT_BUILTIN 0x10        /* This builtin takes assignment statements. */
+#define POSIX_BUILTIN  0x20    /* This builtins is special in the Posix command search order. */
 
 #define BASE_INDENT    4
+#define MAN_INDENT     2
 
 /* The thing that we build the array of builtins out of. */
 struct builtin {
index 6633882db609111cc68c325e6ed2ec48d86ee132..cbb88313881873c58008ccb76b75a7442ea2ea93 100644 (file)
@@ -140,7 +140,7 @@ DEFSRC =  $(srcdir)/alias.def $(srcdir)/bind.def $(srcdir)/break.def \
          $(srcdir)/times.def $(srcdir)/trap.def $(srcdir)/type.def \
          $(srcdir)/ulimit.def $(srcdir)/umask.def $(srcdir)/wait.def \
          $(srcdir)/reserved.def $(srcdir)/pushd.def $(srcdir)/shopt.def \
-         $(srcdir)/printf.def $(srcdir)/complete.def
+         $(srcdir)/printf.def $(srcdir)/complete.def $(srcdir)/mapfile.def
 
 STATIC_SOURCE = common.c evalstring.c evalfile.c getopt.c bashgetopt.c \
                getopt.h 
@@ -148,8 +148,8 @@ STATIC_SOURCE = common.c evalstring.c evalfile.c getopt.c bashgetopt.c \
 OFILES = builtins.o \
        alias.o bind.o break.o builtin.o caller.o cd.o colon.o command.o \
        common.o declare.o echo.o enable.o eval.o evalfile.o \
-       evalstring.o exec.o \
-       exit.o fc.o fg_bg.o hash.o help.o history.o jobs.o kill.o let.o \
+       evalstring.o exec.o exit.o fc.o fg_bg.o hash.o help.o history.o \
+       jobs.o kill.o let.o mapfile.o \
        pushd.o read.o return.o set.o setattr.o shift.o source.o \
        suspend.o test.o times.o trap.o type.o ulimit.o umask.o \
        wait.o getopts.o shopt.o printf.o getopt.o bashgetopt.o complete.o
@@ -271,6 +271,7 @@ history.o: history.def
 jobs.o: jobs.def
 kill.o: kill.def
 let.o: let.def
+mapfile.o: mapfile.def
 printf.o: printf.def
 pushd.o: pushd.def
 read.o: read.def
@@ -595,6 +596,12 @@ complete.o: ${topdir}/bashtypes.h ${topdir}/bashansi.h ${BASHINCDIR}/ansi_stdlib
 complete.o: ${topdir}/builtins.h
 complete.o: ${topdir}/pcomplete.h
 complete.o: ${srcdir}/common.h ${srcdir}/bashgetopt.h
+mapfile.o: $(topdir)/command.h ../config.h $(BASHINCDIR)/memalloc.h
+mapfile.o: $(topdir)/error.h $(topdir)/general.h $(topdir)/xmalloc.h
+mapfile.o: $(topdir)/quit.h $(topdir)/dispose_cmd.h $(topdir)/make_cmd.h
+mapfile.o: $(topdir)/subst.h $(topdir)/externs.h $(BASHINCDIR)/maxpath.h
+mapfile.o: $(topdir)/shell.h $(topdir)/syntax.h $(topdir)/variables.h $(topdir)/conftypes.h
+mapfile.o: $(topdir)/arrayfunc.h
 
 #bind.o: $(RL_LIBSRC)chardefs.h $(RL_LIBSRC)readline.h $(RL_LIBSRC)keymaps.h
 
@@ -620,6 +627,7 @@ inlib.o: ${topdir}/bashintl.h ${LIBINTL_H} $(BASHINCDIR)/gettext.h
 jobs.o: ${topdir}/bashintl.h ${LIBINTL_H} $(BASHINCDIR)/gettext.h
 kill.o: ${topdir}/bashintl.h ${LIBINTL_H} $(BASHINCDIR)/gettext.h
 let.o: ${topdir}/bashintl.h ${LIBINTL_H} $(BASHINCDIR)/gettext.h
+mapfile.o: ${topdir}/bashintl.h ${LIBINTL_H} $(BASHINCDIR)/gettext.h
 mkbuiltins.o: ${topdir}/bashintl.h ${LIBINTL_H} $(BASHINCDIR)/gettext.h
 printf.o: ${topdir}/bashintl.h ${LIBINTL_H} $(BASHINCDIR)/gettext.h
 pushd.o: ${topdir}/bashintl.h ${LIBINTL_H} $(BASHINCDIR)/gettext.h
index 46435c17cb07b42d3f15d23c135dd6abf6d97a83..14348fabb87d50f07abf99a90c2b39cf5cdb1d02 100644 (file)
@@ -44,7 +44,7 @@ datarootdir = @datarootdir@
 
 includedir = @includedir@
 datadir = @datadir@
-localedir = $(datadir)/locale
+localedir = @localedir@
 
 # Support an alternate destination root directory for package building
 DESTDIR =
@@ -66,7 +66,7 @@ LOCAL_DEFS = @LOCAL_DEFS@
 
 LIBS = @LIBS@
 LDFLAGS = @LDFLAGS@ $(LOCAL_LDFLAGS) $(CFLAGS)
-LDFLAGS_FOR_BUILD = $(LDFLAGS)
+LDFLAGS_FOR_BUILD = @LDFLAGS_FOR_BUILD@ $(LOCAL_LDFLAGS) $(CFLAGS_FOR_BUILD)
 LOCAL_LDFLAGS = @LOCAL_LDFLAGS@
 #LIBS_FOR_BUILD = @LIBS_FOR_BUILD@
 LIBS_FOR_BUILD = $(LIBS)
@@ -140,7 +140,7 @@ DEFSRC =  $(srcdir)/alias.def $(srcdir)/bind.def $(srcdir)/break.def \
          $(srcdir)/times.def $(srcdir)/trap.def $(srcdir)/type.def \
          $(srcdir)/ulimit.def $(srcdir)/umask.def $(srcdir)/wait.def \
          $(srcdir)/reserved.def $(srcdir)/pushd.def $(srcdir)/shopt.def \
-         $(srcdir)/printf.def $(srcdir)/complete.def
+         $(srcdir)/printf.def $(srcdir)/complete.def $(srcdir)/mapfile.def
 
 STATIC_SOURCE = common.c evalstring.c evalfile.c getopt.c bashgetopt.c \
                getopt.h 
@@ -148,8 +148,8 @@ STATIC_SOURCE = common.c evalstring.c evalfile.c getopt.c bashgetopt.c \
 OFILES = builtins.o \
        alias.o bind.o break.o builtin.o caller.o cd.o colon.o command.o \
        common.o declare.o echo.o enable.o eval.o evalfile.o \
-       evalstring.o exec.o \
-       exit.o fc.o fg_bg.o hash.o help.o history.o jobs.o kill.o let.o \
+       evalstring.o exec.o exit.o fc.o fg_bg.o hash.o help.o history.o
+       jobs.o kill.o let.o mapfile.o \
        pushd.o read.o return.o set.o setattr.o shift.o source.o \
        suspend.o test.o times.o trap.o type.o ulimit.o umask.o \
        wait.o getopts.o shopt.o printf.o getopt.o bashgetopt.o complete.o
@@ -271,6 +271,7 @@ history.o: history.def
 jobs.o: jobs.def
 kill.o: kill.def
 let.o: let.def
+mapfile.o: mapfile.def
 printf.o: printf.def
 pushd.o: pushd.def
 read.o: read.def
@@ -595,6 +596,12 @@ complete.o: ${topdir}/bashtypes.h ${topdir}/bashansi.h ${BASHINCDIR}/ansi_stdlib
 complete.o: ${topdir}/builtins.h
 complete.o: ${topdir}/pcomplete.h
 complete.o: ${srcdir}/common.h ${srcdir}/bashgetopt.h
+mapfile.o: $(topdir)/command.h ../config.h $(BASHINCDIR)/memalloc.h
+mapfile.o: $(topdir)/error.h $(topdir)/general.h $(topdir)/xmalloc.h
+mapfile.o: $(topdir)/quit.h $(topdir)/dispose_cmd.h $(topdir)/make_cmd.h
+mapfile.o: $(topdir)/subst.h $(topdir)/externs.h $(BASHINCDIR)/maxpath.h
+mapfile.o: $(topdir)/shell.h $(topdir)/syntax.h $(topdir)/variables.h $(topdir)/conftypes.h
+mapfile.o: $(topdir)/arrayfunc.h
 
 #bind.o: $(RL_LIBSRC)chardefs.h $(RL_LIBSRC)readline.h $(RL_LIBSRC)keymaps.h
 
@@ -620,6 +627,7 @@ inlib.o: ${topdir}/bashintl.h ${LIBINTL_H} $(BASHINCDIR)/gettext.h
 jobs.o: ${topdir}/bashintl.h ${LIBINTL_H} $(BASHINCDIR)/gettext.h
 kill.o: ${topdir}/bashintl.h ${LIBINTL_H} $(BASHINCDIR)/gettext.h
 let.o: ${topdir}/bashintl.h ${LIBINTL_H} $(BASHINCDIR)/gettext.h
+mapfile.o: ${topdir}/bashintl.h ${LIBINTL_H} $(BASHINCDIR)/gettext.h
 mkbuiltins.o: ${topdir}/bashintl.h ${LIBINTL_H} $(BASHINCDIR)/gettext.h
 printf.o: ${topdir}/bashintl.h ${LIBINTL_H} $(BASHINCDIR)/gettext.h
 pushd.o: ${topdir}/bashintl.h ${LIBINTL_H} $(BASHINCDIR)/gettext.h
index 7ed416d0cb140845aff6ced241a78bc2f6b800a2..5231cd5c2d735d3b9b5d0486376ca454973a9b2a 100644 (file)
@@ -24,6 +24,8 @@ $FUNCTION alias_builtin
 $DEPENDS_ON ALIAS
 $PRODUCES alias.c
 $SHORT_DOC alias [-p] [name[=value] ... ]
+Define or display aliases.
+
 Without arguments, `alias' prints the list of aliases in the reusable
 form `alias NAME=VALUE' on standard output.
 
@@ -34,7 +36,8 @@ alias substitution when the alias is expanded.
 Options:
   -p   Print all defined aliases in a reusable format
 
-Alias returns true unless a NAME is supplied for which no alias has been
+Exit Status:
+alias returns true unless a NAME is supplied for which no alias has been
 defined.
 $END
 
index 03991606a03f748d2267e7eaffd6c5068d297f6f..2dae1aad9a76f5628221ee228e9c43db2bc47b71 100644 (file)
@@ -24,6 +24,8 @@ $FUNCTION alias_builtin
 $DEPENDS_ON ALIAS
 $PRODUCES alias.c
 $SHORT_DOC alias [-p] [name[=value] ... ]
+Define or display aliases.
+
 Without arguments, `alias' prints the list of aliases in the reusable
 form `alias NAME=VALUE' on standard output.
 
@@ -158,7 +160,6 @@ $SHORT_DOC unalias [-a] name [name ...]
 Remove each NAME from the list of defined aliases.
 
 Options:
-
   -a   remove all alias definitions.
 
 Return success unless a NAME is not an existing alias.
index 7a4baa8e832aefd0c7faf019f961cf8fedf10bda..4302f10af9923817c7c643349abc00a2371092c3 100644 (file)
@@ -27,10 +27,12 @@ $BUILTIN bind
 $DEPENDS_ON READLINE
 $FUNCTION bind_builtin
 $SHORT_DOC bind [-lpvsPVS] [-m keymap] [-f filename] [-q name] [-u name] [-r keyseq] [-x keyseq:shell-command] [keyseq:readline-function or readline-command]
-Bind a key sequence to a Readline function or a macro, or set a Readline
-variable.  The non-option argument syntax is equivalent to that found in
-~/.inputrc, but must be passed as a single argument:  e.g.,
-bind '"\C-x\C-r": re-read-init-file'.
+Set Readline key bindings and variables.
+
+Bind a key sequence to a Readline function or a macro, or set a
+Readline variable.  The non-option argument syntax is equivalent to
+that found in ~/.inputrc, but must be passed as a single argument:
+e.g., bind '"\C-x\C-r": re-read-init-file'.
 
 Options:
   -m  keymap         Use KEYMAP as the keymap for the duration of this
@@ -53,6 +55,9 @@ Options:
   -f  filename       Read key bindings from FILENAME.
   -x  keyseq:shell-command     Cause SHELL-COMMAND to be executed when
                                KEYSEQ is entered.
+
+Exit Status:
+bind returns 0 unless an unrecognized option is given or an error occurs.
 $END
 
 #if defined (READLINE)
index 0cbab504cd6caa5dfe78063b5a4f922fc7db23fa..485f216cf6101be47be8598516fa4d4ba4602973 100644 (file)
@@ -1,7 +1,7 @@
 This file is bind.def, from which is created bind.c.
 It implements the builtin "bind" in Bash.
 
-Copyright (C) 1987-2006 Free Software Foundation, Inc.
+Copyright (C) 1987-2008 Free Software Foundation, Inc.
 
 This file is part of GNU Bash, the Bourne Again SHell.
 
@@ -27,11 +27,14 @@ $BUILTIN bind
 $DEPENDS_ON READLINE
 $FUNCTION bind_builtin
 $SHORT_DOC bind [-lpvsPVS] [-m keymap] [-f filename] [-q name] [-u name] [-r keyseq] [-x keyseq:shell-command] [keyseq:readline-function or readline-command]
-Bind a key sequence to a Readline function or a macro, or set
-a Readline variable.  The non-option argument syntax is equivalent
-to that found in ~/.inputrc, but must be passed as a single argument:  e.g.,
-bind '"\C-x\C-r": re-read-init-file'.
-bind accepts the following options:
+Set Readline key bindings and variables.
+
+Bind a key sequence to a Readline function or a macro, or set a
+Readline variable.  The non-option argument syntax is equivalent to
+that found in ~/.inputrc, but must be passed as a single argument:
+e.g., bind '"\C-x\C-r": re-read-init-file'.
+
+Options:
   -m  keymap         Use KEYMAP as the keymap for the duration of this
                      command.  Acceptable keymap names are emacs,
                      emacs-standard, emacs-meta, emacs-ctlx, vi, vi-move,
index 1df6cd3dfaa6f6834fc9788759ff526e52a56638..407b69367f7ea593d9cd1c344486bb6a05288a2e 100644 (file)
@@ -24,8 +24,13 @@ $PRODUCES break.c
 $BUILTIN break
 $FUNCTION break_builtin
 $SHORT_DOC break [n]
+Exit for, while, or until loops.
+
 Exit a FOR, WHILE or UNTIL loop.  If N is specified, break N enclosing
 loops.
+
+Exit Status:
+The exit status is 0 unless the shell is not executing a loop. 
 $END
 #include <config.h>
 
@@ -86,8 +91,13 @@ break_builtin (list)
 $BUILTIN continue
 $FUNCTION continue_builtin
 $SHORT_DOC continue [n]
+Resume for, while, or until loops.
+
 Resumes the next iteration of the enclosing FOR, WHILE or UNTIL loop.
 If N is specified, resumes the Nth enclosing loop.
+
+Exit Status:
+The exit status is 0 unless the shell is not executing a loop. 
 $END
 
 /* Set up to continue x levels, where x defaults to 1, but can be specified
index 37a7827ccf1f79319a37091e58f89ae9dce0da69..e5f8a9c81d0dfbf6aa307abfbe859e58339487bc 100644 (file)
@@ -24,7 +24,10 @@ $PRODUCES break.c
 $BUILTIN break
 $FUNCTION break_builtin
 $SHORT_DOC break [n]
-Exit a FOR, WHILE or UNTIL loop.  If N is specified, break N enclosing loops.
+Exit for, while, or until loops.
+
+Exit a FOR, WHILE or UNTIL loop.  If N is specified, break N enclosing
+loops.
 $END
 #include <config.h>
 
@@ -85,6 +88,8 @@ break_builtin (list)
 $BUILTIN continue
 $FUNCTION continue_builtin
 $SHORT_DOC continue [n]
+Resume for, while, or until loops.
+
 Resumes the next iteration of the enclosing FOR, WHILE or UNTIL loop.
 If N is specified, resumes the Nth enclosing loop.
 $END
index e8ae9264b83bf54984247ff31a77b1aac8176a85..ebb4a82dccb948e38d2c7548cbb5788076e8f9cf 100644 (file)
@@ -24,9 +24,15 @@ $PRODUCES builtin.c
 $BUILTIN builtin
 $FUNCTION builtin_builtin
 $SHORT_DOC builtin [shell-builtin [arg ...]]
+Execute shell builtins.
+
 Execute SHELL-BUILTIN with arguments ARGs without performing command
 lookup.  This is useful when you wish to reimplement a shell builtin
 as a shell function, but need to execute the builtin within the function.
+
+Exit Status:
+Returns the exit status of SHELL-BUILTIN, or false if SHELL-BUILTIN is
+not a shell builtin..
 $END
 #include <config.h>
 
index 2d2b3259db426aa64bbb54357a98abacbc909894..cd5147b3a2a82b239ac9da06f4b7e2c1c01c3ba6 100644 (file)
@@ -24,9 +24,11 @@ $PRODUCES builtin.c
 $BUILTIN builtin
 $FUNCTION builtin_builtin
 $SHORT_DOC builtin [shell-builtin [arg ...]]
-Execute SHELL-BUILTIN with arguments ARGs without performing command lookup.
-This is useful when you wish to reimplement a shell builtin as a shell
-function, but need to execute the builtin within the function.
+Execute shell builtins.
+
+Execute SHELL-BUILTIN with arguments ARGs without performing command
+lookup.  This is useful when you wish to reimplement a shell builtin
+as a shell function, but need to execute the builtin within the function.
 $END
 #include <config.h>
 
index 6a26a403e4a11dcce3c12e1ac4e24636165819f9..fd3a40a0e22a7d4308b2740ec9ca1df58a23b05c 100644 (file)
@@ -25,7 +25,7 @@ $BUILTIN caller
 $FUNCTION caller_builtin
 $DEPENDS_ON DEBUGGER
 $SHORT_DOC caller [expr]
-Returns the context of the current subroutine call.
+Return the context of the current subroutine call.
 
 Without EXPR, returns "$line $filename".  With EXPR, returns
 "$line $subroutine $filename"; this extra information can be used to
@@ -33,6 +33,10 @@ provide a stack trace.
 
 The value of EXPR indicates how many call frames to go back before the
 current one; the top frame is frame 0.
+
+Exit Status:
+Returns 0 unless the shell is not executing a shell function or EXPR
+is invalid.
 $END
 
 #include <config.h>
index 99a5f15cfcb181647c5981334eae492a8a250a20..cb468ad3d8306e72d1da4b5169794af9bfdb053e 100644 (file)
@@ -25,7 +25,7 @@ $BUILTIN caller
 $FUNCTION caller_builtin
 $DEPENDS_ON DEBUGGER
 $SHORT_DOC caller [expr]
-Returns the context of the current subroutine call.  
+Return the context of the current subroutine call.
 
 Without EXPR, returns "$line $filename".  With EXPR, returns
 "$line $subroutine $filename"; this extra information can be used to
@@ -129,9 +129,9 @@ caller_builtin (list)
 static char *caller_doc[] = {
 N_("Returns the context of the current subroutine call.\n\
     \n\
-    Without EXPR, returns \"$line $filename\".  With EXPR,\n\
-    returns \"$line $subroutine $filename\"; this extra information\n\
-    can be used used to provide a stack trace.\n\
+    Without EXPR, returns "$line $filename".  With EXPR, returns\n\
+    "$line $subroutine $filename"; this extra information can be used to\n\
+    provide a stack trace.\n\
     \n\
     The value of EXPR indicates how many call frames to go back before the\n\
     current one; the top frame is frame 0."),
index c07ddb0c895b499de9a2daef0db7af615034fcba..9593a63996a17e39aa615193c86fa75c051cd1c7 100644 (file)
@@ -71,6 +71,8 @@ int cdable_vars;
 $BUILTIN cd
 $FUNCTION cd_builtin
 $SHORT_DOC cd [-L|-P] [dir]
+Change the shell working directory.
+
 Change the current directory to DIR.  The default DIR is the value of the
 HOME shell variable.
 
@@ -89,6 +91,9 @@ Options:
        links
 
 The default is to follow symbolic links, as if `-L' were specified.
+
+Exit Status:
+Returns 0 if the directory is changed; non-zero otherwise.
 $END
 
 /* Just set $PWD, don't change OLDPWD.  Used by `pwd -P' in posix mode. */
@@ -332,6 +337,10 @@ Options:
   -P   print the physical directory, without any symbolic links
 
 By default, `pwd' behaves as if `-L' were specified.
+
+Exit Status:
+Returns 0 unless an invalid option is given or the current directory
+cannot be read.
 $END
 
 /* Non-zero means that pwd always prints the physical directory, without
index 8b28ee49e9d3042e63c696028d224661c501f0d4..629bdc8a81f95472b935c23d35a5c0db07d71814 100644 (file)
@@ -63,8 +63,6 @@ static void setpwd __P((char *));
 static char *resetpwd __P((char *));
 static int change_to_directory __P((char *, int));
 
-static char *cdspell __P((char *));
-
 /* Change this to 1 to get cd spelling correction by default. */
 int cdspelling = 0;
 
@@ -73,6 +71,8 @@ int cdable_vars;
 $BUILTIN cd
 $FUNCTION cd_builtin
 $SHORT_DOC cd [-L|-P] [dir]
+Change the shell working directory.
+
 Change the current directory to DIR.  The default DIR is the value of the
 HOME shell variable.
 
@@ -309,7 +309,7 @@ cd_builtin (list)
      typo.  This is similar to the UNIX 8th and 9th Edition shells. */
   if (lflag & LCD_DOSPELL)
     {
-      temp = cdspell (dirname);
+      temp = dirspell (dirname);
       if (temp && change_to_directory (temp, no_symlinks))
        {
          printf ("%s\n", temp);
@@ -505,28 +505,3 @@ change_to_directory (newdir, nolinks)
   free (tdir);
   return r;
 }
-
-/* Code for cd spelling correction.  Original patch submitted by
-   Neil Russel (caret@c-side.com). */
-
-static char *
-cdspell (dirname)
-     char *dirname;
-{
-  int n;
-  char *guess;
-
-  n = (strlen (dirname) * 3 + 1) / 2 + 1;
-  guess = (char *)xmalloc (n);
-
-  switch (spname (dirname, guess))
-    {
-    case -1:
-    default:
-      free (guess);
-      return (char *)NULL;
-    case 0:
-    case 1:
-      return guess;
-    }
-}
index 2bab89dbad00087dcf537495a0ee13d4cf54f9db..5186e28a76484443874e1f11d51d58f29872601f 100644 (file)
@@ -25,19 +25,30 @@ $BUILTIN :
 $DOCNAME colon
 $FUNCTION colon_builtin
 $SHORT_DOC :
-No effect; the command does nothing.  A successful exit code is returned.
+Null command.
+
+No effect; the command does nothing.
+
+Exit Status:
+Always succeeds.
 $END
 
 $BUILTIN true
 $FUNCTION colon_builtin
 $SHORT_DOC true
-Returns a successful result.
+Return a successful result.
+
+Exit Status:
+Always succeeds.
 $END
 
 $BUILTIN false
 $FUNCTION false_builtin
 $SHORT_DOC false
-Returns an unsuccessful result.
+Return an unsuccessful result.
+
+Exit Status:
+Always fails.
 $END
 
 /* Return a successful result. */
index 1f64e945ad9e8a35dcafb6c500a8ab2d2d5aa8e8..7f5bed5531bae9185de45a5ba0de9aacbfa72b25 100644 (file)
@@ -25,7 +25,9 @@ $BUILTIN :
 $DOCNAME colon
 $FUNCTION colon_builtin
 $SHORT_DOC :
-No effect; the command does nothing.  A successful exit code is returned.
+Null command.
+
+No effect; the command does nothing.  Returns a successful exit value.
 $END
 
 $BUILTIN true
index 060bbc839944ae7030539c6f947f1d63e60e05dd..70f18387aba63c2e560899a27a4b1b642b770b9d 100644 (file)
@@ -24,6 +24,8 @@ $PRODUCES command.c
 $BUILTIN command
 $FUNCTION command_builtin
 $SHORT_DOC command [-pVv] command [arg ...]
+Execute a simple command or display information about commands.
+
 Runs COMMAND with ARGS suppressing  shell function lookup, or display
 information about the specified COMMANDs.  Can be used to invoke commands
 on disk when a function with the same name exists.
@@ -33,6 +35,9 @@ Options:
        the standard utilities
   -v   print a description of COMMAND similar to the `type' builtin
   -V   print a more verbose description of each COMMAND
+
+Exit Status:
+Returns exit status of COMMAND, or failure if COMMAND is not found.
 $END
 
 #include <config.h>
index 6cc42694fd09a07b08f13210bfd32b324e7a63f8..02e058bd234ad9cfd929010cfa31611e50ebdd87 100644 (file)
@@ -24,13 +24,15 @@ $PRODUCES command.c
 $BUILTIN command
 $FUNCTION command_builtin
 $SHORT_DOC command [-pVv] command [arg ...]
+Execute a simple command or display information about commands.
+
 Runs COMMAND with ARGS suppressing  shell function lookup, or display
 information about the specified COMMANDs.  Can be used to invoke commands
 on disk when a function with the same name exists.
 
 Options:
   -p   use a default value for PATH that is guaranteed to find all of
-       the standard utilities.
+       the standard utilities
   -v   print a description of COMMAND similar to the `type' builtin
   -V   print a more verbose description of each COMMAND
 $END
index 3b0efb27615c79af6d4cff91edebe267e81f989c..1c07f968fb628fd3b5eb5cb4d78802db6fa46ec7 100644 (file)
@@ -38,6 +38,9 @@ Options:
 
 When completion is attempted, the actions are applied in the order the
 uppercase-letter options are listed above.
+
+Exit Status:
+Returns success unless an invalid option is supplied or an error occurs.
 $END
 
 #include <config.h>
@@ -65,10 +68,18 @@ $END
 
 #define STRDUP(x)       ((x) ? savestring (x) : (char *)NULL)
 
+/* Structure containing all the non-action (binary) options; filled in by
+   build_actions(). */
+struct _optflags {
+  int pflag;
+  int rflag;
+  int Eflag;
+};
+
 static int find_compact __P((char *));
 static int find_compopt __P((char *));
 
-static int build_actions __P((WORD_LIST *, int *, int *, unsigned long *, unsigned long *));
+static int build_actions __P((WORD_LIST *, struct _optflags *, unsigned long *, unsigned long *));
 
 static int remove_cmd_completions __P((WORD_LIST *));
 
@@ -165,9 +176,9 @@ find_compopt (name)
 */
 
 static int
-build_actions (list, pp, rp, actp, optp)
+build_actions (list, flagp, actp, optp)
      WORD_LIST *list;
-     int *pp, *rp;
+     struct _optflags *flagp;
      unsigned long *actp, *optp;
 {
   int opt, ind, opt_given;
@@ -177,15 +188,15 @@ build_actions (list, pp, rp, actp, optp)
   opt_given = 0;
 
   reset_internal_getopt ();
-  while ((opt = internal_getopt (list, "abcdefgjko:prsuvA:G:W:P:S:X:F:C:")) != -1)
+  while ((opt = internal_getopt (list, "abcdefgjko:prsuvA:G:W:P:S:X:F:C:E")) != -1)
     {
       opt_given = 1;
       switch (opt)
        {
        case 'r':
-         if (rp)
+         if (flagp)
            {
-             *rp = 1;
+             flagp->rflag = 1;
              break;
            }
          else
@@ -196,9 +207,9 @@ build_actions (list, pp, rp, actp, optp)
            }
 
        case 'p':
-         if (pp)
+         if (flagp)
            {
-             *pp = 1;
+             flagp->pflag = 1;
              break;
            }
          else
@@ -265,6 +276,18 @@ build_actions (list, pp, rp, actp, optp)
        case 'C':
          Carg = list_optarg;
          break;
+       case 'E':
+         if (flagp)
+           {
+             flagp->Eflag = 1;
+             break;
+           }
+         else
+           {
+             sh_invalidopt ("-E");
+             builtin_usage ();
+             return (EX_USAGE);
+           }
        case 'F':
          Farg = list_optarg;
          break;
@@ -300,9 +323,11 @@ int
 complete_builtin (list)
      WORD_LIST *list;
 {
-  int opt_given, pflag, rflag, rval;
+  int opt_given, rval;
   unsigned long acts, copts;
   COMPSPEC *cs;
+  struct _optflags oflags;
+  WORD_LIST *l, *wl;
 
   if (list == 0)
     {
@@ -310,24 +335,33 @@ complete_builtin (list)
       return (EXECUTION_SUCCESS);
     }
 
-  opt_given = pflag = rflag = 0;
+  opt_given = oflags.pflag = oflags.rflag = oflags.Eflag = 0;
+
   acts = copts = (unsigned long)0L;
   Garg = Warg = Parg = Sarg = Xarg = Farg = Carg = (char *)NULL;
   cs = (COMPSPEC *)NULL;
 
   /* Build the actions from the arguments.  Also sets the [A-Z]arg variables
      as a side effect if they are supplied as options. */
-  rval = build_actions (list, &pflag, &rflag, &acts, &copts);
+  rval = build_actions (list, &oflags, &acts, &copts);
   if (rval == EX_USAGE)
     return (rval);
   opt_given = rval != EXECUTION_FAILURE;
 
   list = loptend;
 
+  wl = oflags.Eflag ? make_word_list (make_bare_word ("_EmptycmD_"), (WORD_LIST *)NULL) : 0;
+
   /* -p overrides everything else */
-  if (pflag || (list == 0 && opt_given == 0))
+  if (oflags.pflag || (list == 0 && opt_given == 0))
     {
-      if (list == 0)
+      if (wl)
+       {
+         rval = print_cmd_completions (wl);
+         dispose_words (wl);
+         return rval;
+       }
+      else if (list == 0)
        {
          print_all_completions ();
          return (EXECUTION_SUCCESS);
@@ -336,9 +370,15 @@ complete_builtin (list)
     }
 
   /* next, -r overrides everything else. */
-  if (rflag)
+  if (oflags.rflag)
     {
-      if (list == 0)
+      if (wl)
+       {
+         rval = remove_cmd_completions (wl);
+         dispose_words (wl);
+         return rval;
+       }
+      else if (list == 0)
        {
          progcomp_flush ();
          return (EXECUTION_SUCCESS);
@@ -346,7 +386,7 @@ complete_builtin (list)
       return (remove_cmd_completions (list));
     }
 
-  if (list == 0 && opt_given)
+  if (wl == 0 && list == 0 && opt_given)
     {
       builtin_usage ();
       return (EX_USAGE);
@@ -366,13 +406,14 @@ complete_builtin (list)
   cs->command = STRDUP (Carg);
   cs->filterpat = STRDUP (Xarg);
 
-  for (rval = EXECUTION_SUCCESS ; list; list = list->next)
+  for (rval = EXECUTION_SUCCESS, l = wl ? wl : list ; l; l = l->next)
     {
       /* Add CS as the compspec for the specified commands. */
-      if (progcomp_insert (list->word->word, cs) == 0)
+      if (progcomp_insert (l->word->word, cs) == 0)
        rval = EXECUTION_FAILURE;
     }
 
+  dispose_words (wl);
   return (rval);
 }
 
@@ -589,6 +630,9 @@ Display possible completions depending on the options.
 Intended to be used from within a shell function generating possible
 completions.  If the optional WORD argument is supplied, matches against
 WORD are generated.
+
+Exit Status:
+Returns success unless an invalid option is supplied or an error occurs.
 $END
 
 int
@@ -610,7 +654,7 @@ compgen_builtin (list)
 
   /* Build the actions from the arguments.  Also sets the [A-Z]arg variables
      as a side effect if they are supplied as options. */
-  rval = build_actions (list, (int *)NULL, (int *)NULL, &acts, &copts);
+  rval = build_actions (list, (struct _optflags *)NULL, &acts, &copts);
   if (rval == EX_USAGE)
     return (rval);
   if (rval == EXECUTION_FAILURE)
@@ -696,13 +740,17 @@ have previously been defined using the `complete' builtin.  If no NAMEs
 are supplied, compopt must be called by a function currently generating
 completions, and the options for that currently-executing completion
 generator are modified.
+
+Exit Status:
+Returns success unless an invalid option is supplied or NAME does not
+have a completion specification defined.
 $END
 
 int
 compopt_builtin (list)
      WORD_LIST *list;
 {
-  int opts_on, opts_off, *opts, opt, oind, ret;
+  int opts_on, opts_off, *opts, opt, oind, ret, Eflag;
   WORD_LIST *l;
   COMPSPEC *cs;
 
index c2ef0e24a633f075139942d3cc92be4c171e6efe..0ed13c1a843deacaba95b62c09ce5d9e699d52d2 100644 (file)
@@ -38,6 +38,9 @@ Options:
 
 When completion is attempted, the actions are applied in the order the
 uppercase-letter options are listed above.
+
+Exit Status:
+Returns success unless an invalid option is supplied or an error occurs.
 $END
 
 #include <config.h>
@@ -65,10 +68,18 @@ $END
 
 #define STRDUP(x)       ((x) ? savestring (x) : (char *)NULL)
 
+/* Structure containing all the non-action (binary) options; filled in by
+   build_actions(). */
+struct _optflags {
+  int pflag;
+  int rflag;
+  int Eflag;
+};
+
 static int find_compact __P((char *));
 static int find_compopt __P((char *));
 
-static int build_actions __P((WORD_LIST *, int *, int *, unsigned long *, unsigned long *));
+static int build_actions __P((WORD_LIST *, struct _optflags *, unsigned long *, unsigned long *));
 
 static int remove_cmd_completions __P((WORD_LIST *));
 
@@ -165,9 +176,9 @@ find_compopt (name)
 */
 
 static int
-build_actions (list, pp, rp, actp, optp)
+build_actions (list, flagp, actp, optp)
      WORD_LIST *list;
-     int *pp, *rp;
+     struct _optflags *flagp;
      unsigned long *actp, *optp;
 {
   int opt, ind, opt_given;
@@ -177,15 +188,15 @@ build_actions (list, pp, rp, actp, optp)
   opt_given = 0;
 
   reset_internal_getopt ();
-  while ((opt = internal_getopt (list, "abcdefgjko:prsuvA:G:W:P:S:X:F:C:")) != -1)
+  while ((opt = internal_getopt (list, "abcdefgjko:prsuvA:G:W:P:S:X:F:C:E")) != -1)
     {
       opt_given = 1;
       switch (opt)
        {
        case 'r':
-         if (rp)
+         if (flagp)
            {
-             *rp = 1;
+             flagp->rflag = 1;
              break;
            }
          else
@@ -196,9 +207,9 @@ build_actions (list, pp, rp, actp, optp)
            }
 
        case 'p':
-         if (pp)
+         if (flagp)
            {
-             *pp = 1;
+             flagp->pflag = 1;
              break;
            }
          else
@@ -265,6 +276,18 @@ build_actions (list, pp, rp, actp, optp)
        case 'C':
          Carg = list_optarg;
          break;
+       case 'E':
+         if (flagp)
+           {
+             flagp->Eflag = 1;
+             break;
+           }
+         else
+           {
+             sh_invalidopt ("-E");
+             builtin_usage ();
+             return (EX_USAGE);
+           }
        case 'F':
          Farg = list_optarg;
          break;
@@ -300,9 +323,11 @@ int
 complete_builtin (list)
      WORD_LIST *list;
 {
-  int opt_given, pflag, rflag, rval;
+  int opt_given, rval;
   unsigned long acts, copts;
   COMPSPEC *cs;
+  struct _optflags oflags;
+  WORD_LIST *l, *wl;
 
   if (list == 0)
     {
@@ -310,24 +335,33 @@ complete_builtin (list)
       return (EXECUTION_SUCCESS);
     }
 
-  opt_given = pflag = rflag = 0;
+  oflags.pflag = oflags.rflag = oflags.Eflag = 0;
+
   acts = copts = (unsigned long)0L;
   Garg = Warg = Parg = Sarg = Xarg = Farg = Carg = (char *)NULL;
   cs = (COMPSPEC *)NULL;
 
   /* Build the actions from the arguments.  Also sets the [A-Z]arg variables
      as a side effect if they are supplied as options. */
-  rval = build_actions (list, &pflag, &rflag, &acts, &copts);
+  rval = build_actions (list, &oflags, &acts, &copts);
   if (rval == EX_USAGE)
     return (rval);
   opt_given = rval != EXECUTION_FAILURE;
 
   list = loptend;
 
+  wl = oflags.Eflag ? make_word_list (make_bare_word ("_EmptycmD_"), (WORD_LIST *)NULL) : 0;
+
   /* -p overrides everything else */
-  if (pflag || (list == 0 && opt_given == 0))
+  if (oflags.pflag || (list == 0 && opt_given == 0))
     {
-      if (list == 0)
+      if (wl)
+       {
+         rval = print_cmd_completions (wl);
+         dispose_words (wl);
+         return rval;
+       }
+      else if (list == 0)
        {
          print_all_completions ();
          return (EXECUTION_SUCCESS);
@@ -336,9 +370,15 @@ complete_builtin (list)
     }
 
   /* next, -r overrides everything else. */
-  if (rflag)
+  if (oflags.rflag)
     {
-      if (list == 0)
+      if (wl)
+       {
+         rval = remove_cmd_completions (wl);
+         dispose_words (wl);
+         return rval;
+       }
+      else if (list == 0)
        {
          progcomp_flush ();
          return (EXECUTION_SUCCESS);
@@ -346,7 +386,7 @@ complete_builtin (list)
       return (remove_cmd_completions (list));
     }
 
-  if (list == 0 && opt_given)
+  if (wl == 0 && list == 0 && opt_given)
     {
       builtin_usage ();
       return (EX_USAGE);
@@ -366,13 +406,14 @@ complete_builtin (list)
   cs->command = STRDUP (Carg);
   cs->filterpat = STRDUP (Xarg);
 
-  for (rval = EXECUTION_SUCCESS ; list; list = list->next)
+  for (rval = EXECUTION_SUCCESS, l = wl ? wl : list ; l; l = l->next)
     {
       /* Add CS as the compspec for the specified commands. */
-      if (progcomp_insert (list->word->word, cs) == 0)
+      if (progcomp_insert (l->word->word, cs) == 0)
        rval = EXECUTION_FAILURE;
     }
 
+  dispose_words (wl);
   return (rval);
 }
 
@@ -584,11 +625,14 @@ $BUILTIN compgen
 $DEPENDS_ON PROGRAMMABLE_COMPLETION
 $FUNCTION compgen_builtin
 $SHORT_DOC compgen [-abcdefgjksuv] [-o option]  [-A action] [-G globpat] [-W wordlist]  [-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] [word]
-Display the possible completions depending on the options.
+Display possible completions depending on the options.
 
 Intended to be used from within a shell function generating possible
 completions.  If the optional WORD argument is supplied, matches against
 WORD are generated.
+
+Exit Status:
+Returns success unless an invalid option is supplied or an error occurs.
 $END
 
 int
@@ -610,7 +654,7 @@ compgen_builtin (list)
 
   /* Build the actions from the arguments.  Also sets the [A-Z]arg variables
      as a side effect if they are supplied as options. */
-  rval = build_actions (list, (int *)NULL, (int *)NULL, &acts, &copts);
+  rval = build_actions (list, (struct _optflags *)NULL, &acts, &copts);
   if (rval == EX_USAGE)
     return (rval);
   if (rval == EXECUTION_FAILURE)
@@ -696,13 +740,17 @@ have previously been defined using the `complete' builtin.  If no NAMEs
 are supplied, compopt must be called by a function currently generating
 completions, and the options for that currently-executing completion
 generator are modified.
+
+Exit Status:
+Returns success unless an invalid option is supplied or NAME does not
+have a completion specification defined.
 $END
 
 int
 compopt_builtin (list)
      WORD_LIST *list;
 {
-  int opts_on, opts_off, *opts, opt, oind, ret;
+  int opts_on, opts_off, *opts, opt, oind, ret, Eflag;
   WORD_LIST *l;
   COMPSPEC *cs;
 
index f7b0dc168a677ab3cd88c7a3b9fd10f697eeb728..ce46bc88ae2702790fe3311a74bd9fbd31156df6 100644 (file)
@@ -24,6 +24,8 @@ $PRODUCES declare.c
 $BUILTIN declare
 $FUNCTION declare_builtin
 $SHORT_DOC declare [-afFirtx] [-p] [name[=value] ...]
+Set variable values and attributes.
+
 Declare variables and give them attributes.  If no NAMEs are given,
 display the attributes and values of all variables.
 
@@ -47,11 +49,16 @@ the `let' command) performed when the variable is assigned a value.
 
 When used in a function, `declare' makes NAMEs local, as with the `local'
 command.
+
+Exit Status:
+Returns success unless an invalid option is supplied or an error occurs.
 $END
 
 $BUILTIN typeset
 $FUNCTION declare_builtin
 $SHORT_DOC typeset [-afFirtx] [-p] name[=value] ...
+Set variable values and attributes.
+
 Obsolete.  See `help declare'.
 $END
 
@@ -90,11 +97,17 @@ declare_builtin (list)
 $BUILTIN local
 $FUNCTION local_builtin
 $SHORT_DOC local [option] name[=value] ...
+Define local variables.
+
 Create a local variable called NAME, and give it VALUE.  OPTION can
 be any option accepted by `declare'.
 
 Local variables can only be used within a function; they are visible
 only to the function where they are defined and its children.
+
+Exit Status:
+Returns success unless an invalid option is supplied, an error occurs,
+or the shell is not executing a function.
 $END
 int
 local_builtin (list)
@@ -390,11 +403,8 @@ declare_internal (list, local_var)
            {
              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;
index fe98c3758af4683f2a8f003b572ff0c8c18e02fa..e129ae521b909e976c1fc24574c615af33a6b1f7 100644 (file)
@@ -24,6 +24,8 @@ $PRODUCES declare.c
 $BUILTIN declare
 $FUNCTION declare_builtin
 $SHORT_DOC declare [-afFirtx] [-p] [name[=value] ...]
+Set variable values and attributes.
+
 Declare variables and give them attributes.  If no NAMEs are given,
 display the attributes and values of all variables.
 
@@ -47,11 +49,16 @@ the `let' command) performed when the variable is assigned a value.
 
 When used in a function, `declare' makes NAMEs local, as with the `local'
 command.
+
+Exit Status:
+Returns success unless an invalid option is supplied or an error occurs.
 $END
 
 $BUILTIN typeset
 $FUNCTION declare_builtin
 $SHORT_DOC typeset [-afFirtx] [-p] name[=value] ...
+Set variable values and attributes.
+
 Obsolete.  See `help declare'.
 $END
 
@@ -90,11 +97,17 @@ declare_builtin (list)
 $BUILTIN local
 $FUNCTION local_builtin
 $SHORT_DOC local [option] name[=value] ...
+Define local variables.
+
 Create a local variable called NAME, and give it VALUE.  OPTION can
 be any option accepted by `declare'.
 
 Local variables can only be used within a function; they are visible
 only to the function where they are defined and its children.
+
+Exit Status:
+Returns success unless an invalid option is supplied, an error occurs,
+or the shell is not executing a function.
 $END
 int
 local_builtin (list)
@@ -193,9 +206,7 @@ declare_internal (list, local_var)
            }
        }
       else if (pflag && (flags_on == 0 || flags_on == att_function))
-       {
-         show_all_var_attributes (flags_on == 0, nodefs);
-       }         
+       show_all_var_attributes (flags_on == 0, nodefs);
       else if (flags_on == 0)
        return (set_builtin ((WORD_LIST *)NULL));
       else
index 1d2b33bad403562abd8baf8ce39ea603a5bb6e76..cbd5b2272d7cb1c4054597850cc68a4373b71633 100644 (file)
@@ -37,6 +37,8 @@ $BUILTIN echo
 $FUNCTION echo_builtin
 $DEPENDS_ON V9_ECHO
 $SHORT_DOC echo [-neE] [arg ...]
+Write arguments to the standard output.
+
 Display the ARGs on the standard output followed by a newline.
 
 Options:
@@ -59,16 +61,24 @@ Options:
        0 to 3 octal digits
   \xHH the eight-bit character whose value is HH (hexadecimal).  HH
        can be one or two hex digits
+
+Exit Status:
+Returns success unless a write error occurs.
 $END
 
 $BUILTIN echo
 $FUNCTION echo_builtin
 $DEPENDS_ON !V9_ECHO
 $SHORT_DOC echo [-n] [arg ...]
+Write arguments to the standard output.
+
 Display the ARGs on the standard output followed by a newline.
 
 Options:
   -n   do not append a newline
+
+Exit Status:
+Returns success unless a write error occurs.
 $END
 
 #if defined (V9_ECHO)
index 74b872b70623cba9ee99c8a750c88ecdbf3e8f09..9d9b35fa3db9c92cd8da46765414449b60440711 100644 (file)
@@ -37,10 +37,12 @@ $BUILTIN echo
 $FUNCTION echo_builtin
 $DEPENDS_ON V9_ECHO
 $SHORT_DOC echo [-neE] [arg ...]
-Display each ARG on the standard output.
+Write arguments to the standard output.
+
+Display the ARGs on the standard output followed by a newline.
 
 Options:
-  -n   do not append a trailing newline
+  -n   do not append a newline
   -e   enable interpretation of the following backslash escapes
   -E   explicitly suppress interpretation of backslash escapes
 
@@ -59,17 +61,16 @@ Options:
        0 to 3 octal digits
   \xHH the eight-bit character whose value is HH (hexadecimal).  HH
        can be one or two hex digits
-
 $END
 
 $BUILTIN echo
 $FUNCTION echo_builtin
 $DEPENDS_ON !V9_ECHO
 $SHORT_DOC echo [-n] [arg ...]
-Display each ARG on the standard output.
+Display the ARGs on the standard output followed by a newline.
 
 Options:
-  -n   do not append a trailing newline
+  -n   do not append a newline
 $END
 
 #if defined (V9_ECHO)
index d53650ccbba7f31b58dce8fa0fc25a8bff0ab0a5..65298dc0ba8517c228b6ed4b77dfbdd893209753 100644 (file)
@@ -24,6 +24,8 @@ $PRODUCES enable.c
 $BUILTIN enable
 $FUNCTION enable_builtin
 $SHORT_DOC enable [-a] [-dnps] [-f filename] [name ...]
+Enable and disable shell builtins.
+
 Enables and disables builtin shell commands.  Disabling allows you to
 execute a disk command which has the same name as a shell builtin
 without using a full pathname.
@@ -42,6 +44,9 @@ Without options, each NAME is enabled.
 
 To use the `test' found in $PATH instead of the shell builtin
 version, type `enable -n test'.
+
+Exit Status:
+Returns success unless NAME is not a shell builtin or an error occurs.
 $END
 
 #include <config.h>
index 527cce27fbb51162f0d881de6bdc6155594d1369..e1cd5e4fecb26dce9ad535f91bbccb552e045785 100644 (file)
@@ -24,19 +24,19 @@ $PRODUCES enable.c
 $BUILTIN enable
 $FUNCTION enable_builtin
 $SHORT_DOC enable [-a] [-dnps] [-f filename] [name ...]
+Enable and disable shell builtins.
+
 Enables and disables builtin shell commands.  Disabling allows you to
 execute a disk command which has the same name as a shell builtin
 without using a full pathname.
 
 Options:
-
   -a   print a list of builtins showing whether or not each is enabled
   -n   disable each NAME or display a list of disabled builtins
   -p   print the list of builtins in a reusable format
   -s   print only the names of Posix `special' builtins
 
 Options controlling dynamic loading:
-
   -f   Load builtin NAME from shared object FILENAME
   -d   Remove a builtin loaded with -f
 
index fb91447f79dd1fd8f6bd9ae4e357ca252d5a1842..499718dd22000d90f4a4abe051caf548b69f1b76 100644 (file)
@@ -24,8 +24,13 @@ $PRODUCES eval.c
 $BUILTIN eval
 $FUNCTION eval_builtin
 $SHORT_DOC eval [arg ...]
+Execute arguments as a shell command.
+
 Combine ARGs into a single string, use the result as input to the shell,
 and execute the resulting commands.
+
+Exit Status:
+Returns exit status of command or success if command is null.
 $END
 
 #include <config.h>
index 500e8c7304875fff022d6976440ba24c44d262dc..8892def2fe891ab1a855ab805162735d18a187a9 100644 (file)
@@ -1,7 +1,7 @@
 This file is eval.def, from which is created eval.c.
 It implements the builtin "eval" in Bash.
 
-Copyright (C) 1987-2002 Free Software Foundation, Inc.
+Copyright (C) 1987-2008 Free Software Foundation, Inc.
 
 This file is part of GNU Bash, the Bourne Again SHell.
 
@@ -24,7 +24,10 @@ $PRODUCES eval.c
 $BUILTIN eval
 $FUNCTION eval_builtin
 $SHORT_DOC eval [arg ...]
-Read ARGs as input to the shell and execute the resulting command(s).
+Execute arguments as a shell command.
+
+Combine ARGs into a single string, use the result as input to the shell,
+and execute the resulting commands.
 $END
 
 #include <config.h>
index 36f0ad398c33fcb163dba45d9038f083a9746d60..56461b3c86ca1a649cd378b8c2f4b5cf69af2f6f 100644 (file)
@@ -79,6 +79,12 @@ parse_and_execute_cleanup ()
   run_unwind_frame ("parse_and_execute_top");
 }
 
+static void
+set_history_remembering ()
+{
+  remember_on_history = enable_history_list;
+}
+
 /* Parse and execute the commands in STRING.  Returns whatever
    execute_command () returns.  This frees STRING.  FLAGS is a
    flags word; look in common.h for the possible values.  Actions
@@ -115,7 +121,10 @@ parse_and_execute (string, from_file, flags)
   lreset = flags & SEVAL_RESETLINE;
 
 #if defined (HISTORY)
-  unwind_protect_int (remember_on_history);    /* can be used in scripts */
+  if (parse_and_execute_level == 0)
+    add_unwind_protect (set_history_remembering, (char *)NULL);
+  else
+    unwind_protect_int (remember_on_history);
 #  if defined (BANG_HISTORY)
   if (interactive_shell)
     {
diff --git a/builtins/evalstring.c~ b/builtins/evalstring.c~
new file mode 100644 (file)
index 0000000..a897693
--- /dev/null
@@ -0,0 +1,358 @@
+/* Evaluate a string as one or more shell commands.
+
+   Copyright (C) 1996-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 (HAVE_UNISTD_H)
+#  ifdef _MINIX
+#    include <sys/types.h>
+#  endif
+#  include <unistd.h>
+#endif
+
+#include <stdio.h>
+#include <signal.h>
+
+#include <errno.h>
+
+#include "filecntl.h"
+#include "../bashansi.h"
+
+#include "../shell.h"
+#include "../jobs.h"
+#include "../builtins.h"
+#include "../flags.h"
+#include "../input.h"
+#include "../execute_cmd.h"
+#include "../redir.h"
+#include "../trap.h"
+
+#if defined (HISTORY)
+#  include "../bashhist.h"
+#endif
+
+#include "common.h"
+
+#if !defined (errno)
+extern int errno;
+#endif
+
+#define IS_BUILTIN(s)  (builtin_address_internal(s, 0) != (struct builtin *)NULL)
+
+extern int indirection_level, subshell_environment;
+extern int line_number;
+extern int last_command_exit_value;
+extern int running_trap;
+extern int loop_level;
+extern int posixly_correct;
+
+int parse_and_execute_level = 0;
+
+static int cat_file __P((REDIRECT *));
+
+/* How to force parse_and_execute () to clean up after itself. */
+void
+parse_and_execute_cleanup ()
+{
+  if (running_trap)
+    {
+      run_trap_cleanup (running_trap - 1);
+      unfreeze_jobs_list ();
+    }
+  run_unwind_frame ("parse_and_execute_top");
+}
+
+static void
+set_history_remembering ()
+{
+  remember_on_history = enable_history_list;
+}
+
+/* Parse and execute the commands in STRING.  Returns whatever
+   execute_command () returns.  This frees STRING.  FLAGS is a
+   flags word; look in common.h for the possible values.  Actions
+   are:
+       (flags & SEVAL_NONINT) -> interactive = 0;
+       (flags & SEVAL_INTERACT) -> interactive = 1;
+       (flags & SEVAL_NOHIST) -> call bash_history_disable ()
+       (flags & SEVAL_NOFREE) -> don't free STRING when finished
+       (flags & SEVAL_RESETLINE) -> reset line_number to 1
+*/
+
+int
+parse_and_execute (string, from_file, flags)
+     char *string;
+     const char *from_file;
+     int flags;
+{
+  int code, x, lreset;
+  volatile int should_jump_to_top_level, last_result;
+  char *orig_string;
+  COMMAND *volatile command;
+
+  orig_string = string;
+  /* Unwind protect this invocation of parse_and_execute (). */
+  begin_unwind_frame ("parse_and_execute_top");
+  unwind_protect_int (parse_and_execute_level);
+  unwind_protect_jmp_buf (top_level);
+  unwind_protect_int (indirection_level);
+  unwind_protect_int (line_number);
+  unwind_protect_int (loop_level);
+  if (flags & (SEVAL_NONINT|SEVAL_INTERACT))
+    unwind_protect_int (interactive);
+
+  lreset = flags & SEVAL_RESETLINE;
+
+#if defined (HISTORY)
+  add_unwind_protect (set_history_remembering, (char *)NULL);
+#  if defined (BANG_HISTORY)
+  if (interactive_shell)
+    {
+      unwind_protect_int (history_expansion_inhibited);
+    }
+#  endif /* BANG_HISTORY */
+#endif /* HISTORY */
+
+  if (interactive_shell)
+    {
+      x = get_current_prompt_level ();
+      add_unwind_protect (set_current_prompt_level, x);
+    }
+  
+  add_unwind_protect (pop_stream, (char *)NULL);
+  if (orig_string && ((flags & SEVAL_NOFREE) == 0))
+    add_unwind_protect (xfree, orig_string);
+  end_unwind_frame ();
+
+  parse_and_execute_level++;
+
+  /* Reset the line number if the caller wants us to.  If we don't reset the
+     line number, we have to subtract one, because we will add one just
+     before executing the next command (resetting the line number sets it to
+     0; the first line number is 1). */
+  push_stream (lreset);
+  if (lreset == 0)
+    line_number--;
+    
+  indirection_level++;
+  if (flags & (SEVAL_NONINT|SEVAL_INTERACT))
+    interactive = (flags & SEVAL_NONINT) ? 0 : 1;
+
+#if defined (HISTORY)
+  if (flags & SEVAL_NOHIST)
+    bash_history_disable ();
+#endif /* HISTORY */
+
+  code = should_jump_to_top_level = 0;
+  last_result = EXECUTION_SUCCESS;
+
+  with_input_from_string (string, from_file);
+  while (*(bash_input.location.string))
+    {
+      command = (COMMAND *)NULL;
+
+      if (interrupt_state)
+       {
+         last_result = EXECUTION_FAILURE;
+         break;
+       }
+
+      /* Provide a location for functions which `longjmp (top_level)' to
+        jump to.  This prevents errors in substitution from restarting
+        the reader loop directly, for example. */
+      code = setjmp (top_level);
+
+      if (code)
+       {
+         should_jump_to_top_level = 0;
+         switch (code)
+           {
+           case FORCE_EOF:
+           case ERREXIT:
+           case EXITPROG:
+             if (command)
+               run_unwind_frame ("pe_dispose");
+             /* Remember to call longjmp (top_level) after the old
+                value for it is restored. */
+             should_jump_to_top_level = 1;
+             goto out;
+
+           case DISCARD:
+             if (command)
+               run_unwind_frame ("pe_dispose");
+             last_result = last_command_exit_value = EXECUTION_FAILURE; /* XXX */
+             if (subshell_environment)
+               {
+                 should_jump_to_top_level = 1;
+                 goto out;
+               }
+             else
+               {
+#if 0
+                 dispose_command (command);    /* pe_dispose does this */
+#endif
+                 continue;
+               }
+
+           default:
+             command_error ("parse_and_execute", CMDERR_BADJUMP, code, 0);
+             break;
+           }
+       }
+         
+      if (parse_command () == 0)
+       {
+         if (interactive_shell == 0 && read_but_dont_execute)
+           {
+             last_result = EXECUTION_SUCCESS;
+             dispose_command (global_command);
+             global_command = (COMMAND *)NULL;
+           }
+         else if (command = global_command)
+           {
+             struct fd_bitmap *bitmap;
+
+             bitmap = new_fd_bitmap (FD_BITMAP_SIZE);
+             begin_unwind_frame ("pe_dispose");
+             add_unwind_protect (dispose_fd_bitmap, bitmap);
+             add_unwind_protect (dispose_command, command);    /* XXX */
+
+             global_command = (COMMAND *)NULL;
+
+#if defined (ONESHOT)
+             /*
+              * IF
+              *   we were invoked as `bash -c' (startup_state == 2) AND
+              *   parse_and_execute has not been called recursively AND
+              *   we're not running a trap AND
+              *   we have parsed the full command (string == '\0') AND
+              *   we have a simple command without redirections AND
+              *   the command is not being timed AND
+              *   the command's return status is not being inverted
+              * THEN
+              *   tell the execution code that we don't need to fork
+              */
+             if (startup_state == 2 && parse_and_execute_level == 1 &&
+                 running_trap == 0 &&
+                 *bash_input.location.string == '\0' &&
+                 command->type == cm_simple &&
+                 !command->redirects && !command->value.Simple->redirects &&
+                 ((command->flags & CMD_TIME_PIPELINE) == 0) &&
+                 ((command->flags & CMD_INVERT_RETURN) == 0))
+               {
+                 command->flags |= CMD_NO_FORK;
+                 command->value.Simple->flags |= CMD_NO_FORK;
+               }
+#endif /* ONESHOT */
+
+             /* See if this is a candidate for $( <file ). */
+             if (startup_state == 2 &&
+                 (subshell_environment & SUBSHELL_COMSUB) &&
+                 *bash_input.location.string == '\0' &&
+                 command->type == cm_simple && !command->redirects &&
+                 (command->flags & CMD_TIME_PIPELINE) == 0 &&
+                 command->value.Simple->words == 0 &&
+                 command->value.Simple->redirects &&
+                 command->value.Simple->redirects->next == 0 &&
+                 command->value.Simple->redirects->instruction == r_input_direction)
+               {
+                 int r;
+                 r = cat_file (command->value.Simple->redirects);
+                 last_result = (r < 0) ? EXECUTION_FAILURE : EXECUTION_SUCCESS;
+               }
+             else
+               last_result = execute_command_internal
+                               (command, 0, NO_PIPE, NO_PIPE, bitmap);
+
+             dispose_command (command);
+             dispose_fd_bitmap (bitmap);
+             discard_unwind_frame ("pe_dispose");
+           }
+       }
+      else
+       {
+         last_result = EXECUTION_FAILURE;
+
+         /* Since we are shell compatible, syntax errors in a script
+            abort the execution of the script.  Right? */
+         break;
+       }
+    }
+
+ out:
+
+  run_unwind_frame ("parse_and_execute_top");
+
+  if (interrupt_state && parse_and_execute_level == 0)
+    {
+      /* An interrupt during non-interactive execution in an
+        interactive shell (e.g. via $PROMPT_COMMAND) should
+        not cause the shell to exit. */
+      interactive = interactive_shell;
+      throw_to_top_level ();
+    }
+
+  if (should_jump_to_top_level)
+    jump_to_top_level (code);
+
+  return (last_result);
+}
+
+/* Handle a $( < file ) command substitution.  This expands the filename,
+   returning errors as appropriate, then just cats the file to the standard
+   output. */
+static int
+cat_file (r)
+     REDIRECT *r;
+{
+  char *fn;
+  int fd, rval;
+
+  if (r->instruction != r_input_direction)
+    return -1;
+
+  /* Get the filename. */
+  if (posixly_correct && !interactive_shell)
+    disallow_filename_globbing++;
+  fn = redirection_expand (r->redirectee.filename);
+  if (posixly_correct && !interactive_shell)
+    disallow_filename_globbing--;
+
+  if (fn == 0)
+    {
+      redirection_error (r, AMBIGUOUS_REDIRECT);
+      return -1;
+    }
+
+  fd = open(fn, O_RDONLY);
+  if (fd < 0)
+    {
+      file_error (fn);
+      free (fn);
+      return -1;
+    }
+
+  rval = zcatfd (fd, 1, fn);
+
+  free (fn);
+  close (fd);
+
+  return (rval);
+}
index ffa427617a994ae35777eb008604bafce4236357..340c9af150588af109740f859909d0f156a2f135 100644 (file)
@@ -24,6 +24,8 @@ $PRODUCES exec.c
 $BUILTIN exec
 $FUNCTION exec_builtin
 $SHORT_DOC exec [-cl] [-a name] [command [arguments ...]] [redirection ...]
+Replace the shell with the given command.
+
 Execute COMMAND, replacing this shell with the specified program.
 ARGUMENTS become the arguments to COMMAND.  If COMMAND is not specified,
 any redirections take effect in the current shell.
@@ -35,6 +37,9 @@ Options:
 
 If the command cannot be executed, a non-interactive shell exits, unless
 the shell option `execfail' is set.
+
+Exit Status:
+Returns success unless COMMAND is not found or a redirection error occurs.
 $END
 
 #include <config.h>
index ce4aeb5e8e1a4cb5c6510a82eeb20e429a271109..b87b7ad539ffeddb02d4846832a1cf9a2efa9940 100644 (file)
@@ -24,12 +24,13 @@ $PRODUCES exec.c
 $BUILTIN exec
 $FUNCTION exec_builtin
 $SHORT_DOC exec [-cl] [-a name] [command [arguments ...]] [redirection ...]
+Replace the shell with the given command.
+
 Execute COMMAND, replacing this shell with the specified program.
 ARGUMENTS become the arguments to COMMAND.  If COMMAND is not specified,
 any redirections take effect in the current shell.
 
 Options:
-
   -a name      pass NAME as the zeroth argument to COMMAND
   -c           execute COMMAND with an empty environment
   -l           place a dash in the zeroth argument to COMMAND
index 800aab0f4bfac336c8fad04b76177f5995557161..c42915c589aad84a1eb14f89e0152abdcb50fd00 100644 (file)
@@ -24,6 +24,8 @@ $PRODUCES exit.c
 $BUILTIN exit
 $FUNCTION exit_builtin
 $SHORT_DOC exit [n]
+Exit the shell.
+
 Exits the shell with a status of N.  If N is omitted, the exit status
 is that of the last command executed.
 $END
@@ -70,8 +72,11 @@ exit_builtin (list)
 
 $BUILTIN logout
 $FUNCTION logout_builtin
-$SHORT_DOC logout
-Exits a login shell.  Returns an error if not executed in a login shell.
+$SHORT_DOC logout [n]
+Exit a login shell.
+
+Exits a login shell with exit status N.  Returns an error if not executed
+in a login shell.
 $END
 
 /* How to logout. */
index 3c0bfdf7f51c96d27bbdefa49f973d3c4b339e94..c42915c589aad84a1eb14f89e0152abdcb50fd00 100644 (file)
@@ -1,7 +1,7 @@
 This file is exit.def, from which is created exit.c.
 It implements the builtins "exit", and "logout" in Bash.
 
-Copyright (C) 1987-2006 Free Software Foundation, Inc.
+Copyright (C) 1987-2008 Free Software Foundation, Inc.
 
 This file is part of GNU Bash, the Bourne Again SHell.
 
@@ -24,7 +24,9 @@ $PRODUCES exit.c
 $BUILTIN exit
 $FUNCTION exit_builtin
 $SHORT_DOC exit [n]
-Exit the shell with a status of N.  If N is omitted, the exit status
+Exit the shell.
+
+Exits the shell with a status of N.  If N is omitted, the exit status
 is that of the last command executed.
 $END
 
@@ -70,8 +72,11 @@ exit_builtin (list)
 
 $BUILTIN logout
 $FUNCTION logout_builtin
-$SHORT_DOC logout
-Logout of a login shell.
+$SHORT_DOC logout [n]
+Exit a login shell.
+
+Exits a login shell with exit status N.  Returns an error if not executed
+in a login shell.
 $END
 
 /* How to logout. */
index 042318e935f7baef575b9fee0273f60f4510b7f9..26c9dd64280426f243d801d6f15bdb929d169938 100644 (file)
@@ -25,6 +25,8 @@ $BUILTIN fc
 $FUNCTION fc_builtin
 $DEPENDS_ON HISTORY
 $SHORT_DOC fc [-e ename] [-lnr] [first] [last] or fc -s [pat=rep] [command]
+Display or execute commands from the history list.
+
 fc is used to list or edit and re-execute commands from the history list.
 FIRST and LAST can be numbers specifying the range, or FIRST can be a
 string, which means the most recent command beginning with that
@@ -43,6 +45,9 @@ re-executed after the substitution OLD=NEW is performed.
 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 command.
+
+Exit Status:
+Returns success or status of executed command; non-zero if an error occurs.
 $END
 
 #include <config.h>
index 6d3a118ec7d32bac19ea7c2b07dbd2446ab55c14..08abb317fd23703dab247b84c94e0a6213b20cb9 100644 (file)
@@ -25,6 +25,8 @@ $BUILTIN fc
 $FUNCTION fc_builtin
 $DEPENDS_ON HISTORY
 $SHORT_DOC fc [-e ename] [-lnr] [first] [last] or fc -s [pat=rep] [command]
+Display or execute commands from the history list.
+
 fc is used to list or edit and re-execute commands from the history list.
 FIRST and LAST can be numbers specifying the range, or FIRST can be a
 string, which means the most recent command beginning with that
@@ -290,11 +292,6 @@ fc_builtin (list)
      line was actually added (HISTIGNORE may have caused it to not be),
      so we check hist_last_line_added. */
 
-  /* "When not listing, the fc command that caused the editing shall not be
-     entered into the history list." */
-  if (listing == 0 && hist_last_line_added)
-    delete_last_history ();
-
   last_hist = i - remember_on_history - hist_last_line_added;
 
   if (list)
@@ -322,6 +319,11 @@ fc_builtin (list)
        histbeg = histend = last_hist;
     }
 
+  /* "When not listing, the fc command that caused the editing shall not be
+     entered into the history list." */
+  if (listing == 0 && hist_last_line_added)
+    delete_last_history ();
+
   /* We print error messages for line specifications out of range. */
   if ((histbeg < 0) || (histend < 0))
     {
index fecd6a3a3f40c034b069cfb864b0c85481e1ce52..5fdc6896cdb40169f14a39346ffadb8883059577 100644 (file)
@@ -25,9 +25,14 @@ $BUILTIN fg
 $FUNCTION fg_builtin
 $DEPENDS_ON JOB_CONTROL
 $SHORT_DOC fg [job_spec]
+Move job to the foreground.
+
 Place the job identified by JOB_SPEC in the foreground, making it the
 current job.  If JOB_SPEC is not present, the shell's notion of the
 current job is used.
+
+Exit Status:
+Status of command placed in foreground, or failure if an error occurs.
 $END
 
 #include <config.h>
@@ -83,9 +88,14 @@ $BUILTIN bg
 $FUNCTION bg_builtin
 $DEPENDS_ON JOB_CONTROL
 $SHORT_DOC bg [job_spec ...]
+Move jobs to the background.
+
 Place the jobs identified by each JOB_SPEC in the background, as if they
 had been started with `&'.  If JOB_SPEC is not present, the shell's notion
 of the current job is used.
+
+Exit Status:
+Returns success unless job control is not enabled or an error occurs.
 $END
 
 #if defined (JOB_CONTROL)
index 655436d53972a11bedd6d87b0f1ad159c0b67930..96b806542f52858b690d3a1e380ba4c2a9da61a9 100644 (file)
@@ -25,9 +25,11 @@ $BUILTIN fg
 $FUNCTION fg_builtin
 $DEPENDS_ON JOB_CONTROL
 $SHORT_DOC fg [job_spec]
+Move job to the foreground.
+
 Place the job identified by JOB_SPEC in the foreground, making it the
-current job.  If JOB_SPEC is not present, the shell's notion of the current
-job is used.
+current job.  If JOB_SPEC is not present, the shell's notion of the
+current job is used.
 $END
 
 #include <config.h>
@@ -83,6 +85,8 @@ $BUILTIN bg
 $FUNCTION bg_builtin
 $DEPENDS_ON JOB_CONTROL
 $SHORT_DOC bg [job_spec ...]
+Move jobs to the background.
+
 Place the jobs identified by each JOB_SPEC in the background, as if they
 had been started with `&'.  If JOB_SPEC is not present, the shell's notion
 of the current job is used.
index a9aad62bd57a881e525fe910677d55324aa7f497..5ab86885db6ac2a16217df021a59e6ec76f80a7e 100644 (file)
@@ -24,7 +24,10 @@ $PRODUCES getopts.c
 $BUILTIN getopts
 $FUNCTION getopts_builtin
 $SHORT_DOC getopts optstring name [arg]
-Getopts is used by shell procedures to parse positional parameters.
+Parse option arguments.
+
+Getopts is used by shell procedures to parse positional parameters
+as options.
 
 OPTSTRING contains the option letters to be recognized; if a letter
 is followed by a colon, the option is expected to have an argument,
@@ -54,6 +57,10 @@ OPTSTRING is not a colon.  OPTERR has the value 1 by default.
 
 Getopts normally parses the positional parameters ($0 - $9), but if
 more arguments are given, they are parsed instead.
+
+Exit Status:
+Returns success if an option is found; fails if the end of options is
+encountered or an error occurs.
 $END
 
 #include <config.h>
diff --git a/builtins/getopts.def~ b/builtins/getopts.def~
new file mode 100644 (file)
index 0000000..8af6498
--- /dev/null
@@ -0,0 +1,326 @@
+This file is getopts.def, from which is created getopts.c.
+It implements the builtin "getopts" 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 getopts.c
+
+$BUILTIN getopts
+$FUNCTION getopts_builtin
+$SHORT_DOC getopts optstring name [arg]
+Parse option arguments.
+
+Getopts is used by shell procedures to parse positional parameters
+as options.
+
+OPTSTRING contains the option letters to be recognized; if a letter
+is followed by a colon, the option is expected to have an argument,
+which should be separated from it by white space.
+
+Each time it is invoked, getopts will place the next option in the
+shell variable $name, initializing name if it does not exist, and
+the index of the next argument to be processed into the shell
+variable OPTIND.  OPTIND is initialized to 1 each time the shell or
+a shell script is invoked.  When an option requires an argument,
+getopts places that argument into the shell variable OPTARG.
+
+getopts reports errors in one of two ways.  If the first character
+of OPTSTRING is a colon, getopts uses silent error reporting.  In
+this mode, no error messages are printed.  If an invalid option is
+seen, getopts places the option character found into OPTARG.  If a
+required argument is not found, getopts places a ':' into NAME and
+sets OPTARG to the option character found.  If getopts is not in
+silent mode, and an invalid option is seen, getopts places '?' into
+NAME and unsets OPTARG.  If a required argument is not found, a '?'
+is placed in NAME, OPTARG is unset, and a diagnostic message is
+printed.
+
+If the shell variable OPTERR has the value 0, getopts disables the
+printing of error messages, even if the first character of
+OPTSTRING is not a colon.  OPTERR has the value 1 by default.
+
+Getopts normally parses the positional parameters ($0 - $9), but if
+more arguments are given, they are parsed instead.
+$END
+
+#include <config.h>
+
+#include <stdio.h>
+
+#if defined (HAVE_UNISTD_H)
+#  ifdef _MINIX
+#    include <sys/types.h>
+#  endif
+#  include <unistd.h>
+#endif
+
+#include "../bashansi.h"
+
+#include "../shell.h"
+#include "common.h"
+#include "bashgetopt.h"
+#include "getopt.h"
+
+#define G_EOF          -1
+#define G_INVALID_OPT  -2
+#define G_ARG_MISSING  -3
+
+extern char *this_command_name;
+
+static int getopts_bind_variable __P((char *, char *));
+static int dogetopts __P((int, char **));
+
+/* getopts_reset is magic code for when OPTIND is reset.  N is the
+   value that has just been assigned to OPTIND. */
+void
+getopts_reset (newind)
+     int newind;
+{
+  sh_optind = newind;
+  sh_badopt = 0;
+}
+
+static int
+getopts_bind_variable (name, value)
+     char *name, *value;
+{
+  SHELL_VAR *v;
+
+  if (legal_identifier (name))
+    {
+      v = bind_variable (name, value, 0);
+      return (v && (readonly_p (v) == 0)) ? EXECUTION_SUCCESS : EXECUTION_FAILURE;
+    }
+  else
+    {
+      sh_invalidid (name);
+      return (EXECUTION_FAILURE);
+    }
+}
+
+/* Error handling is now performed as specified by Posix.2, draft 11
+   (identical to that of ksh-88).  The special handling is enabled if
+   the first character of the option string is a colon; this handling
+   disables diagnostic messages concerning missing option arguments
+   and invalid option characters.  The handling is as follows.
+
+   INVALID OPTIONS:
+        name -> "?"
+        if (special_error) then
+                OPTARG = option character found
+                no error output
+        else
+                OPTARG unset
+                diagnostic message
+        fi
+  MISSING OPTION ARGUMENT;
+        if (special_error) then
+                name -> ":"
+                OPTARG = option character found
+        else
+                name -> "?"
+                OPTARG unset
+                diagnostic message
+        fi
+ */
+
+static int
+dogetopts (argc, argv)
+     int argc;
+     char **argv;
+{
+  int ret, special_error, old_opterr, i, n;
+  char strval[2], numval[16];
+  char *optstr;                        /* list of options */
+  char *name;                  /* variable to get flag val */
+  char *t;
+
+  if (argc < 3)
+    {
+      builtin_usage ();
+      return (EX_USAGE);
+    }
+
+  /* argv[0] is "getopts". */
+
+  optstr = argv[1];
+  name = argv[2];
+  argc -= 2;
+  argv += 2;
+
+  special_error = optstr[0] == ':';
+
+  if (special_error)
+    {
+      old_opterr = sh_opterr;
+      optstr++;
+      sh_opterr = 0;           /* suppress diagnostic messages */
+    }
+
+  if (argc > 1)
+    {
+      sh_getopt_restore_state (argv);
+      t = argv[0];
+      argv[0] = dollar_vars[0];
+      ret = sh_getopt (argc, argv, optstr);
+      argv[0] = t;
+    }
+  else if (rest_of_args == (WORD_LIST *)NULL)
+    {
+      for (i = 0; i < 10 && dollar_vars[i]; i++)
+       ;
+
+      sh_getopt_restore_state (dollar_vars);
+      ret = sh_getopt (i, dollar_vars, optstr);
+    }
+  else
+    {
+      register WORD_LIST *words;
+      char **v;
+
+      for (i = 0; i < 10 && dollar_vars[i]; i++)
+       ;
+      for (words = rest_of_args; words; words = words->next, i++)
+       ;
+      v = strvec_create (i + 1);
+      for (i = 0; i < 10 && dollar_vars[i]; i++)
+       v[i] = dollar_vars[i];
+      for (words = rest_of_args; words; words = words->next, i++)
+       v[i] = words->word->word;
+      v[i] = (char *)NULL;
+      sh_getopt_restore_state (v);
+      ret = sh_getopt (i, v, optstr);
+      free (v);
+    }
+
+  if (special_error)
+    sh_opterr = old_opterr;
+
+  /* Set the OPTIND variable in any case, to handle "--" skipping.  It's
+     highly unlikely that 14 digits will be too few. */
+  if (sh_optind < 10)
+    {
+      numval[14] = sh_optind + '0';
+      numval[15] = '\0';
+      i = 14;
+    }
+  else
+    {
+      numval[i = 15] = '\0';
+      n = sh_optind;
+      do
+       {
+         numval[--i] = (n % 10) + '0';
+       }
+      while (n /= 10);
+    }
+  bind_variable ("OPTIND", numval + i, 0);
+
+  /* If an error occurred, decide which one it is and set the return
+     code appropriately.  In all cases, the option character in error
+     is in OPTOPT.  If an invalid option was encountered, OPTARG is
+     NULL.  If a required option argument was missing, OPTARG points
+     to a NULL string (that is, sh_optarg[0] == 0). */
+  if (ret == '?')
+    {
+      if (sh_optarg == NULL)
+       ret = G_INVALID_OPT;
+      else if (sh_optarg[0] == '\0')
+       ret = G_ARG_MISSING;
+    }
+           
+  if (ret == G_EOF)
+    {
+      unbind_variable ("OPTARG");
+      getopts_bind_variable (name, "?");
+      return (EXECUTION_FAILURE);
+    }
+
+  if (ret == G_INVALID_OPT)
+    {
+      /* Invalid option encountered. */
+      ret = getopts_bind_variable (name, "?");
+
+      if (special_error)
+       {
+         strval[0] = (char)sh_optopt;
+         strval[1] = '\0';
+         bind_variable ("OPTARG", strval, 0);
+       }
+      else
+       unbind_variable ("OPTARG");
+
+      return (ret);
+    }
+
+  if (ret == G_ARG_MISSING)
+    {
+      /* Required argument missing. */
+      if (special_error)
+       {
+         ret = getopts_bind_variable (name, ":");
+
+         strval[0] = (char)sh_optopt;
+         strval[1] = '\0';
+         bind_variable ("OPTARG", strval, 0);
+       }
+      else
+       {
+         ret = getopts_bind_variable (name, "?");
+         unbind_variable ("OPTARG");
+       }
+      return (ret);
+    }                  
+
+  bind_variable ("OPTARG", sh_optarg, 0);
+
+  strval[0] = (char) ret;
+  strval[1] = '\0';
+  return (getopts_bind_variable (name, strval));
+}
+
+/* The getopts builtin.  Build an argv, and call dogetopts with it. */
+int
+getopts_builtin (list)
+     WORD_LIST *list;
+{
+  char **av;
+  int ac, ret;
+
+  if (list == 0)
+    {
+      builtin_usage ();
+      return EX_USAGE;
+    }
+
+  reset_internal_getopt ();
+  if (internal_getopt (list, "") != -1)
+    {
+      builtin_usage ();
+      return (EX_USAGE);
+    }
+  list = loptend;
+
+  av = make_builtin_argv (list, &ac);
+  ret = dogetopts (ac, av);
+  free ((char *)av);
+
+  return (ret);
+}
index 95c8d8e088830958298dc8e9c1bd2f672febef79..164d2a8abb608df0b370db6f929c061218bc8d89 100644 (file)
@@ -24,6 +24,8 @@ $PRODUCES hash.c
 $BUILTIN hash
 $FUNCTION hash_builtin
 $SHORT_DOC hash [-lr] [-p pathname] [-dt] [name ...]
+Remember or display program locations.
+
 Determine and remember the full pathname of each command NAME.  If
 no arguments are given, information about remembered commands is displayed.
 
@@ -35,6 +37,12 @@ Options:
   -t           print the remembered location of each NAME, preceding
                each location with the corresponding NAME if multiple
                NAMEs are given
+Arguments:
+  NAME         Each NAME is searched for in $PATH and added to the list
+               of remembered commands.
+
+Exit Status:
+Returns success unless NAME is not found or an invalid option is given.
 $END
 
 #include <config.h>
index 8c827e1705de64c09ab5c5c09aaac2f964b478c2..dc71b1d0d5cd6ac245bc3f5076554ad271009a5e 100644 (file)
@@ -1,7 +1,7 @@
 This file is hash.def, from which is created hash.c.
 It implements the builtin "hash" in Bash.
 
-Copyright (C) 1987-2006 Free Software Foundation, Inc.
+Copyright (C) 1987-2008 Free Software Foundation, Inc.
 
 This file is part of GNU Bash, the Bourne Again SHell.
 
@@ -24,16 +24,22 @@ $PRODUCES hash.c
 $BUILTIN hash
 $FUNCTION hash_builtin
 $SHORT_DOC hash [-lr] [-p pathname] [-dt] [name ...]
-For each NAME, the full pathname of the command is determined and
-remembered.  If the -p option is supplied, PATHNAME is used as the
-full pathname of NAME, and no path search is performed.  The -r
-option causes the shell to forget all remembered locations.  The -d
-option causes the shell to forget the remembered location of each NAME.
-If the -t option is supplied the full pathname to which each NAME
-corresponds is printed.  If multiple NAME arguments are supplied with
--t, the NAME is printed before the hashed full pathname.  The -l option
-causes output to be displayed in a format that may be reused as input.
-If no arguments are given, information about remembered commands is displayed.
+Remember or display program locations.
+
+Determine and remember the full pathname of each command NAME.  If
+no arguments are given, information about remembered commands is displayed.
+
+Options:
+  -d           forget the remembered location of each NAME
+  -l           display in a format that may be reused as input
+  -p pathname  use PATHNAME is the full pathname of NAME
+  -r           forget all remembered locations
+  -t           print the remembered location of each NAME, preceding
+               each location with the corresponding NAME if multiple
+               NAMEs are given
+Arguments:
+  NAME         Each NAME is searched for in $PATH and added to the list
+               of remembered commands.
 $END
 
 #include <config.h>
index 8619f7545fc2654e6a23a2af09037b24fbe2ce64..9d06fe35e83dd5d45050fc1f69380df7703eeae9 100644 (file)
@@ -24,14 +24,24 @@ $PRODUCES help.c
 $BUILTIN help
 $FUNCTION help_builtin
 $DEPENDS_ON HELP_BUILTIN
-$SHORT_DOC help [-s] [pattern ...]
-Displays brief information about builtin commands.  If PATTERN is
+$SHORT_DOC help [-ds] [pattern ...]
+Display information about builtin commands.
+
+Displays brief summaries of builtin commands.  If PATTERN is
 specified, gives detailed help on all commands matching PATTERN,
 otherwise the list of help topics is printed.
 
 Options:
+  -d   output short description for each topic
+  -m   display usage in pseudo-manpage format
   -s   output only a short usage synopsis for each topic matching
        PATTERN
+
+Arguments:
+  PATTERN      Pattern specifiying a help topic
+
+Exit Status:
+Returns success unless PATTERN is not found or an invalid option is given.
 $END
 
 #include <config.h>
@@ -66,6 +76,9 @@ extern int errno;
 #endif
 
 static void show_builtin_command_help __P((void));
+static int open_helpfile __P((char *));
+static void show_desc __P((char *, int));
+static void show_manpage __P((char *, int));
 static void show_longdoc __P((int));
 
 /* Print out a list of the known functions in the shell, and what they do.
@@ -77,14 +90,20 @@ help_builtin (list)
 {
   register int i;
   char *pattern, *name;
-  int plen, match_found, sflag;
+  int plen, match_found, sflag, dflag, mflag;
 
-  sflag = 0;
+  dflag = sflag = mflag = 0;
   reset_internal_getopt ();
-  while ((i = internal_getopt (list, "s")) != -1)
+  while ((i = internal_getopt (list, "dms")) != -1)
     {
       switch (i)
        {
+       case 'd':
+         dflag = 1;
+         break;
+       case 'm':
+         mflag = 1;
+         break;
        case 's':
          sflag = 1;
          break;
@@ -125,12 +144,22 @@ help_builtin (list)
          if ((strncmp (pattern, name, plen) == 0) ||
              (strmatch (pattern, name, FNMATCH_EXTFLAG) != FNM_NOMATCH))
            {
+             match_found++;
+             if (dflag)
+               {
+                 show_desc (name, i);
+                 continue;
+               }
+             else if (mflag)
+               {
+                 show_manpage (name, i);
+                 continue;
+               }
+
              printf ("%s: %s\n", name, shell_builtins[i].short_doc);
 
              if (sflag == 0)
                show_longdoc (i);
-
-             match_found++;
            }
        }
     }
@@ -145,6 +174,21 @@ help_builtin (list)
   return (EXECUTION_SUCCESS);
 }
 
+static int
+open_helpfile (name)
+     char *name;
+{
+  int fd;
+
+  fd = open (name, O_RDONLY);
+  if (fd == -1)
+    {
+      builtin_error (_("%s: cannot open: %s"), name, strerror (errno));
+      return -1;
+    }
+  return fd;
+}
+
 /* By convention, enforced by mkbuiltins.c, if separate help files are being
    used, the long_doc array contains one string -- the full pathname of the
    help file for this builtin.  */
@@ -160,12 +204,9 @@ show_longdoc (i)
 
   if (doc && doc[0] && *doc[0] == '/' && doc[1] == (char *)NULL)
     {
-      fd = open (doc[0], O_RDONLY);
-      if (fd == -1)
-       {
-         builtin_error (_("%s: cannot open: %s"), doc[0], strerror (errno));
-         return;
-       }
+      fd = open_helpfile (doc[0]);
+      if (fd < 0)
+       return;
       zcatfd (fd, 1, doc[0]);
       close (fd);
     }
@@ -174,6 +215,118 @@ show_longdoc (i)
       printf ("%*s%s\n", BASE_INDENT, " ", _(doc[j]));
 }
 
+static void
+show_desc (name, i)
+     char *name;
+     int i;
+{
+  register int j;
+  char **doc, *line;
+  int fd, usefile;
+
+  doc = (char **)shell_builtins[i].long_doc;
+
+  usefile = (doc && doc[0] && *doc[0] == '/' && doc[1] == (char *)NULL);
+  if (usefile)
+    {
+      fd = open_helpfile (doc[0]);
+      if (fd < 0)
+       return;
+      zmapfd (fd, &line, doc[0]);
+      close (fd);
+    }
+  else
+    line = doc ? doc[0] : (char *)NULL;
+
+  printf ("%s - ", name);
+  for (j = 0; line && line[j]; j++)
+    {
+      putchar (line[j]);
+      if (line[j] == '\n')
+       break;
+    }
+  
+  fflush (stdout);
+
+  if (usefile)
+    free (line);
+}
+
+/* Print builtin help in pseudo-manpage format. */
+static void
+show_manpage (name, i)
+     char *name;
+     int i;
+{
+  register int j;
+  char **doc, *line;
+  int fd, usefile;
+
+  doc = (char **)shell_builtins[i].long_doc;
+
+  usefile = (doc && doc[0] && *doc[0] == '/' && doc[1] == (char *)NULL);
+  if (usefile)
+    {
+      fd = open_helpfile (doc[0]);
+      if (fd < 0)
+       return;
+      zmapfd (fd, &line, doc[0]);
+      close (fd);
+    }
+  else
+    line = doc ? _(doc[0]) : (char *)NULL;
+
+  /* NAME */
+  printf ("NAME\n");
+  printf ("%*s%s - ", BASE_INDENT, " ", name);
+  for (j = 0; line && line[j]; j++)
+    {
+      putchar (line[j]);
+      if (line[j] == '\n')
+       break;
+    }
+  printf ("\n");
+
+  /* SYNOPSIS */
+  printf ("SYNOPSIS\n");
+  printf ("%*s%s\n\n", BASE_INDENT, " ", shell_builtins[i].short_doc);
+
+  /* DESCRIPTION */
+  printf ("DESCRIPTION\n");
+  if (usefile == 0)
+    {
+      for (j = 0; doc[j]; j++)
+        printf ("%*s%s\n", BASE_INDENT, " ", _(doc[j]));
+    }
+  else
+    {
+      for (j = 0; line && line[j]; j++)
+       {
+         putchar (line[j]);
+         if (line[j] == '\n')
+           printf ("%*s", BASE_INDENT, " ");
+       }
+    }
+  putchar ('\n');
+
+  /* SEE ALSO */
+  printf ("SEE ALSO\n");
+  printf ("%*sbash(1)\n\n", BASE_INDENT, " ");
+
+  /* IMPLEMENTATION */
+  printf ("IMPLEMENTATION\n");
+  printf ("%*s", BASE_INDENT, " ");
+  show_shell_version (0);
+  printf ("%*s", BASE_INDENT, " ");
+  printf (_("Copyright (C) 2008 Free Software Foundation, Inc.\n"));
+  printf ("%*s", BASE_INDENT, " ");
+  printf (_("License: GNU General Public License, version 2\n"));
+
+  fflush (stdout);
+  if (usefile)
+    free (line);
+}
+
 static void
 show_builtin_command_help ()
 {
index 729f61f3885894a52feb8f3c863a0200cbf518f0..cfca074805b24b843f911315b346d20baab85ec8 100644 (file)
@@ -24,13 +24,24 @@ $PRODUCES help.c
 $BUILTIN help
 $FUNCTION help_builtin
 $DEPENDS_ON HELP_BUILTIN
-$SHORT_DOC help [-s] [pattern ...]
-Displays brief information about builtin commands.  If PATTERN is
+$SHORT_DOC help [-ds] [pattern ...]
+Display information about builtin commands.
+
+Displays brief summaries of builtin commands.  If PATTERN is
 specified, gives detailed help on all commands matching PATTERN,
 otherwise the list of help topics is printed.
 
 Options:
-  -s   output only a short usage synopsis for each topic matching PATTERN
+  -d   output short description for each topic
+  -m   display usage in pseudo-manpage format
+  -s   output only a short usage synopsis for each topic matching
+       PATTERN
+
+Arguments:
+  PATTERN      Pattern specifiying a help topic
+
+Exit Status:
+Returns success unless PATTERN is not found or an invalid option is given.
 $END
 
 #include <config.h>
@@ -65,6 +76,9 @@ extern int errno;
 #endif
 
 static void show_builtin_command_help __P((void));
+static int open_helpfile __P((char *));
+static void show_desc __P((char *, int));
+static void show_manpage __P((char *, int));
 static void show_longdoc __P((int));
 
 /* Print out a list of the known functions in the shell, and what they do.
@@ -76,14 +90,20 @@ help_builtin (list)
 {
   register int i;
   char *pattern, *name;
-  int plen, match_found, sflag;
+  int plen, match_found, sflag, dflag, mflag;
 
-  sflag = 0;
+  dflag = sflag = mflag = 0;
   reset_internal_getopt ();
-  while ((i = internal_getopt (list, "s")) != -1)
+  while ((i = internal_getopt (list, "dms")) != -1)
     {
       switch (i)
        {
+       case 'd':
+         dflag = 1;
+         break;
+       case 'm':
+         mflag = 1;
+         break;
        case 's':
          sflag = 1;
          break;
@@ -124,12 +144,22 @@ help_builtin (list)
          if ((strncmp (pattern, name, plen) == 0) ||
              (strmatch (pattern, name, FNMATCH_EXTFLAG) != FNM_NOMATCH))
            {
+             match_found++;
+             if (dflag)
+               {
+                 show_desc (name, i);
+                 continue;
+               }
+             else if (mflag)
+               {
+                 show_manpage (name, i);
+                 continue;
+               }
+
              printf ("%s: %s\n", name, shell_builtins[i].short_doc);
 
              if (sflag == 0)
                show_longdoc (i);
-
-             match_found++;
            }
        }
     }
@@ -144,6 +174,21 @@ help_builtin (list)
   return (EXECUTION_SUCCESS);
 }
 
+static int
+open_helpfile (name)
+     char *name;
+{
+  int fd;
+
+  fd = open (name, O_RDONLY);
+  if (fd == -1)
+    {
+      builtin_error (_("%s: cannot open: %s"), name, strerror (errno));
+      return -1;
+    }
+  return fd;
+}
+
 /* By convention, enforced by mkbuiltins.c, if separate help files are being
    used, the long_doc array contains one string -- the full pathname of the
    help file for this builtin.  */
@@ -159,12 +204,7 @@ show_longdoc (i)
 
   if (doc && doc[0] && *doc[0] == '/' && doc[1] == (char *)NULL)
     {
-      fd = open (doc[0], O_RDONLY);
-      if (fd == -1)
-       {
-         builtin_error (_("%s: cannot open: %s"), doc[0], strerror (errno));
-         return;
-       }
+      fd = open_helpfile (doc[0]);
       zcatfd (fd, 1, doc[0]);
       close (fd);
     }
@@ -173,6 +213,114 @@ show_longdoc (i)
       printf ("%*s%s\n", BASE_INDENT, " ", _(doc[j]));
 }
 
+static void
+show_desc (name, i)
+     char *name;
+     int i;
+{
+  register int j;
+  char **doc, *line;
+  int fd, usefile;
+
+  doc = (char **)shell_builtins[i].long_doc;
+
+  usefile = (doc && doc[0] && *doc[0] == '/' && doc[1] == (char *)NULL);
+  if (usefile)
+    {
+      fd = open_helpfile (doc[0]);
+      zmapfd (fd, &line, doc[0]);
+      close (fd);
+    }
+  else
+    line = doc ? doc[0] : (char *)NULL;
+
+  printf ("%s - ", name);
+  for (j = 0; line && line[j]; j++)
+    {
+      putchar (line[j]);
+      if (line[j] == '\n')
+       break;
+    }
+  
+  fflush (stdout);
+
+  if (usefile)
+    free (line);
+}
+
+/* Print builtin help in pseudo-manpage format. */
+static void
+show_manpage (name, i)
+     char *name;
+     int i;
+{
+  register int j;
+  char **doc, *line;
+  int fd, usefile;
+
+  doc = (char **)shell_builtins[i].long_doc;
+
+  usefile = (doc && doc[0] && *doc[0] == '/' && doc[1] == (char *)NULL);
+  if (usefile)
+    {
+      fd = open_helpfile (doc[0]);
+      zmapfd (fd, &line, doc[0]);
+      close (fd);
+    }
+  else
+    line = doc ? _(doc[0]) : (char *)NULL;
+
+  /* NAME */
+  printf ("NAME\n");
+  printf ("%*s%s - ", BASE_INDENT, " ", name);
+  for (j = 0; line && line[j]; j++)
+    {
+      putchar (line[j]);
+      if (line[j] == '\n')
+       break;
+    }
+  printf ("\n");
+
+  /* SYNOPSIS */
+  printf ("SYNOPSIS\n");
+  printf ("%*s%s\n\n", BASE_INDENT, " ", shell_builtins[i].short_doc);
+
+  /* DESCRIPTION */
+  printf ("DESCRIPTION\n");
+  if (usefile == 0)
+    {
+      for (j = 0; doc[j]; j++)
+        printf ("%*s%s\n", BASE_INDENT, " ", _(doc[j]));
+    }
+  else
+    {
+      for (j = 0; line && line[j]; j++)
+       {
+         putchar (line[j]);
+         if (line[j] == '\n')
+           printf ("%*s", BASE_INDENT, " ");
+       }
+    }
+  putchar ('\n');
+
+  /* SEE ALSO */
+  printf ("SEE ALSO\n");
+  printf ("%*sbash(1)\n\n", BASE_INDENT, " ");
+
+  /* IMPLEMENTATION */
+  printf ("IMPLEMENTATION\n");
+  printf ("%*s", BASE_INDENT, " ");
+  show_shell_version (0);
+  printf ("%*s", BASE_INDENT, " ");
+  printf (_("Copyright (C) 2008 Free Software Foundation, Inc.\n"));
+  printf ("%*s", BASE_INDENT, " ");
+  printf (_("License: GNU General Public License, version 2\n"));
+
+  fflush (stdout);
+  if (usefile)
+    free (line);
+}
+
 static void
 show_builtin_command_help ()
 {
index 319523998ca1d603adbeaa2e0b263bfa18100787..1c888c55a1afba90f7504e7971706d02c83aeed6 100644 (file)
@@ -25,6 +25,8 @@ $BUILTIN history
 $FUNCTION history_builtin
 $DEPENDS_ON HISTORY
 $SHORT_DOC history [-c] [-d offset] [n] or history -anrw [filename] or history -ps arg [arg...]
+Display or manipulate the history list.
+
 Display the history list with line numbers, prefixing each modified
 entry with a `*'.  An argument of N lists only the last N entries.
 
@@ -49,6 +51,9 @@ if $HISTFILE has a value, that is used, else ~/.bash_history.
 If the $HISTTIMEFORMAT variable is set and not null, its value is used
 as a format string for strftime(3) to print the time stamp associated
 with each displayed history entry.  No time stamps are printed otherwise.
+
+Exit Status:
+Returns success unless an invalid option is given or an error occurs.
 $END
 
 #include <config.h>
index 965b71c7007b2d2a9a61e84a53b400ec6c698b37..f3008244ee9e6f8d39b9a30e9b6bf2988a37f9a1 100644 (file)
@@ -25,8 +25,10 @@ $BUILTIN history
 $FUNCTION history_builtin
 $DEPENDS_ON HISTORY
 $SHORT_DOC history [-c] [-d offset] [n] or history -anrw [filename] or history -ps arg [arg...]
-Display the history list with line numbers, prefixing each modified entry
-with a `*'.  An argument of N lists only the last N entries.
+Display or manipulate the history list.
+
+Display the history list with line numbers, prefixing each modified
+entry with a `*'.  An argument of N lists only the last N entries.
 
 Options:
   -c   clear the history list by deleting all of the entries
index 958c72e6e20cce2221603e06d3cdec5d5e9a3a3e..f37d77af53f72f5b8fe901f5e60847230649f883 100644 (file)
@@ -29,12 +29,17 @@ $BUILTIN inlib
 $FUNCTION inlib_builtin
 $DEPENDS_ON apollo
 $SHORT_DOC inlib pathname [pathname...]
+Install user-supplied library.
+
 Install a user-supplied library specified by pathname in the current
 shell process. The library is used to resolve external references
 in programs and libraries loaded after its installation.  Note
 that the library is not loaded into the address space unless it is
 needed to resolve an external reference.  The list of inlibed
 libraries is passed to all children of the current shell.
+
+Exit Status:
+Returns success unless PATHNAME is not found or an error occurs.
 $END
 
 #if defined (apollo)
index 094c4b949a89126eebce89701526bc44c41c4a19..9536f01c180376d3422e25e47c58c7b11e6d1d3f 100644 (file)
@@ -29,6 +29,8 @@ $BUILTIN inlib
 $FUNCTION inlib_builtin
 $DEPENDS_ON apollo
 $SHORT_DOC inlib pathname [pathname...]
+Install user-supplied library.
+
 Install a user-supplied library specified by pathname in the current
 shell process. The library is used to resolve external references
 in programs and libraries loaded after its installation.  Note
@@ -64,7 +66,7 @@ inlib_builtin (list)
 
       if (status.all != status_$ok)
        {
-         builtin_error ("%s: inlib failed", list->word->word);
+         builtin_error (_("%s: inlib failed"), list->word->word);
          return_value = EXECUTION_FAILURE;
        }
 
index adc4a7a8b9337c84cab33e6dc327097eb5616830..21da877d36a8ed953151dc322707638ec0efc6a2 100644 (file)
@@ -25,6 +25,8 @@ $BUILTIN jobs
 $FUNCTION jobs_builtin
 $DEPENDS_ON JOB_CONTROL
 $SHORT_DOC jobs [-lnprs] [jobspec ...] or jobs -x command [args]
+Display status of jobs.
+
 Lists the active jobs.  JOBSPEC restricts output to that job.
 Without options, the status of all active jobs is displayed.
 
@@ -39,6 +41,10 @@ Options:
 If -x is supplied, COMMAND is run after all job specifications that
 appear in ARGS have been replaced with the process ID of that job's
 process group leader.
+
+Exit Status:
+Returns success unless an invalid option is given or an error occurs.
+If -x is used, returns the exit status of COMMAND.
 $END
 
 #include <config.h>
@@ -208,6 +214,8 @@ $BUILTIN disown
 $FUNCTION disown_builtin
 $DEPENDS_ON JOB_CONTROL
 $SHORT_DOC disown [-h] [-ar] [jobspec ...]
+Remove jobs from current shell.
+
 Removes each JOBSPEC argument from the table of active jobs.  Without
 any JOBSPECs, the shell uses its notion of the current job.
 
@@ -216,6 +224,9 @@ Options:
   -h   mark each JOBSPEC so that SIGHUP is not sent to the job if the
        shell receives a SIGHUP
   -r   remove only running jobs
+
+Exit Status:
+Returns success unless an invalid option or JOBSPEC is given.
 $END
 
 #if defined (JOB_CONTROL)
index 2757c0a6b5b7548197501c26773edcceb1a01ab5..d42e20807cdbadf1ec1ba0a32f482c2e22ee842c 100644 (file)
@@ -1,7 +1,7 @@
 This file is jobs.def, from which is created jobs.c.
 It implements the builtins "jobs" and "disown" in Bash.
 
-Copyright (C) 1987-2006 Free Software Foundation, Inc.
+Copyright (C) 1987-2008 Free Software Foundation, Inc.
 
 This file is part of GNU Bash, the Bourne Again SHell.
 
@@ -25,6 +25,8 @@ $BUILTIN jobs
 $FUNCTION jobs_builtin
 $DEPENDS_ON JOB_CONTROL
 $SHORT_DOC jobs [-lnprs] [jobspec ...] or jobs -x command [args]
+Display status of jobs.
+
 Lists the active jobs.  JOBSPEC restricts output to that job.
 Without options, the status of all active jobs is displayed.
 
@@ -208,6 +210,8 @@ $BUILTIN disown
 $FUNCTION disown_builtin
 $DEPENDS_ON JOB_CONTROL
 $SHORT_DOC disown [-h] [-ar] [jobspec ...]
+Remove jobs from current shell.
+
 Removes each JOBSPEC argument from the table of active jobs.  Without
 any JOBSPECs, the shell uses its notion of the current job.
 
index fab90ad413d03836e5e8fdac9cb16fd382ad77a8..53373e81bc87c30326fcc23d3fd1153145229102 100644 (file)
@@ -24,6 +24,8 @@ $PRODUCES kill.c
 $BUILTIN kill
 $FUNCTION kill_builtin
 $SHORT_DOC kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... or kill -l [sigspec]
+Send a signal to a job.
+
 Send the processes identified by PID or JOBSPEC the signal named by
 SIGSPEC or SIGNUM.  If neither SIGSPEC nor SIGNUM is present, then
 SIGTERM is assumed.
@@ -37,6 +39,9 @@ Options:
 Kill is a shell builtin for two reasons: it allows job IDs to be used
 instead of process IDs, and allows processes to be killed if the limit
 on processes that you can create is reached.
+
+Exit Status:
+Returns success unless an invalid option is given or an error occurs.
 $END
 
 #include <config.h>
index 33108752e59aa4e223ebefe5daaec5c3a84be329..8c8ba343770965a9250c52d3ecd3a7bb91f09728 100644 (file)
@@ -24,6 +24,8 @@ $PRODUCES kill.c
 $BUILTIN kill
 $FUNCTION kill_builtin
 $SHORT_DOC kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... or kill -l [sigspec]
+Send a signal to a job.
+
 Send the processes identified by PID or JOBSPEC the signal named by
 SIGSPEC or SIGNUM.  If neither SIGSPEC nor SIGNUM is present, then
 SIGTERM is assumed.
@@ -31,8 +33,8 @@ SIGTERM is assumed.
 Options:
   -s sig       SIG is a signal name
   -n sig       SIG is a signal number
-  -l   list the signal names; if arguments follow `-l' they are assumed
-       to be signal numbers for which names should be listed
+  -l   list the signal names; if arguments follow `-l' they are
+       assumed to be signal numbers for which names should be listed
 
 Kill is a shell builtin for two reasons: it allows job IDs to be used
 instead of process IDs, and allows processes to be killed if the limit
index f354b5a6cc59c77e70d83df1764d8ae49481c10b..83249a5814a93399da9233cefe38b4e4c1234d23 100644 (file)
@@ -23,7 +23,9 @@ $BUILTIN let
 $FUNCTION let_builtin
 $PRODUCES let.c
 $SHORT_DOC let arg [arg ...]
-Evaluates ach ARG as an arithmetic expression.  Evaluation is done in
+Evaluate arithmetic expressions.
+
+Evaluate each ARG as an arithmetic expression.  Evaluation is done in
 fixed-width integers with no check for overflow, though division by 0
 is trapped and flagged as an error.  The following list of operators is
 grouped into levels of equal-precedence operators.  The levels are listed
@@ -59,8 +61,8 @@ Operators are evaluated in order of precedence.  Sub-expressions in
 parentheses are evaluated first and may override the precedence
 rules above.
 
-If the last ARG evaluates to 0, let returns 1; 0 is returned
-otherwise.
+Exit Status:
+If the last ARG evaluates to 0, let returns 1; let returns 0 otherwise..
 $END
 
 #include <config.h>
index ab43a45421c26ca702a42179fba2f776828fdbf4..dae762d750b9dd70452896612fad7a41de8bccc7 100644 (file)
@@ -1,7 +1,7 @@
 This file is let.def, from which is created let.c.
 It implements the builtin "let" in Bash.
 
-Copyright (C) 1987-2002 Free Software Foundation, Inc.
+Copyright (C) 1987-2008 Free Software Foundation, Inc.
 
 This file is part of GNU Bash, the Bourne Again SHell.
 
@@ -23,11 +23,13 @@ $BUILTIN let
 $FUNCTION let_builtin
 $PRODUCES let.c
 $SHORT_DOC let arg [arg ...]
-Each ARG is an arithmetic expression to be evaluated.  Evaluation
-is done in fixed-width integers with no check for overflow, though
-division by 0 is trapped and flagged as an error.  The following
-list of operators is grouped into levels of equal-precedence operators.
-The levels are listed in order of decreasing precedence.
+Evaluate arithmetic expressions.
+
+Evaluate each ARG as an arithmetic expression.  Evaluation is done in
+fixed-width integers with no check for overflow, though division by 0
+is trapped and flagged as an error.  The following list of operators is
+grouped into levels of equal-precedence operators.  The levels are listed
+in order of decreasing precedence.
 
        id++, id--      variable post-increment, post-decrement
        ++id, --id      variable pre-increment, pre-decrement
diff --git a/builtins/mapfile.def b/builtins/mapfile.def
new file mode 100644 (file)
index 0000000..17705a6
--- /dev/null
@@ -0,0 +1,318 @@
+This file is mapfile.def, from which is created mapfile.c.
+It implements the builtin "mapfile" in Bash.
+
+Copyright (C) 2005-2006 Rocky Bernstein for Free Software Foundation, Inc.
+Copyright (C) 2008 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 mapfile.c
+
+$BUILTIN mapfile
+$FUNCTION mapfile_builtin
+$SHORT_DOC mapfile [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c quantum] [array]
+Read lines from a file into an array variable.
+
+Read lines from the standard input into the array variable ARRAY, or from
+file descriptor FD if the -u option is supplied.  The variable MAPFILE is
+the default ARRAY.
+
+Options:
+  -n count     Copy at most COUNT lines.  If COUNT is 0, all lines are copied.
+  -O origin    Begin assigning to ARRAY at index ORIGIN.  The default index is 0.
+  -s count     Discard the first COUNT lines read.
+  -t           Remove a trailing newline from each line read.
+  -u fd                Read lines from file descriptor FD instead of the standard input.
+  -C callback  Evaluate CALLBACK each time QUANTUM lines are read.
+  -c quantum   Specify the number of lines read between each call to CALLBACK.
+
+Arguments:
+  ARRAY                Array variable name to use for file data.
+
+If -C is supplied without -c, the default quantum is 5000.
+
+If not supplied with an explicit origin, mapfile will clear ARRAY before
+assigning to it.
+
+Exit Status:
+Returns success unless an invald option is given or ARRAY is readonly.
+$END
+
+#include <config.h>
+
+#include "builtins.h"
+#include "posixstat.h"
+
+#if defined (HAVE_UNISTD_H)
+#  include <unistd.h>
+#endif
+
+#include "bashansi.h"
+
+#include <stdio.h>
+#include <errno.h>
+
+#include "../bashintl.h"
+#include "../shell.h"
+#include "common.h"
+#include "bashgetopt.h"
+
+
+#if !defined (errno)
+extern int errno;
+#endif
+
+#if defined (ARRAY_VARS)
+
+#define DEFAULT_ARRAY_NAME     "MAPFILE"
+
+/* The value specifying how frequently `mapfile'  calls the callback. */
+#define DEFAULT_QUANTUM 5000
+
+/* Values for FLAGS */
+#define MAPF_CLEARARRAY        0x01
+#define MAPF_CHOP      0x02
+
+static int
+run_callback(callback, current_index)
+     const char *callback;
+     unsigned int current_index;
+{
+  unsigned int execlen;
+  char  *execstr;
+
+  execlen = strlen (callback) + 10;
+  /* 1 for space between %s and %d,
+     another 1 for the last nul char for C string. */
+  execlen += 2;
+  execstr = xmalloc (execlen);
+
+  snprintf (execstr, execlen, "%s %d", callback, current_index);
+  return parse_and_execute(execstr, NULL, 0);
+}
+
+static void
+do_chop(line)
+     char * line;
+{
+  int length;
+
+  length = strlen (line);
+  if (length && line[length-1] == '\n') 
+    line[length-1] = '\0';
+}
+
+static int
+mapfile (fd, line_count_goal, origin, nskip, callback_quantum, callback, array_name, flags)
+     int fd;
+     long line_count_goal, origin, nskip, callback_quantum;
+     char *callback, *array_name;
+     int flags;
+{
+  char *line;
+  size_t line_length;
+  unsigned int array_index, line_count;
+  SHELL_VAR *entry;
+  int unbuffered_read;
+  
+  line = NULL;
+  line_length = 0;
+  unbuffered_read = 0;
+
+  /* The following check should be done before reading any lines.  Doing it
+     here allows us to call bind_array_element instead of bind_array_variable
+     and skip the variable lookup on every call. */
+  entry = find_or_make_array_variable (array_name, 1);
+  if (entry == 0)
+    return (EXECUTION_FAILURE);
+  if (flags & MAPF_CLEARARRAY)
+    array_flush (array_cell (entry));
+
+#ifndef __CYGWIN__
+  unbuffered_read = (lseek (fd, 0L, SEEK_CUR) < 0) && (errno == ESPIPE);
+#else
+  unbuffered_read = 1;
+#endif
+
+  /* Skip any lines at beginning of file? */
+  for (line_count = 0; line_count < nskip; line_count++)
+    zgetline(fd, &line, &line_length, unbuffered_read);
+  line = 0;
+  line_length = 0;    
+
+  /* Reset the buffer for bash own stream */
+  for (array_index = origin, line_count = 0; 
+       zgetline(fd, &line, &line_length, unbuffered_read) != -1;
+       array_index++, line_count++) 
+    {
+      /* Have we exceeded # of lines to store? */
+      if (line_count_goal != 0 && line_count >= line_count_goal) 
+       break;
+
+      /* Remove trailing newlines? */
+      if (flags & MAPF_CHOP)
+       do_chop (line);
+         
+      /* Has a callback been registered and if so is it time to call it? */
+      if (callback && line_count && (line_count % callback_quantum) == 0) 
+       {
+         run_callback (callback, array_index);
+
+         /* Reset the buffer for bash own stream. */
+         if (unbuffered_read == 0)
+           zsyncfd (fd);
+       }
+
+      bind_array_element (entry, array_index, line, 0);
+    }
+
+  xfree (line);
+
+  if (unbuffered_read == 0)
+    zsyncfd (fd);
+
+  return EXECUTION_SUCCESS;
+}
+
+int
+mapfile_builtin (list)
+     WORD_LIST *list;
+{
+  int opt, code, fd, clear_array, flags;
+  intmax_t intval;
+  long lines, origin, nskip, callback_quantum;
+  char *array_name, *callback;
+
+  clear_array = 1;
+  fd = 0;
+  lines = origin = nskip = 0;
+  flags = MAPF_CLEARARRAY;
+  callback_quantum = DEFAULT_QUANTUM;
+  callback = 0;
+
+  reset_internal_getopt ();
+  while ((opt = internal_getopt (list, "u:n:O:tC:c:s:")) != -1)
+    {
+      switch (opt)
+       {
+       case 'u':
+         code = legal_number (list_optarg, &intval);
+         if (code == 0 || intval < 0 || intval != (int)intval)
+           {
+             builtin_error (_("%s: invalid file descriptor specification"), list_optarg);
+             return (EXECUTION_FAILURE);
+           }
+         else
+           fd = intval;
+
+         if (sh_validfd (fd) == 0)
+           {
+             builtin_error (_("%d: invalid file descriptor: %s"), fd, strerror (errno));
+             return (EXECUTION_FAILURE);
+           }
+         break;          
+
+       case 'n':
+         code = legal_number (list_optarg, &intval);
+         if (code == 0 || intval < 0 || intval != (unsigned)intval)
+           {
+             builtin_error (_("%s: invalid line count"), list_optarg);
+             return (EXECUTION_FAILURE);
+           }
+         else
+           lines = intval;
+         break;
+
+       case 'O':
+         code = legal_number (list_optarg, &intval);
+         if (code == 0 || intval < 0 || intval != (unsigned)intval)
+           {
+             builtin_error (_("%s: invalid array origin"), list_optarg);
+             return (EXECUTION_FAILURE);
+           }
+         else
+           origin = intval;
+         flags &= ~MAPF_CLEARARRAY;
+         break;
+       case 't':
+         flags |= MAPF_CHOP;
+         break;
+       case 'C':
+         callback = list_optarg;
+         break;
+       case 'c':
+         code = legal_number (list_optarg, &intval);
+         if (code == 0 || intval < 0 || intval != (unsigned)intval)
+           {
+             builtin_error (_("%s: invalid callback quantum"), list_optarg);
+             return (EXECUTION_FAILURE);
+           }
+         else
+           callback_quantum = intval;
+         break;
+       case 's':
+         code = legal_number (list_optarg, &intval);
+         if (code == 0 || intval < 0 || intval != (unsigned)intval)
+           {
+             builtin_error (_("%s: invalid line count"), list_optarg);
+             return (EXECUTION_FAILURE);
+           }
+         else
+           nskip = intval;
+         break;
+       default:
+         builtin_usage ();
+         return (EX_USAGE);
+       }
+    }
+  list = loptend;
+
+  if (list == 0) 
+    array_name = DEFAULT_ARRAY_NAME;
+  else if (list->word == 0 || list->word->word == 0)
+    {
+      builtin_error ("internal error: getting variable name");
+      return (EXECUTION_FAILURE);
+    }
+  else if (list->word->word[0] == '\0')
+    {
+      builtin_error (_("empty array variable name"));
+      return (EX_USAGE);
+    } 
+  else
+    array_name = list->word->word;
+  
+  if (legal_identifier (array_name) == 0 && valid_array_reference (array_name) == 0)
+    {
+      sh_invalidid (array_name);
+      return (EXECUTION_FAILURE);
+    }
+
+  return mapfile (fd, lines, origin, nskip, callback_quantum, callback, array_name, flags);
+}
+
+#else
+
+int
+mapfile_builtin (list)
+     WORD_LIST *list;
+{
+  builtin_error (_("array variable support required"));
+  return (EXECUTION_FAILURE);
+}
+
+#endif  /* ARRAY_VARS */
index 0d74b65c1c0d80dd6ab7da4583f79f3da1b2d1f8..6e9fd2857cedad50a87eb782b15d0c64aae1ffc5 100644 (file)
@@ -41,6 +41,10 @@ and printf(3), printf interprets:
 
   %b   expand backslash escape sequences in the corresponding argument
   %q   quote the argument in a way that can be reused as shell input
+
+Exit Status:
+Returns success unless an invalid option is given or a write or assignment
+error occurs.
 $END
 
 #include <config.h>
index 620f8f3d8b5cd928556eac4fec9d1d712fdb317d..0d74b65c1c0d80dd6ab7da4583f79f3da1b2d1f8 100644 (file)
@@ -175,8 +175,7 @@ static int printstr __P((char *, char *, int, int, int));
 static int tescape __P((char *, char *, int *));
 static char *bexpand __P((char *, int, int *, int *));
 static char *vbadd __P((char *, int));
-static int vbprintf __P((const char *, ...))
- __attribute__((__format__ (printf, 1, 2)));
+static int vbprintf __P((const char *, ...)) __attribute__((__format__ (printf, 1, 2)));
 static char *mklong __P((char *, char *, size_t));
 static int getchr __P((void));
 static char *getstr __P((void));
index 0c23a6914b49e17f5b9e0fc3b56901dc76a6f3b2..1fd186c8f1c3af572da841c61f9dccb91f6d497a 100644 (file)
@@ -25,6 +25,8 @@ $BUILTIN pushd
 $FUNCTION pushd_builtin
 $DEPENDS_ON PUSHD_AND_POPD
 $SHORT_DOC pushd [-n] [+N | -N | dir]
+Add directories to stack.
+
 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.
@@ -46,12 +48,18 @@ Arguments:
        new current working directory.
 
 The `dirs' builtin displays the directory stack.
+
+Exit Status:
+Returns success unless an invalid argument is supplied or the directory
+change fails.
 $END
 
 $BUILTIN popd
 $FUNCTION popd_builtin
 $DEPENDS_ON PUSHD_AND_POPD
 $SHORT_DOC popd [-n] [+N | -N]
+Remove directories from stack.
+
 Removes entries from the directory stack.  With no arguments, removes
 the top directory from the stack, and changes to the new top directory.
 
@@ -69,12 +77,18 @@ Arguments:
        removes the last directory, `popd -1' the next to last.
 
 The `dirs' builtin displays the directory stack.
+
+Exit Status:
+Returns success unless an invalid argument is supplied or the directory
+change fails.
 $END
 
 $BUILTIN dirs
 $FUNCTION dirs_builtin
 $DEPENDS_ON PUSHD_AND_POPD
 $SHORT_DOC dirs [-clpv] [+N] [-N]
+Display directory stack.
+
 Display the list of currently remembered directories.  Directories
 find their way onto the list with the `pushd' command; you can get
 back up through the list with the `popd' command.
@@ -93,6 +107,9 @@ Arguments:
 
   -N   Displays the Nth entry counting from the right of the list shown by
        dirs when invoked without options, starting with zero.
+
+Exit Status:
+Returns success unless an invalid option is supplied or an error occurs.
 $END
 
 #include <config.h>
index 4518eaedcbfd3f0066a323a5efe31e5fe9ec5abb..dd603f3f132db4688233c439676e8ba443425354 100644 (file)
@@ -25,6 +25,8 @@ $BUILTIN pushd
 $FUNCTION pushd_builtin
 $DEPENDS_ON PUSHD_AND_POPD
 $SHORT_DOC pushd [-n] [+N | -N | dir]
+Add directories to stack.
+
 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.
@@ -52,6 +54,8 @@ $BUILTIN popd
 $FUNCTION popd_builtin
 $DEPENDS_ON PUSHD_AND_POPD
 $SHORT_DOC popd [-n] [+N | -N]
+Remove directories from stack.
+
 Removes entries from the directory stack.  With no arguments, removes
 the top directory from the stack, and changes to the new top directory.
 
@@ -75,6 +79,8 @@ $BUILTIN dirs
 $FUNCTION dirs_builtin
 $DEPENDS_ON PUSHD_AND_POPD
 $SHORT_DOC dirs [-clpv] [+N] [-N]
+Display directory stack.
+
 Display the list of currently remembered directories.  Directories
 find their way onto the list with the `pushd' command; you can get
 back up through the list with the `popd' command.
@@ -711,22 +717,23 @@ N_("Adds a directory to the top of the directory stack, or rotates\n\
 };
 
 char * const popd_doc[] = {
-N_("Removes entries from the directory stack.  With no arguments,\n\
-    removes the top directory from the stack, and cd's to the new\n\
-    top directory.\n\
+N_("Removes entries from the directory stack.  With no arguments, removes\n\
+    the top directory from the stack, and changes to the new top directory.\n\
     \n\
-    -n  Suppresses the normal change of directory when removing directories\n\
-        from the stack, so only the stack is manipulated.\n\
+    Options:\n\
+      -n       Suppresses the normal change of directory when removing\n\
+       directories from the stack, so only the stack is manipulated.\n\
     \n\
-    +N  Removes the Nth entry counting from the left of the list\n\
-        shown by `dirs', starting with zero.  For example: `popd +0'\n\
-        removes the first directory, `popd +1' the second.\n\
+    Arguments:\n\
+      +N       Removes the Nth entry counting from the left of the list\n\
+       shown by `dirs', starting with zero.  For example: `popd +0'\n\
+       removes the first directory, `popd +1' the second.\n\
     \n\
-    -N  Removes the Nth entry counting from the right of the list\n\
-        shown by `dirs', starting with zero.  For example: `popd -0'\n\
-        removes the last directory, `popd -1' the next to last.\n\
+      -N       Removes the Nth entry counting from the right of the list\n\
+       shown by `dirs', starting with zero.  For example: `popd -0'\n\
+       removes the last directory, `popd -1' the next to last.\n\
     \n\
-    You can see the directory stack with the `dirs' command."),
+    The `dirs' builtin displays the directory stack."),
   (char *)NULL
 };
 
index 20bec10e5a3cd314acb3f48c3b39744dd2fca522..0f0ecf9146920b99ac249f40bb071b35e0a54efa 100644 (file)
@@ -53,6 +53,7 @@ Options:
                variable is the default timeout.
   -u fd                read from file descriptor FD instead of the standard input
 
+Exit Status:
 The return code is zero, unless end-of-file is encountered, read times out,
 or an invalid file descriptor is supplied as the argument to -u.
 $END
index 47523ab154c956975fd6df50056a9cbb80b60556..20bec10e5a3cd314acb3f48c3b39744dd2fca522 100644 (file)
@@ -23,7 +23,7 @@ $PRODUCES read.c
 
 $BUILTIN read
 $FUNCTION read_builtin
-$SHORT_DOC read [-ers] [-a array] [-d delim] [-n nchars] [-p prompt] [-t timeout] [-u fd] [name ...]
+$SHORT_DOC read [-ers] [-a array] [-d delim] [-i text] [-n nchars] [-p prompt] [-t timeout] [-u fd] [name ...]
 Read a line from the standard input and split it into fields.
 
 Reads a single line from the standard input, or from file descriptor FD
@@ -41,6 +41,7 @@ Options:
   -d delim     continue until the first character of DELIM is read, rather
                than newline
   -e           use Readline to obtain the line in an interactive shell
+  -i text      Use TEXT as the initial text for Readline
   -n nchars    return after reading NCHARS characters rather than waiting
                for a newline
   -p prompt    output the string PROMPT without a trailing newline before
@@ -104,7 +105,8 @@ struct ttsave
 
 #if defined (READLINE)
 static void reset_attempted_completion_function __P((char *));
-static char *edit_line __P((char *));
+static int set_itext __P((void));
+static char *edit_line __P((char *, char *));
 static void set_eol_delim __P((int));
 static void reset_eol_delim __P((char *));
 #endif
@@ -162,7 +164,7 @@ read_builtin (list)
   WORD_LIST *alist;
 #endif
 #if defined (READLINE)
-  char *rlbuf;
+  char *rlbuf, *itext;
   int rlind;
 #endif
 
@@ -183,6 +185,7 @@ read_builtin (list)
 #if defined (READLINE)
   USE_VAR(rlbuf);
   USE_VAR(rlind);
+  USE_VAR(itext);
 #endif
   USE_VAR(list);
   USE_VAR(ps2);
@@ -194,7 +197,7 @@ read_builtin (list)
   fd = 0;              /* file descriptor to read from */
 
 #if defined (READLINE)
-  rlbuf = (char *)0;
+  rlbuf = itext = (char *)0;
   rlind = 0;
 #endif
 
@@ -203,7 +206,7 @@ read_builtin (list)
   delim = '\n';                /* read until newline */
 
   reset_internal_getopt ();
-  while ((opt = internal_getopt (list, "ersa:d:n:p:t:u:")) != -1)
+  while ((opt = internal_getopt (list, "ersa:d:i:n:p:t:u:")) != -1)
     {
       switch (opt)
        {
@@ -219,6 +222,11 @@ read_builtin (list)
        case 'e':
 #if defined (READLINE)
          edit = 1;
+#endif
+         break;
+       case 'i':
+#if defined (READLINE)
+         itext = list_optarg;
 #endif
          break;
 #if defined (ARRAY_VARS)
@@ -320,6 +328,9 @@ read_builtin (list)
   if ((prompt || edit || silent) && input_is_tty == 0)
     {
       prompt = (char *)NULL;
+#if defined (READLINE)
+      itext = (char *)NULL;
+#endif
       edit = silent = 0;
     }
 
@@ -442,7 +453,7 @@ read_builtin (list)
            }
          if (rlbuf == 0)
            {
-             rlbuf = edit_line (prompt ? prompt : "");
+             rlbuf = edit_line (prompt ? prompt : "", itext);
              rlind = 0;
            }
          if (rlbuf == 0)
@@ -831,6 +842,8 @@ ttyrestore (ttp)
 
 #if defined (READLINE)
 static rl_completion_func_t *old_attempted_completion_function = 0;
+static rl_hook_func_t *old_startup_hook;
+static char *deftext;
 
 static void
 reset_attempted_completion_function (cp)
@@ -840,9 +853,28 @@ reset_attempted_completion_function (cp)
     rl_attempted_completion_function = old_attempted_completion_function;
 }
 
+static int
+set_itext ()
+{
+  int r1, r2;
+
+  r1 = r2 = 0;
+  if (old_startup_hook)
+    r1 = (*old_startup_hook) ();
+  if (deftext)
+    {
+      r2 = rl_insert_text (deftext);
+      deftext = (char *)NULL;
+      rl_startup_hook = old_startup_hook;
+      old_startup_hook = (rl_hook_func_t *)NULL;
+    }
+  return (r1 || r2);
+}
+
 static char *
-edit_line (p)
+edit_line (p, itext)
      char *p;
+     char *itext;
 {
   char *ret;
   int len;
@@ -852,6 +884,12 @@ edit_line (p)
 
   old_attempted_completion_function = rl_attempted_completion_function;
   rl_attempted_completion_function = (rl_completion_func_t *)NULL;
+  if (itext)
+    {
+      old_startup_hook = rl_startup_hook;
+      rl_startup_hook = set_itext;
+      deftext = itext;
+    }
   ret = readline (p);
   rl_attempted_completion_function = old_attempted_completion_function;
   old_attempted_completion_function = (rl_completion_func_t *)NULL;
index 82be20c3ec7c37c178d0afe77910da7e126ef332..7a0b7ebe6be35d5665aafd86023c59aaf57f20b1 100644 (file)
@@ -22,15 +22,22 @@ Foundation, 59 Temple Place, Suite 330, Boston, MA 02111 USA.
 
 $BUILTIN for
 $SHORT_DOC for NAME [in WORDS ... ] ; do COMMANDS; done
+Execute commands for each member in a list.
+
 The `for' loop executes a sequence of commands for each member in a
 list of items.  If `in WORDS ...;' is not present, then `in "$@"' is
 assumed.  For each element in WORDS, NAME is set to that element, and
 the COMMANDS are executed.
+
+Exit Status:
+Returns the status of the last command executed.
 $END
 
 $BUILTIN for ((
 $DOCNAME arith_for
 $SHORT_DOC for (( exp1; exp2; exp3 )); do COMMANDS; done
+Arithmetic for loop.
+
 Equivalent to
        (( EXP1 ))
        while (( EXP2 )); do
@@ -39,10 +46,15 @@ Equivalent to
        done
 EXP1, EXP2, and EXP3 are arithmetic expressions.  If any expression is
 omitted, it behaves as if it evaluates to 1.
+
+Exit Status:
+Returns the status of the last command executed.
 $END
 
 $BUILTIN select
 $SHORT_DOC select NAME [in WORDS ... ;] do COMMANDS; done
+Select words from a list and execute commands..
+
 The WORDS are expanded, generating a list of words.  The
 set of expanded words is printed on the standard error, each
 preceded by a number.  If `in WORDS' is not present, `in "$@"'
@@ -54,28 +66,42 @@ redisplayed.  If EOF is read, the command completes.  Any other
 value read causes NAME to be set to null.  The line read is saved
 in the variable REPLY.  COMMANDS are executed after each selection
 until a break command is executed.
+
+Exit Status:
+Returns the status of the last command executed.
 $END
 
 $BUILTIN time
 $SHORT_DOC time [-p] pipeline
+Report time consumed by pipeline's execution.
+
 Execute PIPELINE and print a summary of the real time, user CPU time,
 and system CPU time spent executing PIPELINE when it terminates.
 
 Options:
   -p   print the timing summary in the portable Posix format
 
-The value of the TIMEFORMAT variable is used as the output format.  The
-return status is the return status of PIPELINE.
+The value of the TIMEFORMAT variable is used as the output format.
+
+Exit Status:
+The return status is the return status of PIPELINE.
 $END
 
 $BUILTIN case
 $SHORT_DOC case WORD in [PATTERN [| PATTERN]...) COMMANDS ;;]... esac
+Execute commands based on pattern matching.
+
 Selectively execute COMMANDS based upon WORD matching PATTERN.  The
 `|' is used to separate multiple patterns.
+
+Exit Status:
+Returns the status of the last command executed.
 $END
 
 $BUILTIN if
 $SHORT_DOC if COMMANDS; then COMMANDS; [ elif COMMANDS; then COMMANDS; ]... [ else COMMANDS; ] fi
+Execute commands based on conditional.
+
 The `if COMMANDS' list is executed.  If its exit status is zero, then the
 `then COMMANDS' list is executed.  Otherwise, each `elif COMMANDS' list is
 executed in turn, and if its exit status is zero, the corresponding
@@ -83,55 +109,90 @@ executed in turn, and if its exit status is zero, the corresponding
 the `else COMMANDS' list is executed, if present.  The exit status of the
 entire construct is the exit status of the last command executed, or zero
 if no condition tested true.
+
+Exit Status:
+Returns the status of the last command executed.
 $END
 
 $BUILTIN while
 $SHORT_DOC while COMMANDS; do COMMANDS; done
+Execute commands as long as a test succeeds.
+
 Expand and execute COMMANDS as long as the final command in the
 `while' COMMANDS has an exit status of zero.
+
+Exit Status:
+Returns the status of the last command executed.
 $END
 
 $BUILTIN until
 $SHORT_DOC until COMMANDS; do COMMANDS; done
+Execute commands as long as a test does not succeed.
+
 Expand and execute COMMANDS as long as the final command in the
 `until' COMMANDS has an exit status which is not zero.
+
+Exit Status:
+Returns the status of the last command executed.
 $END
 
 $BUILTIN function
 $SHORT_DOC function name { COMMANDS ; } or name () { COMMANDS ; }
+Define shell function.
+
 Create a shell function named NAME.  When invoked as a simple command,
 NAME runs COMMANDs in the calling shell's context.  When NAME is invoked,
 the arguments are passed to the function as $1...$n, and the function's
 name is in $FUNCNAME.
+
+Exit Status:
+Returns success unless NAME is readonly.
 $END
 
 $BUILTIN { ... }
 $DOCNAME grouping_braces
 $SHORT_DOC { COMMANDS ; }
+Group commands as a unit.
+
 Run a set of commands in a group.  This is one way to redirect an
 entire set of commands.
+
+Exit Status:
+Returns the status of the last command executed.
 $END
 
 $BUILTIN %
 $DOCNAME fg_percent
 $SHORT_DOC job_spec [&]
+Resume job in foreground.
+
 Equivalent to the JOB_SPEC argument to the `fg' command.  Resume a
 stopped or background job.  JOB_SPEC can specify either a job name
 or a job number.  Following JOB_SPEC with a `&' places the job in
 the background, as if the job specification had been supplied as an
 argument to `bg'.
+
+Exit Status:
+Returns the status of the resumed job.
 $END
 
 $BUILTIN (( ... ))
 $DOCNAME arith
 $SHORT_DOC (( expression ))
+Evaluate arithmetic expression.
+
 The EXPRESSION is evaluated according to the rules for arithmetic
 evaluation.  Equivalent to "let EXPRESSION".
+
+Exit Status:
+Returns 1 if EXPRESSION evaluates to 0; returns 0 otherwise.
 $END
 
 $BUILTIN [[ ... ]]
 $DOCNAME conditional
 $SHORT_DOC [[ expression ]]
+Execute conditional command.
+
 Returns a status of 0 or 1 depending on the evaluation of the conditional
 expression EXPRESSION.  Expressions are composed of the same primaries used
 by the `test' builtin, and may be combined using the following operators:
@@ -148,11 +209,16 @@ is matched as a regular expression.
 
 The && and || operators do not evaluate EXPR2 if EXPR1 is sufficient to
 determine the expression's value.
+
+Exit Status:
+0 or 1 depending on value of EXPRESSION.
 $END
 
 $BUILTIN variables
 $DOCNAME variable_help
 $SHORT_DOC variables - Names and meanings of some shell variables
+Common shell variable names and usage.
+
 BASH_VERSION   Version information for this Bash.
 CDPATH A colon-separated list of directories to search
                for directories given as arguments to `cd'.
index e03b98d446fad9950b075741773f1d919a25aa80..d87d3598d2e4d3e6e9a8c39e0a7af56158ccf063 100644 (file)
@@ -22,6 +22,8 @@ Foundation, 59 Temple Place, Suite 330, Boston, MA 02111 USA.
 
 $BUILTIN for
 $SHORT_DOC for NAME [in WORDS ... ] ; do COMMANDS; done
+Execute commands for each member in a list.
+
 The `for' loop executes a sequence of commands for each member in a
 list of items.  If `in WORDS ...;' is not present, then `in "$@"' is
 assumed.  For each element in WORDS, NAME is set to that element, and
@@ -31,6 +33,8 @@ $END
 $BUILTIN for ((
 $DOCNAME arith_for
 $SHORT_DOC for (( exp1; exp2; exp3 )); do COMMANDS; done
+Arithmetic for loop.
+
 Equivalent to
        (( EXP1 ))
        while (( EXP2 )); do
@@ -58,6 +62,8 @@ $END
 
 $BUILTIN time
 $SHORT_DOC time [-p] pipeline
+Report time consumed by pipeline's execution.
+
 Execute PIPELINE and print a summary of the real time, user CPU time,
 and system CPU time spent executing PIPELINE when it terminates.
 
@@ -70,12 +76,16 @@ $END
 
 $BUILTIN case
 $SHORT_DOC case WORD in [PATTERN [| PATTERN]...) COMMANDS ;;]... esac
+Execute commands based on pattern matching.
+
 Selectively execute COMMANDS based upon WORD matching PATTERN.  The
 `|' is used to separate multiple patterns.
 $END
 
 $BUILTIN if
 $SHORT_DOC if COMMANDS; then COMMANDS; [ elif COMMANDS; then COMMANDS; ]... [ else COMMANDS; ] fi
+Execute commands based on conditional.
+
 The `if COMMANDS' list is executed.  If its exit status is zero, then the
 `then COMMANDS' list is executed.  Otherwise, each `elif COMMANDS' list is
 executed in turn, and if its exit status is zero, the corresponding
@@ -87,18 +97,24 @@ $END
 
 $BUILTIN while
 $SHORT_DOC while COMMANDS; do COMMANDS; done
+Execute commands as long as a test succeeds.
+
 Expand and execute COMMANDS as long as the final command in the
 `while' COMMANDS has an exit status of zero.
 $END
 
 $BUILTIN until
 $SHORT_DOC until COMMANDS; do COMMANDS; done
+Execute commands as long as a test does not succeed.
+
 Expand and execute COMMANDS as long as the final command in the
 `until' COMMANDS has an exit status which is not zero.
 $END
 
 $BUILTIN function
 $SHORT_DOC function name { COMMANDS ; } or name () { COMMANDS ; }
+Define shell function.
+
 Create a shell function named NAME.  When invoked as a simple command,
 NAME runs COMMANDs in the calling shell's context.  When NAME is invoked,
 the arguments are passed to the function as $1...$n, and the function's
@@ -108,6 +124,8 @@ $END
 $BUILTIN { ... }
 $DOCNAME grouping_braces
 $SHORT_DOC { COMMANDS ; }
+Group commands as a unit.
+
 Run a set of commands in a group.  This is one way to redirect an
 entire set of commands.
 $END
@@ -115,6 +133,8 @@ $END
 $BUILTIN %
 $DOCNAME fg_percent
 $SHORT_DOC job_spec [&]
+Resume job in foreground.
+
 Equivalent to the JOB_SPEC argument to the `fg' command.  Resume a
 stopped or background job.  JOB_SPEC can specify either a job name
 or a job number.  Following JOB_SPEC with a `&' places the job in
@@ -125,6 +145,8 @@ $END
 $BUILTIN (( ... ))
 $DOCNAME arith
 $SHORT_DOC (( expression ))
+Evaluate arithmetic expression.
+
 The EXPRESSION is evaluated according to the rules for arithmetic
 evaluation.  Equivalent to "let EXPRESSION".
 $END
@@ -132,6 +154,8 @@ $END
 $BUILTIN [[ ... ]]
 $DOCNAME conditional
 $SHORT_DOC [[ expression ]]
+Execute conditional command.
+
 Returns a status of 0 or 1 depending on the evaluation of the conditional
 expression EXPRESSION.  Expressions are composed of the same primaries used
 by the `test' builtin, and may be combined using the following operators:
@@ -141,10 +165,10 @@ by the `test' builtin, and may be combined using the following operators:
   EXPR1 && EXPR2       True if both EXPR1 and EXPR2 are true; else false
   EXPR1 || EXPR2       True if either EXPR1 or EXPR2 is true; else false
 
-When the `==' and `!=' operators are used, the string to the right of the
-operator is used as a pattern and pattern matching is performed.  When
-the `=~' operator is used, the string to the right of the operator is
-matched as a regular expression.
+When the `==' and `!=' operators are used, the string to the right of
+the operator is used as a pattern and pattern matching is performed.
+When the `=~' operator is used, the string to the right of the operator
+is matched as a regular expression.
 
 The && and || operators do not evaluate EXPR2 if EXPR1 is sufficient to
 determine the expression's value.
@@ -153,6 +177,8 @@ $END
 $BUILTIN variables
 $DOCNAME variable_help
 $SHORT_DOC variables - Names and meanings of some shell variables
+Common shell variable names and usage.
+
 BASH_VERSION   Version information for this Bash.
 CDPATH A colon-separated list of directories to search
                for directories given as arguments to `cd'.
index d945354df374b34c3e21727339a69aa208b763c4..26bc1fd2ab753172340b77b57b367046abb0e907 100644 (file)
@@ -1,7 +1,7 @@
 This file is return.def, from which is created return.c.
 It implements the builtin "return" in Bash.
 
-Copyright (C) 1987-2003 Free Software Foundation, Inc.
+Copyright (C) 1987-2008 Free Software Foundation, Inc.
 
 This file is part of GNU Bash, the Bourne Again SHell.
 
@@ -25,9 +25,14 @@ $BUILTIN return
 
 $FUNCTION return_builtin
 $SHORT_DOC return [n]
+Return from a shell function.
+
 Causes a function or sourced script to exit with the return value
 specified by N.  If N is omitted, the return status is that of the
 last command executed within the function or script.
+
+Exit Status:
+Returns N, or failure if the shell is not executing a function or script.
 $END
 
 #include <config.h>
index 23389c07077d8b59bc874a718f298a999e06b45a..259c9222dea7e47aa54bcbddadaad3dccdd216d9 100644 (file)
@@ -1,7 +1,7 @@
 This file is return.def, from which is created return.c.
 It implements the builtin "return" in Bash.
 
-Copyright (C) 1987-2003 Free Software Foundation, Inc.
+Copyright (C) 1987-2008 Free Software Foundation, Inc.
 
 This file is part of GNU Bash, the Bourne Again SHell.
 
@@ -25,8 +25,11 @@ $BUILTIN return
 
 $FUNCTION return_builtin
 $SHORT_DOC return [n]
-Causes a function to exit with the return value specified by N.  If N
-is omitted, the return status is that of the last command.
+Return from a shell function.
+
+Causes a function or sourced script to exit with the return value
+specified by N.  If N is omitted, the return status is that of the
+last command executed within the function or script.
 $END
 
 #include <config.h>
index 397598ef954b0bb3252d17883e745e1b3e8200ad..91af0ceb274a298c5cec561e19733c81e9e6b711 100644 (file)
@@ -61,8 +61,10 @@ extern int no_line_editing;
 $BUILTIN set
 $FUNCTION set_builtin
 $SHORT_DOC set [--abefhkmnptuvxBCHP] [-o option-name] [arg ...]
-Changes the value of shell attributes and positional parameters, or
-displays the names and values of shell variables.
+Set or unset values of shell options and positional parameters.
+
+Change the value of shell attributes and positional parameters, or
+display the names and values of shell variables.
 
 Options:
   -a  Mark variables which are modified or created for export.
@@ -145,6 +147,9 @@ flags can also be used upon invocation of the shell.  The current
 set of flags may be found in $-.  The remaining n ARGs are positional
 parameters and are assigned, in order, to $1, $2, .. $n.  If no
 ARGs are given, all shell variables are printed.
+
+Exit Status:
+Returns success unless an invalid option is given.
 $END
 
 typedef int setopt_set_func_t __P((int, char *));
@@ -193,7 +198,7 @@ const struct {
   { "histexpand", 'H', (int *)NULL, (setopt_set_func_t *)NULL, (setopt_get_func_t *)NULL  },
 #endif /* BANG_HISTORY */
 #if defined (HISTORY)
-  { "history",   '\0', &remember_on_history, bash_set_history, (setopt_get_func_t *)NULL },
+  { "history",   '\0', &enable_history_list, bash_set_history, (setopt_get_func_t *)NULL },
 #endif
   { "ignoreeof", '\0', &ignoreeof, set_ignoreeof, (setopt_get_func_t *)NULL },
   { "interactive-comments", '\0', &interactive_comments, (setopt_set_func_t *)NULL, (setopt_get_func_t *)NULL },
@@ -385,13 +390,17 @@ bash_set_history (on_or_off, option_name)
 {
   if (on_or_off == FLAG_ON)
     {
+      enable_history_list = 1;
       bash_history_enable ();
       if (history_lines_this_session == 0)
        load_history ();
     }
   else
-    bash_history_disable ();
-  return (1 - remember_on_history);
+    {
+      enable_history_list = 0;
+      bash_history_disable ();
+    }
+  return (1 - enable_history_list);
 }
 #endif
 
@@ -569,7 +578,7 @@ void
 reset_shell_options ()
 {
 #if defined (HISTORY)
-  remember_on_history = 1;
+  remember_on_history = enable_history_list = 1;
 #endif
   ignoreeof = 0;
 }
@@ -708,6 +717,8 @@ set_builtin (list)
 $BUILTIN unset
 $FUNCTION unset_builtin
 $SHORT_DOC unset [-f] [-v] [name ...]
+Unset values and attributes of shell variables and functions.
+
 For each NAME, remove the corresponding variable or function.
 
 Options:
@@ -718,6 +729,9 @@ Without options, unset first tries to unset a variable, and if that fails,
 tries to unset a function.
 
 Some variables cannot be unset; also see `readonly'.
+
+Exit Status:
+Returns success unless an invalid option is given or a NAME is read-only.
 $END
 
 #define NEXT_VARIABLE()        any_failed++; list = list->next; continue;
index 4ced73d9daa6d3e280e0043f731fe71e41ba7f96..404e605385dfae6e50ceee77a376fb11e6c85778 100644 (file)
@@ -61,8 +61,10 @@ extern int no_line_editing;
 $BUILTIN set
 $FUNCTION set_builtin
 $SHORT_DOC set [--abefhkmnptuvxBCHP] [-o option-name] [arg ...]
-Changes the value of shell attributes and positional parameters, or
-displays the names and values of shell variables.
+Set or unset values of shell options and positional parameters.
+
+Change the value of shell attributes and positional parameters, or
+display the names and values of shell variables.
 
 Options:
   -a  Mark variables which are modified or created for export.
@@ -108,7 +110,7 @@ Options:
                        the last command to exit with a non-zero status,
                        or zero if no command exited with a non-zero status
           posix        change the behavior of bash where the default
-                       operation differs from the 1003.2 standard to
+                       operation differs from the Posix standard to
                        match the standard
           privileged   same as -p
           verbose      same as -v
@@ -193,7 +195,7 @@ const struct {
   { "histexpand", 'H', (int *)NULL, (setopt_set_func_t *)NULL, (setopt_get_func_t *)NULL  },
 #endif /* BANG_HISTORY */
 #if defined (HISTORY)
-  { "history",   '\0', &remember_on_history, bash_set_history, (setopt_get_func_t *)NULL },
+  { "history",   '\0', &enable_history_list, bash_set_history, (setopt_get_func_t *)NULL },
 #endif
   { "ignoreeof", '\0', &ignoreeof, set_ignoreeof, (setopt_get_func_t *)NULL },
   { "interactive-comments", '\0', &interactive_comments, (setopt_set_func_t *)NULL, (setopt_get_func_t *)NULL },
@@ -385,13 +387,17 @@ bash_set_history (on_or_off, option_name)
 {
   if (on_or_off == FLAG_ON)
     {
+      enable_history_list = 1;
       bash_history_enable ();
       if (history_lines_this_session == 0)
        load_history ();
     }
   else
-    bash_history_disable ();
-  return (1 - remember_on_history);
+    {
+      enable_history_list = 0;
+      bash_history_disable ();
+    }
+  return (1 - enable_history_list);
 }
 #endif
 
@@ -569,7 +575,7 @@ void
 reset_shell_options ()
 {
 #if defined (HISTORY)
-  remember_on_history = 1;
+  remember_on_history = enable_history_list = 1;
 #endif
   ignoreeof = 0;
 }
@@ -708,6 +714,8 @@ set_builtin (list)
 $BUILTIN unset
 $FUNCTION unset_builtin
 $SHORT_DOC unset [-f] [-v] [name ...]
+Unset values and attributes of shell variables and functions.
+
 For each NAME, remove the corresponding variable or function.
 
 Options:
index cad3bd4a4a841c377cffad2c970543284e1fc16e..2f0206ce6ea1d07377941e3d82d1407843f3b43c 100644 (file)
@@ -53,6 +53,8 @@ extern int declare_builtin __P((WORD_LIST *));
 $BUILTIN export
 $FUNCTION export_builtin
 $SHORT_DOC export [-fn] [name[=value] ...] or export -p
+Set export attribute for shell variables.
+
 Marks each NAME for automatic export to the environment of subsequently
 executed commands.  If VALUE is supplied, assign VALUE before exporting.
 
@@ -62,6 +64,9 @@ Options:
   -p   display a list of all exported variables and functions
 
 An argument of `--' disables further option processing.
+
+Exit Status:
+Returns success unless an invalid option is given or NAME is invalid.
 $END
 
 /* For each variable name in LIST, make that variable appear in the
@@ -79,6 +84,8 @@ export_builtin (list)
 $BUILTIN readonly
 $FUNCTION readonly_builtin
 $SHORT_DOC readonly [-af] [name[=value] ...] or readonly -p
+Mark shell variables as unchangeable.
+
 Mark each NAME as read-only; the values of these NAMEs may not be
 changed by subsequent assignment.  If VALUE is supplied, assign VALUE
 before marking as read-only.
@@ -89,6 +96,9 @@ Options:
   -p   display a list of all readonly variables and functions
 
 An argument of `--' disables further option processing.
+
+Exit Status:
+Returns success unless an invalid option is given or NAME is invalid.
 $END
 
 /* For each variable name in LIST, make that variable readonly.  Given an
@@ -323,7 +333,7 @@ show_var_attributes (var, pattr, nodefs)
      SHELL_VAR *var;
      int pattr, nodefs;
 {
-  char flags[8], *x;
+  char flags[16], *x;
   int i;
 
   i = 0;
index 4b5024a44fb95b7ee42834828c51e3f587013da1..1d470b0ec1c8510825bb86458cc897ff1c37a69f 100644 (file)
@@ -53,6 +53,8 @@ extern int declare_builtin __P((WORD_LIST *));
 $BUILTIN export
 $FUNCTION export_builtin
 $SHORT_DOC export [-fn] [name[=value] ...] or export -p
+Set export attribute for shell variables.
+
 Marks each NAME for automatic export to the environment of subsequently
 executed commands.  If VALUE is supplied, assign VALUE before exporting.
 
@@ -62,6 +64,9 @@ Options:
   -p   display a list of all exported variables and functions
 
 An argument of `--' disables further option processing.
+
+Exit Status:
+Returns success unless an invalid option is given or NAME is invalid.
 $END
 
 /* For each variable name in LIST, make that variable appear in the
@@ -79,6 +84,8 @@ export_builtin (list)
 $BUILTIN readonly
 $FUNCTION readonly_builtin
 $SHORT_DOC readonly [-af] [name[=value] ...] or readonly -p
+Mark shell variables as unchangeable.
+
 Mark each NAME as read-only; the values of these NAMEs may not be
 changed by subsequent assignment.  If VALUE is supplied, assign VALUE
 before marking as read-only.
@@ -89,6 +96,9 @@ Options:
   -p   display a list of all readonly variables and functions
 
 An argument of `--' disables further option processing.
+
+Exit Status:
+Returns success unless an invalid option is given or NAME is invalid.
 $END
 
 /* For each variable name in LIST, make that variable readonly.  Given an
@@ -294,7 +304,7 @@ int
 show_all_var_attributes (v, nodefs)
      int v, nodefs;
 {
-  SHELL_VAR **variable_list;
+  SHELL_VAR **variable_list, *var;
   int any_failed;
   register int i;
 
index 5f600dd56e83fb75ba261d7c5e48c321e60f9b85..37c12529b80145c00097b14c8c35291cdafa1dc8 100644 (file)
@@ -39,8 +39,13 @@ $PRODUCES shift.c
 $BUILTIN shift
 $FUNCTION shift_builtin
 $SHORT_DOC shift [n]
+Shift positional parameters.
+
 Rename the positional parameters $N+1,$N+2 ... to $1,$2 ...  If N is
 not given, it is assumed to be 1.
+
+Exit Status:
+Returns success unless N is negative or greater than $#.
 $END
 
 int print_shift_error;
index 158e0606ae7459a1003ba10c211537b01fe676e6..af16d1a2aac146aac88217a1d7488647a0836401 100644 (file)
@@ -1,7 +1,7 @@
 This file is shift.def, from which is created shift.c.
 It implements the builtin "shift" in Bash.
 
-Copyright (C) 1987-2003 Free Software Foundation, Inc.
+Copyright (C) 1987-2008 Free Software Foundation, Inc.
 
 This file is part of GNU Bash, the Bourne Again SHell.
 
@@ -39,8 +39,10 @@ $PRODUCES shift.c
 $BUILTIN shift
 $FUNCTION shift_builtin
 $SHORT_DOC shift [n]
-Rename the positional parameters $N+1 ... to $1 ...  If N is not
-given, it is assumed to be 1.
+Shift positional parameters.
+
+Rename the positional parameters $N+1,$N+2 ... to $1,$2 ...  If N is
+not given, it is assumed to be 1.
 $END
 
 int print_shift_error;
index 31780d7aaaf79ac0e54512eaaf85c6bd03f2e027..b2522974dc3950c02223c98816e3d26143d93157 100644 (file)
@@ -24,8 +24,11 @@ $PRODUCES shopt.c
 $BUILTIN shopt
 $FUNCTION shopt_builtin
 $SHORT_DOC shopt [-pqsu] [-o] [optname ...]
-Set and unset shell options.  Without any option arguments, list all
-shell options with an indication of whether or not each is set.
+Set and unset shell options.
+
+Change the setting of each shell option OPTNAME.  Without any option
+arguments, list all shell options with an indication of whether or not each
+is set. 
 
 Options:
   -o   restrict OPTNAMEs to those defined for use with `set -o'
@@ -34,7 +37,9 @@ Options:
   -s   enable (set) each OPTNAME
   -u   disable (unset) each OPTNAME
 
-The exit status indicates whether or not each OPTNAME is set.
+Exit Status:
+Returns success if OPTNAME is enabled; fails if an invalid option is
+given or OPTNAME is disabled.
 $END
 
 #include <config.h>
@@ -129,7 +134,9 @@ static struct {
   { "cdable_vars", &cdable_vars, (shopt_set_func_t *)NULL },
   { "cdspell", &cdspelling, (shopt_set_func_t *)NULL },
   { "checkhash", &check_hashed_filenames, (shopt_set_func_t *)NULL },
+#if defined (JOB_CONTROL)
   { "checkjobs", &check_jobs_at_exit, (shopt_set_func_t *)NULL },
+#endif
   { "checkwinsize", &check_window_size, (shopt_set_func_t *)NULL },
 #if defined (HISTORY)
   { "cmdhist", &command_oriented_history, (shopt_set_func_t *)NULL },
index 143f33993bbba92521f17bf47e0657511e9b72b0..9cc63b6dbe7c3081e31d5f0832a2796d50e089b2 100644 (file)
@@ -24,8 +24,11 @@ $PRODUCES shopt.c
 $BUILTIN shopt
 $FUNCTION shopt_builtin
 $SHORT_DOC shopt [-pqsu] [-o] [optname ...]
-Set and unset shell options.  Without any option arguments, list all
-shell options with an indication of whether or not each is set.
+Set and unset shell options.
+
+Change the setting of each shell option OPTNAME.  Without any option
+arguments, list all shell options with an indication of whether or not each
+is set. 
 
 Options:
   -o   restrict OPTNAMEs to those defined for use with `set -o'
@@ -34,7 +37,9 @@ Options:
   -s   enable (set) each OPTNAME
   -u   disable (unset) each OPTNAME
 
-The exit status indicates whether or not each OPTNAME is set.
+Exit Status:
+Returns success if OPTNAME is enabled; fails if an invalid option is
+given or OPTNAME is disabled.
 $END
 
 #include <config.h>
@@ -116,6 +121,7 @@ static int set_restricted_shell __P((int));
 
 static int shopt_login_shell;
 static int shopt_compat31;
+static int shopt_compat32;
 
 typedef int shopt_set_func_t __P((int));
 
@@ -476,8 +482,13 @@ static int
 set_compatibility_level (mode)
      int mode;
 {
-  /* Need to change logic here if we add more compatibility levels */
-  shell_compatibility_level = shopt_compat31 ? 31 : DEFAULT_COMPAT_LEVEL;
+  /* Need to change logic here as we add more compatibility levels */
+  if (shopt_compat31)
+    shell_compatibility_level = 31;
+  else if (shopt_compat32)
+    shell_compatibility_level = 32;
+  else
+    shell_compatibility_level = DEFAULT_COMPAT_LEVEL;
   return 0;
 }
 
index 019789e6585656ac8da7ff0c55ca6a56654a9752..3c4ce0e805c1170b642e52554200c6da0b7acdd5 100644 (file)
@@ -24,19 +24,32 @@ $PRODUCES source.c
 $BUILTIN source
 $FUNCTION source_builtin
 $SHORT_DOC source filename [arguments]
+Execute commands from a file in the current shell.
+
 Read and execute commands from FILENAME in the current shell.  The
 entries in $PATH are used to find the directory containing FILENAME.
 If any ARGUMENTS are supplied, they become the positional parameters
 when FILENAME is executed.
+
+Exit Status:
+Returns the status of the last command executed in FILENAME; fails if
+FILENAME cannot be read.
 $END
+
 $BUILTIN .
 $DOCNAME dot
 $FUNCTION source_builtin
 $SHORT_DOC . filename [arguments]
+Execute commands from a file in the current shell.
+
 Read and execute commands from FILENAME in the current shell.  The
 entries in $PATH are used to find the directory containing FILENAME.
 If any ARGUMENTS are supplied, they become the positional parameters
 when FILENAME is executed.
+
+Exit Status:
+Returns the status of the last command executed in FILENAME; fails if
+FILENAME cannot be read.
 $END
 
 #include <config.h>
index 5a3615cea41ee88145fb2d97526b1e8adf873378..9bdc1e1b5c2b5c90b5b314a78da8f07511b11854 100644 (file)
@@ -24,19 +24,23 @@ $PRODUCES source.c
 $BUILTIN source
 $FUNCTION source_builtin
 $SHORT_DOC source filename [arguments]
-Read and execute commands from FILENAME in the current shell.  The entries
-in $PATH are used to find the directory containing FILENAME.  If any
-ARGUMENTS are supplied, they become the positional parameters when
-FILENAME is executed.
+Execute commands from a file in the current shell.
+
+Read and execute commands from FILENAME in the current shell.  The
+entries in $PATH are used to find the directory containing FILENAME.
+If any ARGUMENTS are supplied, they become the positional parameters
+when FILENAME is executed.
 $END
 $BUILTIN .
 $DOCNAME dot
 $FUNCTION source_builtin
 $SHORT_DOC . filename [arguments]
-Read and execute commands from FILENAME in the current shell.  The entries
-in $PATH are used to find the directory containing FILENAME.  If any
-ARGUMENTS are supplied, they become the positional parameters when
-FILENAME is executed.
+Execute commands from a file in the current shell.
+
+Read and execute commands from FILENAME in the current shell.  The
+entries in $PATH are used to find the directory containing FILENAME.
+If any ARGUMENTS are supplied, they become the positional parameters
+when FILENAME is executed.
 $END
 
 #include <config.h>
@@ -67,6 +71,8 @@ $END
 extern int errno;
 #endif /* !errno */
 
+extern int posixly_correct;
+
 static void maybe_pop_dollar_vars __P((void));
 
 /* If non-zero, `.' uses $PATH to look up the script to be sourced. */
@@ -125,7 +131,12 @@ source_builtin (list)
 #endif
 
   filename = (char *)NULL;
-  if (source_uses_path)
+  /* XXX -- should this be absolute_pathname? */
+  if (posixly_correct && strchr (list->word->word, '/'))
+    filename = savestring (list->word->word);
+  else if (absolute_pathname (list->word->word))
+    filename = savestring (list->word->word);
+  else if (source_uses_path)
     filename = find_path_file (list->word->word);
   if (filename == 0)
     {
index deb44b3db5131cfb4eb6651db3acff93b014f9c9..460535bc23be0f73b4c8846f4c3936a6767c2394 100644 (file)
@@ -25,10 +25,15 @@ $BUILTIN suspend
 $DEPENDS_ON JOB_CONTROL
 $FUNCTION suspend_builtin
 $SHORT_DOC suspend [-f]
+Suspend shell execution.
+
 Suspend the execution of this shell until it receives a SIGCONT signal.
 
 Options:
   -f   force the suspend, even if the shell is a login shell
+
+Exit Status:
+Returns success unless job control is not enabled or an error occurs.
 $END
 
 #include <config.h>
index a84a6e3c569fd1d80c0a42a7f390d557379add2f..93fd51cea1a7d67b3a4a96e6b8b7f05936014364 100644 (file)
@@ -25,10 +25,11 @@ $BUILTIN suspend
 $DEPENDS_ON JOB_CONTROL
 $FUNCTION suspend_builtin
 $SHORT_DOC suspend [-f]
+Suspend shell execution.
+
 Suspend the execution of this shell until it receives a SIGCONT signal.
 
 Options:
-
   -f   force the suspend, even if the shell is a login shell
 $END
 
index 2354e6eadb260cc39b3cbf45e03a579bff179947..119f629cb3f81a832581cf8456491029d8a09988 100644 (file)
@@ -24,6 +24,8 @@ $PRODUCES test.c
 $BUILTIN test
 $FUNCTION test_builtin
 $SHORT_DOC test [expr]
+Evaluate conditional expression.
+
 Exits with a status of 0 (true) or 1 (false) depending on
 the evaluation of EXPR.  Expressions may be unary or binary.  Unary
 expressions are often used to examine the status of a file.  There
@@ -89,12 +91,18 @@ Other operators:
 Arithmetic binary operators return true if ARG1 is equal, not-equal,
 less-than, less-than-or-equal, greater-than, or greater-than-or-equal
 than ARG2.
+
+Exit Status:
+Returns success if EXPR evaluates to true; fails if EXPR evaluates to
+false or an invalid argument is given.
 $END
 
 $BUILTIN [
 $DOCNAME test_bracket
 $FUNCTION test_builtin
 $SHORT_DOC [ arg... ]
+Evaluate conditional expression.
+
 This is a synonym for the "test" builtin, but the last argument must
 be a literal `]', to match the opening `['.
 $END
index f74cb0aa4dcb9b5860f430229960bc3da52d1e74..ff0b0d0089f4f111535daf5878f425d8188c8891 100644 (file)
@@ -1,7 +1,7 @@
 This file is test.def, from which is created test.c.
 It implements the builtin "test" in Bash.
 
-Copyright (C) 1987-2006 Free Software Foundation, Inc.
+Copyright (C) 1987-2008 Free Software Foundation, Inc.
 
 This file is part of GNU Bash, the Bourne Again SHell.
 
@@ -24,6 +24,8 @@ $PRODUCES test.c
 $BUILTIN test
 $FUNCTION test_builtin
 $SHORT_DOC test [expr]
+Evaluate conditional expression.
+
 Exits with a status of 0 (true) or 1 (false) depending on
 the evaluation of EXPR.  Expressions may be unary or binary.  Unary
 expressions are often used to examine the status of a file.  There
@@ -31,27 +33,27 @@ are string operators as well, and numeric comparison operators.
 
 File operators:
 
-    -a FILE        True if file exists.
-    -b FILE        True if file is block special.
-    -c FILE        True if file is character special.
-    -d FILE        True if file is a directory.
-    -e FILE        True if file exists.
-    -f FILE        True if file exists and is a regular file.
-    -g FILE        True if file is set-group-id.
-    -h FILE        True if file is a symbolic link.
-    -L FILE        True if file is a symbolic link.
-    -k FILE        True if file has its `sticky' bit set.
-    -p FILE        True if file is a named pipe.
-    -r FILE        True if file is readable by you.
-    -s FILE        True if file exists and is not empty.
-    -S FILE        True if file is a socket.
-    -t FD          True if FD is opened on a terminal.
-    -u FILE        True if the file is set-user-id.
-    -w FILE        True if the file is writable by you.
-    -x FILE        True if the file is executable by you.
-    -O FILE        True if the file is effectively owned by you.
-    -G FILE        True if the file is effectively owned by your group.
-    -N FILE        True if the file has been modified since it was last read.
+  -a FILE        True if file exists.
+  -b FILE        True if file is block special.
+  -c FILE        True if file is character special.
+  -d FILE        True if file is a directory.
+  -e FILE        True if file exists.
+  -f FILE        True if file exists and is a regular file.
+  -g FILE        True if file is set-group-id.
+  -h FILE        True if file is a symbolic link.
+  -L FILE        True if file is a symbolic link.
+  -k FILE        True if file has its `sticky' bit set.
+  -p FILE        True if file is a named pipe.
+  -r FILE        True if file is readable by you.
+  -s FILE        True if file exists and is not empty.
+  -S FILE        True if file is a socket.
+  -t FD          True if FD is opened on a terminal.
+  -u FILE        True if the file is set-user-id.
+  -w FILE        True if the file is writable by you.
+  -x FILE        True if the file is executable by you.
+  -O FILE        True if the file is effectively owned by you.
+  -G FILE        True if the file is effectively owned by your group.
+  -N FILE        True if the file has been modified since it was last read.
 
   FILE1 -nt FILE2  True if file1 is newer than file2 (according to
                    modification date).
@@ -62,29 +64,29 @@ File operators:
 
 String operators:
 
-    -z STRING      True if string is empty.
+  -z STRING      True if string is empty.
 
-    -n STRING
-    STRING         True if string is not empty.
+  -n STRING
+     STRING      True if string is not empty.
 
-    STRING1 = STRING2
-                   True if the strings are equal.
-    STRING1 != STRING2
-                   True if the strings are not equal.
-    STRING1 < STRING2
-                   True if STRING1 sorts before STRING2 lexicographically.
-    STRING1 > STRING2
-                   True if STRING1 sorts after STRING2 lexicographically.
+  STRING1 = STRING2
+                 True if the strings are equal.
+  STRING1 != STRING2
+                 True if the strings are not equal.
+  STRING1 < STRING2
+                 True if STRING1 sorts before STRING2 lexicographically.
+  STRING1 > STRING2
+                 True if STRING1 sorts after STRING2 lexicographically.
 
 Other operators:
 
-    -o OPTION      True if the shell option OPTION is enabled.
-    ! EXPR         True if expr is false.
-    EXPR1 -a EXPR2 True if both expr1 AND expr2 are true.
-    EXPR1 -o EXPR2 True if either expr1 OR expr2 is true.
+  -o OPTION      True if the shell option OPTION is enabled.
+  ! EXPR         True if expr is false.
+  EXPR1 -a EXPR2 True if both expr1 AND expr2 are true.
+  EXPR1 -o EXPR2 True if either expr1 OR expr2 is true.
 
-    arg1 OP arg2   Arithmetic tests.  OP is one of -eq, -ne,
-                   -lt, -le, -gt, or -ge.
+  arg1 OP arg2   Arithmetic tests.  OP is one of -eq, -ne,
+                 -lt, -le, -gt, or -ge.
 
 Arithmetic binary operators return true if ARG1 is equal, not-equal,
 less-than, less-than-or-equal, greater-than, or greater-than-or-equal
@@ -95,8 +97,10 @@ $BUILTIN [
 $DOCNAME test_bracket
 $FUNCTION test_builtin
 $SHORT_DOC [ arg... ]
-This is a synonym for the "test" builtin, but the last
-argument must be a literal `]', to match the opening `['.
+Evaluate conditional expression.
+
+This is a synonym for the "test" builtin, but the last argument must
+be a literal `]', to match the opening `['.
 $END
 
 #include <config.h>
index fc2371a166eb756dbc2a2cae91192d8b81a756ae..4e493aad7c1cb0b1d8340eb55392ec1dd58bcf09 100644 (file)
@@ -24,8 +24,13 @@ $PRODUCES times.c
 $BUILTIN times
 $FUNCTION times_builtin
 $SHORT_DOC times
+Display process times.
+
 Prints the accumulated user and system times for the shell and all of its
 child processes.
+
+Exit Status:
+Always succeeds.
 $END
 
 #include <config.h>
index fc2371a166eb756dbc2a2cae91192d8b81a756ae..d08b5aeef7824dec45fc5b46d7d201ef91d05e8a 100644 (file)
@@ -24,6 +24,8 @@ $PRODUCES times.c
 $BUILTIN times
 $FUNCTION times_builtin
 $SHORT_DOC times
+Display process times.
+
 Prints the accumulated user and system times for the shell and all of its
 child processes.
 $END
index 5cc14c9f7c3b0adc5a7d84e93927738b0a053e70..45fa3014b741681fd69b074ea3b8c0aa0510f4d8 100644 (file)
@@ -24,6 +24,8 @@ $PRODUCES trap.c
 $BUILTIN trap
 $FUNCTION trap_builtin
 $SHORT_DOC trap [-lp] [[arg] signal_spec ...]
+Trap signals and other events.
+
 Defines and activates handlers to be run when the shell receives signals
 or other conditions.
 
@@ -46,6 +48,9 @@ Options:
 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.  A
 signal may be sent to the shell with "kill -signal $$".
+
+Exit Status:
+Returns success unless a SIGSPEC is invalid or an invalid option is given.
 $END
 
 #include <config.h>
index 8043309964cd2912f9ecfe7945a1724db09d3352..e93267b19072a7047f729ecb557f2c578490cd93 100644 (file)
@@ -24,6 +24,8 @@ $PRODUCES trap.c
 $BUILTIN trap
 $FUNCTION trap_builtin
 $SHORT_DOC trap [-lp] [[arg] signal_spec ...]
+Trap signals and other events.
+
 Defines and activates handlers to be run when the shell receives signals
 or other conditions.
 
@@ -45,7 +47,7 @@ Options:
 
 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.  A
-signal can be sent to the shell with "kill -signal $$".
+signal may be sent to the shell with "kill -signal $$".
 $END
 
 #include <config.h>
index bb5327615721848f9eb4a73390f2d387cbf0ee7a..48ddc21b92f4260c6da3a4a87a28bf823f0fb253 100644 (file)
@@ -24,6 +24,8 @@ $PRODUCES type.c
 $BUILTIN type
 $FUNCTION type_builtin
 $SHORT_DOC type [-afptP] name [name ...]
+Display information about command type.
+
 For each NAME, indicate how it would be interpreted if used as a
 command name.
 
@@ -41,6 +43,12 @@ Options:
        `function', `builtin', `file' or `', if NAME is an alias, shell
        reserved word, shell function, shell builtin, disk file, or not 
        found, respectively
+
+Arguments:
+  NAME Command name to be interpreted.
+
+Exit Status:
+Returns success if all of the NAMEs are found; fails if any are not found.
 $END
 
 #include <config.h>
index ed135dd4104570ef8b818f76b7e856f6535ac017..4cd30bcf6a3035ef9fd8456109fdcacb04bfdfce 100644 (file)
@@ -24,6 +24,8 @@ $PRODUCES type.c
 $BUILTIN type
 $FUNCTION type_builtin
 $SHORT_DOC type [-afptP] name [name ...]
+Display information about command type.
+
 For each NAME, indicate how it would be interpreted if used as a
 command name.
 
@@ -37,9 +39,13 @@ Options:
        that would be executed
   -p   returns either the name of the disk file that would be executed,
        or nothing if `type -t NAME' would not return `file'.
-  -t   output a single word which is one of `alias', `keyword', `function',
-       `builtin', `file' or `', if NAME is an alias, shell reserved word,
-       shell function, shell builtin, disk file, or not found, respectively
+  -t   output a single word which is one of `alias', `keyword',
+       `function', `builtin', `file' or `', if NAME is an alias, shell
+       reserved word, shell function, shell builtin, disk file, or not 
+       found, respectively
+
+Arguments:
+  NAME Command name to be interpreted.
 $END
 
 #include <config.h>
index 5fdd98116f3d125b41e7540cdbd05e036488d582..b47dd8239af28ea31cd2eec6f0704936d109a15c 100644 (file)
@@ -25,6 +25,8 @@ $BUILTIN ulimit
 $FUNCTION ulimit_builtin
 $DEPENDS_ON !_MINIX
 $SHORT_DOC ulimit [-SHacdefilmnpqrstuvx] [limit]
+Modify shell resource limits.
+
 Provides control over the resources available to the shell and processes
 it creates, on systems that allow such control.
 
@@ -59,6 +61,9 @@ no option is given, then -f is assumed.
 Values are in 1024-byte increments, except for -t, which is in seconds,
 -p, which is in increments of 512 bytes, and -u, which is an unscaled
 number of processes.
+
+Exit Status:
+Returns success unless an invalid option is supplied or an error occurs.
 $END
 
 #if !defined (_MINIX)
index 310340f7d53c7b83216b260b89da9b9498f62d2a..8f8fb1aa5b049030a493b9a78b96c0b602cfc4ff 100644 (file)
@@ -25,6 +25,8 @@ $BUILTIN ulimit
 $FUNCTION ulimit_builtin
 $DEPENDS_ON !_MINIX
 $SHORT_DOC ulimit [-SHacdefilmnpqrstuvx] [limit]
+Modify shell resource limits.
+
 Provides control over the resources available to the shell and processes
 it creates, on systems that allow such control.
 
@@ -32,6 +34,7 @@ Options:
   -S   use the `soft' resource limit
   -H   use the `hard' resource limit
   -a   all current limits are reported
+  -b   the socket buffer size
   -c   the maximum size of core files created
   -d   the maximum size of a process's data segment
   -e   the maximum scheduling priority (`nice')
@@ -199,6 +202,12 @@ typedef struct {
 } RESOURCE_LIMITS;
 
 static RESOURCE_LIMITS limits[] = {
+#ifdef RLIMIT_PTHREAD
+  { 'T',       RLIMIT_PTHREAD,  1,     "number of threads",    (char *)NULL },
+#endif
+#ifdef RLIMIT_SBSIZE
+  { 'b',       RLIMIT_SBSIZE,  1,      "socket buffer size",   "bytes" },
+#endif
 #ifdef RLIMIT_CORE
   { 'c',       RLIMIT_CORE,  512,      "core file size",       "blocks" },
 #endif
index 8703a828c516dffc88cc68b13363f5312d358abd..b5acb6d0620519b253c07b55a5aecc9ae16feedc 100644 (file)
@@ -24,6 +24,8 @@ $PRODUCES umask.c
 $BUILTIN umask
 $FUNCTION umask_builtin
 $SHORT_DOC umask [-p] [-S] [mode]
+Display or set file mode mask.
+
 Sets the user file-creation mask to MODE.  If MODE is omitted, prints
 the current value of the mask.
 
@@ -33,6 +35,9 @@ otherwise it is a symbolic mode string like that accepted by chmod(1).
 Options:
   -p   if MODE is omitted, output in a form that may be reused as input
   -S   makes the output symbolic; otherwise an octal number is output
+
+Exit Status:
+Returns success unless MODE is invalid or an invalid option is given.
 $END
 
 #include <config.h>
index 34ac3baaa9fc232f1237eafc6938149186542178..c31f76a51efaa146010fdc4f57dca9ba14dd4f84 100644 (file)
@@ -24,6 +24,8 @@ $PRODUCES umask.c
 $BUILTIN umask
 $FUNCTION umask_builtin
 $SHORT_DOC umask [-p] [-S] [mode]
+Display or set file mode mask.
+
 Sets the user file-creation mask to MODE.  If MODE is omitted, prints
 the current value of the mask.
 
@@ -31,7 +33,6 @@ If MODE begins with a digit, it is interpreted as an octal number;
 otherwise it is a symbolic mode string like that accepted by chmod(1).
 
 Options:
-
   -p   if MODE is omitted, output in a form that may be reused as input
   -S   makes the output symbolic; otherwise an octal number is output
 $END
index 3e018044d99c0b27cf633fd31c1edd6b6b3ad800..b3c803cf5edb3e565b72c6466bcc4cc88d509b30 100644 (file)
@@ -24,20 +24,32 @@ $FUNCTION wait_builtin
 $DEPENDS_ON JOB_CONTROL
 $PRODUCES wait.c
 $SHORT_DOC wait [id]
+Wait for job completion and return exit status.
+
 Waits for the process identified by ID, which may be a process ID or a
 job specification, and reports its termination status.  If ID is not
 given, waits for all currently active child processes, and the return
 status is zero.  If ID is a a job specification, waits for all processes
 in the job's pipeline.
+
+Exit Status:
+Returns the status of ID; fails if ID is invalid or an invalid option is
+given.
 $END
 
 $BUILTIN wait
 $FUNCTION wait_builtin
 $DEPENDS_ON !JOB_CONTROL
 $SHORT_DOC wait [pid]
+Wait for process completion and return exit status.
+
 Waits for the specified process and reports its termination status.  If
 PID is not given, all currently active child processes are waited for,
 and the return code is zero.  PID must be a process ID.
+
+Exit Status:
+Returns the status of ID; fails if ID is invalid or an invalid option is
+given.
 $END
 
 #include <config.h>
index 94e525f543e94ab390e26999c476ea6de95a52f4..e5734d20da40d407a8fea060af9fdf0ed97dd0fa 100644 (file)
@@ -1,7 +1,7 @@
 This file is wait.def, from which is created wait.c.
 It implements the builtin "wait" in Bash.
 
-Copyright (C) 1987-2006 Free Software Foundation, Inc.
+Copyright (C) 1987-2008 Free Software Foundation, Inc.
 
 This file is part of GNU Bash, the Bourne Again SHell.
 
@@ -23,21 +23,25 @@ $BUILTIN wait
 $FUNCTION wait_builtin
 $DEPENDS_ON JOB_CONTROL
 $PRODUCES wait.c
-$SHORT_DOC wait [n]
-Wait for the specified process and report its termination status.  If
-N is not given, all currently active child processes are waited for,
-and the return code is zero.  N may be a process ID or a job
-specification; if a job spec is given, all processes in the job's
-pipeline are waited for.
+$SHORT_DOC wait [id]
+Wait for job completion and return exit status.
+
+Waits for the process identified by ID, which may be a process ID or a
+job specification, and reports its termination status.  If ID is not
+given, waits for all currently active child processes, and the return
+status is zero.  If ID is a a job specification, waits for all processes
+in the job's pipeline.
 $END
 
 $BUILTIN wait
 $FUNCTION wait_builtin
 $DEPENDS_ON !JOB_CONTROL
-$SHORT_DOC wait [n]
-Wait for the specified process and report its termination status.  If
-N is not given, all currently active child processes are waited for,
-and the return code is zero.  N must be a process ID.
+$SHORT_DOC wait [pid]
+Wait for process completion and return exit status.
+
+Waits for the specified process and reports its termination status.  If
+PID is not given, all currently active child processes are waited for,
+and the return code is zero.  PID must be a process ID.
 $END
 
 #include <config.h>
index cf04a53e73465c3da7d097866f83123c7f3903ae..a82dfd9994360a129f5d26c14c72033d35ebc7e2 100644 (file)
@@ -286,12 +286,13 @@ S\bSH\bHE\bEL\bLL\bL G\bGR\bRA\bAM\bMM\bMA\bAR\bR
        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-
-       tively.  An AND list has the form
+       AND and OR lists are sequences of one of more  pipelines  separated  by
+       the  &\b&&\b&  and  |\b||\b| control operators, respectively.  AND and OR lists are
+       executed with left associativity.  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_\b is  executed if, and only if, _\bc_\bo_\bm_\bm_\ba_\bn_\bd_\b1 returns an exit status
+       _\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
        of zero.
 
        An OR list has the form
@@ -299,77 +300,77 @@ 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_\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
+       _\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
        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_\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
+       (_\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
               exit status of _\bl_\bi_\bs_\bt.
 
        { _\bl_\bi_\bs_\bt; }
-              _\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
+              _\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
               _\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
-              must be separated from  _\bl_\bi_\bs_\bt  by  whitespace  or  another  shell
+              to be recognized.  Since they do not cause a  word  break,  they
+              must  be  separated  from  _\bl_\bi_\bs_\bt  by  whitespace or another shell
               metacharacter.
 
        ((_\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 (=\b==\b=) or does not match (!\b!=\b=) the pat-
+              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-
+              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.  Any part of the pattern may be quoted to
-              force it to be matched  as  a  string.   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\b with index 0 is the portion of the string matching
+              force  it  to  be  matched  as  a string.  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\bwith 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 parenthe-
+              index _\bn is the portion of the string matching the _\bnth  parenthe-
               sized subexpression.
 
-              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.
@@ -379,154 +380,154 @@ 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_\b3 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_\b 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\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-
+              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-
               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\b is the exit status of the last command executed in _\bl_\bi_\bs_\bt,
+              s\bse\bel\ble\bec\bct\bis 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).   The  _\bw_\bo_\br_\bd  is
-              expanded  using  tilde  expansion, parameter and variable expan-
-              sion, arithmetic  substitution,  command  substitution,  process
-              substitution  and  quote  removal.   Each  _\bp_\ba_\bt_\bt_\be_\br_\bn  examined  is
+              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  substitution,  command  substitution, process
+              substitution  and  quote  removal.   Each  _\bp_\ba_\bt_\bt_\be_\br_\bn  examined  is
+              expanded  using  tilde  expansion, parameter and variable expan-
               sion, arithmetic substitution, command substitution, and process
-              substitution.  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_\b is
-              executed.   After  the  first  match,  no subsequent matches are
+              substitution.   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.  Oth-
-              erwise,  it  is  the exit status of the last command executed in
+              erwise, 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
-              _\bl_\bi_\bs_\b is  executed.   Otherwise,  each  e\bel\bli\bif\bf _\bl_\bi_\bs_\bt is executed in
-              turn, and if its exit status is  zero,  the  corresponding  t\bth\bhe\ben\bn
+              The  i\bif\bf  _\bl_\bi_\bs_\bt is executed.  If its exit status is zero, the t\bth\bhe\ben\bn
+              _\bl_\bi_\bs_\bis executed.  Otherwise, each  e\bel\bli\bif\bf  _\bl_\bi_\bs_\bt  is  executed  in
+              turn,  and  if  its  exit status is zero, the corresponding t\bth\bhe\ben\bn
               _\bl_\bi_\bs_\bt is executed and the command completes.  Otherwise, the e\bel\bls\bse\be
-              _\bl_\bi_\bs_\bis executed, if present.  The exit status is the exit  sta-
+              _\bl_\bi_\bs_\b is executed, if present.  The exit status is the exit sta-
               tus of the last command executed, or zero if no condition tested
               true.
 
        w\bwh\bhi\bil\ble\be _\bl_\bi_\bs_\bt; d\bdo\bo _\bl_\bi_\bs_\bt; d\bdo\bon\bne\be
        u\bun\bnt\bti\bil\bl _\bl_\bi_\bs_\bt; d\bdo\bo _\bl_\bi_\bs_\bt; d\bdo\bon\bne\be
-              The w\bwh\bhi\bil\ble\be command continuously executes the d\bdo\bo _\bl_\bi_\bs_\bt as  long  as
-              the  last  command  in _\bl_\bi_\bs_\bt returns an exit status of zero.  The
+              The  w\bwh\bhi\bil\ble\be  command continuously executes the d\bdo\bo _\bl_\bi_\bs_\bt as long as
+              the last command in _\bl_\bi_\bs_\bt returns an exit status  of  zero.   The
               u\bun\bnt\bti\bil\bl command is identical to the w\bwh\bhi\bil\ble\be command, except that the
-              test  is  negated;  the  d\bdo\bo _\bl_\bi_\bs_\bt is executed as long as the last
+              test is negated; the d\bdo\bo _\bl_\bi_\bs_\bt is executed as  long  as  the  last
               command in _\bl_\bi_\bs_\bt returns a non-zero exit status.  The exit status
-              of  the  w\bwh\bhi\bil\ble\be and u\bun\bnt\bti\bil\bl commands is the exit status of the last
+              of the w\bwh\bhi\bil\ble\be and u\bun\bnt\bti\bil\bl commands is the exit status of  the  last
               d\bdo\bo _\bl_\bi_\bs_\bt command executed, or zero if none was executed.
 
    S\bSh\bhe\bel\bll\bl F\bFu\bun\bnc\bct\bti\bio\bon\bn D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bns\bs
-       A shell function is an object that is called like a simple command  and
-       executes  a  compound  command with a new set of positional parameters.
+       A  shell function is an object that is called like a simple command and
+       executes a compound command with a new set  of  positional  parameters.
        Shell functions are declared as follows:
 
        [ f\bfu\bun\bnc\bct\bti\bio\bon\bn ] _\bn_\ba_\bm_\be () _\bc_\bo_\bm_\bp_\bo_\bu_\bn_\bd_\b-_\bc_\bo_\bm_\bm_\ba_\bn_\bd [_\br_\be_\bd_\bi_\br_\be_\bc_\bt_\bi_\bo_\bn]
-              This defines a function named _\bn_\ba_\bm_\be.  The reserved word  f\bfu\bun\bnc\bct\bti\bio\bon\bn
-              is  optional.   If  the  f\bfu\bun\bnc\bct\bti\bio\bon\bn reserved word is supplied, the
-              parentheses are optional.  The _\bb_\bo_\bd_\by of the function is the  com-
-              pound  command  _\bc_\bo_\bm_\bp_\bo_\bu_\bn_\bd_\b-_\bc_\bo_\bm_\bm_\ba_\bn_\bd  (see C\bCo\bom\bmp\bpo\bou\bun\bnd\bd C\bCo\bom\bmm\bma\ban\bnd\bds\bs above).
-              That command is usually a _\bl_\bi_\bs_\bt of commands between { and },  but
-              may  be  any command listed under C\bCo\bom\bmp\bpo\bou\bun\bnd\bd C\bCo\bom\bmm\bma\ban\bnd\bds\bs above.  _\bc_\bo_\bm_\b-
+              This  defines a function named _\bn_\ba_\bm_\be.  The reserved word f\bfu\bun\bnc\bct\bti\bio\bon\bn
+              is optional.  If the f\bfu\bun\bnc\bct\bti\bio\bon\bn reserved  word  is  supplied,  the
+              parentheses  are optional.  The _\bb_\bo_\bd_\by of the function is the com-
+              pound command _\bc_\bo_\bm_\bp_\bo_\bu_\bn_\bd_\b-_\bc_\bo_\bm_\bm_\ba_\bn_\bd (see  C\bCo\bom\bmp\bpo\bou\bun\bnd\bd  C\bCo\bom\bmm\bma\ban\bnd\bds\b above).
+              That  command is usually a _\bl_\bi_\bs_\bt of commands between { and }, but
+              may be any command listed under C\bCo\bom\bmp\bpo\bou\bun\bnd\bd C\bCo\bom\bmm\bma\ban\bnd\bds\bs  above.   _\bc_\bo_\bm_\b-
               _\bp_\bo_\bu_\bn_\bd_\b-_\bc_\bo_\bm_\bm_\ba_\bn_\bd is executed whenever _\bn_\ba_\bm_\be is specified as the name
-              of  a  simple command.  Any redirections (see R\bRE\bED\bDI\bIR\bRE\bEC\bCT\bTI\bIO\bON\bN below)
-              specified when a function is  defined  are  performed  when  the
-              function  is executed.  The exit status of a function definition
+              of a simple command.  Any redirections (see  R\bRE\bED\bDI\bIR\bRE\bEC\bCT\bTI\bIO\bON\b below)
+              specified  when  a  function  is  defined are performed when the
+              function is executed.  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 last  command  executed  in
+              a  function  is  the exit status of the last command executed in
               the body.  (See F\bFU\bUN\bNC\bCT\bTI\bIO\bON\bNS\bS below.)
 
 C\bCO\bOM\bMM\bME\bEN\bNT\bTS\bS
        In a non-interactive shell, or an interactive shell in which the i\bin\bnt\bte\ber\br-\b-
-       a\bac\bct\bti\biv\bve\be_\b_c\bco\bom\bmm\bme\ben\bnt\bts\boption to the  s\bsh\bho\bop\bpt\bt  builtin  is  enabled  (see  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 word beginning with #\b# causes that word and
-       all remaining characters on that line to be  ignored.   An  interactive
-       shell  without  the  i\bin\bnt\bte\ber\bra\bac\bct\bti\biv\bve\be_\b_c\bco\bom\bmm\bme\ben\bnt\bts\bs option enabled does not allow
+       a\bac\bct\bti\biv\bve\be_\b_c\bco\bom\bmm\bme\ben\bnt\bts\b option  to  the  s\bsh\bho\bop\bpt\bt  builtin  is enabled (see S\bSH\bHE\bEL\bLL\bL
+       B\bBU\bUI\bIL\bLT\bTI\bIN\bC\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS below), a word beginning with #\b# causes that  word  and
+       all  remaining  characters  on that line to be ignored.  An interactive
+       shell without the i\bin\bnt\bte\ber\bra\bac\bct\bti\biv\bve\be_\b_c\bco\bom\bmm\bme\ben\bnt\bts\bs option enabled  does  not  allow
        comments.  The i\bin\bnt\bte\ber\bra\bac\bct\bti\biv\bve\be_\b_c\bco\bom\bmm\bme\ben\bnt\bts\bs option is on by default in interac-
        tive shells.
 
 Q\bQU\bUO\bOT\bTI\bIN\bNG\bG
-       _\bQ_\bu_\bo_\bt_\bi_\bn_\b is used to remove the special meaning of certain characters or
-       words to the shell.  Quoting can be used to disable  special  treatment
+       _\bQ_\bu_\bo_\bt_\bi_\bn_\bis used to remove the special meaning of certain characters  or
+       words  to  the shell.  Quoting can be used to disable special treatment
        for special characters, to prevent reserved words from being recognized
        as such, and to prevent parameter expansion.
 
-       Each of the _\bm_\be_\bt_\ba_\bc_\bh_\ba_\br_\ba_\bc_\bt_\be_\br_\bs listed above under D\bDE\bEF\bFI\bIN\bNI\bIT\bTI\bIO\bON\bNS\bS  has  special
+       Each  of  the _\bm_\be_\bt_\ba_\bc_\bh_\ba_\br_\ba_\bc_\bt_\be_\br_\bs listed above under D\bDE\bEF\bFI\bIN\bNI\bIT\bTI\bIO\bON\bNS\bS has special
        meaning to the shell and must be quoted if it is to represent itself.
 
-       When  the command history expansion facilities are being used (see H\bHI\bIS\bS-\b-
+       When the command history expansion facilities are being used (see  H\bHI\bIS\bS-\b-
        T\bTO\bOR\bRY\bY E\bEX\bXP\bPA\bAN\bNS\bSI\bIO\bON\bN below), the _\bh_\bi_\bs_\bt_\bo_\br_\by _\be_\bx_\bp_\ba_\bn_\bs_\bi_\bo_\bn character, usually !\b!, must
        be quoted to prevent history expansion.
 
-       There  are  three  quoting  mechanisms:  the  _\be_\bs_\bc_\ba_\bp_\be  _\bc_\bh_\ba_\br_\ba_\bc_\bt_\be_\br, single
+       There are  three  quoting  mechanisms:  the  _\be_\bs_\bc_\ba_\bp_\be  _\bc_\bh_\ba_\br_\ba_\bc_\bt_\be_\br,  single
        quotes, and double quotes.
 
-       A non-quoted backslash (\\b\) is the _\be_\bs_\bc_\ba_\bp_\be _\bc_\bh_\ba_\br_\ba_\bc_\bt_\be_\br.  It  preserves  the
+       A  non-quoted  backslash (\\b\) is the _\be_\bs_\bc_\ba_\bp_\be _\bc_\bh_\ba_\br_\ba_\bc_\bt_\be_\br.  It preserves the
        literal value of the next character that follows, with the exception of
-       <newline>.  If a \\b\<newline> pair appears,  and  the  backslash  is  not
-       itself  quoted,  the \\b\<newline> is treated as a line continuation (that
+       <newline>.   If  a  \\b\<newline>  pair  appears, and the backslash is not
+       itself quoted, the \\b\<newline> is treated as a line  continuation  (that
        is, it is removed from the input stream and effectively ignored).
 
-       Enclosing characters in single quotes preserves the  literal  value  of
+       Enclosing  characters  in  single quotes preserves the literal value of
        each character within the quotes.  A single quote may not occur between
        single quotes, even when preceded by a backslash.
 
-       Enclosing characters in double quotes preserves the  literal  value  of
-       all  characters  within the quotes, with the exception of $\b$, `\b`, \\b\, and,
-       when history expansion is enabled, !\b!.  The characters $\b$  and  `\b retain
-       their  special meaning within double quotes.  The backslash retains its
-       special meaning only when followed by one of the following  characters:
-       $\b$,  `\b`,  "\b", \\b\, or <\b<n\bne\bew\bwl\bli\bin\bne\be>\b>.  A double quote may be quoted within double
+       Enclosing  characters  in  double quotes preserves the literal value of
+       all characters within the quotes, with the exception of $\b$, `\b`,  \\b\,  and,
+       when  history  expansion  is enabled, !\b!.  The characters $\b$ and `\b` retain
+       their special meaning within double quotes.  The backslash retains  its
+       special  meaning only when followed by one of the following characters:
+       $\b$, `\b`, "\b", \\b\, or <\b<n\bne\bew\bwl\bli\bin\bne\be>\b>.  A double quote may be quoted  within  double
        quotes by preceding it with a backslash.  If enabled, history expansion
-       will  be  performed  unless an !\b!  appearing in double quotes is escaped
+       will be performed unless an !\b!  appearing in double  quotes  is  escaped
        using a backslash.  The backslash preceding the !\b!  is not removed.
 
-       The special parameters *\b* and @\b@ have  special  meaning  when  in  double
+       The  special  parameters  *\b*  and  @\b@ have special meaning when in double
        quotes (see P\bPA\bAR\bRA\bAM\bME\bET\bTE\bER\bRS\bS below).
 
        Words of the form $\b$'_\bs_\bt_\br_\bi_\bn_\bg' are treated specially.  The word expands to
-       _\bs_\bt_\br_\bi_\bn_\bg, with backslash-escaped characters replaced as specified by  the
-       ANSI  C  standard.  Backslash escape sequences, if present, are decoded
+       _\bs_\bt_\br_\bi_\bn_\bg,  with backslash-escaped characters replaced as specified by the
+       ANSI C standard.  Backslash escape sequences, if present,  are  decoded
        as follows:
               \\b\a\ba     alert (bell)
               \\b\b\bb     backspace
@@ -538,190 +539,190 @@ Q\bQU\bUO\bOT\bTI\bIN\bNG\bG
               \\b\v\bv     vertical tab
               \\b\\\b\     backslash
               \\b\'\b'     single quote
-              \\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)
               \\b\c\bc_\bx    a control-_\bx character
 
-       The expanded result is single-quoted, as if the  dollar  sign  had  not
+       The  expanded  result  is  single-quoted, as if the dollar sign had not
        been present.
 
-       A  double-quoted  string  preceded  by a dollar sign ($\b$) will cause the
-       string to be translated according to the current locale.  If  the  cur-
-       rent  locale  is C\bC or P\bPO\bOS\bSI\bIX\bX, the dollar sign is ignored.  If the string
+       A double-quoted string preceded by a dollar sign  ($\b$)  will  cause  the
+       string  to  be translated according to the current locale.  If the cur-
+       rent locale is C\bC or P\bPO\bOS\bSI\bIX\bX, the dollar sign is ignored.  If  the  string
        is translated and replaced, the replacement is double-quoted.
 
 P\bPA\bAR\bRA\bAM\bME\bET\bTE\bER\bRS\bS
-       A _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br is an entity that stores values.  It can be a _\bn_\ba_\bm_\be, a  num-
+       A  _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br is an entity that stores values.  It can be a _\bn_\ba_\bm_\be, a num-
        ber, or one of the special characters listed below under S\bSp\bpe\bec\bci\bia\bal\bl P\bPa\bar\bra\bam\bm-\b-
-       e\bet\bte\ber\brs\bs.  A _\bv_\ba_\br_\bi_\ba_\bb_\bl_\be is a parameter denoted by a _\bn_\ba_\bm_\be.  A variable has  a
-       _\bv_\ba_\bl_\bu_\b and  zero or more _\ba_\bt_\bt_\br_\bi_\bb_\bu_\bt_\be_\bs.  Attributes are assigned using the
-       d\bde\bec\bcl\bla\bar\bre\bbuiltin command (see d\bde\bec\bcl\bla\bar\bre\be below in S\bSH\bHE\bEL\bLL\bL B\bBU\bUI\bIL\bLT\bTI\bIN\b C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS).
+       e\bet\bte\ber\brs\bs.   A _\bv_\ba_\br_\bi_\ba_\bb_\bl_\be is a parameter denoted by a _\bn_\ba_\bm_\be.  A variable has a
+       _\bv_\ba_\bl_\bu_\band zero or more _\ba_\bt_\bt_\br_\bi_\bb_\bu_\bt_\be_\bs.  Attributes are assigned  using  the
+       d\bde\bec\bcl\bla\bar\bre\b builtin command (see d\bde\bec\bcl\bla\bar\bre\be below in S\bSH\bHE\bEL\bLL\bL B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS).
 
        A parameter is set if it has been assigned a value.  The null string is
-       a valid value.  Once a variable is set, it may be unset only  by  using
+       a  valid  value.  Once a variable is set, it may be unset only by using
        the u\bun\bns\bse\bet\bt builtin command (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).
 
        A _\bv_\ba_\br_\bi_\ba_\bb_\bl_\be may be assigned to by a statement of the form
 
               _\bn_\ba_\bm_\be=[_\bv_\ba_\bl_\bu_\be]
 
-       If  _\bv_\ba_\bl_\bu_\be  is not given, the variable is assigned the null string.  All
-       _\bv_\ba_\bl_\bu_\be_\bundergo tilde expansion, parameter and variable expansion,  com-
-       mand  substitution, arithmetic expansion, and quote removal (see E\bEX\bXP\bPA\bAN\bN-\b-
+       If _\bv_\ba_\bl_\bu_\be is not given, the variable is assigned the null  string.   All
+       _\bv_\ba_\bl_\bu_\be_\b undergo tilde expansion, parameter and variable expansion, com-
+       mand substitution, arithmetic expansion, and quote removal (see  E\bEX\bXP\bPA\bAN\bN-\b-
        S\bSI\bIO\bON\bN below).  If the variable has its i\bin\bnt\bte\beg\bge\ber\br attribute set, then _\bv_\ba_\bl_\bu_\be
        is evaluated as an arithmetic expression even if the $((...)) expansion
-       is not used (see A\bAr\bri\bit\bth\bhm\bme\bet\bti\bic\bc E\bEx\bxp\bpa\ban\bns\bsi\bio\bon\bn below).  Word  splitting  is  not
-       performed,  with the exception of "\b"$\b$@\b@"\b" as explained below under S\bSp\bpe\bec\bci\bia\bal\bl
-       P\bPa\bar\bra\bam\bme\bet\bte\ber\brs\bs.  Pathname expansion is not  performed.   Assignment  state-
-       ments  may  also  appear  as  arguments to the a\bal\bli\bia\bas\bs, d\bde\bec\bcl\bla\bar\bre\be, t\bty\byp\bpe\bes\bse\bet\bt,
+       is  not  used  (see A\bAr\bri\bit\bth\bhm\bme\bet\bti\bic\bc E\bEx\bxp\bpa\ban\bns\bsi\bio\bon\bn below).  Word splitting is not
+       performed, with the exception of "\b"$\b$@\b@"\b" as explained below under  S\bSp\bpe\bec\bci\bia\bal\bl
+       P\bPa\bar\bra\bam\bme\bet\bte\ber\brs\bs.   Pathname  expansion  is not performed.  Assignment state-
+       ments may also appear as arguments  to  the  a\bal\bli\bia\bas\bs,  d\bde\bec\bcl\bla\bar\bre\be,  t\bty\byp\bpe\bes\bse\bet\bt,
        e\bex\bxp\bpo\bor\brt\bt, r\bre\bea\bad\bdo\bon\bnl\bly\by, and l\blo\boc\bca\bal\bl builtin commands.
 
-       In the context where an assignment statement is assigning a value to  a
+       In  the context where an assignment statement is assigning a value to a
        shell variable or array index, the += operator can be used to append to
        or add to the variable's previous value.  When += is applied to a vari-
-       able  for  which the integer attribute has been set, _\bv_\ba_\bl_\bu_\be is evaluated
-       as an arithmetic expression and added to the variable's current  value,
+       able for which the integer attribute has been set, _\bv_\ba_\bl_\bu_\be  is  evaluated
+       as  an arithmetic expression and added to the variable's current value,
        which is also evaluated.  When += is applied to an array variable using
-       compound assignment (see A\bAr\brr\bra\bay\bys\bs below), the  variable's  value  is  not
+       compound  assignment  (see  A\bAr\brr\bra\bay\bys\bs  below), the variable's value is not
        unset (as it is when using =), and new values are appended to the array
-       beginning at one greater than the array's maximum index.  When  applied
-       to  a  string-valued  variable,  _\bv_\ba_\bl_\bu_\be  is expanded and appended to the
+       beginning  at one greater than the array's maximum index.  When applied
+       to a string-valued variable, _\bv_\ba_\bl_\bu_\be is  expanded  and  appended  to  the
        variable's value.
 
    P\bPo\bos\bsi\bit\bti\bio\bon\bna\bal\bl P\bPa\bar\bra\bam\bme\bet\bte\ber\brs\bs
-       A _\bp_\bo_\bs_\bi_\bt_\bi_\bo_\bn_\ba_\bl _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br is a parameter denoted by one  or  more  digits,
+       A  _\bp_\bo_\bs_\bi_\bt_\bi_\bo_\bn_\ba_\bl  _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br  is a parameter denoted by one or more digits,
        other than the single digit 0.  Positional parameters are assigned from
-       the shell's arguments when it is invoked, and may be  reassigned  using
-       the  s\bse\bet\bt builtin command.  Positional parameters may not be assigned to
-       with assignment statements.  The positional parameters are  temporarily
+       the  shell's  arguments when it is invoked, and may be reassigned using
+       the s\bse\bet\bt builtin command.  Positional parameters may not be assigned  to
+       with  assignment statements.  The positional parameters are temporarily
        replaced when a shell function is executed (see F\bFU\bUN\bNC\bCT\bTI\bIO\bON\bNS\bS below).
 
-       When  a  positional parameter consisting of more than a single digit is
+       When a positional parameter consisting of more than a single  digit  is
        expanded, it must be enclosed in braces (see E\bEX\bXP\bPA\bAN\bNS\bSI\bIO\bON\bN below).
 
    S\bSp\bpe\bec\bci\bia\bal\bl P\bPa\bar\bra\bam\bme\bet\bte\ber\brs\bs
-       The shell treats several parameters specially.   These  parameters  may
+       The  shell  treats  several parameters specially.  These parameters may
        only be referenced; assignment to them is not allowed.
-       *\b*      Expands  to  the positional parameters, starting from one.  When
-              the expansion occurs within double quotes, it expands to a  sin-
+       *\b*      Expands to the positional parameters, starting from  one.   When
+              the  expansion occurs within double quotes, it expands to a sin-
               gle word with the value of each parameter separated by the first
               character of the I\bIF\bFS\bS special variable.  That is, "$\b$*\b*" is equiva-
               lent to "$\b$1\b1_\bc$\b$2\b2_\bc.\b..\b..\b.", where _\bc is the first character of the value
-              of the I\bIF\bFS\bS variable.  If I\bIF\bFS\bS is unset, the parameters are  sepa-
-              rated  by  spaces.   If  I\bIF\bFS\bS  is null, the parameters are joined
+              of  the I\bIF\bFS\bS variable.  If I\bIF\bFS\bS is unset, the parameters are sepa-
+              rated by spaces.  If I\bIF\bFS\bS is  null,  the  parameters  are  joined
               without intervening separators.
-       @\b@      Expands to the positional parameters, starting from  one.   When
+       @\b@      Expands  to  the positional parameters, starting from one.  When
               the  expansion  occurs  within  double  quotes,  each  parameter
               expands to a separate word.  That is, "$\b$@\b@" is equivalent to "$\b$1\b1"
-              "$\b$2\b2"  ...   If the double-quoted expansion occurs within a word,
-              the expansion of the first parameter is joined with  the  begin-
-              ning  part  of  the original word, and the expansion of the last
-              parameter is joined with the last part  of  the  original  word.
-              When  there  are no positional parameters, "$\b$@\b@" and $\b$@\b@ expand to
+              "$\b$2\b2" ...  If the double-quoted expansion occurs within  a  word,
+              the  expansion  of the first parameter is joined with the begin-
+              ning part of the original word, and the expansion  of  the  last
+              parameter  is  joined  with  the last part of the original word.
+              When there are no positional parameters, "$\b$@\b@" and $\b$@\b@  expand  to
               nothing (i.e., they are removed).
        #\b#      Expands to the number of positional parameters in decimal.
-       ?\b?      Expands to the exit status of the most recently  executed  fore-
+       ?\b?      Expands  to  the exit status of the most recently executed fore-
               ground pipeline.
-       -\b-      Expands  to  the  current option flags as specified upon invoca-
-              tion, by the s\bse\bet\bt builtin command, or  those  set  by  the  shell
+       -\b-      Expands to the current option flags as  specified  upon  invoca-
+              tion,  by  the  s\bse\bet\bt  builtin  command, or those set by the shell
               itself (such as the -\b-i\bi option).
-       $\b$      Expands  to  the  process ID of the shell.  In a () subshell, it
-              expands to the process ID of the current  shell,  not  the  sub-
+       $\b$      Expands to the process ID of the shell.  In a  ()  subshell,  it
+              expands  to  the  process  ID of the current shell, not the sub-
               shell.
-       !\b!      Expands  to  the  process ID of the most recently executed back-
+       !\b!      Expands to the process ID of the most  recently  executed  back-
               ground (asynchronous) command.
-       0\b0      Expands to the name of the shell or shell script.  This  is  set
+       0\b0      Expands  to  the name of the shell or shell script.  This is set
               at shell initialization.  If b\bba\bas\bsh\bh is invoked with a file of com-
-              mands, $\b$0\b0 is set to the name of that file.  If b\bba\bas\bsh\bh  is  started
-              with  the  -\b-c\bc option, then $\b$0\b0 is set to the first argument after
-              the string to be executed, if one is present.  Otherwise, it  is
-              set  to  the file name used to invoke b\bba\bas\bsh\bh, as given by argument
+              mands,  $\b$0\b0  is set to the name of that file.  If b\bba\bas\bsh\bh is started
+              with the -\b-c\bc option, then $\b$0\b0 is set to the first  argument  after
+              the  string to be executed, if one is present.  Otherwise, it is
+              set to the file name used to invoke b\bba\bas\bsh\bh, as given  by  argument
               zero.
-       _\b_      At shell startup, set to the absolute pathname  used  to  invoke
-              the  shell or shell script being executed as passed in the envi-
-              ronment or argument list.  Subsequently,  expands  to  the  last
-              argument  to the previous command, after expansion.  Also set to
-              the full pathname used  to  invoke  each  command  executed  and
+       _\b_      At  shell  startup,  set to the absolute pathname used to invoke
+              the shell or shell script being executed as passed in the  envi-
+              ronment  or  argument  list.   Subsequently, expands to the last
+              argument to the previous command, after expansion.  Also set  to
+              the  full  pathname  used  to  invoke  each command executed and
               placed in the environment exported to that command.  When check-
-              ing mail, this parameter holds the name of the  mail  file  cur-
+              ing  mail,  this  parameter holds the name of the mail file cur-
               rently being checked.
 
    S\bSh\bhe\bel\bll\bl V\bVa\bar\bri\bia\bab\bbl\ble\bes\bs
        The following variables are set by the shell:
 
-       B\bBA\bAS\bSH\bH   Expands  to  the  full file name used to invoke this instance of
+       B\bBA\bAS\bSH\bH   Expands to the full file name used to invoke  this  instance  of
               b\bba\bas\bsh\bh.
        B\bBA\bAS\bSH\bHP\bPI\bID\bD
-              Expands to the process id of the  current  bash  process.   This
-              differs  from  $\b$$\b$ under certain circumstances, such as subshells
-              that do not require bash to be re-initialized.
+              Expands  to  the  process  id of the current b\bba\bas\bsh\bh process.  This
+              differs from $\b$$\b$ under certain circumstances, such  as  subshells
+              that do not require b\bba\bas\bsh\bh to be re-initialized.
        B\bBA\bAS\bSH\bH_\b_A\bAR\bRG\bGC\bC
-              An array variable whose values are the number of  parameters  in
-              each frame of the current bash execution call stack.  The number
-              of parameters to  the  current  subroutine  (shell  function  or
-              script  executed  with  .\b. or s\bso\bou\bur\brc\bce\be) is at the top of the stack.
-              When a subroutine is executed, the number of  parameters  passed
+              An  array  variable whose values are the number of parameters in
+              each frame of the current b\bba\bas\bsh\bh execution call stack.  The number
+              of  parameters  to  the  current  subroutine  (shell function or
+              script executed with .\b. or s\bso\bou\bur\brc\bce\be) is at the top  of  the  stack.
+              When  a  subroutine is executed, the number of parameters passed
               is pushed onto B\bBA\bAS\bSH\bH_\b_A\bAR\bRG\bGC\bC.  The shell sets B\bBA\bAS\bSH\bH_\b_A\bAR\bRG\bGC\bC only when in
-              extended debugging mode (see the  description  of  the  e\bex\bxt\btd\bde\beb\bbu\bug\bg
+              extended  debugging  mode  (see  the description of the e\bex\bxt\btd\bde\beb\bbu\bug\bg
               option to the s\bsh\bho\bop\bpt\bt builtin below)
        B\bBA\bAS\bSH\bH_\b_A\bAR\bRG\bGV\bV
-              An  array  variable containing all of the parameters in the cur-
-              rent bash execution call stack.  The final parameter of the last
-              subroutine  call is at the top of the stack; the first parameter
+              An array variable containing all of the parameters in  the  cur-
+              rent b\bba\bas\bsh\bh execution call stack.  The final parameter of the last
+              subroutine call is at the top of the stack; the first  parameter
               of the initial call is at the bottom.  When a subroutine is exe-
-              cuted,  the  parameters supplied are pushed onto B\bBA\bAS\bSH\bH_\b_A\bAR\bRG\bGV\bV.  The
-              shell sets B\bBA\bAS\bSH\bH_\b_A\bAR\bRG\bGV\bV only when in extended debugging  mode  (see
-              the  description  of  the  e\bex\bxt\btd\bde\beb\bbu\bug\bg  option to the s\bsh\bho\bop\bpt\bt builtin
+              cuted, the parameters supplied are pushed onto  B\bBA\bAS\bSH\bH_\b_A\bAR\bRG\bGV\bV.   The
+              shell  sets  B\bBA\bAS\bSH\bH_\b_A\bAR\bRG\bGV\bV only when in extended debugging mode (see
+              the description of the e\bex\bxt\btd\bde\beb\bbu\bug\bg  option  to  the  s\bsh\bho\bop\bpt\b builtin
               below)
        B\bBA\bAS\bSH\bH_\b_C\bCO\bOM\bMM\bMA\bAN\bND\bD
-              The command currently being executed or about  to  be  executed,
+              The  command  currently  being executed or about to be executed,
               unless the shell is executing a command as the result of a trap,
-              in which case it is the command executing at  the  time  of  the
+              in  which  case  it  is the command executing at the time of the
               trap.
        B\bBA\bAS\bSH\bH_\b_E\bEX\bXE\bEC\bCU\bUT\bTI\bIO\bON\bN_\b_S\bST\bTR\bRI\bIN\bNG\bG
               The command argument to the -\b-c\bc invocation option.
        B\bBA\bAS\bSH\bH_\b_L\bLI\bIN\bNE\bEN\bNO\bO
-              An  array  variable whose members are the line numbers in source
-              files   corresponding    to    each    member    of    F\bFU\bUN\bNC\bCN\bNA\bAM\bME\bE.
-              $\b${\b{B\bBA\bAS\bSH\bH_\b_L\bLI\bIN\bNE\bEN\bNO\bO[\b[_\b$_\bi]\b]}\b is  the line number in the source file where
-              $\b${\b{F\bFU\bUN\bNC\bCN\bNA\bAM\bME\bE[\b[_\b$_\bi]\b]}\bwas called (or  $\b${\b{B\bBA\bAS\bSH\bH_\b_L\bLI\bIN\bNE\bEN\bNO\bO[\b[_\b$_\bi_\b-_\b1]\b]}\b}  if  refer-
-              enced  within another shell function).  The corresponding source
-              file name is $\b${\b{B\bBA\bAS\bSH\bH_\b_S\bSO\bOU\bUR\bRC\bCE\bE[\b[_\b$_\bi]\b]}\b}.\b.  U\bUs\bse\be L\bLI\bIN\bNE\bEN\bNO\bO t\bto\bo o\bob\bbt\bta\bai\bin\bn t\bth\bhe\b c\bcu\bur\br-\b-
+              An array variable whose members are the line numbers  in  source
+              files    corresponding    to    each    member    of   F\bFU\bUN\bNC\bCN\bNA\bAM\bME\bE.
+              $\b${\b{B\bBA\bAS\bSH\bH_\b_L\bLI\bIN\bNE\bEN\bNO\bO[\b[_\b$_\bi]\b]}\bis the line number in the source  file  where
+              $\b${\b{F\bFU\bUN\bNC\bCN\bNA\bAM\bME\bE[\b[_\b$_\bi]\b]}\b was  called  (or $\b${\b{B\bBA\bAS\bSH\bH_\b_L\bLI\bIN\bNE\bEN\bNO\bO[\b[_\b$_\bi_\b-_\b1]\b]}\b} if refer-
+              enced within another shell function).  The corresponding  source
+              file  name is $\b${\b{B\bBA\bAS\bSH\bH_\b_S\bSO\bOU\bUR\bRC\bCE\bE[\b[_\b$_\bi]\b]}\b}.\b.  U\bUs\bse\be L\bLI\bIN\bNE\bEN\bNO\bO t\bto\bo o\bob\bbt\bta\bai\bin\bn t\bth\bhe\be c\bcu\bur\br-\b-
               r\bre\ben\bnt\bt l\bli\bin\bne\be n\bnu\bum\bmb\bbe\ber\br.\b.
        B\bBA\bAS\bSH\bH_\b_R\bRE\bEM\bMA\bAT\bTC\bCH\bH
-              An  array  variable  whose members are assigned by the =\b=~\b~ binary
-              operator to the [\b[[\b[ conditional command.  The element with  index
-              0  is  the  portion  of  the  string matching the entire regular
-              expression.  The element with index _\bn  is  the  portion  of  the
+              An array variable whose members are assigned by  the  =\b=~\b binary
+              operator  to the [\b[[\b[ conditional command.  The element with index
+              0 is the portion of  the  string  matching  the  entire  regular
+              expression.   The  element  with  index  _\bn is the portion of the
               string matching the _\bnth parenthesized subexpression.  This vari-
               able is read-only.
        B\bBA\bAS\bSH\bH_\b_S\bSO\bOU\bUR\bRC\bCE\bE
-              An array variable whose members are the source filenames  corre-
+              An  array variable whose members are the source filenames corre-
               sponding to the elements in the F\bFU\bUN\bNC\bCN\bNA\bAM\bME\bE array variable.
        B\bBA\bAS\bSH\bH_\b_S\bSU\bUB\bBS\bSH\bHE\bEL\bLL\bL
-              Incremented  by one each time a subshell or subshell environment
+              Incremented by one each time a subshell or subshell  environment
               is spawned.  The initial value is 0.
        B\bBA\bAS\bSH\bH_\b_V\bVE\bER\bRS\bSI\bIN\bNF\bFO\bO
               A readonly array variable whose members hold version information
-              for  this  instance  of  b\bba\bas\bsh\bh.  The values assigned to the array
+              for this instance of b\bba\bas\bsh\bh.  The values  assigned  to  the  array
               members are as follows:
-              B\bBA\bAS\bSH\bH_\b_V\bVE\bER\bRS\bSI\bIN\bNF\bFO\bO[\b[0]\b]        The major version number (the  _\br_\be_\bl_\be_\ba_\bs_\be).
-              B\bBA\bAS\bSH\bH_\b_V\bVE\bER\bRS\bSI\bIN\bNF\bFO\bO[\b[1]\b]        The  minor version number (the _\bv_\be_\br_\bs_\bi_\bo_\bn).
+              B\bBA\bAS\bSH\bH_\b_V\bVE\bER\bRS\bSI\bIN\bNF\bFO\bO[\b[0]\b]        The  major version number (the _\br_\be_\bl_\be_\ba_\bs_\be).
+              B\bBA\bAS\bSH\bH_\b_V\bVE\bER\bRS\bSI\bIN\bNF\bFO\bO[\b[1]\b]        The minor version number (the  _\bv_\be_\br_\bs_\bi_\bo_\bn).
               B\bBA\bAS\bSH\bH_\b_V\bVE\bER\bRS\bSI\bIN\bNF\bFO\bO[\b[2]\b]        The patch level.
               B\bBA\bAS\bSH\bH_\b_V\bVE\bER\bRS\bSI\bIN\bNF\bFO\bO[\b[3]\b]        The build version.
               B\bBA\bAS\bSH\bH_\b_V\bVE\bER\bRS\bSI\bIN\bNF\bFO\bO[\b[4]\b]        The release status (e.g., _\bb_\be_\bt_\ba_\b1).
               B\bBA\bAS\bSH\bH_\b_V\bVE\bER\bRS\bSI\bIN\bNF\bFO\bO[\b[5]\b]        The value of M\bMA\bAC\bCH\bHT\bTY\bYP\bPE\bE.
 
        B\bBA\bAS\bSH\bH_\b_V\bVE\bER\bRS\bSI\bIO\bON\bN
-              Expands to a string describing the version of this  instance  of
+              Expands  to  a string describing the version of this instance of
               b\bba\bas\bsh\bh.
 
        C\bCO\bOM\bMP\bP_\b_C\bCW\bWO\bOR\bRD\bD
-              An  index  into $\b${\b{C\bCO\bOM\bMP\bP_\b_W\bWO\bOR\bRD\bDS\bS}\b} of the word containing the current
+              An index into $\b${\b{C\bCO\bOM\bMP\bP_\b_W\bWO\bOR\bRD\bDS\bS}\b} of the word containing  the  current
               cursor position.  This variable is available only in shell func-
-              tions  invoked  by  the  programmable completion facilities (see
+              tions invoked by the  programmable  completion  facilities  (see
               P\bPr\bro\bog\bgr\bra\bam\bmm\bma\bab\bbl\ble\be C\bCo\bom\bmp\bpl\ble\bet\bti\bio\bon\bn below).
 
        C\bCO\bOM\bMP\bP_\b_K\bKE\bEY\bY
@@ -729,116 +730,116 @@ P\bPA\bAR\bRA\bAM\bME\bET\bTE\bER\bRS\bS
               rent completion function.
 
        C\bCO\bOM\bMP\bP_\b_L\bLI\bIN\bNE\bE
-              The  current  command  line.  This variable is available only in
-              shell functions  and  external  commands  invoked  by  the  pro-
-              grammable  completion  facilities  (see  P\bPr\bro\bog\bgr\bra\bam\bmm\bma\bab\bbl\ble\be C\bCo\bom\bmp\bpl\ble\bet\bti\bio\bon\bn
+              The current command line.  This variable is  available  only  in
+              shell  functions  and  external  commands  invoked  by  the pro-
+              grammable completion  facilities  (see  P\bPr\bro\bog\bgr\bra\bam\bmm\bma\bab\bbl\ble\b C\bCo\bom\bmp\bpl\ble\bet\bti\bio\bon\bn
               below).
 
        C\bCO\bOM\bMP\bP_\b_P\bPO\bOI\bIN\bNT\bT
-              The index of the current cursor position relative to the  begin-
-              ning  of the current command.  If the current cursor position is
+              The  index of the current cursor position relative to the begin-
+              ning of the current command.  If the current cursor position  is
               at the end of the current command, the value of this variable is
-              equal  to  $\b${\b{#\b#C\bCO\bOM\bMP\bP_\b_L\bLI\bIN\bNE\bE}\b}.   This  variable  is available only in
-              shell functions  and  external  commands  invoked  by  the  pro-
-              grammable  completion  facilities  (see  P\bPr\bro\bog\bgr\bra\bam\bmm\bma\bab\bbl\ble\be C\bCo\bom\bmp\bpl\ble\bet\bti\bio\bon\bn
+              equal to $\b${\b{#\b#C\bCO\bOM\bMP\bP_\b_L\bLI\bIN\bNE\bE}\b}.  This  variable  is  available  only  in
+              shell  functions  and  external  commands  invoked  by  the pro-
+              grammable completion  facilities  (see  P\bPr\bro\bog\bgr\bra\bam\bmm\bma\bab\bbl\ble\b C\bCo\bom\bmp\bpl\ble\bet\bti\bio\bon\bn
               below).
 
        C\bCO\bOM\bMP\bP_\b_T\bTY\bYP\bPE\bE
-              Set to an integer value corresponding to the type of  completion
-              attempted  that  caused a completion function to be called: _\bT_\bA_\bB,
-              for normal completion, _\b?, for listing completions after  succes-
-              sive  tabs,  _\b!, for listing alternatives on partial word comple-
-              tion, _\b@, to list completions if the word is not  unmodified,  or
-              _\b%,  for  menu  completion.   This  variable is available only in
-              shell functions  and  external  commands  invoked  by  the  pro-
-              grammable  completion  facilities  (see  P\bPr\bro\bog\bgr\bra\bam\bmm\bma\bab\bbl\ble\be C\bCo\bom\bmp\bpl\ble\bet\bti\bio\bon\bn
+              Set  to an integer value corresponding to the type of completion
+              attempted that caused a completion function to be  called:  _\bT_\bA_\bB,
+              for  normal completion, _\b?, for listing completions after succes-
+              sive tabs, _\b!, for listing alternatives on partial  word  comple-
+              tion,  _\b@,  to list completions if the word is not unmodified, or
+              _\b%, for menu completion.  This  variable  is  available  only  in
+              shell  functions  and  external  commands  invoked  by  the pro-
+              grammable completion  facilities  (see  P\bPr\bro\bog\bgr\bra\bam\bmm\bma\bab\bbl\ble\b C\bCo\bom\bmp\bpl\ble\bet\bti\bio\bon\bn
               below).
 
        C\bCO\bOM\bMP\bP_\b_W\bWO\bOR\bRD\bDB\bBR\bRE\bEA\bAK\bKS\bS
-              The set of characters that the Readline library treats  as  word
-              separators  when performing word completion.  If C\bCO\bOM\bMP\bP_\b_W\bWO\bOR\bRD\bDB\bBR\bRE\bEA\bAK\bKS\bS
-              is unset, it loses its special properties, even if it is  subse-
+              The  set  of characters that the Readline library treats as word
+              separators when performing word completion.  If  C\bCO\bOM\bMP\bP_\b_W\bWO\bOR\bRD\bDB\bBR\bRE\bEA\bAK\bKS\bS
+              is  unset, it loses its special properties, even if it is subse-
               quently reset.
 
        C\bCO\bOM\bMP\bP_\b_W\bWO\bOR\bRD\bDS\bS
-              An  array variable (see A\bAr\brr\bra\bay\bys\bs below) consisting of the individ-
-              ual words in the current command line.  The words are  split  on
-              shell  metacharacters  as  the shell parser would separate them.
-              This variable is available only in shell  functions  invoked  by
+              An array variable (see A\bAr\brr\bra\bay\bys\bs below) consisting of the  individ-
+              ual  words  in the current command line.  The words are split on
+              shell metacharacters as the shell parser  would  separate  them.
+              This  variable  is  available only in shell functions invoked by
               the programmable completion facilities (see P\bPr\bro\bog\bgr\bra\bam\bmm\bma\bab\bbl\ble\be C\bCo\bom\bmp\bpl\ble\be-\b-
               t\bti\bio\bon\bn below).
 
        D\bDI\bIR\bRS\bST\bTA\bAC\bCK\bK
               An array variable (see A\bAr\brr\bra\bay\bys\bs below) containing the current con-
-              tents  of  the directory stack.  Directories appear in the stack
-              in the order they are displayed by the d\bdi\bir\brs\bs builtin.   Assigning
+              tents of the directory stack.  Directories appear in  the  stack
+              in  the order they are displayed by the d\bdi\bir\brs\bs builtin.  Assigning
               to members of this array variable may be used to modify directo-
-              ries already in the stack, but the p\bpu\bus\bsh\bhd\bd and p\bpo\bop\bpd\bd builtins  must
+              ries  already in the stack, but the p\bpu\bus\bsh\bhd\bd and p\bpo\bop\bpd\bd builtins must
               be used to add and remove directories.  Assignment to this vari-
-              able will not change the  current  directory.   If  D\bDI\bIR\bRS\bST\bTA\bAC\bCK\b is
-              unset,  it  loses  its  special properties, even if it is subse-
+              able  will  not  change  the  current directory.  If D\bDI\bIR\bRS\bST\bTA\bAC\bCK\bK is
+              unset, it loses its special properties, even  if  it  is  subse-
               quently reset.
 
-       E\bEU\bUI\bID\bD   Expands to the effective user ID of the current  user,  initial-
+       E\bEU\bUI\bID\bD   Expands  to  the effective user ID of the current user, initial-
               ized at shell startup.  This variable is readonly.
 
        F\bFU\bUN\bNC\bCN\bNA\bAM\bME\bE
-              An  array  variable  containing the names of all shell functions
+              An array variable containing the names of  all  shell  functions
               currently in the execution call stack.  The element with index 0
               is the name of any currently-executing shell function.  The bot-
-              tom-most element is "main".  This variable exists  only  when  a
-              shell  function  is  executing.  Assignments to F\bFU\bUN\bNC\bCN\bNA\bAM\bME\bE have no
-              effect and return an error status.  If  F\bFU\bUN\bNC\bCN\bNA\bAM\bME\bE  is  unset,  it
-              loses  its special properties, even if it is subsequently reset.
-
-       G\bGR\bRO\bOU\bUP\bPS\bS An array variable containing the list of  groups  of  which  the
-              current  user is a member.  Assignments to G\bGR\bRO\bOU\bUP\bPS\bS have no effect
-              and return an error status.  If G\bGR\bRO\bOU\bUP\bPS\bS is unset,  it  loses  its
+              tom-most  element  is  "main".  This variable exists only when a
+              shell function is executing.  Assignments to  F\bFU\bUN\bNC\bCN\bNA\bAM\bME\bE  have  no
+              effect  and  return  an  error status.  If F\bFU\bUN\bNC\bCN\bNA\bAM\bME\bE is unset, it
+              loses its special properties, even if it is subsequently  reset.
+
+       G\bGR\bRO\bOU\bUP\bPS\bS An  array  variable  containing  the list of groups of which the
+              current user is a member.  Assignments to G\bGR\bRO\bOU\bUP\bPS\bS have no  effect
+              and  return  an  error status.  If G\bGR\bRO\bOU\bUP\bPS\bS is unset, it loses its
               special properties, even if it is subsequently reset.
 
        H\bHI\bIS\bST\bTC\bCM\bMD\bD
               The history number, or index in the history list, of the current
-              command.  If H\bHI\bIS\bST\bTC\bCM\bMD\bD is unset, it loses its special  properties,
+              command.   If H\bHI\bIS\bST\bTC\bCM\bMD\bD is unset, it loses its special properties,
               even if it is subsequently reset.
 
        H\bHO\bOS\bST\bTN\bNA\bAM\bME\bE
               Automatically set to the name of the current host.
 
        H\bHO\bOS\bST\bTT\bTY\bYP\bPE\bE
-              Automatically  set  to a string that uniquely describes the type
-              of machine on which b\bba\bas\bsh\bh is executing.  The default  is  system-
+              Automatically set to a string that uniquely describes  the  type
+              of  machine  on which b\bba\bas\bsh\bh is executing.  The default is system-
               dependent.
 
-       L\bLI\bIN\bNE\bEN\bNO\bO Each  time this parameter is referenced, the shell substitutes a
-              decimal number representing the current sequential  line  number
-              (starting  with  1)  within a script or function.  When not in a
-              script or function, the value substituted is not  guaranteed  to
+       L\bLI\bIN\bNE\bEN\bNO\bO Each time this parameter is referenced, the shell substitutes  a
+              decimal  number  representing the current sequential line number
+              (starting with 1) within a script or function.  When  not  in  a
+              script  or  function, the value substituted is not guaranteed to
               be meaningful.  If L\bLI\bIN\bNE\bEN\bNO\bO is unset, it loses its special proper-
               ties, even if it is subsequently reset.
 
        M\bMA\bAC\bCH\bHT\bTY\bYP\bPE\bE
-              Automatically set to a string that fully  describes  the  system
-              type  on  which  b\bba\bas\bsh\bh is executing, in the standard GNU _\bc_\bp_\bu_\b-_\bc_\bo_\bm_\b-
+              Automatically  set  to  a string that fully describes the system
+              type on which b\bba\bas\bsh\bh is executing, in the  standard  GNU  _\bc_\bp_\bu_\b-_\bc_\bo_\bm_\b-
               _\bp_\ba_\bn_\by_\b-_\bs_\by_\bs_\bt_\be_\bm format.  The default is system-dependent.
 
        O\bOL\bLD\bDP\bPW\bWD\bD The previous working directory as set by the c\bcd\bd command.
 
-       O\bOP\bPT\bTA\bAR\bRG\bG The value of the last option argument processed by  the  g\bge\bet\bto\bop\bpt\bts\bs
+       O\bOP\bPT\bTA\bAR\bRG\bG The  value  of the last option argument processed by the g\bge\bet\bto\bop\bpt\bts\bs
               builtin command (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).
 
-       O\bOP\bPT\bTI\bIN\bND\bD The  index  of  the next argument to be processed by the g\bge\bet\bto\bop\bpt\bts\bs
+       O\bOP\bPT\bTI\bIN\bND\bD The index of the next argument to be processed  by  the  g\bge\bet\bto\bop\bpt\bts\bs
               builtin command (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).
 
-       O\bOS\bST\bTY\bYP\bPE\bE Automatically set to a string that describes the operating  sys-
-              tem  on  which  b\bba\bas\bsh\bh is executing.  The default is system-depen-
+       O\bOS\bST\bTY\bYP\bPE\bE Automatically  set to a string that describes the operating sys-
+              tem on which b\bba\bas\bsh\bh is executing.  The  default  is  system-depen-
               dent.
 
        P\bPI\bIP\bPE\bES\bST\bTA\bAT\bTU\bUS\bS
-              An array variable (see A\bAr\brr\bra\bay\bys\bs below) containing a list  of  exit
-              status  values  from the processes in the most-recently-executed
+              An  array  variable (see A\bAr\brr\bra\bay\bys\bs below) containing a list of exit
+              status values from the processes in  the  most-recently-executed
               foreground pipeline (which may contain only a single command).
 
-       P\bPP\bPI\bID\bD   The process ID of the shell's parent.  This  variable  is  read-
+       P\bPP\bPI\bID\bD   The  process  ID  of the shell's parent.  This variable is read-
               only.
 
        P\bPW\bWD\bD    The current working directory as set by the c\bcd\bd command.
@@ -846,27 +847,27 @@ P\bPA\bAR\bRA\bAM\bME\bET\bTE\bER\bRS\bS
        R\bRA\bAN\bND\bDO\bOM\bM Each time this parameter is referenced, a random integer between
               0 and 32767 is generated.  The sequence of random numbers may be
               initialized by assigning a value to R\bRA\bAN\bND\bDO\bOM\bM.  If R\bRA\bAN\bND\bDO\bOM\bM is unset,
-              it loses its special properties,  even  if  it  is  subsequently
+              it  loses  its  special  properties,  even if it is subsequently
               reset.
 
-       R\bRE\bEP\bPL\bLY\bY  Set  to  the line of input read by the r\bre\bea\bad\bd builtin command when
+       R\bRE\bEP\bPL\bLY\bY  Set to the line of input read by the r\bre\bea\bad\bd builtin  command  when
               no arguments are supplied.
 
        S\bSE\bEC\bCO\bON\bND\bDS\bS
-              Each time this parameter is referenced, the  number  of  seconds
-              since  shell  invocation is returned.  If a value is assigned to
-              S\bSE\bEC\bCO\bON\bND\bDS\bS, the value returned upon subsequent  references  is  the
-              number  of seconds since the assignment plus the value assigned.
+              Each  time  this  parameter is referenced, the number of seconds
+              since shell invocation is returned.  If a value is  assigned  to
+              S\bSE\bEC\bCO\bON\bND\bDS\bS,  the  value  returned upon subsequent references is the
+              number of seconds since the assignment plus the value  assigned.
               If S\bSE\bEC\bCO\bON\bND\bDS\bS is unset, it loses its special properties, even if it
               is subsequently reset.
 
        S\bSH\bHE\bEL\bLL\bLO\bOP\bPT\bTS\bS
-              A  colon-separated  list of enabled shell options.  Each word in
-              the list is a valid argument  for  the  -\b-o\bo  option  to  the  s\bse\bet\bt
+              A colon-separated list of enabled shell options.  Each  word  in
+              the  list  is  a  valid  argument  for  the -\b-o\bo option to the s\bse\bet\bt
               builtin command (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 options
-              appearing in S\bSH\bHE\bEL\bLL\bLO\bOP\bPT\bTS\bS are those reported as _\bo_\bn by s\bse\bet\bt  -\b-o\bo.   If
-              this  variable  is  in the environment when b\bba\bas\bsh\bh starts up, each
-              shell option in the list will  be  enabled  before  reading  any
+              appearing  in  S\bSH\bHE\bEL\bLL\bLO\bOP\bPT\bTS\bS are those reported as _\bo_\bn by s\bse\bet\bt -\b-o\bo.  If
+              this variable is in the environment when b\bba\bas\bsh\bh  starts  up,  each
+              shell  option  in  the  list  will be enabled before reading any
               startup files.  This variable is read-only.
 
        S\bSH\bHL\bLV\bVL\bL  Incremented by one each time an instance of b\bba\bas\bsh\bh is started.
@@ -874,204 +875,204 @@ P\bPA\bAR\bRA\bAM\bME\bET\bTE\bER\bRS\bS
        U\bUI\bID\bD    Expands to the user ID of the current user, initialized at shell
               startup.  This variable is readonly.
 
-       The following variables are used by the shell.   In  some  cases,  b\bba\bas\bsh\bh
+       The  following  variables  are  used by the shell.  In some cases, b\bba\bas\bsh\bh
        assigns a default value to a variable; these cases are noted below.
 
        B\bBA\bAS\bSH\bH_\b_E\bEN\bNV\bV
-              If  this parameter is set when b\bba\bas\bsh\bh is executing a shell script,
-              its value is interpreted as a filename  containing  commands  to
+              If this parameter is set when b\bba\bas\bsh\bh is executing a shell  script,
+              its  value  is  interpreted as a filename containing commands to
               initialize the shell, as in _\b~_\b/_\b._\bb_\ba_\bs_\bh_\br_\bc.  The value of B\bBA\bAS\bSH\bH_\b_E\bEN\bNV\bV is
-              subjected to  parameter  expansion,  command  substitution,  and
-              arithmetic  expansion  before  being interpreted as a file name.
+              subjected  to  parameter  expansion,  command  substitution, and
+              arithmetic expansion before being interpreted as  a  file  name.
               P\bPA\bAT\bTH\bH is not used to search for the resultant file name.
-       C\bCD\bDP\bPA\bAT\bTH\bH The search path for the c\bcd\bd command.  This is  a  colon-separated
-              list  of  directories  in  which the shell looks for destination
-              directories specified by the c\bcd\bd  command.   A  sample  value  is
+       C\bCD\bDP\bPA\bAT\bTH\bH The  search  path for the c\bcd\bd command.  This is a colon-separated
+              list of directories in which the  shell  looks  for  destination
+              directories  specified  by  the  c\bcd\bd  command.  A sample value is
               ".:~:/usr".
        C\bCO\bOL\bLU\bUM\bMN\bNS\bS
-              Used  by  the  s\bse\bel\ble\bec\bct\bt  builtin command to determine the terminal
-              width when printing selection  lists.   Automatically  set  upon
+              Used by the s\bse\bel\ble\bec\bct\bt builtin command  to  determine  the  terminal
+              width  when  printing  selection  lists.  Automatically set upon
               receipt of a SIGWINCH.
        C\bCO\bOM\bMP\bPR\bRE\bEP\bPL\bLY\bY
               An array variable from which b\bba\bas\bsh\bh reads the possible completions
-              generated by a shell function invoked by the  programmable  com-
+              generated  by  a shell function invoked by the programmable com-
               pletion facility (see P\bPr\bro\bog\bgr\bra\bam\bmm\bma\bab\bbl\ble\be C\bCo\bom\bmp\bpl\ble\bet\bti\bio\bon\bn below).
-       E\bEM\bMA\bAC\bCS\bS  If  b\bba\bas\bsh\bh  finds  this variable in the environment when the shell
-              starts with value "t", it assumes that the shell is  running  in
+       E\bEM\bMA\bAC\bCS\bS  If b\bba\bas\bsh\bh finds this variable in the environment  when  the  shell
+              starts  with  value "t", it assumes that the shell is running in
               an emacs shell buffer and disables line editing.
        F\bFC\bCE\bED\bDI\bIT\bT The default editor for the f\bfc\bc builtin command.
        F\bFI\bIG\bGN\bNO\bOR\bRE\bE
-              A  colon-separated  list  of  suffixes to ignore when performing
+              A colon-separated list of suffixes  to  ignore  when  performing
               filename completion (see R\bRE\bEA\bAD\bDL\bLI\bIN\bNE\bE below).  A filename whose suf-
-              fix  matches  one of the entries in F\bFI\bIG\bGN\bNO\bOR\bRE\bE is excluded from the
+              fix matches one of the entries in F\bFI\bIG\bGN\bNO\bOR\bRE\bE is excluded  from  the
               list of matched filenames.  A sample value is ".o:~".
        G\bGL\bLO\bOB\bBI\bIG\bGN\bNO\bOR\bRE\bE
               A colon-separated list of patterns defining the set of filenames
               to be ignored by pathname expansion.  If a filename matched by a
-              pathname expansion pattern also matches one of the  patterns  in
+              pathname  expansion  pattern also matches one of the patterns in
               G\bGL\bLO\bOB\bBI\bIG\bGN\bNO\bOR\bRE\bE, it is removed from the list of matches.
        H\bHI\bIS\bST\bTC\bCO\bON\bNT\bTR\bRO\bOL\bL
-              A  colon-separated  list  of values controlling how commands are
-              saved on the history list.   If  the  list  of  values  includes
-              _\bi_\bg_\bn_\bo_\br_\be_\bs_\bp_\ba_\bc_\be,  lines  which  begin with a s\bsp\bpa\bac\bce\be character are not
-              saved in the history list.  A value of _\bi_\bg_\bn_\bo_\br_\be_\bd_\bu_\bp_\bs  causes  lines
+              A colon-separated list of values controlling  how  commands  are
+              saved  on  the  history  list.   If  the list of values includes
+              _\bi_\bg_\bn_\bo_\br_\be_\bs_\bp_\ba_\bc_\be, lines which begin with a s\bsp\bpa\bac\bce\be  character  are  not
+              saved  in  the history list.  A value of _\bi_\bg_\bn_\bo_\br_\be_\bd_\bu_\bp_\bs causes lines
               matching the previous history entry to not be saved.  A value of
               _\bi_\bg_\bn_\bo_\br_\be_\bb_\bo_\bt_\bh is shorthand for _\bi_\bg_\bn_\bo_\br_\be_\bs_\bp_\ba_\bc_\be and _\bi_\bg_\bn_\bo_\br_\be_\bd_\bu_\bp_\bs.  A value
               of _\be_\br_\ba_\bs_\be_\bd_\bu_\bp_\bs causes all previous lines matching the current line
-              to be removed from the history list before that line  is  saved.
-              Any  value  not in the above list is ignored.  If H\bHI\bIS\bST\bTC\bCO\bON\bNT\bTR\bRO\bOL\bL is
-              unset, or does not include a valid value, all lines read by  the
+              to  be  removed from the history list before that line is saved.
+              Any value not in the above list is ignored.  If  H\bHI\bIS\bST\bTC\bCO\bON\bNT\bTR\bRO\bOL\b is
+              unset,  or does not include a valid value, all lines read by the
               shell parser are saved on the history list, subject to the value
-              of H\bHI\bIS\bST\bTI\bIG\bGN\bNO\bOR\bRE\bE.  The second and subsequent lines of a  multi-line
-              compound  command  are  not tested, and are added to the history
+              of  H\bHI\bIS\bST\bTI\bIG\bGN\bNO\bOR\bRE\bE.  The second and subsequent lines of a multi-line
+              compound command are not tested, and are added  to  the  history
               regardless of the value of H\bHI\bIS\bST\bTC\bCO\bON\bNT\bTR\bRO\bOL\bL.
        H\bHI\bIS\bST\bTF\bFI\bIL\bLE\bE
               The name of the file in which command history is saved (see H\bHI\bIS\bS-\b-
-              T\bTO\bOR\bRY\b below).   The default value is _\b~_\b/_\b._\bb_\ba_\bs_\bh_\b__\bh_\bi_\bs_\bt_\bo_\br_\by.  If unset,
-              the command history is  not  saved  when  an  interactive  shell
+              T\bTO\bOR\bRY\bbelow).  The default value is _\b~_\b/_\b._\bb_\ba_\bs_\bh_\b__\bh_\bi_\bs_\bt_\bo_\br_\by.   If  unset,
+              the  command  history  is  not  saved  when an interactive shell
               exits.
        H\bHI\bIS\bST\bTF\bFI\bIL\bLE\bES\bSI\bIZ\bZE\bE
               The maximum number of lines contained in the history file.  When
-              this variable is assigned a value, the  history  file  is  trun-
-              cated,  if necessary, by removing the oldest entries, to contain
-              no more than that number of lines.  The default  value  is  500.
+              this  variable  is  assigned  a value, the history file is trun-
+              cated, if necessary, by removing the oldest entries, to  contain
+              no  more  than  that number of lines.  The default value is 500.
               The history file is also truncated to this size after writing it
               when an interactive shell exits.
        H\bHI\bIS\bST\bTI\bIG\bGN\bNO\bOR\bRE\bE
-              A colon-separated list of patterns used to decide which  command
-              lines  should  be  saved  on  the history list.  Each pattern is
-              anchored at the beginning of the line and must  match  the  com-
-              plete  line  (no  implicit  `*\b*'  is  appended).  Each pattern is
-              tested against the line after the checks specified  by  H\bHI\bIS\bST\bTC\bCO\bON\bN-\b-
-              T\bTR\bRO\bOL\b are  applied.   In  addition  to  the normal shell pattern
+              A  colon-separated list of patterns used to decide which command
+              lines should be saved on the  history  list.   Each  pattern  is
+              anchored  at  the  beginning of the line and must match the com-
+              plete line (no implicit  `*\b*'  is  appended).   Each  pattern  is
+              tested  against  the line after the checks specified by H\bHI\bIS\bST\bTC\bCO\bON\bN-\b-
+              T\bTR\bRO\bOL\bare applied.  In  addition  to  the  normal  shell  pattern
               matching characters, `&\b&' matches the previous history line.  `&\b&'
-              may  be  escaped  using  a  backslash;  the backslash is removed
+              may be escaped using  a  backslash;  the  backslash  is  removed
               before attempting a match.  The second and subsequent lines of a
               multi-line compound command are not tested, and are added to the
               history regardless of the value of H\bHI\bIS\bST\bTI\bIG\bGN\bNO\bOR\bRE\bE.
        H\bHI\bIS\bST\bTS\bSI\bIZ\bZE\bE
-              The number of commands to remember in the command  history  (see
+              The  number  of commands to remember in the command history (see
               H\bHI\bIS\bST\bTO\bOR\bRY\bY below).  The default value is 500.
        H\bHI\bIS\bST\bTT\bTI\bIM\bME\bEF\bFO\bOR\bRM\bMA\bAT\bT
-              If  this  variable  is  set and not null, its value is used as a
+              If this variable is set and not null, its value  is  used  as  a
               format string for _\bs_\bt_\br_\bf_\bt_\bi_\bm_\be(3) to print the time stamp associated
-              with  each  history  entry displayed by the h\bhi\bis\bst\bto\bor\bry\by builtin.  If
-              this variable is set, time stamps are  written  to  the  history
-              file  so they may be preserved across shell sessions.  This uses
-              the history comment character  to  distinguish  timestamps  from
+              with each history entry displayed by the  h\bhi\bis\bst\bto\bor\bry\by  builtin.   If
+              this  variable  is  set,  time stamps are written to the history
+              file so they may be preserved across shell sessions.  This  uses
+              the  history  comment  character  to distinguish timestamps from
               other history lines.
        H\bHO\bOM\bME\bE   The home directory of the current user; the default argument for
               the c\bcd\bd builtin command.  The value of this variable is also used
               when performing tilde expansion.
        H\bHO\bOS\bST\bTF\bFI\bIL\bLE\bE
-              Contains  the  name  of  a file in the same format as _\b/_\be_\bt_\bc_\b/_\bh_\bo_\bs_\bt_\bs
+              Contains the name of a file in the  same  format  as  _\b/_\be_\bt_\bc_\b/_\bh_\bo_\bs_\bt_\bs
               that should be read when the shell needs to complete a hostname.
-              The  list  of possible hostname completions may be changed while
-              the shell is running;  the  next  time  hostname  completion  is
-              attempted  after the value is changed, b\bba\bas\bsh\bh adds the contents of
-              the new file to the existing list.  If H\bHO\bOS\bST\bTF\bFI\bIL\bLE\bE is set, but  has
+              The list of possible hostname completions may be  changed  while
+              the  shell  is  running;  the  next  time hostname completion is
+              attempted after the value is changed, b\bba\bas\bsh\bh adds the contents  of
+              the  new file to the existing list.  If H\bHO\bOS\bST\bTF\bFI\bIL\bLE\bE is set, but has
               no value, b\bba\bas\bsh\bh attempts to read _\b/_\be_\bt_\bc_\b/_\bh_\bo_\bs_\bt_\bs to obtain the list of
-              possible hostname completions.   When  H\bHO\bOS\bST\bTF\bFI\bIL\bLE\bE  is  unset,  the
+              possible  hostname  completions.   When  H\bHO\bOS\bST\bTF\bFI\bIL\bLE\bE  is unset, the
               hostname list is cleared.
-       I\bIF\bFS\bS    The  _\bI_\bn_\bt_\be_\br_\bn_\ba_\bl  _\bF_\bi_\be_\bl_\bd  _\bS_\be_\bp_\ba_\br_\ba_\bt_\bo_\br  that is used for word splitting
-              after expansion and to split lines  into  words  with  the  r\bre\bea\bad\bd
+       I\bIF\bFS\bS    The _\bI_\bn_\bt_\be_\br_\bn_\ba_\bl _\bF_\bi_\be_\bl_\bd _\bS_\be_\bp_\ba_\br_\ba_\bt_\bo_\br that is  used  for  word  splitting
+              after  expansion  and  to  split  lines into words with the r\bre\bea\bad\bd
               builtin  command.   The  default  value  is  ``<space><tab><new-
               line>''.
        I\bIG\bGN\bNO\bOR\bRE\bEE\bEO\bOF\bF
               Controls the action of an interactive shell on receipt of an E\bEO\bOF\bF
               character as the sole input.  If set, the value is the number of
-              consecutive E\bEO\bOF\bF characters which must  be  typed  as  the  first
-              characters  on an input line before b\bba\bas\bsh\bh exits.  If the variable
-              exists but does not have a numeric value, or has no  value,  the
-              default  value  is  10.  If it does not exist, E\bEO\bOF\bF signifies the
+              consecutive  E\bEO\bOF\bF  characters  which  must  be typed as the first
+              characters on an input line before b\bba\bas\bsh\bh exits.  If the  variable
+              exists  but  does not have a numeric value, or has no value, the
+              default value is 10.  If it does not exist,  E\bEO\bOF\bF  signifies  the
               end of input to the shell.
        I\bIN\bNP\bPU\bUT\bTR\bRC\bC
-              The filename for  the  r\bre\bea\bad\bdl\bli\bin\bne\be  startup  file,  overriding  the
+              The  filename  for  the  r\bre\bea\bad\bdl\bli\bin\bne\be  startup  file, overriding the
               default of _\b~_\b/_\b._\bi_\bn_\bp_\bu_\bt_\br_\bc (see R\bRE\bEA\bAD\bDL\bLI\bIN\bNE\bE below).
-       L\bLA\bAN\bNG\bG   Used  to  determine  the  locale  category  for any category not
+       L\bLA\bAN\bNG\bG   Used to determine the  locale  category  for  any  category  not
               specifically selected with a variable starting with L\bLC\bC_\b_.
-       L\bLC\bC_\b_A\bAL\bLL\bL This variable overrides the value of  L\bLA\bAN\bNG\bG  and  any  other  L\bLC\bC_\b_
+       L\bLC\bC_\b_A\bAL\bLL\bL This  variable  overrides  the  value  of L\bLA\bAN\bNG\bG and any other L\bLC\bC_\b_
               variable specifying a locale category.
        L\bLC\bC_\b_C\bCO\bOL\bLL\bLA\bAT\bTE\bE
-              This  variable  determines the collation order used when sorting
-              the results of pathname expansion, and determines  the  behavior
-              of   range   expressions,  equivalence  classes,  and  collating
+              This variable determines the collation order used  when  sorting
+              the  results  of pathname expansion, and determines the behavior
+              of  range  expressions,  equivalence  classes,   and   collating
               sequences within pathname expansion and pattern matching.
        L\bLC\bC_\b_C\bCT\bTY\bYP\bPE\bE
-              This variable determines the interpretation  of  characters  and
-              the  behavior of character classes within pathname expansion and
+              This  variable  determines  the interpretation of characters and
+              the behavior of character classes within pathname expansion  and
               pattern matching.
        L\bLC\bC_\b_M\bME\bES\bSS\bSA\bAG\bGE\bES\bS
-              This variable determines the locale used  to  translate  double-
+              This  variable  determines  the locale used to translate double-
               quoted strings preceded by a $\b$.
        L\bLC\bC_\b_N\bNU\bUM\bME\bER\bRI\bIC\bC
-              This  variable  determines  the  locale category used for number
+              This variable determines the locale  category  used  for  number
               formatting.
-       L\bLI\bIN\bNE\bES\bS  Used by the s\bse\bel\ble\bec\bct\bt  builtin  command  to  determine  the  column
-              length  for  printing  selection  lists.  Automatically set upon
+       L\bLI\bIN\bNE\bES\bS  Used  by  the  s\bse\bel\ble\bec\bct\bt  builtin  command  to determine the column
+              length for printing selection  lists.   Automatically  set  upon
               receipt of a SIGWINCH.
-       M\bMA\bAI\bIL\bL   If this parameter is set to a file name and the  M\bMA\bAI\bIL\bLP\bPA\bAT\bTH\b vari-
+       M\bMA\bAI\bIL\bL   If  this  parameter is set to a file name and the M\bMA\bAI\bIL\bLP\bPA\bAT\bTH\bH vari-
               able is not set, b\bba\bas\bsh\bh informs the user of the arrival of mail in
               the specified file.
        M\bMA\bAI\bIL\bLC\bCH\bHE\bEC\bCK\bK
-              Specifies how often (in seconds)  b\bba\bas\bsh\bh  checks  for  mail.   The
-              default  is  60 seconds.  When it is time to check for mail, the
-              shell does so before displaying the  primary  prompt.   If  this
-              variable  is  unset,  or  set  to  a  value that is not a number
+              Specifies  how  often  (in  seconds)  b\bba\bas\bsh\bh checks for mail.  The
+              default is 60 seconds.  When it is time to check for  mail,  the
+              shell  does  so  before  displaying the primary prompt.  If this
+              variable is unset, or set to  a  value  that  is  not  a  number
               greater than or equal to zero, the shell disables mail checking.
        M\bMA\bAI\bIL\bLP\bPA\bAT\bTH\bH
-              A  colon-separated  list  of  file names to be checked for mail.
+              A colon-separated list of file names to  be  checked  for  mail.
               The message to be printed when mail arrives in a particular file
-              may  be  specified  by separating the file name from the message
+              may be specified by separating the file name  from  the  message
               with a `?'.  When used in the text of the message, $\b$_\b_ expands to
               the name of the current mailfile.  Example:
               M\bMA\bAI\bIL\bLP\bPA\bAT\bTH\bH='/var/mail/bfox?"You  have  mail":~/shell-mail?"$_  has
               mail!"'
-              B\bBa\bas\bsh\bsupplies a default value for this variable, but  the  loca-
-              tion  of  the  user  mail files that it uses is system dependent
+              B\bBa\bas\bsh\b supplies  a default value for this variable, but the loca-
+              tion of the user mail files that it  uses  is  system  dependent
               (e.g., /var/mail/$\b$U\bUS\bSE\bER\bR).
        O\bOP\bPT\bTE\bER\bRR\bR If set to the value 1, b\bba\bas\bsh\bh displays error messages generated by
-              the  g\bge\bet\bto\bop\bpt\bts\bs builtin command (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).
-              O\bOP\bPT\bTE\bER\bRR\bis initialized to 1 each time the shell is invoked  or  a
+              the g\bge\bet\bto\bop\bpt\bts\bs builtin command (see S\bSH\bHE\bEL\bLL\bL B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\b below).
+              O\bOP\bPT\bTE\bER\bRR\b is  initialized to 1 each time the shell is invoked or a
               shell script is executed.
-       P\bPA\bAT\bTH\bH   The  search  path for commands.  It is a colon-separated list of
-              directories in which the shell looks for commands  (see  C\bCO\bOM\bMM\bMA\bAN\bND\bD
-              E\bEX\bXE\bEC\bCU\bUT\bTI\bIO\bON\b below).   A  zero-length (null) directory name in the
+       P\bPA\bAT\bTH\bH   The search path for commands.  It is a colon-separated  list  of
+              directories  in  which the shell looks for commands (see C\bCO\bOM\bMM\bMA\bAN\bND\bD
+              E\bEX\bXE\bEC\bCU\bUT\bTI\bIO\bON\bbelow).  A zero-length (null) directory  name  in  the
               value of P\bPA\bAT\bTH\bH indicates the current directory.  A null directory
-              name  may  appear  as  two  adjacent colons, or as an initial or
-              trailing colon.  The default path is  system-dependent,  and  is
-              set  by  the administrator who installs b\bba\bas\bsh\bh.  A common value is
+              name may appear as two adjacent colons,  or  as  an  initial  or
+              trailing  colon.   The  default path is system-dependent, and is
+              set by the administrator who installs b\bba\bas\bsh\bh.  A common  value  is
               ``/usr/gnu/bin:/usr/local/bin:/usr/ucb:/bin:/usr/bin''.
        P\bPO\bOS\bSI\bIX\bXL\bLY\bY_\b_C\bCO\bOR\bRR\bRE\bEC\bCT\bT
-              If this variable is in the environment  when  b\bba\bas\bsh\bh  starts,  the
-              shell  enters _\bp_\bo_\bs_\bi_\bx _\bm_\bo_\bd_\be before reading the startup files, as if
-              the -\b--\b-p\bpo\bos\bsi\bix\bx invocation option had been supplied.  If it  is  set
-              while  the  shell is running, b\bba\bas\bsh\bh enables _\bp_\bo_\bs_\bi_\bx _\bm_\bo_\bd_\be, as if the
+              If  this  variable  is  in the environment when b\bba\bas\bsh\bh starts, the
+              shell enters _\bp_\bo_\bs_\bi_\bx _\bm_\bo_\bd_\be before reading the startup files, as  if
+              the  -\b--\b-p\bpo\bos\bsi\bix\bx  invocation option had been supplied.  If it is set
+              while the shell is running, b\bba\bas\bsh\bh enables _\bp_\bo_\bs_\bi_\bx _\bm_\bo_\bd_\be, as  if  the
               command _\bs_\be_\bt _\b-_\bo _\bp_\bo_\bs_\bi_\bx had been executed.
        P\bPR\bRO\bOM\bMP\bPT\bT_\b_C\bCO\bOM\bMM\bMA\bAN\bND\bD
               If set, the value is executed as a command prior to issuing each
               primary prompt.
-       P\bPS\bS1\b1    The  value  of  this parameter is expanded (see P\bPR\bRO\bOM\bMP\bPT\bTI\bIN\bNG\bG below)
-              and used as the primary prompt string.   The  default  value  is
+       P\bPS\bS1\b1    The value of this parameter is expanded  (see  P\bPR\bRO\bOM\bMP\bPT\bTI\bIN\bNG\b below)
+              and  used  as  the  primary prompt string.  The default value is
               ``\\b\s\bs-\b-\\b\v\bv\\b\$\b$ ''.
-       P\bPS\bS2\b2    The  value of this parameter is expanded as with P\bPS\bS1\b1 and used as
+       P\bPS\bS2\b2    The value of this parameter is expanded as with P\bPS\bS1\b1 and used  as
               the secondary prompt string.  The default is ``>\b> ''.
        P\bPS\bS3\b3    The value of this parameter is used as the prompt for the s\bse\bel\ble\bec\bct\bt
               command (see S\bSH\bHE\bEL\bLL\bL G\bGR\bRA\bAM\bMM\bMA\bAR\bR above).
-       P\bPS\bS4\b4    The  value  of  this  parameter  is expanded as with P\bPS\bS1\b1 and the
-              value is printed before each command  b\bba\bas\bsh\bh  displays  during  an
-              execution  trace.  The first character of P\bPS\bS4\b4 is replicated mul-
-              tiple times, as necessary, to indicate multiple levels of  indi-
+       P\bPS\bS4\b4    The value of this parameter is expanded  as  with  P\bPS\bS1\b1  and  the
+              value  is  printed  before  each command b\bba\bas\bsh\bh displays during an
+              execution trace.  The first character of P\bPS\bS4\b4 is replicated  mul-
+              tiple  times, as necessary, to indicate multiple levels of indi-
               rection.  The default is ``+\b+ ''.
        S\bSH\bHE\bEL\bLL\bL  The full pathname to the shell is kept in this environment vari-
-              able.  If it is not set when the shell starts, b\bba\bas\bsh\bh  assigns  to
+              able.   If  it is not set when the shell starts, b\bba\bas\bsh\bh assigns to
               it the full pathname of the current user's login shell.
        T\bTI\bIM\bME\bEF\bFO\bOR\bRM\bMA\bAT\bT
-              The  value of this parameter is used as a format string specify-
-              ing how the timing information for pipelines prefixed  with  the
-              t\bti\bim\bme\b reserved word should be displayed.  The %\b% character intro-
-              duces an escape sequence that is expanded to  a  time  value  or
-              other  information.  The escape sequences and their meanings are
+              The value of this parameter is used as a format string  specify-
+              ing  how  the timing information for pipelines prefixed with the
+              t\bti\bim\bme\breserved word should be displayed.  The %\b% character  intro-
+              duces  an  escape  sequence  that is expanded to a time value or
+              other information.  The escape sequences and their meanings  are
               as follows; the braces denote optional portions.
               %\b%%\b%        A literal %\b%.
               %\b%[\b[_\bp]\b][\b[l\bl]\b]R\bR  The elapsed time in seconds.
@@ -1079,169 +1080,169 @@ P\bPA\bAR\bRA\bAM\bME\bET\bTE\bER\bRS\bS
               %\b%[\b[_\bp]\b][\b[l\bl]\b]S\bS  The number of CPU seconds spent in system mode.
               %\b%P\bP        The CPU percentage, computed as (%U + %S) / %R.
 
-              The optional _\bp is a digit specifying the _\bp_\br_\be_\bc_\bi_\bs_\bi_\bo_\bn,  the  number
+              The  optional  _\bp is a digit specifying the _\bp_\br_\be_\bc_\bi_\bs_\bi_\bo_\bn, the number
               of fractional digits after a decimal point.  A value of 0 causes
               no decimal point or fraction to be output.  At most three places
-              after  the  decimal  point may be specified; values of _\bp greater
-              than 3 are changed to 3.  If _\bp is not specified, the value 3  is
+              after the decimal point may be specified; values  of  _\b greater
+              than  3 are changed to 3.  If _\bp is not specified, the value 3 is
               used.
 
-              The  optional l\bl specifies a longer format, including minutes, of
-              the form _\bM_\bMm_\bS_\bS._\bF_\bFs.  The value of _\bp determines  whether  or  not
+              The optional l\bl specifies a longer format, including minutes,  of
+              the  form  _\bM_\bMm_\bS_\bS._\bF_\bFs.   The value of _\bp determines whether or not
               the fraction is included.
 
-              If  this  variable  is not set, b\bba\bas\bsh\bh acts as if it had the value
-              $\b$'\b'\\b\n\bnr\bre\bea\bal\bl\\b\t\bt%\b%3\b3l\blR\bR\\b\n\bnu\bus\bse\ber\br\\b\t\bt%\b%3\b3l\blU\bU\\b\n\bns\bsy\bys\bs%\b%3\b3l\blS\bS'\b'.  If the value is null,  no
-              timing  information  is  displayed.  A trailing newline is added
+              If this variable is not set, b\bba\bas\bsh\bh acts as if it  had  the  value
+              $\b$'\b'\\b\n\bnr\bre\bea\bal\bl\\b\t\bt%\b%3\b3l\blR\bR\\b\n\bnu\bus\bse\ber\br\\b\t\bt%\b%3\b3l\blU\bU\\b\n\bns\bsy\bys\bs%\b%3\b3l\blS\bS'\b'.   If the value is null, no
+              timing information is displayed.  A trailing  newline  is  added
               when the format string is displayed.
 
-       T\bTM\bMO\bOU\bUT\bT  If set to a value greater than zero, T\bTM\bMO\bOU\bUT\bT  is  treated  as  the
+       T\bTM\bMO\bOU\bUT\bT  If  set  to  a  value greater than zero, T\bTM\bMO\bOU\bUT\bT is treated as the
               default timeout for the r\bre\bea\bad\bd builtin.  The s\bse\bel\ble\bec\bct\bt command termi-
               nates if input does not arrive after T\bTM\bMO\bOU\bUT\bT seconds when input is
-              coming  from  a terminal.  In an interactive shell, the value is
-              interpreted as the number of seconds to  wait  for  input  after
-              issuing  the  primary prompt.  B\bBa\bas\bsh\bh terminates after waiting for
+              coming from a terminal.  In an interactive shell, the  value  is
+              interpreted  as  the  number  of seconds to wait for input after
+              issuing the primary prompt.  B\bBa\bas\bsh\bh terminates after  waiting  for
               that number of seconds if input does not arrive.
 
-       T\bTM\bMP\bPD\bDI\bIR\bR If set, B\bBa\bas\bsh\bh uses its value as the name of a directory in  which
+       T\bTM\bMP\bPD\bDI\bIR\bR If  set, B\bBa\bas\bsh\bh uses its value as the name of a directory in which
               B\bBa\bas\bsh\bh creates temporary files for the shell's use.
 
        a\bau\but\bto\bo_\b_r\bre\bes\bsu\bum\bme\be
               This variable controls how the shell interacts with the user and
-              job control.  If this variable is set, single word  simple  com-
+              job  control.   If this variable is set, single word simple com-
               mands without redirections are treated as candidates for resump-
               tion of an existing stopped job.  There is no ambiguity allowed;
-              if  there  is more than one job beginning with the string typed,
-              the job most recently accessed  is  selected.   The  _\bn_\ba_\bm_\be  of  a
-              stopped  job, in this context, is the command line used to start
-              it.  If set to the value _\be_\bx_\ba_\bc_\bt, the string supplied  must  match
-              the  name  of  a  stopped  job exactly; if set to _\bs_\bu_\bb_\bs_\bt_\br_\bi_\bn_\bg, the
-              string supplied needs to match a substring  of  the  name  of  a
-              stopped  job.  The _\bs_\bu_\bb_\bs_\bt_\br_\bi_\bn_\bg value provides functionality analo-
-              gous to the %\b%?\b?  job identifier (see J\bJO\bOB\bB C\bCO\bON\bNT\bTR\bRO\bOL\bL below).  If  set
-              to  any  other  value, the supplied string must be a prefix of a
+              if there is more than one job beginning with the  string  typed,
+              the  job  most  recently  accessed  is  selected.  The _\bn_\ba_\bm_\be of a
+              stopped job, in this context, is the command line used to  start
+              it.   If  set to the value _\be_\bx_\ba_\bc_\bt, the string supplied must match
+              the name of a stopped job exactly;  if  set  to  _\bs_\bu_\bb_\bs_\bt_\br_\bi_\bn_\bg,  the
+              string  supplied  needs  to  match  a substring of the name of a
+              stopped job.  The _\bs_\bu_\bb_\bs_\bt_\br_\bi_\bn_\bg value provides functionality  analo-
+              gous  to the %\b%?\b?  job identifier (see J\bJO\bOB\bB C\bCO\bON\bNT\bTR\bRO\bOL\bL below).  If set
+              to any other value, the supplied string must be a  prefix  of  a
               stopped job's name; this provides functionality analogous to the
               %\b%_\bs_\bt_\br_\bi_\bn_\bg job identifier.
 
        h\bhi\bis\bst\btc\bch\bha\bar\brs\bs
-              The  two or three characters which control history expansion and
+              The two or three characters which control history expansion  and
               tokenization (see H\bHI\bIS\bST\bTO\bOR\bRY\bY E\bEX\bXP\bPA\bAN\bNS\bSI\bIO\bON\bN below).  The first character
-              is  the _\bh_\bi_\bs_\bt_\bo_\br_\by _\be_\bx_\bp_\ba_\bn_\bs_\bi_\bo_\bn character, the character which signals
-              the start of a history  expansion,  normally  `!\b!'.   The  second
-              character  is the _\bq_\bu_\bi_\bc_\bk _\bs_\bu_\bb_\bs_\bt_\bi_\bt_\bu_\bt_\bi_\bo_\bn character, which is used as
-              shorthand for re-running the previous command  entered,  substi-
-              tuting  one  string  for another in the command.  The default is
-              `^\b^'.  The optional third character is the character which  indi-
-              cates  that the remainder of the line is a comment when found as
-              the first character of a word, normally `#\b#'.  The  history  com-
+              is the _\bh_\bi_\bs_\bt_\bo_\br_\by _\be_\bx_\bp_\ba_\bn_\bs_\bi_\bo_\bn character, the character which  signals
+              the  start  of  a  history  expansion, normally `!\b!'.  The second
+              character is the _\bq_\bu_\bi_\bc_\bk _\bs_\bu_\bb_\bs_\bt_\bi_\bt_\bu_\bt_\bi_\bo_\bn character, which is used  as
+              shorthand  for  re-running the previous command entered, substi-
+              tuting one string for another in the command.   The  default  is
+              `^\b^'.   The optional third character is the character which indi-
+              cates that the remainder of the line is a comment when found  as
+              the  first  character of a word, normally `#\b#'.  The history com-
               ment character causes history substitution to be skipped for the
-              remaining words on the line.  It does not necessarily cause  the
+              remaining  words on the line.  It does not necessarily cause the
               shell parser to treat the rest of the line as a comment.
 
    A\bAr\brr\bra\bay\bys\bs
-       B\bBa\bas\bsh\b provides  one-dimensional  array  variables.  Any variable may be
+       B\bBa\bas\bsh\bprovides one-dimensional array variables.   Any  variable  may  be
        used as an array; the d\bde\bec\bcl\bla\bar\bre\be builtin will explicitly declare an array.
-       There  is no maximum limit on the size of an array, nor any requirement
-       that members be indexed or assigned contiguously.  Arrays  are  indexed
+       There is no maximum limit on the size of an array, nor any  requirement
+       that  members  be indexed or assigned contiguously.  Arrays are indexed
        using integers and are zero-based.
 
-       An  array is created automatically if any variable is assigned to using
-       the syntax _\bn_\ba_\bm_\be[_\bs_\bu_\bb_\bs_\bc_\br_\bi_\bp_\bt]=_\bv_\ba_\bl_\bu_\be.   The  _\bs_\bu_\bb_\bs_\bc_\br_\bi_\bp_\bt  is  treated  as  an
-       arithmetic  expression  that  must evaluate to a number greater than or
-       equal to zero.  To explicitly declare an array,  use  d\bde\bec\bcl\bla\bar\bre\be  -\b-a\b _\bn_\ba_\bm_\be
+       An array is created automatically if any variable is assigned to  using
+       the  syntax  _\bn_\ba_\bm_\be[_\bs_\bu_\bb_\bs_\bc_\br_\bi_\bp_\bt]=_\bv_\ba_\bl_\bu_\be.   The  _\bs_\bu_\bb_\bs_\bc_\br_\bi_\bp_\bt  is  treated as an
+       arithmetic expression that must evaluate to a number  greater  than  or
+       equal  to  zero.   To  explicitly declare an array, use d\bde\bec\bcl\bla\bar\bre\be -\b-a\ba _\bn_\ba_\bm_\be
        (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).  d\bde\bec\bcl\bla\bar\bre\be -\b-a\ba _\bn_\ba_\bm_\be[\b[_\bs_\bu_\bb_\bs_\bc_\br_\bi_\bp_\bt]\b] is also
        accepted; the _\bs_\bu_\bb_\bs_\bc_\br_\bi_\bp_\bt is ignored.  Attributes may be specified for an
        array variable using the d\bde\bec\bcl\bla\bar\bre\be and r\bre\bea\bad\bdo\bon\bnl\bly\by builtins.  Each attribute
        applies to all members of an array.
 
-       Arrays  are  assigned  to  using  compound  assignments  of  the   form
-       _\bn_\ba_\bm_\be=(\b(value_\b ...  value_\bn)\b),  where  each  _\bv_\ba_\bl_\bu_\be  is  of  the form [_\bs_\bu_\bb_\b-
+       Arrays   are  assigned  to  using  compound  assignments  of  the  form
+       _\bn_\ba_\bm_\be=(\b(value_\b... value_\bn)\b),  where  each  _\bv_\ba_\bl_\bu_\be  is  of  the  form  [_\bs_\bu_\bb_\b-
        _\bs_\bc_\br_\bi_\bp_\bt]=_\bs_\bt_\br_\bi_\bn_\bg.  Only _\bs_\bt_\br_\bi_\bn_\bg is required.  If the optional brackets and
-       subscript  are supplied, that index is assigned to; otherwise the index
-       of the element assigned is the last index assigned to by the  statement
-       plus  one.   Indexing  starts at zero.  This syntax is also accepted by
-       the d\bde\bec\bcl\bla\bar\bre\be builtin.  Individual array  elements  may  be  assigned  to
+       subscript are supplied, that index is assigned to; otherwise the  index
+       of  the element assigned is the last index assigned to by the statement
+       plus one.  Indexing starts at zero.  This syntax is  also  accepted  by
+       the  d\bde\bec\bcl\bla\bar\bre\be  builtin.   Individual  array  elements may be assigned to
        using the _\bn_\ba_\bm_\be[_\bs_\bu_\bb_\bs_\bc_\br_\bi_\bp_\bt]=_\bv_\ba_\bl_\bu_\be syntax introduced above.
 
-       Any  element  of  an  array may be referenced using ${_\bn_\ba_\bm_\be[_\bs_\bu_\bb_\bs_\bc_\br_\bi_\bp_\bt]}.
+       Any element of an array may  be  referenced  using  ${_\bn_\ba_\bm_\be[_\bs_\bu_\bb_\bs_\bc_\br_\bi_\bp_\bt]}.
        The braces are required to avoid conflicts with pathname expansion.  If
-       _\bs_\bu_\bb_\bs_\bc_\br_\bi_\bp_\b is  @\b@  or *\b*, the word expands to all members of _\bn_\ba_\bm_\be.  These
-       subscripts differ only when the word appears within double quotes.   If
+       _\bs_\bu_\bb_\bs_\bc_\br_\bi_\bp_\bis @\b@ or *\b*, the word expands to all members  of  _\bn_\ba_\bm_\be.   These
+       subscripts  differ only when the word appears within double quotes.  If
        the word is double-quoted, ${_\bn_\ba_\bm_\be[*]} expands to a single word with the
-       value of each array member separated by the first character of the  I\bIF\bFS\bS
+       value  of each array member separated by the first character of the I\bIF\bFS\bS
        special variable, and ${_\bn_\ba_\bm_\be[@]} expands each element of _\bn_\ba_\bm_\be to a sep-
-       arate word.  When there are no array  members,  ${_\bn_\ba_\bm_\be[@]}  expands  to
-       nothing.   If  the  double-quoted  expansion  occurs within a word, the
-       expansion of the first parameter is joined with the beginning  part  of
-       the  original  word,  and the expansion of the last parameter is joined
-       with the last part of the original word.   This  is  analogous  to  the
-       expansion  of  the  special  parameters *\b* and @\b@ (see S\bSp\bpe\bec\bci\bia\bal\bl P\bPa\bar\bra\bam\bme\bet\bte\ber\brs\bs
-       above).  ${#_\bn_\ba_\bm_\be[_\bs_\bu_\bb_\bs_\bc_\br_\bi_\bp_\bt]}  expands  to  the  length  of  ${_\bn_\ba_\bm_\be[_\bs_\bu_\bb_\b-
-       _\bs_\bc_\br_\bi_\bp_\bt]}.   If _\bs_\bu_\bb_\bs_\bc_\br_\bi_\bp_\bt is *\b* or @\b@, the expansion is the number of ele-
-       ments in the array.  Referencing an array variable without a  subscript
+       arate  word.   When  there  are no array members, ${_\bn_\ba_\bm_\be[@]} expands to
+       nothing.  If the double-quoted expansion  occurs  within  a  word,  the
+       expansion  of  the first parameter is joined with the beginning part of
+       the original word, and the expansion of the last  parameter  is  joined
+       with  the  last  part  of  the original word.  This is analogous to the
+       expansion of the special parameters *\b* and  @\b@  (see  S\bSp\bpe\bec\bci\bia\bal\b P\bPa\bar\bra\bam\bme\bet\bte\ber\brs\bs
+       above).   ${#_\bn_\ba_\bm_\be[_\bs_\bu_\bb_\bs_\bc_\br_\bi_\bp_\bt]}  expands  to  the  length  of ${_\bn_\ba_\bm_\be[_\bs_\bu_\bb_\b-
+       _\bs_\bc_\br_\bi_\bp_\bt]}.  If _\bs_\bu_\bb_\bs_\bc_\br_\bi_\bp_\bt is *\b* or @\b@, the expansion is the number of  ele-
+       ments  in the array.  Referencing an array variable without a subscript
        is equivalent to referencing element zero.
 
-       The  u\bun\bns\bse\bet\bt  builtin  is  used to destroy arrays.  u\bun\bns\bse\bet\bt _\bn_\ba_\bm_\be[_\bs_\bu_\bb_\bs_\bc_\br_\bi_\bp_\bt]
-       destroys the array element at index _\bs_\bu_\bb_\bs_\bc_\br_\bi_\bp_\bt.  Care must be  taken  to
+       The u\bun\bns\bse\bet\bt builtin is used to  destroy  arrays.   u\bun\bns\bse\bet\b _\bn_\ba_\bm_\be[_\bs_\bu_\bb_\bs_\bc_\br_\bi_\bp_\bt]
+       destroys  the  array element at index _\bs_\bu_\bb_\bs_\bc_\br_\bi_\bp_\bt.  Care must be taken to
        avoid unwanted side effects caused by filename generation.  u\bun\bns\bse\bet\bt _\bn_\ba_\bm_\be,
-       where _\bn_\ba_\bm_\be is an array, or u\bun\bns\bse\bet\bt _\bn_\ba_\bm_\be[_\bs_\bu_\bb_\bs_\bc_\br_\bi_\bp_\bt], where _\bs_\bu_\bb_\bs_\bc_\br_\bi_\bp_\bt is  *\b*
+       where  _\bn_\ba_\bm_\be is an array, or u\bun\bns\bse\bet\bt _\bn_\ba_\bm_\be[_\bs_\bu_\bb_\bs_\bc_\br_\bi_\bp_\bt], where _\bs_\bu_\bb_\bs_\bc_\br_\bi_\bp_\bt is *\b*
        or @\b@, removes the entire array.
 
-       The  d\bde\bec\bcl\bla\bar\bre\be,  l\blo\boc\bca\bal\bl,  and r\bre\bea\bad\bdo\bon\bnl\bly\by builtins each accept a -\b-a\ba option to
-       specify an array.  The r\bre\bea\bad\bd builtin accepts a -\b-a\ba  option  to  assign  a
-       list  of  words  read from the standard input to an array.  The s\bse\bet\bt and
-       d\bde\bec\bcl\bla\bar\bre\bbuiltins display array values in a way that allows them  to  be
+       The d\bde\bec\bcl\bla\bar\bre\be, l\blo\boc\bca\bal\bl, and r\bre\bea\bad\bdo\bon\bnl\bly\by builtins each accept a  -\b-a\ba  option  to
+       specify  an  array.   The  r\bre\bea\bad\bd builtin accepts a -\b-a\ba option to assign a
+       list of words read from the standard input to an array.   The  s\bse\bet\b and
+       d\bde\bec\bcl\bla\bar\bre\b builtins  display array values in a way that allows them to be
        reused as assignments.
 
 E\bEX\bXP\bPA\bAN\bNS\bSI\bIO\bON\bN
        Expansion is performed on the command line after it has been split into
-       words.  There are seven kinds of expansion performed: _\bb_\br_\ba_\bc_\b _\be_\bx_\bp_\ba_\bn_\bs_\bi_\bo_\bn,
-       _\bt_\bi_\bl_\bd_\b _\be_\bx_\bp_\ba_\bn_\bs_\bi_\bo_\bn,  _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br  _\ba_\bn_\bd _\bv_\ba_\br_\bi_\ba_\bb_\bl_\be _\be_\bx_\bp_\ba_\bn_\bs_\bi_\bo_\bn, _\bc_\bo_\bm_\bm_\ba_\bn_\bd _\bs_\bu_\bb_\bs_\bt_\bi_\bt_\bu_\b-
+       words.   There are seven kinds of expansion performed: _\bb_\br_\ba_\bc_\be _\be_\bx_\bp_\ba_\bn_\bs_\bi_\bo_\bn,
+       _\bt_\bi_\bl_\bd_\b_\be_\bx_\bp_\ba_\bn_\bs_\bi_\bo_\bn, _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br _\ba_\bn_\bd _\bv_\ba_\br_\bi_\ba_\bb_\bl_\be  _\be_\bx_\bp_\ba_\bn_\bs_\bi_\bo_\bn,  _\bc_\bo_\bm_\bm_\ba_\bn_\b _\bs_\bu_\bb_\bs_\bt_\bi_\bt_\bu_\b-
        _\bt_\bi_\bo_\bn, _\ba_\br_\bi_\bt_\bh_\bm_\be_\bt_\bi_\bc _\be_\bx_\bp_\ba_\bn_\bs_\bi_\bo_\bn, _\bw_\bo_\br_\bd _\bs_\bp_\bl_\bi_\bt_\bt_\bi_\bn_\bg, and _\bp_\ba_\bt_\bh_\bn_\ba_\bm_\be _\be_\bx_\bp_\ba_\bn_\bs_\bi_\bo_\bn.
 
-       The order of expansions is: brace expansion, tilde  expansion,  parame-
-       ter,  variable  and arithmetic expansion and command substitution (done
+       The  order  of expansions is: brace expansion, tilde expansion, parame-
+       ter, variable and arithmetic expansion and command  substitution  (done
        in a left-to-right fashion), word splitting, and pathname expansion.
 
        On systems that can support it, there is an additional expansion avail-
        able: _\bp_\br_\bo_\bc_\be_\bs_\bs _\bs_\bu_\bb_\bs_\bt_\bi_\bt_\bu_\bt_\bi_\bo_\bn.
 
        Only brace expansion, word splitting, and pathname expansion can change
-       the number of words of the expansion; other expansions expand a  single
-       word  to a single word.  The only exceptions to this are the expansions
+       the  number of words of the expansion; other expansions expand a single
+       word to a single word.  The only exceptions to this are the  expansions
        of "$\b$@\b@" and "$\b${\b{_\bn_\ba_\bm_\be[\b[@\b@]\b]}\b}" as explained above (see P\bPA\bAR\bRA\bAM\bME\bET\bTE\bER\bRS\bS).
 
    B\bBr\bra\bac\bce\be E\bEx\bxp\bpa\ban\bns\bsi\bio\bon\bn
        _\bB_\br_\ba_\bc_\be _\be_\bx_\bp_\ba_\bn_\bs_\bi_\bo_\bn is a mechanism by which arbitrary strings may be gener-
-       ated.   This  mechanism is similar to _\bp_\ba_\bt_\bh_\bn_\ba_\bm_\be _\be_\bx_\bp_\ba_\bn_\bs_\bi_\bo_\bn, but the file-
+       ated.  This mechanism is similar to _\bp_\ba_\bt_\bh_\bn_\ba_\bm_\be _\be_\bx_\bp_\ba_\bn_\bs_\bi_\bo_\bn, but  the  file-
        names generated need not exist.  Patterns to be brace expanded take the
        form of an optional _\bp_\br_\be_\ba_\bm_\bb_\bl_\be, followed by either a series of comma-sep-
-       arated strings or a sequence expression between a pair of braces,  fol-
-       lowed  by  an  optional  _\bp_\bo_\bs_\bt_\bs_\bc_\br_\bi_\bp_\bt.   The preamble is prefixed to each
+       arated  strings or a sequence expression between a pair of braces, fol-
+       lowed by an optional _\bp_\bo_\bs_\bt_\bs_\bc_\br_\bi_\bp_\bt.  The  preamble  is  prefixed  to  each
        string contained within the braces, and the postscript is then appended
        to each resulting string, expanding left to right.
 
-       Brace  expansions  may  be nested.  The results of each expanded string
-       are not sorted;  left  to  right  order  is  preserved.   For  example,
+       Brace expansions may be nested.  The results of  each  expanded  string
+       are  not  sorted;  left  to  right  order  is  preserved.  For example,
        a{\b{d,c,b}\b}e expands into `ade ace abe'.
 
-       A  sequence  expression takes the form {\b{_\bx.\b..\b._\by}\b}, where _\bx and _\by are either
+       A sequence expression takes the form {\b{_\bx.\b..\b._\by}\b}, where _\bx and _\by  are  either
        integers or single characters.  When integers are supplied, the expres-
-       sion  expands  to each number between _\bx and _\by, inclusive.  When charac-
-       ters are supplied, the expression expands  to  each  character  lexico-
+       sion expands to each number between _\bx and _\by, inclusive.   When  charac-
+       ters  are  supplied,  the  expression expands to each character lexico-
        graphically between _\bx and _\by, inclusive.  Note that both _\bx and _\by must be
        of the same type.
 
        Brace expansion is performed before any other expansions, and any char-
-       acters  special to other expansions are preserved in the result.  It is
-       strictly textual.  B\bBa\bas\bsh\bh does not apply any syntactic interpretation  to
+       acters special to other expansions are preserved in the result.  It  is
+       strictly  textual.  B\bBa\bas\bsh\bh does not apply any syntactic interpretation to
        the context of the expansion or the text between the braces.
 
-       A  correctly-formed  brace  expansion must contain unquoted opening and
-       closing braces, and at least one unquoted comma  or  a  valid  sequence
-       expression.   Any incorrectly formed brace expansion is left unchanged.
+       A correctly-formed brace expansion must contain  unquoted  opening  and
+       closing  braces,  and  at  least one unquoted comma or a valid sequence
+       expression.  Any incorrectly formed brace expansion is left  unchanged.
        A {\b{ or ,\b, may be quoted with a backslash to prevent its being considered
-       part  of  a brace expression.  To avoid conflicts with parameter expan-
+       part of a brace expression.  To avoid conflicts with  parameter  expan-
        sion, the string $\b${\b{ is not considered eligible for brace expansion.
 
        This construct is typically used as shorthand when the common prefix of
@@ -1251,36 +1252,36 @@ E\bEX\bXP\bPA\bAN\bNS\bSI\bIO\bON\bN
        or
               chown root /usr/{ucb/{ex,edit},lib/{ex?.?*,how_ex}}
 
-       Brace  expansion  introduces  a  slight incompatibility with historical
-       versions of s\bsh\bh.  s\bsh\bh does not treat opening or closing braces  specially
-       when  they  appear as part of a word, and preserves them in the output.
-       B\bBa\bas\bsh\bremoves braces from words as a  consequence  of  brace  expansion.
-       For  example,  a word entered to s\bsh\bh as _\bf_\bi_\bl_\be_\b{_\b1_\b,_\b2_\b} appears identically in
-       the output.  The same word is output as _\bf_\bi_\bl_\be_\b1 _\bf_\bi_\bl_\be_\b2 after expansion  by
-       b\bba\bas\bsh\bh.   If strict compatibility with s\bsh\bh is desired, start b\bba\bas\bsh\bh with the
+       Brace expansion introduces a  slight  incompatibility  with  historical
+       versions  of s\bsh\bh.  s\bsh\bh does not treat opening or closing braces specially
+       when they appear as part of a word, and preserves them in  the  output.
+       B\bBa\bas\bsh\b removes  braces  from  words as a consequence of brace expansion.
+       For example, a word entered to s\bsh\bh as _\bf_\bi_\bl_\be_\b{_\b1_\b,_\b2_\b} appears  identically  in
+       the  output.  The same word is output as _\bf_\bi_\bl_\be_\b1 _\bf_\bi_\bl_\be_\b2 after expansion by
+       b\bba\bas\bsh\bh.  If strict compatibility with s\bsh\bh is desired, start b\bba\bas\bsh\bh with  the
        +\b+B\bB option or disable brace expansion with the +\b+B\bB option to the s\bse\bet\bt 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).
 
    T\bTi\bil\bld\bde\be E\bEx\bxp\bpa\ban\bns\bsi\bio\bon\bn
-       If  a  word  begins  with an unquoted tilde character (`~\b~'), all of the
-       characters preceding the first unquoted slash (or  all  characters,  if
-       there  is no unquoted slash) are considered a _\bt_\bi_\bl_\bd_\be_\b-_\bp_\br_\be_\bf_\bi_\bx.  If none of
-       the characters in the tilde-prefix are quoted, the  characters  in  the
-       tilde-prefix  following the tilde are treated as a possible _\bl_\bo_\bg_\bi_\bn _\bn_\ba_\bm_\be.
-       If this login name is the null string, the tilde is replaced  with  the
-       value  of  the shell parameter H\bHO\bOM\bME\bE.  If H\bHO\bOM\bME\bE is unset, the home direc-
-       tory of the user executing the shell is  substituted  instead.   Other-
-       wise,  the  tilde-prefix is replaced with the home directory associated
+       If a word begins with an unquoted tilde character  (`~\b~'),  all  of  the
+       characters  preceding  the  first unquoted slash (or all characters, if
+       there is no unquoted slash) are considered a _\bt_\bi_\bl_\bd_\be_\b-_\bp_\br_\be_\bf_\bi_\bx.  If none  of
+       the  characters  in  the tilde-prefix are quoted, the characters in the
+       tilde-prefix following the tilde are treated as a possible _\bl_\bo_\bg_\bi_\b _\bn_\ba_\bm_\be.
+       If  this  login name is the null string, the tilde is replaced with the
+       value of the shell parameter H\bHO\bOM\bME\bE.  If H\bHO\bOM\bME\bE is unset, the  home  direc-
+       tory  of  the  user executing the shell is substituted instead.  Other-
+       wise, the tilde-prefix is replaced with the home  directory  associated
        with the specified login name.
 
-       If the tilde-prefix is a `~+', the value  of  the  shell  variable  P\bPW\bWD\bD
+       If  the  tilde-prefix  is  a  `~+', the value of the shell variable P\bPW\bWD\bD
        replaces the tilde-prefix.  If the tilde-prefix is a `~-', the value of
-       the shell variable O\bOL\bLD\bDP\bPW\bWD\bD, if it is set, is substituted.  If the  char-
-       acters  following  the tilde in the tilde-prefix consist of a number _\bN,
-       optionally prefixed by a `+' or a `-',  the  tilde-prefix  is  replaced
+       the  shell variable O\bOL\bLD\bDP\bPW\bWD\bD, if it is set, is substituted.  If the char-
+       acters following the tilde in the tilde-prefix consist of a  number  _\bN,
+       optionally  prefixed  by  a  `+' or a `-', the tilde-prefix is replaced
        with the corresponding element from the directory stack, as it would be
        displayed by the d\bdi\bir\brs\bs builtin invoked with the tilde-prefix as an argu-
-       ment.   If  the characters following the tilde in the tilde-prefix con-
+       ment.  If the characters following the tilde in the  tilde-prefix  con-
        sist of a number without a leading `+' or `-', `+' is assumed.
 
        If the login name is invalid, or the tilde expansion fails, the word is
@@ -1288,149 +1289,149 @@ E\bEX\bXP\bPA\bAN\bNS\bSI\bIO\bON\bN
 
        Each variable assignment is checked for unquoted tilde-prefixes immedi-
        ately following a :\b: or the first =\b=.  In these cases, tilde expansion is
-       also  performed.   Consequently,  one may use file names with tildes in
-       assignments to P\bPA\bAT\bTH\bH, M\bMA\bAI\bIL\bLP\bPA\bAT\bTH\bH, and C\bCD\bDP\bPA\bAT\bTH\bH, and the  shell  assigns  the
+       also performed.  Consequently, one may use file names  with  tildes  in
+       assignments  to  P\bPA\bAT\bTH\bH,  M\bMA\bAI\bIL\bLP\bPA\bAT\bTH\bH, and C\bCD\bDP\bPA\bAT\bTH\bH, and the shell assigns the
        expanded value.
 
    P\bPa\bar\bra\bam\bme\bet\bte\ber\br E\bEx\bxp\bpa\ban\bns\bsi\bio\bon\bn
        The `$\b$' character introduces parameter expansion, command substitution,
-       or arithmetic expansion.  The parameter name or symbol to  be  expanded
-       may  be enclosed in braces, which are optional but serve to protect the
-       variable to be expanded from characters immediately following it  which
+       or  arithmetic  expansion.  The parameter name or symbol to be expanded
+       may be enclosed in braces, which are optional but serve to protect  the
+       variable  to be expanded from characters immediately following it which
        could be interpreted as part of the name.
 
-       When  braces  are  used, the matching ending brace is the first `}\b}' not
-       escaped by a backslash or within a quoted string,  and  not  within  an
+       When braces are used, the matching ending brace is the  first  `}\b}'  not
+       escaped  by  a  backslash  or within a quoted string, and not within an
        embedded  arithmetic  expansion,  command  substitution,  or  parameter
        expansion.
 
        ${_\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br}
-              The value of _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br is substituted.  The braces are  required
-              when  _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br  is  a  positional  parameter with more than one
+              The  value of _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br is substituted.  The braces are required
+              when _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br is a positional  parameter  with  more  than  one
               digit, or when _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br is followed by a character which is not
               to be interpreted as part of its name.
 
        If the first character of _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br is an exclamation point, a level of
-       variable indirection is introduced.  B\bBa\bas\bsh\bh uses the value of  the  vari-
-       able  formed  from  the  rest of _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br as the name of the variable;
-       this variable is then expanded and that value is used in  the  rest  of
-       the  substitution,  rather than the value of _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br itself.  This is
+       variable  indirection  is introduced.  B\bBa\bas\bsh\bh uses the value of the vari-
+       able formed from the rest of _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br as the  name  of  the  variable;
+       this  variable  is  then expanded and that value is used in the rest of
+       the substitution, rather than the value of _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br itself.   This  is
        known as _\bi_\bn_\bd_\bi_\br_\be_\bc_\bt _\be_\bx_\bp_\ba_\bn_\bs_\bi_\bo_\bn.  The exceptions to this are the expansions
-       of  ${!_\bp_\br_\be_\bf_\bi_\bx*} and ${!\b!_\bn_\ba_\bm_\be[_\b@]} described below.  The exclamation point
-       must immediately follow the left brace in order to  introduce  indirec-
+       of ${!_\bp_\br_\be_\bf_\bi_\bx*} and ${!\b!_\bn_\ba_\bm_\be[_\b@]} described below.  The exclamation  point
+       must  immediately  follow the left brace in order to introduce indirec-
        tion.
 
        In each of the cases below, _\bw_\bo_\br_\bd is subject to tilde expansion, parame-
-       ter expansion, command substitution, and  arithmetic  expansion.   When
-       not  performing substring expansion, b\bba\bas\bsh\bh tests for a parameter that is
-       unset or null; omitting the colon results in a test only for a  parame-
+       ter  expansion,  command  substitution, and arithmetic expansion.  When
+       not performing substring expansion, b\bba\bas\bsh\bh tests for a parameter that  is
+       unset  or null; omitting the colon results in a test only for a parame-
        ter that is unset.
 
        ${_\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br:\b:-\b-_\bw_\bo_\br_\bd}
-              U\bUs\bse\b D\bDe\bef\bfa\bau\bul\blt\bt  V\bVa\bal\blu\bue\bes\bs.  If _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br is unset or null, the expan-
-              sion of _\bw_\bo_\br_\bd is substituted.  Otherwise, the value of  _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br
+              U\bUs\bse\bD\bDe\bef\bfa\bau\bul\blt\bt V\bVa\bal\blu\bue\bes\bs.  If _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br is unset or null,  the  expan-
+              sion  of _\bw_\bo_\br_\bd is substituted.  Otherwise, the value of _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br
               is substituted.
        ${_\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br:\b:=\b=_\bw_\bo_\br_\bd}
-              A\bAs\bss\bsi\big\bgn\b D\bDe\bef\bfa\bau\bul\blt\bt  V\bVa\bal\blu\bue\bes\bs.   If  _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br  is  unset or null, the
+              A\bAs\bss\bsi\big\bgn\bD\bDe\bef\bfa\bau\bul\blt\bt V\bVa\bal\blu\bue\bes\bs.  If  _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br  is  unset  or  null,  the
               expansion of _\bw_\bo_\br_\bd is assigned to _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br.  The value of _\bp_\ba_\br_\ba_\bm_\b-
-              _\be_\bt_\be_\b is  then  substituted.   Positional parameters and special
+              _\be_\bt_\be_\bis then substituted.   Positional  parameters  and  special
               parameters may not be assigned to in this way.
        ${_\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br:\b:?\b?_\bw_\bo_\br_\bd}
-              D\bDi\bis\bsp\bpl\bla\bay\bE\bEr\brr\bro\bor\br i\bif\bf N\bNu\bul\bll\bl o\bor\br U\bUn\bns\bse\bet\bt.  If _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br is null or  unset,
-              the  expansion  of  _\bw_\bo_\br_\bd (or a message to that effect if _\bw_\bo_\br_\bd is
-              not present) is written to the standard error and the shell,  if
+              D\bDi\bis\bsp\bpl\bla\bay\b E\bEr\brr\bro\bor\br i\bif\bf N\bNu\bul\bll\bl o\bor\br U\bUn\bns\bse\bet\bt.  If _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br is null or unset,
+              the expansion of _\bw_\bo_\br_\bd (or a message to that effect  if  _\bw_\bo_\br_\b is
+              not  present) is written to the standard error and the shell, if
               it is not interactive, exits.  Otherwise, the value of _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br
               is substituted.
        ${_\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br:\b:+\b+_\bw_\bo_\br_\bd}
-              U\bUs\bse\bA\bAl\blt\bte\ber\brn\bna\bat\bte\be V\bVa\bal\blu\bue\be.  If _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br is null or unset, nothing  is
+              U\bUs\bse\b A\bAl\blt\bte\ber\brn\bna\bat\bte\be V\bVa\bal\blu\bue\be.  If _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br is null or unset, nothing is
               substituted, otherwise the expansion of _\bw_\bo_\br_\bd is substituted.
        ${_\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br:\b:_\bo_\bf_\bf_\bs_\be_\bt}
        ${_\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br:\b:_\bo_\bf_\bf_\bs_\be_\bt:\b:_\bl_\be_\bn_\bg_\bt_\bh}
-              S\bSu\bub\bbs\bst\btr\bri\bin\bng\b E\bEx\bxp\bpa\ban\bns\bsi\bio\bon\bn.\b.   Expands  to  up  to _\bl_\be_\bn_\bg_\bt_\bh characters of
-              _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\bstarting at the character  specified  by  _\bo_\bf_\bf_\bs_\be_\bt.   If
-              _\bl_\be_\bn_\bg_\bt_\b is omitted, expands to the substring of _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br start-
+              S\bSu\bub\bbs\bst\btr\bri\bin\bng\bE\bEx\bxp\bpa\ban\bns\bsi\bio\bon\bn.\b.  Expands to  up  to  _\bl_\be_\bn_\bg_\bt_\bh  characters  of
+              _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\b starting  at  the  character specified by _\bo_\bf_\bf_\bs_\be_\bt.  If
+              _\bl_\be_\bn_\bg_\bt_\bis omitted, expands to the substring of _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\b start-
               ing at the character specified by _\bo_\bf_\bf_\bs_\be_\bt.  _\bl_\be_\bn_\bg_\bt_\bh and _\bo_\bf_\bf_\bs_\be_\bt are
-              arithmetic   expressions   (see  A\bAR\bRI\bIT\bTH\bHM\bME\bET\bTI\bIC\bC  E\bEV\bVA\bAL\bLU\bUA\bAT\bTI\bIO\bON\bN  below).
-              _\bl_\be_\bn_\bg_\bt_\bmust evaluate to a number greater than or equal to  zero.
-              If  _\bo_\bf_\bf_\bs_\be_\bt  evaluates  to  a number less than zero, the value is
-              used as an offset from the end of the value  of  _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br.   If
-              _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\b is  @\b@,  the  result  is  _\bl_\be_\bn_\bg_\bt_\bh positional parameters
+              arithmetic  expressions  (see  A\bAR\bRI\bIT\bTH\bHM\bME\bET\bTI\bIC\bC   E\bEV\bVA\bAL\bLU\bUA\bAT\bTI\bIO\bON\b  below).
+              _\bl_\be_\bn_\bg_\bt_\b must evaluate to a number greater than or equal to zero.
+              If _\bo_\bf_\bf_\bs_\be_\bt evaluates to a number less than  zero,  the  value  is
+              used  as  an  offset from the end of the value of _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br.  If
+              _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\bis @\b@,  the  result  is  _\bl_\be_\bn_\bg_\bt_\bh  positional  parameters
               beginning at _\bo_\bf_\bf_\bs_\be_\bt.  If _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br is an array name indexed by @
-              or  *,  the  result is the _\bl_\be_\bn_\bg_\bt_\bh members of the array beginning
-              with ${_\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br[_\bo_\bf_\bf_\bs_\be_\bt]}.  A negative _\bo_\bf_\bf_\bs_\be_\bt is taken  relative
-              to  one  greater  than the maximum index of the specified array.
-              Note that a negative offset must be separated from the colon  by
-              at  least  one  space to avoid being confused with the :- expan-
-              sion.  Substring indexing is zero-based  unless  the  positional
-              parameters  are  used, in which case the indexing starts at 1 by
-              default.  If _\bo_\bf_\bf_\bs_\be_\bt is 0,  and  the  positional  parameters  are
+              or *, the result is the _\bl_\be_\bn_\bg_\bt_\bh members of  the  array  beginning
+              with  ${_\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br[_\bo_\bf_\bf_\bs_\be_\bt]}.  A negative _\bo_\bf_\bf_\bs_\be_\bt is taken relative
+              to one greater than the maximum index of  the  specified  array.
+              Note  that a negative offset must be separated from the colon by
+              at least one space to avoid being confused with  the  :-  expan-
+              sion.   Substring  indexing  is zero-based unless the positional
+              parameters are used, in which case the indexing starts at  1  by
+              default.   If  _\bo_\bf_\bf_\bs_\be_\bt  is  0,  and the positional parameters are
               used, $\b$0\b0 is prefixed to the list.
 
        ${!\b!_\bp_\br_\be_\bf_\bi_\bx*\b*}
        ${!\b!_\bp_\br_\be_\bf_\bi_\bx@\b@}
               Expands to the names of variables whose names begin with _\bp_\br_\be_\bf_\bi_\bx,
-              separated by the first character of the  I\bIF\bFS\bS  special  variable.
-              When  _\b@  is used and the expansion appears within double quotes,
+              separated  by  the  first character of the I\bIF\bFS\bS special variable.
+              When _\b@ is used and the expansion appears within  double  quotes,
               each variable name expands to a separate word.
 
        ${!\b!_\bn_\ba_\bm_\be[_\b@]}
        ${!\b!_\bn_\ba_\bm_\be[_\b*]}
-              If _\bn_\ba_\bm_\be is an array variable,  expands  to  the  list  of  array
-              indices  (keys)  assigned  in  _\bn_\ba_\bm_\be.   If  _\bn_\ba_\bm_\be is not an array,
-              expands to 0 if _\bn_\ba_\bm_\be is set and null otherwise.  When _\b@ is  used
+              If  _\bn_\ba_\bm_\be  is  an  array  variable,  expands to the list of array
+              indices (keys) assigned in _\bn_\ba_\bm_\be.   If  _\bn_\ba_\bm_\be  is  not  an  array,
+              expands  to 0 if _\bn_\ba_\bm_\be is set and null otherwise.  When _\b@ is used
               and the expansion appears within double quotes, each key expands
               to a separate word.
 
        ${#\b#_\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br}
-              The length in characters of the value of  _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br  is  substi-
-              tuted.   If  _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br  is  *\b* or @\b@, the value substituted is the
-              number of positional parameters.  If _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br is an array  name
-              subscripted  by  *\b*  or @\b@, the value substituted is the number of
+              The  length  in  characters of the value of _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br is substi-
+              tuted.  If _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br is *\b* or @\b@, the  value  substituted  is  the
+              number  of positional parameters.  If _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br is an array name
+              subscripted by *\b* or @\b@, the value substituted is  the  number  of
               elements in the array.
 
        ${_\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br#\b#_\bw_\bo_\br_\bd}
        ${_\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br#\b##\b#_\bw_\bo_\br_\bd}
-              The _\bw_\bo_\br_\bd is expanded to produce a pattern just  as  in  pathname
+              The  _\bw_\bo_\br_\bd  is  expanded to produce a pattern just as in pathname
               expansion.  If the pattern matches the beginning of the value of
-              _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br, then the result of  the  expansion  is  the  expanded
+              _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br,  then  the  result  of  the expansion is the expanded
               value of _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br with the shortest matching pattern (the ``#\b#''
               case) or the longest matching pattern (the ``#\b##\b#'' case) deleted.
               If _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br is @\b@ or *\b*, the pattern removal 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 subscripted
-              with @\b@ or *\b*, the pattern removal operation is  applied  to  each
-              member  of the array in turn, and the expansion is the resultant
+              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  subscripted
+              with  @\b@  or  *\b*, the pattern removal operation is applied to each
+              member of the array in turn, and the expansion is the  resultant
               list.
 
        ${_\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br%\b%_\bw_\bo_\br_\bd}
        ${_\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br%\b%%\b%_\bw_\bo_\br_\bd}
-              The _\bw_\bo_\br_\bd is expanded to produce a pattern just  as  in  pathname
-              expansion.   If  the  pattern  matches a trailing portion of the
+              The  _\bw_\bo_\br_\bd  is  expanded to produce a pattern just as in pathname
+              expansion.  If the pattern matches a  trailing  portion  of  the
               expanded value of _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br, then the result of the expansion is
-              the  expanded value of _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br with the shortest matching pat-
-              tern (the ``%\b%'' case)  or  the  longest  matching  pattern  (the
-              ``%\b%%\b%''  case)  deleted.   If  _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br  is  @\b@ or *\b*, the pattern
-              removal 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 subscripted with @\b@ or *\b*, the  pattern  removal
-              operation  is  applied  to each member of the array in turn, and
+              the expanded value of _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br with the shortest matching  pat-
+              tern  (the  ``%\b%''  case)  or  the  longest matching pattern (the
+              ``%\b%%\b%'' case) deleted.  If _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br  is  @\b@  or  *\b*,  the  pattern
+              removal  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_\b is
+              an  array  variable subscripted with @\b@ or *\b*, the pattern removal
+              operation is applied to each member of the array  in  turn,  and
               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}
               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_\bagainst its value is  replaced  with  _\bs_\bt_\br_\bi_\bn_\bg.   If  _\bp_\ba_\bt_\bt_\be_\br_\bn
-              begins  with /\b/, all matches of _\bp_\ba_\bt_\bt_\be_\br_\bn are replaced with _\bs_\bt_\br_\bi_\bn_\bg.
-              Normally only the first match is replaced.   If  _\bp_\ba_\bt_\bt_\be_\br_\b 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  omit-
-              ted.   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  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
+              expansion.  _\bP_\ba_\br_\ba_\bm_\be_\bt_\be_\br is expanded and the longest match of  _\bp_\ba_\bt_\b-
+              _\bt_\be_\br_\b against  its  value  is  replaced with _\bs_\bt_\br_\bi_\bn_\bg.  If _\bp_\ba_\bt_\bt_\be_\br_\bn
+              begins with /\b/, all matches of _\bp_\ba_\bt_\bt_\be_\br_\bn are replaced with  _\bs_\bt_\br_\bi_\bn_\bg.
+              Normally  only  the  first match is replaced.  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 omit-
+              ted.  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 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
@@ -1443,155 +1444,155 @@ E\bEX\bXP\bPA\bAN\bNS\bSI\bIO\bON\bN
               `\b`_\bc_\bo_\bm_\bm_\ba_\bn_\bd`\b`
 
        B\bBa\bas\bsh\bh performs the expansion by executing _\bc_\bo_\bm_\bm_\ba_\bn_\bd and replacing the com-
-       mand substitution with the standard output of  the  command,  with  any
+       mand  substitution  with  the  standard output of the command, with any
        trailing newlines deleted.  Embedded newlines are not deleted, but they
-       may be removed during word splitting.  The command  substitution  $\b$(\b(c\bca\bat\bt
+       may  be  removed during word splitting.  The command substitution $\b$(\b(c\bca\bat\bt
        _\bf_\bi_\bl_\be)\b) can be replaced by the equivalent but faster $\b$(\b(<\b< _\bf_\bi_\bl_\be)\b).
 
-       When  the  old-style  backquote form of substitution is used, backslash
-       retains its literal meaning except when followed by $\b$, `\b`,  or  \\b\.   The
+       When the old-style backquote form of substitution  is  used,  backslash
+       retains  its  literal  meaning except when followed by $\b$, `\b`, or \\b\.  The
        first backquote not preceded by a backslash terminates the command sub-
-       stitution.  When using the $(_\bc_\bo_\bm_\bm_\ba_\bn_\bd) form, all characters between  the
+       stitution.   When using the $(_\bc_\bo_\bm_\bm_\ba_\bn_\bd) form, all characters between the
        parentheses make up the command; none are treated specially.
 
        Command substitutions may be nested.  To nest when using the backquoted
        form, escape the inner backquotes with backslashes.
 
-       If the substitution appears within double quotes,  word  splitting  and
+       If  the  substitution  appears within double quotes, word splitting and
        pathname expansion are not performed on the results.
 
    A\bAr\bri\bit\bth\bhm\bme\bet\bti\bic\bc E\bEx\bxp\bpa\ban\bns\bsi\bio\bon\bn
-       Arithmetic  expansion allows the evaluation of an arithmetic expression
-       and the substitution of the result.  The format for  arithmetic  expan-
+       Arithmetic expansion allows the evaluation of an arithmetic  expression
+       and  the  substitution of the result.  The format for arithmetic expan-
        sion is:
 
               $\b$(\b((\b(_\be_\bx_\bp_\br_\be_\bs_\bs_\bi_\bo_\bn)\b))\b)
 
-       The  _\be_\bx_\bp_\br_\be_\bs_\bs_\bi_\bo_\bn  is  treated  as if it were within double quotes, but a
-       double quote inside the parentheses  is  not  treated  specially.   All
+       The _\be_\bx_\bp_\br_\be_\bs_\bs_\bi_\bo_\bn is treated as if it were within  double  quotes,  but  a
+       double  quote  inside  the  parentheses  is not treated specially.  All
        tokens in the expression undergo parameter expansion, string expansion,
-       command substitution, and quote removal.  Arithmetic expansions may  be
+       command  substitution, and quote removal.  Arithmetic expansions may be
        nested.
 
-       The  evaluation  is performed according to the rules listed below under
+       The evaluation is performed according to the rules listed  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 _\be_\bx_\bp_\br_\be_\bs_\bs_\bi_\bo_\bn is invalid, b\bba\bas\bsh\bh prints a message
        indicating failure and no substitution occurs.
 
    P\bPr\bro\boc\bce\bes\bss\bs S\bSu\bub\bbs\bst\bti\bit\btu\but\bti\bio\bon\bn
-       _\bP_\br_\bo_\bc_\be_\bs_\b _\bs_\bu_\bb_\bs_\bt_\bi_\bt_\bu_\bt_\bi_\bo_\bn  is supported on systems that support named pipes
-       (_\bF_\bI_\bF_\bO_\bs) or the /\b/d\bde\bev\bv/\b/f\bfd\bd method of naming open files.  It takes the  form
-       of  <\b<(\b(_\bl_\bi_\bs_\bt)\b) or >\b>(\b(_\bl_\bi_\bs_\bt)\b).  The process _\bl_\bi_\bs_\bt is run with its input or out-
+       _\bP_\br_\bo_\bc_\be_\bs_\b_\bs_\bu_\bb_\bs_\bt_\bi_\bt_\bu_\bt_\bi_\bo_\bn is supported on systems that support  named  pipes
+       (_\bF_\bI_\bF_\bO_\bs)  or the /\b/d\bde\bev\bv/\b/f\bfd\bd method of naming open files.  It takes the form
+       of <\b<(\b(_\bl_\bi_\bs_\bt)\b) or >\b>(\b(_\bl_\bi_\bs_\bt)\b).  The process _\bl_\bi_\bs_\bt is run with its input or  out-
        put connected to a _\bF_\bI_\bF_\bO or some file in /\b/d\bde\bev\bv/\b/f\bfd\bd.  The name of this file
-       is  passed  as  an argument to the current command as the result of the
-       expansion.  If the >\b>(\b(_\bl_\bi_\bs_\bt)\b) form is used, writing to the file will  pro-
-       vide  input  for _\bl_\bi_\bs_\bt.  If the <\b<(\b(_\bl_\bi_\bs_\bt)\b) form is used, the file passed as
+       is passed as an argument to the current command as the  result  of  the
+       expansion.   If the >\b>(\b(_\bl_\bi_\bs_\bt)\b) form is used, writing to the file will pro-
+       vide input for _\bl_\bi_\bs_\bt.  If the <\b<(\b(_\bl_\bi_\bs_\bt)\b) form is used, the file  passed  as
        an argument should be read to obtain the output of _\bl_\bi_\bs_\bt.
 
-       When available, process substitution is performed  simultaneously  with
-       parameter  and variable expansion, command substitution, and arithmetic
+       When  available,  process substitution is performed simultaneously with
+       parameter and variable expansion, command substitution, and  arithmetic
        expansion.
 
    W\bWo\bor\brd\bd S\bSp\bpl\bli\bit\btt\bti\bin\bng\bg
-       The shell scans the results of parameter expansion,  command  substitu-
-       tion,  and arithmetic expansion that did not occur within double quotes
+       The  shell  scans the results of parameter expansion, command substitu-
+       tion, and arithmetic expansion that did not occur within double  quotes
        for _\bw_\bo_\br_\bd _\bs_\bp_\bl_\bi_\bt_\bt_\bi_\bn_\bg.
 
-       The shell treats each character of I\bIF\bFS\bS as a delimiter, and  splits  the
+       The  shell  treats each character of I\bIF\bFS\bS as a delimiter, and splits the
        results of the other expansions into words on these characters.  If I\bIF\bFS\bS
-       is unset, or its value is exactly <\b<s\bsp\bpa\bac\bce\be>\b><\b<t\bta\bab\bb>\b><\b<n\bne\bew\bwl\bli\bin\bne\be>\b>,  the  default,
-       then  sequences  of  <\b<s\bsp\bpa\bac\bce\be>\b>, <\b<t\bta\bab\bb>\b>, and <\b<n\bne\bew\bwl\bli\bin\bne\be>\b> at the beginning and
-       end of the results of the previous  expansions  are  ignored,  and  any
-       sequence  of  I\bIF\bFS\bS  characters  not  at  the  beginning or end serves to
-       delimit words.  If I\bIF\bFS\bS  has  a  value  other  than  the  default,  then
+       is  unset,  or its value is exactly <\b<s\bsp\bpa\bac\bce\be>\b><\b<t\bta\bab\bb>\b><\b<n\bne\bew\bwl\bli\bin\bne\be>\b>, the default,
+       then sequences of <\b<s\bsp\bpa\bac\bce\be>\b>, <\b<t\bta\bab\bb>\b>, and <\b<n\bne\bew\bwl\bli\bin\bne\be>\b> at  the  beginning  and
+       end  of  the  results  of  the previous expansions are ignored, and any
+       sequence of I\bIF\bFS\bS characters not  at  the  beginning  or  end  serves  to
+       delimit  words.   If  I\bIF\bFS\bS  has  a  value  other  than the default, then
        sequences of the whitespace characters s\bsp\bpa\bac\bce\be and t\bta\bab\bb are ignored at the
-       beginning and end of the word, as long as the whitespace  character  is
-       in  the  value  of I\bIF\bFS\bS (an I\bIF\bFS\bS whitespace character).  Any character in
-       I\bIF\bFS\bthat is not I\bIF\bFS\bS whitespace, along with any adjacent I\bIF\bFS\b whitespace
-       characters,  delimits a field.  A sequence of I\bIF\bFS\bS whitespace characters
-       is also treated as a delimiter.  If the value of I\bIF\bFS\bS is null,  no  word
+       beginning  and  end of the word, as long as the whitespace character is
+       in the value of I\bIF\bFS\bS (an I\bIF\bFS\bS whitespace character).   Any  character  in
+       I\bIF\bFS\b that is not I\bIF\bFS\bS whitespace, along with any adjacent I\bIF\bFS\bS whitespace
+       characters, delimits a field.  A sequence of I\bIF\bFS\bS whitespace  characters
+       is  also  treated as a delimiter.  If the value of I\bIF\bFS\bS is null, no word
        splitting occurs.
 
-       Explicit  null  arguments  ("\b""\b"  or '\b''\b') are retained.  Unquoted implicit
+       Explicit null arguments ("\b""\b" or '\b''\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
+       values, are removed.  If a parameter with no value is  expanded  within
        double quotes, a null argument results and is retained.
 
        Note that if no expansion occurs, no splitting is performed.
 
    P\bPa\bat\bth\bhn\bna\bam\bme\be E\bEx\bxp\bpa\ban\bns\bsi\bio\bon\bn
-       After word splitting, unless the -\b-f\bf option has  been  set,  b\bba\bas\bsh\b scans
-       each  word  for the characters *\b*, ?\b?, and [\b[.  If one of these characters
-       appears, then the word is regarded as a _\bp_\ba_\bt_\bt_\be_\br_\bn, and replaced  with  an
-       alphabetically  sorted  list of file names matching the pattern.  If no
-       matching file names are found, and the shell option  n\bnu\bul\bll\blg\bgl\blo\bob\bb  is  dis-
-       abled,  the word is left unchanged.  If the n\bnu\bul\bll\blg\bgl\blo\bob\bb option is set, and
-       no matches are found, the word  is  removed.   If  the  f\bfa\bai\bil\blg\bgl\blo\bob\b shell
-       option  is  set,  and no matches are found, an error message is printed
-       and the command is not executed.  If the  shell  option  n\bno\boc\bca\bas\bse\beg\bgl\blo\bob\b is
-       enabled,  the  match  is performed without regard to the case of alpha-
-       betic characters.  When a pattern is used for pathname  expansion,  the
-       character  `\b``\b`.\b.'\b''\b'   at  the  start  of a name or immediately following a
-       slash must be matched explicitly, unless the shell  option  d\bdo\bot\btg\bgl\blo\bob\b is
-       set.   When  matching  a  pathname,  the slash character must always be
-       matched explicitly.  In  other  cases,  the  `\b``\b`.\b.'\b''\b'   character  is  not
-       treated  specially.   See  the  description  of s\bsh\bho\bop\bpt\bt below under S\bSH\bHE\bEL\bLL\bL
-       B\bBU\bUI\bIL\bLT\bTI\bIN\bC\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS for a description of the n\bno\boc\bca\bas\bse\beg\bgl\blo\bob\bb,  n\bnu\bul\bll\blg\bgl\blo\bob\bb,  f\bfa\bai\bil\bl-\b-
+       After  word  splitting,  unless  the -\b-f\bf option has been set, b\bba\bas\bsh\bh scans
+       each word for the characters *\b*, ?\b?, and [\b[.  If one of  these  characters
+       appears,  then  the word is regarded as a _\bp_\ba_\bt_\bt_\be_\br_\bn, and replaced with an
+       alphabetically sorted list of file names matching the pattern.   If  no
+       matching  file  names  are found, and the shell option n\bnu\bul\bll\blg\bgl\blo\bob\bb is dis-
+       abled, the word is left unchanged.  If the n\bnu\bul\bll\blg\bgl\blo\bob\bb option is set,  and
+       no  matches  are  found,  the  word  is removed.  If the f\bfa\bai\bil\blg\bgl\blo\bob\bb shell
+       option is set, and no matches are found, an error  message  is  printed
+       and  the  command  is  not executed.  If the shell option n\bno\boc\bca\bas\bse\beg\bgl\blo\bob\bb is
+       enabled, the match is performed without regard to the  case  of  alpha-
+       betic  characters.   When a pattern is used for pathname expansion, the
+       character `\b``\b`.\b.'\b''\b'  at the start of a  name  or  immediately  following  a
+       slash  must  be  matched explicitly, unless the shell option d\bdo\bot\btg\bgl\blo\bob\bb is
+       set.  When matching a pathname, the  slash  character  must  always  be
+       matched  explicitly.   In  other  cases,  the  `\b``\b`.\b.'\b''\b'   character is not
+       treated specially.  See the description  of  s\bsh\bho\bop\bpt\bt  below  under  S\bSH\bHE\bEL\bLL\bL
+       B\bBU\bUI\bIL\bLT\bTI\bIN\b C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS  for a description of the n\bno\boc\bca\bas\bse\beg\bgl\blo\bob\bb, n\bnu\bul\bll\blg\bgl\blo\bob\bb, f\bfa\bai\bil\bl-\b-
        g\bgl\blo\bob\bb, and d\bdo\bot\btg\bgl\blo\bob\bb shell options.
 
-       The  G\bGL\bLO\bOB\bBI\bIG\bGN\bNO\bOR\bRE\bE  shell variable may be used to restrict the set of file
-       names matching a _\bp_\ba_\bt_\bt_\be_\br_\bn.  If G\bGL\bLO\bOB\bBI\bIG\bGN\bNO\bOR\bRE\bE is  set,  each  matching  file
-       name  that  also  matches  one of the patterns in G\bGL\bLO\bOB\bBI\bIG\bGN\bNO\bOR\bRE\bE is removed
+       The G\bGL\bLO\bOB\bBI\bIG\bGN\bNO\bOR\bRE\bE shell variable may be used to restrict the set  of  file
+       names  matching  a  _\bp_\ba_\bt_\bt_\be_\br_\bn.   If G\bGL\bLO\bOB\bBI\bIG\bGN\bNO\bOR\bRE\bE is set, each matching file
+       name that also matches one of the patterns  in  G\bGL\bLO\bOB\bBI\bIG\bGN\bNO\bOR\bRE\bE  is  removed
        from the list of matches.  The file names `\b``\b`.\b.'\b''\b'  and `\b``\b`.\b..\b.'\b''\b'  are always
-       ignored  when G\bGL\bLO\bOB\bBI\bIG\bGN\bNO\bOR\bRE\bE is set and not null.  However, setting G\bGL\bLO\bOB\bBI\bIG\bG-\b-
-       N\bNO\bOR\bRE\bto a non-null value has the effect of enabling the  d\bdo\bot\btg\bgl\blo\bob\b shell
+       ignored when G\bGL\bLO\bOB\bBI\bIG\bGN\bNO\bOR\bRE\bE is set and not null.  However, setting  G\bGL\bLO\bOB\bBI\bIG\bG-\b-
+       N\bNO\bOR\bRE\b to  a non-null value has the effect of enabling the d\bdo\bot\btg\bgl\blo\bob\bb shell
        option, so all other file names beginning with a `\b``\b`.\b.'\b''\b'  will match.  To
-       get the old behavior of ignoring file names  beginning  with  a  `\b``\b`.\b.'\b''\b',
-       make  `\b``\b`.\b.*\b*'\b''\b'  one of the patterns in G\bGL\bLO\bOB\bBI\bIG\bGN\bNO\bOR\bRE\bE.  The d\bdo\bot\btg\bgl\blo\bob\bb option is
+       get  the  old  behavior  of ignoring file names beginning with a `\b``\b`.\b.'\b''\b',
+       make `\b``\b`.\b.*\b*'\b''\b'  one of the patterns in G\bGL\bLO\bOB\bBI\bIG\bGN\bNO\bOR\bRE\bE.  The d\bdo\bot\btg\bgl\blo\bob\bb option  is
        disabled when G\bGL\bLO\bOB\bBI\bIG\bGN\bNO\bOR\bRE\bE is unset.
 
        P\bPa\bat\btt\bte\ber\brn\bn M\bMa\bat\btc\bch\bhi\bin\bng\bg
 
        Any character that appears in a pattern, other than the special pattern
-       characters  described below, matches itself.  The NUL character may not
-       occur in a pattern.  A backslash escapes the following  character;  the
-       escaping  backslash  is  discarded  when matching.  The special pattern
+       characters described below, matches itself.  The NUL character may  not
+       occur  in  a pattern.  A backslash escapes the following character; the
+       escaping backslash is discarded when  matching.   The  special  pattern
        characters must be quoted if they are to be matched literally.
 
        The special pattern characters have the following meanings:
 
        *\b*      Matches any string, including the null string.
        ?\b?      Matches any single character.
-       [\b[.\b..\b..\b.]\b]  Matches any one of the enclosed characters.  A pair  of  charac-
+       [\b[.\b..\b..\b.]\b]  Matches  any  one of the enclosed characters.  A pair of charac-
               ters separated by a hyphen denotes a _\br_\ba_\bn_\bg_\be _\be_\bx_\bp_\br_\be_\bs_\bs_\bi_\bo_\bn; any char-
-              acter that sorts between those two characters, inclusive,  using
-              the  current  locale's  collating sequence and character set, is
-              matched.  If the first character following the [\b[ is a !\b!  or a  ^\b^
-              then  any  character not enclosed is matched.  The sorting order
-              of characters in range expressions is determined by the  current
-              locale  and  the value of the L\bLC\bC_\b_C\bCO\bOL\bLL\bLA\bAT\bTE\bE shell variable, if set.
-              A -\b- may be matched by including it as the first or last  charac-
+              acter  that sorts between those two characters, inclusive, using
+              the current locale's collating sequence and  character  set,  is
+              matched.   If the first character following the [\b[ is a !\b!  or a ^\b^
+              then any character not enclosed is matched.  The  sorting  order
+              of  characters in range expressions is determined by the current
+              locale and the value of the L\bLC\bC_\b_C\bCO\bOL\bLL\bLA\bAT\bTE\bE shell variable,  if  set.
+              A  -\b- may be matched by including it as the first or last charac-
               ter in the set.  A ]\b] may be matched by including it as the first
               character in the set.
 
-              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
+              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 standard:
-              a\bal\bln\bnu\bum\ba\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\b p\bpu\bun\bnc\bct\bt
+              a\bal\bln\bnu\bum\b 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.
-              The w\bwo\bor\brd\bd character class matches letters, digits, and the  char-
+              The  w\bwo\bor\brd\bd character class matches letters, digits, and the char-
               acter _.
 
-              Within  [\b[ and ]\b], an _\be_\bq_\bu_\bi_\bv_\ba_\bl_\be_\bn_\bc_\be _\bc_\bl_\ba_\bs_\bs can be specified using the
-              syntax [\b[=\b=_\bc=\b=]\b], which matches all characters with the same  colla-
-              tion  weight (as defined by the current locale) as the character
+              Within [\b[ and ]\b], an _\be_\bq_\bu_\bi_\bv_\ba_\bl_\be_\bn_\bc_\be _\bc_\bl_\ba_\bs_\bs can be specified using  the
+              syntax  [\b[=\b=_\bc=\b=]\b], which matches all characters with the same colla-
+              tion weight (as defined by the current locale) as the  character
               _\bc.
 
               Within [\b[ and ]\b], the syntax [\b[.\b._\bs_\by_\bm_\bb_\bo_\bl.\b.]\b] matches the collating sym-
               bol _\bs_\by_\bm_\bb_\bo_\bl.
 
        If the e\bex\bxt\btg\bgl\blo\bob\bb shell option is enabled using the s\bsh\bho\bop\bpt\bt builtin, several
-       extended pattern matching operators are recognized.  In  the  following
+       extended  pattern  matching operators are recognized.  In the following
        description, a _\bp_\ba_\bt_\bt_\be_\br_\bn_\b-_\bl_\bi_\bs_\bt is a list of one or more patterns separated
        by a |\b|.  Composite patterns may be formed using one or more of the fol-
        lowing sub-patterns:
@@ -1609,48 +1610,48 @@ E\bEX\bXP\bPA\bAN\bNS\bSI\bIO\bON\bN
 
    Q\bQu\buo\bot\bte\be R\bRe\bem\bmo\bov\bva\bal\bl
        After the preceding expansions, all unquoted occurrences of the charac-
-       ters \\b\, '\b', and "\b" that did not result from one of the  above  expansions
+       ters  \\b\,  '\b', and "\b" that did not result from one of the above expansions
        are removed.
 
 R\bRE\bED\bDI\bIR\bRE\bEC\bCT\bTI\bIO\bON\bN
-       Before  a  command  is executed, its input and output may be _\br_\be_\bd_\bi_\br_\be_\bc_\bt_\be_\bd
-       using a special notation interpreted by  the  shell.   Redirection  may
-       also  be  used  to open and close files for the current shell execution
+       Before a command is executed, its input and output  may  be  _\br_\be_\bd_\bi_\br_\be_\bc_\bt_\be_\bd
+       using  a  special  notation  interpreted by the shell.  Redirection may
+       also be used to open and close files for the  current  shell  execution
        environment.  The following redirection operators may precede or appear
        anywhere within a _\bs_\bi_\bm_\bp_\bl_\be _\bc_\bo_\bm_\bm_\ba_\bn_\bd or may follow a _\bc_\bo_\bm_\bm_\ba_\bn_\bd.  Redirections
        are processed in the order they appear, from left to right.
 
-       In the following descriptions, if the file descriptor number  is  omit-
-       ted,  and the first character of the redirection operator is <\b<, the re-
-       direction refers to the standard input (file  descriptor  0).   If  the
-       first  character  of  the  redirection  operator  is >\b>, the redirection
+       In  the  following descriptions, if the file descriptor number is omit-
+       ted, and the first character of the redirection operator is <\b<, the  re-
+       direction  refers  to  the  standard input (file descriptor 0).  If the
+       first character of the  redirection  operator  is  >\b>,  the  redirection
        refers to the standard output (file descriptor 1).
 
-       The word following the redirection operator in the  following  descrip-
-       tions,  unless  otherwise noted, is subjected to brace expansion, tilde
+       The  word  following the redirection operator in the following descrip-
+       tions, unless otherwise noted, is subjected to brace  expansion,  tilde
        expansion, parameter expansion, command substitution, arithmetic expan-
-       sion,  quote  removal,  pathname  expansion, and word splitting.  If it
+       sion, quote removal, pathname expansion, and  word  splitting.   If  it
        expands to more than one word, b\bba\bas\bsh\bh reports an error.
 
-       Note that the order of redirections is significant.  For  example,  the
+       Note  that  the order of redirections is significant.  For example, the
        command
 
               ls >\b> dirlist 2>\b>&\b&1
 
-       directs  both  standard  output and standard error to the file _\bd_\bi_\br_\bl_\bi_\bs_\bt,
+       directs both standard output and standard error to  the  file  _\bd_\bi_\br_\bl_\bi_\bs_\bt,
        while the command
 
               ls 2>\b>&\b&1 >\b> dirlist
 
-       directs only the standard output to file _\bd_\bi_\br_\bl_\bi_\bs_\bt, because the  standard
-       error  was duplicated as standard output before the standard output was
+       directs  only the standard output to file _\bd_\bi_\br_\bl_\bi_\bs_\bt, because the standard
+       error was duplicated as standard output before the standard output  was
        redirected to _\bd_\bi_\br_\bl_\bi_\bs_\bt.
 
        B\bBa\bas\bsh\bh handles several filenames specially when they are used in redirec-
        tions, as described in the following table:
 
               /\b/d\bde\bev\bv/\b/f\bfd\bd/\b/_\bf_\bd
-                     If  _\bf_\bd  is  a valid integer, file descriptor _\bf_\bd is dupli-
+                     If _\bf_\bd is a valid integer, file descriptor  _\bf_\bd  is  dupli-
                      cated.
               /\b/d\bde\bev\bv/\b/s\bst\btd\bdi\bin\bn
                      File descriptor 0 is duplicated.
@@ -1660,22 +1661,22 @@ R\bRE\bED\bDI\bIR\bRE\bEC\bCT\bTI\bIO\bON\bN
                      File descriptor 2 is duplicated.
               /\b/d\bde\bev\bv/\b/t\btc\bcp\bp/\b/_\bh_\bo_\bs_\bt/\b/_\bp_\bo_\br_\bt
                      If _\bh_\bo_\bs_\bt is a valid hostname or Internet address, and _\bp_\bo_\br_\bt
-                     is  an integer port number or service name, b\bba\bas\bsh\bh attempts
+                     is an integer port number or service name, b\bba\bas\bsh\b attempts
                      to open a TCP connection to the corresponding socket.
               /\b/d\bde\bev\bv/\b/u\bud\bdp\bp/\b/_\bh_\bo_\bs_\bt/\b/_\bp_\bo_\br_\bt
                      If _\bh_\bo_\bs_\bt is a valid hostname or Internet address, and _\bp_\bo_\br_\bt
-                     is  an integer port number or service name, b\bba\bas\bsh\bh attempts
+                     is an integer port number or service name, b\bba\bas\bsh\b attempts
                      to open a UDP connection to the corresponding socket.
 
        A failure to open or create a file causes the redirection to fail.
 
-       Redirections using file descriptors greater than 9 should be used  with
-       care,  as they may conflict with file descriptors the shell uses inter-
+       Redirections  using file descriptors greater than 9 should be used with
+       care, as they may conflict with file descriptors the shell uses  inter-
        nally.
 
    R\bRe\bed\bdi\bir\bre\bec\bct\bti\bin\bng\bg I\bIn\bnp\bpu\but\bt
        Redirection of input causes the file whose name results from the expan-
-       sion  of  _\bw_\bo_\br_\bd  to  be  opened for reading on file descriptor _\bn, or the
+       sion of _\bw_\bo_\br_\bd to be opened for reading on  file  descriptor  _\bn,  or  the
        standard input (file descriptor 0) if _\bn is not specified.
 
        The general format for redirecting input is:
@@ -1683,27 +1684,27 @@ R\bRE\bED\bDI\bIR\bRE\bEC\bCT\bTI\bIO\bON\bN
               [_\bn]<\b<_\bw_\bo_\br_\bd
 
    R\bRe\bed\bdi\bir\bre\bec\bct\bti\bin\bng\bg O\bOu\but\btp\bpu\but\bt
-       Redirection of output causes the  file  whose  name  results  from  the
+       Redirection  of  output  causes  the  file  whose name results from the
        expansion of _\bw_\bo_\br_\bd to be opened for writing on file descriptor _\bn, or the
        standard output (file descriptor 1) if _\bn is not specified.  If the file
-       does  not exist it is created; if it does exist it is truncated to zero
+       does not exist it is created; if it does exist it is truncated to  zero
        size.
 
        The general format for redirecting output is:
 
               [_\bn]>\b>_\bw_\bo_\br_\bd
 
-       If the redirection operator is >\b>, and the n\bno\boc\bcl\blo\bob\bbb\bbe\ber\br option to  the  s\bse\bet\bt
-       builtin  has  been enabled, the redirection will fail if the file whose
-       name results from the expansion of _\bw_\bo_\br_\bd exists and is a  regular  file.
+       If  the  redirection operator is >\b>, and the n\bno\boc\bcl\blo\bob\bbb\bbe\ber\br option to the s\bse\bet\bt
+       builtin has been enabled, the redirection will fail if the  file  whose
+       name  results  from the expansion of _\bw_\bo_\br_\bd exists and is a regular file.
        If the redirection operator is >\b>|\b|, or the redirection operator is >\b> and
        the n\bno\boc\bcl\blo\bob\bbb\bbe\ber\br option to the s\bse\bet\bt builtin command is not enabled, the re-
        direction is attempted even if the file named by _\bw_\bo_\br_\bd exists.
 
    A\bAp\bpp\bpe\ben\bnd\bdi\bin\bng\bg R\bRe\bed\bdi\bir\bre\bec\bct\bte\bed\bd O\bOu\but\btp\bpu\but\bt
-       Redirection  of  output  in  this  fashion  causes  the file whose name
-       results from the expansion of _\bw_\bo_\br_\bd to be opened for appending  on  file
-       descriptor  _\bn,  or  the standard output (file descriptor 1) if _\bn is not
+       Redirection of output in  this  fashion  causes  the  file  whose  name
+       results  from  the expansion of _\bw_\bo_\br_\bd to be opened for appending on file
+       descriptor _\bn, or the standard output (file descriptor 1) if  _\bn  is  not
        specified.  If the file does not exist it is created.
 
        The general format for appending output is:
@@ -1712,11 +1713,11 @@ R\bRE\bED\bDI\bIR\bRE\bEC\bCT\bTI\bIO\bON\bN
 
 
    R\bRe\bed\bdi\bir\bre\bec\bct\bti\bin\bng\bg S\bSt\bta\ban\bnd\bda\bar\brd\bd O\bOu\but\btp\bpu\but\bt a\ban\bnd\bd S\bSt\bta\ban\bnd\bda\bar\brd\bd E\bEr\brr\bro\bor\br
-       B\bBa\bas\bsh\ballows both the standard output (file descriptor 1) and the  stan-
-       dard  error  output  (file  descriptor  2) to be redirected to the file
+       B\bBa\bas\bsh\b allows both the standard output (file descriptor 1) and the stan-
+       dard error output (file descriptor 2) to  be  redirected  to  the  file
        whose name is the expansion of _\bw_\bo_\br_\bd with this construct.
 
-       There are two formats for  redirecting  standard  output  and  standard
+       There  are  two  formats  for  redirecting standard output and standard
        error:
 
               &\b&>\b>_\bw_\bo_\br_\bd
@@ -1729,9 +1730,9 @@ R\bRE\bED\bDI\bIR\bRE\bEC\bCT\bTI\bIO\bON\bN
               >\b>_\bw_\bo_\br_\bd 2>\b>&\b&1
 
    H\bHe\ber\bre\be D\bDo\boc\bcu\bum\bme\ben\bnt\bts\bs
-       This type of redirection instructs the shell to  read  input  from  the
-       current  source  until  a  line  containing only _\bw_\bo_\br_\bd (with no trailing
-       blanks) is seen.  All of the lines read up to that point are then  used
+       This  type  of  redirection  instructs the shell to read input from the
+       current source until a line containing  only  _\bw_\bo_\br_\bd  (with  no  trailing
+       blanks)  is seen.  All of the lines read up to that point are then used
        as the standard input for a command.
 
        The format of here-documents is:
@@ -1740,18 +1741,18 @@ R\bRE\bED\bDI\bIR\bRE\bEC\bCT\bTI\bIO\bON\bN
                       _\bh_\be_\br_\be_\b-_\bd_\bo_\bc_\bu_\bm_\be_\bn_\bt
               _\bd_\be_\bl_\bi_\bm_\bi_\bt_\be_\br
 
-       No  parameter expansion, command substitution, arithmetic expansion, or
+       No parameter expansion, command substitution, arithmetic expansion,  or
        pathname expansion is performed on _\bw_\bo_\br_\bd.  If any characters in _\bw_\bo_\br_\bd are
-       quoted,  the  _\bd_\be_\bl_\bi_\bm_\bi_\bt_\be_\br is the result of quote removal on _\bw_\bo_\br_\bd, and the
-       lines in the here-document are not expanded.  If _\bw_\bo_\br_\bd is unquoted,  all
-       lines  of  the here-document are subjected to parameter expansion, com-
-       mand substitution, and arithmetic expansion.  In the latter  case,  the
-       character  sequence  \\b\<\b<n\bne\bew\bwl\bli\bin\bne\be>\b> is ignored, and \\b\ must be used to quote
+       quoted, the _\bd_\be_\bl_\bi_\bm_\bi_\bt_\be_\br is the result of quote removal on _\bw_\bo_\br_\bd,  and  the
+       lines  in the here-document are not expanded.  If _\bw_\bo_\br_\bd is unquoted, all
+       lines of the here-document are subjected to parameter  expansion,  com-
+       mand  substitution,  and arithmetic expansion.  In the latter case, the
+       character sequence \\b\<\b<n\bne\bew\bwl\bli\bin\bne\be>\b> is ignored, and \\b\ must be used  to  quote
        the characters \\b\, $\b$, and `\b`.
 
        If the redirection operator is <\b<<\b<-\b-, then all leading tab characters are
-       stripped  from  input  lines  and  the line containing _\bd_\be_\bl_\bi_\bm_\bi_\bt_\be_\br.  This
-       allows here-documents within shell scripts to be indented in a  natural
+       stripped from input lines and  the  line  containing  _\bd_\be_\bl_\bi_\bm_\bi_\bt_\be_\br.   This
+       allows  here-documents within shell scripts to be indented in a natural
        fashion.
 
    H\bHe\ber\bre\be S\bSt\btr\bri\bin\bng\bgs\bs
@@ -1767,20 +1768,20 @@ R\bRE\bED\bDI\bIR\bRE\bEC\bCT\bTI\bIO\bON\bN
               [_\bn]<\b<&\b&_\bw_\bo_\br_\bd
 
        is used to duplicate input file descriptors.  If _\bw_\bo_\br_\bd expands to one or
-       more  digits,  the file descriptor denoted by _\bn is made to be a copy of
-       that file descriptor.  If the digits in _\bw_\bo_\br_\bd  do  not  specify  a  file
-       descriptor  open for input, a redirection error occurs.  If _\bw_\bo_\br_\bd evalu-
-       ates to -\b-, file descriptor _\bn is closed.  If _\bn  is  not  specified,  the
+       more digits, the file descriptor denoted by _\bn is made to be a  copy  of
+       that  file  descriptor.   If  the  digits in _\bw_\bo_\br_\bd do not specify a file
+       descriptor open for input, a redirection error occurs.  If _\bw_\bo_\br_\b evalu-
+       ates  to  -\b-,  file  descriptor _\bn is closed.  If _\bn is not specified, the
        standard input (file descriptor 0) is used.
 
        The operator
 
               [_\bn]>\b>&\b&_\bw_\bo_\br_\bd
 
-       is  used  similarly  to duplicate output file descriptors.  If _\bn is not
-       specified, the standard output (file descriptor 1)  is  used.   If  the
-       digits  in _\bw_\bo_\br_\bd do not specify a file descriptor open for output, a re-
-       direction error occurs.  As a special case, if _\bn is omitted,  and  _\bw_\bo_\br_\bd
+       is used similarly to duplicate output file descriptors.  If  _\bn  is  not
+       specified,  the  standard  output  (file descriptor 1) is used.  If the
+       digits in _\bw_\bo_\br_\bd do not specify a file descriptor open for output, a  re-
+       direction  error  occurs.  As a special case, if _\bn is omitted, and _\bw_\bo_\br_\bd
        does not expand to one or more digits, the standard output and standard
        error are redirected as described previously.
 
@@ -1789,7 +1790,7 @@ R\bRE\bED\bDI\bIR\bRE\bEC\bCT\bTI\bIO\bON\bN
 
               [_\bn]<\b<&\b&_\bd_\bi_\bg_\bi_\bt-\b-
 
-       moves the file descriptor _\bd_\bi_\bg_\bi_\bt to file descriptor _\bn, or  the  standard
+       moves  the  file descriptor _\bd_\bi_\bg_\bi_\bt to file descriptor _\bn, or the standard
        input (file descriptor 0) if _\bn is not specified.  _\bd_\bi_\bg_\bi_\bt is closed after
        being duplicated to _\bn.
 
@@ -1797,7 +1798,7 @@ R\bRE\bED\bDI\bIR\bRE\bEC\bCT\bTI\bIO\bON\bN
 
               [_\bn]>\b>&\b&_\bd_\bi_\bg_\bi_\bt-\b-
 
-       moves the file descriptor _\bd_\bi_\bg_\bi_\bt to file descriptor _\bn, or  the  standard
+       moves  the  file descriptor _\bd_\bi_\bg_\bi_\bt to file descriptor _\bn, or the standard
        output (file descriptor 1) if _\bn is not specified.
 
    O\bOp\bpe\ben\bni\bin\bng\bg F\bFi\bil\ble\be D\bDe\bes\bsc\bcr\bri\bip\bpt\bto\bor\brs\bs f\bfo\bor\br R\bRe\bea\bad\bdi\bin\bng\bg a\ban\bnd\bd W\bWr\bri\bit\bti\bin\bng\bg
@@ -1805,108 +1806,108 @@ R\bRE\bED\bDI\bIR\bRE\bEC\bCT\bTI\bIO\bON\bN
 
               [_\bn]<\b<>\b>_\bw_\bo_\br_\bd
 
-       causes  the  file  whose name is the expansion of _\bw_\bo_\br_\bd to be opened for
-       both reading and writing on file descriptor _\bn, or on file descriptor  0
+       causes the file whose name is the expansion of _\bw_\bo_\br_\bd to  be  opened  for
+       both  reading and writing on file descriptor _\bn, or on file descriptor 0
        if _\bn is not specified.  If the file does not exist, it is created.
 
 A\bAL\bLI\bIA\bAS\bSE\bES\bS
-       _\bA_\bl_\bi_\ba_\bs_\be_\b allow a string to be substituted for a word when it is used as
-       the first word of a simple command.  The  shell  maintains  a  list  of
-       aliases  that  may  be set and unset with the a\bal\bli\bia\bas\bs and u\bun\bna\bal\bli\bia\bas\bs builtin
-       commands (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 first  word  of  each
-       simple  command, if unquoted, is checked to see if it has an alias.  If
-       so, that word is replaced by the text of the alias.  The characters  /\b/,
-       $\b$,  `\b`,  and =\b= and any of the shell _\bm_\be_\bt_\ba_\bc_\bh_\ba_\br_\ba_\bc_\bt_\be_\br_\bs or quoting characters
+       _\bA_\bl_\bi_\ba_\bs_\be_\ballow a string to be substituted for a word when it is used  as
+       the  first  word  of  a  simple command.  The shell maintains a list of
+       aliases that may be set and unset with the a\bal\bli\bia\bas\bs  and  u\bun\bna\bal\bli\bia\bas\b builtin
+       commands  (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 first word of each
+       simple command, if unquoted, is checked to see if it has an alias.   If
+       so,  that word is replaced by the text of the alias.  The characters /\b/,
+       $\b$, `\b`, and =\b= and any of the shell _\bm_\be_\bt_\ba_\bc_\bh_\ba_\br_\ba_\bc_\bt_\be_\br_\bs or  quoting  characters
        listed above may not appear in an alias name.  The replacement text may
-       contain  any  valid  shell  input, including shell metacharacters.  The
-       first word of the replacement text is tested for aliases,  but  a  word
-       that  is  identical to an alias being expanded is not expanded a second
-       time.  This means that one may alias l\bls\bs to l\bls\bs  -\b-F\bF,  for  instance,  and
-       b\bba\bas\bsh\b does  not try to recursively expand the replacement text.  If the
-       last character of the alias value is a _\bb_\bl_\ba_\bn_\bk,  then  the  next  command
+       contain any valid shell input,  including  shell  metacharacters.   The
+       first  word  of  the replacement text is tested for aliases, but a word
+       that is identical to an alias being expanded is not expanded  a  second
+       time.   This  means  that  one may alias l\bls\bs to l\bls\bs -\b-F\bF, for instance, and
+       b\bba\bas\bsh\bdoes not try to recursively expand the replacement text.   If  the
+       last  character  of  the  alias value is a _\bb_\bl_\ba_\bn_\bk, then the next command
        word following the alias is also checked for alias expansion.
 
        Aliases are created and listed with the a\bal\bli\bia\bas\bs command, and removed with
        the u\bun\bna\bal\bli\bia\bas\bs command.
 
-       There is no mechanism for using arguments in the replacement text.   If
-       arguments  are  needed,  a shell function should be used (see F\bFU\bUN\bNC\bCT\bTI\bIO\bON\bNS\bS
+       There  is no mechanism for using arguments in the replacement text.  If
+       arguments are needed, a shell function should be  used  (see  F\bFU\bUN\bNC\bCT\bTI\bIO\bON\bNS\bS
        below).
 
-       Aliases are not expanded when the shell is not interactive, unless  the
-       e\bex\bxp\bpa\ban\bnd\bd_\b_a\bal\bli\bia\bas\bse\bes\b shell option is set using s\bsh\bho\bop\bpt\bt (see the description of
+       Aliases  are not expanded when the shell is not interactive, unless the
+       e\bex\bxp\bpa\ban\bnd\bd_\b_a\bal\bli\bia\bas\bse\bes\bshell option is set using s\bsh\bho\bop\bpt\bt (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 rules concerning the definition and use  of  aliases  are  somewhat
-       confusing.   B\bBa\bas\bsh\bh  always  reads  at  least  one complete line of input
-       before executing any  of  the  commands  on  that  line.   Aliases  are
-       expanded  when  a command is read, not when it is executed.  Therefore,
-       an alias definition appearing on the same line as another command  does
-       not  take  effect  until  the next line of input is read.  The commands
+       The  rules  concerning  the  definition and use of aliases are somewhat
+       confusing.  B\bBa\bas\bsh\bh always reads at  least  one  complete  line  of  input
+       before  executing  any  of  the  commands  on  that  line.  Aliases are
+       expanded when a command is read, not when it is  executed.   Therefore,
+       an  alias definition appearing on the same line as another command does
+       not take effect until the next line of input  is  read.   The  commands
        following the alias definition on that line are not affected by the new
-       alias.   This  behavior  is  also an issue when functions are executed.
-       Aliases are expanded when a function definition is read, not  when  the
-       function  is  executed,  because a function definition is itself a com-
+       alias.  This behavior is also an issue  when  functions  are  executed.
+       Aliases  are  expanded when a function definition is read, not when the
+       function is executed, because a function definition is  itself  a  com-
        pound command.  As a consequence, aliases defined in a function are not
-       available  until  after  that function is executed.  To be safe, always
-       put alias definitions on a separate line, and do not use a\bal\bli\bia\bas\bs in  com-
+       available until after that function is executed.  To  be  safe,  always
+       put  alias definitions on a separate line, and do not use a\bal\bli\bia\bas\bs in com-
        pound commands.
 
        For almost every purpose, aliases are superseded by shell functions.
 
 F\bFU\bUN\bNC\bCT\bTI\bIO\bON\bNS\bS
-       A  shell  function,  defined  as  described  above under S\bSH\bHE\bEL\bLL\bL G\bGR\bRA\bAM\bMM\bMA\bAR\bR,
-       stores a series of commands for later execution.  When the  name  of  a
-       shell  function  is used as a simple command name, the list of commands
+       A shell function, defined  as  described  above  under  S\bSH\bHE\bEL\bLL\b G\bGR\bRA\bAM\bMM\bMA\bAR\bR,
+       stores  a  series  of commands for later execution.  When the name of a
+       shell function is used as a simple command name, the list  of  commands
        associated with that function name is executed.  Functions are executed
-       in  the  context  of  the  current  shell; no new process is created to
-       interpret them (contrast this with the execution of  a  shell  script).
-       When  a  function is executed, the arguments to the function become the
+       in the context of the current shell;  no  new  process  is  created  to
+       interpret  them  (contrast  this with the execution of a shell script).
+       When a function is executed, the arguments to the function  become  the
        positional parameters during its execution.  The special parameter #\b# is
-       updated  to reflect the change.  Special parameter 0 is unchanged.  The
-       first element of the F\bFU\bUN\bNC\bCN\bNA\bAM\bME\bE variable is set to the name of the  func-
-       tion  while  the function is executing.  All other aspects of the shell
-       execution environment are identical between a function and  its  caller
+       updated to reflect the change.  Special parameter 0 is unchanged.   The
+       first  element of the F\bFU\bUN\bNC\bCN\bNA\bAM\bME\bE variable is set to the name of the func-
+       tion while the function is executing.  All other aspects of  the  shell
+       execution  environment  are identical between a function and its caller
        with the exception that the D\bDE\bEB\bBU\bUG\bG and R\bRE\bET\bTU\bUR\bRN\bN traps (see the description
-       of the t\btr\bra\bap\bp builtin 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) are not  inher-
-       ited  unless  the  function has been given the t\btr\bra\bac\bce\be attribute (see the
-       description of the d\bde\bec\bcl\bla\bar\bre\be builtin below) or  the  -\b-o\bo  f\bfu\bun\bnc\bct\btr\bra\bac\bce\b shell
-       option  has  been enabled with the s\bse\bet\bt builtin (in which case all func-
+       of  the t\btr\bra\bap\bp builtin 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) are not inher-
+       ited unless the function has been given the t\btr\bra\bac\bce\be  attribute  (see  the
+       description  of  the  d\bde\bec\bcl\bla\bar\bre\be  builtin below) or the -\b-o\bo f\bfu\bun\bnc\bct\btr\bra\bac\bce\be shell
+       option has been enabled with the s\bse\bet\bt builtin (in which case  all  func-
        tions inherit the D\bDE\bEB\bBU\bUG\bG and R\bRE\bET\bTU\bUR\bRN\bN traps).
 
-       Variables local to the function may be declared with the l\blo\boc\bca\bal\b builtin
+       Variables  local to the function may be declared with the l\blo\boc\bca\bal\bl builtin
        command.  Ordinarily, variables and their values are shared between the
        function and its caller.
 
-       If the builtin command r\bre\bet\btu\bur\brn\bn is executed in a function,  the  function
-       completes  and  execution resumes with the next command after the func-
-       tion call.  Any command associated with the  R\bRE\bET\bTU\bUR\bRN\bN  trap  is  executed
+       If  the  builtin command r\bre\bet\btu\bur\brn\bn is executed in a function, the function
+       completes and execution resumes with the next command after  the  func-
+       tion  call.   Any  command  associated with the R\bRE\bET\bTU\bUR\bRN\bN trap is executed
        before execution resumes.  When a function completes, the values of the
-       positional parameters and the special parameter #\b# are restored  to  the
+       positional  parameters  and the special parameter #\b# are restored to the
        values they had prior to the function's execution.
 
-       Function  names and definitions may be listed with the -\b-f\bf option to the
+       Function names and definitions may be listed with the -\b-f\bf option to  the
        d\bde\bec\bcl\bla\bar\bre\be or t\bty\byp\bpe\bes\bse\bet\bt builtin commands.  The -\b-F\bF option to d\bde\bec\bcl\bla\bar\bre\be or t\bty\byp\bpe\be-\b-
-       s\bse\bet\b 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.   A  function  definition  may  be
-       deleted  using  the  -\b-f\bf  option  to the u\bun\bns\bse\bet\bt builtin.  Note that shell
+       s\bse\bet\bwill 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.  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-
+       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-
@@ -1934,39 +1935,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\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-
+       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-
        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-
@@ -2013,20 +2014,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.
@@ -2042,111 +2043,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\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
+              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
               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\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
+       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
        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\b 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\bh 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
@@ -2154,234 +2155,234 @@ 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\b 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\bt 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
-       The exit status of an executed command is the  value  returned  by  the
+       The  exit  status  of  an executed command is the value returned by the
        _\bw_\ba_\bi_\bt_\bp_\bi_\bd system call or equivalent function.  Exit statuses fall between
-       0 and 255, though, as explained below, the shell may use  values  above
+       0  and  255, though, as explained below, the shell may use values above
        125 specially.  Exit statuses from shell builtins and compound commands
-       are also limited to this range. Under certain circumstances, the  shell
+       are  also limited to this range. Under certain circumstances, the shell
        will use special values to indicate specific failure modes.
 
        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 (or, if the
-       c\bch\bhe\bec\bck\bkj\bjo\bob\bbs\bshell option has been enabled using the s\bsh\bho\bop\bpt\bt  builtin,  run-
+       If an attempt to exit b\bba\bas\bsh\bh is made while jobs are stopped (or,  if  the
+       c\bch\bhe\bec\bck\bkj\bjo\bob\bbs\b shell  option has been enabled using the s\bsh\bho\bop\bpt\bt builtin, run-
        ning), the shell prints a warning message, and, if the c\bch\bhe\bec\bck\bkj\bjo\bob\bbs\bs option
-       is enabled, lists the jobs and their statuses.  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 intervening command, the shell does not  print  another
+       is  enabled,  lists  the jobs and their statuses.  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 intervening command, the shell does not print another
        warning, and any 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)
@@ -2391,7 +2392,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
@@ -2400,7 +2401,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
@@ -2409,63 +2410,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
@@ -2473,19 +2474,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.
 
@@ -2496,15 +2497,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
@@ -2512,7 +2513,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
@@ -2523,7 +2524,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
@@ -2533,20 +2534,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
@@ -2556,44 +2557,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-
@@ -2601,111 +2602,115 @@ 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\bhi\bis\bst\bto\bor\bry\by-\b-s\bsi\biz\bze\be (\b(0\b0)\b)
+              Set  the  maximum number of history entries saved in the history
+              list.  If set to zero, the number of entries in the history list
+              is not limited.
        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
@@ -2720,51 +2725,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
@@ -2780,11 +2785,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.
@@ -2792,132 +2797,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
@@ -2926,24 +2931,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.
@@ -2952,61 +2957,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)
@@ -3015,197 +3020,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, C\bCO\bOM\bMP\bP_\b_P\bPO\bOI\bIN\bNT\bT, C\bCO\bOM\bMP\bP_\b_K\bKE\bEY\bY, and C\bCO\bOM\bMP\bP_\b_T\bTY\bYP\bPE\bE
        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  line.   No  filtering  of  the  generated  completions
-       against  the word being completed is performed; the function or command
+       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.
 
@@ -3213,136 +3218,136 @@ 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
-       number  of lines specified by the value of H\bHI\bIS\bST\bTF\bFI\bIL\bLE\bES\bSI\bIZ\bZE\bE.  When the his-
-       tory file is read, lines beginning with the history  comment  character
-       followed  immediately  by a digit are interpreted as timestamps for the
-       preceding history line.   These  timestamps  are  optionally  displayed
-       depending  on the value of the H\bHI\bIS\bST\bTT\bTI\bIM\bME\bEF\bFO\bOR\bRM\bMA\bAT\bT variable.  When an inter-
-       active shell exits, the last $\b$H\bHI\bIS\bST\bTS\bSI\bIZ\bZE\bE lines are copied from  the  his-
+       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 the  his-
+       tory  file  is read, lines beginning with the history comment character
+       followed immediately by a digit are interpreted as timestamps  for  the
+       preceding  history  line.   These  timestamps  are optionally displayed
+       depending on the value of the H\bHI\bIS\bST\bTT\bTI\bIM\bME\bEF\bFO\bOR\bRM\bMA\bAT\bT variable.  When an  inter-
+       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.   If the variable is set, time stamps are
+       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.  If the variable  is  set,  time  stamps  are
        written to the history file, marked with the history comment character,
-       so  they may be preserved across shell sessions.  This uses the history
-       comment character to distinguish timestamps from other  history  lines.
-       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\bES\bSI\bIZ\bZE\bE is not set,  no  trunca-
+       so they may be preserved across shell sessions.  This uses the  history
+       comment  character  to distinguish timestamps from other history lines.
+       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\bES\bSI\bIZ\bZE\bE is not set, no trunca-
        tion 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).  The shell uses the history comment character to mark  his-
+       V\bVa\bar\bri\bia\bab\bbl\ble\bes\bs).   The shell uses the history comment character to mark his-
        tory timestamps when writing the history file.
 
    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.
@@ -3350,21 +3355,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)
@@ -3374,17 +3379,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.
@@ -3393,70 +3398,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\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
+              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
               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_\be 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_\b 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]
@@ -3465,28 +3470,28 @@ 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_\b 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_\bs 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-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-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-f\bf _\bf_\bi_\bl_\be_\bn_\ba_\bm_\be
@@ -3498,141 +3503,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_\b is
+                     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
                      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  _\b 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 _\bn 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\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
+              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
               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\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
+              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
               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-F\bF _\bf_\bu_\bn_\bc_\bt_\bi_\bo_\bn] [-\b-C\bC _\bc_\bo_\bm_\bm_\ba_\bn_\bd]
               [-\b-X\bX _\bf_\bi_\bl_\bt_\be_\br_\bp_\ba_\bt] [-\b-P\bP _\bp_\br_\be_\bf_\bi_\bx] [-\b-S\bS _\bs_\bu_\bf_\bf_\bi_\bx] _\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\b option  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\boption 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\b and -\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\band -\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
@@ -3640,7 +3645,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
@@ -3649,17 +3654,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.
@@ -3668,42 +3673,54 @@ 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_\bis executed in a subshell environment,  and  its
+                      _\bc_\bo_\bm_\bm_\ba_\bn_\b is  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_\bis a pattern as used for  filename  expansion.
+                      _\bf_\bi_\bl_\bt_\be_\br_\bp_\ba_\b is  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_\bis added at the beginning of each  possible  com-
+                      _\bp_\br_\be_\bf_\bi_\b is  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_\be 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_\b 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\bom\bmp\bpo\bop\bpt\bt [-\b-o\bo _\bo_\bp_\bt_\bi_\bo_\bn] [+\b+o\bo _\bo_\bp_\bt_\bi_\bo_\bn] [_\bn_\ba_\bm_\be]
+              Modify  completion  options  for  each  _\bn_\ba_\bm_\be  according  to  the
+              _\bo_\bp_\bt_\bi_\bo_\bns, or for the currently-execution completion if  no  _\bn_\ba_\bm_\bes
+              are  supplied.   If no _\bo_\bp_\bt_\bi_\bo_\bns are given, display the completion
+              options for each _\bn_\ba_\bm_\be or the current completion.   The  possible
+              values  of  _\bo_\bp_\bt_\bi_\bo_\bn  are  those  valid  for  the c\bco\bom\bmp\bpl\ble\bet\bte\be builtin
+              described above.
+
+       The return value is true unless  an  invalid  option  is  supplied,  an
+       attempt  is  made to modify the options for a _\bn_\ba_\bm_\be for which no comple-
+       tion specification exists, or an output error occurs.
+
        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\bt  loop.   If  _\bn  is specified, resume at the _\bnth enclosing
@@ -3716,91 +3733,96 @@ S\bSH\bHE\bEL\bLL\bL B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS
        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\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-
-              ables attributes:
+              display the attributes and values of each _\bn_\ba_\bm_\be.  When -\b-p\bp is used
+              with _\bn_\ba_\bm_\be arguments, additional options are ignored.  When -\b-p\bp is
+              supplied  without _\bn_\ba_\bm_\be arguments, it will display the attributes
+              and values of all variables having the attributes  specified  by
+              the  additional  options.  If no other options are supplied with
+              -\b-p\bp, d\bde\bec\bcl\bla\bar\bre\be will display the attributes and values of all  shell
+              variables.   The  -\b-f\bf  option  will restrict the display to shell
+              functions.  The -\b-F\bF option inhibits the display of function defi-
+              nitions;  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 dis-
+              played as well.   The  -\b-F\bF  option  implies  -\b-f\bf.   The  following
+              options  can  be  used  to restrict output to variables with the
+              specified attribute or to give variables 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
+              Using  `+'  instead of `-' turns off the attribute instead, with
               the exceptions that +\b+a\ba may not be used to destroy an array vari-
-              able and +\b+r\br w\bwi\bil\bll\bl n\bno\bot\bt r\bre\bem\bmo\bov\bve\be t\bth\bhe\be r\bre\bea\bad\bdo\bon\bnl\bly\by a\bat\btt\btr\bri\bib\bbu\but\bte\be.\b.   W\bWh\bhe\ben\b u\bus\bse\bed\bd
+              able  and  +\b+r\br w\bwi\bil\bll\bl n\bno\bot\bt r\bre\bem\bmo\bov\bve\be t\bth\bhe\be r\bre\bea\bad\bdo\bon\bnl\bly\by a\bat\btt\btr\bri\bib\bbu\but\bte\be.\b.  W\bWh\bhe\ben\bn u\bus\bse\bed\bd
               i\bin\bn a\ba f\bfu\bun\bnc\bct\bti\bio\bon\bn,\b, m\bma\bak\bke\bes\bs e\bea\bac\bch\bh _\bn_\ba_\bm_\be l\blo\boc\bca\bal\bl,\b, a\bas\bs w\bwi\bit\bth\bh t\bth\bhe\be l\blo\boc\bca\bal\bl command.
               If a variable name is followed by =_\bv_\ba_\bl_\bu_\be, the value of the vari-
-              able  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
+              able 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\babove), one of the _\bn_\ba_\bm_\be_\bs is not a  valid  shell  variable
+              A\bAr\brr\bra\bay\bys\b above),  one  of the _\bn_\ba_\bm_\be_\bs is not a valid shell variable
               name, an attempt is made to turn off readonly status for a read-
-              only variable, an attempt is made to turn off array  status  for
-              an  array variable, or an attempt is made to display a non-exis-
+              only  variable,  an attempt is made to turn off array status for
+              an array variable, or an attempt is made to display a  non-exis-
               tent function with -\b-f\bf.
 
        d\bdi\bir\brs\bs [\b[+\b+_\bn]\b] [\b[-\b-_\bn]\b] [\b[-\b-c\bcp\bpl\blv\bv]\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 _\bj_\bo_\bb_\bs_\bp_\be_\bc is not present, and neither -\b-a\ba n\bno\bor\br -\b-r\br
-              i\bis\bs\bsu\bup\bpp\bpl\bli\bie\bed\bd,\b, t\bth\bhe\be s\bsh\bhe\bel\bll\bl'\b's\bs n\bno\bot\bti\bio\bon\bn o\bof\bf t\bth\bhe\be _\bc_\bu_\br_\br_\be_\bn_\bt _\bj_\bo_\bb i\bis\bs u\bus\bse\bed\bd.\b  I\bIf\bf
+              Without  options,  each  _\bj_\bo_\bb_\bs_\bp_\be_\bc  is  removed  from the table of
+              active jobs.  If _\bj_\bo_\bb_\bs_\bp_\be_\bc is not present, and neither -\b-a\ba  n\bno\bor\b -\b-r\br
+              i\bis\b s\bsu\bup\bpp\bpl\bli\bie\bed\bd,\b, t\bth\bhe\be s\bsh\bhe\bel\bll\bl'\b's\bs n\bno\bot\bti\bio\bon\bn o\bof\bf t\bth\bhe\be _\bc_\bu_\br_\br_\be_\bn_\bt _\bj_\bo_\bb i\bis\bs u\bus\bse\bed\bd.\b.  I\bIf\bf
               t\bth\bhe\be -\b-h\bh o\bop\bpt\bti\bio\bon\bn i\bis\bs g\bgi\biv\bve\ben\bn,\b, e\bea\bac\bch\bh _\bj_\bo_\bb_\bs_\bp_\be_\bc is not removed from the ta-
-              ble, 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_\bt _\bj_\bo_\bb  is  used.
+              ble,  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_\bt _\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_\bs_\bp_\be_\bc  argument  restricts
-              operation  to running jobs.  The return value is 0 unless a _\bj_\bo_\bb_\b-
+              all  jobs;  the  -\b-r\br  option without a _\bj_\bo_\bb_\bs_\bp_\be_\bc argument restricts
+              operation to running jobs.  The return value is 0 unless a  _\bj_\bo_\bb_\b-
               _\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
@@ -3812,186 +3834,186 @@ 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\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\ba] [-\b-d\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_\bs 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_\b 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_\b 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_\be 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  argument passed to _\bc_\bo_\bm_\bm_\ba_\bn_\bd.  This is what
+              ning of the zeroth argument 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
+              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 can-
-              not  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
+              not 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 cannot be executed.  If _\bc_\bo_\bm_\bm_\ba_\bn_\bd is not specified, any redi-
               rections take effect in the current shell, and the return status
-              is 0.  If there is a redirection error, the return status is  1.
+              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-l\bln\bnr\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]
@@ -4002,44 +4024,44 @@ 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,
-              marked  with  the  history  comment character.  When the history
+              ated  with  each  history  entry is written to the history file,
+              marked with the history comment  character.   When  the  history
               file is read, lines beginning with the history comment character
-              followed  immediately  by  a digit are interpreted as timestamps
-              for the previous history line.  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
+              followed immediately by a digit are  interpreted  as  timestamps
+              for  the previous history line.  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.
 
@@ -4048,147 +4070,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-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.
-              +\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.
 
-              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] [+_\bn] [-_\bn]
        p\bpu\bus\bsh\bhd\bd [-\b-n\bn] [_\bd_\bi_\br]
-              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-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.
-              +\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.
               _\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\b [-\b-e\ber\brs\bs] [-\b-a\ba _\ba_\bn_\ba_\bm_\be] [-\b-d\bd _\bd_\be_\bl_\bi_\bm] [-\b-n\bn _\bn_\bc_\bh_\ba_\br_\bs] [-\b-p\bp _\bp_\br_\bo_\bm_\bp_\bt] [-\b-t\bt _\bt_\bi_\bm_\be_\bo_\bu_\bt]
-       [-\b-u\bu _\bf_\bd] [_\bn_\ba_\bm_\be ...]
-              One  line  is  read  from  the  standard input, or from the file
-              descriptor _\bf_\bd supplied as an argument to the -\b-u\bu option, and  the
+       r\bre\bea\bad\b[-\b-e\ber\brs\bs] [-\b-a\ba _\ba_\bn_\ba_\bm_\be] [-\b-d\bd _\bd_\be_\bl_\bi_\bm] [-\b- _\bt_\be_\bx_\bt] [-\b-n\bn _\bn_\bc_\bh_\ba_\br_\bs] [-\b-p\bp _\bp_\br_\bo_\bm_\bp_\bt]  [-\b-t\bt
+       _\bt_\bi_\bm_\be_\bo_\bu_\bt] [-\b-u\bu _\bf_\bd] [_\bn_\ba_\bm_\be ...]
+              One line is read from the  standard  input,  or  from  the  file
+              descriptor  _\bf_\bd supplied as an argument to the -\b-u\bu option, and the
               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
@@ -4196,10 +4218,13 @@ 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-i\bi _\bt_\be_\bx_\bt
+                     If  r\bre\bea\bad\bdl\bli\bin\bne\be  is  being  used  to  read the line, _\bt_\be_\bx_\bt is
+                     placed into the editing buffer before editing begins.
               -\b-n\bn _\bn_\bc_\bh_\ba_\br_\bs
                      r\bre\bea\bad\bd returns after reading _\bn_\bc_\bh_\ba_\br_\bs characters rather  than
                      waiting for a complete line of input.
@@ -4469,7 +4494,7 @@ S\bSH\bHE\bEL\bLL\bL B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS
                       command  no  longer exists, a normal path search is per-
                       formed.
               c\bch\bhe\bec\bck\bkj\bjo\bob\bbs\bs
-                      If set, bash lists the status of any stopped and running
+                      If set, b\bba\bas\bsh\bh lists the status of any stopped and running
                       jobs  before  exiting an interactive shell.  If any jobs
                       are running, this causes the exit to be deferred until a
                       second  exit is attempted without an intervening command
@@ -4744,7 +4769,7 @@ S\bSH\bHE\bEL\bLL\bL 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\bde\bef\bfi\bil\blm\bmn\bnp\bpq\bqr\brs\bst\btu\buv\bvx\bx [_\bl_\bi_\bm_\bi_\bt]]
+       u\bul\bli\bim\bmi\bit\bt [-\b-H\bHS\bST\bTa\bab\bbc\bcd\bde\bef\bfi\bil\blm\bmn\bnp\bpq\bqr\brs\bst\btu\buv\bvx\bx [_\bl_\bi_\bm_\bi_\bt]]
               Provides control over the resources available to the  shell  and
               to  processes started by it, on systems that allow such control.
               The -\b-H\bH and -\b-S\bS options specify that the hard or soft limit is set
@@ -4761,6 +4786,7 @@ S\bSH\bHE\bEL\bLL\bL B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS
               and unit are printed before the value.  Other options are inter-
               preted as follows:
               -\b-a\ba     All current limits are reported
+              -\b-b\bb     The maximum socket buffer size
               -\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")
@@ -4781,14 +4807,15 @@ S\bSH\bHE\bEL\bLL\bL B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS
               -\b-v\bv     The  maximum  amount  of  virtual memory available to the
                      shell
               -\b-x\bx     The maximum number of file locks
+              -\b-T\bT     The maximum number of threads
 
               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
-              occurs while setting a new limit.
+              and -\b-T\bT, -\b-b\bb, -\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
@@ -4961,4 +4988,4 @@ B\bBU\bUG\bGS\bS
 
 
 
-GNU Bash-3.2                   2008 February 22                        BASH(1)
+GNU Bash-3.2                     2008 April 5                          BASH(1)
index 9ac5b2a4c209e012152bc366b7381e112f321b1e..6879596481d4554b6878a47e14be1e70fbf96287 100644 (file)
@@ -5,12 +5,12 @@
 .\"    Case Western Reserve University
 .\"    chet@po.cwru.edu
 .\"
-.\"    Last Change: Thu Mar 27 22:15:12 EDT 2008
+.\"    Last Change: Sat Apr 12 17:15:24 EDT 2008
 .\"
 .\" bash_builtins, strip all but Built-Ins section
 .if \n(zZ=1 .ig zZ
 .if \n(zY=1 .ig zY
-.TH BASH 1 "2008 April 5" "GNU Bash-3.2"
+.TH BASH 1 "2008 April 12" "GNU Bash-3.2"
 .\"
 .\" There's some problem with having a `@'
 .\" in a tagged paragraph with the BSD man macros.
@@ -6187,6 +6187,20 @@ The return status is false if
 .I shell\-builtin
 is not a shell builtin command.
 .TP
+\fBcaller\fP [\fIexpr\fP]
+Returns the context of any active subroutine call (a shell function or
+a script executed with the \fB.\fP or \fBsource\fP builtins.
+Without \fIexpr\fP, \fBcaller\fP displays the line number and source
+filename of the current subroutine call.
+If a non-negative integer is supplied as \fIexpr\fP, \fBcaller\fP 
+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 subroutine
+call or \fIexpr\fP does not correspond to a valid position in the
+call stack.
+.TP
 \fBcd\fP [\fB\-L|-P\fP] [\fIdir\fP]
 Change the current directory to \fIdir\fP.  The variable
 .SM
@@ -6232,20 +6246,6 @@ written to the standard output.
 The return value is true if the directory was successfully changed;
 false otherwise.
 .TP
-\fBcaller\fP [\fIexpr\fP]
-Returns the context of any active subroutine call (a shell function or
-a script executed with the \fB.\fP or \fBsource\fP builtins.
-Without \fIexpr\fP, \fBcaller\fP displays the line number and source
-filename of the current subroutine call.
-If a non-negative integer is supplied as \fIexpr\fP, \fBcaller\fP 
-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 subroutine
-call or \fIexpr\fP does not correspond to a valid position in the
-call stack.
-.TP
 \fBcommand\fP [\fB\-pVv\fP] \fIcommand\fP [\fIarg\fP ...]
 Run
 .I command
@@ -6309,12 +6309,12 @@ will be displayed.
 The return value is true unless an invalid option is supplied, or no
 matches were generated.
 .TP
-\fBcomplete\fP [\fB\-abcdefgjksuv\fP] [\fB\-o\fP \fIcomp-option\fP] [\fB\-A\fP \fIaction\fP] [\fB\-G\fP \fIglobpat\fP] [\fB\-W\fP \fIwordlist\fP] [\fB\-F\fP \fIfunction\fP] [\fB\-C\fP \fIcommand\fP]
+\fBcomplete\fP [\fB\-abcdefgjksuv\fP] [\fB\-o\fP \fIcomp-option\fP] [\fB\-E\fP] [\fB\-A\fP \fIaction\fP] [\fB\-G\fP \fIglobpat\fP] [\fB\-W\fP \fIwordlist\fP] [\fB\-F\fP \fIfunction\fP] [\fB\-C\fP \fIcommand\fP]
 .br
 [\fB\-X\fP \fIfilterpat\fP] [\fB\-P\fP \fIprefix\fP] [\fB\-S\fP \fIsuffix\fP] \fIname\fP [\fIname ...\fP]
 .PD 0
 .TP
-\fBcomplete\fP \fB\-pr\fP [\fIname\fP ...]
+\fBcomplete\fP \fB\-pr\fP [\fB\-E\fP] [\fIname\fP ...]
 .PD
 Specify how arguments to each \fIname\fP should be completed.
 If the \fB\-p\fP option is supplied, or if no options are supplied,
@@ -6323,6 +6323,9 @@ them to be reused as input.
 The \fB\-r\fP option removes a completion specification for
 each \fIname\fP, or, if no \fIname\fPs are supplied, all
 completion specifications.
+The \fB\-E\fP option indicates that the remaining options and actions should
+apply to ``empty'' command completion; that is, completion attempted on a
+blank line.
 .sp 1
 The process of applying these completion specifications when word completion
 is attempted is described above under \fBProgrammable Completion\fP.
@@ -7139,7 +7142,7 @@ The return status is true unless a
 .I name
 is not found or an invalid option is supplied.
 .TP
-\fBhelp\fP [\fB\-s\fP] [\fIpattern\fP]
+\fBhelp\fP [\fB\-dms\fP] [\fIpattern\fP]
 Display helpful information about builtin commands.  If
 .I pattern
 is specified,
@@ -7148,8 +7151,19 @@ gives detailed help on all commands matching
 .IR pattern ;
 otherwise help for all the builtins and shell control structures
 is printed.
-The \fB\-s\fP option restricts the information displayed to a short
-usage synopsis.
+.RS
+.PD 0
+.TP
+.B \-d
+Display a short description of each \fIpattern\fP
+.TP
+.B \ -m
+Display the description of each \fIpattern\fP in a manpage-like format
+.TP
+.B \-s
+Display only a short usage synopsis for each \fIpattern\fP
+.PD
+.RE
 The return status is 0 unless no command matches
 .IR pattern .
 .TP
@@ -7375,6 +7389,66 @@ is supplied, or
 .B logout
 Exit a login shell.
 .TP
+\fBmapfile\fP [\fB\-n\fP \fIcount\fP] [\fB\-O\fP \fIorigin\fP] [\fB\-s\fP \fIcou
+nt\fP] [\fB\-t\fP] [\fB\-u\fP \fIfd\fP] [\fB\-C\fP \fIcallback\fP] [\fB\-c\fP \f
+Iquantum\fP] [\fIarray\fP]
+Read lines from the standard input into array variable
+.IR array ,
+or from file descriptor 
+.IR fd
+if the 
+.B \-u
+option is supplied.
+The variable \fBMAPFILE\fP is the default \fIarray\fP.
+Options, if supplied, have the following meanings:
+.RS
+.PD 0
+.TP
+.B \-n
+Copy at most
+.I count
+lines.  If \fIcount\fP is 0, all lines are copied.
+.TP
+.B \-O
+Begin assigning to
+.I array
+at index
+.IR origin .
+The default index is 0.
+.TP
+.B \-s
+Discard the first \fIcount\fP lines read.
+.TP
+.B \-t
+Remove a trailing line from each line read.
+.TP
+.B \-u
+Read lines from file descriptor \fIfd\fP instead of the standard input.
+.TP
+.B \-C
+Evaluate
+.I callback
+each time \fIquantum\fP lines are read.  The \fB\-c\fP option specifies
+.IR quantum .
+.TP
+.B \-c
+Specify the number of lines read between each call to
+.IR callback .
+.PD
+.PP
+If
+.B \-C
+is specified without 
+.BR \-c ,
+the default quantum is 5000.
+.PP
+If not supplied with an explicit origin, \fBmapfile\fP will clear \fIarray\fP
+before assigning to it.
+.PP
+\fBmapfile\fP returns successfully unless an invalid option or option
+argument is supplied, or \fIarray\fP is invalid or unassignable.
+.RE
+.TP
 \fBpopd\fP [\-\fBn\fP] [+\fIn\fP] [\-\fIn\fP]
 Removes entries from the directory stack.  With no arguments,
 removes the top directory from the stack, and performs a
@@ -8636,8 +8710,8 @@ The
 .B \-f
 option suppresses shell function lookup, as with the \fBcommand\fP builtin.
 .B type
-returns true if any of the arguments are found, false if
-none are found.
+returns true if all of the arguments are found, false if
+any are not found.
 .TP
 \fBulimit\fP [\fB\-HSTabcdefilmnpqrstuvx\fP [\fIlimit\fP]]
 Provides control over the resources available to the shell and to
index 8977354e73fc633a5833dbf105c8adde62352fdd..e4cd34246d95c1c6bc0ac5a50082d8ef27080297 100644 (file)
@@ -5,12 +5,12 @@
 .\"    Case Western Reserve University
 .\"    chet@po.cwru.edu
 .\"
-.\"    Last Change: Thu Mar 27 22:15:12 EDT 2008
+.\"    Last Change: Sat Apr 12 17:15:24 EDT 2008
 .\"
 .\" bash_builtins, strip all but Built-Ins section
 .if \n(zZ=1 .ig zZ
 .if \n(zY=1 .ig zY
-.TH BASH 1 "2008 April 5" "GNU Bash-3.2"
+.TH BASH 1 "2008 April 12" "GNU Bash-3.2"
 .\"
 .\" There's some problem with having a `@'
 .\" in a tagged paragraph with the BSD man macros.
@@ -4711,6 +4711,10 @@ If set to \fBon\fP, the history code attempts to place point at the
 same location on each history line retrieved with \fBprevious-history\fP
 or \fBnext-history\fP.
 .TP
+.B history\-size (0)
+Set the maximum number of history entries saved in the history list.  If
+set to zero, the number of entries in the history list is not limited.
+.TP
 .B horizontal\-scroll\-mode (Off)
 When set to \fBOn\fP, makes readline use a single line for display,
 scrolling the input horizontally on a single screen line when it
@@ -6183,6 +6187,20 @@ The return status is false if
 .I shell\-builtin
 is not a shell builtin command.
 .TP
+\fBcaller\fP [\fIexpr\fP]
+Returns the context of any active subroutine call (a shell function or
+a script executed with the \fB.\fP or \fBsource\fP builtins.
+Without \fIexpr\fP, \fBcaller\fP displays the line number and source
+filename of the current subroutine call.
+If a non-negative integer is supplied as \fIexpr\fP, \fBcaller\fP 
+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 subroutine
+call or \fIexpr\fP does not correspond to a valid position in the
+call stack.
+.TP
 \fBcd\fP [\fB\-L|-P\fP] [\fIdir\fP]
 Change the current directory to \fIdir\fP.  The variable
 .SM
@@ -6228,20 +6246,6 @@ written to the standard output.
 The return value is true if the directory was successfully changed;
 false otherwise.
 .TP
-\fBcaller\fP [\fIexpr\fP]
-Returns the context of any active subroutine call (a shell function or
-a script executed with the \fB.\fP or \fBsource\fP builtins.
-Without \fIexpr\fP, \fBcaller\fP displays the line number and source
-filename of the current subroutine call.
-If a non-negative integer is supplied as \fIexpr\fP, \fBcaller\fP 
-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 subroutine
-call or \fIexpr\fP does not correspond to a valid position in the
-call stack.
-.TP
 \fBcommand\fP [\fB\-pVv\fP] \fIcommand\fP [\fIarg\fP ...]
 Run
 .I command
@@ -6305,12 +6309,12 @@ will be displayed.
 The return value is true unless an invalid option is supplied, or no
 matches were generated.
 .TP
-\fBcomplete\fP [\fB\-abcdefgjksuv\fP] [\fB\-o\fP \fIcomp-option\fP] [\fB\-A\fP \fIaction\fP] [\fB\-G\fP \fIglobpat\fP] [\fB\-W\fP \fIwordlist\fP] [\fB\-F\fP \fIfunction\fP] [\fB\-C\fP \fIcommand\fP]
+\fBcomplete\fP [\fB\-abcdefgjksuv\fP] [\fB\-o\fP \fIcomp-option\fP] [\fB\-E\fP] [\fB\-A\fP \fIaction\fP] [\fB\-G\fP \fIglobpat\fP] [\fB\-W\fP \fIwordlist\fP] [\fB\-F\fP \fIfunction\fP] [\fB\-C\fP \fIcommand\fP]
 .br
 [\fB\-X\fP \fIfilterpat\fP] [\fB\-P\fP \fIprefix\fP] [\fB\-S\fP \fIsuffix\fP] \fIname\fP [\fIname ...\fP]
 .PD 0
 .TP
-\fBcomplete\fP \fB\-pr\fP [\fIname\fP ...]
+\fBcomplete\fP \fB\-pr\fP [\fB\-E\fP] [\fIname\fP ...]
 .PD
 Specify how arguments to each \fIname\fP should be completed.
 If the \fB\-p\fP option is supplied, or if no options are supplied,
@@ -6319,6 +6323,9 @@ them to be reused as input.
 The \fB\-r\fP option removes a completion specification for
 each \fIname\fP, or, if no \fIname\fPs are supplied, all
 completion specifications.
+The \fB\-E\fP option indicates that the remaining options and actions should
+apply to ``empty'' command completion; that is, completion attempted on a
+blank line.
 .sp 1
 The process of applying these completion specifications when word completion
 is attempted is described above under \fBProgrammable Completion\fP.
@@ -7135,7 +7142,7 @@ The return status is true unless a
 .I name
 is not found or an invalid option is supplied.
 .TP
-\fBhelp\fP [\fB\-s\fP] [\fIpattern\fP]
+\fBhelp\fP [\fB\-dms\fP] [\fIpattern\fP]
 Display helpful information about builtin commands.  If
 .I pattern
 is specified,
@@ -7144,8 +7151,19 @@ gives detailed help on all commands matching
 .IR pattern ;
 otherwise help for all the builtins and shell control structures
 is printed.
-The \fB\-s\fP option restricts the information displayed to a short
-usage synopsis.
+.RS
+.PD 0
+.TP
+.B \-d
+Display a short description of each \fIpattern\fP
+.TP
+.B \ -m
+Display the description of each \fIpattern\fP in a manpage-like format
+.TP
+.B \-s
+Display only a short usage synopsis for each \fIpattern\fP
+.PD
+.RE
 The return status is 0 unless no command matches
 .IR pattern .
 .TP
@@ -8632,8 +8650,8 @@ The
 .B \-f
 option suppresses shell function lookup, as with the \fBcommand\fP builtin.
 .B type
-returns true if any of the arguments are found, false if
-none are found.
+returns true if all of the arguments are found, false if
+any are not found.
 .TP
 \fBulimit\fP [\fB\-HSTabcdefilmnpqrstuvx\fP [\fIlimit\fP]]
 Provides control over the resources available to the shell and to
index 11b794f00ca8455116c6f0296d505fba08df98f1..963448ee81651d745db38b591298cc5806f90e02 100644 (file)
@@ -3,7 +3,7 @@
 </HEAD>
 <BODY><TABLE WIDTH=100%>
 <TR>
-<TH ALIGN=LEFT width=33%>BASH(1)<TH ALIGN=CENTER width=33%>2008 February 22<TH ALIGN=RIGHT width=33%>BASH(1)
+<TH ALIGN=LEFT width=33%>BASH(1)<TH ALIGN=CENTER width=33%>2008 April 5<TH ALIGN=RIGHT width=33%>BASH(1)
 </TR>
 </TABLE>
 <BR><A HREF="#index">Index</A>
@@ -798,13 +798,9 @@ command to terminate in turn.  The return status is the
 exit status of the last command executed.
 <P>
 
-The control operators
-<B>&amp;&amp;</B>
-
-and
-<B>||</B>
-
-denote AND lists and OR lists, respectively.
+AND and OR lists are sequences of one of more pipelines separated by the
+<B>&amp;&amp;</B> and <B>||</B> control operators, respectively.
+AND and OR lists are executed with left associativity.
 An AND list has the form
 <DL COMPACT><DT><DD>
 <P>
@@ -838,7 +834,8 @@ An OR list has the form
 is executed if and only if
 <I>command1</I>
 
-returns a non-zero exit status.  The return status of
+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.
 <A NAME="lbAO">&nbsp;</A>
@@ -1632,14 +1629,14 @@ Expands to the full file name used to invoke this instance of
 <DT><B>BASHPID</B>
 
 <DD>
-Expands to the process id of the current bash process.
+Expands to the process id of the current <B>bash</B> process.
 This differs from <B>$$</B> under certain circumstances, such as subshells
-that do not require bash to be re-initialized.
+that do not require <B>bash</B> to be re-initialized.
 <DT><B>BASH_ARGC</B>
 
 <DD>
 An array variable whose values are the number of parameters in each
-frame of the current bash execution call stack.
+frame of the current <B>bash</B> execution call stack.
 The number of
 parameters to the current subroutine (shell function or script executed
 with <B>.</B> or <B>source</B>) is at the top of the stack.
@@ -1656,7 +1653,7 @@ builtin below)
 <DT><B>BASH_ARGV</B>
 
 <DD>
-An array variable containing all of the parameters in the current bash
+An array variable containing all of the parameters in the current <B>bash</B>
 execution call stack.  The final parameter of the last subroutine call
 is at the top of the stack; the first parameter of the initial call is
 at the bottom.  When a subroutine is executed, the parameters supplied
@@ -6130,6 +6127,11 @@ attempts word completion.
 If set to <B>on</B>, the history code attempts to place point at the
 same location on each history line retrieved with <B>previous-history</B>
 or <B>next-history</B>.
+<DT><B>history-size (0)</B>
+
+<DD>
+Set the maximum number of history entries saved in the history list.  If
+set to zero, the number of entries in the history list is not limited.
 <DT><B>horizontal-scroll-mode (Off)</B>
 
 <DD>
@@ -8390,6 +8392,21 @@ a <I>name</I> for which no specification exists, or
 an error occurs adding a completion specification.
 </DL>
 
+<DT><B>compopt</B> [<B>-o</B> <I>option</I>] [<B>+o</B> <I>option</I>] [<I>name</I>]<DD>
+Modify completion options for each <I>name</I> according to the
+<I>option</I>s, or for the
+currently-execution completion if no <I>name</I>s are supplied.
+If no <I>option</I>s are given, display the completion options for each
+<I>name</I> or the current completion.
+The possible values of <I>option</I> are those valid for the <B>complete</B>
+builtin described above.
+</DL>
+<P>
+
+The return value is true unless an invalid option is supplied, an attempt
+is made to modify the options for a <I>name</I> for which no completion
+specification exists, or an output error occurs.
+<DL COMPACT>
 <DT><B>continue</B> [<I>n</I>]<DD>
 Resume the next iteration of the enclosing
 <B>for</B>,
@@ -8432,7 +8449,16 @@ option will display the attributes and values of each
 When
 <B>-p</B>
 
-is used, additional options are ignored.
+is used with <I>name</I> arguments, additional options are ignored.
+When
+<B>-p</B>
+
+is supplied without <I>name</I> arguments, it will display the attributes
+and values of all variables having the attributes specified by the
+additional options.
+If no other options are supplied with <B>-p</B>, <B>declare</B> will display
+the attributes and values of all shell variables.  The <B>-f</B> option
+will restrict the display to shell functions.
 The
 <B>-F</B>
 
@@ -9619,7 +9645,7 @@ option is used, the pathname printed may contain symbolic links.
 The return status is 0 unless an error occurs while
 reading the name of the current directory or an
 invalid option is supplied.
-<DT><B>read</B> [<B>-ers</B>] [<B>-a</B> <I>aname</I>] [<B>-d</B> <I>delim</I>] [<B>-n</B> <I>nchars</I>] [<B>-p</B> <I>prompt</I>] [<B>-t</B> <I>timeout</I>] [<B>-u</B> <I>fd</I>] [<I>name</I> ...]<DD>
+<DT><B>read</B> [<B>-ers</B>] [<B>-a</B> <I>aname</I>] [<B>-d</B> <I>delim</I>] [- <I>text</I>] [<B>-n</B> <I>nchars</I>] [<B>-p</B> <I>prompt</I>] [<B>-t</B> <I>timeout</I>] [<B>-u</B> <I>fd</I>] [<I>name</I> ...]<DD>
 One line is read from the standard input, or from the file descriptor
 <I>fd</I> supplied as an argument to the <B>-u</B> option, and the first word
 is assigned to the first
@@ -9674,6 +9700,14 @@ is coming from a terminal,
 
 </FONT>
 above) is used to obtain the line.
+<DT><B>-i </B><I>text</I>
+
+<DD>
+If
+<B>readline</B>
+
+is being used to read the line, <I>text</I> is placed into the editing
+buffer before editing begins.
 <DT><B>-n </B><I>nchars</I>
 
 <DD>
@@ -10367,7 +10401,7 @@ longer exists, a normal path search is performed.
 <DT><B>checkjobs</B>
 
 <DD>
-If set, bash lists the status of any stopped and running jobs before
+If set, <B>bash</B> lists the status of any stopped and running jobs before
 exiting an interactive shell.  If any jobs are running, this causes
 the exit to be deferred until a second exit is attempted without an
 intervening command (see <B>JOB CONTROL</B> above).  The shell always
@@ -11047,7 +11081,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>-SHacdefilmnpqrstuvx</B> [<I>limit</I>]]<DD>
+<DT><B>ulimit</B> [<B>-HSTabcdefilmnpqrstuvx</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
@@ -11084,6 +11118,10 @@ Other options are interpreted as follows:
 
 <DD>
 All current limits are reported
+<DT><B>-b</B>
+
+<DD>
+The maximum socket buffer size
 <DT><B>-c</B>
 
 <DD>
@@ -11149,6 +11187,10 @@ The maximum amount of virtual memory available to the shell
 
 <DD>
 The maximum number of file locks
+<DT><B>-T</B>
+
+<DD>
+The maximum number of threads
 
 </DL>
 <P>
@@ -11171,7 +11213,11 @@ which is in seconds,
 
 which is in units of 512-byte blocks,
 and
-<B>-n</B>
+<B>-T</B>,
+
+<B>-b</B>,
+
+<B>-n</B>,
 
 and
 <B>-u</B>,
@@ -11571,7 +11617,7 @@ Array variables may not (yet) be exported.
 <HR>
 <TABLE WIDTH=100%>
 <TR>
-<TH ALIGN=LEFT width=33%>GNU Bash-3.2<TH ALIGN=CENTER width=33%>2008 February 22<TH ALIGN=RIGHT width=33%>BASH(1)
+<TH ALIGN=LEFT width=33%>GNU Bash-3.2<TH ALIGN=CENTER width=33%>2008 April 5<TH ALIGN=RIGHT width=33%>BASH(1)
 </TR>
 </TABLE>
 <HR>
@@ -11675,6 +11721,6 @@ Array variables may not (yet) be exported.
 </DL>
 <HR>
 This document was created by man2html from bash.1.<BR>
-Time: 04 March 2008 08:38:15 EST
+Time: 08 April 2008 09:50:33 EDT
 </BODY>
 </HTML>
index 44d7f9609836fb0278b0fad684dc5253e5a80975..17af04044c3dcf9c3dbabd41201f75ece3cb073d 100644 (file)
Binary files a/doc/bash.pdf and b/doc/bash.pdf differ
index b516a7ecab0139028f25ad0aa8de78dde2b7654f..cc11a4d66caa8d42ac3df03df6470bc2d174bbfe 100644 (file)
@@ -1,13 +1,13 @@
 %!PS-Adobe-3.0
-%%Creator: groff version 1.19.1
-%%CreationDate: Tue Mar  4 08:37:54 2008
+%%Creator: groff version 1.19.2
+%%CreationDate: Tue Apr  8 09:14:15 2008
 %%DocumentNeededResources: font Times-Roman
 %%+ font Times-Bold
 %%+ font Times-Italic
 %%+ font Courier
 %%+ font Symbol
-%%DocumentSuppliedResources: procset grops 1.19 1
-%%Pages: 65
+%%DocumentSuppliedResources: procset grops 1.19 2
+%%Pages: 66
 %%PageOrder: Ascend
 %%DocumentMedia: Default 595 842 0 () ()
 %%Orientation: Portrait
@@ -16,7 +16,7 @@
 %%PageMedia: Default
 %%EndDefaults
 %%BeginProlog
-%%BeginResource: procset grops 1.19 1
+%%BeginResource: procset grops 1.19 2
 %!PS-Adobe-3.0 Resource-ProcSet
 /setpacking where{
 pop
@@ -85,7 +85,7 @@ LS{
 /EP{
 level0 restore
 showpage
-}bind def
+}def
 /DA{
 newpath arcn stroke
 }bind def
@@ -179,7 +179,6 @@ userdict begin
 /setpagedevice{}def
 }bind def
 /PEND{
-clear
 countdictstack CNT sub{end}repeat
 level1 restore
 }bind def
@@ -332,7 +331,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.2)72 768 Q(2008 February 22)138.46 E(1)193.45 E 0 Cg EP
+(GNU Bash-3.2)72 768 Q(2008 April 5)148.455 E(1)203.445 E 0 Cg EP
 %%Page: 2 2
 %%BeginPageSetup
 BP
@@ -454,7 +453,7 @@ F(ariable)-.25 E F3 -.27(BA)108 679.2 S(SH_ENV).27 E F0 1.01(in the en)
 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.2)72
-768 Q(2008 February 22)138.46 E(2)193.45 E 0 Cg EP
+768 Q(2008 April 5)148.455 E(2)203.445 E 0 Cg EP
 %%Page: 3 3
 %%BeginPageSetup
 BP
@@ -579,7 +578,7 @@ F .175(xit status, or 128+)-.15 F F2(n)A F0 .176
 F1(Pipelines)87 691.2 Q F0(A)108 703.2 Q F2(pipeline)2.92 E F0 .42
 (is a sequence of one or more commands separated by the character)2.92 F
 F1(|)2.919 E F0 5.419(.T)C .419(he format for a pipeline)-5.419 F(is:)
-108 715.2 Q(GNU Bash-3.2)72 768 Q(2008 February 22)138.46 E(3)193.45 E 0
+108 715.2 Q(GNU Bash-3.2)72 768 Q(2008 April 5)148.455 E(3)203.445 E 0
 Cg EP
 %%Page: 4 4
 %%BeginPageSetup
@@ -646,89 +645,91 @@ F F1(;)3.156 E F0(and)3.156 E F1(&)3.156 E F0 3.156(,w)C .656(hich ha)
 (are e)3.348 F -.15(xe)-.15 G .848(cuted sequentially; the shell w).15 F
 .849(aits for each command to terminate in turn.)-.1 F .849(The return)
 5.849 F(status is the e)108 386.4 Q(xit status of the last command e)
--.15 E -.15(xe)-.15 G(cuted.).15 E(The control operators)108 403.2 Q F1
-(&&)2.5 E F0(and)2.5 E F4<efef>2.5 E F0
-(denote AND lists and OR lists, respecti)2.5 E -.15(ve)-.25 G(ly).15 E 5
-(.A)-.65 G 2.5(nA)-5 G(ND list has the form)-2.5 E F2(command1)144 420 Q
-F1(&&)2.5 E F2(command2)2.5 E(command2)108.2 436.8 Q F0(is e)2.52 E -.15
-(xe)-.15 G(cuted if, and only if,).15 E F2(command1)2.7 E F0
-(returns an e)2.5 E(xit status of zero.)-.15 E(An OR list has the form)
-108 453.6 Q F2(command1)144 470.4 Q F4<efef>2.5 E F2(command2)2.5 E
-(command2)108.2 492 Q F0 .729(is e)3.249 F -.15(xe)-.15 G .729
-(cuted if and only if).15 F F2(command1)3.429 E F0 .729
-(returns a non-zero e)3.229 F .729(xit status.)-.15 F .728
-(The return status of AND)5.729 F(and OR lists is the e)108 504 Q
+-.15 E -.15(xe)-.15 G(cuted.).15 E .632(AND and OR lists are sequences \
+of one of more pipelines separated by the)108 403.2 R F1(&&)3.132 E F0
+(and)3.132 E F4<efef>3.132 E F0 .632(control operators,)3.132 F
+(respecti)108 415.2 Q -.15(ve)-.25 G(ly).15 E 5(.A)-.65 G
+(ND and OR lists are e)-5 E -.15(xe)-.15 G(cuted with left associati).15
+E(vity)-.25 E 5(.A)-.65 G 2.5(nA)-5 G(ND list has the form)-2.5 E F2
+(command1)144 432 Q F1(&&)2.5 E F2(command2)2.5 E(command2)108.2 448.8 Q
+F0(is e)2.52 E -.15(xe)-.15 G(cuted if, and only if,).15 E F2(command1)
+2.7 E F0(returns an e)2.5 E(xit status of zero.)-.15 E
+(An OR list has the form)108 465.6 Q F2(command1)144 482.4 Q F4<efef>2.5
+E F2(command2)2.5 E(command2)108.2 504 Q F0 .728(is e)3.248 F -.15(xe)
+-.15 G .729(cuted if and only if).15 F F2(command1)3.429 E F0 .729
+(returns a non-zero e)3.229 F .729(xit status.)-.15 F .729
+(The return status of AND)5.729 F(and OR lists is the e)108 516 Q
 (xit status of the last command e)-.15 E -.15(xe)-.15 G
-(cuted in the list.).15 E F1(Compound Commands)87 520.8 Q F0(A)108 532.8
+(cuted in the list.).15 E F1(Compound Commands)87 532.8 Q F0(A)108 544.8
 Q F2(compound command)2.5 E F0(is one of the follo)2.5 E(wing:)-.25 E
-(\()108 549.6 Q F2(list)A F0(\))A F2(list)17.11 E F0 .011(is e)2.511 F
+(\()108 561.6 Q F2(list)A F0(\))A F2(list)17.11 E F0 .011(is e)2.512 F
 -.15(xe)-.15 G .011(cuted in a subshell en).15 F .011(vironment \(see)
 -.4 F F3 .011(COMMAND EXECUTION ENVIR)2.511 F(ONMENT)-.27 E F0(belo)
-2.262 E(w\).)-.25 E -1.11(Va)144 561.6 S 1.064(riable assignments and b)
+2.261 E(w\).)-.25 E -1.11(Va)144 573.6 S 1.063(riable assignments and b)
 1.11 F 1.064(uiltin commands that af)-.2 F 1.064(fect the shell')-.25 F
 3.564(se)-.55 G -.4(nv)-3.564 G 1.064(ironment do not remain in).4 F(ef)
-144 573.6 Q(fect after the command completes.)-.25 E
+144 585.6 Q(fect after the command completes.)-.25 E
 (The return status is the e)5 E(xit status of)-.15 E F2(list)2.5 E F0(.)
-A({)108 590.4 Q F2(list)2.5 E F0 2.5(;})C F2(list)3.89 E F0 .401
-(is simply e)2.901 F -.15(xe)-.15 G .401(cuted in the current shell en)
-.15 F(vironment.)-.4 E F2(list)5.401 E F0 .402
-(must be terminated with a ne)2.901 F .402(wline or)-.25 F 3.215
-(semicolon. This)144 602.4 R .715(is kno)3.215 F .715(wn as a)-.25 F F2
+A({)108 602.4 Q F2(list)2.5 E F0 2.5(;})C F2(list)3.89 E F0 .402
+(is simply e)2.902 F -.15(xe)-.15 G .401(cuted in the current shell en)
+.15 F(vironment.)-.4 E F2(list)5.401 E F0 .401
+(must be terminated with a ne)2.901 F .401(wline or)-.25 F 3.214
+(semicolon. This)144 614.4 R .714(is kno)3.214 F .714(wn as a)-.25 F F2
 (gr)3.215 E .715(oup command)-.45 F F0 5.715(.T)C .715
-(he return status is the e)-5.715 F .714(xit status of)-.15 F F2(list)
-3.214 E F0 5.714(.N)C(ote)-5.714 E .219(that unlik)144 614.4 R 2.719(et)
--.1 G .219(he metacharacters)-2.719 F F1(\()2.719 E F0(and)2.719 E F1
-(\))2.719 E F0(,)A F1({)2.719 E F0(and)2.719 E F1(})2.719 E F0(are)2.719
-E F2 -.37(re)2.72 G .22(served wor).37 F(ds)-.37 E F0 .22
-(and must occur where a reserv)2.72 F(ed)-.15 E -.1(wo)144 626.4 S .257
-(rd is permitted to be recognized.).1 F .257(Since the)5.257 F 2.757(yd)
--.15 G 2.756(on)-2.757 G .256(ot cause a w)-2.756 F .256(ord break, the)
--.1 F 2.756(ym)-.15 G .256(ust be separated)-2.756 F(from)144 638.4 Q F2
+(he return status is the e)-5.715 F .715(xit status of)-.15 F F2(list)
+3.215 E F0 5.715(.N)C(ote)-5.715 E .22(that unlik)144 626.4 R 2.72(et)
+-.1 G .22(he metacharacters)-2.72 F F1(\()2.72 E F0(and)2.72 E F1(\))
+2.72 E F0(,)A F1({)2.72 E F0(and)2.72 E F1(})2.719 E F0(are)2.719 E F2
+-.37(re)2.719 G .219(served wor).37 F(ds)-.37 E F0 .219
+(and must occur where a reserv)2.719 F(ed)-.15 E -.1(wo)144 638.4 S .256
+(rd is permitted to be recognized.).1 F .256(Since the)5.256 F 2.756(yd)
+-.15 G 2.756(on)-2.756 G .257(ot cause a w)-2.756 F .257(ord break, the)
+-.1 F 2.757(ym)-.15 G .257(ust be separated)-2.757 F(from)144 650.4 Q F2
 (list)2.5 E F0(by whitespace or another shell metacharacter)2.5 E(.)-.55
-E(\(\()108 655.2 Q F2 -.2(ex)C(pr).2 E(ession)-.37 E F0(\)\))A(The)144
-667.2 Q F2 -.2(ex)2.551 G(pr).2 E(ession)-.37 E F0 .051(is e)2.551 F
+E(\(\()108 667.2 Q F2 -.2(ex)C(pr).2 E(ession)-.37 E F0(\)\))A(The)144
+679.2 Q F2 -.2(ex)2.552 G(pr).2 E(ession)-.37 E F0 .052(is e)2.552 F
 -.25(va)-.25 G .051(luated according to the rules described belo).25 F
-2.552(wu)-.25 G(nder)-2.552 E F3 .052(ARITHMETIC EV)2.552 F(ALU)-1.215 E
-(A-)-.54 E(TION)144 679.2 Q/F5 9/Times-Roman@0 SF(.)A F0 .411(If the v)
-4.911 F .411(alue of the e)-.25 F .411(xpression is non-zero, the retur\
-n status is 0; otherwise the return status)-.15 F(is 1.)144 691.2 Q
+2.551(wu)-.25 G(nder)-2.551 E F3 .051(ARITHMETIC EV)2.551 F(ALU)-1.215 E
+(A-)-.54 E(TION)144 691.2 Q/F5 9/Times-Roman@0 SF(.)A F0 .411(If the v)
+4.91 F .411(alue of the e)-.25 F .411(xpression is non-zero, the return\
+ status is 0; otherwise the return status)-.15 F(is 1.)144 703.2 Q
 (This is e)5 E(xactly equi)-.15 E -.25(va)-.25 G(lent to).25 E F1(let ")
 2.5 E F2 -.2(ex)C(pr).2 E(ession)-.37 E F1(")A F0(.)A(GNU Bash-3.2)72
-768 Q(2008 February 22)138.46 E(4)193.45 E 0 Cg EP
+768 Q(2008 April 5)148.455 E(4)203.445 E 0 Cg EP
 %%Page: 5 5
 %%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/F2 10/Times-Italic@0 SF -.2(ex)
-2.5 G(pr).2 E(ession)-.37 E F1(]])2.5 E F0 1.299
+2.5 G(pr).2 E(ession)-.37 E F1(]])2.5 E F0 1.3
 (Return a status of 0 or 1 depending on the e)144 96 R -.25(va)-.25 G
-1.3(luation of the conditional e).25 F(xpression)-.15 E F2 -.2(ex)3.8 G
-(pr).2 E(ession)-.37 E F0(.)A 2.274
+1.299(luation of the conditional e).25 F(xpression)-.15 E F2 -.2(ex)
+3.799 G(pr).2 E(ession)-.37 E F0(.)A 2.273
 (Expressions are composed of the primaries described belo)144 108 R
-4.773(wu)-.25 G(nder)-4.773 E/F3 9/Times-Bold@0 SF(CONDITION)4.773 E
-2.273(AL EXPRES-)-.18 F(SIONS)144 120 Q/F4 9/Times-Roman@0 SF(.)A F0 -.8
-(Wo)5.632 G 1.133(rd splitting and pathname e).8 F 1.133
+4.774(wu)-.25 G(nder)-4.774 E/F3 9/Times-Bold@0 SF(CONDITION)4.774 E
+2.274(AL EXPRES-)-.18 F(SIONS)144 120 Q/F4 9/Times-Roman@0 SF(.)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
-F1([[)3.633 E F0(and)144 132 Q F1(]])2.964 E F0 2.964(;t)C .464(ilde e)
--2.964 F .464(xpansion, parameter and v)-.15 F .464(ariable e)-.25 F
-.463(xpansion, arithmetic e)-.15 F .463(xpansion, command substi-)-.15 F
+F1([[)3.632 E F0(and)144 132 Q F1(]])2.963 E F0 2.963(;t)C .463(ilde e)
+-2.963 F .464(xpansion, parameter and v)-.15 F .464(ariable e)-.25 F
+.464(xpansion, arithmetic e)-.15 F .464(xpansion, command substi-)-.15 F
 1.081(tution, process substitution, and quote remo)144 144 R -.25(va)
 -.15 G 3.581(la).25 G 1.081(re performed.)-3.581 F 1.081
-(Conditional operators such as)6.081 F F1<ad66>3.581 E F0
-(must be unquoted to be recognized as primaries.)144 156 Q .503
-(When the)144 174 R F1(==)3.003 E F0(and)3.002 E F1(!=)3.002 E F0 .502(\
+(Conditional operators such as)6.081 F F1<ad66>3.58 E F0
+(must be unquoted to be recognized as primaries.)144 156 Q .502
+(When the)144 174 R F1(==)3.002 E F0(and)3.002 E F1(!=)3.002 E F0 .502(\
 operators are used, the string to the right of the operator is consider\
-ed a pat-)3.002 F 1.224
+ed a pat-)3.002 F 1.225
 (tern and matched according to the rules described belo)144 186 R 3.724
-(wu)-.25 G(nder)-3.724 E F1 -.1(Pa)3.724 G(tter).1 E 3.725(nM)-.15 G
-(atching)-3.725 E F0 6.225(.I)C 3.725(ft)-6.225 G 1.225(he shell)-3.725
-F(option)144 198 Q F1(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 2.751(characters. The)144 210 R
-.251(return v)2.751 F .251(alue is 0 if the string matches \()-.25 F F1
+(wu)-.25 G(nder)-3.724 E F1 -.1(Pa)3.724 G(tter).1 E 3.724(nM)-.15 G
+(atching)-3.724 E F0 6.224(.I)C 3.724(ft)-6.224 G 1.224(he shell)-3.724
+F(option)144 198 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.752(characters. The)144 210 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 .252(he pattern, and)-2.751 F 2.5(1o)144 222 S 2.5
+(!=)A F0 2.751(\)t)C .251(he pattern, and)-2.751 F 2.5(1o)144 222 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 240 R(,)-.4 E F1(=~)2.743 E F0 2.743
@@ -736,35 +737,35 @@ force it to be matched as a string.)-2.5 E .243
 (ilable, with the same precedence as).25 F F1(==)2.743 E F0(and)2.743 E
 F1(!=)2.743 E F0 5.243(.W)C .243(hen it is)-5.243 F 1.953
 (used, the string to the right of the operator is considered an e)144
-252 R 1.954(xtended re)-.15 F 1.954(gular e)-.15 F 1.954(xpression and)
+252 R 1.953(xtended re)-.15 F 1.953(gular e)-.15 F 1.953(xpression and)
 -.15 F .207(matched accordingly \(as in)144 264 R F2 -.37(re)2.707 G -.1
 (ge)-.03 G(x)-.1 E F0 2.707(\(3\)\). The)B .207(return v)2.707 F .207
-(alue is 0 if the string matches the pattern, and 1)-.25 F 3.345
-(otherwise. If)144 276 R .845(the re)3.345 F .845(gular e)-.15 F .846
+(alue is 0 if the string matches the pattern, and 1)-.25 F 3.346
+(otherwise. If)144 276 R .846(the re)3.346 F .846(gular e)-.15 F .845
 (xpression is syntactically incorrect, the conditional e)-.15 F
-(xpression')-.15 E 3.346(sr)-.55 G(eturn)-3.346 E -.25(va)144 288 S .667
+(xpression')-.15 E 3.345(sr)-.55 G(eturn)-3.345 E -.25(va)144 288 S .666
 (lue is 2.).25 F .667(If the shell option)5.667 F F1(nocasematch)3.167 E
 F0 .667(is enabled, the match is performed without re)3.167 F -.05(ga)
--.15 G .666(rd to).05 F .378(the case of alphabetic characters.)144 300
-R(An)5.378 E 2.878(yp)-.15 G .378
-(art of the pattern may be quoted to force it to be matched)-2.878 F
+-.15 G .667(rd to).05 F .379(the case of alphabetic characters.)144 300
+R(An)5.379 E 2.879(yp)-.15 G .378
+(art of the pattern may be quoted to force it to be matched)-2.879 F
 .265(as a string.)144 312 R .265
 (Substrings matched by parenthesized sube)5.265 F .265
 (xpressions within the re)-.15 F .265(gular e)-.15 F .265(xpression are)
--.15 F(sa)144 324 Q -.15(ve)-.2 G 3.117(di).15 G 3.117(nt)-3.117 G .617
-(he array v)-3.117 F(ariable)-.25 E F1 -.3(BA)3.117 G(SH_REMA).3 E(TCH)
--.95 E F0 5.617(.T)C .617(he element of)-5.617 F F1 -.3(BA)3.118 G
-(SH_REMA).3 E(TCH)-.95 E F0 .618(with inde)3.118 F(x)-.15 E 6.883(0i)144
-336 S 6.883(st)-6.883 G 4.382
-(he portion of the string matching the entire re)-6.883 F 4.382(gular e)
--.15 F 6.882(xpression. The)-.15 F 4.382(element of)6.882 F F1 -.3(BA)
-144 348 S(SH_REMA).3 E(TCH)-.95 E F0 2.087(with inde)4.587 F(x)-.15 E F2
-(n)4.587 E F0 2.088(is the portion of the string matching the)4.587 F F2
-(n)4.588 E F0 2.088(th parenthesized)B(sube)144 360 Q(xpression.)-.15 E
-.786(Expressions may be combined using the follo)144 378 R .785
+-.15 F(sa)144 324 Q -.15(ve)-.2 G 3.118(di).15 G 3.118(nt)-3.118 G .618
+(he array v)-3.118 F(ariable)-.25 E F1 -.3(BA)3.117 G(SH_REMA).3 E(TCH)
+-.95 E F0 5.617(.T)C .617(he element of)-5.617 F F1 -.3(BA)3.117 G
+(SH_REMA).3 E(TCH)-.95 E F0 .617(with inde)3.117 F(x)-.15 E 6.882(0i)144
+336 S 6.882(st)-6.882 G 4.382
+(he portion of the string matching the entire re)-6.882 F 4.382(gular e)
+-.15 F 6.882(xpression. The)-.15 F 4.383(element of)6.883 F F1 -.3(BA)
+144 348 S(SH_REMA).3 E(TCH)-.95 E F0 2.088(with inde)4.588 F(x)-.15 E F2
+(n)4.588 E F0 2.088(is the portion of the string matching the)4.588 F F2
+(n)4.587 E F0 2.087(th parenthesized)B(sube)144 360 Q(xpression.)-.15 E
+.785(Expressions may be combined using the follo)144 378 R .786
 (wing operators, listed in decreasing order of prece-)-.25 F(dence:)144
 390 Q F1(\()144 408 Q F2 -.2(ex)2.5 G(pr).2 E(ession)-.37 E F1(\))2.5 E
-F0 .522(Returns the v)180 420 R .522(alue of)-.25 F F2 -.2(ex)3.022 G
+F0 .523(Returns the v)180 420 R .522(alue of)-.25 F F2 -.2(ex)3.022 G
 (pr).2 E(ession)-.37 E F0 5.522(.T)C .522(his may be used to o)-5.522 F
 -.15(ve)-.15 G .522(rride the normal precedence of).15 F(operators.)180
 432 Q F1(!)144 444 Q F2 -.2(ex)2.5 G(pr).2 E(ession)-.37 E F0 -.35(Tr)
@@ -776,55 +777,55 @@ E F2 -.2(ex)2.5 G(pr).2 E(ession1)-.37 E F0(and)2.5 E F2 -.2(ex)2.5 G
 (ession1)-.37 E/F5 10/Symbol SF<efef>2.5 E F2 -.2(ex)2.5 G(pr).2 E
 (ession2)-.37 E F0 -.35(Tr)180 504 S(ue if either).35 E F2 -.2(ex)2.5 G
 (pr).2 E(ession1)-.37 E F0(or)2.5 E F2 -.2(ex)2.5 G(pr).2 E(ession2)-.37
-E F0(is true.)2.52 E(The)144 520.8 Q F1(&&)3.299 E F0(and)3.299 E F5
+E F0(is true.)2.52 E(The)144 520.8 Q F1(&&)3.298 E F0(and)3.298 E F5
 <efef>3.298 E F0 .798(operators do not e)3.298 F -.25(va)-.25 G(luate)
 .25 E F2 -.2(ex)3.298 G(pr).2 E(ession2)-.37 E F0 .798(if the v)3.298 F
-.798(alue of)-.25 F F2 -.2(ex)3.298 G(pr).2 E(ession1)-.37 E F0 .798
-(is suf)3.298 F .798(\214cient to)-.25 F(determine the return v)144
+.798(alue of)-.25 F F2 -.2(ex)3.298 G(pr).2 E(ession1)-.37 E F0 .799
+(is suf)3.298 F .799(\214cient to)-.25 F(determine the return v)144
 532.8 Q(alue of the entire conditional e)-.25 E(xpression.)-.15 E F1
 -.25(fo)108 549.6 S(r).25 E F2(name)2.5 E F0([)2.5 E F1(in)2.5 E F2(wor)
 2.5 E(d)-.37 E F0 2.5(];)2.5 G F1(do)A F2(list)2.5 E F0(;)2.5 E F1(done)
-2.5 E F0 .423(The list of w)144 561.6 R .423(ords follo)-.1 F(wing)-.25
-E F1(in)2.923 E F0 .423(is e)2.923 F .423
-(xpanded, generating a list of items.)-.15 F .424(The v)5.424 F(ariable)
--.25 E F2(name)2.924 E F0 .424(is set to)2.924 F .653
+2.5 E F0 .424(The list of w)144 561.6 R .424(ords follo)-.1 F(wing)-.25
+E F1(in)2.924 E F0 .423(is e)2.924 F .423
+(xpanded, generating a list of items.)-.15 F .423(The v)5.423 F(ariable)
+-.25 E F2(name)2.923 E F0 .423(is set to)2.923 F .653
 (each element of this list in turn, and)144 573.6 R F2(list)3.153 E F0
 .653(is e)3.153 F -.15(xe)-.15 G .653(cuted each time.).15 F .653
 (If the)5.653 F F1(in)3.153 E F2(wor)3.153 E(d)-.37 E F0 .653
-(is omitted, the)3.153 F F1 -.25(fo)3.153 G(r).25 E F0 .648(command e)
-144 585.6 R -.15(xe)-.15 G(cutes).15 E F2(list)3.148 E F0 .648
+(is omitted, the)3.153 F F1 -.25(fo)3.153 G(r).25 E F0 .649(command e)
+144 585.6 R -.15(xe)-.15 G(cutes).15 E F2(list)3.149 E F0 .648
 (once for each positional parameter that is set \(see)3.148 F F3 -.666
-(PA)3.149 G(RAMETERS).666 E F0(belo)2.899 E(w\).)-.25 E .154
+(PA)3.148 G(RAMETERS).666 E F0(belo)2.898 E(w\).)-.25 E .153
 (The return status is the e)144 597.6 R .153
-(xit status of the last command that e)-.15 F -.15(xe)-.15 G 2.653
-(cutes. If).15 F .153(the e)2.653 F .153(xpansion of the items)-.15 F
+(xit status of the last command that e)-.15 F -.15(xe)-.15 G 2.654
+(cutes. If).15 F .154(the e)2.654 F .154(xpansion of the items)-.15 F
 (follo)144 609.6 Q(wing)-.25 E F1(in)2.5 E F0
 (results in an empty list, no commands are e)2.5 E -.15(xe)-.15 G
 (cuted, and the return status is 0.).15 E F1 -.25(fo)108 626.4 S(r).25 E
 F0(\(\()2.5 E F2 -.2(ex)2.5 G(pr1).2 E F0(;)2.5 E F2 -.2(ex)2.5 G(pr2).2
 E F0(;)2.5 E F2 -.2(ex)2.5 G(pr3).2 E F0(\)\) ;)2.5 E F1(do)2.5 E F2
-(list)2.5 E F0(;)2.5 E F1(done)2.5 E F0 1.235(First, the arithmetic e)
-144 638.4 R(xpression)-.15 E F2 -.2(ex)3.735 G(pr1).2 E F0 1.235(is e)
-3.735 F -.25(va)-.25 G 1.236
-(luated according to the rules described belo).25 F 3.736(wu)-.25 G
-(nder)-3.736 E F3 .562(ARITHMETIC EV)144 650.4 R(ALU)-1.215 E -.855(AT)
--.54 G(ION).855 E F4(.)A F0 .562(The arithmetic e)5.062 F(xpression)-.15
-E F2 -.2(ex)3.062 G(pr2).2 E F0 .561(is then e)3.061 F -.25(va)-.25 G
-.561(luated repeatedly until).25 F .591(it e)144 662.4 R -.25(va)-.25 G
-.591(luates to zero.).25 F .592(Each time)5.591 F F2 -.2(ex)3.092 G(pr2)
+(list)2.5 E F0(;)2.5 E F1(done)2.5 E F0 1.236(First, the arithmetic e)
+144 638.4 R(xpression)-.15 E F2 -.2(ex)3.736 G(pr1).2 E F0 1.235(is e)
+3.736 F -.25(va)-.25 G 1.235
+(luated according to the rules described belo).25 F 3.735(wu)-.25 G
+(nder)-3.735 E F3 .561(ARITHMETIC EV)144 650.4 R(ALU)-1.215 E -.855(AT)
+-.54 G(ION).855 E F4(.)A F0 .561(The arithmetic e)5.061 F(xpression)-.15
+E F2 -.2(ex)3.061 G(pr2).2 E F0 .562(is then e)3.062 F -.25(va)-.25 G
+.562(luated repeatedly until).25 F .592(it e)144 662.4 R -.25(va)-.25 G
+.592(luates to zero.).25 F .592(Each time)5.592 F F2 -.2(ex)3.092 G(pr2)
 .2 E F0 -.25(eva)3.092 G .592(luates to a non-zero v).25 F(alue,)-.25 E
-F2(list)3.092 E F0 .592(is e)3.092 F -.15(xe)-.15 G .592
-(cuted and the arith-).15 F .229(metic e)144 674.4 R(xpression)-.15 E F2
--.2(ex)2.729 G(pr3).2 E F0 .229(is e)2.729 F -.25(va)-.25 G 2.729
+F2(list)3.092 E F0 .591(is e)3.092 F -.15(xe)-.15 G .591
+(cuted and the arith-).15 F .228(metic e)144 674.4 R(xpression)-.15 E F2
+-.2(ex)2.728 G(pr3).2 E F0 .229(is e)2.728 F -.25(va)-.25 G 2.729
 (luated. If).25 F(an)2.729 E 2.729(ye)-.15 G .229
 (xpression is omitted, it beha)-2.879 F -.15(ve)-.2 G 2.729(sa).15 G
-2.729(si)-2.729 G 2.729(fi)-2.729 G 2.728(te)-2.729 G -.25(va)-2.978 G
-.228(luates to 1.).25 F .227(The return v)144 686.4 R .227
-(alue is the e)-.25 F .227(xit status of the last command in)-.15 F F2
-(list)2.728 E F0 .228(that is e)2.728 F -.15(xe)-.15 G .228(cuted, or f)
-.15 F .228(alse if an)-.1 F 2.728(yo)-.15 G 2.728(ft)-2.728 G(he)-2.728
+2.729(si)-2.729 G 2.729(fi)-2.729 G 2.729(te)-2.729 G -.25(va)-2.979 G
+.229(luates to 1.).25 F .228(The return v)144 686.4 R .228
+(alue is the e)-.25 F .228(xit status of the last command in)-.15 F F2
+(list)2.728 E F0 .227(that is e)2.728 F -.15(xe)-.15 G .227(cuted, or f)
+.15 F .227(alse if an)-.1 F 2.727(yo)-.15 G 2.727(ft)-2.727 G(he)-2.727
 E -.15(ex)144 698.4 S(pressions is in).15 E -.25(va)-.4 G(lid.).25 E
-(GNU Bash-3.2)72 768 Q(2008 February 22)138.46 E(5)193.45 E 0 Cg EP
+(GNU Bash-3.2)72 768 Q(2008 April 5)148.455 E(5)203.445 E 0 Cg EP
 %%Page: 6 6
 %%BeginPageSetup
 BP
@@ -832,110 +833,110 @@ BP
 /F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
 -.35 E/F1 10/Times-Bold@0 SF(select)108 84 Q/F2 10/Times-Italic@0 SF
 (name)2.5 E F0([)2.5 E F1(in)2.5 E F2(wor)2.5 E(d)-.37 E F0 2.5(];)2.5 G
-F1(do)A F2(list)2.5 E F0(;)2.5 E F1(done)2.5 E F0 .433(The list of w)144
-96 R .433(ords follo)-.1 F(wing)-.25 E F1(in)2.933 E F0 .432(is e)2.933
-F .432(xpanded, generating a list of items.)-.15 F .432(The set of e)
-5.432 F .432(xpanded w)-.15 F(ords)-.1 E .842
+F1(do)A F2(list)2.5 E F0(;)2.5 E F1(done)2.5 E F0 .432(The list of w)144
+96 R .432(ords follo)-.1 F(wing)-.25 E F1(in)2.932 E F0 .432(is e)2.932
+F .432(xpanded, generating a list of items.)-.15 F .433(The set of e)
+5.433 F .433(xpanded w)-.15 F(ords)-.1 E .843
 (is printed on the standard error)144 108 R 3.342(,e)-.4 G .842
 (ach preceded by a number)-3.342 F 5.842(.I)-.55 G 3.342(ft)-5.842 G(he)
--3.342 E F1(in)3.342 E F2(wor)3.342 E(d)-.37 E F0 .843
-(is omitted, the posi-)3.343 F .064(tional parameters are printed \(see)
+-3.342 E F1(in)3.342 E F2(wor)3.342 E(d)-.37 E F0 .842
+(is omitted, the posi-)3.342 F .064(tional parameters are printed \(see)
 144 120 R/F3 9/Times-Bold@0 SF -.666(PA)2.564 G(RAMETERS).666 E F0(belo)
 2.314 E 2.564(w\). The)-.25 F F1(PS3)2.564 E F0 .064
-(prompt is then displayed and a)2.564 F .213
+(prompt is then displayed and a)2.564 F .214
 (line read from the standard input.)144 132 R .213
-(If the line consists of a number corresponding to one of the dis-)5.213
-F 1.538(played w)144 144 R 1.538(ords, then the v)-.1 F 1.538(alue of)
--.25 F F2(name)4.398 E F0 1.537(is set to that w)4.218 F 4.037(ord. If)
--.1 F 1.537(the line is empty)4.037 F 4.037(,t)-.65 G 1.537(he w)-4.037
-F 1.537(ords and)-.1 F .065(prompt are displayed ag)144 156 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 F2(name)144 168 Q F0 .76(to be set to null.)3.44 F .76
-(The line read is sa)5.76 F -.15(ve)-.2 G 3.259(di).15 G 3.259(nt)-3.259
-G .759(he v)-3.259 F(ariable)-.25 E F1(REPL)3.259 E(Y)-.92 E F0 5.759
-(.T)C(he)-5.759 E F2(list)3.349 E F0 .759(is e)3.939 F -.15(xe)-.15 G
-.759(cuted after).15 F .071(each selection until a)144 180 R F1(br)2.571
-E(eak)-.18 E F0 .071(command is e)2.571 F -.15(xe)-.15 G 2.571
+(If the line consists of a number corresponding to one of the dis-)5.214
+F 1.537(played w)144 144 R 1.537(ords, then the v)-.1 F 1.537(alue of)
+-.25 F F2(name)4.397 E F0 1.537(is set to that w)4.217 F 4.037(ord. If)
+-.1 F 1.538(the line is empty)4.038 F 4.038(,t)-.65 G 1.538(he w)-4.038
+F 1.538(ords and)-.1 F .066(prompt are displayed ag)144 156 R 2.566
+(ain. If)-.05 F .065(EOF is read, the command completes.)2.566 F(An)
+5.065 E 2.565(yo)-.15 G .065(ther v)-2.565 F .065(alue read causes)-.25
+F F2(name)144 168 Q F0 .759(to be set to null.)3.439 F .759
+(The line read is sa)5.759 F -.15(ve)-.2 G 3.26(di).15 G 3.26(nt)-3.26 G
+.76(he v)-3.26 F(ariable)-.25 E F1(REPL)3.26 E(Y)-.92 E F0 5.76(.T)C(he)
+-5.76 E F2(list)3.35 E F0 .76(is e)3.94 F -.15(xe)-.15 G .76
+(cuted after).15 F .072(each selection until a)144 180 R F1(br)2.571 E
+(eak)-.18 E F0 .071(command is e)2.571 F -.15(xe)-.15 G 2.571
 (cuted. The).15 F -.15(ex)2.571 G .071(it status of).15 F F1(select)
-2.571 E F0 .071(is the e)2.571 F .072(xit status of the)-.15 F
+2.571 E F0 .071(is the e)2.571 F .071(xit status of the)-.15 F
 (last command e)144 192 Q -.15(xe)-.15 G(cuted in).15 E F2(list)2.5 E F0
 2.5(,o).68 G 2.5(rz)-2.5 G(ero if no commands were e)-2.5 E -.15(xe)-.15
 G(cuted.).15 E F1(case)108 208.8 Q F2(wor)2.5 E(d)-.37 E F1(in)2.5 E F0
 2.5([[)2.5 G(\(])-2.5 E F2(pattern)2.5 E F0([)2.5 E F1(|)2.5 E F2
 (pattern)2.5 E F0 2.5(].)2.5 G(.. \))-2.5 E F2(list)2.5 E F0(;; ] ...)
-2.5 E F1(esac)2.5 E F0(A)144 220.8 Q F1(case)3.265 E F0 .764
-(command \214rst e)3.265 F(xpands)-.15 E F2(wor)3.264 E(d)-.37 E F0
+2.5 E F1(esac)2.5 E F0(A)144 220.8 Q F1(case)3.264 E F0 .764
+(command \214rst e)3.264 F(xpands)-.15 E F2(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
-F2(pattern)3.264 E F0 .764(in turn, using the)3.264 F .595
+F2(pattern)3.264 E F0 .765(in turn, using the)3.264 F .596
 (same matching rules as for pathname e)144 232.8 R .595(xpansion \(see)
--.15 F F1 -.1(Pa)3.095 G .596(thname Expansion).1 F F0(belo)3.096 E
-3.096(w\). The)-.25 F F2(wor)3.096 E(d)-.37 E F0(is)3.096 E -.15(ex)144
+-.15 F F1 -.1(Pa)3.095 G .595(thname Expansion).1 F F0(belo)3.095 E
+3.095(w\). The)-.25 F F2(wor)3.095 E(d)-.37 E F0(is)3.095 E -.15(ex)144
 244.8 S 1.092(panded using tilde e).15 F 1.092
 (xpansion, parameter and v)-.15 F 1.092(ariable e)-.25 F 1.092
 (xpansion, arithmetic substitution, com-)-.15 F 1.268
 (mand substitution, process substitution and quote remo)144 256.8 R -.25
 (va)-.15 G 3.768(l. Each).25 F F2(pattern)3.768 E F0 -.15(ex)3.768 G
-1.269(amined is e).15 F(xpanded)-.15 E .353(using tilde e)144 268.8 R
+1.268(amined is e).15 F(xpanded)-.15 E .353(using tilde e)144 268.8 R
 .353(xpansion, parameter and v)-.15 F .353(ariable e)-.25 F .353
-(xpansion, arithmetic substitution, command substi-)-.15 F 1.516
-(tution, and process substitution.)144 280.8 R 1.516
-(If the shell option)6.516 F F1(nocasematch)4.016 E F0 1.517
-(is enabled, the match is per)4.017 F(-)-.2 E 1.347(formed without re)
-144 292.8 R -.05(ga)-.15 G 1.347
-(rd to the case of alphabetic characters.).05 F 1.346
+(xpansion, arithmetic substitution, command substi-)-.15 F 1.517
+(tution, and process substitution.)144 280.8 R 1.517
+(If the shell option)6.517 F F1(nocasematch)4.016 E F0 1.516
+(is enabled, the match is per)4.016 F(-)-.2 E 1.346(formed without re)
+144 292.8 R -.05(ga)-.15 G 1.346
+(rd to the case of alphabetic characters.).05 F 1.347
 (When a match is found, the corre-)6.347 F(sponding)144 304.8 Q F2(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 316.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)
+3.58 E F0 1.08(is e)3.58 F -.15(xe)-.15 G 3.58(cuted. After).15 F 1.079
+(the \214rst match, no subsequent matches are attempted.)3.579 F 1.079
+(The e)6.079 F(xit)-.15 E .006(status is zero if no pattern matches.)144
+316.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 .007(cuted in)
 .15 F F2(list)144 328.8 Q F0(.)A F1(if)108 345.6 Q F2(list)2.5 E F0(;)A
 F1(then)2.5 E F2(list;)2.5 E F0([)2.5 E F1(elif)2.5 E F2(list)2.5 E F0
 (;)A F1(then)2.5 E F2(list)2.5 E F0 2.5(;].)C(.. [)-2.5 E F1(else)2.5 E
-F2(list)2.5 E F0 2.5(;])C F1<8c>A F0(The)144 357.6 Q F1(if)2.977 E F2
-(list)3.067 E F0 .478(is e)3.658 F -.15(xe)-.15 G 2.978(cuted. If).15 F
+F2(list)2.5 E F0 2.5(;])C F1<8c>A F0(The)144 357.6 Q F1(if)2.978 E F2
+(list)3.068 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 F1(then)2.978 E
 F2(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 F1(elif)2.978 E F2(list)2.978 E F0
-1.088(is e)144 369.6 R -.15(xe)-.15 G 1.088(cuted in turn, and if its e)
+(cuted. Otherwise,).15 F(each)2.978 E F1(elif)2.977 E F2(list)2.977 E F0
+1.087(is e)144 369.6 R -.15(xe)-.15 G 1.087(cuted in turn, and if its e)
 .15 F 1.087(xit status is zero, the corresponding)-.15 F F1(then)3.587 E
-F2(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 381.6 R .103
-(Otherwise, the)5.103 F F1(else)2.603 E F2(list)2.603 E F0 .103(is e)
+F2(list)3.587 E F0 1.088(is e)3.588 F -.15(xe)-.15 G 1.088
+(cuted and the).15 F .104(command completes.)144 381.6 R .103
+(Otherwise, the)5.104 F F1(else)2.603 E F2(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
+.103(xit status is the e)-.15 F .103(xit sta-)-.15 F
 (tus of the last command e)144 393.6 Q -.15(xe)-.15 G
 (cuted, or zero if no condition tested true.).15 E F1(while)108 410.4 Q
 F2(list)2.5 E F0(;)A F1(do)2.5 E F2(list)2.5 E F0(;)A F1(done)2.5 E
 (until)108 422.4 Q F2(list)2.5 E F0(;)A F1(do)2.5 E F2(list)2.5 E F0(;)A
-F1(done)2.5 E F0(The)144 434.4 Q F1(while)3.104 E F0 .603
-(command continuously e)3.104 F -.15(xe)-.15 G .603(cutes the).15 F F1
+F1(done)2.5 E F0(The)144 434.4 Q F1(while)3.103 E F0 .603
+(command continuously e)3.103 F -.15(xe)-.15 G .603(cutes the).15 F F1
 (do)3.103 E F2(list)3.103 E F0 .603(as long as the last command in)3.103
-F F2(list)3.103 E F0(returns)3.103 E .47(an e)144 446.4 R .47
-(xit status of zero.)-.15 F(The)5.47 E F1(until)2.97 E F0 .471
-(command is identical to the)2.97 F F1(while)2.971 E F0 .471(command, e)
-2.971 F .471(xcept that the test)-.15 F .096(is ne)144 458.4 R -.05(ga)
--.15 G .096(ted; the).05 F F1(do)2.596 E F2(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
-F2(list)2.685 E F0 .095(returns a non-zero e)3.275 F .095(xit status.)
--.15 F 1.306(The e)144 470.4 R 1.306(xit status of the)-.15 F F1(while)
-3.806 E F0(and)3.806 E F1(until)3.807 E F0 1.307(commands is the e)3.807
-F 1.307(xit status of the last)-.15 F F1(do)3.807 E F2(list)3.807 E F0
-(command)3.807 E -.15(exe)144 482.4 S(cuted, or zero if none w).15 E
+F F2(list)3.104 E F0(returns)3.104 E .471(an e)144 446.4 R .471
+(xit status of zero.)-.15 F(The)5.471 E F1(until)2.971 E F0 .471
+(command is identical to the)2.971 F F1(while)2.97 E F0 .47(command, e)
+2.97 F .47(xcept that the test)-.15 F .095(is ne)144 458.4 R -.05(ga)
+-.15 G .095(ted; the).05 F F1(do)2.595 E F2(list)2.685 E F0 .095(is e)
+3.275 F -.15(xe)-.15 G .095(cuted as long as the last command in).15 F
+F2(list)2.685 E F0 .096(returns a non-zero e)3.276 F .096(xit status.)
+-.15 F 1.307(The e)144 470.4 R 1.307(xit status of the)-.15 F F1(while)
+3.807 E F0(and)3.807 E F1(until)3.807 E F0 1.307(commands is the e)3.807
+F 1.306(xit status of the last)-.15 F F1(do)3.806 E F2(list)3.806 E F0
+(command)3.806 E -.15(exe)144 482.4 S(cuted, or zero if none w).15 E
 (as e)-.1 E -.15(xe)-.15 G(cuted.).15 E F1(Shell Function De\214nitions)
-87 499.2 Q F0 2.698(As)108 511.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
+87 499.2 Q F0 2.697(As)108 511.2 S .198
+(hell function is an object that is called lik)-2.697 F 2.698(eas)-.1 G
+.198(imple command and e)-2.698 F -.15(xe)-.15 G .198
 (cutes a compound command with).15 F 2.5(an)108 523.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 540 Q F1
 (function)2.5 E F0(])2.5 E F2(name)2.5 E F0(\(\))2.5 E F2
 (compound\255command)2.5 E F0([)2.5 E F2 -.37(re)C(dir).37 E(ection)-.37
-E F0(])A 1.402(This de\214nes a function named)144 552 R F2(name)3.902 E
+E F0(])A 1.403(This de\214nes a function named)144 552 R F2(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 F1
-(function)3.902 E F0 1.402(is optional.)3.902 F 1.403(If the)6.402 F F1
-(function)3.903 E F0(reserv)144 564 Q .162(ed w)-.15 F .162
+(function)3.902 E F0 1.402(is optional.)3.902 F 1.402(If the)6.402 F F1
+(function)3.902 E F0(reserv)144 564 Q .162(ed w)-.15 F .162
 (ord is supplied, the parentheses are optional.)-.1 F(The)5.162 E F2
 (body)2.662 E F0 .162(of the function is the compound)2.662 F(command)
 144 576 Q F2(compound\255command)2.784 E F0(\(see)3.354 E F1 .084
@@ -944,17 +945,17 @@ F0 6.402(.T)C 1.402(he reserv)-6.402 F 1.402(ed w)-.15 F(ord)-.1 E F1
 (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 F1 .044(Compound Commands)
 2.544 F F0(abo)144 600 Q -.15(ve)-.15 G(.).15 E F2(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 F2(name)4.171 E F0 1.671
-(is speci\214ed as the name of a simple)4.171 F 3.009(command. An)144
+6.671 E F0 1.671(is e)4.171 F -.15(xe)-.15 G 1.671(cuted whene).15 F
+-.15(ve)-.25 G(r).15 E F2(name)4.171 E F0 1.671
+(is speci\214ed as the name of a simple)4.171 F 3.008(command. An)144
 612 R 3.009(yr)-.15 G .509(edirections \(see)-3.009 F F3(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 624 R -.15(xe)-.15 G 3.08
-(cuted. The).15 F -.15(ex)3.081 G .581
+(w\) speci\214ed when a function is de\214ned are)-.25 F .581
+(performed when the function is e)144 624 R -.15(xe)-.15 G 3.081
+(cuted. The).15 F -.15(ex)3.081 G .58
 (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
-636 R 2.677(xists. When)-.15 F -.15(exe)2.677 G .177(cuted, the).15 F
+636 R 2.678(xists. When)-.15 F -.15(exe)2.678 G .178(cuted, the).15 F
 -.15(ex)144 648 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
@@ -963,17 +964,17 @@ x error occurs or a readonly function with the same name already e)144
 688.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 F1(interacti)3.482 E -.1
 (ve)-.1 G(_comments).1 E F0 .982(option to the)3.482 F F1(shopt)3.482 E
-F0 -.2(bu)108 700.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 F1(#)3.452 E
-F0 .952(causes that w)3.452 F(ord)-.1 E .605
+F0 -.2(bu)108 700.8 S .952(iltin is enabled \(see).2 F F3 .952(SHELL B)
+3.452 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 F1(#)3.451 E
+F0 .951(causes that w)3.451 F(ord)-.1 E .604
 (and all remaining characters on that line to be ignored.)108 712.8 R
-.604(An interacti)5.605 F .904 -.15(ve s)-.25 H .604(hell without the)
-.15 F F1(interacti)3.104 E -.1(ve)-.1 G(_com-).1 E(ments)108 724.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 F1(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(GNU Bash-3.2)72
-768 Q(2008 February 22)138.46 E(6)193.45 E 0 Cg EP
+.605(An interacti)5.605 F .905 -.15(ve s)-.25 H .605(hell without the)
+.15 F F1(interacti)3.105 E -.1(ve)-.1 G(_com-).1 E(ments)108 724.8 Q F0
+1.337(option enabled does not allo)3.837 F 3.837(wc)-.25 G 3.836
+(omments. The)-3.837 F F1(interacti)3.836 E -.1(ve)-.1 G(_comments).1 E
+F0 1.336(option is on by def)3.836 F 1.336(ault in)-.1 F(GNU Bash-3.2)72
+768 Q(2008 April 5)148.455 E(6)203.445 E 0 Cg EP
 %%Page: 7 7
 %%BeginPageSetup
 BP
@@ -981,71 +982,71 @@ BP
 /F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
 -.35 E(interacti)108 84 Q .3 -.15(ve s)-.25 H(hells.).15 E/F1 10.95
 /Times-Bold@0 SF -.11(QU)72 100.8 S -.438(OT).11 G(ING).438 E/F2 10
-/Times-Italic@0 SF(Quoting)108 112.8 Q F0 .478(is used to remo)2.978 F
+/Times-Italic@0 SF(Quoting)108 112.8 Q F0 .477(is used to remo)2.977 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
+(ords to the shell.)-.1 F .478(Quoting can be)5.478 F .185
 (used to disable special treatment for special characters, to pre)108
-124.8 R -.15(ve)-.25 G .185(nt reserv).15 F .185(ed w)-.15 F .185
+124.8 R -.15(ve)-.25 G .185(nt reserv).15 F .184(ed w)-.15 F .184
 (ords from being recognized as)-.1 F(such, and to pre)108 136.8 Q -.15
-(ve)-.25 G(nt parameter e).15 E(xpansion.)-.15 E .289(Each of the)108
-153.6 R F2(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 9/Times-Bold@0
+(ve)-.25 G(nt parameter e).15 E(xpansion.)-.15 E .288(Each of the)108
+153.6 R F2(metac)2.788 E(har)-.15 E(acter)-.15 E(s)-.1 E F0 .288
+(listed abo)2.788 F .588 -.15(ve u)-.15 H(nder).15 E/F3 9/Times-Bold@0
 SF(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 165.6 Q 1.344
+(quoted if it is to represent itself.)108 165.6 Q 1.345
 (When the command history e)108 182.4 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)
+(YE)-.315 G(XP)-3.594 E(ANSION)-.666 E F0(belo)3.594 E 1.344(w\), the)
 -.25 F F2(history e)108 194.4 Q(xpansion)-.2 E F0(character)2.5 E 2.5
 (,u)-.4 G(sually)-2.5 E/F4 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 211.2 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 228 S .475
-(on-quoted backslash \()-2.975 F F4(\\)A F0 2.974(\)i)C 2.974(st)-2.974
+(ingle quotes, and double quotes.)-2.5 E 2.974(An)108 228 S .474
+(on-quoted backslash \()-2.974 F F4(\\)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 240 Q
-1.553(ws, with the e)-.25 F 1.553(xception of <ne)-.15 F 4.053
+.474(alue of the ne)-.25 F .475(xt character that)-.15 F(follo)108 240 Q
+1.554(ws, with the e)-.25 F 1.553(xception of <ne)-.15 F 4.053
 (wline>. If)-.25 F(a)4.053 E F4(\\)4.053 E F0(<ne)A 1.553
-(wline> pair appears, and the backslash is not itself)-.25 F 1.123
-(quoted, the)108 252 R F4(\\)3.623 E F0(<ne)A 1.122
+(wline> pair appears, and the backslash is not itself)-.25 F 1.122
+(quoted, the)108 252 R F4(\\)3.622 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
+-.15(ve)-.15 G 3.622(df).15 G 1.123(rom the input stream and)-3.622 F
 (ef)108 264 Q(fecti)-.25 E -.15(ve)-.25 G(ly ignored\).).15 E .295
 (Enclosing characters in single quotes preserv)108 280.8 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 292.8 Q -.15(ve)
--.25 G 2.5(nw).15 G(hen preceded by a backslash.)-2.5 E .034
+-.25 G 2.5(nw).15 G(hen preceded by a backslash.)-2.5 E .033
 (Enclosing characters in double quotes preserv)108 309.6 R .034
 (es the literal v)-.15 F .034
 (alue of all characters within the quotes, with the)-.25 F -.15(ex)108
-321.6 S .827(ception of).15 F F4($)3.327 E F0(,)A F4<92>3.328 E F0(,)A
+321.6 S .828(ception of).15 F F4($)3.328 E F0(,)A F4<92>3.328 E F0(,)A
 F4(\\)3.328 E F0 3.328(,a)C .828(nd, when history e)-3.328 F .828
 (xpansion is enabled,)-.15 F F4(!)3.328 E F0 5.828(.T)C .828
 (he characters)-5.828 F F4($)3.328 E F0(and)3.328 E F4<92>3.328 E F0
-.828(retain their special)3.328 F .075(meaning within double quotes.)108
+.827(retain their special)3.328 F .074(meaning within double quotes.)108
 333.6 R .074(The backslash retains its special meaning only when follo)
-5.075 F .074(wed by one of the)-.25 F(follo)108 345.6 Q .204
-(wing characters:)-.25 F F4($)2.704 E F0(,)A F4<92>2.704 E F0(,)A F4(")
-3.537 E F0(,).833 E F4(\\)2.704 E F0 2.704(,o)C(r)-2.704 E F4(<newline>)
-2.705 E F0 5.205(.A)C .205
-(double quote may be quoted within double quotes by pre-)-2.5 F .082
+5.074 F .075(wed by one of the)-.25 F(follo)108 345.6 Q .205
+(wing characters:)-.25 F F4($)2.705 E F0(,)A F4<92>2.705 E F0(,)A F4(")
+3.538 E F0(,).833 E F4(\\)2.705 E F0 2.705(,o)C(r)-2.705 E F4(<newline>)
+2.705 E F0 5.205(.A)C .204
+(double quote may be quoted within double quotes by pre-)-2.5 F .081
 (ceding it with a backslash.)108 357.6 R .082(If enabled, history e)
-5.082 F .082(xpansion will be performed unless an)-.15 F F4(!)2.581 E F0
-.081(appearing in double)5.081 F(quotes is escaped using a backslash.)
+5.082 F .082(xpansion will be performed unless an)-.15 F F4(!)2.582 E F0
+.082(appearing in double)5.082 F(quotes is escaped using a backslash.)
 108 369.6 Q(The backslash preceding the)5 E F4(!)2.5 E F0(is not remo)5
 E -.15(ve)-.15 G(d.).15 E(The special parameters)108 386.4 Q F4(*)2.5 E
 F0(and)2.5 E F4(@)2.5 E F0(ha)2.5 E .3 -.15(ve s)-.2 H
 (pecial meaning when in double quotes \(see).15 E F3 -.666(PA)2.5 G
-(RAMETERS).666 E F0(belo)2.25 E(w\).)-.25 E -.8(Wo)108 403.2 S .211
-(rds of the form).8 F F4($)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 415.2 R .604
+(RAMETERS).666 E F0(belo)2.25 E(w\).)-.25 E -.8(Wo)108 403.2 S .212
+(rds of the form).8 F F4($)2.712 E F0<08>A F2(string)A F0 2.712<0861>C
+.211(re treated specially)-2.712 F 5.211(.T)-.65 G .211(he w)-5.211 F
+.211(ord e)-.1 F .211(xpands to)-.15 F F2(string)2.711 E F0 2.711(,w)C
+.211(ith backslash-escaped char)-2.711 F(-)-.2 E .604
+(acters replaced as speci\214ed by the ANSI C standard.)108 415.2 R .605
 (Backslash escape sequences, if present, are decoded)5.605 F(as follo)
 108 427.2 Q(ws:)-.25 E F4(\\a)144 439.2 Q F0(alert \(bell\))28.22 E F4
 (\\b)144 451.2 Q F0(backspace)27.66 E F4(\\e)144 463.2 Q F0
@@ -1062,32 +1063,32 @@ F4(\\)144 559.2 Q F2(nnn)A F0(the eight-bit character whose v)18.22 E
 -.1 G .3 -.15(ex d)-2.5 H(igits\)).15 E F4(\\c)144 583.2 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 600 Q(xp\
 anded result is single-quoted, as if the dollar sign had not been prese\
-nt.)-.15 E 2.985(Ad)108 616.8 S .485
-(ouble-quoted string preceded by a dollar sign \()-2.985 F F4($)A F0
-2.986(\)w)C .486(ill cause the string to be translated according to the)
--2.986 F .118(current locale.)108 628.8 R .118(If the current locale is)
-5.118 F F4(C)2.618 E F0(or)2.618 E F4(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
+nt.)-.15 E 2.986(Ad)108 616.8 S .486
+(ouble-quoted string preceded by a dollar sign \()-2.986 F F4($)A F0
+2.986(\)w)C .485(ill cause the string to be translated according to the)
+-2.986 F .117(current locale.)108 628.8 R .117(If the current locale is)
+5.117 F F4(C)2.617 E F0(or)2.617 E F4(POSIX)2.617 E F0 2.617(,t)C .118
+(he dollar sign is ignored.)-2.617 F .118
+(If the string is translated and)5.118 F
 (replaced, the replacement is double-quoted.)108 640.8 Q F1 -.81(PA)72
-657.6 S(RAMETERS).81 E F0(A)108 669.6 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 681.6 R 3.323(wu)-.25 G(nder)-3.323 E F4
+657.6 S(RAMETERS).81 E F0(A)108 669.6 Q F2(par)4.593 E(ameter)-.15 E F0
+.843(is an entity that stores v)4.073 F 3.343(alues. It)-.25 F .843
+(can be a)3.343 F F2(name)3.342 E F0 3.342(,an).18 G(umber)-3.342 E
+3.342(,o)-.4 G 3.342(ro)-3.342 G .842(ne of the special characters)
+-3.342 F .822(listed belo)108 681.6 R 3.323(wu)-.25 G(nder)-3.323 E F4
 .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 693.6 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 F4(declar)2.869 E
-(e)-.18 E F0 -.2(bu)2.869 G .369(iltin command \(see).2 F F4(declar)
-2.869 E(e)-.18 E F0(belo)108 705.6 Q 2.5(wi)-.25 G(n)-2.5 E F3(SHELL B)
+.369(and zero or more)2.869 F F2(attrib)2.869 E(utes)-.2 E F0 5.369(.A)C
+(ttrib)-5.369 E .369(utes are assigned using the)-.2 F F4(declar)2.868 E
+(e)-.18 E F0 -.2(bu)2.868 G .368(iltin command \(see).2 F F4(declar)
+2.868 E(e)-.18 E F0(belo)108 705.6 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 722.4 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(GNU Bash-3.2)72 768 Q(2008 February 22)
-138.46 E(7)193.45 E 0 Cg EP
+2.754(Ap)108 722.4 S .254(arameter is set if it has been assigned a v)
+-2.754 F 2.754(alue. The)-.25 F .254(null string is a v)2.754 F .255
+(alid v)-.25 F 2.755(alue. Once)-.25 F 2.755(av)2.755 G .255
+(ariable is set, it)-3.005 F(GNU Bash-3.2)72 768 Q(2008 April 5)148.455
+E(7)203.445 E 0 Cg EP
 %%Page: 8 8
 %%BeginPageSetup
 BP
 SF(SHELL B)2.5 E(UIL)-.09 E(TIN COMMANDS)-.828 E F0(belo)2.25 E(w\).)
 -.25 E(A)108 100.8 Q/F3 10/Times-Italic@0 SF(variable)2.79 E F0
 (may be assigned to by a statement of the form)2.68 E F3(name)144 117.6
-Q F0(=[)A F3(value)A F0(])A(If)108 134.4 Q F3(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 F3(values)3.023
-E F0(under)3.003 E .233(go tilde e)-.18 F .233(xpansion, parameter)-.15
+Q F0(=[)A F3(value)A F0(])A(If)108 134.4 Q F3(value)3.023 E F0 .233
+(is not gi)2.913 F -.15(ve)-.25 G .233(n, the v).15 F .232
+(ariable is assigned the null string.)-.25 F(All)5.232 E F3(values)3.022
+E F0(under)3.002 E .232(go tilde e)-.18 F .232(xpansion, parameter)-.15
 F .515(and v)108 146.4 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 F2(EXP)3.015 E(ANSION)-.666 E F0(belo)108 158.4 Q 2.698
-(w\). If)-.25 F .198(the v)2.698 F .198(ariable has its)-.25 F F1
+-3.015 E F2(EXP)3.015 E(ANSION)-.666 E F0(belo)108 158.4 Q 2.699
+(w\). If)-.25 F .199(the v)2.699 F .199(ariable has its)-.25 F F1
 (integer)2.698 E F0(attrib)2.698 E .198(ute set, then)-.2 F F3(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 170.4 R .902
+2.988 E F0 .198(is e)2.878 F -.25(va)-.25 G .198
+(luated as an arithmetic e).25 F .198(xpression e)-.15 F -.15(ve)-.25 G
+(n).15 E .901(if the $\(\(...\)\) e)108 170.4 R .901
 (xpansion is not used \(see)-.15 F F1 .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 182.4 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 194.4 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 206.4 S(adonly).18 E F0
+F0(belo)3.401 E 3.402(w\). W)-.25 F .902
+(ord splitting is not performed,)-.8 F 1.179(with the e)108 182.4 R
+1.179(xception of)-.15 F F1("$@")3.679 E F0 1.179(as e)3.679 F 1.179
+(xplained belo)-.15 F 3.679(wu)-.25 G(nder)-3.679 E F1 1.178(Special P)
+3.678 F(arameters)-.1 E F0 6.178(.P)C 1.178(athname e)-6.328 F 1.178
+(xpansion is not)-.15 F 3.648(performed. Assignment)108 194.4 R 1.148
+(statements may also appear as ar)3.648 F 1.149(guments to the)-.18 F F1
+(alias)3.649 E F0(,)A F1(declar)3.649 E(e)-.18 E F0(,)A F1(typeset)3.649
+E F0(,)A F1(export)3.649 E F0(,)A F1 -.18(re)108 206.4 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 223.2 R .376
+.377(In the conte)108 223.2 R .377
 (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
+(alue to a shell v)-.25 F .376(ariable or array inde)-.25 F .376
 (x, the +=)-.15 F .257
 (operator can be used to append to or add to the v)108 235.2 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 247.2 R .372(ger attrib)-.15 F .372
+-.25 F .257(+= is applied to a v)2.757 F(ariable)-.25 E .373
+(for which the inte)108 247.2 R .373(ger attrib)-.15 F .372
 (ute has been set,)-.2 F F3(value)2.872 E F0 .372(is e)2.872 F -.25(va)
--.25 G .372(luated as an arithmetic e).25 F .373
+-.25 G .372(luated as an arithmetic e).25 F .372
 (xpression and added to the)-.15 F -.25(va)108 259.2 S(riable').25 E
-2.889(sc)-.55 G .389(urrent v)-2.889 F .389(alue, which is also e)-.25 F
+2.888(sc)-.55 G .388(urrent v)-2.888 F .388(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 271.2 R F1(Arrays)2.685 E F0(belo)2.685 E .185
+(+= is applied to an array v)2.889 F .389(ariable using compound)-.25 F
+.186(assignment \(see)108 271.2 R F1(Arrays)2.686 E F0(belo)2.686 E .186
 (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 283.2 R
+(alue is not unset \(as it is when using =\), and ne)-2.935 F 2.685(wv)
+-.25 G .185(alues are)-2.935 F .32(appended to the array be)108 283.2 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 295.2 S(lued v).25 E(ariable,)-.25 E F3(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 F1 -.2(Po)87 312 S(sitional P).2 E(arameters)-.1 E F0(A)
-108 324 Q F3 .705(positional par)4.455 F(ameter)-.15 E F0 .706(is a par\
+108 324 Q F3 .706(positional par)4.456 F(ameter)-.15 E F0 .706(is a par\
 ameter denoted by one or more digits, other than the single digit 0.)
-3.935 F(Posi-)5.706 E .445
+3.936 F(Posi-)5.705 E .444
 (tional parameters are assigned from the shell')108 336 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 348 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
+.2 G .445(d, and may be reassigned using).1 F(the)108 348 Q F1(set)3.334
+E F0 -.2(bu)3.334 G .834(iltin command.).2 F .833(Positional parameters\
+ may not be assigned to with assignment statements.)5.834 F(The)5.833 E
 .334(positional parameters are temporarily replaced when a shell functi\
-on is e)108 360 R -.15(xe)-.15 G .333(cuted \(see).15 F F2(FUNCTIONS)
-2.833 E F0(belo)2.583 E(w\).)-.25 E 1.403(When a positional parameter c\
-onsisting of more than a single digit is e)108 376.8 R 1.404
+on is e)108 360 R -.15(xe)-.15 G .334(cuted \(see).15 F F2(FUNCTIONS)
+2.834 E F0(belo)2.584 E(w\).)-.25 E 1.404(When a positional parameter c\
+onsisting of more than a single digit is e)108 376.8 R 1.403
 (xpanded, it must be enclosed in)-.15 F(braces \(see)108 388.8 Q F2(EXP)
 2.5 E(ANSION)-.666 E F0(belo)2.25 E(w\).)-.25 E F1(Special P)87 405.6 Q
-(arameters)-.1 E F0 1.675(The shell treats se)108 417.6 R -.15(ve)-.25 G
-1.675(ral parameters specially).15 F 6.675(.T)-.65 G 1.674
+(arameters)-.1 E F0 1.674(The shell treats se)108 417.6 R -.15(ve)-.25 G
+1.674(ral parameters specially).15 F 6.675(.T)-.65 G 1.675
 (hese parameters may only be referenced; assignment to)-6.675 F
-(them is not allo)108 429.6 Q(wed.)-.25 E F1(*)108 441.6 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
+(them is not allo)108 429.6 Q(wed.)-.25 E F1(*)108 441.6 Q F0 .606
+(Expands to the positional parameters, starting from one.)31 F .605
+(When the e)5.605 F .605(xpansion occurs within dou-)-.15 F .083
 (ble quotes, it e)144 453.6 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 465.6 R F2(IFS)2.503 E F0 .003(special v)2.253 F
+.004(acter of the)144 465.6 R F2(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 F3(c)A F1($2)A F3(c)A F1(...)A F0 .003(", where)B F3(c)2.703 E F0
-.004(is the \214rst char)2.813 F(-)-.2 E .769(acter of the v)144 477.6 R
-.769(alue of the)-.25 F F2(IFS)3.269 E F0 -.25(va)3.019 G 3.269
-(riable. If).25 F F2(IFS)3.268 E F0 .768
-(is unset, the parameters are separated by spaces.)3.018 F(If)5.768 E F2
+.003(is the \214rst char)2.813 F(-)-.2 E .768(acter of the v)144 477.6 R
+.768(alue of the)-.25 F F2(IFS)3.268 E F0 -.25(va)3.018 G 3.268
+(riable. If).25 F F2(IFS)3.268 E F0 .769
+(is unset, the parameters are separated by spaces.)3.018 F(If)5.769 E F2
 (IFS)144 489.6 Q F0(is null, the parameters are joined without interv)
-2.25 E(ening separators.)-.15 E F1(@)108 501.6 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 513.6 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 525.6 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
-537.6 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 549.6 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
+2.25 E(ening separators.)-.15 E F1(@)108 501.6 Q F0 .606
+(Expands to the positional parameters, starting from one.)26.7 F .605
+(When the e)5.605 F .605(xpansion occurs within dou-)-.15 F .113
+(ble quotes, each parameter e)144 513.6 R .113(xpands to a separate w)
+-.15 F 2.614(ord. That)-.1 F .114(is, ")2.614 F F1($@)A F0 2.614("i)C
+2.614(se)-2.614 G(qui)-2.614 E -.25(va)-.25 G .114(lent to ").25 F F1
+($1)A F0 2.614("")C F1($2)-2.614 E F0 2.614(".)C(..)-2.614 E .135
+(If the double-quoted e)144 525.6 R .135(xpansion occurs within a w)-.15
+F .135(ord, the e)-.1 F .134
+(xpansion of the \214rst parameter is joined)-.15 F .15(with the be)144
+537.6 R .15(ginning part of the original w)-.15 F .151(ord, and the e)
+-.1 F .151(xpansion of the last parameter is joined with)-.15 F .338
+(the last part of the original w)144 549.6 R 2.838(ord. When)-.1 F .337
+(there are no positional parameters, ")2.838 F F1($@)A F0 2.837("a)C(nd)
+-2.837 E F1($@)2.837 E F0 -.15(ex)2.837 G(pand).15 E
 (to nothing \(i.e., the)144 561.6 Q 2.5(ya)-.15 G(re remo)-2.5 E -.15
 (ve)-.15 G(d\).).15 E F1(#)108 573.6 Q F0
 (Expands to the number of positional parameters in decimal.)31 E F1(?)
 108 585.6 Q F0(Expands to the e)31 E(xit status of the most recently e)
 -.15 E -.15(xe)-.15 G(cuted fore).15 E(ground pipeline.)-.15 E F1<ad>108
-597.6 Q F0 .882
+597.6 Q F0 .881
 (Expands to the current option \215ags as speci\214ed upon in)30.3 F -.2
-(vo)-.4 G .881(cation, by the).2 F F1(set)3.381 E F0 -.2(bu)3.381 G .881
+(vo)-.4 G .881(cation, by the).2 F F1(set)3.382 E F0 -.2(bu)3.382 G .882
 (iltin command, or).2 F(those set by the shell itself \(such as the)144
 609.6 Q F1<ad69>2.5 E F0(option\).)2.5 E F1($)108 621.6 Q F0 .214
 (Expands to the process ID of the shell.)31 F .214
@@ -1208,28 +1209,28 @@ F .135(ord, the e)-.1 F .135
 (shell, not the subshell.)144 633.6 Q F1(!)108 645.6 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 F1(0)108 657.6 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 F1(bash)4.191 E
-F0(is)4.191 E(in)144 669.6 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
+1.691(Expands to the name of the shell or shell script.)31 F 1.692
+(This is set at shell initialization.)6.692 F(If)6.692 E F1(bash)4.192 E
+F0(is)4.192 E(in)144 669.6 Q -.2(vo)-.4 G -.1(ke).2 G 3.078(dw).1 G .578
+(ith a \214le of commands,)-3.078 F F1($0)3.078 E F0 .578
+(is set to the name of that \214le.)3.078 F(If)5.577 E F1(bash)3.077 E
+F0 .577(is started with the)3.077 F F1<ad63>3.077 E F0 .368
 (option, then)144 681.6 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
+-.18 F -.15(xe)-.15 G .369(cuted, if one is present.).15 F(Other)5.369 E
 (-)-.2 E(wise, it is set to the \214le name used to in)144 693.6 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
-F1(_)108 705.6 Q F0 .054
+F1(_)108 705.6 Q F0 .055
 (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 717.6 R .692
+-.4 G .255 -.1(ke t).2 H .054(he shell or shell script being e).1 F -.15
+(xe)-.15 G(cuted).15 E .691(as passed in the en)144 717.6 R .691
 (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 729.6 Q .57(vious command, after e)-.25 F 3.07
+3.191(,e)-.65 G .692(xpands to the last ar)-3.341 F .692(gument to the)
+-.18 F(pre)144 729.6 Q .571(vious command, after e)-.25 F 3.071
 (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(GNU Bash-3.2)72
-768 Q(2008 February 22)138.46 E(8)193.45 E 0 Cg EP
+-.2(vo)-.4 G .77 -.1(ke e).2 H .57(ach command).1 F(GNU Bash-3.2)72 768
+Q(2008 April 5)148.455 E(8)203.445 E 0 Cg EP
 %%Page: 9 9
 %%BeginPageSetup
 BP
@@ -1244,80 +1245,78 @@ F0(The follo)108 124.8 Q(wing v)-.25 E(ariables are set by the shell:)
 -.25 E F1 -.3(BA)108 141.6 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 F1 -.3(BA)108 153.6
-S(SHPID).3 E F0 .465
-(Expands to the process id of the current bash process.)144 165.6 R .466
-(This dif)5.466 F .466(fers from)-.25 F F1($$)2.966 E F0 .466
-(under certain circum-)2.966 F(stances, such as subshells that do not r\
-equire bash to be re-initialized.)144 177.6 Q F1 -.3(BA)108 189.6 S
-(SH_ARGC).3 E F0 1.04(An array v)144 201.6 R 1.04(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 213.6 S .535(cution call stack.).15 F .535(The numb\
-er of parameters to the current subroutine \(shell function or script)
-5.535 F -.15(exe)144 225.6 S .142(cuted with).15 F F1(.)2.642 E F0(or)
-2.642 E F1(sour)2.642 E(ce)-.18 E F0 2.642(\)i)C 2.642(sa)-2.642 G 2.642
-(tt)-2.642 G .142(he top of the stack.)-2.642 F .141
-(When a subroutine is e)5.141 F -.15(xe)-.15 G .141
-(cuted, the number of).15 F 1.524(parameters passed is pushed onto)144
+S(SHPID).3 E F0 .361(Expands to the process id of the current)144 165.6
+R F1(bash)2.861 E F0 2.861(process. This)2.861 F(dif)2.86 E .36
+(fers from)-.25 F F1($$)2.86 E F0 .36(under certain circum-)2.86 F
+(stances, such as subshells that do not require)144 177.6 Q F1(bash)2.5
+E F0(to be re-initialized.)2.5 E F1 -.3(BA)108 189.6 S(SH_ARGC).3 E F0
+.934(An array v)144 201.6 R .934(ariable whose v)-.25 F .934
+(alues are the number of parameters in each frame of the current)-.25 F
+F1(bash)3.435 E F0 -.15(exe)144 213.6 S .535(cution call stack.).15 F
+.535(The number of parameters to the current subroutine \(shell functio\
+n or script)5.535 F -.15(exe)144 225.6 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
 237.6 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.525
+(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 249.6 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 261.6 S(SH_ARGV).3 E F0 1.092(An array v)144
-273.6 R 1.091
-(ariable containing all of the parameters in the current bash e)-.25 F
--.15(xe)-.15 G 1.091(cution call stack.).15 F(The)6.091 E .275(\214nal \
-parameter of the last subroutine call is at the top of the stack; the \
-\214rst parameter of the initial)144 285.6 R 1.424
-(call is at the bottom.)144 297.6 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 309.6 S(SH_ARGV).3 E F0 6.09(.T)C 1.09(he shell sets)
--6.09 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.091(ugging mode \(see the)-.2 F
-(description of the)144 321.6 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 333.6 S(SH_COMMAND).3 E F0 1.243
-(The command currently being e)144 345.6 R -.15(xe)-.15 G 1.243
-(cuted or about to be e).15 F -.15(xe)-.15 G 1.242
-(cuted, unless the shell is e).15 F -.15(xe)-.15 G 1.242(cuting a).15 F
+(w\))-.25 E F1 -.3(BA)108 261.6 S(SH_ARGV).3 E F0 .979(An array v)144
+273.6 R .979(ariable containing all of the parameters in the current)
+-.25 F F1(bash)3.48 E F0 -.15(exe)3.48 G .98(cution call stack.).15 F
+(The)5.98 E .275(\214nal parameter of the last subroutine call is at th\
+e top of the stack; the \214rst parameter of the initial)144 285.6 R
+1.424(call is at the bottom.)144 297.6 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
+309.6 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 321.6 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 333.6 S
+(SH_COMMAND).3 E F0 1.242(The command currently being e)144 345.6 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
 357.6 Q -.15(xe)-.15 G(cuting at the time of the trap.).15 E F1 -.3(BA)
 108 369.6 S(SH_EXECUTION_STRING).3 E F0(The command ar)144 381.6 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 393.6 S(SH_LINENO).3 E F0 .034
 (An array v)144 405.6 R .034(ariable whose members are the line numbers\
- in source \214les corresponding to each mem-)-.25 F 2.945(ber of)144
-417.6 R F1(FUNCN)5.445 E(AME)-.2 E F0(.)A F1(${B)7.944 E(ASH_LINENO[)-.3
+ in source \214les corresponding to each mem-)-.25 F 2.944(ber of)144
+417.6 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
-429.6 Q(AME[)-.2 E F2($i)A F1(]})A F0 -.1(wa)3.311 G 3.311(sc).1 G .811
+429.6 Q(AME[)-.2 E F2($i)A F1(]})A F0 -.1(wa)3.312 G 3.311(sc).1 G .811
 (alled \(or)-3.311 F F1(${B)3.311 E(ASH_LINENO[)-.3 E F2($i-1)A F1(]})A
 F0 .811(if referenced within another shell)3.311 F 4.512
 (function\). The)144 441.6 R 2.012(corresponding source \214le name is)
 4.512 F F1(${B)4.512 E(ASH_SOURCE[)-.3 E F2($i)A F1 4.512(]}. Use)B
 2.012(LINENO to)4.512 F(obtain the curr)144 453.6 Q(ent line number)-.18
-E(.)-1 E -.3(BA)108 465.6 S(SH_REMA).3 E(TCH)-.95 E F0 .005(An array v)
-144 477.6 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 489.6 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 501.6 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
+E(.)-1 E -.3(BA)108 465.6 S(SH_REMA).3 E(TCH)-.95 E F0 .006(An array v)
+144 477.6 R .006(ariable whose members are assigned by the)-.25 F F1(=~)
+2.506 E F0 .005(binary operator to the)2.506 F F1([[)2.505 E F0 .005
+(conditional com-)2.505 F 2.506(mand. The)144 489.6 R .007
+(element with inde)2.506 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 .007(gular e)
+-.15 F(xpression.)-.15 E .998(The element with inde)144 501.6 R(x)-.15 E
+F2(n)3.498 E F0 .997(is the portion of the string matching the)3.498 F
+F2(n)3.497 E F0 .997(th parenthesized sube)B(xpres-)-.15 E 2.5
 (sion. This)144 513.6 R -.25(va)2.5 G(riable is read-only).25 E(.)-.65 E
-F1 -.3(BA)108 525.6 S(SH_SOURCE).3 E F0 .89(An array v)144 537.6 R .889
+F1 -.3(BA)108 525.6 S(SH_SOURCE).3 E F0 .889(An array v)144 537.6 R .889
 (ariable whose members are the source \214lenames corresponding to the \
 elements in the)-.25 F F1(FUNCN)144 549.6 Q(AME)-.2 E F0(array v)2.5 E
-(ariable.)-.25 E F1 -.3(BA)108 561.6 S(SH_SUBSHELL).3 E F0 .401
+(ariable.)-.25 E F1 -.3(BA)108 561.6 S(SH_SUBSHELL).3 E F0 .402
 (Incremented by one each time a subshell or subshell en)144 573.6 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 585.6 Q F1 -.3(BA)108 597.6 S(SH_VERSINFO).3
-E F0 2.645(Ar)144 609.6 S .145(eadonly array v)-2.645 F .144
+(vironment is spa)-.4 F 2.901(wned. The)-.15 F .401(initial v)2.901 F
+.401(alue is)-.25 F(0.)144 585.6 Q F1 -.3(BA)108 597.6 S(SH_VERSINFO).3
+E F0 2.644(Ar)144 609.6 S .144(eadonly array v)-2.644 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 621.6 S
+(ersion information for this instance of)-.15 F F1(bash)2.645 E F0 5.145
+(.T)C(he)-5.145 E -.25(va)144 621.6 S
 (lues assigned to the array members are as follo).25 E(ws:)-.25 E F1 -.3
 (BA)144 639.6 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
@@ -1329,7 +1328,7 @@ A F0(The b)24.74 E(uild v)-.2 E(ersion.)-.15 E F1 -.3(BA)144 687.6 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 699.6 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
-(GNU Bash-3.2)72 768 Q(2008 February 22)138.46 E(9)193.45 E 0 Cg EP
+(GNU Bash-3.2)72 768 Q(2008 April 5)148.455 E(9)203.445 E 0 Cg EP
 %%Page: 10 10
 %%BeginPageSetup
 BP
 -.35 E/F1 10/Times-Bold@0 SF -.3(BA)108 84 S(SH_VERSION).3 E F0
 (Expands to a string describing the v)144 96 Q
 (ersion of this instance of)-.15 E F1(bash)2.5 E F0(.)A F1(COMP_CW)108
-112.8 Q(ORD)-.1 E F0 .396(An inde)144 124.8 R 2.896(xi)-.15 G(nto)-2.896
+112.8 Q(ORD)-.1 E F0 .397(An inde)144 124.8 R 2.897(xi)-.15 G(nto)-2.897
 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 136.8 R -.25(va)-.2 G 1.181
+(ord containing the current cursor position.)-.1 F .396(This v)5.396 F
+(ari-)-.25 E 1.18(able is a)144 136.8 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 148.8 Q(ogrammable Completion)-.18
+(db).1 G 3.681(yt)-3.681 G 1.181(he programmable completion f)-3.681 F
+1.181(acilities \(see)-.1 F F1(Pr)144 148.8 Q(ogrammable Completion)-.18
 E F0(belo)2.5 E(w\).)-.25 E F1(COMP_KEY)108 165.6 Q F0(The k)144 177.6 Q
 .3 -.15(ey \()-.1 H(or \214nal k).15 E .3 -.15(ey o)-.1 H 2.5(fak).15 G
 .3 -.15(ey s)-2.6 H(equence\) used to in).15 E -.2(vo)-.4 G .2 -.1(ke t)
 .2 H(he current completion function.).1 E F1(COMP_LINE)108 194.4 Q F0
-1.207(The current command line.)144 206.4 R 1.208(This v)6.208 F 1.208
+1.208(The current command line.)144 206.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 218.4 R -.2(vo)-.4 G -.1(ke).2 G 5.349(db).1 G 5.349
+(ilable only in shell functions and e).25 F 1.207(xternal com-)-.15 F
+2.848(mands in)144 218.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 230.4 Q(w\).)-.25 E F1(COMP_POINT)108 247.2 Q F0 .666
-(The inde)144 259.2 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
+(acilities \(see)-.1 F F1(Pr)5.349 E 2.849(ogrammable Completion)-.18 F
+F0(belo)144 230.4 Q(w\).)-.25 E F1(COMP_POINT)108 247.2 Q F0 .667
+(The inde)144 259.2 R 3.167(xo)-.15 G 3.167(ft)-3.167 G .666
+(he current cursor position relati)-3.167 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
+F .666(If the)5.666 F .534
 (current cursor position is at the end of the current command, the v)144
-271.2 R .534(alue of this v)-.25 F .534(ariable is equal to)-.25 F F1
-(${#COMP_LINE})144 283.2 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
+271.2 R .535(alue of this v)-.25 F .535(ariable is equal to)-.25 F F1
+(${#COMP_LINE})144 283.2 Q F0 7.006(.T)C 2.006(his v)-7.006 F 2.006
+(ariable is a)-.25 F -.25(va)-.2 G 2.005
+(ilable only in shell functions and e).25 F 2.005(xternal commands)-.15
 F(in)144 295.2 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 F1(COMP_TYPE)108
-312 Q F0 .042(Set to an inte)144 324 R .042(ger v)-.15 F .041(alue corr\
+312 Q F0 .041(Set to an inte)144 324 R .041(ger v)-.15 F .041(alue corr\
 esponding to the type of completion attempted that caused a completion)
--.25 F .337(function to be called:)144 336 R/F2 10/Times-Italic@0 SF -.5
+-.25 F .338(function to be called:)144 336 R/F2 10/Times-Italic@0 SF -.5
 (TA)2.837 G(B).5 E F0 2.837(,f)C .337(or normal completion,)-2.837 F F2
 (?)2.837 E F0 2.837(,f)C .337(or listing completions after successi)
--2.837 F .638 -.15(ve t)-.25 H(abs,).15 E F2(!)144 348 Q F0 4.092(,f)C
-1.592(or listing alternati)-4.092 F -.15(ve)-.25 G 4.092(so).15 G 4.092
+-2.837 F .637 -.15(ve t)-.25 H(abs,).15 E F2(!)144 348 Q F0 4.091(,f)C
+1.591(or listing alternati)-4.091 F -.15(ve)-.25 G 4.092(so).15 G 4.092
 (np)-4.092 G 1.592(artial w)-4.092 F 1.592(ord completion,)-.1 F F2(@)
 4.092 E F0 4.092(,t)C 4.092(ol)-4.092 G 1.592(ist completions if the w)
--4.092 F 1.591(ord is not)-.1 F 1.552(unmodi\214ed, or)144 360 R F2(%)
-4.052 E F0 4.052(,f)C 1.552(or menu completion.)-4.052 F 1.552(This v)
+-4.092 F 1.592(ord is not)-.1 F 1.553(unmodi\214ed, or)144 360 R F2(%)
+4.053 E F0 4.052(,f)C 1.552(or menu completion.)-4.052 F 1.552(This v)
 6.552 F 1.552(ariable is a)-.25 F -.25(va)-.2 G 1.552
-(ilable only in shell functions and).25 F -.15(ex)144 372 S 2.929
+(ilable only in shell functions and).25 F -.15(ex)144 372 S 2.928
 (ternal commands in).15 F -.2(vo)-.4 G -.1(ke).2 G 5.429(db).1 G 5.429
 (yt)-5.429 G 2.929(he programmable completion f)-5.429 F 2.929
-(acilities \(see)-.1 F F1(Pr)5.428 E(ogrammable)-.18 E(Completion)144
+(acilities \(see)-.1 F F1(Pr)5.429 E(ogrammable)-.18 E(Completion)144
 384 Q F0(belo)2.5 E(w\).)-.25 E F1(COMP_W)108 400.8 Q(ORDBREAKS)-.1 E F0
-1.283(The set of characters that the Readline library treats as w)144
-412.8 R 1.284(ord separators when performing w)-.1 F(ord)-.1 E 3.126
-(completion. If)144 424.8 R/F3 9/Times-Bold@0 SF(COMP_W)3.126 E
+1.284(The set of characters that the Readline library treats as w)144
+412.8 R 1.283(ord separators when performing w)-.1 F(ord)-.1 E 3.125
+(completion. If)144 424.8 R/F3 9/Times-Bold@0 SF(COMP_W)3.125 E
 (ORDBREAKS)-.09 E F0 .626(is unset, it loses its special properties, e)
-2.876 F -.15(ve)-.25 G 3.125(ni).15 G 3.125(fi)-3.125 G 3.125(ti)-3.125
-G 3.125(ss)-3.125 G(ubse-)-3.125 E(quently reset.)144 436.8 Q F1(COMP_W)
-108 453.6 Q(ORDS)-.1 E F0 .653(An array v)144 465.6 R .653
-(ariable \(see)-.25 F F1(Arrays)3.153 E F0(belo)3.153 E .654
-(w\) consisting of the indi)-.25 F .654(vidual w)-.25 F .654
-(ords in the current command)-.1 F 3.567(line. The)144 477.6 R -.1(wo)
-3.567 G 1.067
-(rds are split on shell metacharacters as the shell parser w).1 F 1.066
-(ould separate them.)-.1 F(This)6.066 E -.25(va)144 489.6 S .003
+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 436.8 Q F1(COMP_W)
+108 453.6 Q(ORDS)-.1 E F0 .654(An array v)144 465.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.566(line. The)144 477.6 R -.1(wo)
+3.566 G 1.067
+(rds are split on shell metacharacters as the shell parser w).1 F 1.067
+(ould separate them.)-.1 F(This)6.067 E -.25(va)144 489.6 S .004
 (riable is a).25 F -.25(va)-.2 G .004(ilable only in shell functions in)
 .25 F -.2(vo)-.4 G -.1(ke).2 G 2.504(db).1 G 2.504(yt)-2.504 G .004
-(he programmable completion f)-2.504 F .004(acilities \(see)-.1 F F1(Pr)
+(he programmable completion f)-2.504 F .003(acilities \(see)-.1 F F1(Pr)
 144 501.6 Q(ogrammable Completion)-.18 E F0(belo)2.5 E(w\).)-.25 E F1
 (DIRST)108 518.4 Q -.55(AC)-.9 G(K).55 E F0 2.26(An array v)144 530.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 542.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
+1.095(Directories appear in the stack in the order the)144 542.4 R 3.594
+(ya)-.15 G 1.094(re displayed by the)-3.594 F F1(dirs)3.594 E F0 -.2(bu)
+3.594 G 3.594(iltin. Assigning).2 F(to)3.594 E 1.431
 (members of this array v)144 554.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 566.4 Q F0(and)2.746 E F1(popd)2.746 E
+F 1.432(ut the)-.2 F F1(pushd)144 566.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 578.4 R
+F(ariable)-.25 E .35(will not change the current directory)144 578.4 R
 5.35(.I)-.65 G(f)-5.35 E F3(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 590.4 Q F1(EUID)108
-607.2 Q F0 1.103(Expands to the ef)11 F(fecti)-.25 E 1.403 -.15(ve u)
+(is unset, it loses its special properties, e)2.6 F -.15(ve)-.25 G 2.851
+(ni).15 G(f)-2.851 E(it is subsequently reset.)144 590.4 Q F1(EUID)108
+607.2 Q F0 1.104(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
+(nitialized at shell startup.)-3.603 F 1.103(This v)6.103 F 1.103
 (ariable is)-.25 F(readonly)144 619.2 Q(.)-.65 E F1(FUNCN)108 636 Q(AME)
--.2 E F0 .479(An array v)144 648 R .479
+-.2 E F0 .478(An array v)144 648 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 660 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 .25
+-.25 F -.15(xe)-.15 G .479(cution call stack.).15 F .277
+(The element with inde)144 660 R 2.777(x0i)-.15 G 2.777(st)-2.777 G .276
+(he name of an)-2.777 F 2.776(yc)-.15 G(urrently-e)-2.776 E -.15(xe)-.15
+G .276(cuting shell function.).15 F .276(The bottom-most)5.276 F .25
 (element is)144 672 R/F4 10/Courier@0 SF("main")2.75 E F0 5.25(.T)C .25
 (his v)-5.25 F .25(ariable e)-.25 F .25
 (xists only when a shell function is e)-.15 F -.15(xe)-.15 G 2.75
 (cuting. Assignments).15 F(to)2.75 E F3(FUNCN)144 684 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
+(ha)2.635 E .685 -.15(ve n)-.2 H 2.885(oe).15 G -.25(ff)-2.885 G .385
 (ect and return an error status.).25 F(If)5.385 E F3(FUNCN)2.885 E(AME)
--.18 E F0 .385(is unset, it loses its special)2.635 F(properties, e)144
+-.18 E F0 .384(is unset, it loses its special)2.634 F(properties, e)144
 696 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(GNU Bash-3.2)72 768 Q(2008 February 22)
-138.46 E(10)188.45 E 0 Cg EP
+-2.5 G(ubsequently reset.)-2.5 E(GNU Bash-3.2)72 768 Q(2008 April 5)
+148.455 E(10)198.445 E 0 Cg EP
 %%Page: 11 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(GR)108 84 Q(OUPS)-.3 E F0 1.229(An array v)
+-.35 E/F1 10/Times-Bold@0 SF(GR)108 84 Q(OUPS)-.3 E F0 1.228(An array v)
 144 96 R 1.228(ariable containing the list of groups of which the curre\
-nt user is a member)-.25 F 6.228(.A)-.55 G(ssign-)-6.228 E .596
-(ments to)144 108 R/F2 9/Times-Bold@0 SF(GR)3.096 E(OUPS)-.27 E F0(ha)
+nt user is a member)-.25 F 6.229(.A)-.55 G(ssign-)-6.229 E .597
+(ments to)144 108 R/F2 9/Times-Bold@0 SF(GR)3.097 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 120 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 136.8 Q F0 .356
-(The history number)144 148.8 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
+(ss)-2.5 G(ubsequently reset.)-2.5 E F1(HISTCMD)108 136.8 Q F0 .355
+(The history number)144 148.8 R 2.855(,o)-.4 G 2.855(ri)-2.855 G(nde)
+-2.855 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
+(HISTCMD)2.856 E F0 .356(is unset, it)2.606 F
 (loses its special properties, e)144 160.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
 (HOSTN)108 177.6 Q(AME)-.2 E F0
 (Automatically set to the name of the current host.)144 189.6 Q F1
-(HOSTTYPE)108 206.4 Q F0 .222(Automatically set to a string that unique\
-ly describes the type of machine on which)144 218.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 230.4 R
+(HOSTTYPE)108 206.4 Q F0 .223(Automatically set to a string that unique\
+ly describes the type of machine on which)144 218.4 R F1(bash)2.722 E F0
+.222(is e)2.722 F -.15(xe)-.15 G(cut-).15 E 2.5(ing. The)144 230.4 R
 (def)2.5 E(ault is system-dependent.)-.1 E F1(LINENO)108 247.2 Q F0
 1.408(Each time this parameter is referenced, the shell substitutes a d\
 ecimal number representing the)144 259.2 R .078(current sequential line\
  number \(starting with 1\) within a script or function.)144 271.2 R
-.079(When not in a script or)5.078 F .307(function, the v)144 283.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
+.078(When not in a script or)5.078 F .306(function, the v)144 283.2 R
+.306(alue substituted is not guaranteed to be meaningful.)-.25 F(If)
+5.307 E F2(LINENO)2.807 E F0 .307(is unset, it loses its)2.557 F
 (special properties, e)144 295.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
 312 Q(CHTYPE)-.55 E F0 .898(Automatically set to a string that fully de\
-scribes the system type on which)144 324 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 336 Q
+scribes the system type on which)144 324 R F1(bash)3.398 E F0 .898(is e)
+3.398 F -.15(xe)-.15 G .898(cuting, in).15 F(the standard GNU)144 336 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 352.8 Q F0
 (The pre)144 364.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 381.6 Q(ARG)-.9 E F0 1.627
+F1(cd)2.5 E F0(command.)2.5 E F1(OPT)108 381.6 Q(ARG)-.9 E F0 1.626
 (The v)144 393.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 405.6 S(IL)
+1.627(iltin command \(see).2 F F2(SHELL)4.127 E -.09(BU)144 405.6 S(IL)
 .09 E(TIN COMMANDS)-.828 E F0(belo)2.25 E(w\).)-.25 E F1(OPTIND)108
-422.4 Q F0 1.651(The inde)144 434.4 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 446.4 S
+422.4 Q F0 1.652(The inde)144 434.4 R 4.152(xo)-.15 G 4.152(ft)-4.152 G
+1.652(he ne)-4.152 F 1.652(xt ar)-.15 F 1.652
+(gument to be processed by the)-.18 F F1(getopts)4.151 E F0 -.2(bu)4.151
+G 1.651(iltin command \(see).2 F F2(SHELL)4.151 E -.09(BU)144 446.4 S
 (IL).09 E(TIN COMMANDS)-.828 E F0(belo)2.25 E(w\).)-.25 E F1(OSTYPE)108
 463.2 Q F0 .329(Automatically set to a string that describes the operat\
-ing system on which)144 475.2 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 487.2 Q
+ing system on which)144 475.2 R F1(bash)2.83 E F0 .33(is e)2.83 F -.15
+(xe)-.15 G 2.83(cuting. The).15 F(def)144 487.2 Q
 (ault is system-dependent.)-.1 E F1(PIPEST)108 504 Q -.95(AT)-.9 G(US)
 .95 E F0 .61(An array v)144 516 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
@@ -1500,9 +1499,9 @@ ing system on which)144 475.2 R F1(bash)2.829 E F0 .329(is e)2.829 F
 2.5(arent. This)-2.5 F -.25(va)2.5 G(riable is readonly).25 E(.)-.65 E
 F1(PWD)108 561.6 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 578.4 Q F0 .566
-(Each time this parameter is referenced, a random inte)144 590.4 R .565
-(ger between 0 and 32767 is generated.)-.15 F(The)5.565 E .01
+(RANDOM)108 578.4 Q F0 .565
+(Each time this parameter is referenced, a random inte)144 590.4 R .566
+(ger between 0 and 32767 is generated.)-.15 F(The)5.566 E .01
 (sequence of random numbers may be initialized by assigning a v)144
 602.4 R .01(alue to)-.25 F F2(RANDOM)2.51 E/F4 9/Times-Roman@0 SF(.)A F0
 (If)4.51 E F2(RANDOM)2.51 E F0(is)2.26 E
@@ -1513,178 +1512,178 @@ F1(PWD)108 561.6 Q F0(The current w)12.67 E
 .18 E F0 -.2(bu)2.5 G(iltin command when no ar).2 E
 (guments are supplied.)-.18 E F1(SECONDS)108 660 Q F0 .795(Each time th\
 is parameter is referenced, the number of seconds since shell in)144 672
-R -.2(vo)-.4 G .795(cation is returned.).2 F .712(If a v)144 684 R .712
+R -.2(vo)-.4 G .795(cation is returned.).2 F .713(If a v)144 684 R .712
 (alue is assigned to)-.25 F F2(SECONDS)3.212 E F4(,)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 696 R .408
-(alue assigned.)-.25 F(If)5.408 E F2(SECONDS)2.908 E F0 .407
+F .407(of seconds since the assignment plus the v)144 696 R .408
+(alue assigned.)-.25 F(If)5.408 E F2(SECONDS)2.908 E F0 .408
 (is unset, it loses its special)2.658 F(properties, e)144 708 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(GNU Bash-3.2)72 768 Q(2008 February 22)138.46
-E(11)188.45 E 0 Cg EP
+(ubsequently reset.)-2.5 E(GNU Bash-3.2)72 768 Q(2008 April 5)148.455 E
+(11)198.445 E 0 Cg EP
 %%Page: 12 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(SHELLOPTS)108 84 Q F0 3.262(Ac)144 96 S
-.763(olon-separated list of enabled shell options.)-3.262 F .763(Each w)
+-.35 E/F1 10/Times-Bold@0 SF(SHELLOPTS)108 84 Q F0 3.263(Ac)144 96 S
+.763(olon-separated list of enabled shell options.)-3.263 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 108 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 9
-/Times-Bold@0 SF 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 120 R F2(SHELLOPTS)2.519 E F0 .019
-(are those reported as)2.269 F/F3 10/Times-Italic@0 SF(on)2.749 E F0(by)
+(gument for the)-.18 F F1<ad6f>144 108 Q F0 1.173(option to the)3.673 F
+F1(set)3.673 E F0 -.2(bu)3.673 G 1.173(iltin command \(see).2 F/F2 9
+/Times-Bold@0 SF 1.174(SHELL B)3.674 F(UIL)-.09 E 1.174(TIN COMMANDS)
+-.828 F F0(belo)3.424 E 3.674(w\). The)-.25 F(options)3.674 E .02
+(appearing in)144 120 R F2(SHELLOPTS)2.52 E F0 .019
+(are those reported as)2.27 F/F3 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
-132 Q F1(bash)3.142 E F0 .642(starts up, each shell option in the list \
-will be enabled before reading an)3.142 F 3.141(ys)-.15 G .641
-(tartup \214les.)-3.141 F(This v)144 144 Q(ariable is read-only)-.25 E
+(his v)-2.519 F .019(ariable is in the en)-.25 F(vironment)-.4 E(when)
+144 132 Q F1(bash)3.141 E F0 .642(starts up, each shell option in the l\
+ist will be enabled before reading an)3.141 F 3.142(ys)-.15 G .642
+(tartup \214les.)-3.142 F(This v)144 144 Q(ariable is read-only)-.25 E
 (.)-.65 E F1(SHL)108 160.8 Q(VL)-.92 E F0
 (Incremented by one each time an instance of)144 172.8 Q F1(bash)2.5 E
 F0(is started.)2.5 E F1(UID)108 189.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 206.4 R .993(wing v)-.25 F .994
+E(.)-.65 E .994(The follo)108 206.4 R .994(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
+(bash)3.494 E F0 .994(assigns a def)3.494 F .994(ault v)-.1 F .993
 (alue to a v)-.25 F(ariable;)-.25 E(these cases are noted belo)108 218.4
-Q -.65(w.)-.25 G F1 -.3(BA)108 235.2 S(SH_ENV).3 E F0 .506
-(If this parameter is set when)144 247.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
+Q -.65(w.)-.25 G F1 -.3(BA)108 235.2 S(SH_ENV).3 E F0 .505
+(If this parameter is set when)144 247.2 R F1(bash)3.005 E F0 .505(is e)
+3.005 F -.15(xe)-.15 G .506(cuting a shell script, its v).15 F .506
+(alue is interpreted as a \214lename)-.25 F .355
 (containing commands to initialize the shell, as in)144 259.2 R F3
-(~/.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 271.2 R .525
+(~/.bashr)2.855 E(c)-.37 E F0 5.354(.T).31 G .354(he v)-5.354 F .354
+(alue of)-.25 F F2 -.27(BA)2.854 G(SH_ENV).27 E F0 .354(is subjected)
+2.604 F .525(to parameter e)144 271.2 R .525
 (xpansion, command substitution, and arithmetic e)-.15 F .525
 (xpansion before being interpreted)-.15 F(as a \214le name.)144 283.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
-295.2 Q -.95(AT)-.74 G(H).95 E F0 1.247(The search path for the)144
-307.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
+295.2 Q -.95(AT)-.74 G(H).95 E F0 1.248(The search path for the)144
+307.2 R F1(cd)3.748 E F0 3.748(command. This)3.748 F 1.247
+(is a colon-separated list of directories in which the)3.748 F 3.795
 (shell looks for destination directories speci\214ed by the)144 319.2 R
-F1(cd)6.295 E F0 6.295(command. A)6.295 F 3.795(sample v)6.295 F 3.795
+F1(cd)6.295 E F0 6.296(command. A)6.296 F 3.796(sample v)6.296 F 3.796
 (alue is)-.25 F/F4 10/Courier@0 SF(".:~:/usr")144 331.2 Q F0(.)A F1
 (COLUMNS)108 343.2 Q F0 .425(Used by the)144 355.2 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 367.2 Q F1(COMPREPL)
-108 379.2 Q(Y)-.92 E F0 .848(An array v)144 391.2 R .848
+108 379.2 Q(Y)-.92 E F0 .847(An array v)144 391.2 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 403.2 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 415.2
-Q(CS)-.55 E F0(If)144 427.2 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 F4(t)2.536 E
-F0 2.536(,i)C 2.536(ta)-2.536 G .036(ssumes that the)-2.536 F
+Q(CS)-.55 E F0(If)144 427.2 Q F1(bash)2.536 E F0 .036(\214nds this v)
+2.536 F .036(ariable in the en)-.25 F .036
+(vironment when the shell starts with v)-.4 F(alue)-.25 E F4(t)2.535 E
+F0 2.535(,i)C 2.535(ta)-2.535 G .035(ssumes that the)-2.535 F
 (shell is running in an emacs shell b)144 439.2 Q(uf)-.2 E
 (fer and disables line editing.)-.25 E F1(FCEDIT)108 451.2 Q F0(The def)
 144 463.2 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 475.2 Q F0 2.599(Ac)144 487.2 S .098
-(olon-separated list of suf)-2.599 F<8c78>-.25 E .098
+(iltin command.).2 E F1(FIGNORE)108 475.2 Q F0 2.598(Ac)144 487.2 S .098
+(olon-separated list of suf)-2.598 F<8c78>-.25 E .098
 (es to ignore when performing \214lename completion \(see)-.15 F F2
-(READLINE)2.598 E F0(belo)144 499.2 Q 2.704(w\). A)-.25 F .204
-(\214lename whose suf)2.704 F .205(\214x matches one of the entries in)
--.25 F F2(FIGNORE)2.705 E F0 .205(is e)2.455 F .205
+(READLINE)2.599 E F0(belo)144 499.2 Q 2.705(w\). A)-.25 F .205
+(\214lename whose suf)2.705 F .205(\214x matches one of the entries in)
+-.25 F F2(FIGNORE)2.705 E F0 .205(is e)2.455 F .204
 (xcluded from the list)-.15 F(of matched \214lenames.)144 511.2 Q 2.5
 (As)5 G(ample v)-2.5 E(alue is)-.25 E F4(".o:~")2.5 E F0(.)A F1
 (GLOBIGNORE)108 523.2 Q F0 3.118(Ac)144 535.2 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 547.2 R 3.132<618c>3.131 G
+me e)-3.118 F(xpan-)-.15 E 3.132(sion. If)144 547.2 R 3.132<618c>3.132 G
 .632(lename matched by a pathname e)-3.132 F .632
 (xpansion pattern also matches one of the patterns in)-.15 F F2
 (GLOBIGNORE)144 559.2 Q/F5 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 571.2 Q(OL)-.3 E F0 2.654(Ac)144 583.2 S .153
-(olon-separated list of v)-2.654 F .153(alues controlling ho)-.25 F
+(HISTCONTR)108 571.2 Q(OL)-.3 E F0 2.653(Ac)144 583.2 S .153
+(olon-separated list of v)-2.653 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 595.2 R .49(alues includes)-.25 F F3(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 607.2 R 3.058(Av)5.558 G .558(alue of)-3.308 F F3
-(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 619.2 S .458(alue of)-3.208 F F3(ignor)2.968 E(eboth)-.37 E
-F0 .458(is shorthand for)3.238 F F3(ignor)2.959 E(espace)-.37 E F0(and)
-2.959 E F3(ignor)2.959 E(edups)-.37 E F0 5.459(.A)C -.25(va)-2.5 G .459
-(lue of).25 F F3(er)2.959 E(asedups)-.15 E F0(causes)2.959 E .699
+G 2.653(nt)-2.653 G .153(he history list.)-2.653 F .154(If the list)
+5.153 F .491(of v)144 595.2 R .491(alues includes)-.25 F F3(ignor)2.991
+E(espace)-.37 E F0 2.991(,l).18 G .491(ines which be)-2.991 F .491
+(gin with a)-.15 F F1(space)2.991 E F0 .49(character are not sa)2.991 F
+-.15(ve)-.2 G 2.99(di).15 G 2.99(nt)-2.99 G .49(he his-)-2.99 F .557
+(tory list.)144 607.2 R 3.057(Av)5.557 G .557(alue of)-3.307 F F3(ignor)
+3.067 E(edups)-.37 E F0 .557(causes lines matching the pre)3.327 F .558
+(vious history entry to not be sa)-.25 F -.15(ve)-.2 G(d.).15 E 2.959
+(Av)144 619.2 S .459(alue of)-3.209 F F3(ignor)2.969 E(eboth)-.37 E F0
+.459(is shorthand for)3.239 F F3(ignor)2.959 E(espace)-.37 E F0(and)
+2.959 E F3(ignor)2.958 E(edups)-.37 E F0 5.458(.A)C -.25(va)-2.5 G .458
+(lue of).25 F F3(er)2.958 E(asedups)-.15 E F0(causes)2.958 E .698
 (all pre)144 631.2 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 643.2 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
+3.198(df).15 G .699(rom the history list before that line is)-3.198 F
+(sa)144 643.2 Q -.15(ve)-.2 G 4.297(d. An).15 F 4.297(yv)-.15 G 1.797
+(alue not in the abo)-4.547 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 655.2 R .612(alid v)
+(is unset, or does not)4.297 F .612(include a v)144 655.2 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 667.2 S .985
-(lue of).25 F F1(HISTIGNORE)3.485 E F0 5.986(.T)C .986
+(he history list, subject to the)-3.112 F -.25(va)144 667.2 S .986
+(lue of).25 F F1(HISTIGNORE)3.486 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 679.2 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 691.2 Q F0 .181
 (The name of the \214le in which command history is sa)144 703.2 R -.15
 (ve)-.2 G 2.681(d\().15 G(see)-2.681 E F2(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)
+-.315 E F0(belo)2.431 E 2.682(w\). The)-.25 F(def)2.682 E .182(ault v)
 -.1 F(alue)-.25 E(is)144 715.2 Q F3(~/.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(GNU Bash-3.2)72 768 Q(2008 February 22)138.46 E(12)188.45
-0 Cg EP
+(xits.)-.15 E(GNU Bash-3.2)72 768 Q(2008 April 5)148.455 E(12)198.445 E
+0 Cg EP
 %%Page: 13 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(HISTFILESIZE)108 84 Q F0 1.622
+-.35 E/F1 10/Times-Bold@0 SF(HISTFILESIZE)108 84 Q F0 1.623
 (The maximum number of lines contained in the history \214le.)144 96 R
-1.623(When this v)6.623 F 1.623(ariable is assigned a)-.25 F -.25(va)144
+1.622(When this v)6.623 F 1.622(ariable is assigned a)-.25 F -.25(va)144
 108 S .305(lue, the history \214le is truncated, if necessary).25 F
 2.805(,b)-.65 G 2.805(yr)-2.805 G(emo)-2.805 E .305
-(ving the oldest entries, to contain no more)-.15 F .601
-(than that number of lines.)144 120 R .601(The def)5.601 F .602(ault v)
--.1 F .602(alue is 500.)-.25 F .602
+(ving the oldest entries, to contain no more)-.15 F .602
+(than that number of lines.)144 120 R .602(The def)5.602 F .602(ault v)
+-.1 F .602(alue is 500.)-.25 F .601
 (The history \214le is also truncated to this size)5.602 F
 (after writing it when an interacti)144 132 Q .3 -.15(ve s)-.25 H
-(hell e).15 E(xits.)-.15 E F1(HISTIGNORE)108 144 Q F0 2.658(Ac)144 156 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 168 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 180 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
+(hell e).15 E(xits.)-.15 E F1(HISTIGNORE)108 144 Q F0 2.657(Ac)144 156 S
+.157(olon-separated list of patterns used to decide which command lines\
+ should be sa)-2.657 F -.15(ve)-.2 G 2.658(do).15 G 2.658(nt)-2.658 G
+.158(he his-)-2.658 F .708(tory list.)144 168 R .708
+(Each pattern is anchored at the be)5.708 F .707
+(ginning of the line and must match the complete line)-.15 F .625
+(\(no implicit `)144 180 R F1(*)A F0 3.125('i)C 3.125(sa)-3.125 G 3.125
+(ppended\). Each)-3.125 F .626(pattern is tested ag)3.125 F .626
 (ainst the line after the checks speci\214ed by)-.05 F F1(HISTCONTR)144
-192 Q(OL)-.3 E F0 1.154(are applied.)3.654 F 1.154
+192 Q(OL)-.3 E F0 1.155(are applied.)3.655 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 204 R 2.515(vious history line.)
+F1(&)A F0(')A 2.514(matches the pre)144 204 R 2.514(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 216
-Q -.15(ve)-.15 G 3.352(db).15 G .852(efore attempting a match.)-3.352 F
+Q -.15(ve)-.15 G 3.353(db).15 G .853(efore attempting a match.)-3.353 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 228 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 240 Q F0 1.942
 (The number of commands to remember in the command history \(see)144 252
-R/F2 9/Times-Bold@0 SF(HIST)4.442 E(OR)-.162 E(Y)-.315 E F0(belo)4.192 E
-4.442(w\). The)-.25 F(def)144 264 Q(ault v)-.1 E(alue is 500.)-.25 E F1
-(HISTTIMEFORMA)108 276 Q(T)-.95 E F0 .951(If this v)144 288 R .951
-(ariable is set and not null, its v)-.25 F .952
+R/F2 9/Times-Bold@0 SF(HIST)4.443 E(OR)-.162 E(Y)-.315 E F0(belo)4.193 E
+4.443(w\). The)-.25 F(def)144 264 Q(ault v)-.1 E(alue is 500.)-.25 E F1
+(HISTTIMEFORMA)108 276 Q(T)-.95 E F0 .952(If this v)144 288 R .952
+(ariable is set and not null, its v)-.25 F .951
 (alue is used as a format string for)-.25 F/F3 10/Times-Italic@0 SF
-(strftime)3.452 E F0 .952(\(3\) to print the)B .673
+(strftime)3.451 E F0 .951(\(3\) to print the)B .672
 (time stamp associated with each history entry displayed by the)144 300
-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 .144
+R F1(history)3.173 E F0 -.2(bu)3.173 G 3.173(iltin. If).2 F .673(this v)
+3.173 F .673(ariable is)-.25 F .144
 (set, time stamps are written to the history \214le so the)144 312 R
 2.644(ym)-.15 G .144(ay be preserv)-2.644 F .144
-(ed across shell sessions.)-.15 F(This)5.145 E(uses the history comment\
+(ed across shell sessions.)-.15 F(This)5.144 E(uses the history comment\
  character to distinguish timestamps from other history lines.)144 324 Q
 F1(HOME)108 336 Q F0 1.27
 (The home directory of the current user; the def)144 348 R 1.27(ault ar)
@@ -1694,58 +1693,58 @@ F1(HOME)108 336 Q F0 1.27
 (HOSTFILE)108 372 Q F0 1.015
 (Contains the name of a \214le in the same format as)144 384 R F3
 (/etc/hosts)5.181 E F0 1.015(that should be read when the shell)5.181 F
-.551(needs to complete a hostname.)144 396 R .551
+.55(needs to complete a hostname.)144 396 R .551
 (The list of possible hostname completions may be changed while)5.551 F
-1.058(the shell is running; the ne)144 408 R 1.059
-(xt time hostname completion is attempted after the v)-.15 F 1.059
-(alue is changed,)-.25 F F1(bash)144 420 Q F0 .716
-(adds the contents of the ne)3.216 F 3.216<778c>-.25 G .715(le to the e)
--3.216 F .715(xisting list.)-.15 F(If)5.715 E F2(HOSTFILE)3.215 E F0
-.715(is set, b)2.965 F .715(ut has no v)-.2 F(alue,)-.25 E F1(bash)144
-432 Q F0 2.235(attempts to read)4.735 F F3(/etc/hosts)6.401 E F0 2.235
-(to obtain the list of possible hostname completions.)6.401 F(When)7.236
+1.059(the shell is running; the ne)144 408 R 1.059
+(xt time hostname completion is attempted after the v)-.15 F 1.058
+(alue is changed,)-.25 F F1(bash)144 420 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 F2(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
+432 Q F0 2.236(attempts to read)4.736 F F3(/etc/hosts)6.401 E F0 2.235
+(to obtain the list of possible hostname completions.)6.401 F(When)7.235
 E F2(HOSTFILE)144 444 Q F0(is unset, the hostname list is cleared.)2.25
-E F1(IFS)108 456 Q F0(The)20.44 E F3 .556(Internal F)3.636 F .556
-(ield Separ)-.45 F(ator)-.15 E F0 .556(that is used for w)3.786 F .556
-(ord splitting after e)-.1 F .555(xpansion and to split lines into)-.15
+E F1(IFS)108 456 Q F0(The)20.44 E F3 .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 468 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 480 Q
 F0 .503(Controls the action of an interacti)144 492 R .803 -.15(ve s)
 -.25 H .503(hell on receipt of an).15 F F2(EOF)3.003 E F0 .503
-(character as the sole input.)2.753 F .504(If set,)5.504 F .426(the v)
+(character as the sole input.)2.753 F .503(If set,)5.503 F .426(the v)
 144 504 R .426(alue is the number of consecuti)-.25 F -.15(ve)-.25 G F2
 (EOF)3.076 E F0 .426
-(characters which must be typed as the \214rst characters)2.676 F .302
+(characters which must be typed as the \214rst characters)2.676 F .303
 (on an input line before)144 516 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 .303(alue, or has)-.25 F(no v)144 528 Q(alue, the def)
+(umeric v).15 F .302(alue, or has)-.25 F(no v)144 528 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
 F2(EOF)2.5 E F0(signi\214es the end of input to the shell.)2.25 E F1
-(INPUTRC)108 540 Q F0 1.436(The \214lename for the)144 552 R F1 -.18(re)
+(INPUTRC)108 540 Q F0 1.435(The \214lename for the)144 552 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 F3(~/.inputr)5.602 E(c)
--.37 E F0(\(see)5.601 E F2(READLINE)3.935 E F0(belo)144 564 Q(w\).)-.25
-E F1(LANG)108 576 Q F0 1.239(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.24
+-.37 E F0(\(see)5.602 E F2(READLINE)3.936 E F0(belo)144 564 Q(w\).)-.25
+E F1(LANG)108 576 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 588 Q F1(LC_)2.5 E F0(.)A F1(LC_ALL)108 600 Q F0 .764
 (This v)144 612 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 624 Q(.)-.65 E F1
-(LC_COLLA)108 636 Q(TE)-.95 E F0 .411(This v)144 648 R .412(ariable det\
+(LC_COLLA)108 636 Q(TE)-.95 E F0 .412(This v)144 648 R .412(ariable det\
 ermines the collation order used when sorting the results of pathname e)
--.25 F(xpansion,)-.15 E 1.465(and determines the beha)144 660 R 1.465
-(vior of range e)-.2 F 1.464(xpressions, equi)-.15 F -.25(va)-.25 G
-1.464(lence classes, and collating sequences).25 F(within pathname e)144
+-.25 F(xpansion,)-.15 E 1.464(and determines the beha)144 660 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
 672 Q(xpansion and pattern matching.)-.15 E F1(LC_CTYPE)108 684 Q F0
-1.935(This v)144 696 R 1.936
+1.936(This v)144 696 R 1.936
 (ariable determines the interpretation of characters and the beha)-.25 F
-1.936(vior of character classes)-.2 F(within pathname e)144 708 Q
+1.935(vior of character classes)-.2 F(within pathname e)144 708 Q
 (xpansion and pattern matching.)-.15 E(GNU Bash-3.2)72 768 Q
-(2008 February 22)138.46 E(13)188.45 E 0 Cg EP
+(2008 April 5)148.455 E(13)198.445 E 0 Cg EP
 %%Page: 14 14
 %%BeginPageSetup
 BP
@@ -1755,62 +1754,62 @@ BP
 96 Q(ariable determines the locale used to translate double-quoted stri\
 ngs preceded by a)-.25 E F1($)2.5 E F0(.)A F1(LC_NUMERIC)108 108 Q F0
 (This v)144 120 Q(ariable determines the locale cate)-.25 E
-(gory used for number formatting.)-.15 E F1(LINES)108 132 Q F0 1.219
-(Used by the)5.99 F F1(select)3.719 E F0 -.2(bu)3.719 G 1.218(iltin com\
+(gory used for number formatting.)-.15 E F1(LINES)108 132 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 144 Q F1(MAIL)108 156
-Q F0 .187(If this parameter is set to a \214le name and the)8.78 F/F2 9
+Q F0 .188(If this parameter is set to a \214le name and the)8.78 F/F2 9
 /Times-Bold@0 SF(MAILP)2.687 E -.855(AT)-.666 G(H).855 E F0 -.25(va)
-2.438 G .188(riable is not set,).25 F F1(bash)2.688 E F0 .188
-(informs the user)2.688 F(of the arri)144 168 Q -.25(va)-.25 G 2.5(lo)
+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 168 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 180 Q F0 .099(Speci\214es ho)144 192 R 2.599(wo)-.25 G .099
-(ften \(in seconds\))-2.599 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 .098
-(When it is time)5.098 F .223(to check for mail, the shell does so befo\
-re displaying the primary prompt.)144 204 R .224(If this v)5.224 F .224
+108 180 Q F0 .098(Speci\214es ho)144 192 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 befo\
+re displaying the primary prompt.)144 204 R .223(If this v)5.223 F .223
 (ariable is unset,)-.25 F .066(or set to a v)144 216 R .066(alue that i\
 s not a number greater than or equal to zero, the shell disables mail c\
-hecking.)-.25 F F1(MAILP)108 228 Q -.95(AT)-.74 G(H).95 E F0 2.814(Ac)
-144 240 S .314(olon-separated list of \214le names to be check)-2.814 F
+hecking.)-.25 F F1(MAILP)108 228 Q -.95(AT)-.74 G(H).95 E F0 2.815(Ac)
+144 240 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 252 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.807(`?'. When)144 264 R .307(used in the te)
-2.807 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.308 E
+essage with a)-3.42 F 2.808(`?'. When)144 264 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 276 Q F1(MAILP)144 288 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!"\010).15 E F1(Bash)144 300 Q F0 .389
-(supplies a def)2.889 F .389(ault v)-.1 F .389(alue for this v)-.25 F
-.389(ariable, b)-.25 F .388
+(ail":~/shell\255mail?"$_ has mail!"\010).15 E F1(Bash)144 300 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 312 Q(ar/mail/)-.25 E F1($USER)A F0
-(\).)A F1(OPTERR)108 324 Q F0 .389(If set to the v)144 336 R .389
-(alue 1,)-.25 F F1(bash)2.889 E F0 .389
-(displays error messages generated by the)2.889 F F1(getopts)2.89 E F0
--.2(bu)2.89 G .39(iltin command \(see).2 F F2 .36(SHELL B)144 348 R(UIL)
--.09 E .36(TIN COMMANDS)-.828 F F0(belo)2.61 E(w\).)-.25 E F2(OPTERR)
-5.36 E F0 .359(is initialized to 1 each time the shell is in)2.61 F -.2
-(vo)-.4 G -.1(ke).2 G(d).1 E(or a shell script is e)144 360 Q -.15(xe)
--.15 G(cuted.).15 E F1 -.74(PA)108 372 S(TH)-.21 E F0 .587
-(The search path for commands.)9.91 F .588
+(\).)A F1(OPTERR)108 324 Q F0 .39(If set to the v)144 336 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 .359(SHELL B)144 348 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 360 Q -.15(xe)-.15 G(cuted.)
+.15 E F1 -.74(PA)108 372 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.587 F .472(for commands \(see)144 384 R F2 .472(COMMAND EXECUTION)
-2.972 F F0(belo)2.722 E 2.972(w\). A)-.25 F .471
+5.588 F .471(for commands \(see)144 384 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 396 S
-.344(lue of).25 F F1 -.74(PA)2.844 G(TH)-.21 E F0 .344
-(indicates the current directory)2.844 F 5.345(.A)-.65 G .345
-(null directory name may appear as tw)-2.5 F 2.845(oa)-.1 G(djacent)
--2.845 E .868(colons, or as an initial or trailing colon.)144 408 R .868
-(The def)5.868 F .867(ault path is system-dependent, and is set by the)
--.1 F 26.328(administrator who installs)144 420 R F1(bash)28.828 E F0
-31.329(.A)C 26.329(common v)-2.5 F 26.329(alue is)-.25 F/F3 10/Courier@0
-SF(/usr/gnu/bin:/usr/local/bin:/usr/ucb:/bin:/usr/bin)144 432 Q F0(.)A
-F1(POSIXL)108 444 Q(Y_CORRECT)-.92 E F0 .472(If this v)144 456 R .472
-(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 .471
-(posix mode)2.971 F F0 .471(before reading)2.971 F .011
+.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 408 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 420 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 432
+Q F0(.)A F1(POSIXL)108 444 Q(Y_CORRECT)-.92 E F0 .471(If this v)144 456
+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 468 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 480 Q F1(bash)2.5
@@ -1819,43 +1818,43 @@ 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)
 (xe)-.15 G(cuted.).15 E F1(PR)108 492 Q(OMPT_COMMAND)-.3 E F0
 (If set, the v)144 504 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 516 Q F0 .065(The v)19.33 F .065(alue of this parameter is e)-.25 F
+108 516 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 528 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 540 Q F0 .004(The v)19.33 F .004
+-.74('')2.5 G(.).74 E F1(PS2)108 540 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 .005(and used as the secondary prompt string.)2.505 F(The)
-5.005 E(def)144 552 Q(ault is `)-.1 E(`)-.74 E F1(>)A F0 -.74('')2.5 G
-(.).74 E F1(PS3)108 564 Q F0 1.116(The v)19.33 F 1.115
+2.505 E F0 .004(and used as the secondary prompt string.)2.505 F(The)
+5.004 E(def)144 552 Q(ault is `)-.1 E(`)-.74 E F1(>)A F0 -.74('')2.5 G
+(.).74 E F1(PS3)108 564 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.115(command \(see)3.615 F F2 1.115(SHELL GRAM-)3.615 F(MAR)
+3.615 E F0 1.116(command \(see)3.616 F F2 1.116(SHELL GRAM-)3.616 F(MAR)
 144 576 Q F0(abo)2.25 E -.15(ve)-.15 G(\).).15 E F1(PS4)108 588 Q F0
-1.098(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.099
-(alue is printed before each com-)-.25 F(mand)144 600 Q F1(bash)3.726 E
-F0 1.226(displays during an e)3.726 F -.15(xe)-.15 G 1.226
-(cution trace.).15 F 1.225(The \214rst character of)6.226 F F2(PS4)3.725
-E F0 1.225(is replicated multiple)3.475 F(times, as necessary)144 612 Q
+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 600 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 F2(PS4)3.726
+E F0 1.226(is replicated multiple)3.476 F(times, as necessary)144 612 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 624 Q F0 .663
+-.74('')2.5 G(.).74 E F1(SHELL)108 624 Q F0 .664
 (The full pathname to the shell is k)144 636 R .664(ept in this en)-.1 F
-.664(vironment v)-.4 F 3.164(ariable. If)-.25 F .664
+.664(vironment v)-.4 F 3.164(ariable. If)-.25 F .663
 (it is not set when the shell)3.164 F(starts,)144 648 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 660 Q(T)-.95 E F0 .827(The v)144
+G(ogin shell.)-2.5 E F1(TIMEFORMA)108 660 Q(T)-.95 E F0 .826(The v)144
 672 R .826
 (alue of this parameter is used as a format string specifying ho)-.25 F
-3.326(wt)-.25 G .826(he timing information for)-3.326 F .648
-(pipelines pre\214x)144 684 R .648(ed with the)-.15 F F1(time)3.148 E F0
-(reserv)3.148 E .648(ed w)-.15 F .649(ord should be displayed.)-.1 F
-(The)5.649 E F1(%)3.149 E F0 .649(character introduces)3.149 F .712
+3.327(wt)-.25 G .827(he timing information for)-3.327 F .649
+(pipelines pre\214x)144 684 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 696 R .711(xpanded to a time v)-.15 F
-.711(alue or other information.)-.25 F .711(The escape sequences)5.711 F
+.712(alue or other information.)-.25 F .712(The escape sequences)5.712 F
 (and their meanings are as follo)144 708 Q
 (ws; the braces denote optional portions.)-.25 E(GNU Bash-3.2)72 768 Q
-(2008 February 22)138.46 E(14)188.45 E 0 Cg EP
+(2008 April 5)148.455 E(14)198.445 E 0 Cg EP
 %%Page: 15 15
 %%BeginPageSetup
 BP
@@ -1870,178 +1869,178 @@ F2(p)A F1(][l]S)A F0(The number of CPU seconds spent in system mode.)
 (The CPU percentage, computed as \(%U + %S\) / %R.)33.89 E .87
 (The optional)144 148.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
-(he number of fractional digits after a decimal)-3.37 F 2.526(point. A)
-144 160.8 R -.25(va)2.526 G .025
-(lue of 0 causes no decimal point or fraction to be output.).25 F .025
-(At most three places after the)5.025 F .537
-(decimal point may be speci\214ed; v)144 172.8 R .537(alues of)-.25 F F2
-(p)3.037 E F0 .537(greater than 3 are changed to 3.)3.037 F(If)5.538 E
-F2(p)3.038 E F0 .538(is not speci\214ed,)3.038 F(the v)144 184.8 Q
-(alue 3 is used.)-.25 E .668(The optional)144 201.6 R F1(l)3.168 E F0
+(he number of fractional digits after a decimal)-3.37 F 2.525(point. A)
+144 160.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 172.8 R .538(alues of)-.25 F F2
+(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 184.8 Q
+(alue 3 is used.)-.25 E .667(The optional)144 201.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.167(s. The)B -.25(va)
-3.167 G(lue).25 E(of)144 213.6 Q F2(p)2.5 E F0
-(determines whether or not the fraction is included.)2.5 E(If this v)144
-230.4 Q(ariable is not set,)-.25 E F1(bash)2.501 E F0 .001
-(acts as if it had the v)2.501 F(alue)-.25 E F1($\010\\nr)2.501 E
-(eal\\t%3lR\\nuser\\t%3lU\\nsys%3lS\010)-.18 E F0(.)A .495(If the v)144
+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 213.6 Q F2(p)2.5 E F0
+(determines whether or not the fraction is included.)2.5 E .001
+(If this v)144 230.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
 242.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
-254.4 Q F1(TMOUT)108 271.2 Q F0 .717(If set to a v)144 283.2 R .717
+254.4 Q F1(TMOUT)108 271.2 Q F0 .718(If set to a v)144 283.2 R .717
 (alue greater than zero,)-.25 F F1(TMOUT)3.217 E F0 .717
-(is treated as the def)3.217 F .718(ault timeout for the)-.1 F F1 -.18
-(re)3.218 G(ad).18 E F0 -.2(bu)3.218 G(iltin.).2 E(The)144 295.2 Q F1
+(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 295.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 .885(ing from a terminal.)144 307.2
-R .885(In an interacti)5.885 F 1.185 -.15(ve s)-.25 H .885(hell, the v)
-.15 F .886(alue is interpreted as the number of seconds to)-.25 F -.1
+(seconds when input is com-)2.542 F .886(ing from a terminal.)144 307.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 319.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
-331.2 Q -.15(ve)-.25 G(.).15 E F1(TMPDIR)108 348 Q F0 .273(If set,)144
-360 R F1(Bash)2.773 E F0 .273(uses its v)2.773 F .274
-(alue as the name of a directory in which)-.25 F F1(Bash)2.774 E F0 .274
-(creates temporary \214les for the)2.774 F(shell')144 372 Q 2.5(su)-.55
-G(se.)-2.5 E F1(auto_r)108 388.8 Q(esume)-.18 E F0 .531(This v)144 400.8
-R .531(ariable controls ho)-.25 F 3.031(wt)-.25 G .531
-(he shell interacts with the user and job control.)-3.031 F .53
-(If this v)5.53 F .53(ariable is set,)-.25 F .538(single w)144 412.8 R
+331.2 Q -.15(ve)-.25 G(.).15 E F1(TMPDIR)108 348 Q F0 .274(If set,)144
+360 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 372 Q 2.5(su)-.55
+G(se.)-2.5 E F1(auto_r)108 388.8 Q(esume)-.18 E F0 .53(This v)144 400.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 412.8 R
 .538(ord simple commands without redirections are treated as candidates\
- for resumption of an)-.1 F -.15(ex)144 424.8 S .367(isting stopped job)
-.15 F 5.367(.T)-.4 G .366(here is no ambiguity allo)-5.367 F .366
-(wed; if there is more than one job be)-.25 F .366(ginning with)-.15 F
-1.124(the string typed, the job most recently accessed is selected.)144
-436.8 R(The)6.125 E F2(name)3.985 E F0 1.125(of a stopped job, in this)
-3.805 F(conte)144 448.8 Q 1.133
+ for resumption of an)-.1 F -.15(ex)144 424.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
+436.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 448.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.632(,t).68 G 1.132
-(he string supplied must)-3.632 F .624
+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 460.8 R .624(xactly; if set to)
--.15 F F2(substring)3.125 E F0 3.125(,t).22 G .625
-(he string supplied needs to match a)-3.125 F .885
+-.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 472.8 R 5.884(.T)-.4 G(he)
--5.884 E F2(substring)3.724 E F0 -.25(va)3.604 G .884(lue pro).25 F .884
-(vides functionality analogous to)-.15 F(the)144 484.8 Q F1(%?)3.333 E
-F0 .833(job identi\214er \(see)5.833 F/F3 9/Times-Bold@0 SF .834
+-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 484.8 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 .834
-(alue, the supplied string)-.25 F .316
+(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 496.8 R 2.816(sn)-.55 G .316
-(ame; this pro)-2.816 F .315(vides functionality analogous to the)-.15 F
-F1(%)2.815 E F2(string)A F0(job)2.815 E(identi\214er)144 508.8 Q(.)-.55
-E F1(histchars)108 525.6 Q F0 2.069(The tw)144 537.6 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.57 E
-(OR)-.162 E(Y)-.315 E(EXP)144 549.6 Q(ANSION)-.666 E F0(belo)3.466 E
-3.716(w\). The)-.25 F 1.216(\214rst character is the)3.716 F F2 1.215
-(history e)3.715 F(xpansion)-.2 E F0(character)3.715 E 3.715(,t)-.4 G
-1.215(he character which)-3.715 F .798(signals the start of a history e)
+(ame; this pro)-2.816 F .316(vides functionality analogous to the)-.15 F
+F1(%)2.816 E F2(string)A F0(job)2.816 E(identi\214er)144 508.8 Q(.)-.55
+E F1(histchars)108 525.6 Q F0 2.07(The tw)144 537.6 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 549.6 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 561.6 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 573.6 Q F0(character)2.74 E 2.74(,w)-.4 G
-.239(hich is used as shorthand for re-running the pre)-2.74 F .239
-(vious command entered, substitut-)-.25 F .575
+(ubstitu-)-3.298 E(tion)144 573.6 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 585.6 R .575(The def)
-5.575 F .575(ault is `)-.1 F F1(^)A F0 3.075('. The)B .576
-(optional third character is the)3.076 F .223(character which indicates\
+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 597.6 R(-)-.2 E 1.293(acter of a w)144 609.6 R 1.293
-(ord, normally `)-.1 F F1(#)A F0 3.793('. The)B 1.294
-(history comment character causes history substitution to be)3.794 F .38
-(skipped for the remaining w)144 621.6 R .38(ords on the line.)-.1 F
-.379(It does not necessarily cause the shell parser to treat)5.379 F
+char)144 597.6 R(-)-.2 E 1.294(acter of a w)144 609.6 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 621.6 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 633.6 Q F1(Arrays)87 650.4 Q
 (Bash)108 662.4 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 F1(declar)2.958 E(e)-.18
-E F0 -.2(bu)2.958 G(iltin).2 E .961(will e)108 674.4 R .961
-(xplicitly declare an array)-.15 F 5.961(.T)-.65 G .961
-(here is no maximum limit on the size of an array)-5.961 F 3.46(,n)-.65
-G .96(or an)-3.46 F 3.46(yr)-.15 G(equirement)-3.46 E
+E F0 -.2(bu)2.958 G(iltin).2 E .96(will e)108 674.4 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 686.4 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.301(An array is created automatically if an)108 703.2 R 3.801(yv)-.15
-G 1.302(ariable is assigned to using the syntax)-4.051 F F2(name)3.802 E
+1.302(An array is created automatically if an)108 703.2 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 715.2 Q F2
-(subscript)3.182 E F0 .342(is treated as an arithmetic e)3.522 F .342
-(xpression that must e)-.15 F -.25(va)-.25 G .341
-(luate to a number greater than or equal to).25 F 4.076(zero. T)108
-727.2 R 4.076(oe)-.8 G 1.577(xplicitly declare an array)-4.226 F 4.077
+(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
+727.2 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.577
-(TIN COMMANDS)-.828 F F0(belo)3.827 E(w\).)-.25 E(GNU Bash-3.2)72 768 Q
-(2008 February 22)138.46 E(15)188.45 E 0 Cg EP
+(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(GNU Bash-3.2)72 768 Q
+(2008 April 5)148.455 E(15)198.445 E 0 Cg EP
 %%Page: 16 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/F1 10/Times-Bold@0 SF(declar)108 84 Q 3.376<65ad>-.18 G(a)-3.376
-E/F2 10/Times-Italic@0 SF(name)3.376 E F1([)A F2(subscript)A F1(])A F0
-.876(is also accepted; the)3.376 F F2(subscript)3.375 E F0 .875
-(is ignored.)3.375 F(Attrib)5.875 E .875(utes may be speci\214ed for an)
+-.35 E/F1 10/Times-Bold@0 SF(declar)108 84 Q 3.375<65ad>-.18 G(a)-3.375
+E/F2 10/Times-Italic@0 SF(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 96 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 112.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.148(,w)C 1.648(here each)
--4.148 F F2(value)108 124.8 Q F0 .65(is of the form [)3.15 F F2
+(... 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 124.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 .276(supplied, that inde)108 136.8 R 2.776
-(xi)-.15 G 2.776(sa)-2.776 G .276(ssigned to; otherwise the inde)-2.776
-F 2.777(xo)-.15 G 2.777(ft)-2.777 G .277
-(he element assigned is the last inde)-2.777 F 2.777(xa)-.15 G .277
-(ssigned to)-2.777 F 1.394(by the statement plus one.)108 148.8 R(Inde)
-6.394 E 1.394(xing starts at zero.)-.15 F 1.393
-(This syntax is also accepted by the)6.394 F F1(declar)3.893 E(e)-.18 E
-F0 -.2(bu)3.893 G(iltin.).2 E(Indi)108 160.8 Q
+(ets and subscript are)-.1 F .277(supplied, that inde)108 136.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 148.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 F1(declar)3.894 E(e)-.18 E
+F0 -.2(bu)3.894 G(iltin.).2 E(Indi)108 160.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 177.6 Q 3.575(ye)-.15 G 1.075
-(lement of an array may be referenced using ${)-3.575 F F2(name)A F0([)A
-F2(subscript)A F0 3.575(]}. The)B 1.076(braces are required to a)3.576 F
--.2(vo)-.2 G(id).2 E 1.542(con\215icts with pathname e)108 189.6 R 4.041
+-.15(ve)-.15 G(.).15 E(An)108 177.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 189.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.041 E F0(.)A 1.056
-(These subscripts dif)108 201.6 R 1.056(fer only when the w)-.25 F 1.057
-(ord appears within double quotes.)-.1 F 1.057(If the w)6.057 F 1.057
-(ord is double-quoted,)-.1 F(${)108 213.6 Q F2(name)A F0 .521([*]} e)B
-.521(xpands to a single w)-.15 F .521(ord with the v)-.1 F .52
+-.1 F 1.541(xpands to all members of)-.15 F F2(name)4.042 E F0(.)A 1.057
+(These subscripts dif)108 201.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 213.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.374(of the)108 225.6 R/F3 9/Times-Bold@0 SF(IFS)3.874 E F0 1.374
-(special v)3.624 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.375
-(to a separate w)3.875 F 3.875(ord. When)-.1 F 2.028
+1.375(of the)108 225.6 R/F3 9/Times-Bold@0 SF(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 237.6 R F2(name)A F0 2.028([@]} e)B
-2.028(xpands to nothing.)-.15 F 2.027(If the double-quoted e)7.028 F
-2.027(xpansion occurs)-.15 F .758(within a w)108 249.6 R .759
+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 249.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 .516(and the e)108
+(ginning part of the original w)-.15 F(ord,)-.1 E .515(and the e)108
 261.6 R .516(xpansion of the last parameter is joined with the last par\
-t of the original w)-.15 F 3.015(ord. This)-.1 F .515(is analogous)3.015
-F .227(to the e)108 273.6 R .228(xpansion of the special parameters)-.15
+t of the original w)-.15 F 3.016(ord. This)-.1 F .516(is analogous)3.016
+F .228(to the e)108 273.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.728 E -.15(ve)-.15 G 2.728
+(Special P)2.728 F(arameters)-.1 E F0(abo)2.727 E -.15(ve)-.15 G 2.727
 (\). ${#).15 F F2(name)A F0([)A F2(subscript)A F0(]})A -.15(ex)108 285.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 .733(ments in the array)108 297.6
-R 5.733(.R)-.65 G .733(eferencing an array v)-5.733 F .733
-(ariable without a subscript is equi)-.25 F -.25(va)-.25 G .734
+(xpansion is the number of ele-)-.15 F .734(ments in the array)108 297.6
+R 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 309.6 Q(The)108 326.4 Q F1
-(unset)2.767 E F0 -.2(bu)2.767 G .267(iltin is used to destro).2 F 2.767
+(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(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.766 E(script)108
+(ys the array element at inde)-.1 F(x)-.15 E F2(sub-)2.767 E(script)108
 338.4 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)
@@ -2049,40 +2048,40 @@ R 5.733(.R)-.65 G .733(eferencing an array v)-5.733 F .733
 (,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 367.2 Q F1(declar)3.671 E(e)
--.18 E F0(,)A F1(local)3.671 E F0 3.671(,a)C(nd)-3.671 E F1 -.18(re)
-3.671 G(adonly).18 E F0 -.2(bu)3.671 G 1.171(iltins each accept a).2 F
-F1<ad61>3.671 E F0 1.17(option to specify an array)3.671 F 6.17(.T)-.65
-G(he)-6.17 E F1 -.18(re)3.67 G(ad).18 E F0 -.2(bu)3.67 G(iltin).2 E .44
+(he entire array)-2.5 E(.)-.65 E(The)108 367.2 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 379.2 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.941 E(e)-.18 E F0 -.2
+-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 391.2 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 408 Q(ANSION)-.81 E F0 .76(Expansion is perform\
 ed on the command line after it has been split into w)108 420 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 432 S .369(pansion performed:).15 F F2(br)
+(inds of)-3.26 F -.15(ex)108 432 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 .37
+(ameter and variable e)-.15 F(xpansion)-.2 E F0(,).24 E F2 .369
 (command sub-)2.869 F(stitution)108 444 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
-.471(The order of e)108 460.8 R .471(xpansions is: brace e)-.15 F .471
+.47(The order of e)108 460.8 R .471(xpansions is: brace e)-.15 F .471
 (xpansion, tilde e)-.15 F .471(xpansion, parameter)-.15 F 2.971(,v)-.4 G
-.47(ariable and arithmetic e)-3.221 F(xpansion)-.15 E
+.471(ariable and arithmetic e)-3.221 F(xpansion)-.15 E
 (and command substitution \(done in a left-to-right f)108 472.8 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 489.6 Q
 (xpansion a)-.15 E -.25(va)-.2 G(ilable:).25 E F2(pr)2.5 E
-(ocess substitution)-.45 E F0(.)A 1.486(Only brace e)108 506.4 R 1.486
-(xpansion, w)-.15 F 1.486(ord splitting, and pathname e)-.1 F 1.487
-(xpansion can change the number of w)-.15 F 1.487(ords of the)-.1 F -.15
-(ex)108 518.4 S 1.165(pansion; other e).15 F 1.165(xpansions e)-.15 F
-1.165(xpand a single w)-.15 F 1.165(ord to a single w)-.1 F 3.665
-(ord. The)-.1 F 1.164(only e)3.665 F 1.164(xceptions to this are the)
+(ocess substitution)-.45 E F0(.)A 1.487(Only brace e)108 506.4 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 518.4 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 530.4 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 F3 -.666(PA)2.5 G
@@ -2093,58 +2092,58 @@ Q F2(Br)108.58 559.2 Q .606(ace e)-.15 F(xpansion)-.2 E F0 .606
 (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 .151(form of an optional)108 583.2 R F2(pr)2.651 E(eamble)
+(he)-2.915 E .152(form of an optional)108 583.2 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 595.2 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 607.2 R .659(xpanding left to)-.15 F(right.)
-108 619.2 Q .719(Brace e)108 636 R .719(xpansions may be nested.)-.15 F
+ch resulting string, e)108 607.2 R .658(xpanding left to)-.15 F(right.)
+108 619.2 Q .718(Brace e)108 636 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 648 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.133(As)108
-664.8 S .633(equence e)-3.133 F .633(xpression tak)-.15 F .633
-(es the form)-.1 F F1({)3.133 E F2(x)A F1(..)A F2(y)A F1(})A F0 3.133
-(,w)C(here)-3.133 E F2(x)3.133 E F0(and)3.134 E F2(y)3.134 E F0 .634
-(are either inte)3.134 F .634(gers or single characters.)-.15 F(When)
-5.634 E(inte)108 676.8 Q .402(gers are supplied, the e)-.15 F .402
+A F1(})A F0 2.5(ee)C(xpands into `ade ace abe'.)-2.65 E 3.134(As)108
+664.8 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 676.8 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.901 E F2(y)2.901 E F0 2.901(,i)C(nclusi)-2.901 E -.15(ve)-.25
-G 5.401(.W).15 G .401(hen characters)-5.401 F .687(are supplied, the e)
+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 688.8 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.188(,i)C(nclusi)-3.188 E -.15(ve)-.25 G 5.688(.N).15 G
-(ote)-5.688 E(that both)108 700.8 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 .582(Brace e)108 717.6 R .582
-(xpansion is performed before an)-.15 F 3.082(yo)-.15 G .581(ther e)
--3.082 F .581(xpansions, and an)-.15 F 3.081(yc)-.15 G .581
-(haracters special to other e)-3.081 F(xpansions)-.15 E 1.208
-(are preserv)108 729.6 R 1.208(ed in the result.)-.15 F 1.209
+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 700.8 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 717.6 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 1.209
+(are preserv)108 729.6 R 1.209(ed in the result.)-.15 F 1.209
 (It is strictly te)6.209 F(xtual.)-.15 E F1(Bash)6.209 E F0 1.209
-(does not apply an)3.709 F 3.709(ys)-.15 G 1.209
+(does not apply an)3.709 F 3.709(ys)-.15 G 1.208
 (yntactic interpretation to the)-3.709 F(GNU Bash-3.2)72 768 Q
-(2008 February 22)138.46 E(16)188.45 E 0 Cg EP
+(2008 April 5)148.455 E(16)198.445 E 0 Cg EP
 %%Page: 17 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(conte)108 84 Q(xt of the e)-.15 E(xpansion or the te)-.15 E
-(xt between the braces.)-.15 E 3.633(Ac)108 100.8 S 1.133
-(orrectly-formed brace e)-3.633 F 1.132(xpansion must contain unquoted \
-opening and closing braces, and at least one)-.15 F 3.44
+(xt between the braces.)-.15 E 3.632(Ac)108 100.8 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 112.8 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.441(xpansion is left)-.15 F 2.755(unchanged. A)108 124.8 R/F1
+-5.941 F 3.44(xpansion is left)-.15 F 2.755(unchanged. A)108 124.8 R/F1
 10/Times-Bold@0 SF({)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.91
-(sion. T)108 136.8 R 2.91(oa)-.8 G -.2(vo)-3.11 G .41
+(nt its being considered part of a brace e).15 F(xpres-)-.15 E 2.911
+(sion. T)108 136.8 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
-F1(${)2.911 E F0 .411(is not considered eligible for brace e)2.911 F
+F1(${)2.911 E F0 .41(is not considered eligible for brace e)2.911 F
 (xpan-)-.15 E(sion.)108 148.8 Q 1.476(This construct is typically used \
 as shorthand when the common pre\214x of the strings to be generated is)
 108 165.6 R(longer than in the abo)108 177.6 Q .3 -.15(ve ex)-.15 H
@@ -2154,145 +2153,145 @@ G(dist,b).65 E(ugs})-.2 E(or)108 206.4 Q(cho)144 218.4 Q
 -.25 E(x}})-.15 E .618(Brace e)108 235.2 R .618
 (xpansion introduces a slight incompatibility with historical v)-.15 F
 .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 .248
-(ing or closing braces specially when the)108 247.2 R 2.748(ya)-.15 G
-.247(ppear as part of a w)-2.748 F .247(ord, and preserv)-.1 F .247
-(es them in the output.)-.15 F F1(Bash)5.247 E F0(remo)108 259.2 Q -.15
+(does not treat open-)3.118 F .247
+(ing or closing braces specially when the)108 247.2 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 259.2 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 F1(sh)
 3.53 E F0(as)3.53 E/F2 10/Times-Italic@0 SF(\214le{1,2})108 271.2 Q F0
-.515(appears identically in the output.)3.015 F .515(The same w)5.515 F
-.515(ord is output as)-.1 F F2 .514(\214le1 \214le2)4.925 F F0 .514
-(after e)3.034 F .514(xpansion by)-.15 F F1(bash)3.014 E F0(.)A .436
+.514(appears identically in the output.)3.014 F .515(The same w)5.515 F
+.515(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 283.2 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 .437
+(+B)2.936 E F0 .436(option or disable brace e)2.936 F .436
 (xpansion with the)-.15 F F1(+B)108 295.2 Q F0(option to the)2.5 E F1
 (set)2.5 E F0(command \(see)2.5 E/F3 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 -.18(Ti)
-87 312 S(lde Expansion).18 E F0 1.087(If a w)108 324 R 1.087(ord be)-.1
-F 1.087(gins with an unquoted tilde character \(`)-.15 F F1(~)A F0 1.086
+87 312 S(lde Expansion).18 E F0 1.086(If a w)108 324 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 336 R F2(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 .726(in the tilde-pre\214x\
- are quoted, the characters in the tilde-pre\214x follo)108 348 R .725
-(wing the tilde are treated as a possible)-.25 F F2(lo)108 360 Q .522
-(gin name)-.1 F F0 5.522(.I)C 3.022(ft)-5.522 G .522
+-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 348 R .726
+(wing the tilde are treated as a possible)-.25 F F2(lo)108 360 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.022 F .523(alue of the shell parameter)-.25 F F3(HOME)108 372 Q/F4 9
-/Times-Roman@0 SF(.)A F0(If)4.787 E F3(HOME)2.787 E F0 .287
-(is unset, the home directory of the user e)2.537 F -.15(xe)-.15 G .286
-(cuting the shell is substituted instead.).15 F(Other)5.286 E(-)-.2 E(w\
+-3.023 F .522(alue of the shell parameter)-.25 F F3(HOME)108 372 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(w\
 ise, the tilde-pre\214x is replaced with the home directory associated \
-with the speci\214ed login name.)108 384 Q .092
+with the speci\214ed login name.)108 384 Q .093
 (If the tilde-pre\214x is a `~+', the v)108 400.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 .093(If the tilde-pre\214x is)
-5.093 F 3.404(a`)108 412.8 S .904(~\255', the v)-3.404 F .904
+(replaces the tilde-pre\214x.)2.342 F .092(If the tilde-pre\214x is)
+5.092 F 3.403(a`)108 412.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 .903(If the characters follo)
-5.903 F .903(wing the)-.25 F 1.641
-(tilde in the tilde-pre\214x consist of a number)108 424.8 R F2(N)4.141
-E F0 4.142(,o)C 1.642(ptionally pre\214x)-4.142 F 1.642
-(ed by a `+' or a `\255', the tilde-pre\214x is)-.15 F 1.438(replaced w\
+.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 424.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
-436.8 R 1.437(ould be displayed by the)-.1 F F1(dirs)3.937 E F0 -.2(bu)
-108 448.8 S .454(iltin in).2 F -.2(vo)-.4 G -.1(ke).2 G 2.954(dw).1 G
-.454(ith the tilde-pre\214x as an ar)-2.954 F 2.954(gument. If)-.18 F
-.454(the characters follo)2.954 F .455
+436.8 R 1.438(ould be displayed by the)-.1 F F1(dirs)3.938 E F0 -.2(bu)
+108 448.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
 (consist of a number without a leading `+' or `\255', `+' is assumed.)
 108 460.8 Q(If the login name is in)108 477.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 .167(Each v)108 494.4 R .167
+(ord is unchanged.)-.1 E .166(Each v)108 494.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(:)2.667 E
-F0 .167(or the \214rst)2.667 F F1(=)2.666 E F0 5.166(.I)C(n)-5.166 E
-.281(these cases, tilde e)108 506.4 R .282(xpansion is also performed.)
+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 506.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
 518.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 535.2 S(rameter Expansion).1 E F0 1.606
-(The `)108 547.2 R F1($)A F0 4.106('c)C 1.606
-(haracter introduces parameter e)-4.106 F 1.605
-(xpansion, command substitution, or arithmetic e)-.15 F 4.105
-(xpansion. The)-.15 F .406(parameter name or symbol to be e)108 559.2 R
-.407(xpanded may be enclosed in braces, which are optional b)-.15 F .407
-(ut serv)-.2 F 2.907(et)-.15 G 2.907(op)-2.907 G(ro-)-2.907 E .033
-(tect the v)108 571.2 R .033(ariable to be e)-.25 F .033
-(xpanded from characters immediately follo)-.15 F .032
+(alue.)-.25 E F1 -.1(Pa)87 535.2 S(rameter Expansion).1 E F0 1.605
+(The `)108 547.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 559.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 571.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
-583.2 Q 1.189
+583.2 Q 1.19
 (When braces are used, the matching ending brace is the \214rst `)108
-600 R F1(})A F0 3.69('n)C 1.19(ot escaped by a backslash or within a)
--3.69 F 2.15(quoted string, and not within an embedded arithmetic e)108
+600 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
 612 R 2.15(xpansion, command substitution, or parameter)-.15 F -.15(ex)
 108 624 S(pansion.).15 E(${)108 640.8 Q F2(par)A(ameter)-.15 E F0(})A
-1.204(The v)144 652.8 R 1.204(alue of)-.25 F F2(par)3.704 E(ameter)-.15
-E F0 1.204(is substituted.)3.704 F 1.204(The braces are required when)
-6.204 F F2(par)4.955 E(ameter)-.15 E F0 1.205(is a positional)4.435 F
+1.205(The v)144 652.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 664.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 676.8 Q 1.508
+(be interpreted as part of its name.)144 676.8 Q 1.509
 (If the \214rst character of)108 693.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.009(fv)-4.009 G 1.509
-(ariable indirection is introduced.)-4.259 F F1(Bash)108 705.6 Q F0 .106
+4.009(lo).15 G 4.008(fv)-4.009 G 1.508
+(ariable indirection is introduced.)-4.258 F F1(Bash)108 705.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 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 .351(able is then e)108 717.6 R .351(xpanded and that v)-.15 F .352
+E .352(able is then e)108 717.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
-.352(alue of)-.25 F F2(par)2.852 E(ame-)-.15 E(ter)108 729.6 Q F0 2.52
-(itself. This)2.52 F .02(is kno)2.52 F .02(wn as)-.25 F F2(indir)2.52 E
-.02(ect e)-.37 F(xpansion)-.2 E F0 5.019(.T)C .019(he e)-5.019 F .019
-(xceptions to this are the e)-.15 F .019(xpansions of ${!)-.15 F F2(pr)A
-(e\214x)-.37 E F0 .019(*} and)B(GNU Bash-3.2)72 768 Q(2008 February 22)
-138.46 E(17)188.45 E 0 Cg EP
+.351(alue of)-.25 F F2(par)2.851 E(ame-)-.15 E(ter)108 729.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 F2
+(pr)A(e\214x)-.37 E F0 .02(*} and)B(GNU Bash-3.2)72 768 Q(2008 April 5)
+148.455 E(17)198.445 E 0 Cg EP
 %%Page: 18 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(${)108 84 Q/F1 10/Times-Bold@0 SF(!)A/F2 10/Times-Italic@0 SF
-(name)A F0([)A F2(@)A F0 .762(]} described belo)B 4.563 -.65(w. T)-.25 H
+(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 96 Q .334(In each of the cases belo)108
 112.8 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.417(and arithmetic e)108 124.8
+(xpansion, command substitution,)-.15 F 1.418(and arithmetic e)108 124.8
 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 136.8 Q(${)
 108 153.6 Q F2(par)A(ameter)-.15 E F1<3aad>A F2(wor)A(d)-.37 E F0(})A F1
-.723(Use Default V)144 165.6 R(alues)-.92 E F0 5.723(.I)C(f)-5.723 E F2
-(par)4.473 E(ameter)-.15 E F0 .723(is unset or null, the e)3.953 F .722
-(xpansion of)-.15 F F2(wor)3.562 E(d)-.37 E F0 .722(is substituted.)
-3.992 F(Other)5.722 E(-)-.2 E(wise, the v)144 177.6 Q(alue of)-.25 E F2
+.722(Use Default V)144 165.6 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 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 177.6 Q(alue of)-.25 E F2
 (par)3.75 E(ameter)-.15 E F0(is substituted.)3.23 E(${)108 189.6 Q F2
-(par)A(ameter)-.15 E F1(:=)A F2(wor)A(d)-.37 E F0(})A F1 2.004
-(Assign Default V)144 201.6 R(alues)-.92 E F0 7.004(.I)C(f)-7.004 E F2
-(par)5.754 E(ameter)-.15 E F0 2.005(is unset or null, the e)5.234 F
-2.005(xpansion of)-.15 F F2(wor)4.845 E(d)-.37 E F0 2.005
-(is assigned to)5.275 F F2(par)144 213.6 Q(ameter)-.15 E F0 5.279(.T).73
-G .279(he v)-5.279 F .279(alue of)-.25 F F2(par)4.029 E(ameter)-.15 E F0
-.278(is then substituted.)3.508 F .278
+(par)A(ameter)-.15 E F1(:=)A F2(wor)A(d)-.37 E F0(})A F1 2.005
+(Assign Default V)144 201.6 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 F2(wor)4.844 E(d)-.37 E F0 2.004
+(is assigned to)5.274 F F2(par)144 213.6 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 225.6 Q(ay)-.1 E(.)-.65 E
 (${)108 237.6 Q F2(par)A(ameter)-.15 E F1(:?)A F2(wor)A(d)-.37 E F0(})A
 F1 .535(Display Err)144 249.6 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 .662(sage to that ef)144 261.6 R
-.662(fect if)-.25 F F2(wor)3.502 E(d)-.37 E F0 .661(is not present\) is\
- written to the standard error and the shell, if it is not)3.932 F
+(d)-.37 E F0 .535(\(or a mes-)3.035 F .661(sage to that ef)144 261.6 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 273.6 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(${)108 285.6 Q F2(par)A(ameter)-.15 E F1(:+)A F2
@@ -2302,340 +2301,341 @@ F1 .535(Display Err)144 249.6 R .535(or if Null or Unset)-.18 F F0 5.535
 (xpan-)-.15 E(sion of)144 309.6 Q F2(wor)2.84 E(d)-.37 E F0
 (is substituted.)3.27 E(${)108 321.6 Q F2(par)A(ameter)-.15 E F1(:)A F2
 (of)A(fset)-.18 E F0(})A(${)108 333.6 Q F2(par)A(ameter)-.15 E F1(:)A F2
-(of)A(fset)-.18 E F1(:)A F2(length)A F0(})A F1 .797
-(Substring Expansion.)144 345.6 R F0 .796(Expands to up to)5.797 F F2
+(of)A(fset)-.18 E F1(:)A F2(length)A F0(})A F1 .796
+(Substring Expansion.)144 345.6 R F0 .796(Expands to up to)5.796 F F2
 (length)3.296 E F0 .796(characters of)3.296 F F2(par)3.296 E(ameter)-.15
-E F0 .796(starting at the character)3.296 F .228(speci\214ed by)144
-357.6 R F2(of)2.728 E(fset)-.18 E F0 5.228(.I)C(f)-5.228 E F2(length)
-2.728 E F0 .229(is omitted, e)2.729 F .229(xpands to the substring of)
--.15 F F2(par)2.729 E(ameter)-.15 E F0 .229(starting at the char)2.729 F
-(-)-.2 E .433(acter speci\214ed by)144 369.6 R F2(of)2.933 E(fset)-.18 E
+E F0 .797(starting at the character)3.296 F .229(speci\214ed by)144
+357.6 R F2(of)2.729 E(fset)-.18 E F0 5.229(.I)C(f)-5.229 E F2(length)
+2.729 E F0 .229(is omitted, e)2.729 F .229(xpands to the substring of)
+-.15 F F2(par)2.729 E(ameter)-.15 E F0 .228(starting at the char)2.728 F
+(-)-.2 E .432(acter speci\214ed by)144 369.6 R F2(of)2.933 E(fset)-.18 E
 F0(.)A F2(length)5.433 E F0(and)2.933 E F2(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 .432(ARITHMETIC EV)2.933 F(ALU-)-1.215 E -.855(AT)144
-381.6 S(ION).855 E F0(belo)2.576 E(w\).)-.25 E F2(length)5.326 E F0 .326
-(must e)2.826 F -.25(va)-.25 G .326
-(luate to a number greater than or equal to zero.).25 F(If)5.327 E F2
-(of)2.827 E(fset)-.18 E F0 -.25(eva)2.827 G(luates).25 E .016
+/Times-Bold@0 SF .433(ARITHMETIC EV)2.933 F(ALU-)-1.215 E -.855(AT)144
+381.6 S(ION).855 E F0(belo)2.577 E(w\).)-.25 E F2(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 F2
+(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 393.6 R .015
 (alue is used as an of)-.25 F .015(fset from the end of the v)-.25 F
-.015(alue of)-.25 F F2(par)2.515 E(ameter)-.15 E F0 5.015(.I)C(f)-5.015
+.016(alue of)-.25 F F2(par)2.516 E(ameter)-.15 E F0 5.016(.I)C(f)-5.016
 E F2(par)144 405.6 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 F2(length)3.25 E F0 .75
 (positional parameters be)3.25 F .75(ginning at)-.15 F F2(of)3.25 E
 (fset)-.18 E F0 5.75(.I)C(f)-5.75 E F2(par)3.25 E(ameter)-.15 E F0 .75
-(is an)3.25 F 1.835(array name inde)144 417.6 R -.15(xe)-.15 G 4.335(db)
-.15 G 4.335(y@o)-4.335 G 4.335(r*)-4.335 G 4.335(,t)-4.335 G 1.835
-(he result is the)-4.335 F F2(length)4.335 E F0 1.834
-(members of the array be)4.335 F 1.834(ginning with)-.15 F(${)144 429.6
-Q F2(par)A(ameter)-.15 E F0([)A F2(of)A(fset)-.18 E F0 2.61(]}. A)B(ne)
-2.61 E -.05(ga)-.15 G(ti).05 E -.15(ve)-.25 G F2(of)2.76 E(fset)-.18 E
-F0 .111(is tak)2.61 F .111(en relati)-.1 F .411 -.15(ve t)-.25 H 2.611
-(oo).15 G .111(ne greater than the maximum inde)-2.611 F 2.611(xo)-.15 G
-(f)-2.611 E .92(the speci\214ed array)144 441.6 R 5.92(.N)-.65 G .92
+(is an)3.25 F 1.834(array name inde)144 417.6 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 F2(length)4.335 E F0 1.835
+(members of the array be)4.335 F 1.835(ginning with)-.15 F(${)144 429.6
+Q F2(par)A(ameter)-.15 E F0([)A F2(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 F2(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 441.6 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 .64(space to a)144 453.6 R -.2(vo)-.2 G .641
+.25 F .641(space to a)144 453.6 R -.2(vo)-.2 G .641
 (id being confused with the :- e).2 F 3.141(xpansion. Substring)-.15 F
-(inde)3.141 E .641(xing is zero-based unless the)-.15 F .299
+(inde)3.141 E .64(xing is zero-based unless the)-.15 F .299
 (positional parameters are used, in which case the inde)144 465.6 R .299
 (xing starts at 1 by def)-.15 F 2.799(ault. If)-.1 F F2(of)2.799 E(fset)
--.18 E F0 .298(is 0, and)2.799 F(the positional parameters are used,)144
+-.18 E F0 .299(is 0, and)2.799 F(the positional parameters are used,)144
 477.6 Q F1($0)2.5 E F0(is pre\214x)2.5 E(ed to the list.)-.15 E(${)108
 494.4 Q F1(!)A F2(pr)A(e\214x)-.37 E F1(*)A F0(})A(${)108 506.4 Q F1(!)A
 F2(pr)A(e\214x)-.37 E F1(@)A F0(})A .42(Expands to the names of v)144
 518.4 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 .099(of the)144 530.4 R F3(IFS)2.599 E F0 .099(special v)2.349 F
-2.599(ariable. When)-.25 F F2(@)2.599 E F0 .098(is used and the e)2.599
-F .098(xpansion appears within double quotes, each)-.15 F -.25(va)144
+-2.92 F .098(of the)144 530.4 R F3(IFS)2.598 E F0 .098(special v)2.348 F
+2.598(ariable. When)-.25 F F2(@)2.598 E F0 .099(is used and the e)2.598
+F .099(xpansion appears within double quotes, each)-.15 F -.25(va)144
 542.4 S(riable name e).25 E(xpands to a separate w)-.15 E(ord.)-.1 E(${)
 108 559.2 Q F1(!)A F2(name)A F0([)A F2(@)A F0(]})A(${)108 571.2 Q F1(!)A
-F2(name)A F0([)A F2(*)A F0(]})A(If)144 583.2 Q F2(name)2.921 E F0 .421
-(is an array v)2.921 F .421(ariable, e)-.25 F .421
+F2(name)A F0([)A F2(*)A F0(]})A(If)144 583.2 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.422(.I)C(f)-5.422 E F2(name)
-2.922 E F0 .238(is not an array)144 595.2 R 2.738(,e)-.65 G .238
-(xpands to 0 if)-2.888 F F2(name)2.738 E F0 .237
-(is set and null otherwise.)2.738 F(When)5.237 E F2(@)2.737 E F0 .237
-(is used and the e)2.737 F(xpansion)-.15 E
+(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 595.2 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
+(is used and the e)2.738 F(xpansion)-.15 E
 (appears within double quotes, each k)144 607.2 Q .3 -.15(ey ex)-.1 H
 (pands to a separate w).15 E(ord.)-.1 E(${)108 624 Q F1(#)A F2(par)A
-(ameter)-.15 E F0(})A 1.391(The length in characters of the v)144 636 R
+(ameter)-.15 E F0(})A 1.392(The length in characters of the v)144 636 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.892 E F0(or)3.892 E F1(@)3.892 E F0 3.892(,t)C(he)-3.892
-E -.25(va)144 648 S 1.749
+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 648 S 1.748
 (lue substituted is the number of positional parameters.).25 F(If)6.749
-E F2(par)5.498 E(ameter)-.15 E F0 1.748(is an array name sub-)4.978 F
+E F2(par)5.499 E(ameter)-.15 E F0 1.749(is an array name sub-)4.979 F
 (scripted by)144 660 Q F1(*)2.5 E F0(or)2.5 E F1(@)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 676.8 Q F2(par)A(ameter)-.15 E F1(#)A F2(wor)A(d)
 -.37 E F0(})A(${)108 688.8 Q F2(par)A(ameter)-.15 E F1(##)A F2(wor)A(d)
--.37 E F0(})A(The)144 700.8 Q F2(wor)3.33 E(d)-.37 E F0 .49(is e)3.76 F
-.491(xpanded to produce a pattern just as in pathname e)-.15 F 2.991
-(xpansion. If)-.15 F .491(the pattern matches)2.991 F .412(the be)144
-712.8 R .412(ginning of the v)-.15 F .411(alue of)-.25 F F2(par)2.911 E
+-.37 E F0(})A(The)144 700.8 Q F2(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
+712.8 R .411(ginning of the v)-.15 F .411(alue of)-.25 F F2(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 .411(xpanded v)-.15 F .411(alue of)-.25 F
+.411(xpansion is the e)-.15 F .412(xpanded v)-.15 F .412(alue of)-.25 F
 F2(par)145.25 724.8 Q(ameter)-.15 E F0 .607
-(with the shortest matching pattern \(the `)3.837 F(`)-.74 E F1(#)A F0
+(with the shortest matching pattern \(the `)3.838 F(`)-.74 E F1(#)A F0
 2.087 -.74('' c)D .607(ase\) or the longest matching pattern \(the).74 F
-(GNU Bash-3.2)72 768 Q(2008 February 22)138.46 E(18)188.45 E 0 Cg EP
+(GNU Bash-3.2)72 768 Q(2008 April 5)148.455 E(18)198.445 E 0 Cg EP
 %%Page: 19 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 -.74(``)144 84 S/F1 10/Times-Bold@0 SF(##).74 E F0 1.654 -.74
-('' c)D .174(ase\) deleted.).74 F(If)5.174 E/F2 10/Times-Italic@0 SF
-(par)3.924 E(ameter)-.15 E F0(is)3.404 E F1(@)2.674 E F0(or)2.674 E F1
-(*)2.674 E F0 2.674(,t)C .173(he pattern remo)-2.674 F -.25(va)-.15 G
-2.673(lo).25 G .173(peration is applied to each posi-)-2.673 F .654
+-.35 E -.74(``)144 84 S/F1 10/Times-Bold@0 SF(##).74 E F0 1.653 -.74
+('' c)D .173(ase\) deleted.).74 F(If)5.173 E/F2 10/Times-Italic@0 SF
+(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(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 96 R .654
-(xpansion is the resultant list.)-.15 F(If)5.655 E F2(par)4.405 E
-(ameter)-.15 E F0 .655(is an array v)3.885 F(ariable)-.25 E .651
-(subscripted with)144 108 R F1(@)3.151 E F0(or)3.151 E F1(*)3.151 E F0
-3.151(,t)C .651(he pattern remo)-3.151 F -.25(va)-.15 G 3.151(lo).25 G
-.65(peration is applied to each member of the array in)-3.151 F
+(xpansion is the resultant list.)-.15 F(If)5.654 E F2(par)4.404 E
+(ameter)-.15 E F0 .654(is an array v)3.884 F(ariable)-.25 E .65
+(subscripted with)144 108 R F1(@)3.15 E F0(or)3.15 E F1(*)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 120 Q(xpansion is the resultant list.)-.15 E(${)108
 136.8 Q F2(par)A(ameter)-.15 E F1(%)A F2(wor)A(d)-.37 E F0(})A(${)108
 148.8 Q F2(par)A(ameter)-.15 E F1(%%)A F2(wor)A(d)-.37 E F0(})A(The)144
-160.8 Q F2(wor)2.618 E(d)-.37 E F0 .118(is e)2.618 F .119
+160.8 Q F2(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 .119(the pattern matches a)2.619 F 2.402
-(trailing portion of the e)144 172.8 R 2.402(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.401
-(hen the result of the e)-4.901 F 2.401(xpansion is the)-.15 F -.15(ex)
-144 184.8 S 1.152(panded v).15 F 1.152(alue of)-.25 F F2(par)4.902 E
+(xpansion. If)-.15 F .118(the pattern matches a)2.619 F 2.401
+(trailing portion of the e)144 172.8 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
+(hen the result of the e)-4.901 F 2.402(xpansion is the)-.15 F -.15(ex)
+144 184.8 S 1.153(panded v).15 F 1.153(alue of)-.25 F F2(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.153(ase\) or the longest).74 F
+F(`)-.74 E F1(%)A F0 2.632 -.74('' c)D 1.152(ase\) or the longest).74 F
 .79(matching pattern \(the `)144 196.8 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
 (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 208.8 R 1.758(xpansion is the resultant list.)-.15 F(If)6.759 E F2
-(par)145.25 220.8 Q(ameter)-.15 E F0 .089(is an array v)3.319 F .089
+144 208.8 R 1.758(xpansion is the resultant list.)-.15 F(If)6.758 E F2
+(par)145.25 220.8 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
-F0 2.589(,t)C .089(he pattern remo)-2.589 F -.25(va)-.15 G 2.588(lo).25
-G .088(peration is applied to)-2.588 F
+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 232.8 Q
 (xpansion is the resultant list.)-.15 E(${)108 249.6 Q F2(par)A(ameter)
 -.15 E F1(/)A F2(pattern)A F1(/)A F2(string)A F0(})A(The)144 261.6 Q F2
 (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 273.6 S 1.452(panded and the longest match of).15 F F2(pattern)3.951
-E F0(ag)3.951 E 1.451(ainst its v)-.05 F 1.451(alue is replaced with)
--.25 F F2(string)3.951 E F0 6.451(.I)C(f)-6.451 E F2(pattern)3.951 E F0
-(be)144 285.6 Q 1.236(gins with)-.15 F F1(/)3.736 E F0 3.737(,a)C 1.237
+144 273.6 S 1.451(panded and the longest match of).15 F F2(pattern)3.951
+E F0(ag)3.951 E 1.451(ainst its v)-.05 F 1.452(alue is replaced with)
+-.25 F F2(string)3.952 E F0 6.452(.I)C(f)-6.452 E F2(pattern)3.952 E F0
+(be)144 285.6 Q 1.237(gins with)-.15 F F1(/)3.737 E F0 3.737(,a)C 1.237
 (ll matches of)-3.737 F F2(pattern)3.737 E F0 1.237(are replaced with)
 3.737 F F2(string)3.737 E F0 6.237(.N)C 1.237
-(ormally only the \214rst match is)-6.237 F 2.58(replaced. If)144 297.6
-R F2(pattern)2.58 E F0(be)2.58 E .08(gins with)-.15 F F1(#)2.58 E F0
-2.58(,i)C 2.58(tm)-2.58 G .079(ust match at the be)-2.58 F .079
-(ginning of the e)-.15 F .079(xpanded v)-.15 F .079(alue of)-.25 F F2
-(par)2.579 E(am-)-.15 E(eter)144 309.6 Q F0 5.761(.I)C(f)-5.761 E F2
-(pattern)3.261 E F0(be)3.261 E .761(gins with)-.15 F F1(%)3.261 E F0
-3.261(,i)C 3.261(tm)-3.261 G .761(ust match at the end of the e)-3.261 F
-.761(xpanded v)-.15 F .761(alue of)-.25 F F2(par)3.262 E(ameter)-.15 E
-F0 5.762(.I)C(f)-5.762 E F2(string)144 321.6 Q F0 1.938
-(is null, matches of)4.438 F F2(pattern)4.438 E F0 1.938
-(are deleted and the)4.438 F F1(/)4.437 E F0(follo)4.437 E(wing)-.25 E
-F2(pattern)4.437 E F0 1.937(may be omitted.)4.437 F(If)6.937 E F2(par)
-145.25 333.6 Q(ameter)-.15 E F0(is)3.328 E F1(@)2.598 E F0(or)2.598 E F1
+(ormally only the \214rst match is)-6.237 F 2.579(replaced. If)144 297.6
+R F2(pattern)2.579 E F0(be)2.579 E .079(gins with)-.15 F F1(#)2.579 E F0
+2.579(,i)C 2.579(tm)-2.579 G .079(ust match at the be)-2.579 F .08
+(ginning of the e)-.15 F .08(xpanded v)-.15 F .08(alue of)-.25 F F2(par)
+2.58 E(am-)-.15 E(eter)144 309.6 Q F0 5.762(.I)C(f)-5.762 E F2(pattern)
+3.262 E F0(be)3.261 E .761(gins with)-.15 F F1(%)3.261 E F0 3.261(,i)C
+3.261(tm)-3.261 G .761(ust match at the end of the e)-3.261 F .761
+(xpanded v)-.15 F .761(alue of)-.25 F F2(par)3.261 E(ameter)-.15 E F0
+5.761(.I)C(f)-5.761 E F2(string)144 321.6 Q F0 1.937
+(is null, matches of)4.437 F F2(pattern)4.437 E F0 1.937
+(are deleted and the)4.437 F F1(/)4.438 E F0(follo)4.438 E(wing)-.25 E
+F2(pattern)4.438 E F0 1.938(may be omitted.)4.438 F(If)6.938 E F2(par)
+145.25 333.6 Q(ameter)-.15 E F0(is)3.329 E F1(@)2.599 E F0(or)2.598 E F1
 (*)2.598 E F0 2.598(,t)C .098(he substitution operation is applied to e\
 ach positional parameter in turn, and)-2.598 F .64(the e)144 345.6 R .64
 (xpansion is the resultant list.)-.15 F(If)5.64 E F2(par)4.39 E(ameter)
 -.15 E F0 .64(is an array v)3.87 F .64(ariable subscripted with)-.25 F
 F1(@)3.14 E F0(or)3.14 E F1(*)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 357.6 R 1.447(xpansion is the)-.15 F(resultant list.)144 369.6
-Q F1(Command Substitution)87 386.4 Q F2 1.698(Command substitution)108
-398.4 R F0(allo)4.198 E 1.697
-(ws the output of a command to replace the command name.)-.25 F 1.697
-(There are tw)6.697 F(o)-.1 E(forms:)108 410.4 Q F1($\()144 432 Q F2
+the e)144 357.6 R 1.446(xpansion is the)-.15 F(resultant list.)144 369.6
+Q F1(Command Substitution)87 386.4 Q F2 1.697(Command substitution)108
+398.4 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 410.4 Q F1($\()144 432 Q F2
 (command)A F1(\))1.666 E F0(or)108 444 Q F1<92>144 456 Q F2(command)A F1
-<92>A(Bash)108 472.8 Q F0 .019(performs the e)2.519 F .019
-(xpansion by e)-.15 F -.15(xe)-.15 G(cuting).15 E F2(command)2.519 E F0
-.02(and replacing the command substitution with the stan-)2.519 F .768
+<92>A(Bash)108 472.8 Q F0 .02(performs the e)2.52 F .02(xpansion by e)
+-.15 F -.15(xe)-.15 G(cuting).15 E F2(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 484.8 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 496.8 Q 3.218
-(ym)-.15 G .718(ay be remo)-3.218 F -.15(ve)-.15 G 3.218(dd).15 G .719
-(uring w)-3.218 F .719(ord splitting.)-.1 F .719
+F .768(wlines are not deleted, b)-.25 F(ut)-.2 E(the)108 496.8 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 .719(can be replaced by the)3.219 F(equi)108 508.8 Q -.25(va)
+(\))A F0 .718(can be replaced by the)3.219 F(equi)108 508.8 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 525.6 R(xcept)-.15
-E .314(when follo)108 537.6 R .314(wed by)-.25 F F1($)2.814 E F0(,)A F1
-<92>2.814 E F0 2.814(,o)C(r)-2.814 E F1(\\)2.814 E F0 5.314(.T)C .315(h\
+E .315(when follo)108 537.6 R .315(wed by)-.25 F F1($)2.815 E F0(,)A F1
+<92>2.815 E F0 2.815(,o)C(r)-2.815 E F1(\\)2.815 E F0 5.315(.T)C .314(h\
 e \214rst backquote not preceded by a backslash terminates the command \
-sub-)-5.314 F 3.887(stitution. When)108 549.6 R 1.387(using the $\()
-3.887 F F2(command).833 E F0 3.887(\)f)1.666 G 1.386
-(orm, all characters between the parentheses mak)-3.887 F 3.886(eu)-.1 G
-3.886(pt)-3.886 G 1.386(he com-)-3.886 F
+sub-)-5.315 F 3.886(stitution. When)108 549.6 R 1.386(using the $\()
+3.886 F F2(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 561.6 Q(.)-.65 E .894
 (Command substitutions may be nested.)108 578.4 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 590.4 Q .422
 (If the substitution appears within double quotes, w)108 607.2 R .422
-(ord splitting and pathname e)-.1 F .422(xpansion are not performed)-.15
-F(on the results.)108 619.2 Q F1(Arithmetic Expansion)87 636 Q F0 1.034
-(Arithmetic e)108 648 R 1.034(xpansion allo)-.15 F 1.034(ws the e)-.25 F
--.25(va)-.25 G 1.034(luation of an arithmetic e).25 F 1.035
+(ord splitting and pathname e)-.1 F .423(xpansion are not performed)-.15
+F(on the results.)108 619.2 Q F1(Arithmetic Expansion)87 636 Q F0 1.035
+(Arithmetic e)108 648 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 660 Q(xpansion is:)-.15 E F1($\(\()144
 676.8 Q F2 -.2(ex)C(pr).2 E(ession)-.37 E F1(\)\))A F0(The)108 693.6 Q
-F2 -.2(ex)2.666 G(pr).2 E(ession)-.37 E F0 .165
-(is treated as if it were within double quotes, b)2.906 F .165
-(ut a double quote inside the parentheses is not)-.2 F 1.074
-(treated specially)108 705.6 R 6.074(.A)-.65 G 1.074(ll tok)-6.074 F
+F2 -.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 705.6 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.075
+(go parameter e)-.18 F 1.074(xpansion, string e)-.15 F 1.074
 (xpansion, command)-.15 F(substitution, and quote remo)108 717.6 Q -.25
 (va)-.15 G 2.5(l. Arithmetic).25 F -.15(ex)2.5 G
-(pansions may be nested.).15 E(GNU Bash-3.2)72 768 Q(2008 February 22)
-138.46 E(19)188.45 E 0 Cg EP
+(pansions may be nested.).15 E(GNU Bash-3.2)72 768 Q(2008 April 5)
+148.455 E(19)198.445 E 0 Cg EP
 %%Page: 20 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 1.379(The e)108 84 R -.25(va)-.25 G 1.378
+-.35 E 1.378(The e)108 84 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/F1 9/Times-Bold@0 SF 1.378(ARITHMETIC EV)3.878 F
 (ALU)-1.215 E -.855(AT)-.54 G(ION).855 E/F2 9/Times-Roman@0 SF(.)A F0
-(If)5.878 E/F3 10/Times-Italic@0 SF -.2(ex)108 96 S(pr).2 E(ession)-.37
+(If)5.879 E/F3 10/Times-Italic@0 SF -.2(ex)108 96 S(pr).2 E(ession)-.37
 E F0(is in)2.74 E -.25(va)-.4 G(lid,).25 E/F4 10/Times-Bold@0 SF(bash)
 2.5 E F0(prints a message indicating f)2.5 E
 (ailure and no substitution occurs.)-.1 E F4(Pr)87 112.8 Q
-(ocess Substitution)-.18 E F3(Pr)108 124.8 Q .97(ocess substitution)-.45
-F F0 .971(is supported on systems that support named pipes \()3.47 F F3
-(FIFOs)A F0 3.471(\)o)C 3.471(rt)-3.471 G(he)-3.471 E F4(/de)3.471 E
-(v/fd)-.15 E F0 .971(method of)3.471 F .022(naming open \214les.)108
-136.8 R .021(It tak)5.022 F .021(es the form of)-.1 F F4(<\()2.521 E F3
-(list)A F4(\)).833 E F0(or)2.521 E F4(>\()2.521 E F3(list)A F4(\)).833 E
-F0 5.021(.T)C .021(he process)-5.021 F F3(list)2.521 E F0 .021
-(is run with its input or output con-)2.521 F .058(nected to a)108 148.8
-R F3(FIFO)2.558 E F0 .058(or some \214le in)2.558 F F4(/de)2.558 E(v/fd)
+(ocess Substitution)-.18 E F3(Pr)108 124.8 Q .971(ocess substitution)
+-.45 F F0 .971(is supported on systems that support named pipes \()3.471
+F F3(FIFOs)A F0 3.47(\)o)C 3.47(rt)-3.47 G(he)-3.47 E F4(/de)3.47 E
+(v/fd)-.15 E F0 .97(method of)3.47 F .021(naming open \214les.)108 136.8
+R .021(It tak)5.021 F .021(es the form of)-.1 F F4(<\()2.521 E F3(list)A
+F4(\)).833 E F0(or)2.521 E F4(>\()2.521 E F3(list)A F4(\)).833 E F0
+5.021(.T)C .021(he process)-5.021 F F3(list)2.521 E F0 .021
+(is run with its input or output con-)2.521 F .059(nected to a)108 148.8
+R F3(FIFO)2.559 E F0 .058(or some \214le in)2.559 F F4(/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 .059(gument to the current com-)-.18 F .131
-(mand as the result of the e)108 160.8 R 2.631(xpansion. If)-.15 F(the)
+-5.058 F .058(gument to the current com-)-.18 F .13
+(mand as the result of the e)108 160.8 R 2.63(xpansion. If)-.15 F(the)
 2.63 E F4(>\()2.63 E F3(list)A F4(\)).833 E F0 .13
-(form is used, writing to the \214le will pro)2.63 F .13(vide input for)
--.15 F F3(list)2.63 E F0(.)A(If the)108 172.8 Q F4(<\()2.5 E F3(list)A
-F4(\)).833 E F0(form is used, the \214le passed as an ar)2.5 E
+(form is used, writing to the \214le will pro)2.63 F .131
+(vide input for)-.15 F F3(list)2.631 E F0(.)A(If the)108 172.8 Q F4(<\()
+2.5 E F3(list)A F4(\)).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 F3(list)2.5 E F0
-(.)A .896(When a)108 189.6 R -.25(va)-.2 G .896(ilable, process substit\
-ution is performed simultaneously with parameter and v).25 F .897
+(.)A .897(When a)108 189.6 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 201.6 Q(xpansion.)-.15 E F4
--.75(Wo)87 218.4 S(rd Splitting).75 E F0 1.143
-(The shell scans the results of parameter e)108 230.4 R 1.142
-(xpansion, command substitution, and arithmetic e)-.15 F 1.142
+-.75(Wo)87 218.4 S(rd Splitting).75 E F0 1.142
+(The shell scans the results of parameter e)108 230.4 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 242.4 Q
 F3(wor)2.5 E 2.5(ds)-.37 G(plitting)-2.5 E F0(.).22 E .063
 (The shell treats each character of)108 259.2 R F1(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 1.789(on these characters.)108 271.2 R(If)6.789 E F1
-(IFS)4.289 E F0 1.788(is unset, or its v)4.039 F 1.788(alue is e)-.25 F
-(xactly)-.15 E F4(<space><tab><newline>)4.288 E F0 4.288(,t)C 1.788
-(he def)-4.288 F 1.788(ault, then)-.1 F .021(sequences of)108 283.2 R F4
-(<space>)2.521 E F0(,)A F4(<tab>)2.521 E F0 2.521(,a)C(nd)-2.521 E F4
+-.15 F(ords)-.1 E 1.788(on these characters.)108 271.2 R(If)6.788 E F1
+(IFS)4.288 E F0 1.788(is unset, or its v)4.038 F 1.789(alue is e)-.25 F
+(xactly)-.15 E F4(<space><tab><newline>)4.289 E F0 4.289(,t)C 1.789
+(he def)-4.289 F 1.789(ault, then)-.1 F .022(sequences of)108 283.2 R F4
+(<space>)2.522 E F0(,)A F4(<tab>)2.522 E F0 2.521(,a)C(nd)-2.521 E F4
 (<newline>)2.521 E F0 .021(at the be)2.521 F .021
-(ginning and end of the results of the pre)-.15 F .022(vious e)-.25 F
-(xpan-)-.15 E .586(sions are ignored, and an)108 295.2 R 3.086(ys)-.15 G
+(ginning and end of the results of the pre)-.15 F .021(vious e)-.25 F
+(xpan-)-.15 E .585(sions are ignored, and an)108 295.2 R 3.086(ys)-.15 G
 .586(equence of)-3.086 F F1(IFS)3.086 E F0 .586
-(characters not at the be)2.836 F .586(ginning or end serv)-.15 F .585
+(characters not at the be)2.836 F .586(ginning or end serv)-.15 F .586
 (es to delimit w)-.15 F(ords.)-.1 E(If)108 307.2 Q F1(IFS)3.617 E F0
 1.117(has a v)3.367 F 1.117(alue other than the def)-.25 F 1.117
 (ault, then sequences of the whitespace characters)-.1 F F4(space)3.617
 E F0(and)3.617 E F4(tab)3.617 E F0(are)3.617 E .315(ignored at the be)
 108 319.2 R .315(ginning and end of the w)-.15 F .315
 (ord, as long as the whitespace character is in the v)-.1 F .315
-(alue of)-.25 F F1(IFS)2.815 E F0(\(an)2.565 E F1(IFS)108 331.2 Q F0
-1.053(whitespace character\).)3.303 F(An)6.053 E 3.553(yc)-.15 G 1.053
-(haracter in)-3.553 F F1(IFS)3.553 E F0 1.053(that is not)3.303 F F1
-(IFS)3.553 E F0 1.054(whitespace, along with an)3.304 F 3.554(ya)-.15 G
-(djacent)-3.554 E F1(IFS)3.554 E F0 .332
-(whitespace characters, delimits a \214eld.)108 343.2 R 2.832(As)5.332 G
-.332(equence of)-2.832 F F1(IFS)2.832 E F0 .331
+(alue of)-.25 F F1(IFS)2.815 E F0(\(an)2.566 E F1(IFS)108 331.2 Q F0
+1.054(whitespace character\).)3.304 F(An)6.054 E 3.554(yc)-.15 G 1.054
+(haracter in)-3.554 F F1(IFS)3.554 E F0 1.053(that is not)3.303 F F1
+(IFS)3.553 E F0 1.053(whitespace, along with an)3.303 F 3.553(ya)-.15 G
+(djacent)-3.553 E F1(IFS)3.553 E F0 .331
+(whitespace characters, delimits a \214eld.)108 343.2 R 2.831(As)5.331 G
+.332(equence of)-2.831 F F1(IFS)2.832 E F0 .332
 (whitespace characters is also treated as a delim-)2.582 F(iter)108
 355.2 Q 5(.I)-.55 G 2.5(ft)-5 G(he v)-2.5 E(alue of)-.25 E F1(IFS)2.5 E
-F0(is null, no w)2.25 E(ord splitting occurs.)-.1 E 1.878
-(Explicit null ar)108 372 R 1.878(guments \()-.18 F F4 .833("").833 G F0
+F0(is null, no w)2.25 E(ord splitting occurs.)-.1 E 1.879
+(Explicit null ar)108 372 R 1.879(guments \()-.18 F F4 .833("").833 G F0
 (or)3.545 E F4 .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 384 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
+-4.378 F 1.878(Unquoted implicit null ar)6.878 F 1.878
+(guments, resulting from the)-.18 F -.15(ex)108 384 S .176
+(pansion of parameters that ha).15 F .476 -.15(ve n)-.2 H 2.676(ov).15 G
+.176(alues, are remo)-2.926 F -.15(ve)-.15 G 2.676(d. If).15 F 2.677(ap)
+2.677 G .177(arameter with no v)-2.677 F .177(alue is e)-.25 F .177
 (xpanded within)-.15 F(double quotes, a null ar)108 396 Q
 (gument results and is retained.)-.18 E(Note that if no e)108 412.8 Q
 (xpansion occurs, no splitting is performed.)-.15 E F4 -.1(Pa)87 429.6 S
-(thname Expansion).1 E F0 .37(After w)108 441.6 R .37
-(ord splitting, unless the)-.1 F F4<ad66>2.87 E F0 .37
-(option has been set,)2.87 F F4(bash)2.87 E F0 .371(scans each w)2.871 F
-.371(ord for the characters)-.1 F F4(*)2.871 E F0(,)A F4(?)2.871 E F0
-2.871(,a)C(nd)-2.871 E F4([)2.871 E F0(.)A .678
+(thname Expansion).1 E F0 .371(After w)108 441.6 R .371
+(ord splitting, unless the)-.1 F F4<ad66>2.871 E F0 .371
+(option has been set,)2.871 F F4(bash)2.871 E F0 .37(scans each w)2.87 F
+.37(ord for the characters)-.1 F F4(*)2.87 E F0(,)A F4(?)2.87 E F0 2.87
+(,a)C(nd)-2.87 E F4([)2.87 E F0(.)A .677
 (If one of these characters appears, then the w)108 453.6 R .677
 (ord is re)-.1 F -.05(ga)-.15 G .677(rded as a).05 F F3(pattern)3.177 E
-F0 3.177(,a).24 G .677(nd replaced with an alphabeti-)-3.177 F 1.456
+F0 3.177(,a).24 G .678(nd replaced with an alphabeti-)-3.177 F 1.457
 (cally sorted list of \214le names matching the pattern.)108 465.6 R
-1.457(If no matching \214le names are found, and the shell)6.457 F
+1.456(If no matching \214le names are found, and the shell)6.457 F
 (option)108 477.6 Q F4(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 F4(nullglob)
-3.265 E F0 .765(option is set, and no matches are)3.265 F .305
-(found, the w)108 489.6 R .305(ord is remo)-.1 F -.15(ve)-.15 G 2.805
+3.265 E F0 .765(option is set, and no matches are)3.265 F .306
+(found, the w)108 489.6 R .306(ord is remo)-.1 F -.15(ve)-.15 G 2.806
 (d. If).15 F(the)2.805 E F4(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 501.6 R -.15(xe)-.15 G
+.928(is printed and the command is not e)108 501.6 R -.15(xe)-.15 G
 3.428(cuted. If).15 F .928(the shell option)3.428 F F4(nocaseglob)3.428
-E F0 .928(is enabled, the match is per)3.428 F(-)-.2 E .032
-(formed without re)108 513.6 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 525.6 R F4 -.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 537.6 R F4(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 549.6 S(plicitly).15 E 6.166
-(.I)-.65 G 3.666(no)-6.166 G 1.166(ther cases, the)-3.666 F F4 -.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 F4(shopt)3.665 E F0(belo)3.665 E(w)-.25
-E(under)108 561.6 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 F4
-(nocaseglob)2.978 E F0(,)A F4(nullglob)2.978 E F0(,)A F4(failglob)2.978
-E F0 2.978(,a)C(nd)-2.978 E F4(dotglob)2.978 E F0(shell options.)108
-573.6 Q(The)108 590.4 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
+E F0 .929(is enabled, the match is per)3.429 F(-)-.2 E .033
+(formed without re)108 513.6 R -.05(ga)-.15 G .033
+(rd to the case of alphabetic characters.).05 F .032
+(When a pattern is used for pathname e)5.032 F(xpansion,)-.15 E .104
+(the character)108 525.6 R F4 -.63(``)2.604 G -.55(.').63 G(')-.08 E F0
+.104(at the start of a name or immediately follo)5.104 F .105
+(wing a slash must be matched e)-.25 F(xplicitly)-.15 E 2.605(,u)-.65 G
+(nless)-2.605 E .888(the shell option)108 537.6 R F4(dotglob)3.388 E F0
+.888(is set.)3.388 F .887
+(When matching a pathname, the slash character must al)5.888 F -.1(wa)
+-.1 G .887(ys be matched).1 F -.15(ex)108 549.6 S(plicitly).15 E 6.165
+(.I)-.65 G 3.665(no)-6.165 G 1.165(ther cases, the)-3.665 F F4 -.63(``)
+3.665 G -.55(.').63 G(')-.08 E F0 1.166
+(character is not treated specially)6.165 F 6.166(.S)-.65 G 1.166
+(ee the description of)-6.166 F F4(shopt)3.666 E F0(belo)3.666 E(w)-.25
+E(under)108 561.6 Q F1 .478(SHELL B)2.978 F(UIL)-.09 E .478
+(TIN COMMANDS)-.828 F F0 .477(for a description of the)2.728 F F4
+(nocaseglob)2.977 E F0(,)A F4(nullglob)2.977 E F0(,)A F4(failglob)2.977
+E F0 2.977(,a)C(nd)-2.977 E F4(dotglob)2.977 E F0(shell options.)108
+573.6 Q(The)108 590.4 Q F1(GLOBIGNORE)2.63 E F0 .13(shell v)2.38 F .131
+(ariable may be used to restrict the set of \214le names matching a)-.25
+F F3(pattern)2.631 E F0 5.131(.I).24 G(f)-5.131 E F1(GLO-)2.631 E
 (BIGNORE)108 602.4 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 614.4 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 F4 -.63
+so matches one of the patterns in)4.265 F F1(GLOBIGNORE)4.515 E F0(is)
+4.264 E(remo)108 614.4 Q -.15(ve)-.15 G 2.503(df).15 G .003
+(rom the list of matches.)-2.503 F .003(The \214le names)5.003 F F4 -.63
 (``)2.503 G -.55(.').63 G(')-.08 E F0(and)5.003 E F4 -.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 626.4 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 F4(dotglob)2.546 E F0 .614
+.63 E -.63('')-.55 G F0 .004(are al)5.633 F -.1(wa)-.1 G .004
+(ys ignored when).1 F F1(GLOBIGNORE)2.504 E F0(is)2.254 E .046
+(set and not null.)108 626.4 R(Ho)5.046 E(we)-.25 E -.15(ve)-.25 G .846
+-.4(r, s).15 H(etting).4 E F1(GLOBIGNORE)2.546 E F0 .046
+(to a non-null v)2.296 F .045(alue has the ef)-.25 F .045
+(fect of enabling the)-.25 F F4(dotglob)2.545 E F0 .613
 (shell option, so all other \214le names be)108 638.4 R .614
 (ginning with a)-.15 F F4 -.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 650.4 R .456
+(will match.)5.614 F 2.214 -.8(To g)5.614 H .614(et the old beha).8 F
+.614(vior of ignoring)-.2 F .457(\214le names be)108 650.4 R .457
 (ginning with a)-.15 F F4 -.63(``)2.957 G -.55(.').63 G(')-.08 E F0
 2.957(,m)C(ak)-2.957 E(e)-.1 E F4 -.63(``)2.957 G(.*').63 E(')-.63 E F0
 .457(one of the patterns in)5.457 F F1(GLOBIGNORE)2.957 E F2(.)A F0(The)
-4.957 E F4(dotglob)2.957 E F0 .457(option is)2.957 F(disabled when)108
+4.957 E F4(dotglob)2.956 E F0 .456(option is)2.956 F(disabled when)108
 662.4 Q F1(GLOBIGNORE)2.5 E F0(is unset.)2.25 E F4 -.1(Pa)108 679.2 S
 (tter).1 E 2.5(nM)-.15 G(atching)-2.5 E F0(An)108 696 Q 3.138(yc)-.15 G
 .638(haracter that appears in a pattern, other than the special pattern\
@@ -2645,8 +2645,8 @@ so matches one of the patterns in)4.264 F F1(GLOBIGNORE)4.515 E F0(is)
 (ackslash escapes the follo)-3.62 F 1.12(wing character; the)-.25 F .576
 (escaping backslash is discarded when matching.)108 720 R .576
 (The special pattern characters must be quoted if the)5.576 F 3.076(ya)
--.15 G(re)-3.076 E(GNU Bash-3.2)72 768 Q(2008 February 22)138.46 E(20)
-188.45 E 0 Cg EP
+-.15 G(re)-3.076 E(GNU Bash-3.2)72 768 Q(2008 April 5)148.455 E(20)
+198.445 E 0 Cg EP
 %%Page: 21 21
 %%BeginPageSetup
 BP
@@ -2657,53 +2657,53 @@ BP
 (he follo).15 E(wing meanings:)-.25 E/F1 10/Times-Bold@0 SF(*)108 117.6
 Q F0(Matches an)31 E 2.5(ys)-.15 G(tring, including the null string.)
 -2.5 E F1(?)108 129.6 Q F0(Matches an)31 E 2.5(ys)-.15 G
-(ingle character)-2.5 E(.)-.55 E F1([...])108 141.6 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/F2 10/Times-Italic@0 SF -.15(ra)144 153.6
-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 165.6 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 177.6 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
-(haracter not enclosed is matched.)-3.064 F .563
+(ingle character)-2.5 E(.)-.55 E F1([...])108 141.6 Q F0 .257
+(Matches an)21.84 F 2.757(yo)-.15 G .257(ne of the enclosed characters.)
+-2.757 F 2.757(Ap)5.257 G .257(air of characters separated by a h)-2.757
+F .256(yphen denotes a)-.05 F/F2 10/Times-Italic@0 SF -.15(ra)144 153.6
+S(ng).15 E 3.289(ee)-.1 G(xpr)-3.489 E(ession)-.37 E F0 3.289(;a)C 1.089
+-.15(ny c)-3.289 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.29(,u).15 G
+.79(sing the cur)-3.29 F(-)-.2 E .35(rent locale')144 165.6 R 2.85(sc)
+-.55 G .35(ollating sequence and character set, is matched.)-2.85 F .349
+(If the \214rst character follo)5.349 F .349(wing the)-.25 F F1([)2.849
+E F0 .563(is a)144 177.6 R F1(!)3.063 E F0 .563(or a)5.563 F F1(^)3.063
+E F0 .564(then an)3.063 F 3.064(yc)-.15 G .564
+(haracter not enclosed is matched.)-3.064 F .564
 (The sorting order of characters in range)5.564 F -.15(ex)144 189.6 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 201.6 R(A)5.089 E F1<ad>2.589
+1.102(alue of the)-.25 F F1(LC_COLLA)3.602 E(TE)-.95 E F0 1.102(shell v)
+3.602 F(ari-)-.25 E .088(able, if set.)144 201.6 R(A)5.088 E F1<ad>2.588
 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 F1(])2.588 E F0 .088(may be)2.588 F
+er in the set.)2.588 F(A)5.089 E F1(])2.589 E F0 .089(may be)2.589 F
 (matched by including it as the \214rst character in the set.)144 213.6
-Q -.4(Wi)144 231.6 S(thin).4 E F1([)2.914 E F0(and)2.914 E F1(])2.914 E
-F0(,)A F2 -.15(ch)2.914 G(ar).15 E .414(acter classes)-.15 F F0 .415
+Q -.4(Wi)144 231.6 S(thin).4 E F1([)2.915 E F0(and)2.915 E F1(])2.915 E
+F0(,)A F2 -.15(ch)2.915 G(ar).15 E .415(acter classes)-.15 F F0 .415
 (can be speci\214ed using the syntax)2.915 F F1([:)2.915 E F2(class)A F1
-(:])A F0 2.915(,w)C(here)-2.915 E F2(class)2.915 E F0 .415(is one of)
-2.915 F(the follo)144 243.6 Q
+(:])A F0 2.914(,w)C(here)-2.914 E F2(class)2.914 E F0 .414(is one of)
+2.914 F(the follo)144 243.6 Q
 (wing classes de\214ned in the POSIX standard:)-.25 E F1 5.421
 (alnum alpha ascii blank cntrl digit graph lo)144 255.6 R 5.421
 (wer print punct space upper w)-.1 F(ord)-.1 E(xdigit)144 267.6 Q F0
-2.518(Ac)144 279.6 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
+2.519(Ac)144 279.6 S .019(haracter class matches an)-2.519 F 2.519(yc)
+-.15 G .019(haracter belonging to that class.)-2.519 F(The)5.018 E F1
+-.1(wo)2.518 G(rd).1 E F0 .018(character class matches)2.518 F
 (letters, digits, and the character _.)144 291.6 Q -.4(Wi)144 309.6 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 F2 1.046(equivalence class)3.546 F F0 1.046
-(can be speci\214ed using the syntax)3.546 F F1([=)3.546 E F2(c)A F1(=])
-A F0 3.546(,w)C 1.046(hich matches all)-3.546 F(characters with the sam\
+(thin).4 E F1([)3.546 E F0(and)3.546 E F1(])3.546 E F0 3.546(,a)C(n)
+-3.546 E F2 1.046(equivalence class)3.546 F F0 1.046
+(can be speci\214ed using the syntax)3.546 F F1([=)3.547 E F2(c)A F1(=])
+A F0 3.547(,w)C 1.047(hich matches all)-3.547 F(characters with the sam\
 e collation weight \(as de\214ned by the current locale\) as the charac\
 ter)144 321.6 Q F2(c)2.5 E F0(.)A -.4(Wi)144 339.6 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 F2
 (symbol)A F1(.])A F0(matches the collating symbol)2.5 E F2(symbol)2.5 E
-F0(.)A .704(If the)108 356.4 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
-368.4 R .256(In the follo)5.256 F .256(wing description, a)-.25 F F2
+F0(.)A .705(If the)108 356.4 R F1(extglob)3.205 E F0 .705
+(shell option is enabled using the)3.205 F F1(shopt)3.205 E F0 -.2(bu)
+3.205 G .704(iltin, se).2 F -.15(ve)-.25 G .704(ral e).15 F .704
+(xtended pattern matching operators)-.15 F .255(are recognized.)108
+368.4 R .255(In the follo)5.255 F .255(wing description, a)-.25 F F2
 (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
+(is a list of one or more patterns separated by a)2.755 F F1(|)2.756 E
 F0(.)A(Composite patterns may be formed using one or more of the follo)
 108 380.4 Q(wing sub-patterns:)-.25 E F1(?\()144 404.4 Q F2
 (pattern-list).833 E F1(\)).833 E F0
@@ -2718,43 +2718,43 @@ F0(.)A(Composite patterns may be formed using one or more of the follo)
 .15 G(atterns)-2.5 E F1(!\()144 500.4 Q F2(pattern-list).833 E F1(\))
 .833 E F0(Matches an)180 512.4 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 529.2
-Q -.1(va)-.1 G(l).1 E F0 1.112(After the preceding e)108 541.2 R 1.112
+Q -.1(va)-.1 G(l).1 E F0 1.113(After the preceding e)108 541.2 R 1.113
 (xpansions, all unquoted occurrences of the characters)-.15 F F1(\\)
-3.613 E F0(,)A F1<08>3.613 E F0 3.613(,a)C(nd)-3.613 E F1(")4.446 E F0
-1.113(that did not result)4.446 F(from one of the abo)108 553.2 Q .3
+3.613 E F0(,)A F1<08>3.612 E F0 3.612(,a)C(nd)-3.612 E F1(")4.445 E F0
+1.112(that did not result)4.445 F(from one of the abo)108 553.2 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 570 Q F0 .545
 (Before a command is e)108 582 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
+(ected)-.37 E F0 .545(using a special notation interpreted)3.815 F .617
 (by the shell.)108 594 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 606 R(follo)3.275 E
+close \214les for the current shell e)5.617 F -.15(xe)-.15 G .616
+(cution en).15 F(viron-)-.4 E 3.274(ment. The)108 606 R(follo)3.274 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
+(ywhere within a)-.15 F F2 .775(simple command)3.615 F F0(or)4.045 E
 (may follo)108 618 Q 2.5(wa)-.25 G F2(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
-634.8 R .284(wing descriptions, if the \214le descriptor number is omit\
-ted, and the \214rst character of the redirect-)-.25 F .513
+-2.5 E 2.5(,f)-.4 G(rom left to right.)-2.5 E .284(In the follo)108
+634.8 R .283(wing descriptions, if the \214le descriptor number is omit\
+ted, and the \214rst character of the redirect-)-.25 F .512
 (ion operator is)108 646.8 R F1(<)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 658.8 Q F1(>)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 675.6 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
+-2.5 E .825(The w)108 675.6 R .825(ord follo)-.1 F .824
+(wing the redirection operator in the follo)-.25 F .824
+(wing descriptions, unless otherwise noted, is sub-)-.25 F .772
 (jected to brace e)108 687.6 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
+(xpansion, parameter e)-.15 F .773
+(xpansion, command substitution, arithmetic e)-.15 F(xpan-)-.15 E .844
 (sion, quote remo)108 699.6 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
+F .843(xpands to more than one w)-.15 F(ord,)-.1 E F1(bash)3.343 E F0
 (reports an error)108 711.6 Q(.)-.55 E
 (Note that the order of redirections is signi\214cant.)108 728.4 Q -.15
 (Fo)5 G 2.5(re).15 G(xample, the command)-2.65 E(GNU Bash-3.2)72 768 Q
-(2008 February 22)138.46 E(21)188.45 E 0 Cg EP
+(2008 April 5)148.455 E(21)198.445 E 0 Cg EP
 %%Page: 22 22
 %%BeginPageSetup
 BP
@@ -2765,13 +2765,13 @@ BP
 (directs both standard output and standard error to the \214le)108 100.8
 Q/F2 10/Times-Italic@0 SF(dirlist)2.5 E F0 2.5(,w).68 G
 (hile the command)-2.5 E(ls 2)144 117.6 Q F1(>&)A F0(1)A F1(>)2.5 E F0
-(dirlist)2.5 E .388(directs only the standard output to \214le)108 134.4
-R F2(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
+(dirlist)2.5 E .387(directs only the standard output to \214le)108 134.4
+R F2(dirlist)2.887 E F0 2.887(,b).68 G .388(ecause the standard error w)
+-2.887 F .388(as duplicated as standard output)-.1 F
 (before the standard output w)108 146.4 Q(as redirected to)-.1 E F2
-(dirlist)2.5 E F0(.).68 E F1(Bash)108 163.2 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
+(dirlist)2.5 E F0(.).68 E F1(Bash)108 163.2 Q F0 .599(handles se)3.099 F
+-.15(ve)-.25 G .599(ral \214lenames specially when the).15 F 3.099(ya)
+-.15 G .598(re used in redirections, as described in the follo)-3.099 F
 (wing)-.25 E(table:)108 175.2 Q F1(/de)144 192 Q(v/fd/)-.15 E F2(fd)A F0
 (If)180 204 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
@@ -2779,22 +2779,22 @@ F1(/de)144 216 Q(v/stdin)-.15 E F0(File descriptor 0 is duplicated.)180
 228 Q F1(/de)144 240 Q(v/stdout)-.15 E F0
 (File descriptor 1 is duplicated.)180 252 Q F1(/de)144 264 Q(v/stderr)
 -.15 E F0(File descriptor 2 is duplicated.)180 276 Q F1(/de)144 288 Q
-(v/tcp/)-.15 E F2(host)A F1(/)A F2(port)A F0(If)180 300 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
+(v/tcp/)-.15 E F2(host)A F1(/)A F2(port)A F0(If)180 300 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 312 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 324 Q(v/udp/)-.15 E F2(host)A F1(/)A F2(port)A F0
-(If)180 336 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
+(If)180 336 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 348 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 364.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 381.6 R 3.446(ym)-.15 G .946
-(ay con\215ict with \214le)-3.446 F
+(ail.)-.1 E .946(Redirections using \214le descriptors greater than 9 s\
+hould be used with care, as the)108 381.6 R 3.447(ym)-.15 G .947
+(ay con\215ict with \214le)-3.447 F
 (descriptors the shell uses internally)108 393.6 Q(.)-.65 E F1(Redir)87
 410.4 Q(ecting Input)-.18 E F0 .391
 (Redirection of input causes the \214le whose name results from the e)
@@ -2805,43 +2805,43 @@ hould be used with care, as the)108 381.6 R 3.446(ym)-.15 G .946
 (is not speci\214ed.)2.74 E
 (The general format for redirecting input is:)108 451.2 Q([)144 468 Q F2
 (n)A F0(])A F1(<)A F2(wor)A(d)-.37 E F1(Redir)87 484.8 Q(ecting Output)
--.18 E F0 .175
+-.18 E F0 .174
 (Redirection of output causes the \214le whose name results from the e)
-108 496.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 508.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
+108 496.8 R .175(xpansion of)-.15 F F2(wor)3.015 E(d)-.37 E F0 .175
+(to be opened for writ-)3.445 F .825(ing on \214le descriptor)108 508.8
+R F2(n)3.325 E F0 3.325(,o).24 G 3.325(rt)-3.325 G .824
+(he standard output \(\214le descriptor 1\) if)-3.325 F F2(n)3.684 E F0
+.824(is not speci\214ed.)3.564 F .824(If the \214le does not)5.824 F
 -.15(ex)108 520.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 537.6 Q([)144 554.4 Q
-F2(n)A F0(])A F1(>)A F2(wor)A(d)-.37 E F0 .155
-(If the redirection operator is)108 571.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 583.2 R
-.657(ail if the \214le whose name results from the e)-.1 F .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 595.2 R F1(>|)2.909 E F0 2.909(,o)C
+F2(n)A F0(])A F1(>)A F2(wor)A(d)-.37 E F0 .154
+(If the redirection operator is)108 571.2 R F1(>)2.654 E F0 2.654(,a)C
+.154(nd the)-2.654 F F1(noclob)2.654 E(ber)-.1 E F0 .154(option to the)
+2.654 F F1(set)2.655 E F0 -.2(bu)2.655 G .155
+(iltin has been enabled, the redirection).2 F .658(will f)108 583.2 R
+.658(ail if the \214le whose name results from the e)-.1 F .658
+(xpansion of)-.15 F F2(wor)3.158 E(d)-.37 E F0 -.15(ex)3.158 G .657
+(ists and is a re).15 F .657(gular \214le.)-.15 F .657(If the redi-)
+5.657 F .408(rection operator is)108 595.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
+(option to the)2.909 F F1(set)2.909 E F0 -.2(bu)2.909 G .409
 (iltin command).2 F(is not enabled, the redirection is attempted e)108
 607.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
-624 S(pending Redir).25 E(ected Output)-.18 E F0 .641
+624 S(pending Redir).25 E(ected Output)-.18 E F0 .642
 (Redirection of output in this f)108 636 R .642
-(ashion causes the \214le whose name results from the e)-.1 F .642
-(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 648 R F2(n)2.974 E F0
+(ashion causes the \214le whose name results from the e)-.1 F .641
+(xpansion of)-.15 F F2(wor)3.481 E(d)-.37 E F0 .641(to be)3.911 F .473
+(opened for appending on \214le descriptor)108 648 R F2(n)2.973 E F0
 2.974(,o).24 G 2.974(rt)-2.974 G .474
-(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
+(he standard output \(\214le descriptor 1\) if)-2.974 F F2(n)3.334 E F0
+.474(is not speci\214ed.)3.214 F(If)5.474 E(the \214le does not e)108
 660 Q(xist it is created.)-.15 E
 (The general format for appending output is:)108 676.8 Q([)144 693.6 Q
 F2(n)A F0(])A F1(>>)A F2(wor)A(d)-.37 E F0(GNU Bash-3.2)72 768 Q
-(2008 February 22)138.46 E(22)188.45 E 0 Cg EP
+(2008 April 5)148.455 E(22)198.445 E 0 Cg EP
 %%Page: 23 23
 %%BeginPageSetup
 BP
@@ -2849,7 +2849,7 @@ BP
 /F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
 -.35 E/F1 10/Times-Bold@0 SF(Redir)87 84 Q
 (ecting Standard Output and Standard Err)-.18 E(or)-.18 E(Bash)108 96 Q
-F0(allo)3.141 E .642(ws both the standard output \(\214le descriptor 1\
+F0(allo)3.142 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 108 Q(xpansion of)
 -.15 E/F2 10/Times-Italic@0 SF(wor)2.84 E(d)-.37 E F0
@@ -2862,28 +2862,28 @@ F2(wor)A(d)-.37 E F0(Of the tw)108 182.4 Q 2.5(of)-.1 G
 E F1(>&)A F0(1)A F1(Her)87 216 Q 2.5(eD)-.18 G(ocuments)-2.5 E F0 .33(T\
 his type of redirection instructs the shell to read input from the curr\
 ent source until a line containing only)108 228 R F2(wor)108.34 240 Q(d)
--.37 E F0 .683(\(with no trailing blanks\) is seen.)3.953 F .684
+-.37 E F0 .684(\(with no trailing blanks\) is seen.)3.954 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 252 Q(The format of here-documents is:)
 108 268.8 Q F1(<<)144 285.6 Q F0([)A F1<ad>A F0(])A F2(wor)A(d)-.37 E
-(her)164 297.6 Q(e-document)-.37 E(delimiter)144 309.6 Q F0 .128
+(her)164 297.6 Q(e-document)-.37 E(delimiter)144 309.6 Q F0 .127
 (No parameter e)108 326.4 R .127
 (xpansion, command substitution, arithmetic e)-.15 F .127
-(xpansion, or pathname e)-.15 F .127(xpansion is performed)-.15 F(on)108
-338.4 Q F2(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 F2(wor)3.614 E(d)-.37 E
+(xpansion, or pathname e)-.15 F .128(xpansion is performed)-.15 F(on)108
+338.4 Q F2(wor)3.275 E(d)-.37 E F0 5.775(.I).77 G 3.275(fa)-5.775 G
+1.075 -.15(ny c)-3.275 H .774(haracters in).15 F F2(wor)3.614 E(d)-.37 E
 F0 .774(are quoted, the)4.044 F F2(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 F2(wor)3.275 E(d)-.37 E F0 3.275(,a).77 G(nd)-3.275 E .905
+(is the result of quote remo)4.004 F -.25(va)-.15 G 3.274(lo).25 G(n)
+-3.274 E F2(wor)3.274 E(d)-.37 E F0 3.274(,a).77 G(nd)-3.274 E .904
 (the lines in the here-document are not e)108 350.4 R 3.405(xpanded. If)
--.15 F F2(wor)3.405 E(d)-.37 E F0 .904
-(is unquoted, all lines of the here-document are)3.405 F .694
+-.15 F F2(wor)3.405 E(d)-.37 E F0 .905
+(is unquoted, all lines of the here-document are)3.405 F .695
 (subjected to parameter e)108 362.4 R .695
-(xpansion, command substitution, and arithmetic e)-.15 F 3.195
-(xpansion. In)-.15 F .695(the latter case, the)3.195 F
+(xpansion, command substitution, and arithmetic e)-.15 F 3.194
+(xpansion. In)-.15 F .694(the latter case, the)3.194 F
 (character sequence)108 374.4 Q F1(\\<newline>)2.5 E F0(is ignored, and)
 2.5 E F1(\\)2.5 E F0(must be used to quote the characters)2.5 E F1(\\)
-2.5 E F0(,)A F1($)2.5 E F0 2.5(,a)C(nd)-2.5 E F1<92>2.5 E F0(.)A .602
+2.5 E F0(,)A F1($)2.5 E F0 2.5(,a)C(nd)-2.5 E F1<92>2.5 E F0(.)A .601
 (If the redirection operator is)108 391.2 R F1(<<\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 403.2 Q F2(delimiter)2.5 E F0 5
@@ -2895,40 +2895,40 @@ F0 .774(are quoted, the)4.044 F F2(delimiter)3.624 E F0 .774
 F0(is e)2.5 E
 (xpanded and supplied to the command on its standard input.)-.15 E F1
 (Duplicating File Descriptors)87 482.4 Q F0(The redirection operator)108
-494.4 Q([)144 511.2 Q F2(n)A F0(])A F1(<&)A F2(wor)A(d)-.37 E F0 .126
+494.4 Q([)144 511.2 Q F2(n)A F0(])A F1(<&)A F2(wor)A(d)-.37 E F0 .127
 (is used to duplicate input \214le descriptors.)108 528 R(If)5.127 E F2
-(wor)2.967 E(d)-.37 E F0 -.15(ex)3.397 G .127
+(wor)2.967 E(d)-.37 E F0 -.15(ex)3.397 G .126
 (pands to one or more digits, the \214le descriptor denoted).15 F(by)108
-540 Q F2(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
-.457(do not specify a \214le descriptor open)3.727 F .149
-(for input, a redirection error occurs.)108 552 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
+540 Q F2(n)3.317 E F0 .457(is made to be a cop)3.197 F 2.957(yo)-.1 G
+2.957(ft)-2.957 G .457(hat \214le descriptor)-2.957 F 5.457(.I)-.55 G
+2.957(ft)-5.457 G .457(he digits in)-2.957 F F2(wor)3.298 E(d)-.37 E F0
+.458(do not specify a \214le descriptor open)3.728 F .15
+(for input, a redirection error occurs.)108 552 R(If)5.15 E F2(wor)2.99
+E(d)-.37 E F0 -.25(eva)3.42 G .15(luates to).25 F F1<ad>2.65 E F0 2.649
+<2c8c>C .149(le descriptor)-2.649 F F2(n)3.009 E F0 .149(is closed.)
+2.889 F(If)5.149 E F2(n)3.009 E F0 .149(is not speci\214ed,)2.889 F
 (the standard input \(\214le descriptor 0\) is used.)108 564 Q
 (The operator)108 580.8 Q([)144 597.6 Q F2(n)A F0(])A F1(>&)A F2(wor)A
-(d)-.37 E F0 .444
+(d)-.37 E F0 .443
 (is used similarly to duplicate output \214le descriptors.)108 614.4 R
-(If)5.444 E F2(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 626.4 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 o\
-utput, a redirection error)4.627 F 2.597(occurs. As)108 638.4 R 2.597
-(as)2.597 G .097(pecial case, if)-2.597 F F2(n)2.596 E F0 .096
+(If)5.443 E F2(n)3.304 E F0 .444
+(is not speci\214ed, the standard output \(\214le descrip-)3.184 F 1.358
+(tor 1\) is used.)108 626.4 R 1.358(If the digits in)6.358 F F2(wor)
+4.198 E(d)-.37 E F0 1.357(do not specify a \214le descriptor open for o\
+utput, a redirection error)4.628 F 2.596(occurs. As)108 638.4 R 2.596
+(as)2.596 G .096(pecial case, if)-2.596 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 650.4 Q
 (viously)-.25 E(.)-.65 E F1(Mo)87 667.2 Q(ving File Descriptors)-.1 E F0
 (The redirection operator)108 679.2 Q([)144 696 Q F2(n)A F0(])A F1(<&)A
-F2(digit)A F1<ad>A F0(mo)108 712.8 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 724.8 Q F2(digit)5
+F2(digit)A F1<ad>A F0(mo)108 712.8 Q -.15(ve)-.15 G 3.036(st).15 G .536
+(he \214le descriptor)-3.036 F F2(digit)3.036 E F0 .536
+(to \214le descriptor)3.036 F F2(n)3.036 E F0 3.036(,o).24 G 3.036(rt)
+-3.036 G .535(he standard input \(\214le descriptor 0\) if)-3.036 F F2
+(n)3.035 E F0 .535(is not speci-)3.035 F(\214ed.)108 724.8 Q F2(digit)5
 E F0(is closed after being duplicated to)2.5 E F2(n)2.5 E F0(.)A
-(GNU Bash-3.2)72 768 Q(2008 February 22)138.46 E(23)188.45 E 0 Cg EP
+(GNU Bash-3.2)72 768 Q(2008 April 5)148.455 E(23)198.445 E 0 Cg EP
 %%Page: 24 24
 %%BeginPageSetup
 BP
@@ -2936,11 +2936,11 @@ BP
 /F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
 -.35 E(Similarly)108 84 Q 2.5(,t)-.65 G(he redirection operator)-2.5 E
 ([)144 100.8 Q/F1 10/Times-Italic@0 SF(n)A F0(])A/F2 10/Times-Bold@0 SF
-(>&)A F1(digit)A F2<ad>A F0(mo)108 117.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 129.6 Q F2
+(>&)A F1(digit)A F2<ad>A F0(mo)108 117.6 Q -.15(ve)-.15 G 2.785(st).15 G
+.285(he \214le descriptor)-2.785 F F1(digit)2.785 E F0 .285
+(to \214le descriptor)2.785 F F1(n)2.785 E F0 2.785(,o).24 G 2.785(rt)
+-2.785 G .286(he standard output \(\214le descriptor 1\) if)-2.785 F F1
+(n)2.786 E F0 .286(is not speci-)2.786 F(\214ed.)108 129.6 Q F2
 (Opening File Descriptors f)87 146.4 Q(or Reading and Writing)-.25 E F0
 (The redirection operator)108 158.4 Q([)144 175.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
@@ -2949,36 +2949,36 @@ A F1(wor)A(d)-.37 E F0 1.349(causes the \214le whose name is the e)108
 108 204 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 220.8 Q F1(Aliases)108 232.8 Q F0(allo)3.174
-E 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
+/Times-Bold@0 SF(ALIASES)72 220.8 Q F1(Aliases)108 232.8 Q F0(allo)3.173
+E 3.173(was)-.25 G .674(tring to be substituted for a w)-3.173 F .674
+(ord when it is used as the \214rst w)-.1 F .674
 (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 244.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 256.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 268.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 F2(/)2.973 E F0(,)A
-F2($)2.973 E F0(,)A F2<92>2.973 E F0(,)A(and)108 280.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 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 292.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 304.8 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 316.8 R .295(xpanded a second time.)-.15 F .296
-(This means that one may alias)5.295 F F2(ls)2.796 E F0(to)2.796 E F2
-.296(ls \255F)2.796 F F0 2.796(,f)C .296(or instance, and)-2.796 F F2
-(bash)2.796 E F0 .296(does not try)2.796 F .543(to recursi)108 328.8 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 F1(blank)3.042 E F0 3.042(,t).67 G .542(hen the ne)
--3.042 F(xt)-.15 E(command w)108 340.8 Q(ord follo)-.1 E
+ses that may be set and unset with the)108 244.8 R F2(alias)2.893 E F0
+(and)2.893 E F2(unalias)2.893 E F0 -.2(bu)2.893 G .393(iltin commands).2
+F(\(see)108 256.8 Q/F4 9/Times-Bold@0 SF 1.979(SHELL B)4.479 F(UIL)-.09
+E 1.979(TIN COMMANDS)-.828 F F0(belo)4.229 E 4.48(w\). The)-.25 F 1.98
+(\214rst w)4.48 F 1.98(ord of each simple command, if unquoted, is)-.1 F
+(check)108 268.8 Q .473(ed to see if it has an alias.)-.1 F .473
+(If so, that w)5.473 F .472(ord is replaced by the te)-.1 F .472
+(xt of the alias.)-.15 F .472(The characters)5.472 F F2(/)2.972 E F0(,)A
+F2($)2.972 E F0(,)A F2<92>2.972 E F0(,)A(and)108 280.8 Q F2(=)3.611 E F0
+1.111(and an)3.611 F 3.611(yo)-.15 G 3.611(ft)-3.611 G 1.111(he shell)
+-3.611 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.412 -.15(ve m)-.15 H 1.112
+(ay not appear in an alias).15 F 3.62(name. The)108 292.8 R 1.12
+(replacement te)3.62 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.119
+(The \214rst)6.119 F -.1(wo)108 304.8 S .513(rd of the replacement te).1
+F .513(xt is tested for aliases, b)-.15 F .513(ut a w)-.2 F .514
+(ord that is identical to an alias being e)-.1 F .514(xpanded is)-.15 F
+.296(not e)108 316.8 R .296(xpanded a second time.)-.15 F .296
+(This means that one may alias)5.296 F F2(ls)2.796 E F0(to)2.796 E F2
+.296(ls \255F)2.796 F F0 2.796(,f)C .295(or instance, and)-2.796 F F2
+(bash)2.795 E F0 .295(does not try)2.795 F .542(to recursi)108 328.8 R
+-.15(ve)-.25 G .542(ly e).15 F .542(xpand the replacement te)-.15 F
+3.042(xt. If)-.15 F .543(the last character of the alias v)3.042 F .543
+(alue is a)-.25 F F1(blank)3.043 E F0 3.043(,t).67 G .543(hen the ne)
+-3.043 F(xt)-.15 E(command w)108 340.8 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 357.6 Q F2(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 F2
@@ -2993,78 +2993,78 @@ E(Aliases are created and listed with the)108 357.6 Q F2(alias)2.5 E F0
 (shell option is set)3.72 F(using)108 415.2 Q F2(shopt)2.5 E F0
 (\(see the description of)2.5 E F2(shopt)2.5 E F0(under)2.5 E F4
 (SHELL B)2.5 E(UIL)-.09 E(TIN COMMANDS)-.828 E F0(belo)2.25 E(w\).)-.25
-E .435
+E .436
 (The rules concerning the de\214nition and use of aliases are some)108
-432 R .436(what confusing.)-.25 F F2(Bash)5.436 E F0(al)2.936 E -.1(wa)
--.1 G .436(ys reads at least).1 F .338
+432 R .435(what confusing.)-.25 F F2(Bash)5.435 E F0(al)2.935 E -.1(wa)
+-.1 G .435(ys reads at least).1 F .337
 (one complete line of input before e)108 444 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 456 S .904
-(ommand is read, not when it is e)-3.403 F -.15(xe)-.15 G 3.404
+(he commands on that line.)-2.838 F .338(Aliases are e)5.338 F .338
+(xpanded when)-.15 F 3.404(ac)108 456 S .904
+(ommand is read, not when it is e)-3.404 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
+(an alias de\214nition appearing on the same line as)3.404 F 1.161
 (another command does not tak)108 468 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 .277
+1.162(The commands follo)6.162 F 1.162(wing the)-.25 F .277
 (alias de\214nition on that line are not af)108 480 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
-492 R -.15(xe)-.15 G 3.199(cuted. Aliases).15 F .699(are e)3.199 F .699
+2.777 E .277(vior is also an issue when functions)-.2 F .698(are e)108
+492 R -.15(xe)-.15 G 3.198(cuted. Aliases).15 F .698(are e)3.198 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
+ e)-.15 F -.15(xe)-.15 G(cuted,).15 E .495
 (because a function de\214nition is itself a compound command.)108 504 R
-.495(As a consequence, aliases de\214ned in a func-)5.494 F .085
+.494(As a consequence, aliases de\214ned in a func-)5.494 F .084
 (tion are not a)108 516 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
+-.1(wa)-.1 G .085(ys put alias de\214nitions on a sepa-).1 F
 (rate line, and do not use)108 528 Q F2(alias)2.5 E F0
 (in compound commands.)2.5 E -.15(Fo)108 544.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 F3
-(FUNCTIONS)72 561.6 Q F0 3.467(As)108 573.6 S .967
-(hell function, de\214ned as described abo)-3.467 F 1.267 -.15(ve u)-.15
+(FUNCTIONS)72 561.6 Q F0 3.468(As)108 573.6 S .968
+(hell function, de\214ned as described abo)-3.468 F 1.267 -.15(ve u)-.15
 H(nder).15 E F4 .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 585.6 R
--.15(xe)-.15 G 3.502(cution. When).15 F 1.002(the name of a shell funct\
-ion is used as a simple command name, the list of com-)3.502 F .315
+.967(stores a series of commands for)3.217 F 1.001(later e)108 585.6 R
+-.15(xe)-.15 G 3.501(cution. When).15 F 1.002(the name of a shell funct\
+ion is used as a simple command name, the list of com-)3.501 F .316
 (mands associated with that function name is e)108 597.6 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 609.6 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 621.6 R -.15(xe)-.15 G .639(cuted, the ar).15 F
+G 2.816(cuted. Functions).15 F .316(are e)2.816 F -.15(xe)-.15 G .315
+(cuted in the conte).15 F .315(xt of the current)-.15 F .035
+(shell; no ne)108 609.6 R 2.535(wp)-.25 G .036
+(rocess is created to interpret them \(contrast this with the e)-2.535 F
+-.15(xe)-.15 G .036(cution of a shell script\).).15 F .036(When a)5.036
+F .64(function is e)108 621.6 R -.15(xe)-.15 G .64(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 633.6
-R F2(#)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 645.6 R F4(FUNCN)3.517 E(AME)-.18 E F0 -.25(va)
-3.267 G 1.017
+-.18 F -.15(xe)-.15 G(cution.).15 E .532(The special parameter)108 633.6
+R F2(#)3.032 E F0 .532(is updated to re\215ect the change.)3.032 F .533
+(Special parameter 0 is unchanged.)5.532 F .533(The \214rst ele-)5.533 F
+1.018(ment of the)108 645.6 R F4(FUNCN)3.518 E(AME)-.18 E F0 -.25(va)
+3.268 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
+-.15(xe)-.15 G 3.517(cuting. All).15 F 1.285
 (other aspects of the shell e)108 657.6 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 669.6 S 2.029(ception that the).15 F F4(DEB)4.529 E(UG)
--.09 E F0(and)4.279 E F2(RETURN)4.529 E F0 2.029
-(traps \(see the description of the)4.529 F F2(trap)4.53 E F0 -.2(bu)
-4.53 G 2.03(iltin under).2 F F4(SHELL)4.53 E -.09(BU)108 681.6 S(IL).09
-E .479(TIN COMMANDS)-.828 F F0(belo)2.729 E .479
+F -.15(ex)108 669.6 S 2.03(ception that the).15 F F4(DEB)4.53 E(UG)-.09
+E F0(and)4.28 E F2(RETURN)4.53 E F0 2.029
+(traps \(see the description of the)4.53 F F2(trap)4.529 E F0 -.2(bu)
+4.529 G 2.029(iltin under).2 F F4(SHELL)4.529 E -.09(BU)108 681.6 S(IL)
+.09 E .478(TIN COMMANDS)-.828 F F0(belo)2.728 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 F2(trace)2.978 E F0(attrib)2.978 E
-.478(ute \(see)-.2 F .42(the description of the)108 693.6 R F4(declar)
+-.25 G 2.979(nt).15 G(he)-2.979 E F2(trace)2.979 E F0(attrib)2.979 E
+.479(ute \(see)-.2 F .421(the description of the)108 693.6 R F4(declar)
 2.92 E(e)-.162 E F0 -.2(bu)2.67 G .42(iltin belo).2 F .42(w\) or the)
 -.25 F F2 .42(\255o functrace)2.92 F F0 .42
-(shell option has been enabled with the)2.92 F F2(set)2.921 E F0 -.2(bu)
+(shell option has been enabled with the)2.92 F F2(set)2.92 E F0 -.2(bu)
 108 705.6 S(iltin \(in which case all functions inherit the).2 E F2(DEB)
 2.5 E(UG)-.1 E F0(and)2.5 E F2(RETURN)2.5 E F0(traps\).)2.5 E -1.11(Va)
-108 722.4 S .656(riables local to the function may be declared with the)
-1.11 F F2(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
-(GNU Bash-3.2)72 768 Q(2008 February 22)138.46 E(24)188.45 E 0 Cg EP
+108 722.4 S .655(riables local to the function may be declared with the)
+1.11 F F2(local)3.155 E F0 -.2(bu)3.156 G .656(iltin command.).2 F
+(Ordinarily)5.656 E 3.156(,v)-.65 G .656(ariables and)-3.406 F
+(GNU Bash-3.2)72 768 Q(2008 April 5)148.455 E(24)198.445 E 0 Cg EP
 %%Page: 25 25
 %%BeginPageSetup
 BP
@@ -3072,55 +3072,55 @@ BP
 /F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
 -.35 E(their v)108 84 Q
 (alues are shared between the function and its caller)-.25 E(.)-.55 E
-.043(If the b)108 100.8 R .043(uiltin command)-.2 F/F1 10/Times-Bold@0
+.044(If the b)108 100.8 R .043(uiltin command)-.2 F/F1 10/Times-Bold@0
 SF -.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 112.8 R 1.012
+-.15 G .043(cution resumes with).15 F 1.011(the ne)108 112.8 R 1.011
 (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 124.8 R
--.15(xe)-.15 G .213(cution resumes.).15 F .213
-(When a function completes, the v)5.213 F .214
+1.011(ommand associated with the)-3.511 F F1(RETURN)3.512 E F0 1.012
+(trap is e)3.512 F -.15(xe)-.15 G(cuted).15 E .214(before e)108 124.8 R
+-.15(xe)-.15 G .214(cution resumes.).15 F .213
+(When a function completes, the v)5.214 F .213
 (alues of the positional parameters and the spe-)-.25 F(cial parameter)
 108 136.8 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
+-2.65 G(cution.).15 E 1.358
 (Function names and de\214nitions may be listed with the)108 153.6 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
+F0(or)3.859 E F1(typeset)3.859 E F0 -.2(bu)3.859 G 1.359(iltin com-).2 F
 3.39(mands. The)108 165.6 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 177.6 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 1.297(automatically ha)108 189.6 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 201.6 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
-213.6 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 225.6 Q
+.326(\214le and line number)108 177.6 R 2.826(,i)-.4 G 2.826(ft)-2.826 G
+(he)-2.826 E F1(extdeb)2.826 E(ug)-.2 E F0 .326
+(shell option is enabled\).)2.826 F .327(Functions may be e)5.327 F .327
+(xported so that subshells)-.15 F 1.298(automatically ha)108 189.6 R
+1.598 -.15(ve t)-.2 H 1.298(hem de\214ned with the).15 F F1<ad66>3.798 E
+F0 1.298(option to the)3.798 F F1(export)3.797 E F0 -.2(bu)3.797 G 3.797
+(iltin. A).2 F 1.297(function de\214nition may be)3.797 F .16
+(deleted using the)108 201.6 R F1<ad66>2.66 E F0 .16(option to the)2.66
+F F1(unset)2.66 E F0 -.2(bu)2.66 G 2.661(iltin. Note).2 F .161
+(that shell functions and v)2.661 F .161(ariables with the same name)
+-.25 F 1.325(may result in multiple identically-named entries in the en)
+108 213.6 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 225.6 Q
 (en in cases where this may cause a problem.)-.1 E
 (Functions may be recursi)108 242.4 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 10.95/Times-Bold@0 SF(ARITHMETIC EV)72 259.2 Q(ALU)
--1.478 E -1.04(AT)-.657 G(ION)1.04 E F0 2.298(The shell allo)108 271.2 R
+-1.478 E -1.04(AT)-.657 G(ION)1.04 E F0 2.297(The shell allo)108 271.2 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.797 E F0(and)4.797 E F1(declar)108 283.2 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 .429(check for o)108 295.2 R -.15(ve)
--.15 G(r\215o).15 E 1.729 -.65(w, t)-.25 H .429(hough di).65 F .428
-(vision by 0 is trapped and \215agged as an error)-.25 F 5.428(.T)-.55 G
-.428(he operators and their prece-)-5.428 F 1.919(dence, associati)108
-307.2 R(vity)-.25 E 4.419(,a)-.65 G 1.919(nd v)-4.419 F 1.919
-(alues are the same as in the C language.)-.25 F 1.92(The follo)6.92 F
-1.92(wing list of operators is)-.25 F(grouped into le)108 319.2 Q -.15
+4.798 E F0(and)4.798 E F1(declar)108 283.2 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 295.2 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
+307.2 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 319.2 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/F3 10
 /Times-Italic@0 SF(id)108 336 Q F1(++)A F3(id)2.5 E F1<adad>A F0 -.25
@@ -3145,68 +3145,68 @@ Q F3 -.2(ex)108 600 S(pr1).2 E F1(,)2.5 E F3 -.2(ex)2.5 G(pr2).2 E F0
 (comma)144 612 Q .68(Shell v)108 628.8 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.507(ated. W)108 640.8 R 1.007(ithin an e)-.4
-F 1.007(xpression, shell v)-.15 F 1.007
+-.25(va)-.25 G(lu-).25 E 3.508(ated. W)108 640.8 R 1.008(ithin an e)-.4
+F 1.008(xpression, shell v)-.15 F 1.007
 (ariables may also be referenced by name without using the parameter)
--.25 F -.15(ex)108 652.8 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 664.8 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
+-.25 F -.15(ex)108 652.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 664.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 676.8 R 1.389
-(ariable which has been gi)-.25 F -.15(ve)-.25 G 3.889(nt).15 G(he)
--3.889 E F3(inte)3.889 E -.1(ge)-.4 G(r).1 E F0(attrib)3.889 E 1.389
-(ute using)-.2 F F1(declar)3.889 E 3.889(e-)-.18 G(i)-3.889 E F0(is)
-3.889 E .343(assigned a v)108 688.8 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 700.8 Q(xpression.)-.15 E
-1.406(Constants with a leading 0 are interpreted as octal numbers.)108
-717.6 R 3.906(Al)6.406 G 1.406(eading 0x or 0X denotes he)-3.906 F
-(xadecimal.)-.15 E 3.46(Otherwise, numbers tak)108 729.6 R 5.96(et)-.1 G
-3.46(he form [)-5.96 F F3(base#)A F0 3.461(]n, where)B F3(base)5.961 E
-F0 3.461(is a decimal number between 2 and 64)5.961 F(GNU Bash-3.2)72
-768 Q(2008 February 22)138.46 E(25)188.45 E 0 Cg EP
+(ariable which has been gi)-.25 F -.15(ve)-.25 G 3.89(nt).15 G(he)-3.89
+E F3(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 688.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 700.8 Q(xpression.)-.15 E 1.406
+(Constants with a leading 0 are interpreted as octal numbers.)108 717.6
+R 3.906(Al)6.406 G 1.407(eading 0x or 0X denotes he)-3.906 F(xadecimal.)
+-.15 E 3.461(Otherwise, numbers tak)108 729.6 R 5.961(et)-.1 G 3.461
+(he form [)-5.961 F F3(base#)A F0 3.461(]n, where)B F3(base)5.961 E F0
+3.46(is a decimal number between 2 and 64)5.961 F(GNU Bash-3.2)72 768 Q
+(2008 April 5)148.455 E(25)198.445 E 0 Cg EP
 %%Page: 26 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 .534(representing the arithmetic base, and)108 84 R/F1 10
-/Times-Italic@0 SF(n)3.034 E F0 .534(is a number in that base.)3.034 F
-(If)5.533 E F1(base#)3.033 E F0 .533(is omitted, then base 10 is used.)
-3.033 F .915(The digits greater than 9 are represented by the lo)108 96
-R .916(wercase letters, the uppercase letters, @, and _, in that)-.25 F
-(order)108 108 Q 5.671(.I)-.55 G(f)-5.671 E F1(base)3.171 E F0 .671
-(is less than or equal to 36, lo)3.171 F .67
+-.35 E .533(representing the arithmetic base, and)108 84 R/F1 10
+/Times-Italic@0 SF(n)3.033 E F0 .533(is a number in that base.)3.033 F
+(If)5.534 E F1(base#)3.034 E F0 .534(is omitted, then base 10 is used.)
+3.034 F .916(The digits greater than 9 are represented by the lo)108 96
+R .915(wercase letters, the uppercase letters, @, and _, in that)-.25 F
+(order)108 108 Q 5.67(.I)-.55 G(f)-5.67 E F1(base)3.17 E F0 .67
+(is less than or equal to 36, lo)3.17 F .671
 (wercase and uppercase letters may be used interchangeably to)-.25 F
-(represent numbers between 10 and 35.)108 120 Q .234(Operators are e)108
-136.8 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
+(represent numbers between 10 and 35.)108 120 Q .235(Operators are e)108
+136.8 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 148.8 S
 (rride the precedence rules abo).15 E -.15(ve)-.15 G(.).15 E/F2 10.95
-/Times-Bold@0 SF(CONDITION)72 165.6 Q(AL EXPRESSIONS)-.219 E F0 .256
-(Conditional e)108 177.6 R .256(xpressions are used by the)-.15 F/F3 10
+/Times-Bold@0 SF(CONDITION)72 165.6 Q(AL EXPRESSIONS)-.219 E F0 .255
+(Conditional e)108 177.6 R .255(xpressions are used by the)-.15 F/F3 10
 /Times-Bold@0 SF([[)2.755 E F0 .255(compound command and the)2.755 F F3
-(test)2.755 E F0(and)2.755 E F3([)2.755 E F0 -.2(bu)2.755 G .255
+(test)2.755 E F0(and)2.755 E F3([)2.756 E F0 -.2(bu)2.756 G .256
 (iltin commands to test).2 F .77(\214le attrib)108 189.6 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.041
-(unary or binary primaries.)108 201.6 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 213.6
-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
+(Expressions are formed from the follo)5.77 F(wing)-.25 E 1.04
+(unary or binary primaries.)108 201.6 R 1.04(If an)6.04 F(y)-.15 E F1
+(\214le)3.54 E F0(ar)3.54 E 1.041
+(gument to one of the primaries is of the form)-.18 F F1(/de)3.541 E
+(v/fd/n)-.15 E F0 3.541(,t)C 1.041(hen \214le)-3.541 F(descriptor)108
+213.6 Q F1(n)3.789 E F0 1.289(is check)3.789 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
+-.15 E F0(,)A F1(/de)3.788 E(v/stdout)-.15 E F0 3.788(,o)C(r)-3.788 E F1
 (/de)108 225.6 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 .722
+(,i)-.65 G 2.5(sc)-2.5 G(heck)-2.5 E(ed.)-.1 E .721
 (Unless otherwise speci\214ed, primaries that operate on \214les follo)
-108 242.4 R 3.221(ws)-.25 G .721(ymbolic links and operate on the tar)
+108 242.4 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 254.4
 Q F3<ad61>108 278.4 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 F3<ad62>108 290.4 Q F1
@@ -3253,21 +3253,21 @@ F0 -.35(Tr)10.02 G(ue if).35 E F1(\214le)2.5 E F0 -.15(ex)2.5 G
 F0 -.35(Tr)8.36 G(ue if).35 E F1(\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 F1
 (\214le1)108 530.4 Q F0<ad>2.5 E F3(nt)A F1(\214le2)2.5 E F0 -.35(Tr)144
-542.4 S .038(ue if).35 F F1(\214le1)2.538 E F0 .039(is ne)2.539 F .039
+542.4 S .039(ue if).35 F F1(\214le1)2.539 E F0 .039(is ne)2.539 F .039
 (wer \(according to modi\214cation date\) than)-.25 F F1(\214le2)2.539 E
 F0 2.539(,o)C 2.539(ri)-2.539 G(f)-2.539 E F1(\214le1)2.539 E F0 -.15
-(ex)2.539 G .039(ists and).15 F F1(\214le2)2.539 E F0 .039(does not.)
-2.539 F F1(\214le1)108 554.4 Q F0<ad>2.5 E F3(ot)A F1(\214le2)2.5 E F0
+(ex)2.539 G .039(ists and).15 F F1(\214le2)2.539 E F0 .038(does not.)
+2.538 F F1(\214le1)108 554.4 Q F0<ad>2.5 E F3(ot)A F1(\214le2)2.5 E F0
 -.35(Tr)144 566.4 S(ue if).35 E F1(\214le1)2.5 E F0(is older than)2.5 E
 F1(\214le2)2.5 E F0 2.5(,o)C 2.5(ri)-2.5 G(f)-2.5 E F1(\214le2)2.5 E F0
 -.15(ex)2.5 G(ists and).15 E F1(\214le1)2.5 E F0(does not.)2.5 E F1
 (\214le1)108 578.4 Q F3(\255ef)2.5 E F1(\214le2)2.5 E F0 -.35(Tr)144
 590.4 S(ue if).35 E F1(\214le1)2.5 E F0(and)2.5 E F1(\214le2)2.5 E F0
 (refer to the same de)2.5 E(vice and inode numbers.)-.25 E F3<ad6f>108
-602.4 Q F1(optname)2.5 E F0 -.35(Tr)144 614.4 S 1.144
-(ue if shell option).35 F F1(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 F3
-<ad6f>3.643 E F0(option to the)144 626.4 Q F3(set)2.5 E F0 -.2(bu)2.5 G
+602.4 Q F1(optname)2.5 E F0 -.35(Tr)144 614.4 S 1.143
+(ue if shell option).35 F F1(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 F3
+<ad6f>3.644 E F0(option to the)144 626.4 Q F3(set)2.5 E F0 -.2(bu)2.5 G
 (iltin belo).2 E -.65(w.)-.25 G F3<ad7a>108 638.4 Q F1(string)2.5 E F0
 -.35(Tr)144 650.4 S(ue if the length of).35 E F1(string)2.5 E F0
 (is zero.)2.5 E F1(string)108 662.4 Q F3<ad6e>108 674.4 Q F1(string)2.5
@@ -3275,8 +3275,8 @@ E F0 -.35(Tr)144 686.4 S(ue if the length of).35 E F1(string)2.84 E F0
 (is non-zero.)2.72 E F1(string1)108 703.2 Q F3(==)2.5 E F1(string2)2.5 E
 F0 -.35(Tr)144 715.2 S(ue if the strings are equal.).35 E F3(=)5 E F0
 (may be used in place of)2.5 E F3(==)2.5 E F0
-(for strict POSIX compliance.)2.5 E(GNU Bash-3.2)72 768 Q
-(2008 February 22)138.46 E(26)188.45 E 0 Cg EP
+(for strict POSIX compliance.)2.5 E(GNU Bash-3.2)72 768 Q(2008 April 5)
+148.455 E(26)198.445 E 0 Cg EP
 %%Page: 27 27
 %%BeginPageSetup
 BP
@@ -3292,63 +3292,63 @@ F0(sorts before)2.5 E F1(string2)2.5 E F0(le)2.5 E
 2.5 E F0(sorts after)2.5 E F1(string2)2.5 E F0(le)2.5 E
 (xicographically in the current locale.)-.15 E F1(ar)108.33 170.4 Q(g1)
 -.37 E F2(OP)2.5 E F1(ar)2.5 E(g2)-.37 E/F3 9/Times-Bold@0 SF(OP)144
-182.4 Q F0 .385(is one of)2.634 F F2(\255eq)2.885 E F0(,)A F2(\255ne)
+182.4 Q F0 .385(is one of)2.635 F F2(\255eq)2.885 E F0(,)A F2(\255ne)
 2.885 E F0(,)A F2(\255lt)2.885 E F0(,)A F2(\255le)2.885 E F0(,)A F2
 (\255gt)2.885 E F0 2.885(,o)C(r)-2.885 E F2(\255ge)2.885 E F0 5.385(.T)C
 .385(hese arithmetic binary operators return true if)-5.385 F F1(ar)
-2.885 E(g1)-.37 E F0 .845(is equal to, not equal to, less than, less th\
+2.884 E(g1)-.37 E F0 .845(is equal to, not equal to, less than, less th\
 an or equal to, greater than, or greater than or equal to)144 194.4 R F1
 (ar)144 206.4 Q(g2)-.37 E F0 2.5(,r)C(especti)-2.5 E -.15(ve)-.25 G(ly)
 .15 E(.)-.65 E F1(Ar)6.01 E(g1)-.37 E F0(and)2.5 E F1(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 223.2 Q(ANSION)-.81 E F0
-.613(When a simple command is e)108 235.2 R -.15(xe)-.15 G .614
-(cuted, the shell performs the follo).15 F .614(wing e)-.25 F .614
+.614(When a simple command is e)108 235.2 R -.15(xe)-.15 G .614
+(cuted, the shell performs the follo).15 F .613(wing e)-.25 F .613
 (xpansions, assignments, and redi-)-.15 F(rections, from left to right.)
-108 247.2 Q 26(1. The)108 264 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
+108 247.2 Q 26(1. The)108 264 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
 (ariable assignments \(those preceding the command)-.25 F
 (name\) and redirections are sa)144 276 Q -.15(ve)-.2 G 2.5(df).15 G
-(or later processing.)-2.5 E 26(2. The)108 292.8 R -.1(wo)3.663 G 1.163
+(or later processing.)-2.5 E 26(2. The)108 292.8 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.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
-304.8 R .776(xpansion, the \214rst w)-.15 F .776(ord is tak)-.1 F .775
+(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
+304.8 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 316.8 Q(guments.)-.18 E 26(3. Redirections)108 333.6 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 350.4 R
-(te)3.216 E .717(xt after the)-.15 F F2(=)3.217 E F0 .717(in each v)
+(te)3.217 E .717(xt after the)-.15 F F2(=)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
+.717(xpansion, parameter e)-.15 F(xpansion,)-.15 E .339
 (command substitution, arithmetic e)144 362.4 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 374.4 Q
 .332(If no command name results, the v)108 391.2 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 403.2 S .757
+2.832(vironment. Otherwise,)-.4 F(the)2.832 E -.25(va)108 403.2 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 415.2
-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 427.2 Q(xits with a non-zero status.)-.15 E .15
+(fect the current shell en)-.25 F(vi-)-.4 E 3.177(ronment. If)108 415.2
+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 427.2 Q(xits with a non-zero status.)-.15 E .149
 (If no command name results, redirections are performed, b)108 444 R
-.149(ut do not af)-.2 F .149(fect the current shell en)-.25 F 2.649
+.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 456 Q
 (xit with a non-zero status.)-.15 E 1.064
 (If there is a command name left after e)108 472.8 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
-484.8 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 496.8 R .466
-(xit status of the last command substitution performed.)-.15 F .467
+4.864 -.65(w. O)-.25 H 1.064(therwise, the).65 F .068(command e)108
+484.8 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 496.8 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 508.8
 Q(xits with a status of zero.)-.15 E F4(COMMAND EXECUTION)72 525.6 Q F0
-.547(After a command has been split into w)108 537.6 R .546
+.546(After a command has been split into w)108 537.6 R .547
 (ords, if it results in a simple command and an optional list of ar)-.1
 F(gu-)-.18 E(ments, the follo)108 549.6 Q(wing actions are tak)-.25 E
 (en.)-.1 E .379(If the command name contains no slashes, the shell atte\
@@ -3359,78 +3359,78 @@ mpts to locate it.)108 566.4 R .379(If there e)5.379 F .379
 2.746 E F5(.)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 590.4 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 .309
-(If the name is neither a shell function nor a b)108 607.2 R .31
-(uiltin, and contains no slashes,)-.2 F F2(bash)2.81 E F0 .31
-(searches each element of)2.81 F(the)108 619.2 Q F3 -.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 F2(Bash)5.662 E F0 .662
-(uses a hash table to remember)3.162 F 1.914(the full pathnames of e)108
+(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 607.2 R .309
+(uiltin, and contains no slashes,)-.2 F F2(bash)2.809 E F0 .309
+(searches each element of)2.809 F(the)108 619.2 Q F3 -.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 F2(Bash)5.662 E F0 .663
+(uses a hash table to remember)3.162 F 1.915(the full pathnames of e)108
 631.2 R -.15(xe)-.15 G 1.915(cutable \214les \(see).15 F F2(hash)4.415 E
-F0(under)4.415 E F3 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 643.2 R F3 -.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 655.2 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 672 R -.15(xe)-.15 G 1.09(cutes the).15 F .198
-(named program in a separate e)108 684 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 .197(n, and the remain-).15 F(ing ar)108 696 Q
+F0(under)4.415 E F3 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 643.2 R F3 -.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 e\
+rror message and returns an e)108 655.2 Q(xit status of 127.)-.15 E
+1.089(If the search is successful, or if the command name contains one \
+or more slashes, the shell e)108 672 R -.15(xe)-.15 G 1.089(cutes the)
+.15 F .197(named program in a separate e)108 684 R -.15(xe)-.15 G .197
+(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 696 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 712.8 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 .678(assumed to be a)108 724.8 R F1 .678
-(shell script)3.178 F F0 3.178(,a\214)C .678
+4.309(ti)-4.309 G(s)-4.309 E .677(assumed to be a)108 724.8 R F1 .678
+(shell script)3.177 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 .677(wned to e)-.15 F -.15(xe)-.15 G .677
-(cute it.).15 F(This)5.677 E(GNU Bash-3.2)72 768 Q(2008 February 22)
-138.46 E(27)188.45 E 0 Cg EP
+(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(GNU Bash-3.2)72 768 Q(2008 April 5)148.455
+E(27)198.445 E 0 Cg EP
 %%Page: 28 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 .329(subshell reinitializes itself, so that the ef)108 84 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 96 R 1.219
+-.35 E .33(subshell reinitializes itself, so that the ef)108 84 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 96 R 1.219
 (xception that the locations of commands remembered by the parent \(see)
 -.15 F/F1 10/Times-Bold@0 SF(hash)3.719 E F0(belo)3.719 E 3.719(wu)-.25
 G(nder)-3.719 E/F2 9/Times-Bold@0 SF(SHELL)3.719 E -.09(BU)108 108 S(IL)
 .09 E(TIN COMMANDS)-.828 E/F3 9/Times-Roman@0 SF(\))A F0
-(are retained by the child.)2.25 E .347(If the program is a \214le be)
-108 124.8 R .347(ginning with)-.15 F F1(#!)2.847 E F0 2.847(,t)C .348(h\
+(are retained by the child.)2.25 E .348(If the program is a \214le be)
+108 124.8 R .348(ginning with)-.15 F F1(#!)2.848 E F0 2.848(,t)C .347(h\
 e remainder of the \214rst line speci\214es an interpreter for the pro-)
--2.847 F 3.178(gram. The)108 136.8 R .678(shell e)3.178 F -.15(xe)-.15 G
+-2.848 F 3.178(gram. The)108 136.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.192(format themselv)
-108 148.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
+ handle this e).15 F -.15(xe)-.15 G(cutable).15 E 1.193(format themselv)
+108 148.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 160.8 R
-1.13(wed by the name of the program, follo)-.25 F 1.13(wed by the)-.25 F
-(command ar)108 172.8 Q(guments, if an)-.18 E -.65(y.)-.15 G/F4 10.95
+1.131(wed by the name of the program, follo)-.25 F 1.131(wed by the)-.25
+F(command ar)108 172.8 Q(guments, if an)-.18 E -.65(y.)-.15 G/F4 10.95
 /Times-Bold@0 SF(COMMAND EXECUTION ENVIR)72 189.6 Q(ONMENT)-.329 E F0
 (The shell has an)108 201.6 Q/F5 10/Times-Italic@0 SF -.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 230.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 F1
-(exec)3.906 E F0 -.2(bu)144 242.4 S(iltin).2 E 32.5<8374>108 259.2 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 F1
+(exec)3.905 E F0 -.2(bu)144 242.4 S(iltin).2 E 32.5<8374>108 259.2 S
 (he current w)-32.5 E(orking directory as set by)-.1 E F1(cd)2.5 E F0(,)
 A F1(pushd)2.5 E F0 2.5(,o)C(r)-2.5 E F1(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 276 S(he \214le creation mode mask as set by)-32.5 E F1(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 292.8 S(urrent traps set by)-32.5 E F1(trap)2.5 E F0 32.5
-<8373>108 309.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
+<8373>108 309.6 S .256(hell parameters that are set by v)-32.5 F .256
+(ariable assignment or with)-.25 F F1(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 321.6 Q(vironment)-.4 E 32.5<8373>108 338.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
@@ -3442,74 +3442,74 @@ F0 32.5<836f>108 372 S(ptions enabled by)-32.5 E F1(shopt)2.5 E F0 32.5
 32.5<8376>108 405.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 422.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 434.4 S .134(cution en).15 F .134
+F1($PPID)2.5 E F0 .427(When a simple command other than a b)108 422.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 434.4 S .133(cution en).15 F .133
 (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 446.4 Q 32.5<8374>108 475.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
+.134(otherwise noted, the v)2.634 F .134(alues are inherited from)-.25 F
+(the shell.)108 446.4 Q 32.5<8374>108 475.2 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
 (odi\214cations and additions speci\214ed by redirections to the com-)
 -3.556 F(mand)144 487.2 Q 32.5<8374>108 504 S(he current w)-32.5 E
 (orking directory)-.1 E 32.5<8374>108 520.8 S
-(he \214le creation mode mask)-32.5 E 32.5<8373>108 537.6 S .857(hell v)
+(he \214le creation mode mask)-32.5 E 32.5<8373>108 537.6 S .856(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 549.6 Q(vironment)
--.4 E 32.5<8374>108 566.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 578.4 Q
+-.4 E 32.5<8374>108 566.4 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 578.4 Q
 2.5(Ac)108 595.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 612 R -.2(vo)-.4 G -.1(ke)
-.2 G 3.077(di).1 G(n)-3.077 E 2.744(as)108 624 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 636 R .358
+.2 G 3.078(di).1 G(n)-3.078 E 2.745(as)108 624 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 636 R .358
 (alues that the shell inherited from its parent at in)-.25 F -.2(vo)-.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 648 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-)
+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 648 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 660 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 676.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 688.8 R F5(/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 700.8 Q(GNU Bash-3.2)72 768
-Q(2008 February 22)138.46 E(28)188.45 E 0 Cg EP
+(xe)-2.65 G(cution en).15 E(vironment.)-.4 E .404(If a command is follo)
+108 676.8 R .404(wed by a)-.25 F F1(&)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 688.8 R F5(/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 700.8 Q(GNU Bash-3.2)72 768
+Q(2008 April 5)148.455 E(28)198.445 E 0 Cg EP
 %%Page: 29 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/F1 10.95/Times-Bold@0 SF(ENVIR)72 84 Q(ONMENT)-.329 E F0 2.354
+-.35 E/F1 10.95/Times-Bold@0 SF(ENVIR)72 84 Q(ONMENT)-.329 E F0 2.353
 (When a program is in)108 96 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 10
 /Times-Italic@0 SF(en)4.853 E(vir)-.4 E(onment)-.45 E F0 7.353(.T).68 G
-2.353(his is a list of)-7.353 F F2(name)108 108 Q F0<ad>A F2(value)A F0
+2.354(his is a list of)-7.353 F F2(name)108 108 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.485(The shell pro)108 124.8 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
+1.486(The shell pro)108 124.8 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 136.8 Q .144(viron\
 ment and creates a parameter for each name found, automatically marking\
- 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 148.8 R .203(ecuted commands inherit the en)-.15 F
+ 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 148.8 R .203(ecuted commands inherit the en)-.15 F
 2.703(vironment. The)-.4 F/F3 10/Times-Bold@0 SF(export)2.703 E F0(and)
 2.703 E F3(declar)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
+(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 160.8 R
-3.653(vironment. If)-.4 F 1.153(the v)3.653 F 1.153
+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 172.8 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.)
@@ -3517,280 +3517,280 @@ ment and creates a parameter for each name found, automatically marking\
 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
-.3(modi\214ed in the shell, less an)108 196.8 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 F3(unset)2.801 E F0 .301(command, plus an)2.801 F 2.801(ya)-.15 G .301
-(dditions via the)-2.801 F F3(export)2.801 E F0(and)2.801 E F3(declar)
-108 208.8 Q 2.5<65ad>-.18 G(x)-2.5 E F0(commands.)2.5 E .563(The en)108
-225.6 R .563(vironment for an)-.4 F(y)-.15 E F2 .563(simple command)
-3.403 F F0 .562
+.301(modi\214ed in the shell, less an)108 196.8 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 F3(unset)2.801 E F0 .3(command, plus an)2.8 F 2.8(ya)-.15 G .3
+(dditions via the)-2.8 F F3(export)2.8 E F0(and)2.8 E F3(declar)108
+208.8 Q 2.5<65ad>-.18 G(x)-2.5 E F0(commands.)2.5 E .562(The en)108
+225.6 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
-.202(parameter assignments, as described abo)108 237.6 R .502 -.15(ve i)
+.203(parameter assignments, as described abo)108 237.6 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 249.6 Q
+.202(fect only the)-.25 F(en)108 249.6 Q
 (vironment seen by that command.)-.4 E .81(If the)108 266.4 R F3<ad6b>
 3.31 E F0 .81(option is set \(see the)3.31 F F3(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 278.4 Q
 (vironment for a command, not just those that precede the command name.)
--.4 E(When)108 295.2 Q F3(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)
+-.4 E(When)108 295.2 Q F3(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 F3(_)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 307.2 Q(vironment.)-.4 E F1
-(EXIT ST)72 324 Q -1.04(AT)-.986 G(US)1.04 E F0 .151(The e)108 336 R
-.151(xit status of an e)-.15 F -.15(xe)-.15 G .151
-(cuted command is the v).15 F .15(alue returned by the)-.25 F F2
-(waitpid)2.65 E F0 .15(system call or equi)2.65 F -.25(va)-.25 G .15
-(lent func-).25 F 2.847(tion. Exit)108 348 R .347(statuses f)2.847 F
-.347(all between 0 and 255, though, as e)-.1 F .347(xplained belo)-.15 F
-1.647 -.65(w, t)-.25 H .347(he shell may use v).65 F .348(alues abo)-.25
-F .648 -.15(ve 1)-.15 H(25).15 E(specially)108 360 Q 5.674(.E)-.65 G
-.674(xit statuses from shell b)-5.674 F .673
+(EXIT ST)72 324 Q -1.04(AT)-.986 G(US)1.04 E F0 .15(The e)108 336 R .15
+(xit status of an e)-.15 F -.15(xe)-.15 G .15(cuted command is the v).15
+F .151(alue returned by the)-.25 F F2(waitpid)2.651 E F0 .151
+(system call or equi)2.651 F -.25(va)-.25 G .151(lent func-).25 F 2.848
+(tion. Exit)108 348 R .348(statuses f)2.848 F .347
+(all between 0 and 255, though, as e)-.1 F .347(xplained belo)-.15 F
+1.647 -.65(w, t)-.25 H .347(he shell may use v).65 F .347(alues abo)-.25
+F .647 -.15(ve 1)-.15 H(25).15 E(specially)108 360 Q 5.673(.E)-.65 G
+.673(xit statuses from shell b)-5.673 F .673
 (uiltins and compound commands are also limited to this range. Under)-.2
 F(certain circumstances, the shell will use special v)108 372 Q
 (alues to indicate speci\214c f)-.25 E(ailure modes.)-.1 E -.15(Fo)108
-388.8 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 400.8 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 412.8 Q F2(N)2.5 E F0(,)A F3(bash)
+388.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 400.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 412.8 Q F2(N)2.5 E F0(,)A F3(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
+(xit status.)-.15 E .405
 (If a command is not found, the child process created to e)108 429.6 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 441.6 Q(ut is not e)-.2 E -.15(xe)
+-.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 441.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 458.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 .081(Shell b)108 475.2 R .081
+-.15 E .08(Shell b)108 475.2 R .08
 (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 487.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
+2.581(fs)-2.581 G .081(uccessful, and non-zero \()-2.581 F F2(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 487.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 F3(Bash)108 504 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
+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 516 Q
 (xits with a non-zero v)-.15 E 2.5(alue. See)-.25 F(also the)2.5 E F3
 (exit)2.5 E F0 -.2(bu)2.5 G(iltin command belo).2 E -.65(w.)-.25 G F1
-(SIGN)72 532.8 Q(ALS)-.219 E F0(When)108 544.8 Q F3(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 F4(SIGTERM)3.183 E F0 .682(\(so that)2.933 F F3 .682(kill 0)
-3.182 F F0 .682(does not kill an)3.182 F(interacti)108 556.8 Q .757 -.15
-(ve s)-.25 H .457(hell\), and).15 F F4(SIGINT)2.957 E F0 .458
-(is caught and handled \(so that the)2.707 F F3(wait)2.958 E F0 -.2(bu)
-2.958 G .458(iltin is interruptible\).).2 F .458(In all cases,)5.458 F
+(SIGN)72 532.8 Q(ALS)-.219 E F0(When)108 544.8 Q F3(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(SIGTERM)3.183 E F0 .683(\(so that)2.933 F F3 .683(kill 0)
+3.183 F F0 .683(does not kill an)3.183 F(interacti)108 556.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 F3(wait)2.958 E F0 -.2(bu)
+2.958 G .457(iltin is interruptible\).).2 F .457(In all cases,)5.457 F
 F3(bash)108 568.8 Q F0(ignores)2.5 E F4(SIGQ)2.5 E(UIT)-.09 E F5(.)A F0
 (If job control is in ef)4.5 E(fect,)-.25 E F3(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 585.6 Q 1.065
-(uiltin commands run by)-.2 F F3(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
-597.6 R .747(job control is not in ef)3.247 F .747
-(fect, asynchronous commands ignore)-.25 F F4(SIGINT)3.248 E F0(and)
-2.998 E F4(SIGQ)3.248 E(UIT)-.09 E F0 .748(in addi-)2.998 F .653
+E F4(SIGTSTP)2.5 E F5(.)A F0(Non-b)108 585.6 Q 1.064
+(uiltin commands run by)-.2 F F3(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
+597.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 609.6 R .653
-(Commands run as a result of command substitution ignore the k)5.653 F
+(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 621.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.045(The shell e)108 638.4 R 2.045
+(SIGTSTP)2.5 E F5(.)A F0 2.046(The shell e)108 638.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.346
--.15(ve s)-.25 H 2.046(hell resends the).15 F F4(SIGHUP)108 650.4 Q F0
-1.005(to all jobs, running or stopped.)3.255 F 1.004
-(Stopped jobs are sent)6.005 F F4(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 F4(SIGHUP)108 662.4 Q F5(.)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 674.4 R F3(diso)
-3.857 E(wn)-.1 E F0 -.2(bu)3.857 G 1.357(iltin \(see).2 F F4 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 F4
+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 650.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 662.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 674.4 R F3(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 686.4 Q F0(using)2.25 E F3(diso)2.5 E(wn \255h)-.1 E F0(.)A
 .166(If the)108 703.2 R F3(huponexit)2.666 E F0 .166
 (shell option has been set with)2.666 F F3(shopt)2.666 E F0(,)A F3(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
-715.2 Q(xits.)-.15 E(GNU Bash-3.2)72 768 Q(2008 February 22)138.46 E(29)
-188.45 E 0 Cg EP
+715.2 Q(xits.)-.15 E(GNU Bash-3.2)72 768 Q(2008 April 5)148.455 E(29)
+198.445 E 0 Cg EP
 %%Page: 30 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(If)108 84 Q/F1 10/Times-Bold@0 SF(bash)3.047 E F0 .547(is w)3.047
+-.35 E(If)108 84 Q/F1 10/Times-Bold@0 SF(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 96 R -.15(xe)-.15 G .662
+-3.046 F .663(will not be e)108 96 R -.15(xe)-.15 G .663
 (cuted until the command completes.).15 F(When)5.663 E F1(bash)3.163 E
-F0 .663(is w)3.163 F .663(aiting for an asynchronous command)-.1 F .99
+F0 .662(is w)3.163 F .662(aiting for an asynchronous command)-.1 F .99
 (via the)108 108 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 120 Q
 (xit status greater than 128, immediately after which the trap is e)-.15
 E -.15(xe)-.15 G(cuted.).15 E/F2 10.95/Times-Bold@0 SF(JOB CONTR)72
-136.8 Q(OL)-.329 E/F3 10/Times-Italic@0 SF -.25(Jo)108 148.8 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 F3(suspend)A F0 4.567(\)t)
-C 2.068(he e)-4.567 F -.15(xe)-.15 G 2.068
+136.8 Q(OL)-.329 E/F3 10/Times-Italic@0 SF -.25(Jo)108 148.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 160.8 Q F3 -.37(re)C
-(sume).37 E F0 3.202(\)t)C .702(heir e)-3.202 F -.15(xe)-.15 G .702
+(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)
+(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 172.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 .784(The shell associates a)108 189.6 R F3(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 201.6 R F1
-(jobs)2.841 E F0 2.841(command. When)2.841 F F1(bash)2.841 E F0 .341
-(starts a job asynchronously \(in the)2.841 F F3(bac)2.84 E(kgr)-.2 E
-(ound)-.45 E F0 .34(\), it prints a line).77 F(that looks lik)108 213.6
+F0(.)A .785(The shell associates a)108 189.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 201.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 213.6
 Q(e:)-.1 E([1] 25647)144 230.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 247.2 R .733(with this job is 25647.)108 259.2 R .732
+ociated)108 247.2 R .732(with this job is 25647.)108 259.2 R .733
 (All of the processes in a single pipeline are members of the same job)
-5.733 F(.)-.4 E F1(Bash)5.732 E F0(uses)3.232 E(the)108 271.2 Q F3(job)
-4.24 E F0(abstraction as the basis for job control.)2.73 E 3.062 -.8
-(To f)108 288 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 300 R F3(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 271.2 Q F3(job)
+4.24 E F0(abstraction as the basis for job control.)2.73 E 3.063 -.8
+(To f)108 288 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 300 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
 312 R .323 -.15(ve k)-.25 H -.15(ey).05 G .023
-(board-generated signals such as).15 F/F4 9/Times-Bold@0 SF(SIG-)2.523 E
-(INT)108 324 Q/F5 9/Times-Roman@0 SF(.)A F0 1.347
-(These processes are said to be in the)5.847 F F3(for)3.846 E -.4(eg)
--.37 G -.45(ro).4 G(und).45 E F0(.).77 E F3(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 336 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
+(board-generated signals such as).15 F/F4 9/Times-Bold@0 SF(SIG-)2.522 E
+(INT)108 324 Q/F5 9/Times-Roman@0 SF(.)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 .146
+(group ID dif)108 336 R .146(fers from the terminal')-.25 F .146
+(s; such processes are immune to k)-.55 F -.15(ey)-.1 G .145
+(board-generated signals.).15 F .145(Only fore-)5.145 F .041
 (ground processes are allo)108 348 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 360 R F4 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 372 Q 1.088
-(If the operating system on which)108 388.8 R F1(bash)3.588 E F0 1.088
-(is running supports job control,)3.588 F F1(bash)3.587 E F0 1.087
-(contains f)3.587 F 1.087(acilities to use it.)-.1 F -.8(Ty)108 400.8 S
-.301(ping the).8 F F3(suspend)3.141 E F0 .301(character \(typically)
-3.571 F F1(^Z)2.801 E F0 2.801(,C)C .301
+(Background processes which attempt to)5.042 F 1.64
+(read from \(write to\) the terminal are sent a)108 360 R F4 1.639
+(SIGTTIN \(SIGTT)4.14 F(OU\))-.162 E F0 1.639
+(signal by the terminal dri)3.889 F -.15(ve)-.25 G 2.439 -.4(r, w).15 H
+(hich,).4 E(unless caught, suspends the process.)108 372 Q 1.087
+(If the operating system on which)108 388.8 R F1(bash)3.587 E F0 1.088
+(is running supports job control,)3.588 F F1(bash)3.588 E F0 1.088
+(contains f)3.588 F 1.088(acilities to use it.)-.1 F -.8(Ty)108 400.8 S
+.302(ping the).8 F F3(suspend)3.142 E F0 .302(character \(typically)
+3.572 F F1(^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 412.8 R F1(bash)4.642 E F0
+F 2.142(stopped and returns control to)108 412.8 R F1(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.142(character \(typically)5.412 F F1(^Y)4.642 E F0 4.642(,C)C
-(ontrol-Y\))-4.642 E .021(causes the process to be stopped when it atte\
+2.143(character \(typically)5.413 F F1(^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
 424.8 R(to)108 436.8 Q F1(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
-F1(bg)3.392 E F0 .892(command to continue it in the)3.392 F .894
-(background, the)108 448.8 R F1(fg)3.394 E F0 .895
-(command to continue it in the fore)3.394 F .895(ground, or the)-.15 F
-F1(kill)3.395 E F0 .895(command to kill it.)3.395 F(A)5.895 E F1(^Z)
-3.395 E F0(tak)3.395 E(es)-.1 E(ef)108 460.8 Q .949(fect immediately)
--.25 F 3.449(,a)-.65 G .948(nd has the additional side ef)-3.449 F .948
+F1(bg)3.392 E F0 .892(command to continue it in the)3.392 F .895
+(background, the)108 448.8 R F1(fg)3.395 E F0 .895
+(command to continue it in the fore)3.395 F .895(ground, or the)-.15 F
+F1(kill)3.395 E F0 .894(command to kill it.)3.395 F(A)5.894 E F1(^Z)
+3.394 E F0(tak)3.394 E(es)-.1 E(ef)108 460.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 472.8 Q 1.097(There are a number of w)108 489.6 R 1.097
+108 472.8 Q 1.098(There are a number of w)108 489.6 R 1.097
 (ays to refer to a job in the shell.)-.1 F 1.097(The character)6.097 F
-F1(%)3.597 E F0 1.098(introduces a job name.)3.597 F(Job)6.098 E(number)
+F1(%)3.597 E F0 1.097(introduces a job name.)3.597 F(Job)6.097 E(number)
 108 501.6 Q F3(n)3.13 E F0 .27(may be referred to as)3.01 F F1(%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 513.6 R -.15(Fo)5.277 G 2.777(re).15 G(xample,)-2.927 E F1(%ce)2.777
-E F0 .277(refers to a stopped)2.777 F F1(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
+E F0 .277(refers to a stopped)2.777 F F1(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
 525.6 R F1(bash)2.88 E F0 .38(reports an error)2.88 F 5.38(.U)-.55 G
 (sing)-5.38 E F1(%?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 .622
-(containing the string)108 537.6 R F1(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 549.6 Q 5.143(.T)-.55 G .143
+(he other hand, refers to an)-2.88 F 2.88(yj)-.15 G(ob)-2.88 E .623
+(containing the string)108 537.6 R F1(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 F1(bash)3.122 E F0
+.622(reports an)3.122 F(error)108 549.6 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
 (refer to the shell')2.643 F 2.643(sn)-.55 G .143(otion of the)-2.643 F
 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.208(while it w)108 561.6 R
-1.208(as in the fore)-.1 F 1.208(ground or started in the background.)
+(hich is the last job stopped)-2.643 F 1.209(while it w)108 561.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.209(may be referenced using)3.939 F F1<25ad>108 573.6 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 585.6 R F1(+)2.65 E F0 2.65(,a)C
+1.208(may be referenced using)3.938 F F1<25ad>108 573.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 F1(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 585.6 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
 (ying job speci\214cation\) also refers to)-.15 F(the current job)108
-597.6 Q(.)-.4 E .444
+597.6 Q(.)-.4 E .443
 (Simply naming a job can be used to bring it into the fore)108 614.4 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
-626.4 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
+(ground:)-.15 E F1(%1)2.944 E F0 .444(is a synon)2.944 F .444(ym for)
+-.15 F F1 -.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
+626.4 R 3.973(ground. Similarly)-.15 F(,)-.65 E F1 -.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 638.4 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 655.2
-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 667.2 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 679.2 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 F4(SIGCHLD)3.951 E F0(is)3.701 E -.15
-(exe)108 691.2 S(cuted for each child that e).15 E(xits.)-.15 E .032
-(If an attempt to e)108 708 R(xit)-.15 E F1(bash)2.532 E F0 .032
-(is made while jobs are stopped \(or)2.532 F 2.533(,i)-.4 G 2.533(ft)
--2.533 G(he)-2.533 E F1(checkjobs)2.533 E F0 .033
-(shell option has been enabled)2.533 F 2.02(using the)108 720 R F1
-(shopt)4.52 E F0 -.2(bu)4.52 G 2.02
-(iltin, running\), the shell prints a w).2 F 2.019
-(arning message, and, if the)-.1 F F1(checkjobs)4.519 E F0 2.019
-(option is)4.519 F(GNU Bash-3.2)72 768 Q(2008 February 22)138.46 E(30)
-188.45 E 0 Cg EP
+.63 E(')-.63 E F0(.)A .13(The shell learns immediately whene)108 655.2 R
+-.15(ve)-.25 G 2.63(raj).15 G .13(ob changes state.)-2.63 F(Normally)
+5.131 E(,)-.65 E F1(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 667.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 F1<ad62>2.657 E F0 .157
+(option to)2.657 F(the)108 679.2 Q F1(set)3.951 E F0 -.2(bu)3.951 G
+1.451(iltin command is enabled,).2 F F1(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 F4(SIGCHLD)3.952 E F0(is)3.702 E -.15
+(exe)108 691.2 S(cuted for each child that e).15 E(xits.)-.15 E .033
+(If an attempt to e)108 708 R(xit)-.15 E F1(bash)2.533 E F0 .033
+(is made while jobs are stopped \(or)2.533 F 2.532(,i)-.4 G 2.532(ft)
+-2.532 G(he)-2.532 E F1(checkjobs)2.532 E F0 .032
+(shell option has been enabled)2.532 F 2.019(using the)108 720 R F1
+(shopt)4.519 E F0 -.2(bu)4.519 G 2.019
+(iltin, running\), the shell prints a w).2 F 2.02
+(arning message, and, if the)-.1 F F1(checkjobs)4.52 E F0 2.02
+(option is)4.52 F(GNU Bash-3.2)72 768 Q(2008 April 5)148.455 E(30)
+198.445 E 0 Cg EP
 %%Page: 31 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 .458(enabled, lists the jobs and their statuses.)108 84 R(The)
-5.458 E/F1 10/Times-Bold@0 SF(jobs)2.958 E F0 .459
-(command may then be used to inspect their status.)2.958 F .459(If a)
-5.459 F .604(second attempt to e)108 96 R .604
+-.35 E .459(enabled, lists the jobs and their statuses.)108 84 R(The)
+5.459 E/F1 10/Times-Bold@0 SF(jobs)2.959 E F0 .458
+(command may then be used to inspect their status.)2.958 F .458(If a)
+5.458 F .603(second attempt to e)108 96 R .604
 (xit is made without an interv)-.15 F .604
 (ening command, the shell does not print another w)-.15 F(arning,)-.1 E
 (and an)108 108 Q 2.5(ys)-.15 G(topped jobs are terminated.)-2.5 E/F2
-10.95/Times-Bold@0 SF(PR)72 124.8 Q(OMPTING)-.329 E F0 .644(When e)108
-136.8 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
+10.95/Times-Bold@0 SF(PR)72 124.8 Q(OMPTING)-.329 E F0 .645(When e)108
+136.8 R -.15(xe)-.15 G .645(cuting interacti).15 F -.15(ve)-.25 G(ly).15
+E(,)-.65 E F1(bash)3.145 E F0 .645(displays the primary prompt)3.145 F
 /F3 9/Times-Bold@0 SF(PS1)3.145 E F0 .645
-(when it is ready to read a command,)2.895 F 1.826
-(and the secondary prompt)108 148.8 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\
+(when it is ready to read a command,)2.895 F 1.825
+(and the secondary prompt)108 148.8 R F3(PS2)4.325 E F0 1.825
+(when it needs more input to complete a command.)4.075 F F1(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 160.8 R(decoded as follo)108 172.8 Q(ws:)-.25 E F1(\\a)144
 184.8 Q F0(an ASCII bell character \(07\))28.22 E F1(\\d)144 196.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 208.8 Q/F4 10/Times-Italic@0 SF(format)
-A F1(})A F0(the)180 220.8 Q F4(format)3.927 E F0 1.427(is passed to)
-3.927 F F4(strftime)3.927 E F0 1.427
+A F1(})A F0(the)180 220.8 Q F4(format)3.926 E F0 1.426(is passed to)
+3.926 F F4(strftime)3.926 E F0 1.427
 (\(3\) and the result is inserted into the prompt string; an)B(empty)180
 232.8 Q F4(format)2.5 E F0
 (results in a locale-speci\214c time representation.)2.5 E
@@ -3827,77 +3827,77 @@ E F1(\\!)144 448.8 Q F0(the history number of this command)29.89 E F1
 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 520.8 Q F1(\\])144 532.8 Q F0
-(end a sequence of non-printing characters)29.89 E .12
+(end a sequence of non-printing characters)29.89 E .119
 (The command number and the history number are usually dif)108 549.6 R
-.119(ferent: the history number of a command is its)-.25 F 1.585(positi\
-on in the history list, which may include commands restored from the hi\
-story \214le \(see)108 561.6 R F3(HIST)4.085 E(OR)-.162 E(Y)-.315 E F0
+.12(ferent: the history number of a command is its)-.25 F 1.585(positio\
+n in the history list, which may include commands restored from the his\
+tory \214le \(see)108 561.6 R F3(HIST)4.084 E(OR)-.162 E(Y)-.315 E F0
 (belo)108 573.6 Q .541(w\), while the command number is the position in\
- the sequence of commands e)-.25 F -.15(xe)-.15 G .54
+ 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 585.6 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 597.6 R .352(xpansion, and quote remo)-.15 F
+.351(tion, arithmetic e)108 597.6 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 .351(shell option \(see the)2.852
+(pr)2.852 E(omptv)-.18 E(ars)-.1 E F0 .352(shell option \(see the)2.852
 F(description of the)108 609.6 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 F2(READLINE)72 626.4 Q F0 .15
+-.25 E F2(READLINE)72 626.4 Q F0 .151
 (This is the library that handles reading input when using an interacti)
-108 638.4 R .451 -.15(ve s)-.25 H .151(hell, unless the).15 F F1
-(\255\255noediting)2.651 E F0(option)2.651 E .067(is gi)108 650.4 R -.15
-(ve)-.25 G 2.567(na).15 G 2.566(ts)-2.567 G .066(hell in)-2.566 F -.2
+108 638.4 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 650.4 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 662.4 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 662.4 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 F1 .566
-(+o emacs)3.066 F F0(or)108 674.4 Q F1(+o vi)2.5 E F0(options to the)2.5
+(ine editing after the shell is running, use the)-3.065 F F1 .565
+(+o emacs)3.065 F F0(or)108 674.4 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 691.2 Q F0 .568
+(Readline Notation)87 691.2 Q F0 .567
 (In this section, the emacs-style notation is used to denote k)108 703.2
-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 -.1(ke)C(y)-.2 E F0(,)A 1.152
-(e.g., C\255n means Control\255N.)108 715.2 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 727.2 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(GNU Bash-3.2)72 768 Q(2008 February 22)138.46 E
-(31)188.45 E 0 Cg EP
+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 F4 -.1(ke)C(y)-.2 E F0(,)A 1.153
+(e.g., C\255n means Control\255N.)108 715.2 R(Similarly)6.153 E(,)-.65 E
+F4(meta)4.033 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.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 727.2 S .83
+(yboards without a)-.05 F F4(meta)3.71 E F0 -.1(ke)3.59 G 2.13 -.65
+(y, M)-.05 H<ad>.65 E F4(x)A F0 .83(means ESC)3.33 F F4(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 F4(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(GNU Bash-3.2)72 768 Q(2008 April 5)148.455 E
+(31)198.445 E 0 Cg EP
 %%Page: 32 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 .599(ESC the)108 84 R/F1 10/Times-Italic@0 SF .599(meta pr)3.099
-F(e\214x)-.37 E F0 5.599(.T)C .599(he combination M\255C\255)-5.599 F F1
-(x)A F0 .599(means ESC\255Control\255)3.099 F F1(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
+-.35 E .6(ESC the)108 84 R/F1 10/Times-Italic@0 SF .6(meta pr)3.1 F
+(e\214x)-.37 E F0 5.6(.T)C .6(he combination M\255C\255)-5.6 F F1(x)A F0
+.599(means ESC\255Control\255)3.099 F F1(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 96 Q .3 -.15(ey w)-.1 H
 (hile pressing the).15 E F1(x)3.27 E F0 -.1(ke)3.03 G -.65(y.)-.05 G(\))
-.65 E .62(Readline commands may be gi)108 112.8 R -.15(ve)-.25 G 3.119
+.65 E .619(Readline commands may be gi)108 112.8 R -.15(ve)-.25 G 3.119
 (nn).15 G(umeric)-3.119 E F1(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 124.8 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
+.619(hich normally act as a repeat count.)-3.119 F(Sometimes,)5.62 E(ho)
+108 124.8 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 136.8 R 1.018
+(ument to a command that).18 F 1.018(acts in the forw)108 136.8 R 1.018
 (ard direction \(e.g.,)-.1 F/F2 10/Times-Bold@0 SF(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 148.8 Q
+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 148.8 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 165.6 R F1
+-.25 E -.65(w.)-.25 G .812(When a command is described as)108 165.6 R F1
 (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 F1
-(yank-)-3.312 E(ing)108 177.6 Q F0 2.529(\). The)B .029(killed te)2.529
+(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 F1
+(yank-)-3.311 E(ing)108 177.6 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 F1
 .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,)
@@ -3906,23 +3906,23 @@ F .029(xt is sa)-.15 F -.15(ve)-.2 G 2.529(di).15 G 2.529(na)-2.529 G F1
 (xt separate the chunks of te)-.15 F .567(xt on the kill)-.15 F(ring.)
 108 201.6 Q F2(Readline Initialization)87 218.4 Q F0 .091(Readline is c\
 ustomized by putting commands in an initialization \214le \(the)108
-230.4 R F1(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 242.4 R .196(en from the v)
+230.4 R F1(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 242.4 R .196(en from the v)
 -.1 F .196(alue of the)-.25 F/F3 9/Times-Bold@0 SF(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 F1(~/.inputr)2.696
-E(c)-.37 E F0 5.196(.W).31 G .197(hen a)-5.196 F 1.034(program which us\
+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 254.4 R 1.334 -.15(ey b)-.1 H 1.034(indings and).15 F -.25
-(va)108 266.4 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
+nd the k)108 254.4 R 1.335 -.15(ey b)-.1 H 1.035(indings and).15 F -.25
+(va)108 266.4 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 278.4 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 290.4 R
+(Lines be)5.737 F .737(ginning with a)-.15 F F2($)3.237 E F0 .737
+(indicate conditional)3.237 F 2.5(constructs. Other)108 290.4 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 307.2 R .986(ault k)-.1 F
+(ariable settings.)-.25 E .987(The def)108 307.2 R .987(ault k)-.1 F
 -.15(ey)-.1 G .987(-bindings may be changed with an).15 F F1(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 319.2 Q
@@ -3932,11 +3932,11 @@ G(rsal\255ar).15 E(gument)-.18 E(or)108 364.8 Q(C\255Meta\255u: uni)144
 376.8 Q -.15(ve)-.25 G(rsal\255ar).15 E(gument)-.18 E(into the)108 388.8
 Q F1(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.261(The follo)
+(univer)2.5 E(sal\255ar)-.1 E(gument)-.37 E F0(.).68 E 1.26(The follo)
 108 405.6 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.76 E F0
-(,).73 E F1(RET)3.76 E F0(,)1.27 E F1(RETURN)108 417.6 Q F0(,)1.1 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 417.6 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 434.4 R .209(ws k)-.25
@@ -3947,54 +3947,54 @@ F -.15(ey)-.1 G 2.709(st).15 G 2.709(ob)-2.709 G 2.709(eb)-2.709 G .209
 (The syntax for controlling k)108 475.2 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 487.2 R .383(xt of a macro and a k)
+5.366 F .383(command or the te)108 487.2 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 499.2 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 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 511.2 Q 1.541(When using the form)108 528 R F2
--.1(ke)4.041 G(yname).1 E F0(:)A F1(function\255name).833 E F0(or)4.041
+(ey)-.1 G(sequence.)108 511.2 Q 1.542(When using the form)108 528 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.842 -.15(ey s)-.1 H 1.542(pelled out in)
+(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 540 R(or e)-.15 E(xample:)-.15 E
 (Control-u: uni)144 564 Q -.15(ve)-.25 G(rsal\255ar).15 E(gument)-.18 E
 (Meta-Rubout: backw)144 576 Q(ard-kill-w)-.1 E(ord)-.1 E
-(Control-o: "> output")144 588 Q .699(In the abo)108 604.8 R .998 -.15
+(Control-o: "> output")144 588 Q .698(In the abo)108 604.8 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 616.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
+(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
 628.8 Q(xt)-.15 E/F4 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 645.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
+(into the line\).)2.5 E .055(In the second form,)108 645.6 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 657.6 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 669.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
+(Some)6.284 E .385(GNU Emacs style k)108 669.6 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 681.6 Q("\\C\255u": uni)144 705.6 Q -.15(ve)
 -.25 G(rsal\255ar).15 E(gument)-.18 E
 ("\\C\255x\\C\255r": re\255read\255init\255\214le)144 717.6 Q
 ("\\e[11~": "Function K)144 729.6 Q .3 -.15(ey 1)-.25 H(").15 E
-(GNU Bash-3.2)72 768 Q(2008 February 22)138.46 E(32)188.45 E 0 Cg EP
+(GNU Bash-3.2)72 768 Q(2008 April 5)148.455 E(32)198.445 E 0 Cg EP
 %%Page: 33 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 .314(In this e)108 84 R(xample,)-.15 E/F1 10/Times-Italic@0 SF
-(C\255u)2.654 E F0 .314(is ag)3.064 F .315(ain bound to the function)
+-.35 E .315(In this e)108 84 R(xample,)-.15 E/F1 10/Times-Italic@0 SF
+(C\255u)2.655 E F0 .315(is ag)3.065 F .315(ain bound to the function)
 -.05 F/F2 10/Times-Bold@0 SF(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 96 Q F2 -.18(re)2.5 G<ad72>.18 E
+(gument)-.1 E F0(.)A F1 .315(C\255x C\255r)5.155 F F0 .314
+(is bound to the func-)3.544 F(tion)108 96 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 10/Courier@0 SF
 (Function Key 1)2.5 E F0(.)A
@@ -4014,3575 +4014,3617 @@ 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 321.6 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
+(\(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 338.4 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 350.4 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
+ quotes must be used to indicate a macro de\214nition.)-.15 F .09
+(Unquoted te)108 350.4 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
 362.4 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
-F2(Bash)108 379.2 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 391.2 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
+F2(Bash)108 379.2 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 F2(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 391.2 R .346 -.15
+(ve u)-.25 H .046(se by using the).15 F F2<ad6f>2.545 E F0 .045
+(option to the)2.545 F F2(set)2.545 E F0 -.2(bu)2.545 G .045
 (iltin command).2 F(\(see)108 403.2 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 420 Q(ariables)-.92 E F0 .044(Readline has v)108 432 R
+(Readline V)87 420 Q(ariables)-.92 E F0 .043(Readline has v)108 432 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 444 Q(c)-.37 E
+(riable may be set in the).25 F F1(inpu-)2.554 E(tr)108 444 Q(c)-.37 E
 F0(\214le with a statement of the form)2.81 E F2(set)144 460.8 Q F1
 (variable\255name value)2.5 E F0 .79(Except where noted, readline v)108
 477.6 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 489.6 R .448(ariable names are ignored.)-.25 F
+5.79 E .448(nized v)108 489.6 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 501.6 Q -.15(ve)-.25 G .467(\), and "1" are equi).15 F
+(alue is read, empty or null v)-.25 F .449(alues, "on" \(case-insensi-)
+-.25 F(ti)108 501.6 Q -.15(ve)-.25 G .468(\), 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
+(lent to).25 F F2(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 513.6 S(lues are:)
-.25 E F2(bell\255style \(audible\))108 530.4 Q F0 .011
+.25 E F2(bell\255style \(audible\))108 530.4 Q F0 .01
 (Controls what happens when readline w)144 542.4 R .011
-(ants to ring the terminal bell.)-.1 F .01(If set to)5.01 F F2(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 554.4 R .94(If set to)5.94 F F2(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 F2(audible)3.44 E F0(,)A
-(readline attempts to ring the terminal')144 566.4 Q 2.5(sb)-.55 G(ell.)
--2.5 E F2(bind\255tty\255special\255chars \(On\))108 578.4 Q F0 .056
-(If set to)144 590.4 R F2(On)2.556 E F0 2.556(,r)C .056(eadline attempt\
-s 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 602.4 Q -.15
+(ants to ring the terminal bell.)-.1 F .011(If set to)5.011 F F2(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 554.4 R .94(If set to)5.94 F F2(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 F2(audible)3.44 E F0
+(,)A(readline attempts to ring the terminal')144 566.4 Q 2.5(sb)-.55 G
+(ell.)-2.5 E F2(bind\255tty\255special\255chars \(On\))108 578.4 Q F0
+.055(If set to)144 590.4 R F2(On)2.555 E F0 2.555(,r)C .056(eadline att\
+empts 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 602.4 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 F2(comment\255begin \(`)108 614.4 Q(`#')-.63 E('\))
--.63 E F0 .884(The string that is inserted when the readline)144 626.4 R
-F2(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 638.4 Q F2
+-.63 E F0 .885(The string that is inserted when the readline)144 626.4 R
+F2(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 638.4 Q F2
 (M\255#)2.5 E F0(in emacs mode and to)2.5 E F2(#)2.5 E F0
 (in vi command mode.)2.5 E F2(completion\255ignor)108 650.4 Q
 (e\255case \(Off\))-.18 E F0(If set to)144 662.4 Q F2(On)2.5 E F0 2.5
 (,r)C(eadline performs \214lename matching and completion in a case\255\
 insensiti)-2.5 E .3 -.15(ve f)-.25 H(ashion.).05 E F2
-(completion\255query\255items \(100\))108 674.4 Q F0 .53
-(This determines when the user is queried about vie)144 686.4 R .529
-(wing the number of possible completions gen-)-.25 F .56(erated by the)
-144 698.4 R F2(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 710.4 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 722.4 S .237
+(completion\255query\255items \(100\))108 674.4 Q F0 .529
+(This determines when the user is queried about vie)144 686.4 R .53
+(wing the number of possible completions gen-)-.25 F .561(erated by the)
+144 698.4 R F2(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
+710.4 R .783(If the number of possible completions is greater than or e\
+qual to the v)5.782 F .783(alue of this)-.25 F -.25(va)144 722.4 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(GNU Bash-3.2)72 768 Q(2008 February 22)
-138.46 E(33)188.45 E 0 Cg EP
+.237(re simply listed)-2.737 F(GNU Bash-3.2)72 768 Q(2008 April 5)
+148.455 E(33)198.445 E 0 Cg EP
 %%Page: 34 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(on the terminal.)144 84 Q/F1 10/Times-Bold@0 SF(con)108 96 Q -.1
-(ve)-.4 G(rt\255meta \(On\)).1 E F0 .613(If set to)144 108 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
+(ve)-.4 G(rt\255meta \(On\)).1 E F0 .612(If set to)144 108 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 120 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 132 Q F0(\).)A F1
+.541(meta pr)3.041 F(e-)-.37 E<8c78>144 132 Q F0(\).)A F1
 (disable\255completion \(Off\))108 144 Q F0 .038(If set to)144 156 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 168 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 180 Q F0 .252
+(.)A F1(editing\255mode \(emacs\))108 180 Q F0 .253
 (Controls whether readline be)144 192 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
+.553 -.15(ey b)-.1 H .253(indings similar to).15 F F2(emacs)2.752 E F0
+(or)2.752 E F2(vi)2.752 E F0(.)A F1(editing\255mode)5.252 E F0
 (can be set to either)144 204 Q F1(emacs)2.5 E F0(or)2.5 E F1(vi)2.5 E
-F0(.)A F1(enable\255k)108 216 Q(eypad \(Off\))-.1 E F0 .893(When set to)
+F0(.)A F1(enable\255k)108 216 Q(eypad \(Off\))-.1 E F0 .892(When set to)
 144 228 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
+.893(pad when it is called.).15 F .893(Some sys-)5.893 F
 (tems need this to enable the arro)144 240 Q 2.5(wk)-.25 G -.15(ey)-2.6
 G(s.).15 E F1(expand\255tilde \(Off\))108 252 Q F0(If set to)144 264 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 276 Q(eser)-.18 E -.1(ve)-.1 G
-(\255point \(Off\)).1 E F0 1.492(If set to)144 288 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 300 Q -.15(ve)-.25 G 2.5
+(\255point \(Off\)).1 E F0 1.493(If set to)144 288 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 300 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 312 Q
-(oll\255mode \(Off\))-.18 E F0 .449(When set to)144 324 R F1(On)2.949 E
-F0 2.949(,m)C(ak)-2.949 E .448
+(or)2.5 E F1(next-history)2.5 E F0(.)A F1(history\255size \(0\))108 312
+Q F0 .462(Set the maximum number of history entries sa)144 324 R -.15
+(ve)-.2 G 2.963(di).15 G 2.963(nt)-2.963 G .463(he history list.)-2.963
+F .463(If set to zero, the number of)5.463 F
+(entries in the history list is not limited.)144 336 Q F1
+(horizontal\255scr)108 348 Q(oll\255mode \(Off\))-.18 E F0 .449
+(When set to)144 360 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
 (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 336 R(w)-.25 E(line.)144 348 Q F1(input\255meta \(Off\))108 360
-Q F0 .228(If set to)144 372 R F1(On)2.728 E F0 2.728(,r)C .227(eadline \
+ ne)144 372 R(w)-.25 E(line.)144 384 Q F1(input\255meta \(Off\))108 396
+Q F0 .228(If set to)144 408 R F1(On)2.728 E F0 2.728(,r)C .227(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 384 R -.05
+rom the char)-2.728 F(-)-.2 E .956(acters it reads\), re)144 420 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 396 Q(ym for this v)-.15 E(ariable.)-.25 E F1(isear)108 408 Q
+(synon)144 432 Q(ym for this v)-.15 E(ariable.)-.25 E F1(isear)108 444 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 420 R -.15(xe)-.15 G(cut-).15 E .934
-(ing the character as a command.)144 432 R .935(If this v)5.935 F .935
+thout subsequently e)144 456 R -.15(xe)-.15 G(cut-).15 E .934
+(ing the character as a command.)144 468 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 444 Q F2
+(alue, the characters)-3.685 F F2(ESC)3.435 E F0(and)144 480 Q F2
 (C\255J)2.5 E F0(will terminate an incremental search.)2.5 E F1 -.1(ke)
-108 456 S(ymap \(emacs\)).1 E F0 2.021(Set the current readline k)144
-468 R -.15(ey)-.1 G 4.521(map. The).15 F 2.021(set of v)4.521 F 2.021
+108 492 S(ymap \(emacs\)).1 E F0 2.021(Set the current readline k)144
+504 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 480 R F0 2.568(,a)C
+(emacs\255meta, emacs\255ctlx, vi, vi\255command)144 516 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 492 R -.25(va)-.25
+2.569 E F0(;)A F2(emacs)2.569 E F0 1.544(is equi)144 528 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
 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 504 Q(fects the def)-.25
-E(ault k)-.1 E -.15(ey)-.1 G(map.).15 E F1(mark\255dir)108 516 Q
-(ectories \(On\))-.18 E F0(If set to)144 528 Q F1(On)2.5 E F0 2.5(,c)C
+(editing\255mode)4.043 E F0(also)4.043 E(af)144 540 Q(fects the def)-.25
+E(ault k)-.1 E -.15(ey)-.1 G(map.).15 E F1(mark\255dir)108 552 Q
+(ectories \(On\))-.18 E F0(If set to)144 564 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 540 Q F0(If set to)144
-552 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 576 Q F0(If set to)144
+588 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 564 Q(ed\255dir)-.1 E
-(ectories \(Off\))-.18 E F0 .175(If set to)144 576 R F1(On)2.675 E F0
+(*)A F0(\).)A F1(mark\255symlink)108 600 Q(ed\255dir)-.1 E
+(ectories \(Off\))-.18 E F0 .175(If set to)144 612 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 588
+-.15(ve a s)-.2 H .175(lash appended \(sub-).15 F(ject to the v)144 624
 Q(alue of)-.25 E F1(mark\255dir)2.5 E(ectories)-.18 E F0(\).)A F1
-(match\255hidden\255\214les \(On\))108 600 Q F0 .193(This v)144 612 R
+(match\255hidden\255\214les \(On\))108 636 Q F0 .193(This v)144 648 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
 (\214les\) when performing \214lename completion, unless the leading `.)
-144 624 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 636
-Q F1(output\255meta \(Off\))108 648 Q F0 .507(If set to)144 660 R F1(On)
+144 660 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 672
+Q F1(output\255meta \(Off\))108 684 Q F0 .507(If set to)144 696 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 672 Q
-(ed escape sequence.)-.15 E F1(page\255completions \(On\))108 684 Q F0
-.808(If set to)144 696 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 708 Q(GNU Bash-3.2)72 768 Q
-(2008 February 22)138.46 E(34)188.45 E 0 Cg EP
+hth bit set directly rather than as a meta-)-3.007 F(pre\214x)144 708 Q
+(ed escape sequence.)-.15 E(GNU Bash-3.2)72 768 Q(2008 April 5)148.455 E
+(34)198.445 E 0 Cg EP
 %%Page: 35 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
-(print\255completions\255horizontally \(Off\))108 84 Q F0 1.319
-(If set to)144 96 R F1(On)3.819 E F0 3.819(,r)C 1.318(eadline will disp\
-lay completions with matches sorted horizontally in alphabetical)-3.819
-F(order)144 108 Q 2.5(,r)-.4 G(ather than do)-2.5 E(wn the screen.)-.25
-E F1(sho)108 120 Q(w\255all\255if\255ambiguous \(Off\))-.1 E F0 .477
-(This alters the def)144 132 R .477(ault beha)-.1 F .477
+-.35 E/F1 10/Times-Bold@0 SF(page\255completions \(On\))108 84 Q F0 .808
+(If set to)144 96 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 108 Q F1
+(print\255completions\255horizontally \(Off\))108 120 Q F0 1.319
+(If set to)144 132 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 144 Q 2.5(,r)-.4 G(ather than do)-2.5 E(wn the screen.)-.25
+E F1(sho)108 156 Q(w\255all\255if\255ambiguous \(Off\))-.1 E F0 .477
+(This alters the def)144 168 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
 (ore).15 E 1.264(than one possible completion cause the matches to be l\
-isted immediately instead of ringing the)144 144 R(bell.)144 156 Q F1
-(sho)108 168 Q(w\255all\255if\255unmodi\214ed \(Off\))-.1 E F0 5.345
-(This alters the def)144 180 R 5.345(ault beha)-.1 F 5.345
+isted immediately instead of ringing the)144 180 R(bell.)144 192 Q F1
+(sho)108 204 Q(w\255all\255if\255unmodi\214ed \(Off\))-.1 E F0 5.345
+(This alters the def)144 216 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 192 Q(w\255all\255if\255ambiguous)-.1 E F0 6.923(.I)C
+-.1 F F1(sho)144 228 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 204 R 3.539
+(ore than one possible completion).15 F 1.039(without an)144 240 R 3.539
 (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 216 Q F1
-(visible\255stats \(Off\))108 228 Q F0 .847(If set to)144 240 R F1(On)
+s to be listed immediately instead of ringing the bell.)144 252 Q F1
+(visible\255stats \(Off\))108 264 Q F0 .847(If set to)144 276 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 10/Times-Italic@0 SF
-(stat)3.346 E F0 .846(\(2\) is appended to the \214lename)B
-(when listing possible completions.)144 252 Q F1
-(Readline Conditional Constructs)87 268.8 Q F0 .05
-(Readline implements a f)108 280.8 R .05(acility similar in spirit to t\
+(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 288 Q F1
+(Readline Conditional Constructs)87 304.8 Q F0 .05
+(Readline implements a f)108 316.8 R .05(acility similar in spirit to t\
 he conditional compilation features of the C preprocessor)-.1 F .097
-(which allo)108 292.8 R .097(ws k)-.25 F .396 -.15(ey b)-.1 H .096
+(which allo)108 328.8 R .097(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 304.8 Q -.15(ve)-.25 G 2.5
-(su).15 G(sed.)-2.5 E F1($if)108 321.6 Q F0(The)24.89 E F1($if)2.962 E
+(There are four parser)5.096 F(directi)108 340.8 Q -.15(ve)-.25 G 2.5
+(su).15 G(sed.)-2.5 E F1($if)108 357.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 333.6 R .477(The te)5.477 F .477
+(or the application using readline.)144 369.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 345.6 Q F1(mode)144 362.4 Q F0(The)
+(are required to isolate it.)144 381.6 Q F1(mode)144 398.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
 (sed to test whether readline is in emacs or vi)-3.711 F 3.065
-(mode. This)180 374.4 R .565(may be used in conjunction with the)3.065 F
+(mode. This)180 410.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 386.4 R F2(emacs\255standar)3.235 E
+3.065 F .735(set bindings in the)180 422.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 398.4
-Q F1(term)144 415.2 Q F0(The)15.46 E F1(term=)3.197 E F0 .696
+(ymaps only if readline is starting)-.05 F(out in emacs mode.)180 434.4
+Q F1(term)144 451.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 427.2 R
+(ey b)-.1 H .696(indings, perhaps to bind).15 F .654(the k)180 463.2 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 439.2 Q F1(=)3.232
+(wo)3.154 G .654(rd on the right side of).1 F(the)180 475.2 Q F1(=)3.232
 E F0 .732(is tested ag)3.232 F .732(ainst the both full name of the ter\
 minal and the portion of the terminal)-.05 F(name before the \214rst)180
-451.2 Q F1<ad>2.5 E F0 5(.T)C(his allo)-5 E(ws)-.25 E F2(sun)2.84 E F0
+487.2 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 468 Q F0(The)180 480
+2.5(,f).77 G(or instance.)-2.5 E F1(application)144 504 Q F0(The)180 516
 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
-492 R F2 .114(application name)2.614 F F0 2.614(,a)C .114
+528 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
-504 R 3(alue. This)-.25 F .501(could be used to bind k)3 F .801 -.15
+540 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 516 R -.15(Fo)5.397 G 2.896(ri).15 G .396
+(ci\214c program.)180 552 R -.15(Fo)5.397 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(current or pre)180 528 Q
-(vious w)-.25 E(ord in Bash:)-.1 E F1($if)180 552 Q F0(Bash)2.5 E 2.5
-(#Q)180 564 S(uote the current or pre)-2.5 E(vious w)-.25 E(ord)-.1 E
-("\\C\255xq": "\\eb\\"\\ef\\"")180 576 Q F1($endif)180 588 Q($endif)108
-604.8 Q F0(This command, as seen in the pre)9.33 E(vious e)-.25 E
+(ey s)-.1 H .396(equence that quotes the).15 F(current or pre)180 564 Q
+(vious w)-.25 E(ord in Bash:)-.1 E F1($if)180 588 Q F0(Bash)2.5 E 2.5
+(#Q)180 600 S(uote the current or pre)-2.5 E(vious w)-.25 E(ord)-.1 E
+("\\C\255xq": "\\eb\\"\\ef\\"")180 612 Q F1($endif)180 624 Q($endif)108
+640.8 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 621.6 Q F0(Commands in this branch of the)15.45 E F1($if)2.5 E F0
+108 657.6 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 638.4 Q F0 .356
-(This directi)144 650.4 R .656 -.15(ve t)-.25 H(ak).15 E .356
+(cuted if the test f).15 E(ails.)-.1 E F1($include)108 674.4 Q F0 .356
+(This directi)144 686.4 R .656 -.15(ve t)-.25 H(ak).15 E .356
 (es a single \214lename as an ar)-.1 F .357
 (gument and reads commands and bindings from that)-.18 F 2.5(\214le. F)
-144 662.4 R(or e)-.15 E(xample, the follo)-.15 E(wing directi)-.25 E .3
+144 698.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(/etc/inputr)2.5 E(c)-.37 E F0(:)A F1
-($include)144 686.4 Q F2(/etc/inputr)5.833 E(c)-.37 E F1(Sear)87 703.2 Q
-(ching)-.18 E F0 .835(Readline pro)108 715.2 R .835
-(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 727.2 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(GNU Bash-3.2)72 768 Q(2008 February 22)138.46 E(35)188.45 E 0 Cg EP
+($include)144 722.4 Q F2(/etc/inputr)5.833 E(c)-.37 E F0(GNU Bash-3.2)72
+768 Q(2008 April 5)148.455 E(35)198.445 E 0 Cg EP
 %%Page: 36 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 .697(Incremental searches be)108 84 R .697
+-.35 E/F1 10/Times-Bold@0 SF(Sear)87 84 Q(ching)-.18 E F0 .835
+(Readline pro)108 96 R .835
+(vides commands for searching through the command history \(see)-.15 F
+/F2 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 108 Q
+(There are tw)5 E 2.5(os)-.1 G(earch modes:)-2.5 E/F3 10/Times-Italic@0
+SF(incr)2.51 E(emental)-.37 E F0(and)3.01 E F3(non-incr)2.5 E(emental)
+-.37 E F0(.).51 E .697(Incremental searches be)108 124.8 R .697
 (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 96 R .112
+(search string is typed, readline displays the ne)108 136.8 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 108 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 120 R .224(alue of the)-.25 F/F1 10/Times-Bold@0 SF(isear)2.724 E
-(ch-terminators)-.18 E F0 -.25(va)2.724 G .224
+(incremental search requires only as man)108 148.8 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 160.8 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 132 R .66(ariable has not been assigned a v)-.25 F .66
+(If that v)108 172.8 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 144 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 156 Q 2.938 -.8(To \214)108 172.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
-184.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 196.8 R .474 -.15
-(ey s)-.1 H .174
+F .097(mental search.)108 184.8 R .096(Control-G will abort an incremen\
+tal search and restore the original line.)5.097 F .096
+(When the search is)5.096 F(terminated, the history entry containing th\
+e search string becomes the current line.)108 196.8 Q 2.938 -.8(To \214)
+108 213.6 T 1.339(nd other matching entries in the history list, type C\
+ontrol-S or Control-R as appropriate.).8 F 1.339(This will)6.339 F .675
+(search backw)108 225.6 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 237.6 R .474 -.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 208.8 R/F2 10/Times-Italic@0 SF(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 220.8 Q .653
-(Readline remembers the last incremental search string.)108 237.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 249.6 Q 2.5(ws)-.25 G
+.541(instance, a)108 249.6 R F3(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 261.6
+Q .653(Readline remembers the last incremental search string.)108 278.4
+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 290.4 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 266.4 R(The searc\
+re starting to search for matching history lines.)108 307.2 R(The searc\
 h string may be typed by the user or be part of the contents of the cur\
-rent line.)108 278.4 Q F1(Readline Command Names)87 295.2 Q F0 1.391
-(The follo)108 307.2 R 1.391
+rent line.)108 319.2 Q F1(Readline Command Names)87 336 Q F0 1.391
+(The follo)108 348 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 319.2 R .122
+3.892(ya)-.15 G(re)-3.892 E 2.622(bound. Command)108 360 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 331.2 Q F2(point)3.41 E
-F0 .91(refers to the current cursor position, and)3.41 F F2(mark)3.411 E
+(the follo)2.621 F(wing)-.25 E(descriptions,)108 372 Q F3(point)3.41 E
+F0 .91(refers to the current cursor position, and)3.41 F F3(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 343.2 Q F0 2.5
+.15 G 3.411(yt)-3.411 G(he)-3.411 E F1(set\255mark)108 384 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 360 Q(or Mo)-.25 E(ving)-.1 E
-(beginning\255of\255line \(C\255a\))108 372 Q F0(Mo)144 384 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 396 Q F0(Mo)144 408 Q .3 -.15(ve t)
--.15 H 2.5(ot).15 G(he end of the line.)-2.5 E F1 -.25(fo)108 420 S
-(rward\255char \(C\255f\)).25 E F0(Mo)144 432 Q .3 -.15(ve f)-.15 H(orw)
-.15 E(ard a character)-.1 E(.)-.55 E F1(backward\255char \(C\255b\))108
-444 Q F0(Mo)144 456 Q .3 -.15(ve b)-.15 H(ack a character).15 E(.)-.55 E
-F1 -.25(fo)108 468 S(rward\255w).25 E(ord \(M\255f\))-.1 E F0(Mo)144 480
-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 492 Q F1(backward\255w)108 504 Q(ord \(M\255b\))
--.1 E F0(Mo)144 516 Q 1.71 -.15(ve b)-.15 H 1.41
+(xt between the point and mark is referred to as the)-.15 E F3 -.37(re)
+2.5 G(gion)-.03 E F0(.)A F1(Commands f)87 400.8 Q(or Mo)-.25 E(ving)-.1
+E(beginning\255of\255line \(C\255a\))108 412.8 Q F0(Mo)144 424.8 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 436.8 Q F0(Mo)144 448.8 Q .3 -.15
+(ve t)-.15 H 2.5(ot).15 G(he end of the line.)-2.5 E F1 -.25(fo)108
+460.8 S(rward\255char \(C\255f\)).25 E F0(Mo)144 472.8 Q .3 -.15(ve f)
+-.15 H(orw).15 E(ard a character)-.1 E(.)-.55 E F1
+(backward\255char \(C\255b\))108 484.8 Q F0(Mo)144 496.8 Q .3 -.15(ve b)
+-.15 H(ack a character).15 E(.)-.55 E F1 -.25(fo)108 508.8 S(rward\255w)
+.25 E(ord \(M\255f\))-.1 E F0(Mo)144 520.8 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 532.8 Q F1(backward\255w)108 544.8 Q
+(ord \(M\255b\))-.1 E F0(Mo)144 556.8 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 528 Q F1(clear\255scr)108 540 Q
-(een \(C\255l\))-.18 E F0 .993(Clear the screen lea)144 552 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 564 Q F1 -.18(re)108 576
-S(draw\255curr).18 E(ent\255line)-.18 E F0(Refresh the current line.)144
-588 Q F1(Commands f)87 604.8 Q(or Manipulating the History)-.25 E
-(accept\255line \(Newline, Retur)108 616.8 Q(n\))-.15 E F0 .158
-(Accept the line re)144 628.8 R -.05(ga)-.15 G .158
-(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 640.8 R/F3 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 652.8 Q F1(pr)108
-664.8 Q -.15(ev)-.18 G(ious\255history \(C\255p\)).15 E F0
-(Fetch the pre)144 676.8 Q(vious command from the history list, mo)-.25
-E(ving back in the list.)-.15 E F1(next\255history \(C\255n\))108 688.8
-Q F0(Fetch the ne)144 700.8 Q(xt command from the history list, mo)-.15
-E(ving forw)-.15 E(ard in the list.)-.1 E(GNU Bash-3.2)72 768 Q
-(2008 February 22)138.46 E(36)188.45 E 0 Cg EP
+(characters \(letters and digits\).)144 568.8 Q F1(clear\255scr)108
+580.8 Q(een \(C\255l\))-.18 E F0 .993(Clear the screen lea)144 592.8 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 604.8 Q F1 -.18(re)108
+616.8 S(draw\255curr).18 E(ent\255line)-.18 E F0
+(Refresh the current line.)144 628.8 Q F1(Commands f)87 645.6 Q
+(or Manipulating the History)-.25 E(accept\255line \(Newline, Retur)108
+657.6 Q(n\))-.15 E F0 .158(Accept the line re)144 669.6 R -.05(ga)-.15 G
+.158(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 681.6 R F2(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 693.6 Q F1(pr)108
+705.6 Q -.15(ev)-.18 G(ious\255history \(C\255p\)).15 E F0
+(Fetch the pre)144 717.6 Q(vious command from the history list, mo)-.25
+E(ving back in the list.)-.15 E(GNU Bash-3.2)72 768 Q(2008 April 5)
+148.455 E(36)198.445 E 0 Cg EP
 %%Page: 37 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(beginning\255of\255history \(M\255<\))108
-84 Q F0(Mo)144 96 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 108 Q F0(Mo)144 120 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
-132 T(erse\255sear).08 E(ch\255history \(C\255r\))-.18 E F0 1.47
-(Search backw)144 144 R 1.471(ard starting at the current line and mo)
+-.35 E/F1 10/Times-Bold@0 SF(next\255history \(C\255n\))108 84 Q F0
+(Fetch the ne)144 96 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 108 Q F0(Mo)144 120 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 132 Q F0(Mo)144 144 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
+156 T(erse\255sear).08 E(ch\255history \(C\255r\))-.18 E F0 1.47
+(Search backw)144 168 R 1.471(ard starting at the current line and mo)
 -.1 F 1.471(ving `up' through the history as necessary)-.15 F(.)-.65 E
-(This is an incremental search.)144 156 Q F1 -.25(fo)108 168 S
+(This is an incremental search.)144 180 Q F1 -.25(fo)108 192 S
 (rward\255sear).25 E(ch\255history \(C\255s\))-.18 E F0 1.132
-(Search forw)144 180 R 1.132(ard starting at the current line and mo)-.1
+(Search forw)144 204 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 192 Q F1(non\255incr)108
-204 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 216 R .164(ar\
+F(.)-.65 E(This is an incremental search.)144 216 Q F1(non\255incr)108
+228 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 240 R .164(ar\
 d through the history starting at the current line using a non-incremen\
-tal search for)-.1 F 2.5(as)144 228 S(tring supplied by the user)-2.5 E
-(.)-.55 E F1(non\255incr)108 240 Q(emental\255f)-.18 E(orward\255sear)
--.25 E(ch\255history \(M\255n\))-.18 E F0 1.354(Search forw)144 252 R
+tal search for)-.1 F 2.5(as)144 252 S(tring supplied by the user)-2.5 E
+(.)-.55 E F1(non\255incr)108 264 Q(emental\255f)-.18 E(orward\255sear)
+-.25 E(ch\255history \(M\255n\))-.18 E F0 1.354(Search forw)144 276 R
 1.354(ard through the history using a non-incremental search for a stri\
-ng supplied by the)-.1 F(user)144 264 Q(.)-.55 E F1(history\255sear)108
-276 Q(ch\255f)-.18 E(orward)-.25 E F0 .248(Search forw)144 288 R .249(a\
+ng supplied by the)-.1 F(user)144 288 Q(.)-.55 E F1(history\255sear)108
+300 Q(ch\255f)-.18 E(orward)-.25 E F0 .248(Search forw)144 312 R .249(a\
 rd through the history for the string of characters between the start o\
-f the current line)-.1 F(and the point.)144 300 Q
-(This is a non-incremental search.)5 E F1(history\255sear)108 312 Q
-(ch\255backward)-.18 E F0 .951(Search backw)144 324 R .951(ard through \
+f the current line)-.1 F(and the point.)144 324 Q
+(This is a non-incremental search.)5 E F1(history\255sear)108 336 Q
+(ch\255backward)-.18 E F0 .951(Search backw)144 348 R .951(ard through \
 the history for the string of characters between the start of the curre\
-nt)-.1 F(line and the point.)144 336 Q
-(This is a non-incremental search.)5 E F1(yank\255nth\255ar)108 348 Q
-2.5(g\()-.1 G<4dad43ad7929>-2.5 E F0 .622(Insert the \214rst ar)144 360
+nt)-.1 F(line and the point.)144 360 Q
+(This is a non-incremental search.)5 E F1(yank\255nth\255ar)108 372 Q
+2.5(g\()-.1 G<4dad43ad7929>-2.5 E F0 .622(Insert the \214rst ar)144 384
 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 372 R -.4(Wi)5.795 G .794
+.622(vious line\))-.25 F .795(at point.)144 396 R -.4(Wi)5.795 G .794
 (th an ar).4 F(gument)-.18 E/F2 10/Times-Italic@0 SF(n)3.294 E F0 3.294
 (,i).24 G .794(nsert the)-3.294 F F2(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 384 Q .291(vious command be)-.25 F .291
+(ords in the)-.1 F(pre)144 408 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 F2(n)2.791 E F0 .291(th w)B .292
-(ord from the end of)-.1 F .282(the pre)144 396 R .282(vious command.)
+(ord from the end of)-.1 F .282(the pre)144 420 R .282(vious command.)
 -.25 F .282(Once the ar)5.282 F(gument)-.18 E F2(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 F2(n)A F0(")A(history e)144 408 Q
-(xpansion had been speci\214ed.)-.15 E F1(yank\255last\255ar)108 420 Q
+(xtracted as if the "!)-.15 F F2(n)A F0(")A(history e)144 432 Q
+(xpansion had been speci\214ed.)-.15 E F1(yank\255last\255ar)108 444 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 432 R 1.307(gument to the pre)-.18 F 1.307
+(Insert the last ar)144 456 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 444 S .736(th an ar).4 F .736
+(vious history entry\).)-.25 F -.4(Wi)144 468 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 456 R .728
+(back through the history list, inserting the last ar)144 480 R .728
 (gument of each line in turn.)-.18 F .729(The history e)5.728 F(xpan-)
--.15 E .14(sion f)144 468 R .14(acilities are used to e)-.1 F .14
+-.15 E .14(sion f)144 492 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 480 Q F1
-(shell\255expand\255line \(M\255C\255e\))108 492 Q F0 .622
-(Expand the line as the shell does.)144 504 R .622
+.14(xpansion had been speci-)-.15 F(\214ed.)144 504 Q F1
+(shell\255expand\255line \(M\255C\255e\))108 516 Q F0 .622
+(Expand the line as the shell does.)144 528 R .622
 (This performs alias and history e)5.622 F .623
-(xpansion as well as all of the)-.15 F(shell w)144 516 Q(ord e)-.1 E 2.5
+(xpansion as well as all of the)-.15 F(shell w)144 540 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 F1
-(history\255expand\255line \(M\255^\))108 528 Q F0 .939
-(Perform history e)144 540 R .939(xpansion on the current line.)-.15 F
+(history\255expand\255line \(M\255^\))108 552 Q F0 .939
+(Perform history e)144 564 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.438(wf)-.25 G .938(or a descrip-)
--3.438 F(tion of history e)144 552 Q(xpansion.)-.15 E F1(magic\255space)
-108 564 Q F0 1.626(Perform history e)144 576 R 1.626
+-3.438 F(tion of history e)144 576 Q(xpansion.)-.15 E F1(magic\255space)
+108 588 Q F0 1.626(Perform history e)144 600 R 1.626
 (xpansion on the current line and insert a space.)-.15 F(See)6.627 E F3
 (HIST)4.127 E(OR)-.162 E 3.877(YE)-.315 G(XP)-3.877 E(ANSION)-.666 E F0
-(belo)144 588 Q 2.5(wf)-.25 G(or a description of history e)-2.5 E
-(xpansion.)-.15 E F1(alias\255expand\255line)108 600 Q F0 .395
-(Perform alias e)144 612 R .395(xpansion on the current line.)-.15 F
+(belo)144 612 Q 2.5(wf)-.25 G(or a description of history e)-2.5 E
+(xpansion.)-.15 E F1(alias\255expand\255line)108 624 Q F0 .395
+(Perform alias e)144 636 R .395(xpansion on the current line.)-.15 F
 (See)5.395 E F3(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 624 Q F1
-(history\255and\255alias\255expand\255line)108 636 Q F0
-(Perform history and alias e)144 648 Q(xpansion on the current line.)
--.15 E F1(insert\255last\255ar)108 660 Q(gument \(M\255.)-.1 E 2.5(,M)
-.833 G -1.667(\255_ \))-2.5 F F0 2.5(As)144 672 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 684 Q F0 .947
-(Accept the current line for e)144 696 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 708 Q(An)5 E 2.5(ya)-.15 G -.18(rg)-2.5 G
-(ument is ignored.).18 E(GNU Bash-3.2)72 768 Q(2008 February 22)138.46 E
-(37)188.45 E 0 Cg EP
+.394(or a description of alias e).15 F(xpan-)-.15 E(sion.)144 648 Q F1
+(history\255and\255alias\255expand\255line)108 660 Q F0
+(Perform history and alias e)144 672 Q(xpansion on the current line.)
+-.15 E F1(insert\255last\255ar)108 684 Q(gument \(M\255.)-.1 E 2.5(,M)
+.833 G -1.667(\255_ \))-2.5 F F0 2.5(As)144 696 S(ynon)-2.5 E(ym for)
+-.15 E F1(yank\255last\255ar)2.5 E(g)-.1 E F0(.)A(GNU Bash-3.2)72 768 Q
+(2008 April 5)148.455 E(37)198.445 E 0 Cg EP
 %%Page: 38 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
-(edit\255and\255execute\255command \(C\255xC\255e\))108 84 Q F0(In)144
-96 Q -.2(vo)-.4 G 1.226 -.1(ke a).2 H 3.526(ne).1 G 1.026
+-.35 E/F1 10/Times-Bold@0 SF(operate\255and\255get\255next \(C\255o\))
+108 84 Q F0 .947(Accept the current line for e)144 96 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 108 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 120 Q F0(In)144
+132 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 108 Q -.2(vo)-.4 G -.1(ke).2 G/F2 9/Times-Bold@0 SF
+(attempts to in)144 144 Q -.2(vo)-.4 G -.1(ke).2 G/F2 9/Times-Bold@0 SF
 ($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 124.8 Q(or Changing T)-.25 E(ext)-.92 E
-(delete\255char \(C\255d\))108 136.8 Q F0 .357
-(Delete the character at point.)144 148.8 R .358(If point is at the be)
+(Commands f)87 160.8 Q(or Changing T)-.25 E(ext)-.92 E
+(delete\255char \(C\255d\))108 172.8 Q F0 .357
+(Delete the character at point.)144 184.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 160.8 Q(as not bound to)-.1 E
+(line, and the last character typed w)144 196.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 172.8 Q F0 .553
-(Delete the character behind the cursor)144 184.8 R 5.553(.W)-.55 G .553
+A F1(backward\255delete\255char \(Rubout\))108 208.8 Q F0 .553
+(Delete the character behind the cursor)144 220.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 196.8 Q F1 -.25(fo)108 208.8 S
+.552(xt on)-.15 F(the kill ring.)144 232.8 Q F1 -.25(fo)108 244.8 S
 (rward\255backward\255delete\255char).25 E F0 .473
-(Delete the character under the cursor)144 220.8 R 2.973(,u)-.4 G .474
+(Delete the character under the cursor)144 256.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 232.8 Q F1
-(quoted\255insert \(C\255q, C\255v\))108 244.8 Q F0 .779(Add the ne)144
-256.8 R .779(xt character typed to the line v)-.15 F 3.279
+(character behind the cursor is deleted.)144 268.8 Q F1
+(quoted\255insert \(C\255q, C\255v\))108 280.8 Q F0 .779(Add the ne)144
+292.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 268.8 S(ample.).15 E F1
-(tab\255insert \(C\255v T)108 280.8 Q(AB\))-.9 E F0
-(Insert a tab character)144 292.8 Q(.)-.55 E F1
-(self\255insert \(a, b, A, 1, !, ...\))108 304.8 Q F0
-(Insert the character typed.)144 316.8 Q F1
-(transpose\255chars \(C\255t\))108 328.8 Q F0 .321
-(Drag the character before point forw)144 340.8 R .321(ard o)-.1 F -.15
+(,f)C(or)-3.278 E -.15(ex)144 304.8 S(ample.).15 E F1
+(tab\255insert \(C\255v T)108 316.8 Q(AB\))-.9 E F0
+(Insert a tab character)144 328.8 Q(.)-.55 E F1
+(self\255insert \(a, b, A, 1, !, ...\))108 340.8 Q F0
+(Insert the character typed.)144 352.8 Q F1
+(transpose\255chars \(C\255t\))108 364.8 Q F0 .321
+(Drag the character before point forw)144 376.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
 (If point is at the end of the line, then this transposes the tw)144
-352.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 364.8 Q(guments ha)-.18 E
+388.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 400.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 376.8 Q(ords \(M\255t\))-.1 E F0 .023(Drag the w)144
-388.8 R .023(ord before point past the w)-.1 F .023(ord after point, mo)
+(transpose\255w)108 412.8 Q(ords \(M\255t\))-.1 E F0 .023(Drag the w)144
+424.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 400.8 Q 2.5
-(ow)-.1 G(ords on the line.)-2.6 E F1(upcase\255w)108 412.8 Q
+(is at the end of the line, this transposes the last tw)144 436.8 Q 2.5
+(ow)-.1 G(ords on the line.)-2.6 E F1(upcase\255w)108 448.8 Q
 (ord \(M\255u\))-.1 E F0 1.699(Uppercase the current \(or follo)144
-424.8 R 1.698(wing\) w)-.25 F 4.198(ord. W)-.1 F 1.698(ith a ne)-.4 F
+460.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 436.8 S(rd, b).1
-E(ut do not mo)-.2 E .3 -.15(ve p)-.15 H(oint.).15 E F1(do)108 448.8 Q
-(wncase\255w)-.1 E(ord \(M\255l\))-.1 E F0(Lo)144 460.8 Q 1.647
+(ument, uppercase the pre).18 F(vious)-.25 E -.1(wo)144 472.8 S(rd, b).1
+E(ut do not mo)-.2 E .3 -.15(ve p)-.15 H(oint.).15 E F1(do)108 484.8 Q
+(wncase\255w)-.1 E(ord \(M\255l\))-.1 E F0(Lo)144 496.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 472.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 484.8 Q
+-.25 F(vious)-.25 E -.1(wo)144 508.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 520.8 Q
 (ord \(M\255c\))-.1 E F0 1.975(Capitalize the current \(or follo)144
-496.8 R 1.974(wing\) w)-.25 F 4.474(ord. W)-.1 F 1.974(ith a ne)-.4 F
+532.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 508.8 S(rd, b)
+(ument, capitalize the pre).18 F(vious)-.25 E -.1(wo)144 544.8 S(rd, b)
 .1 E(ut do not mo)-.2 E .3 -.15(ve p)-.15 H(oint.).15 E F1 -.1(ove)108
-520.8 S(rwrite\255mode).1 E F0 -.8(To)144 532.8 S .437(ggle o).8 F -.15
+556.8 S(rwrite\255mode).1 E F0 -.8(To)144 568.8 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 544.8 S .781(th an e).4 F .781(xplicit non-positi)-.15 F 1.081
+(Wi)144 580.8 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 556.8 Q F1(emacs)4.394 E F0(mode;)4.394 E F1(vi)
+(fects)-.25 E(only)144 592.8 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 F4 -.37(re)
 4.395 G(adline\(\)).37 E F0 1.895(starts in insert)4.395 F 3.969
-(mode. In)144 568.8 R -.15(ove)3.969 G 1.469
+(mode. In)144 604.8 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 580.8 R .957(xt to the right.)-.15 F .958
+(pushing the te)144 616.8 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 592.8
+.958(replace the character)3.458 F(before point with a space.)144 628.8
 Q(By def)5 E(ault, this command is unbound.)-.1 E F1(Killing and Y)87
-609.6 Q(anking)-.85 E(kill\255line \(C\255k\))108 621.6 Q F0
-(Kill the te)144 633.6 Q(xt from point to the end of the line.)-.15 E F1
-(backward\255kill\255line \(C\255x Rubout\))108 645.6 Q F0(Kill backw)
-144 657.6 Q(ard to the be)-.1 E(ginning of the line.)-.15 E F1
-(unix\255line\255discard \(C\255u\))108 669.6 Q F0(Kill backw)144 681.6
+645.6 Q(anking)-.85 E(kill\255line \(C\255k\))108 657.6 Q F0
+(Kill the te)144 669.6 Q(xt from point to the end of the line.)-.15 E F1
+(backward\255kill\255line \(C\255x Rubout\))108 681.6 Q F0(Kill backw)
+144 693.6 Q(ard to the be)-.1 E(ginning of the line.)-.15 E F1
+(unix\255line\255discard \(C\255u\))108 705.6 Q F0(Kill backw)144 717.6
 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 693.6 Q F0
-(Kill all characters on the current line, no matter where point is.)144
-705.6 Q(GNU Bash-3.2)72 768 Q(2008 February 22)138.46 E(38)188.45 E 0 Cg
-EP
+-2.5 G(he kill-ring.)-2.5 E(GNU Bash-3.2)72 768 Q(2008 April 5)148.455 E
+(38)198.445 E 0 Cg EP
 %%Page: 39 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(kill\255w)108 84 Q(ord \(M\255d\))-.1 E F0
-.729(Kill from point to the end of the current w)144 96 R .728
+-.35 E/F1 10/Times-Bold@0 SF(kill\255whole\255line)108 84 Q F0
+(Kill all characters on the current line, no matter where point is.)144
+96 Q F1(kill\255w)108 108 Q(ord \(M\255d\))-.1 E F0 .729
+(Kill from point to the end of the current w)144 120 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 108 S
+(xt w)-.15 F(ord.)-.1 E -.8(Wo)144 132 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 120 Q
-(ord \(M\255Rubout\))-.1 E F0(Kill the w)144 132 Q(ord behind point.)-.1
+(rward\255w).25 E(ord)-.1 E F0(.)A F1(backward\255kill\255w)108 144 Q
+(ord \(M\255Rubout\))-.1 E F0(Kill the w)144 156 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 144 Q
-(ord\255rubout \(C\255w\))-.1 E F0 .364(Kill the w)144 156 R .364
+(backward\255w)2.5 E(ord)-.1 E F0(.)A F1(unix\255w)108 168 Q
+(ord\255rubout \(C\255w\))-.1 E F0 .364(Kill the w)144 180 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
-168 Q F1(unix\255\214lename\255rubout)108 180 Q F0 .167(Kill the w)144
-192 R .166
+192 Q F1(unix\255\214lename\255rubout)108 204 Q F0 .167(Kill the w)144
+216 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 204 Q
+-.1 F .166(ord boundaries.)-.1 F(The)5.166 E(killed te)144 228 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 216 Q F0
-(Delete all spaces and tabs around point.)144 228 Q F1(kill\255r)108 240
-Q(egion)-.18 E F0(Kill the te)144 252 Q(xt in the current re)-.15 E
-(gion.)-.15 E F1(copy\255r)108 264 Q(egion\255as\255kill)-.18 E F0(Cop)
-144 276 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 240 Q F0
+(Delete all spaces and tabs around point.)144 252 Q F1(kill\255r)108 264
+Q(egion)-.18 E F0(Kill the te)144 276 Q(xt in the current re)-.15 E
+(gion.)-.15 E F1(copy\255r)108 288 Q(egion\255as\255kill)-.18 E F0(Cop)
+144 300 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 288 Q(ord)-.1 E F0(Cop)144 300 Q 4.8(yt)-.1 G
+(copy\255backward\255w)108 312 Q(ord)-.1 E F0(Cop)144 324 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 312
-Q(ord)-.1 E F0(.)A F1(copy\255f)108 324 Q(orward\255w)-.25 E(ord)-.1 E
-F0(Cop)144 336 Q 4.508(yt)-.1 G 2.008(he w)-4.508 F 2.008(ord follo)-.1
+(ord boundaries are the same as)-.1 F F1(back-)4.801 E(ward\255w)144 336
+Q(ord)-.1 E F0(.)A F1(copy\255f)108 348 Q(orward\255w)-.25 E(ord)-.1 E
+F0(Cop)144 360 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 348 Q(ord)-.1 E F0(.)A F1
-(yank \(C\255y\))108 360 Q F0 -1(Ya)144 372 S
+-.25(fo)4.507 G -.37(r-).25 G(ward\255w)144 372 Q(ord)-.1 E F0(.)A F1
+(yank \(C\255y\))108 384 Q F0 -1(Ya)144 396 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 384 Q F0
-(Rotate the kill ring, and yank the ne)144 396 Q 2.5(wt)-.25 G 2.5
+E F1(yank\255pop \(M\255y\))108 408 Q F0
+(Rotate the kill ring, and yank the ne)144 420 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 412.8 Q
-(guments)-.1 E(digit\255ar)108 424.8 Q
+F0(or)2.5 E F1(yank\255pop)2.5 E F0(.)A F1(Numeric Ar)87 436.8 Q
+(guments)-.1 E(digit\255ar)108 448.8 Q
 (gument \(M\2550, M\2551, ..., M\255\255\))-.1 E F0 .641
-(Add this digit to the ar)144 436.8 R .641
+(Add this digit to the ar)144 460.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 448.8 Q .3 -.15(ve a)-.25 H -.18(rg).15 G(ument.).18 E F1
-(uni)108 460.8 Q -.1(ve)-.1 G(rsal\255ar).1 E(gument)-.1 E F0 .779
-(This is another w)144 472.8 R .779(ay to specify an ar)-.1 F 3.279
+-.15 E(ati)144 472.8 Q .3 -.15(ve a)-.25 H -.18(rg).15 G(ument.).18 E F1
+(uni)108 484.8 Q -.1(ve)-.1 G(rsal\255ar).1 E(gument)-.1 E F0 .779
+(This is another w)144 496.8 R .779(ay to specify an ar)-.1 F 3.279
 (gument. If)-.18 F .779(this command is follo)3.279 F .778
 (wed by one or more digits,)-.25 F 1.376
 (optionally with a leading minus sign, those digits de\214ne the ar)144
-484.8 R 3.876(gument. If)-.18 F 1.376(the command is fol-)3.876 F(lo)144
-496.8 Q 1.17(wed by digits, e)-.25 F -.15(xe)-.15 G(cuting).15 E F1(uni)
+508.8 R 3.876(gument. If)-.18 F 1.376(the command is fol-)3.876 F(lo)144
+520.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 508.8 R .898
+-.2 F(-)-.2 E .898(wise ignored.)144 532.8 R .898
 (As a special case, if this command is immediately follo)5.898 F .898
 (wed by a character that is)-.25 F .243
-(neither a digit or minus sign, the ar)144 520.8 R .243
+(neither a digit or minus sign, the ar)144 544.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 532.8 Q .378
+-.15 F 5.242(.T)-.55 G(he)-5.242 E(ar)144 556.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(four)144 544.8 Q 2.5(,as)-.4 G(econd time mak)
+.378(gument count)-.18 F(four)144 568.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 561.6 Q(complete \(T)108 573.6 Q(AB\))-.9 E F0 1.137
-(Attempt to perform completion on the te)144 585.6 R 1.137
+(Completing)87 585.6 Q(complete \(T)108 597.6 Q(AB\))-.9 E F0 1.137
+(Attempt to perform completion on the te)144 609.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 597.6 Q .532(xt as a v)
+(attempts completion treating the)3.637 F(te)144 621.6 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 609.6 Q .702(xt be)-.15 F .702(gins with)-.15 F F1(@)3.202 E F0 .701
+144 633.6 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
 (If none of these pro-)5.701 F
-(duces a match, \214lename completion is attempted.)144 621.6 Q F1
-(possible\255completions \(M\255?\))108 633.6 Q F0
-(List the possible completions of the te)144 645.6 Q(xt before point.)
--.15 E F1(insert\255completions \(M\255*\))108 657.6 Q F0 .783
-(Insert all completions of the te)144 669.6 R .783
+(duces a match, \214lename completion is attempted.)144 645.6 Q F1
+(possible\255completions \(M\255?\))108 657.6 Q F0
+(List the possible completions of the te)144 669.6 Q(xt before point.)
+-.15 E F1(insert\255completions \(M\255*\))108 681.6 Q F0 .783
+(Insert all completions of the te)144 693.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
-681.6 Q F0(.)A F1(menu\255complete)108 693.6 Q F0 .929(Similar to)144
-705.6 R F1(complete)3.429 E F0 3.429(,b)C .929(ut replaces the w)-3.629
-F .929(ord to be completed with a single match from the list of)-.1 F
-1.193(possible completions.)144 717.6 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 729.6 R .828
-(At the end of the list of completions, the bell is rung)5.828 F
-(GNU Bash-3.2)72 768 Q(2008 February 22)138.46 E(39)188.45 E 0 Cg EP
+705.6 Q F0(.)A(GNU Bash-3.2)72 768 Q(2008 April 5)148.455 E(39)198.445 E
+0 Cg EP
 %%Page: 40 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 .727(\(subject to the setting of)144 84 R/F1 10/Times-Bold@0 SF
-(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 96 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 108 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 120 Q F0 .234
-(Deletes the character under the cursor if not at the be)144 132 R .234
+-.35 E/F1 10/Times-Bold@0 SF(menu\255complete)108 84 Q F0 .929
+(Similar to)144 96 R F1(complete)3.429 E F0 3.429(,b)C .929
+(ut replaces the w)-3.629 F .929
+(ord to be completed with a single match from the list of)-.1 F 1.193
+(possible completions.)144 108 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 120 R .828
+(At the end of the list of completions, the bell is rung)5.828 F .727
+(\(subject to the setting of)144 132 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 144 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 156 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 168 Q F0 .234
+(Deletes the character under the cursor if not at the be)144 180 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 144 R -.15(ve)-.2 G
+E F0(\).)A .425(If at the end of the line, beha)144 192 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
-156 Q(ault.)-.1 E F1(complete\255\214lename \(M\255/\))108 168 Q F0
-(Attempt \214lename completion on the te)144 180 Q(xt before point.)-.15
-E F1(possible\255\214lename\255completions \(C\255x /\))108 192 Q F0
-(List the possible completions of the te)144 204 Q
+204 Q(ault.)-.1 E F1(complete\255\214lename \(M\255/\))108 216 Q F0
+(Attempt \214lename completion on the te)144 228 Q(xt before point.)-.15
+E F1(possible\255\214lename\255completions \(C\255x /\))108 240 Q F0
+(List the possible completions of the te)144 252 Q
 (xt before point, treating it as a \214lename.)-.15 E F1
-(complete\255user)108 216 Q(name \(M\255~\))-.15 E F0
-(Attempt completion on the te)144 228 Q
+(complete\255user)108 264 Q(name \(M\255~\))-.15 E F0
+(Attempt completion on the te)144 276 Q
 (xt before point, treating it as a username.)-.15 E F1(possible\255user)
-108 240 Q(name\255completions \(C\255x ~\))-.15 E F0
-(List the possible completions of the te)144 252 Q
+108 288 Q(name\255completions \(C\255x ~\))-.15 E F0
+(List the possible completions of the te)144 300 Q
 (xt before point, treating it as a username.)-.15 E F1(complete\255v)108
-264 Q(ariable \(M\255$\))-.1 E F0(Attempt completion on the te)144 276 Q
+312 Q(ariable \(M\255$\))-.1 E F0(Attempt completion on the te)144 324 Q
 (xt before point, treating it as a shell v)-.15 E(ariable.)-.25 E F1
-(possible\255v)108 288 Q(ariable\255completions \(C\255x $\))-.1 E F0
-(List the possible completions of the te)144 300 Q
+(possible\255v)108 336 Q(ariable\255completions \(C\255x $\))-.1 E F0
+(List the possible completions of the te)144 348 Q
 (xt before point, treating it as a shell v)-.15 E(ariable.)-.25 E F1
-(complete\255hostname \(M\255@\))108 312 Q F0
-(Attempt completion on the te)144 324 Q
+(complete\255hostname \(M\255@\))108 360 Q F0
+(Attempt completion on the te)144 372 Q
 (xt before point, treating it as a hostname.)-.15 E F1
-(possible\255hostname\255completions \(C\255x @\))108 336 Q F0
-(List the possible completions of the te)144 348 Q
+(possible\255hostname\255completions \(C\255x @\))108 384 Q F0
+(List the possible completions of the te)144 396 Q
 (xt before point, treating it as a hostname.)-.15 E F1
-(complete\255command \(M\255!\))108 360 Q F0 .58
-(Attempt completion on the te)144 372 R .581
+(complete\255command \(M\255!\))108 408 Q F0 .58
+(Attempt completion on the te)144 420 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 384 R
+(Command comple-)5.581 F .715(tion attempts to match the te)144 432 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 396 Q -.15(xe)-.15 G
+(\214nally e)144 444 Q -.15(xe)-.15 G
 (cutable \214lenames, in that order).15 E(.)-.55 E F1
-(possible\255command\255completions \(C\255x !\))108 408 Q F0
-(List the possible completions of the te)144 420 Q
+(possible\255command\255completions \(C\255x !\))108 456 Q F0
+(List the possible completions of the te)144 468 Q
 (xt before point, treating it as a command name.)-.15 E F1
-(dynamic\255complete\255history \(M\255T)108 432 Q(AB\))-.9 E F0 .424
-(Attempt completion on the te)144 444 R .425
+(dynamic\255complete\255history \(M\255T)108 480 Q(AB\))-.9 E F0 .424
+(Attempt completion on the te)144 492 R .425
 (xt before point, comparing the te)-.15 F .425(xt ag)-.15 F .425
 (ainst lines from the history list)-.05 F
-(for possible completion matches.)144 456 Q F1
-(complete\255into\255braces \(M\255{\))108 468 Q F0 .4(Perform \214lena\
+(for possible completion matches.)144 504 Q F1
+(complete\255into\255braces \(M\255{\))108 516 Q F0 .4(Perform \214lena\
 me completion and insert the list of possible completions enclosed with\
-in braces so)144 480 R(the list is a)144 492 Q -.25(va)-.2 G
+in braces so)144 528 R(the list is a)144 540 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 508.8 S(yboard Macr).25 E(os)-.18
-E(start\255kbd\255macr)108 520.8 Q 2.5(o\()-.18 G(C\255x \()-2.5 E(\))
-.833 E F0(Be)144 532.8 Q(gin sa)-.15 E
+-.15(ve)-.15 G(\).).15 E F1 -.25(Ke)87 556.8 S(yboard Macr).25 E(os)-.18
+E(start\255kbd\255macr)108 568.8 Q 2.5(o\()-.18 G(C\255x \()-2.5 E(\))
+.833 E F0(Be)144 580.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 544.8 Q 2.5(o\()-.18 G
-(C\255x \))-2.5 E(\)).833 E F0(Stop sa)144 556.8 Q
+(board macro.).15 E F1(end\255kbd\255macr)108 592.8 Q 2.5(o\()-.18 G
+(C\255x \))-2.5 E(\)).833 E F0(Stop sa)144 604.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 568.8 Q 2.5(o\()-.18 G(C\255x e\))-2.5
-E F0(Re-e)144 580.8 Q -.15(xe)-.15 G .999(cute the last k).15 F -.15(ey)
+(call\255last\255kbd\255macr)108 616.8 Q 2.5(o\()-.18 G(C\255x e\))-2.5
+E F0(Re-e)144 628.8 Q -.15(xe)-.15 G .999(cute the last k).15 F -.15(ey)
 -.1 G .999(board macro de\214ned, by making the characters in the macro\
- appear as if).15 F(typed at the k)144 592.8 Q -.15(ey)-.1 G(board.).15
-E F1(Miscellaneous)87 609.6 Q -.18(re)108 621.6 S<ad72>.18 E
+ appear as if).15 F(typed at the k)144 640.8 Q -.15(ey)-.1 G(board.).15
+E F1(Miscellaneous)87 657.6 Q -.18(re)108 669.6 S<ad72>.18 E
 (ead\255init\255\214le \(C\255x C\255r\))-.18 E F0 1.777
-(Read in the contents of the)144 633.6 R F2(inputr)4.277 E(c)-.37 E F0
+(Read in the contents of the)144 681.6 R F2(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
-645.6 Q F1(abort \(C\255g\))108 657.6 Q F0 3.248
-(Abort the current editing command and ring the terminal')144 669.6 R
+693.6 Q F1(abort \(C\255g\))108 705.6 Q F0 3.248
+(Abort the current editing command and ring the terminal')144 717.6 R
 5.749(sb)-.55 G 3.249(ell \(subject to the setting of)-5.749 F F1
-(bell\255style)144 681.6 Q F0(\).)A F1(do\255upper)108 693.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 705.6 R F2(x)
-4.256 E F0 1.755(is lo)4.256 F 1.755
-(wercase, run the command that is bound to the corresponding)-.25 F
-(uppercase character)144 717.6 Q(.)-.55 E(GNU Bash-3.2)72 768 Q
-(2008 February 22)138.46 E(40)188.45 E 0 Cg EP
+(bell\255style)144 729.6 Q F0(\).)A(GNU Bash-3.2)72 768 Q(2008 April 5)
+148.455 E(40)198.445 E 0 Cg EP
 %%Page: 41 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(pr)108 84 Q(e\214x\255meta \(ESC\))-.18 E
-F0(Metafy the ne)144 96 Q(xt character typed.)-.15 E/F2 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 108 Q F0
-(Incremental undo, separately remembered for each line.)144 120 Q F1
--2.29 -.18(re v)108 132 T(ert\255line \(M\255r\)).08 E F0 1.095
-(Undo all changes made to this line.)144 144 R 1.095(This is lik)6.095 F
+-.35 E/F1 10/Times-Bold@0 SF(do\255upper)108 84 Q(case\255v)-.18 E
+(ersion \(M\255a, M\255b, M\255)-.1 E/F2 10/Times-Italic@0 SF(x)A F1 2.5
+(,.)C(..\))-2.5 E F0 1.756(If the meta\214ed character)144 96 R F2(x)
+4.256 E F0 1.755(is lo)4.256 F 1.755
+(wercase, run the command that is bound to the corresponding)-.25 F
+(uppercase character)144 108 Q(.)-.55 E F1(pr)108 120 Q
+(e\214x\255meta \(ESC\))-.18 E F0(Metafy the ne)144 132 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 144 Q F0
+(Incremental undo, separately remembered for each line.)144 156 Q F1
+-2.29 -.18(re v)108 168 T(ert\255line \(M\255r\)).08 E F0 1.095
+(Undo all changes made to this line.)144 180 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 156 Q F1
-(tilde\255expand \(M\255&\))108 168 Q F0(Perform tilde e)144 180 Q
+(return the line to its initial state.)144 192 Q F1
+(tilde\255expand \(M\255&\))108 204 Q F0(Perform tilde e)144 216 Q
 (xpansion on the current w)-.15 E(ord.)-.1 E F1
-(set\255mark \(C\255@, M\255<space>\))108 192 Q F0
-(Set the mark to the point.)144 204 Q(If a numeric ar)5 E
+(set\255mark \(C\255@, M\255<space>\))108 228 Q F0
+(Set the mark to the point.)144 240 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 216 Q F0(Sw)144
-228 Q .283(ap the point with the mark.)-.1 F .283
+(exchange\255point\255and\255mark \(C\255x C\255x\))108 252 Q F0(Sw)144
+264 Q .283(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 240 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 252 Q(ch \(C\255]\))-.18 E F0 3.035(Ac)144 264 S
+144 276 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 288 Q(ch \(C\255]\))-.18 E F0 3.035(Ac)144 300 S
 .535(haracter is read and point is mo)-3.035 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 276 Q(vious occurrences.)-.25 E F1(character\255sear)108 288 Q
-(ch\255backward \(M\255C\255]\))-.18 E F0 3.544(Ac)144 300 S 1.044
+144 312 Q(vious occurrences.)-.25 E F1(character\255sear)108 324 Q
+(ch\255backward \(M\255C\255]\))-.18 E F0 3.544(Ac)144 336 S 1.044
 (haracter is read and point is mo)-3.544 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
 -.05(ga)-.15 G(ti).05 E -.15(ve)-.25 G
-(count searches for subsequent occurrences.)144 312 Q F1
-(insert\255comment \(M\255#\))108 324 Q F0 -.4(Wi)144 336 S .48
+(count searches for subsequent occurrences.)144 348 Q F1
+(insert\255comment \(M\255#\))108 360 Q F0 -.4(Wi)144 372 S .48
 (thout a numeric ar).4 F .48(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 348 Q .098
+2.981 G .481(riable is inserted at the).25 F(be)144 384 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 360 R .321
+.321(the characters at the be)144 396 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 372 R F1
+-.25 F 1.014(inserted, otherwise the characters in)144 408 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 384 R 1.468
+(In either case, the line is accepted as if a ne)144 420 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 396 Q F0 .84
+1.469(alue of)-.25 F F1(com-)3.969 E(ment\255begin)144 432 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 408 Q -.15
+(gu-)-.18 E(ment causes the comment character to be remo)144 444 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 420 Q
-(ord \(M\255g\))-.1 E F0 .791(The w)144 432 R .791
+(cuted by the shell.).15 E F1(glob\255complete\255w)108 456 Q
+(ord \(M\255g\))-.1 E F0 .791(The w)144 468 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 444
+(xpansion, with an asterisk implicitly)-.15 F 2.5(appended. This)144 480
 R(pattern is used to generate a list of matching \214le names for possi\
-ble completions.)2.5 E F1(glob\255expand\255w)108 456 Q
-(ord \(C\255x *\))-.1 E F0 .372(The w)144 468 R .372
+ble completions.)2.5 E F1(glob\255expand\255w)108 492 Q
+(ord \(C\255x *\))-.1 E F0 .372(The w)144 504 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 480 R 3.016(ord. If)-.1 F 3.016
+(names is inserted, replacing the w)144 516 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 492 Q(xpansion.)-.15 E F1(glob\255list\255expansions \(C\255x g\))
-108 504 Q F0 .923(The list of e)144 516 R .923(xpansions that w)-.15 F
+144 528 Q(xpansion.)-.15 E F1(glob\255list\255expansions \(C\255x g\))
+108 540 Q F0 .923(The list of e)144 552 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 528 R 3.372(wn. If)-.15 F 3.372(an)3.372 G
+.872(the line is redra)144 564 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 540 S(pansion.).15 E F1(dump\255functions)108 552 Q F0 .627
-(Print all of the functions and their k)144 564 R .927 -.15(ey b)-.1 H
+(ex)144 576 S(pansion.).15 E F1(dump\255functions)108 588 Q F0 .627
+(Print all of the functions and their k)144 600 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 576 Q
-(ay that it can be made part of an)-.1 E/F3 10/Times-Italic@0 SF(inputr)
-2.5 E(c)-.37 E F0(\214le.)2.5 E F1(dump\255v)108 588 Q(ariables)-.1 E F0
-1.799(Print all of the settable readline v)144 600 R 1.799
+(ment is supplied, the output is formatted in such a w)144 612 Q
+(ay that it can be made part of an)-.1 E F2(inputr)2.5 E(c)-.37 E F0
+(\214le.)2.5 E F1(dump\255v)108 624 Q(ariables)-.1 E F0 1.799
+(Print all of the settable readline v)144 636 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 612 R .304
+-.25 F 1.8(If a)6.8 F .305(numeric ar)144 648 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 F3(inputr)144 624 Q(c)-.37 E F0
-(\214le.)2.5 E F1(dump\255macr)108 636 Q(os)-.18 E F0 .592
-(Print all of the readline k)144 648 R .892 -.15(ey s)-.1 H .592
+(ay that it can be made part of an)-.1 F F2(inputr)144 660 Q(c)-.37 E F0
+(\214le.)2.5 E F1(dump\255macr)108 672 Q(os)-.18 E F0 .592
+(Print all of the readline k)144 684 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 660 Q
+3.093(utput. If)-3.093 F 3.093(an)3.093 G(umeric)-3.093 E(ar)144 696 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 F3(inputr)3.027 E(c)-.37 E F0
-(\214le.)144 672 Q F1(display\255shell\255v)108 684 Q
-(ersion \(C\255x C\255v\))-.1 E F0(Display v)144 696 Q
-(ersion information about the current instance of)-.15 E F1(bash)2.5 E
-F0(.)A(GNU Bash-3.2)72 768 Q(2008 February 22)138.46 E(41)188.45 E 0 Cg
-EP
+(ay that it can be made part of an)-.1 F F2(inputr)3.027 E(c)-.37 E F0
+(\214le.)144 708 Q(GNU Bash-3.2)72 768 Q(2008 April 5)148.455 E(41)
+198.445 E 0 Cg EP
 %%Page: 42 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(Pr)87 84 Q(ogrammable Completion)-.18 E F0
-.146(When w)108 96 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 10/Times-Italic@0 SF(compspec)108 108 Q F0 3.829(\)h)C 1.329
+-.35 E/F1 10/Times-Bold@0 SF(display\255shell\255v)108 84 Q
+(ersion \(C\255x C\255v\))-.1 E F0(Display v)144 96 Q
+(ersion information about the current instance of)-.15 E F1(bash)2.5 E
+F0(.)A F1(Pr)87 112.8 Q(ogrammable Completion)-.18 E F0 .146(When w)108
+124.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 10/Times-Italic@0 SF(compspec)108 136.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)
 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 120 Q(acilities are in)-.1 E -.2
+-.25 F(programmable completion f)108 148.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 136.8 R .334
+(First, the command name is identi\214ed.)108 165.6 R .334
 (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 148.8 R
+(used to generate the list of possible completions for the w)108 177.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 160.8 R
+(compspec for the full pathname is searched for \214rst.)108 189.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 172.8 Q
+(attempt is made to \214nd a compspec for the portion follo)108 201.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 189.6 R 3.317(ords. If)
+ is used to generate the list of matching w)108 218.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
-201.6 Q(ault)-.1 E F1(bash)2.5 E F0(completion as described abo)2.5 E .3
+230.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 218.4
+.463(First, the actions speci\214ed by the compspec are used.)108 247.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 230.4 R .596
+.464(ord being)-.1 F .596(completed are returned.)108 259.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
 (option is used for \214lename or directory name completion, the)3.095 F
-(shell v)108 242.4 Q(ariable)-.25 E F3(FIGNORE)2.5 E F0
-(is used to \214lter the matches.)2.25 E(An)108 259.2 Q 2.585(yc)-.15 G
+(shell v)108 271.2 Q(ariable)-.25 E F3(FIGNORE)2.5 E F0
+(is used to \214lter the matches.)2.25 E(An)108 288 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 271.2 R
+(rds).1 E .844(generated by the pattern need not match the w)108 300 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 283.2 Q(ut the)-.2 E F3
-(FIGNORE)2.5 E F0 -.25(va)2.25 G(riable is used.).25 E(Ne)108 300 Q .32
+(not used to \214lter the matches, b)108 312 Q(ut the)-.2 E F3(FIGNORE)
+2.5 E F0 -.25(va)2.25 G(riable is used.).25 E(Ne)108 328.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 312 R F3(IFS)2.913 E F0 .412(special v)2.663 F .412
+108 340.8 R F3(IFS)2.913 E F0 .412(special v)2.663 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 324 R .091(xpansion, tilde e)-.15 F .092
+(using brace e)108 352.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 336
-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 348 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, command substitution, and arith-)-.15 F 1.397(metic e)108
+364.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
+376.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 360 Q
+(ord being com-)-.1 F(pleted, and the matching w)108 388.8 Q
 (ords become the possible completions.)-.1 E 1.238
-(After these matches ha)108 376.8 R 1.538 -.15(ve b)-.2 H 1.238
+(After these matches ha)108 405.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 3.375(options is in)108 388.8 R -.2
+F0(and)3.737 E F1<ad43>3.737 E F0 3.375(options is in)108 417.6 R -.2
 (vo)-.4 G -.1(ke).2 G 5.875(d. When).1 F 3.375
 (the command or function is in)5.875 F -.2(vo)-.4 G -.1(ke).2 G 3.375
 (d, the).1 F F3(COMP_LINE)5.876 E F4(,)A F3(COMP_POINT)5.626 E F4(,)A F3
-(COMP_KEY)108 400.8 Q F4(,)A F0(and)2.408 E F3(COMP_TYPE)2.658 E F0 -.25
+(COMP_KEY)108 429.6 Q F4(,)A F0(and)2.408 E F3(COMP_TYPE)2.658 E F0 -.25
 (va)2.408 G .157(riables are assigned v).25 F .157
 (alues as described abo)-.25 F .457 -.15(ve u)-.15 H(nder).15 E F1 .157
 (Shell V)2.657 F(ariables)-.92 E F0 5.157(.I)C(f)-5.157 E 3.485(as)108
-412.8 S .986(hell function is being in)-3.485 F -.2(vo)-.4 G -.1(ke).2 G
+441.6 S .986(hell function is being in)-3.485 F -.2(vo)-.4 G -.1(ke).2 G
 .986(d, the).1 F F3(COMP_W)3.486 E(ORDS)-.09 E F0(and)3.236 E F3
 (COMP_CW)3.486 E(ORD)-.09 E F0 -.25(va)3.236 G .986
 (riables are also set.).25 F(When)5.986 E .609
-(the function or command is in)108 424.8 R -.2(vo)-.4 G -.1(ke).2 G .608
+(the function or command is in)108 453.6 R -.2(vo)-.4 G -.1(ke).2 G .608
 (d, the \214rst ar).1 F .608(gument is the name of the command whose ar)
 -.18 F .608(guments are)-.18 F .073(being completed, the second ar)108
-436.8 R .073(gument is the w)-.18 F .073
+465.6 R .073(gument is the w)-.18 F .073
 (ord being completed, and the third ar)-.1 F .073(gument is the w)-.18 F
-.073(ord pre-)-.1 F .608(ceding the w)108 448.8 R .607
+.073(ord pre-)-.1 F .608(ceding the w)108 477.6 R .607
 (ord being completed on the current command line.)-.1 F .607
-(No \214ltering of the generated completions)5.607 F(ag)108 460.8 Q .093
+(No \214ltering of the generated completions)5.607 F(ag)108 489.6 Q .093
 (ainst the w)-.05 F .093(ord being completed is performed; the function\
  or command has complete freedom in generat-)-.1 F(ing the matches.)108
-472.8 Q(An)108 489.6 Q 2.938(yf)-.15 G .437(unction speci\214ed with)
+501.6 Q(An)108 518.4 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 501.6 Q F1(compgen)2.956 E F0 -.2
+(acilities, including)-.1 F(the)108 530.4 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 F3(COMPREPL)108
-513.6 Q(Y)-.828 E F0(array v)2.25 E(ariable.)-.25 E(Ne)108 530.4 Q .081
+542.4 Q(Y)-.828 E F0(array v)2.25 E(ariable.)-.25 E(Ne)108 559.2 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 542.4 R .359(should print a list of completions, one\
+(stitution. It)108 571.2 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 554.4 Q(wline, if necessary)-.25 E(.)-.65 E
-.377(After all of the possible completions are generated, an)108 571.2 R
+5.359 F(to escape a ne)108 583.2 Q(wline, if necessary)-.25 E(.)-.65 E
+.377(After all of the possible completions are generated, an)108 600 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 583.2 R
+E F0 .376(option is applied to the)2.876 F 3.181(list. The)108 612 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 595.2 R .523(ord being completed.)-.1 F 3.023(Al)5.523 G
+(the w)108 624 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.022(db).15 G(efore)-3.022 E .849(attempting a match.)108 607.2
-R(An)5.849 E 3.349(yc)-.15 G .849
+-.15 G 3.022(db).15 G(efore)-3.022 E .849(attempting a match.)108 636 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 619.2 Q -.05(ga)-.15 G
+(!)3.35 E F0(ne)108 648 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 636 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
+(d.).15 E(Finally)108 664.8 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 648 Q .246(If the pre)108 664.8 R .247
+possible completions.)108 676.8 Q .246(If the pre)108 693.6 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 .247(as supplied to)-.1 F F1(complete)108 676.8 Q F0
+(option w)2.747 F .247(as supplied to)-.1 F F1(complete)108 705.6 Q F0
 (when the compspec w)2.5 E
-(as de\214ned, directory name completion is attempted.)-.1 E .462
-(If the)108 693.6 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 705.6 Q 2.5(ym)-.15 G
-(atches are added to the results of the other actions.)-2.5 E .559
-(By def)108 722.4 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
-(GNU Bash-3.2)72 768 Q(2008 February 22)138.46 E(42)188.45 E 0 Cg EP
+(as de\214ned, directory name completion is attempted.)-.1 E 2.03
+(If the)108 722.4 R F1 2.03(\255o plusdirs)4.53 F F0 2.03(option w)4.53
+F 2.029(as supplied to)-.1 F F1(complete)4.529 E F0 2.029
+(when the compspec w)4.529 F 2.029(as de\214ned, directory name)-.1 F
+(GNU Bash-3.2)72 768 Q(2008 April 5)148.455 E(42)198.445 E 0 Cg EP
 %%Page: 43 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 .632(of possible completions.)108 84 R .632(The def)5.632 F(ault)
--.1 E/F1 10/Times-Bold@0 SF(bash)3.132 E F0 .631
+-.35 E(completion is attempted and an)108 84 Q 2.5(ym)-.15 G
+(atches are added to the results of the other actions.)-2.5 E .559
+(By def)108 100.8 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 112.8 R .632(The def)5.632 F(ault)-.1
+E/F1 10/Times-Bold@0 SF(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 96 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 108 S 3.172(sd).1 G .672
+(ault of \214le-)-.1 F .558(name completion is disabled.)108 124.8 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 136.8 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 .671(If the)5.671 F F1<ad6f>3.171 E(default)108 120 Q F0 1.207
+-.1 F .671(If the)5.671 F F1<ad6f>3.171 E(default)108 148.8 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.207(ault completion)-.1 F
-(will be performed if the compspec \(and, if attempted, the def)108 132
-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 148.8 R .632(tions force readl\
-ine to append a slash to completed names which are symbolic links to di\
-rectories, subject)108 160.8 R 2.762(to the v)108 172.8 R 2.762
+(will be performed if the compspec \(and, if attempted, the def)108
+160.8 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 177.6 R .632(tions force\
+ readline to append a slash to completed names which are symbolic links\
+ to directories, subject)108 189.6 R 2.762(to the v)108 201.6 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 184.8
+(rdless of the setting of the).05 F F1(mark-sym-)5.261 E(link)108 213.6
 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 201.6 Q(OR)-.197 E(Y)-.383 E F0 .371
-(When the)108 213.6 R F1 .371(\255o history)2.871 F F0 .371
+10.95/Times-Bold@0 SF(HIST)72 230.4 Q(OR)-.197 E(Y)-.383 E F0 .371
+(When the)108 242.4 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/F3
 10/Times-Italic@0 SF .372(command history)2.872 F F0(,)A .032
-(the list of commands pre)108 225.6 R .031(viously typed.)-.25 F .031
+(the list of commands pre)108 254.4 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 .429
-(mands to sa)108 237.6 R .729 -.15(ve i)-.2 H 2.929(nah).15 G .429
+(mands to sa)108 266.4 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/F4
 9/Times-Bold@0 SF(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 249.6 R .287(ariable e)-.25 F .287(xpansion \(see)-.15 F F4(EXP)
+108 278.4 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
-261.6 S 4.065(ta).2 G 1.565(fter history e)-4.065 F 1.565
+290.4 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.816 E F4(HISTCONTR)108 273.6 Q(OL)-.27 E/F5 9/Times-Roman@0 SF(.)
+(and)3.816 E F4(HISTCONTR)108 302.4 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 290.4 R(ariable)-.25 E F4(HISTFILE)2.582 E F0(\(def)2.332 E(ault)-.1
+108 319.2 R(ariable)-.25 E F4(HISTFILE)2.582 E F0(\(def)2.332 E(ault)-.1
 E F3(~/.bash_history)2.582 E F0(\).)A .315(The \214le named by the v)108
-302.4 R .315(alue of)-.25 F F4(HISTFILE)2.815 E F0 .315
+331.2 R .315(alue of)-.25 F F4(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 .532
-(lines speci\214ed by the v)108 314.4 R .532(alue of)-.25 F F4
+(lines speci\214ed by the v)108 343.2 R .532(alue of)-.25 F F4
 (HISTFILESIZE)3.032 E F5(.)A F0 .532
 (When the history \214le is read, lines be)5.032 F .532
 (ginning with the his-)-.15 F 1.158(tory comment character follo)108
-326.4 R 1.159(wed immediately by a digit are interpreted as timestamps \
-for the preceding)-.25 F .053(history line.)108 338.4 R .053
+355.2 R 1.159(wed immediately by a digit are interpreted as timestamps \
+for the preceding)-.25 F .053(history line.)108 367.2 R .053
 (These timestamps are optionally displayed depending on the v)5.053 F
 .052(alue of the)-.25 F F4(HISTTIMEFORMA)2.552 E(T)-.855 E F0 -.25(va)
-108 350.4 S 4.386(riable. When).25 F 1.886(an interacti)4.386 F 2.187
+108 379.2 S 4.386(riable. When).25 F 1.886(an interacti)4.386 F 2.187
 -.15(ve s)-.25 H 1.887(hell e).15 F 1.887(xits, the last)-.15 F F4
 ($HISTSIZE)4.387 E F0 1.887(lines are copied from the history list to)
-4.137 F F4($HISTFILE)108 362.4 Q F5(.)A F0 .056(If the)4.556 F F1
+4.137 F F4($HISTFILE)108 391.2 Q F5(.)A F0 .056(If the)4.556 F F1
 (histappend)2.556 E F0 .056
 (shell option is enabled \(see the description of)2.556 F F1(shopt)2.556
 E F0(under)2.556 E F4 .056(SHELL B)2.556 F(UIL)-.09 E(TIN)-.828 E
-(COMMANDS)108 374.4 Q F0(belo)2.671 E .422(w\), the lines are appended \
+(COMMANDS)108 403.2 Q F0(belo)2.671 E .422(w\), the lines are appended \
 to the history \214le, otherwise the history \214le is o)-.25 F -.15(ve)
--.15 G 2.922(rwritten. If).15 F F4(HISTFILE)108 386.4 Q F0 1.114(is uns\
+-.15 G 2.922(rwritten. If).15 F F4(HISTFILE)108 415.2 Q F0 1.114(is uns\
 et, or if the history \214le is unwritable, the history is not sa)3.364
 F -.15(ve)-.2 G 3.614(d. If).15 F(the)3.614 E F5 -.225(va)3.613 G 1.113
 (riable is set, time).225 F 1.251
-(stamps are written to the history \214le, mark)108 398.4 R(ed)-.09 E F0
+(stamps are written to the history \214le, mark)108 427.2 R(ed)-.09 E F0
 1.252(with the history comment character)3.502 F 3.752(,s)-.4 G 3.752
 (ot)-3.752 G(he)-3.752 E 3.752(ym)-.15 G 1.252(ay be preserv)-3.752 F
-(ed)-.15 E .105(across shell sessions.)108 410.4 R .105(This uses the h\
+(ed)-.15 E .105(across shell sessions.)108 439.2 R .105(This uses the h\
 istory comment character to distinguish timestamps from other history)
-5.105 F 2.604(lines. After)108 422.4 R(sa)2.604 E .104(ving the history)
+5.105 F 2.604(lines. After)108 451.2 R(sa)2.604 E .104(ving the history)
 -.2 F 2.604(,t)-.65 G .104
 (he history \214le is truncated to contain no more than)-2.604 F F4
 (HISTFILESIZE)2.605 E F0 2.605(lines. If)2.355 F F4(HISTFILESIZE)108
-434.4 Q F0(is not set, no truncation is performed.)2.25 E 1.294(The b)
-108 451.2 R 1.294(uiltin command)-.2 F F1(fc)3.794 E F0(\(see)3.794 E F4
+463.2 Q F0(is not set, no truncation is performed.)2.25 E 1.294(The b)
+108 480 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 463.2 S .673(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
+108 492 S .673(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 475.2 R .279
+(and manipulate the history \214le.)108 504 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 487.2 Q
-(vide access to the history list.)-.15 E 1.485(The shell allo)108 504 R
-1.485(ws control o)-.25 F -.15(ve)-.15 G 3.986(rw).15 G 1.486
+-.2 G .279(ilable in each).25 F(editing mode that pro)108 516 Q
+(vide access to the history list.)-.15 E 1.485(The shell allo)108 532.8
+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 516 Q F0 -.25(va)2.708 G
+E(OL)-.27 E F0(and)3.736 E F4(HISTIGNORE)108 544.8 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 528 Q F0 .75
+(cmdhist)108 556.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 540 R 3.577(,a)-.65 G 1.077
+(the same history entry)108 568.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 F1(lithist)3.576 E F0
-.373(shell option causes the shell to sa)108 552 R .674 -.15(ve t)-.2 H
-.374(he command with embedded ne).15 F .374
+.373(shell option causes the shell to sa)108 580.8 R .674 -.15(ve t)-.2
+.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 564 R F1(shopt)2.819 E F0 -.2(bu)2.819 G .318
+(description of the)108 592.8 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 576
-Q F2(HIST)72 592.8 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 604.8 R .611
+(for information on setting and)2.568 F(unsetting shell options.)108
+604.8 Q F2(HIST)72 621.6 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 633.6 R .611
 (xpansion feature that is similar to the history e)-.15 F .611
 (xpansion in)-.15 F F1(csh.)3.111 E F0 .611(This section)5.611 F .871
-(describes what syntax features are a)108 616.8 R -.25(va)-.2 G 3.371
+(describes what syntax features are a)108 645.6 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 628.8 R F1(+H)4.514 E F0 2.014
+2.013(can be disabled using the)108 657.6 R F1(+H)4.514 E F0 2.014
 (option to the)4.514 F F1(set)4.514 E F0 -.2(bu)4.514 G 2.014
 (iltin command \(see).2 F F4 2.014(SHELL B)4.514 F(UIL)-.09 E 2.014
-(TIN COMMANDS)-.828 F F0(belo)108 640.8 Q 2.5(w\). Non-interacti)-.25 F
+(TIN COMMANDS)-.828 F F0(belo)108 669.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.306(History e)108 657.6 R 1.306
+(xpansion by def)-.15 E(ault.)-.1 E 1.306(History e)108 686.4 R 1.306
 (xpansions introduce w)-.15 F 1.306(ords from the history list into the\
  input stream, making it easy to repeat)-.1 F .209
-(commands, insert the ar)108 669.6 R .209(guments to a pre)-.18 F .21
+(commands, insert the ar)108 698.4 R .209(guments to a pre)-.18 F .21
 (vious command into the current input line, or \214x errors in pre)-.25
-F(vious)-.25 E(commands quickly)108 681.6 Q(.)-.65 E 1.164(History e)108
-698.4 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 710.4 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 722.4 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(GNU Bash-3.2)72 768 Q(2008 February 22)138.46 E(43)
-188.45 E 0 Cg EP
+F(vious)-.25 E(commands quickly)108 710.4 Q(.)-.65 E 1.164(History e)108
+727.2 R 1.163(xpansion is performed immediately after a complete line i\
+s read, before the shell breaks it into)-.15 F(GNU Bash-3.2)72 768 Q
+(2008 April 5)148.455 E(43)198.445 E 0 Cg EP
 %%Page: 44 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 .662(selected from the history is the)108 84 R/F1 10
+-.35 E -.1(wo)108 84 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 96 R 1.868(second is to select portio\
+ns 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 108 R/F1 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 F1(wor)
-3.163 E(ds)-.37 E F0 5.663(.V)C(arious)-6.773 E F1(modi\214er)108 96 Q
+3.163 E(ds)-.37 E F0 5.663(.V)C(arious)-6.773 E F1(modi\214er)108 120 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 108 R -.15(ve)
+(ashion)-.1 E .351(as when reading input, so that se)108 132 R -.15(ve)
 -.25 G(ral).15 E F1(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 120 R 3.125(ord. History)-.1 F -.15(ex)3.125 G .624
+(one w)108 144 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 132 Q/F2
+(xpansion character)-.15 F 3.124(,w)-.4 G(hich)-3.124 E(is)108 156 Q/F2
 10/Times-Bold@0 SF(!)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 148.8 Q -.15(ve)-.25 G .03
+E(.)-.55 E(Se)108 172.8 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 160.8 T
+F .03(xpansion character)-.15 F(,)-.4 E -2.15 -.25(ev e)108 184.8 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 172.8 Q(xpansion.)-.15 E(Se)108 189.6 Q -.15
+F0(will also inhibit e)108 196.8 Q(xpansion.)-.15 E(Se)108 213.6 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 201.6 R F2
+(vior of history e)-.2 F(xpansion.)-.15 E 1.259(If the)108 225.6 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 213.6 R 6.498(.I)
+ns are not immediately passed to the shell parser)108 237.6 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 225.6 R F2 -.18(re)4.728 G(adline).18 E F0 2.228
+(reloaded into the)108 249.6 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 237.6 Q(eedit)-.18 E F0
+(is being used, and the)4.728 F F2(histr)108 261.6 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 249.6 S -.25(ff).2 G
+3.702 G(adline).18 E F0(editing)3.702 E -.2(bu)108 273.6 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 261.6
+(iltin command may be used to see what a history).2 F -.15(ex)108 285.6
 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 273.6 Q -.15(xe)-.15 G
+(end of the history list without actually e)108 297.6 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 290.4 R 2.2
+(ilable for subsequent recall.).25 E 2.2(The shell allo)108 314.4 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 1.146(description of)108
-302.4 R F2(histchars)3.646 E F0(abo)3.646 E 1.446 -.15(ve u)-.15 H(nder)
+326.4 R F2(histchars)3.646 E F0(abo)3.646 E 1.446 -.15(ve u)-.15 H(nder)
 .15 E F2 1.146(Shell V)3.646 F(ariables)-.92 E F0 3.646(\). The)B 1.147
 (shell uses the history comment character to)3.646 F
-(mark history timestamps when writing the history \214le.)108 314.4 Q F2
-(Ev)87 331.2 Q(ent Designators)-.1 E F0(An e)108 343.2 Q -.15(ve)-.25 G
+(mark history timestamps when writing the history \214le.)108 338.4 Q F2
+(Ev)87 355.2 Q(ent Designators)-.1 E F0(An e)108 367.2 Q -.15(ve)-.25 G
 (nt designator is a reference to a command line entry in the history li\
-st.).15 E F2(!)108 360 Q F0 1.608(Start a history substitution, e)32.67
+st.).15 E F2(!)108 384 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.607(line, carriage return, = or \().25
-F(\(when the)144 372 Q F2(extglob)2.5 E F0
+F(\(when the)144 396 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 384 Q F1(n)A F0(Refer to command line)27.67 E F1
-(n)2.5 E F0(.).24 E F2<21ad>108 396 Q F1(n)A F0
+(iltin\).).2 E F2(!)108 408 Q F1(n)A F0(Refer to command line)27.67 E F1
+(n)2.5 E F0(.).24 E F2<21ad>108 420 Q F1(n)A F0
 (Refer to the current command line minus)21.97 E F1(n)2.5 E F0(.).24 E
-F2(!!)108 408 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 420 Q F1(string)A
+F2(!!)108 432 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 444 Q F1(string)A
 F0(Refer to the most recent command starting with)9.33 E F1(string)2.5 E
-F0(.).22 E F2(!?)108 432 Q F1(string)A F2([?])A F0 1.022
-(Refer to the most recent command containing)144 444 R F1(string)3.522 E
+F0(.).22 E F2(!?)108 456 Q F1(string)A F2([?])A F0 1.022
+(Refer to the most recent command containing)144 468 R F1(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 F1(string)3.862 E F0(is)3.742 E(follo)144 456
+(may be omitted if)3.522 F F1(string)3.862 E F0(is)3.742 E(follo)144 480
 Q(wed immediately by a ne)-.25 E(wline.)-.25 E/F3 12/Times-Bold@0 SF(^)
-108 473 Q F1(string1)-5 I F3(^)5 I F1(string2)-5 I F3(^)5 I F0 2.63
-(Quick substitution.)144 480 R 2.629(Repeat the last command, replacing)
+108 497 Q F1(string1)-5 I F3(^)5 I F1(string2)-5 I F3(^)5 I F0 2.63
+(Quick substitution.)144 504 R 2.629(Repeat the last command, replacing)
 7.629 F F1(string1)5.469 E F0(with)5.129 E F1(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
-492 S(!!:s/).74 E F1(string1)A F0(/)A F1(string2)A F0(/')A 2.5('\()-.74
+516 S(!!:s/).74 E F1(string1)A F0(/)A F1(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
-504 Q F0(The entire command line typed so f)27.67 E(ar)-.1 E(.)-.55 E F2
--.75(Wo)87 520.8 S(rd Designators).75 E F0 -.8(Wo)108 532.8 S 1.313
+528 Q F0(The entire command line typed so f)27.67 E(ar)-.1 E(.)-.55 E F2
+-.75(Wo)87 544.8 S(rd Designators).75 E F0 -.8(Wo)108 556.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 F2(:)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 544.8 R .529(ord designator)-.1 F 5.529(.I)-.55 G
+.53(from the w)108 568.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 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.529(.W)C(ords)-6.329 E 1.3
-(are numbered from the be)108 556.8 R 1.3
+(are numbered from the be)108 580.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 568.8 Q
-F2 2.5(0\()108 585.6 S(zer)-2.5 E(o\))-.18 E F0(The zeroth w)144 597.6 Q
+F(inserted into the current line separated by single spaces.)108 592.8 Q
+F2 2.5(0\()108 609.6 S(zer)-2.5 E(o\))-.18 E F0(The zeroth w)144 621.6 Q
 2.5(ord. F)-.1 F(or the shell, this is the command w)-.15 E(ord.)-.1 E
-F1(n)108.36 609.6 Q F0(The)30.64 E F1(n)2.5 E F0(th w)A(ord.)-.1 E F2(^)
-108 621.6 Q F0(The \214rst ar)32.67 E 2.5(gument. That)-.18 F(is, w)2.5
-E(ord 1.)-.1 E F2($)108 633.6 Q F0(The last ar)31 E(gument.)-.18 E F2(%)
-108 645.6 Q F0(The w)26 E(ord matched by the most recent `?)-.1 E F1
-(string)A F0(?' search.)A F1(x)108.77 657.6 Q F2<ad>A F1(y)A F0 2.5(Ar)
+F1(n)108.36 633.6 Q F0(The)30.64 E F1(n)2.5 E F0(th w)A(ord.)-.1 E F2(^)
+108 645.6 Q F0(The \214rst ar)32.67 E 2.5(gument. That)-.18 F(is, w)2.5
+E(ord 1.)-.1 E F2($)108 657.6 Q F0(The last ar)31 E(gument.)-.18 E F2(%)
+108 669.6 Q F0(The w)26 E(ord matched by the most recent `?)-.1 E F1
+(string)A F0(?' search.)A F1(x)108.77 681.6 Q F2<ad>A F1(y)A F0 2.5(Ar)
 20.65 G(ange of w)-2.5 E(ords; `\255)-.1 E F1(y)A F0 2.5('a)C(bbre)-2.5
-E(viates `0\255)-.25 E F1(y)A F0('.)A F2(*)108 669.6 Q F0 .316
+E(viates `0\255)-.25 E F1(y)A F0('.)A F2(*)108 693.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 F1(1\255$)A F0 2.815
 ('. It)B .315(is not an error to use)2.815 F F2(*)2.815 E F0 .315
-(if there is)2.815 F(just one w)144 681.6 Q(ord in the e)-.1 E -.15(ve)
+(if there is)2.815 F(just one w)144 705.6 Q(ord in the e)-.1 E -.15(ve)
 -.25 G(nt; the empty string is returned in that case.).15 E F2(x*)108
-693.6 Q F0(Abbre)26 E(viates)-.25 E F1(x\255$)2.5 E F0(.)A F2<78ad>108
-705.6 Q F0(Abbre)25.3 E(viates)-.25 E F1(x\255$)2.5 E F0(lik)2.5 E(e)-.1
-E F2(x*)2.5 E F0 2.5(,b)C(ut omits the last w)-2.7 E(ord.)-.1 E(If a w)
-108 722.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(GNU Bash-3.2)72 768 Q(2008 February 22)138.46 E
-(44)188.45 E 0 Cg EP
+717.6 Q F0(Abbre)26 E(viates)-.25 E F1(x\255$)2.5 E F0(.)A(GNU Bash-3.2)
+72 768 Q(2008 April 5)148.455 E(44)198.445 E 0 Cg EP
 %%Page: 45 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(Modi\214ers)87 84 Q F0 .183
-(After the optional w)108 96 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 108 Q F1(h)108
-124.8 Q F0(Remo)30.44 E .3 -.15(ve a t)-.15 H
+-.35 E/F1 10/Times-Bold@0 SF<78ad>108 84 Q F0(Abbre)25.3 E(viates)-.25 E
+/F2 10/Times-Italic@0 SF(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 100.8 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 117.6 Q F0 .183
+(After the optional w)108 129.6 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 141.6 Q F1(h)
+108 158.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 136.8 Q F0(Remo)32.67 E .3 -.15(ve a)-.15 H
+(t)108 170.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 148.8 Q F0(Remo)31.56 E .3 -.15(ve a t)-.15 H(railing suf).15 E
-(\214x of the form)-.25 E/F2 10/Times-Italic@0 SF(.xxx)2.5 E F0 2.5(,l)C
-(ea)-2.5 E(ving the basename.)-.2 E F1(e)108 160.8 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 172.8 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 184.8 Q F0
+108 182.4 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 194.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 206.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 218.4 Q F0
 (Quote the substituted w)30.44 E(ords, escaping further substitutions.)
--.1 E F1(x)108 196.8 Q F0(Quote the substituted w)31 E(ords as with)-.1
+-.1 E F1(x)108 230.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 208.8 Q F2(old)A F1(/)A
-F2(ne)A(w)-.15 E F1(/)A F0(Substitute)144 220.8 Q F2(ne)3.082 E(w)-.15 E
+2.5 E F0(and ne)2.5 E(wlines.)-.25 E F1(s/)108 242.4 Q F2(old)A F1(/)A
+F2(ne)A(w)-.15 E F1(/)A F0(Substitute)144 254.4 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
-232.8 R .617
+266.4 R .617
 (The \214nal delimiter is optional if it is the last character of the e)
 5.616 F -.15(ve)-.25 G .617(nt line.).15 F .617(The delimiter may)5.617
-F .666(be quoted in)144 244.8 R F2(old)3.396 E F0(and)3.936 E F2(ne)
+F .666(be quoted in)144 278.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
 (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 .274(single backslash will quote the &.)144 256.8 R
+F0 5.666(.A).77 G .274(single backslash will quote the &.)144 290.4 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 268.8 Q F2(string)
+(ous history substitutions took place, the last)144 302.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 280.8 Q F0(Repeat the pre)27.67 E(vious substitution.)-.25 E F1
-(g)108 292.8 Q F0 .398(Cause changes to be applied o)31 F -.15(ve)-.15 G
+(&)108 314.4 Q F0(Repeat the pre)27.67 E(vious substitution.)-.25 E F1
+(g)108 326.4 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 F1(:s)A F0 2.897
-('\()C(e.g.,)-2.897 E(`)144 304.8 Q F1(:gs/)A F2(old)A F1(/)A F2(ne)A(w)
+('\()C(e.g.,)-2.897 E(`)144 338.4 Q F1(:gs/)A F2(old)A F1(/)A F2(ne)A(w)
 -.15 E F1(/)A F0 1.218('\) or `)B F1(:&)A F0 3.718('. If)B 1.218
 (used with `)3.718 F F1(: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 316.8 R
+(delimiter is optional if it is the last character of the e)144 350.4 R
 -.15(ve)-.25 G .089(nt line.).15 F(An)5.089 E F1(a)2.589 E F0 .089
-(may be used as a synon)2.589 F .089(ym for)-.15 F F1(g)144 328.8 Q F0
-(.)A F1(G)108 340.8 Q F0(Apply the follo)28.22 E(wing `)-.25 E F1(s)A F0
+(may be used as a synon)2.589 F .089(ym for)-.15 F F1(g)144 362.4 Q F0
+(.)A F1(G)108 374.4 Q F0(Apply the follo)28.22 E(wing `)-.25 E F1(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 357.6 Q(UIL)-.11 E
-(TIN COMMANDS)-1.007 E F0 .062(Unless otherwise noted, each b)108 369.6
+G(nt line.).15 E/F3 10.95/Times-Bold@0 SF(SHELL B)72 391.2 Q(UIL)-.11 E
+(TIN COMMANDS)-1.007 E F0 .062(Unless otherwise noted, each b)108 403.2
 R .062(uiltin command documented in this section as accepting options p\
-receded by)-.2 F F1<ad>108 381.6 Q F0(accepts)3.8 E F1<adad>3.8 E F0 1.3
+receded by)-.2 F F1<ad>108 415.2 Q F0(accepts)3.8 E F1<adad>3.8 E F0 1.3
 (to signify the end of the options.)3.8 F -.15(Fo)6.3 G 3.8(re).15 G 1.3
 (xample, the)-3.95 F F1(:)3.8 E F0(,)A F1(true)3.8 E F0(,)A F1(false)3.8
 E F0 3.8(,a)C(nd)-3.8 E F1(test)3.8 E F0 -.2(bu)3.8 G 1.3(iltins do not)
-.2 F(accept options.)108 393.6 Q F1(:)108 411.6 Q F0([)2.5 E F2(ar)A
-(guments)-.37 E F0(])A .451(No ef)144 423.6 R .451
+.2 F(accept options.)108 427.2 Q F1(:)108 445.2 Q F0([)2.5 E F2(ar)A
+(guments)-.37 E F0(])A .451(No ef)144 457.2 R .451
 (fect; the command does nothing be)-.25 F .452(yond e)-.15 F(xpanding)
 -.15 E F2(ar)3.282 E(guments)-.37 E F0 .452(and performing an)3.222 F
-2.952(ys)-.15 G(peci\214ed)-2.952 E 2.5(redirections. A)144 435.6 R
-(zero e)2.5 E(xit code is returned.)-.15 E F1(.)110.5 452.4 Q F2
+2.952(ys)-.15 G(peci\214ed)-2.952 E 2.5(redirections. A)144 469.2 R
+(zero e)2.5 E(xit code is returned.)-.15 E F1(.)110.5 486 Q F2
 (\214lename)6.666 E F0([)2.5 E F2(ar)A(guments)-.37 E F0(])A F1(sour)108
-464.4 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 476.4 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 488.4 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 500.4 R/F4 9/Times-Bold@0 SF -.666(PA)3.108 G(TH)-.189 E
-F0 .608(are used to \214nd the directory containing)2.858 F F2
-(\214lename)3.108 E F0 5.608(.T).18 G .608(he \214le searched for in)
--5.608 F F4 -.666(PA)3.108 G(TH)-.189 E F0 .832(need not be e)144 512.4
-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
+498 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 510 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 522 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 534
+R/F4 9/Times-Bold@0 SF -.666(PA)3.108 G(TH)-.189 E F0 .608
+(are used to \214nd the directory containing)2.858 F F2(\214lename)3.108
+E F0 5.608(.T).18 G .608(he \214le searched for in)-5.608 F F4 -.666(PA)
+3.108 G(TH)-.189 E F0 .832(need not be e)144 546 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 524.4 R F4 -.666(PA)3.481 G(TH)-.189 E/F5 9
+(\214le is found in)144 558 R F4 -.666(PA)3.481 G(TH)-.189 E/F5 9
 /Times-Roman@0 SF(.)A F0 .981(If the)5.481 F F1(sour)3.481 E(cepath)-.18
 E F0 .981(option to the)3.481 F F1(shopt)3.481 E F0 -.2(bu)3.481 G .981
-(iltin command is turned of).2 F .981(f, the)-.25 F F4 -.666(PA)144
-536.4 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 548.4 Q F0 .342(is e)2.842 F -.15(xe)-.15 G 2.842
+(iltin command is turned of).2 F .981(f, the)-.25 F F4 -.666(PA)144 570
+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 582 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 560.4 R .716
+(status of the last command e)144 594 R .716
 (xited within the script \(0 if no commands are e)-.15 F -.15(xe)-.15 G
-.716(cuted\), and f).15 F .716(alse if)-.1 F F2(\214lename)145.91 572.4
-Q F0(is not found or cannot be read.)2.68 E F1(alias)108 589.2 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 601.2 Q F0 2.725(with no ar)5.225 F 2.724
+.716(cuted\), and f).15 F .716(alse if)-.1 F F2(\214lename)145.91 606 Q
+F0(is not found or cannot be read.)2.68 E F1(alias)108 622.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 634.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.224 E
-F2(name)144 613.2 Q F0(=)A F2(value)A F0 .58(on standard output.)3.08 F
+F2(name)144 646.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 625.2 Q F2(value)2.895 E F0 .395(is gi)2.895 F -.15
+3.08 E F0(whose)144 658.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 637.2 R 2.554(xpanded. F)-.15 F .054
+(stitution when the alias is e)144 670.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 .054(is sup-)2.554
-F 1.314(plied, the name and v)144 649.2 R 1.314
+F 1.314(plied, the name and v)144 682.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.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 661.2 Q F1(bg)108 678 Q F0([)2.5
-E F2(jobspec)A F0(...])2.5 E .744(Resume each suspended job)144 690 R F2
+(which no alias has been de\214ned.)144 694.8 Q(GNU Bash-3.2)72 768 Q
+(2008 April 5)148.455 E(45)198.445 E 0 Cg EP
+%%Page: 46 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(bg)108 84 Q F0([)2.5 E/F2 10/Times-Italic@0
+SF(jobspec)A F0(...])2.5 E .744(Resume each suspended job)144 96 R F2
 (jobspec)3.244 E F0 .745
 (in the background, as if it had been started with)3.244 F F1(&)3.245 E
-F0 5.745(.I)C(f)-5.745 E F2(job-)4.985 E(spec)144 702 Q F0 .672
+F0 5.745(.I)C(f)-5.745 E F2(job-)4.985 E(spec)144 108 Q F0 .672
 (is not present, the shell')3.482 F 3.172(sn)-.55 G .672(otion of the)
 -3.172 F F2(curr)3.172 E .672(ent job)-.37 F F0 .672(is used.)3.172 F F1
 (bg)5.671 E F2(jobspec)4.911 E F0 .671(returns 0 unless run)3.481 F .418
-(when job control is disabled or)144 714 R 2.919(,w)-.4 G .419
+(when job control is disabled or)144 120 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 726 Q(as started without job control.)-.1 E
-(GNU Bash-3.2)72 768 Q(2008 February 22)138.46 E(45)188.45 E 0 Cg EP
-%%Page: 46 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(bind)108 84 Q F0([)2.5 E F1<ad6d>A/F2 10
-/Times-Italic@0 SF -.1(ke)2.5 G(ymap)-.2 E F0 2.5(][)C F1(\255lpsvPSV)
--2.5 E F0(])A F1(bind)108 96 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 108 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 120 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 132 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 144 Q F2 -.37(re)
-2.5 G(adline\255command).37 E F0 .239(Display current)144 156 R F1 -.18
-(re)2.739 G(adline).18 E F0 -.1(ke)2.739 G 2.739(ya)-.05 G .239
+(ot)-2.919 E(found or w)144 132 Q(as started without job control.)-.1 E
+F1(bind)108 148.8 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 160.8 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 172.8 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 184.8 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 196.8 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 208.8 Q F2 -.37(re)2.5 G
+(adline\255command).37 E F0 .239(Display current)144 220.8 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 168 R F1 -.18(re)2.975 G(adline).18 E
+2.738 F .475(macro, or set a)144 232.8 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 180 Q(c)-.37 E F0 2.984(,b).31 G .484
+(.inputr)144 244.8 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 192 R(if supplied, ha)2.5 E
-.3 -.15(ve t)-.2 H(he follo).15 E(wing meanings:)-.25 E F1<ad6d>144 204
-Q F2 -.1(ke)2.5 G(ymap)-.2 E F0(Use)180 216 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 228 S(ymap)-.2 E F0 3.193(names are)5.883 F F2 3.193
+(re\255read\255init\255\214le'. Options,)144 256.8 R(if supplied, ha)2.5
+E .3 -.15(ve t)-.2 H(he follo).15 E(wing meanings:)-.25 E F1<ad6d>144
+268.8 Q F2 -.1(ke)2.5 G(ymap)-.2 E F0(Use)180 280.8 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 292.8 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 240 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 252 Q(d)-.37 E F0(.)A F1<ad6c>144 264 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
-276 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 288 Q F0(List current)24.19 E
-F1 -.18(re)2.5 G(adline).18 E F0(function names and bindings.)2.5 E F1
-<ad73>144 300 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 312 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 324 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<ad76>144 336 Q F0(Display)25.3 E F1 -.18(re)2.5 G
+(vi\255command)180 304.8 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 316.8 Q(d)-.37 E F0(.)A F1<ad6c>144 328.8 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 340.8 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 352.8
+Q F0(List current)24.19 E F1 -.18(re)2.5 G(adline).18 E F0
+(function names and bindings.)2.5 E F1<ad73>144 364.8 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 376.8 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 388.8 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<ad76>144 400.8 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 348 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<ad66>144 360 Q F2(\214lename)2.5 E F0(Read k)180 372 Q .3 -.15
-(ey b)-.1 H(indings from).15 E F2(\214lename)2.5 E F0(.)A F1<ad71>144
-384 Q F2(function)2.5 E F0(Query about which k)180 396 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 408 Q F2(function)2.5 E F0
-(Unbind all k)180 420 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 432 Q F2 -.1(ke)2.5 G(yseq)
--.2 E F0(Remo)180 444 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
-456 Q F2 -.1(ke)2.5 G(yseq)-.2 E F1(:)A F2(shell\255command)A F0(Cause)
-180 468 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 484.8 Q
+(an be re-read.)-2.5 E F1<ad56>144 412.8 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<ad66>144 424.8 Q F2(\214lename)2.5 E F0(Read k)180
+436.8 Q .3 -.15(ey b)-.1 H(indings from).15 E F2(\214lename)2.5 E F0(.)A
+F1<ad71>144 448.8 Q F2(function)2.5 E F0(Query about which k)180 460.8 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 472.8 Q F2(function)
+2.5 E F0(Unbind all k)180 484.8 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 496.8 Q
+F2 -.1(ke)2.5 G(yseq)-.2 E F0(Remo)180 508.8 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 520.8 Q F2 -.1(ke)2.5 G(yseq)-.2 E F1(:)A F2
+(shell\255command)A F0(Cause)180 532.8 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 549.6 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
-501.6 Q(eak)-.18 E F0([)2.5 E F2(n)A F0(])A .054(Exit from within a)144
-513.6 R F1 -.25(fo)2.554 G(r).25 E F0(,)A F1(while)2.554 E F0(,)A F1
+566.4 Q(eak)-.18 E F0([)2.5 E F2(n)A F0(])A .054(Exit from within a)144
+578.4 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 525.6 Q
+(must be)2.795 F/F3 10/Symbol SF<b3>2.555 E F0(1.)2.555 E(If)144 590.4 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 537.6 Q -.15(xe)
+2.714 F(alue)-.25 E(is 0 unless the shell is not e)144 602.4 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 554.4 S(iltin).2 E F2
+-.15(xe)-.15 G(cuted.).15 E F1 -.2(bu)108 619.2 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 566.4 Q .792(ecute the speci\214ed shell b)-.15 F .792
+(Ex)144 631.2 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
-578.4 R .615(uiltin, retaining the functionality of)-.2 F .57(the b)144
-590.4 R .57(uiltin within the function.)-.2 F(The)5.57 E F1(cd)3.07 E F0
+643.2 R .615(uiltin, retaining the functionality of)-.2 F .57(the b)144
+655.2 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 602.4 Q(alse if)-.1
+5.57(.T)-.65 G .57(he return status)-5.57 F(is f)144 667.2 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 619.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 631.2
-F2(dir)2.71 E F0 5.21(.T)C .21(he v)-5.21 F(ariable)-.25 E/F4 9
+(uiltin command.)-.2 E F1(cd)108 684 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 696 R
+F2(dir)2.71 E F0 5.21(.T)C .21(he v)-5.21 F(ariable)-.25 E/F4 9
 /Times-Bold@0 SF(HOME)2.71 E F0 .21(is the def)2.46 F(ault)-.1 E F2(dir)
 2.71 E F0 5.21(.T).73 G .21(he v)-5.21 F(ariable)-.25 E F4(CDP)2.71 E
 -.855(AT)-.666 G(H).855 E F0 .776
-(de\214nes the search path for the directory containing)144 643.2 R F2
+(de\214nes the search path for the directory containing)144 708 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 655.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 667.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 679.2 R .58
-(ysical directory structure instead of follo)-.05 F .579
-(wing symbolic links \(see also the)-.25 F F1<ad50>3.079 E F0 .579
-(option to the)3.079 F F1(set)144 691.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.384 E .884(gument of)-.18 F F1<ad>3.384 E F0(is)3.384 E(equi)144
-703.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 715.2 Q .116(gument, \
-and the directory change is successful, the absolute pathname of the ne)
--.18 F 2.616(ww)-.25 G .116(orking direc-)-2.716 F 1.165
-(tory is written to the standard output.)144 727.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(GNU Bash-3.2)72 768 Q(2008 February 22)138.46 E
-(46)188.45 E 0 Cg EP
+2.328(are separated by a colon \(:\).)144 720 R 4.828(An)7.328 G 2.328
+(ull directory name in)-4.828 F F4(CDP)4.828 E -.855(AT)-.666 G(H).855 E
+F0 2.327(is the same as the current)4.578 F(GNU Bash-3.2)72 768 Q
+(2008 April 5)148.455 E(46)198.445 E 0 Cg EP
 %%Page: 47 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(changed; f)144 84 Q(alse otherwise.)-.1 E/F1 10/Times-Bold@0 SF
-(caller)108 100.8 Q F0([)2.5 E/F2 10/Times-Italic@0 SF -.2(ex)C(pr).2 E
-F0(])A .253(Returns the conte)144 112.8 R .254(xt of an)-.15 F 2.754(ya)
--.15 G(cti)-2.754 E .554 -.15(ve s)-.25 H .254
+-.35 E(directory)144 84 Q 2.779(,i)-.65 G .279(.e., `)-2.779 F(`)-.74 E
+/F1 10/Times-Bold@0 SF(.)A F0 -.74('')C 5.279(.I).74 G(f)-5.279 E/F2 10
+/Times-Italic@0 SF(dir)3.129 E F0(be)3.509 E .28
+(gins with a slash \(/\), then)-.15 F/F3 9/Times-Bold@0 SF(CDP)2.78 E
+-.855(AT)-.666 G(H).855 E F0 .28(is not used. The)2.53 F F1<ad50>2.78 E
+F0 .28(option says to)2.78 F .506(use the ph)144 96 R .506
+(ysical directory structure instead of follo)-.05 F .505
+(wing symbolic links \(see also the)-.25 F F1<ad50>3.005 E F0 .505
+(option to)3.005 F(the)144 108 Q F1(set)3.036 E F0 -.2(bu)3.036 G .537
+(iltin command\); the).2 F F1<ad4c>3.037 E F0 .537
+(option forces symbolic links to be follo)3.037 F 3.037(wed. An)-.25 F
+(ar)3.037 E .537(gument of)-.18 F F1<ad>3.037 E F0 .586(is equi)144 120
+R -.25(va)-.25 G .586(lent to).25 F F3($OLDPWD)3.086 E/F4 9
+/Times-Roman@0 SF(.)A F0 .585(If a non-empty directory name from)5.086 F
+F1(CDP)3.085 E -.95(AT)-.74 G(H).95 E F0 .585(is used, or if)3.085 F F1
+<ad>3.085 E F0 .585(is the)3.085 F .67(\214rst ar)144 132 R .67(gument,\
+ and the directory change is successful, the absolute pathname of the n\
+e)-.18 F 3.17(ww)-.25 G(orking)-3.27 E .888
+(directory is written to the standard output.)144 144 R .888
+(The return v)5.888 F .887(alue is true if the directory w)-.25 F .887
+(as success-)-.1 F(fully changed; f)144 156 Q(alse otherwise.)-.1 E F1
+(caller)108 172.8 Q F0([)2.5 E F2 -.2(ex)C(pr).2 E F0(])A .253
+(Returns the conte)144 184.8 R .254(xt of an)-.15 F 2.754(ya)-.15 G(cti)
+-2.754 E .554 -.15(ve s)-.25 H .254
 (ubroutine call \(a shell function or a script e).15 F -.15(xe)-.15 G
-.254(cuted with the).15 F F1(.)2.754 E F0(or)2.754 E F1(sour)144 124.8 Q
+.254(cuted with the).15 F F1(.)2.754 E F0(or)2.754 E F1(sour)144 196.8 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
-.253(subroutine call.)144 136.8 R .253(If a non-ne)5.253 F -.05(ga)-.15
+.253(subroutine call.)144 208.8 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 148.8 R -.15(xe)-.15 G 1.327(cution call stack.).15 F(This e)
-144 160.8 Q(xtra information may be used, for e)-.15 E .001
+ent e)144 220.8 R -.15(xe)-.15 G 1.327(cution call stack.).15 F(This e)
+144 232.8 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 172.8 R .52(return v)3.02 F .52
+5.001 F 3.02(0. The)144 244.8 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 184.8 Q
-(alid position in the call stack.)-.25 E F1(command)108 201.6 Q F0([)2.5
+(does not corre-)3.019 F(spond to a v)144 256.8 Q
+(alid position in the call stack.)-.25 E F1(command)108 273.6 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 213.6 Q F2(command)2.956 E F0(with)3.527 E F2(ar)
+(...])2.5 E(Run)144 285.6 Q F2(command)2.956 E F0(with)3.527 E F2(ar)
 3.087 E(gs)-.37 E F0 .257
 (suppressing the normal shell function lookup. Only b)3.027 F .257
-(uiltin commands or)-.2 F .502(commands found in the)144 225.6 R/F3 9
-/Times-Bold@0 SF -.666(PA)3.002 G(TH)-.189 E F0 .502(are e)2.752 F -.15
-(xe)-.15 G 3.002(cuted. If).15 F(the)3.002 E F1<ad70>3.002 E F0 .502
-(option is gi)3.002 F -.15(ve)-.25 G .501(n, the search for).15 F F2
-(command)3.201 E F0(is)3.771 E .231(performed using a def)144 237.6 R
-.231(ault v)-.1 F .231(alue for)-.25 F F1 -.74(PA)2.731 G(TH)-.21 E F0
-.231(that is guaranteed to \214nd all of the standard utilities.)2.731 F
-(If)5.232 E .175(either the)144 249.6 R F1<ad56>2.675 E F0(or)2.675 E F1
+(uiltin commands or)-.2 F .502(commands found in the)144 297.6 R F3
+-.666(PA)3.002 G(TH)-.189 E F0 .502(are e)2.752 F -.15(xe)-.15 G 3.002
+(cuted. If).15 F(the)3.002 E F1<ad70>3.002 E F0 .502(option is gi)3.002
+F -.15(ve)-.25 G .501(n, the search for).15 F F2(command)3.201 E F0(is)
+3.771 E .231(performed using a def)144 309.6 R .231(ault v)-.1 F .231
+(alue for)-.25 F F1 -.74(PA)2.731 G(TH)-.21 E F0 .231
+(that is guaranteed to \214nd all of the standard utilities.)2.731 F(If)
+5.232 E .175(either the)144 321.6 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 261.6 S .61(ingle w)-3.11 F
+F0 .174(option causes)2.674 F 3.11(as)144 333.6 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 273.6 Q F0 .25(option produces a more v)2.75 F .25
+F1<ad56>144 345.6 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 285.6 R F2(command)3.704 E F0 -.1
+(xit status)-.15 F 1.004(is 0 if)144 357.6 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 297.6 Q F0 1.599(cannot be found, the e)4.869 F 1.599
+(command)144.2 369.6 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 309.6 S
+(xit status of the)-.15 F F1(command)4.098 E F0 -.2(bu)144 381.6 S
 (iltin is the e).2 E(xit status of)-.15 E F2(command)2.5 E F0(.).77 E F1
-(compgen)108 326.4 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 338.4 R
+(compgen)108 398.4 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 410.4 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.513(yo)-.15 G(ption)-2.513 E .982
-(accepted by the)144 350.4 R F1(complete)3.482 E F0 -.2(bu)3.481 G .981
+(accepted by the)144 422.4 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 .981(nd write the matches to the)
--3.481 F 1.415(standard output.)144 362.4 R 1.415(When using the)6.415 F
+-3.481 F 1.415(standard output.)144 434.4 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 374.4 Q(acilities, while a)-.1 E -.25(va)
+F(grammable completion f)144 446.4 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 398.4 R .352
+-.25 E .352(The matches will be generated in the same w)144 470.4 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
-410.4 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 422.4 Q F2(wor)2.5 E(d)-.37 E F0
-(will be displayed.)2.5 E(The return v)144 446.4 Q
+482.4 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 494.4 Q F2(wor)2.5 E(d)-.37 E F0
+(will be displayed.)2.5 E(The return v)144 518.4 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 463.2 Q F0([)3.265 E F1(\255abcdefgjksuv)A F0 3.265(][)C
+(complete)108 535.2 Q F0([)3.265 E F1(\255abcdefgjksuv)A F0 3.265(][)C
 F1<ad6f>-3.265 E F2(comp-option)3.265 E F0 3.265(][)C F1<ad41>-3.265 E
 F2(action)3.265 E F0 3.265(][)C F1<ad47>-3.265 E F2(globpat)3.265 E F0
 3.265(][)C F1<ad57>-3.265 E F2(wor)3.265 E(dlist)-.37 E F0 3.265(][)C F1
 <ad46>-3.265 E F2(function)3.265 E F0 3.265(][)C F1<ad43>-3.265 E F2
-(command)108 475.2 Q F0(])A([)144 487.2 Q F1<ad58>A F2(\214lterpat)2.5 E
+(command)108 547.2 Q F0(])A([)144 559.2 Q F1<ad58>A F2(\214lterpat)2.5 E
 F0 2.5(][)C F1<ad50>-2.5 E F2(pr)2.5 E(e\214x)-.37 E F0 2.5(][)C F1
 <ad53>-2.5 E F2(suf)2.5 E<8c78>-.18 E F0(])A F2(name)2.5 E F0([)2.5 E F2
-(name ...)A F0(])A F1(complete \255pr)108 499.2 Q F0([)2.5 E F2(name)A
-F0(...])2.5 E .634(Specify ho)144 511.2 R 3.134(wa)-.25 G -.18(rg)-3.134
+(name ...)A F0(])A F1(complete \255pr)108 571.2 Q F0([)2.5 E F2(name)A
+F0(...])2.5 E .634(Specify ho)144 583.2 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 523.2 R .139(xisting completion speci\214cations are printed in a w)
+144 595.2 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 535.2 R(The)5.31 E F1<ad72>2.81 E F0 .31
+(reused as input.)144 607.2 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 547.2 Q 1.437
+(are supplied, all completion speci\214cations.)144 619.2 Q 1.437
 (The process of applying these completion speci\214cations when w)144
-571.2 R 1.438(ord completion is attempted is)-.1 F(described abo)144
-583.2 Q .3 -.15(ve u)-.15 H(nder).15 E F1(Pr)2.5 E
+643.2 R 1.438(ord completion is attempted is)-.1 F(described abo)144
+655.2 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 607.2 R .856 -.15(ve t)-.2 H .555
+(Other options, if speci\214ed, ha)144 679.2 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.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 619.2 R 3.222(,t)-.65 G(he)-3.222 E F1<ad50>3.222 E F0(and)3.222 E
+144 691.2 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 631.2 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 643.2 Q
-F2(comp-option)2.5 E F0(The)184 655.2 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 667.2 Q F2
-(comp-option)5 E F0(may be one of:)2.5 E F1(bashdefault)184 679.2 Q F0
-.281(Perform the rest of the def)224 691.2 R(ault)-.1 E F1(bash)2.781 E
-F0 .281(completions if the compspec generates no)2.781 F(matches.)224
-703.2 Q F1(default)184 715.2 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 727.2 Q(GNU Bash-3.2)72 768 Q(2008 February 22)138.46 E(47)188.45 E
-0 Cg EP
+(sion before the)144 703.2 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(GNU Bash-3.2)72 768 Q
+(2008 April 5)148.455 E(47)198.445 E 0 Cg EP
 %%Page: 48 48
 %%BeginPageSetup
 BP
 %%EndPageSetup
 /F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
--.35 E/F1 10/Times-Bold@0 SF(dir)184 84 Q(names)-.15 E F0(Perform direc\
-tory name completion if the compspec generates no matches.)224 96 Q F1
-(\214lenames)184 108 Q F0 -.7(Te)224 120 S .137(ll readline that the co\
+-.35 E/F1 10/Times-Bold@0 SF<ad6f>144 84 Q/F2 10/Times-Italic@0 SF
+(comp-option)2.5 E F0(The)184 96 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 108 Q F2
+(comp-option)5 E F0(may be one of:)2.5 E F1(bashdefault)184 120 Q F0
+.281(Perform the rest of the def)224 132 R(ault)-.1 E F1(bash)2.781 E F0
+.281(completions if the compspec generates no)2.781 F(matches.)224 144 Q
+F1(default)184 156 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 168 Q F1(dir)184 180 Q(names)-.15 E F0(Perform direc\
+tory name completion if the compspec generates no matches.)224 192 Q F1
+(\214lenames)184 204 Q F0 -.7(Te)224 216 S .137(ll readline that the co\
 mpspec generates \214lenames, so it can perform an).7 F 2.637<798c>-.15
-G(le-)-2.637 E .496(name\255speci\214c processing \(lik)224 132 R 2.996
+G(le-)-2.637 E .496(name\255speci\214c processing \(lik)224 228 R 2.996
 (ea)-.1 G .496(dding a slash to directory names or suppress-)-2.996 F
-(ing trailing spaces\).)224 144 Q
-(Intended to be used with shell functions.)5 E F1(nospace)184 156 Q F0
+(ing trailing spaces\).)224 240 Q
+(Intended to be used with shell functions.)5 E F1(nospace)184 252 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
-168 Q F1(plusdirs)184 180 Q F0 1.985(After an)5.54 F 4.485(ym)-.15 G
+264 Q F1(plusdirs)184 276 Q F0 1.985(After an)5.54 F 4.485(ym)-.15 G
 1.985(atches de\214ned by the compspec are generated, directory name)
--4.485 F .583(completion is attempted and an)224 192 R 3.084(ym)-.15 G
+-4.485 F .583(completion is attempted and an)224 288 R 3.084(ym)-.15 G
 .584(atches are added to the results of the other)-3.084 F(actions.)224
-204 Q F1<ad41>144 216 Q/F2 10/Times-Italic@0 SF(action)2.5 E F0(The)184
-228 Q F2(action)2.5 E F0(may be one of the follo)2.5 E
+300 Q F1<ad41>144 312 Q F2(action)2.5 E F0(The)184 324 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
-240 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 252 Q(ar)-.1 E F0(Array v)224 264 Q
-(ariable names.)-.25 E F1 4.7(binding Readline)184 276 R F0 -.1(ke)2.5 G
-2.5(yb)-.05 G(inding names.)-2.5 E F1 -.2(bu)184 288 S(iltin).2 E F0
+336 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 348 Q(ar)-.1 E F0(Array v)224 360 Q
+(ariable names.)-.25 E F1 4.7(binding Readline)184 372 R F0 -.1(ke)2.5 G
+2.5(yb)-.05 G(inding names.)-2.5 E F1 -.2(bu)184 384 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 300
-Q F0(Command names.)224 312 Q(May also be speci\214ed as)5 E F1<ad63>2.5
-E F0(.)A F1(dir)184 324 Q(ectory)-.18 E F0(Directory names.)224 336 Q
-(May also be speci\214ed as)5 E F1<ad64>2.5 E F0(.)A F1(disabled)184 348
-Q F0(Names of disabled shell b)224 360 Q(uiltins.)-.2 E F1(enabled)184
-372 Q F0(Names of enabled shell b)6.66 E(uiltins.)-.2 E F1(export)184
-384 Q F0(Names of e)12.23 E(xported shell v)-.15 E 2.5(ariables. May)
+(May also be speci\214ed as)5 E F1<ad62>2.5 E F0(.)A F1(command)184 396
+Q F0(Command names.)224 408 Q(May also be speci\214ed as)5 E F1<ad63>2.5
+E F0(.)A F1(dir)184 420 Q(ectory)-.18 E F0(Directory names.)224 432 Q
+(May also be speci\214ed as)5 E F1<ad64>2.5 E F0(.)A F1(disabled)184 444
+Q F0(Names of disabled shell b)224 456 Q(uiltins.)-.2 E F1(enabled)184
+468 Q F0(Names of enabled shell b)6.66 E(uiltins.)-.2 E F1(export)184
+480 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
-396 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 408 Q F0(Names of shell functions.)224 420 Q F1
-(gr)184 432 Q(oup)-.18 E F0(Group names.)14.62 E
+492 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 504 Q F0(Names of shell functions.)224 516 Q F1
+(gr)184 528 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
-444 Q F0(Help topics as accepted by the)224 456 Q F1(help)2.5 E F0 -.2
-(bu)2.5 G(iltin.).2 E F1(hostname)184 468 Q F0(Hostnames, as tak)224 480
+540 Q F0(Help topics as accepted by the)224 552 Q F1(help)2.5 E F0 -.2
+(bu)2.5 G(iltin.).2 E F1(hostname)184 564 Q F0(Hostnames, as tak)224 576
 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 492 Q F0
+(HOSTFILE)2.5 E F0(shell v)2.25 E(ariable.)-.25 E F1(job)184 588 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 504 S
-(yw).1 E(ord)-.1 E F0(Shell reserv)224 516 Q(ed w)-.15 E 2.5(ords. May)
+(ay also be speci\214ed as)-5 E F1<ad6a>2.5 E F0(.)A F1 -.1(ke)184 600 S
+(yw).1 E(ord)-.1 E F0(Shell reserv)224 612 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
-528 Q F0(Names of running jobs, if job control is acti)5.54 E -.15(ve)
--.25 G(.).15 E F1(ser)184 540 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 552 Q
+624 Q F0(Names of running jobs, if job control is acti)5.54 E -.15(ve)
+-.25 G(.).15 E F1(ser)184 636 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 648 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 564 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 576 Q F0
-(Signal names.)14.99 E F1(stopped)184 588 Q F0
+(shopt)184 660 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 672 Q F0
+(Signal names.)14.99 E F1(stopped)184 684 Q F0
 (Names of stopped jobs, if job control is acti)6.66 E -.15(ve)-.25 G(.)
-.15 E F1(user)184 600 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 612 S
+.15 E F1(user)184 696 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 708 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 624 Q F2
-(globpat)2.5 E F0 1.411(The \214lename e)184 636 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 648 Q F1
-<ad57>144 660 Q F2(wor)2.5 E(dlist)-.37 E F0(The)184 672 Q F2(wor)3.639
-E(dlist)-.37 E F0 1.14(is split using the characters in the)3.639 F F3
-(IFS)3.64 E F0 1.14(special v)3.39 F 1.14(ariable as delimiters, and)
--.25 F 2.008(each resultant w)184 684 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 696 Q(ord being completed.)
--.1 E(GNU Bash-3.2)72 768 Q(2008 February 22)138.46 E(48)188.45 E 0 Cg
-EP
+(also be speci\214ed as)2.5 E F1<ad76>2.5 E F0(.)A(GNU Bash-3.2)72 768 Q
+(2008 April 5)148.455 E(48)198.445 E 0 Cg EP
 %%Page: 49 49
 %%BeginPageSetup
 BP
 %%EndPageSetup
 /F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
--.35 E/F1 10/Times-Bold@0 SF<ad43>144 84 Q/F2 10/Times-Italic@0 SF
-(command)2.5 E(command)184 96 Q F0 1.055(is e)3.555 F -.15(xe)-.15 G
-1.055(cuted in a subshell en).15 F 1.056
+-.35 E/F1 10/Times-Bold@0 SF<ad47>144 84 Q/F2 10/Times-Italic@0 SF
+(globpat)2.5 E F0 1.411(The \214lename e)184 96 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 108 Q F1
+<ad57>144 120 Q F2(wor)2.5 E(dlist)-.37 E F0(The)184 132 Q F2(wor)3.639
+E(dlist)-.37 E F0 1.14(is split using the characters in the)3.639 F/F3 9
+/Times-Bold@0 SF(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 144 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 156 Q(ord being completed.)-.1 E
+F1<ad43>144 168 Q F2(command)2.5 E(command)184 180 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 108 Q F1<ad46>144 120 Q F2(function)2.5 E F0 1.181
-(The shell function)184 132 R F2(function)3.681 E F0 1.181(is e)3.681 F
+184 192 Q F1<ad46>144 204 Q F2(function)2.5 E F0 1.181
+(The shell function)184 216 R F2(function)3.681 E F0 1.181(is e)3.681 F
 -.15(xe)-.15 G 1.181(cuted in the current shell en).15 F 3.68
 (vironment. When)-.4 F 1.18(it \214n-)3.68 F .932
-(ishes, the possible completions are retrie)184 144 R -.15(ve)-.25 G
-3.432(df).15 G .932(rom the v)-3.432 F .932(alue of the)-.25 F/F3 9
-/Times-Bold@0 SF(COMPREPL)3.432 E(Y)-.828 E F0(array)3.182 E -.25(va)184
-156 S(riable.).25 E F1<ad58>144 168 Q F2(\214lterpat)2.5 E(\214lterpat)
-184 180 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 192 R
-1.596(guments, and each completion)-.18 F(matching)184 204 Q F2
-(\214lterpat)3.205 E F0 .705(is remo)3.205 F -.15(ve)-.15 G 3.205(df).15
-G .704(rom the list.)-3.205 F 3.204(Al)5.704 G(eading)-3.204 E F1(!)
-3.204 E F0(in)3.204 E F2(\214lterpat)3.204 E F0(ne)3.204 E -.05(ga)-.15
-G .704(tes the pattern;).05 F(in this case, an)184 216 Q 2.5(yc)-.15 G
+(ishes, the possible completions are retrie)184 228 R -.15(ve)-.25 G
+3.432(df).15 G .932(rom the v)-3.432 F .932(alue of the)-.25 F F3
+(COMPREPL)3.432 E(Y)-.828 E F0(array)3.182 E -.25(va)184 240 S(riable.)
+.25 E F1<ad58>144 252 Q F2(\214lterpat)2.5 E(\214lterpat)184 264 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 276 R 1.596
+(guments, and each completion)-.18 F(matching)184 288 Q F2(\214lterpat)
+3.205 E F0 .705(is remo)3.205 F -.15(ve)-.15 G 3.205(df).15 G .704
+(rom the list.)-3.205 F 3.204(Al)5.704 G(eading)-3.204 E F1(!)3.204 E F0
+(in)3.204 E F2(\214lterpat)3.204 E F0(ne)3.204 E -.05(ga)-.15 G .704
+(tes the pattern;).05 F(in this case, an)184 300 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 228 Q F2(pr)2.5 E(e\214x)-.37 E(pr)
-184 240 Q(e\214x)-.37 E F0 .534(is added at the be)3.034 F .534
+-.15(ve)-.15 G(d.).15 E F1<ad50>144 312 Q F2(pr)2.5 E(e\214x)-.37 E(pr)
+184 324 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 252 Q F1<ad53>144 264 Q F2(suf)2.5 E
+-.15(ve)-.2 G(been applied.)184 336 Q F1<ad53>144 348 Q F2(suf)2.5 E
 2.81(\214x suf)-.18 F<8c78>-.18 E F0
 (is appended to each possible completion after all other options ha)2.5
-E .3 -.15(ve b)-.2 H(een applied.).15 E .467(The return v)144 280.8 R
+E .3 -.15(ve b)-.2 H(een applied.).15 E .467(The return v)144 364.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 292.8 R F2(name)3.861 E F0(ar)3.861 E 1.361
+(plied without a)144 376.8 R F2(name)3.861 E F0(ar)3.861 E 1.361
 (gument, an attempt is made to remo)-.18 F 1.662 -.15(ve a c)-.15 H
-1.362(ompletion speci\214cation for a).15 F F2(name)144 304.8 Q F0
+1.362(ompletion speci\214cation for a).15 F F2(name)144 388.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 321.6 Q F0([)2.5 E F2(n)A F0(])A 1.754(Resume the ne)144
-333.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.253(loop. If)4.254 F F2(n)4.613 E F0
-1.753(is speci\214ed,)4.493 F 1.208(resume at the)144 345.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
+F1(compopt)108 405.6 Q F0([)2.5 E F1<ad6f>A F2(option)2.5 E F0 2.5(][)C
+F1(+o)-2.5 E F2(option)2.5 E F0 2.5(][)C F2(name)-2.5 E F0(])A .447
+(Modify completion options for each)144 417.6 R F2(name)2.947 E F0 .447
+(according to the)2.947 F F2(option)2.947 E F0 .447
+(s, or for the currently-e)B -.15(xe)-.15 G(cution).15 E .725
+(completion if no)144 429.6 R F2(name)3.225 E F0 3.225(sa)C .725
+(re supplied.)-3.225 F .725(If no)5.725 F F2(option)3.225 E F0 3.225(sa)
+C .725(re gi)-3.225 F -.15(ve)-.25 G .726
+(n, display the completion options for).15 F(each)144 441.6 Q F2(name)
+3.224 E F0 .724(or the current completion.)3.224 F .724(The possible v)
+5.724 F .724(alues of)-.25 F F2(option)3.224 E F0 .724(are those v)3.224
+F .723(alid for the)-.25 F F1(com-)3.223 E(plete)144 453.6 Q F0 -.2(bu)
+2.5 G(iltin described abo).2 E -.15(ve)-.15 G(.).15 E .327(The return v)
+108 470.4 R .327(alue is true unless an in)-.25 F -.25(va)-.4 G .327
+(lid option is supplied, an attempt is made to modify the options for a)
+.25 F F2(name)108 482.4 Q F0(for which no completion speci\214cation e)
+2.5 E(xists, or an output error occurs.)-.15 E F1(continue)108 499.2 Q
+F0([)2.5 E F2(n)A F0(])A 1.754(Resume the ne)144 511.2 R 1.754
+(xt iteration of the enclosing)-.15 F F1 -.25(fo)4.254 G(r).25 E F0(,)A
+F1(while)4.254 E F0(,)A F1(until)4.254 E F0 4.254(,o)C(r)-4.254 E F1
+(select)4.254 E F0 4.253(loop. If)4.254 F F2(n)4.613 E F0 1.753
+(is speci\214ed,)4.493 F 1.208(resume at the)144 523.2 R F2(n)3.709 E F0
+1.209(th enclosing loop.)B F2(n)6.569 E F0 1.209(must be)3.949 F/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 .668
-(loops, the last enclosing loop \(the `)144 357.6 R(`top-le)-.74 E -.15
+(loops, the last enclosing loop \(the `)144 535.2 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 369.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 386.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
+144 547.2 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 564 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
-398.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.264
-(Declare v)144 410.4 R 1.264(ariables and/or gi)-.25 F 1.564 -.15(ve t)
+576 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.264
+(Declare v)144 588 R 1.264(ariables and/or gi)-.25 F 1.564 -.15(ve t)
 -.25 H 1.264(hem attrib).15 F 3.765(utes. If)-.2 F(no)3.765 E F2(name)
 3.765 E F0 3.765(sa)C 1.265(re gi)-3.765 F -.15(ve)-.25 G 3.765(nt).15 G
-1.265(hen display the v)-3.765 F 1.265(alues of)-.25 F -.25(va)144 422.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 F2(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 434.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 446.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 458.4 R(The)6.309 E F1<ad46>
-3.809 E F0 .191(option implies)144 470.4 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 482.4 Q(ute or to gi)
--.2 E .3 -.15(ve v)-.25 H(ariables attrib)-.1 E(utes:)-.2 E F1<ad61>144
-494.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 506.4 Q F0(Use function names only)26.97 E(.)-.65 E F1
-<ad69>144 518.4 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 .558(ARITHMETIC EV)3.058 F(ALU)
--1.215 E(A-)-.54 E(TION \))180 530.4 Q F0(is performed when the v)2.25 E
-(ariable is assigned a v)-.25 E(alue.)-.25 E F1<ad72>144 542.4 Q F0(Mak)
+1.265(hen display the v)-3.765 F 1.265(alues of)-.25 F -.25(va)144 600 S
+3.483(riables. The).25 F F1<ad70>3.483 E F0 .983
+(option will display the attrib)3.483 F .983(utes and v)-.2 F .982
+(alues of each)-.25 F F2(name)3.482 E F0 5.982(.W).18 G(hen)-5.982 E F1
+<ad70>3.482 E F0 .982(is used)3.482 F(with)144 612 Q F2(name)3.579 E F0
+(ar)3.579 E 1.079(guments, additional options are ignored.)-.18 F(When)
+6.079 E F1<ad70>3.579 E F0 1.079(is supplied without)3.579 F F2(name)
+3.58 E F0(ar)3.58 E(gu-)-.18 E .151(ments, it will display the attrib)
+144 624 R .151(utes and v)-.2 F .151(alues of all v)-.25 F .15
+(ariables ha)-.25 F .15(ving the attrib)-.2 F .15
+(utes speci\214ed by the)-.2 F .046(additional options.)144 636 R .046
+(If no other options are supplied with)5.046 F F1<ad70>2.547 E F0(,)A F1
+(declar)2.547 E(e)-.18 E F0 .047(will display the attrib)2.547 F .047
+(utes and)-.2 F -.25(va)144 648 S 1.363(lues of all shell v).25 F 3.863
+(ariables. The)-.25 F F1<ad66>3.863 E F0 1.362
+(option will restrict the display to shell functions.)3.863 F(The)6.362
+E F1<ad46>3.862 E F0 2.422(option inhibits the display of function de\
+\214nitions; only the function name and attrib)144 660 R 2.423(utes are)
+-.2 F 2.664(printed. If)144 672 R(the)2.664 E F1(extdeb)2.664 E(ug)-.2 E
+F0 .164(shell option is enabled using)2.664 F F1(shopt)2.664 E F0 2.664
+(,t)C .163(he source \214le name and line number)-2.664 F 1.382
+(where the function is de\214ned are displayed as well.)144 684 R(The)
+6.382 E F1<ad46>3.882 E F0 1.382(option implies)3.882 F F1<ad66>3.882 E
+F0 6.382(.T)C 1.382(he follo)-6.382 F(wing)-.25 E .794
+(options can be used to restrict output to v)144 696 R .794
+(ariables with the speci\214ed attrib)-.25 F .793(ute or to gi)-.2 F
+1.093 -.15(ve v)-.25 H(ariables)-.1 E(attrib)144 708 Q(utes:)-.2 E
+(GNU Bash-3.2)72 768 Q(2008 April 5)148.455 E(49)198.445 E 0 Cg EP
+%%Page: 50 50
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
+-.35 E/F1 10/Times-Bold@0 SF<ad61>144 84 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 96 Q
+F0(Use function names only)26.97 E(.)-.65 E F1<ad69>144 108 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 120 Q F0(is performed when the v)2.25 E
+(ariable is assigned a v)-.25 E(alue.)-.25 E F1<ad72>144 132 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 554.4 Q
-F1<ad74>144 566.4 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.93 E F1(RETURN)2.93 E F0
-(traps from the calling shell.)180 578.4 Q(The trace attrib)5 E
-(ute has no special meaning for v)-.2 E(ariables.)-.25 E F1<ad78>144
-590.4 Q F0(Mark)25.3 E F2(name)2.5 E F0 2.5(sf)C(or e)-2.5 E
-(xport to subsequent commands via the en)-.15 E(vironment.)-.4 E .121
-(Using `+' instead of `\255' turns of)144 607.2 R 2.621(ft)-.25 G .121
-(he attrib)-2.621 F .121(ute instead, with the e)-.2 F .12
-(xceptions that)-.15 F F1(+a)2.62 E F0 .12(may not be used)2.62 F 1.236
-(to destro)144 619.2 R 3.736(ya)-.1 G 3.737(na)-3.736 G 1.237(rray v)
--3.737 F 1.237(ariable and)-.25 F F1 1.237(+r will not r)3.737 F(emo)
--.18 E 1.437 -.1(ve t)-.1 H 1.237(he r).1 F 1.237(eadonly attrib)-.18 F
-3.737(ute. When)-.2 F 1.237(used in a)3.737 F .312(function, mak)144
-631.2 R .312(es each)-.1 F F2(name)2.812 E F1 .311
+(alues by subsequent)-.25 F(assignment statements or unset.)180 144 Q F1
+<ad74>144 156 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.93 E F1(RETURN)2.93 E F0(traps from the calling shell.)
+180 168 Q(The trace attrib)5 E(ute has no special meaning for v)-.2 E
+(ariables.)-.25 E F1<ad78>144 180 Q F0(Mark)25.3 E F2(name)2.5 E F0 2.5
+(sf)C(or e)-2.5 E(xport to subsequent commands via the en)-.15 E
+(vironment.)-.4 E .121(Using `+' instead of `\255' turns of)144 196.8 R
+2.621(ft)-.25 G .121(he attrib)-2.621 F .121(ute instead, with the e)-.2
+F .12(xceptions that)-.15 F F1(+a)2.62 E F0 .12(may not be used)2.62 F
+1.236(to destro)144 208.8 R 3.736(ya)-.1 G 3.737(na)-3.736 G 1.237
+(rray v)-3.737 F 1.237(ariable and)-.25 F F1 1.237(+r will not r)3.737 F
+(emo)-.18 E 1.437 -.1(ve t)-.1 H 1.237(he r).1 F 1.237(eadonly attrib)
+-.18 F 3.737(ute. When)-.2 F 1.237(used in a)3.737 F .312(function, mak)
+144 220.8 R .312(es each)-.1 F F2(name)2.812 E F1 .311
 (local, as with the local)2.812 F F0 2.811(command. If)2.811 F 2.811(av)
 2.811 G .311(ariable name is follo)-3.061 F .311(wed by)-.25 F(=)144
-643.2 Q F2(value)A F0 3.238(,t)C .738(he v)-3.238 F .738(alue of the v)
+232.8 Q F2(value)A F0 3.238(,t)C .738(he v)-3.238 F .738(alue of the v)
 -.25 F .738(ariable is set to)-.25 F F2(value)3.238 E F0 5.738(.T)C .738
 (he return v)-5.738 F .739(alue is 0 unless an in)-.25 F -.25(va)-.4 G
 .739(lid option is).25 F .603
-(encountered, an attempt is made to de\214ne a function using)144 655.2
-R/F5 10/Courier@0 SF .603(\255f foo=bar)3.103 F F0 3.103(,a)C 3.103(na)
--3.103 G .603(ttempt is made to)-3.103 F 1.242(assign a v)144 667.2 R
+(encountered, an attempt is made to de\214ne a function using)144 244.8
+R/F4 10/Courier@0 SF .603(\255f foo=bar)3.103 F F0 3.103(,a)C 3.103(na)
+-3.103 G .603(ttempt is made to)-3.103 F 1.242(assign a v)144 256.8 R
 1.242(alue to a readonly v)-.25 F 1.242
 (ariable, an attempt is made to assign a v)-.25 F 1.243
 (alue to an array v)-.25 F(ariable)-.25 E 1.386
-(without using the compound assignment syntax \(see)144 679.2 R F1
+(without using the compound assignment syntax \(see)144 268.8 R F1
 (Arrays)3.886 E F0(abo)3.886 E -.15(ve)-.15 G 1.386(\), one of the).15 F
-F2(names)3.886 E F0 1.386(is not a)3.886 F -.25(va)144 691.2 S .171
+F2(names)3.886 E F0 1.386(is not a)3.886 F -.25(va)144 280.8 S .171
 (lid shell v).25 F .171(ariable name, an attempt is made to turn of)-.25
 F 2.671(fr)-.25 G .171(eadonly status for a readonly v)-2.671 F .172
-(ariable, an)-.25 F .96(attempt is made to turn of)144 703.2 R 3.46(fa)
+(ariable, an)-.25 F .96(attempt is made to turn of)144 292.8 R 3.46(fa)
 -.25 G .96(rray status for an array v)-3.46 F .96
-(ariable, or an attempt is made to display a)-.25 F(non-e)144 715.2 Q
-(xistent function with)-.15 E F1<ad66>2.5 E F0(.)A(GNU Bash-3.2)72 768 Q
-(2008 February 22)138.46 E(49)188.45 E 0 Cg EP
-%%Page: 50 50
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
--.35 E/F1 10/Times-Bold@0 SF(dirs [+)108 84 Q/F2 10/Times-Italic@0 SF(n)
-A F1 2.5(][)C<ad>-2.5 E F2(n)A F1 2.5(][)C(\255cplv])-2.5 E F0 -.4(Wi)
-144 96 S .328
+(ariable, or an attempt is made to display a)-.25 F(non-e)144 304.8 Q
+(xistent function with)-.15 E F1<ad66>2.5 E F0(.)A F1(dirs [+)108 321.6
+Q F2(n)A F1 2.5(][)C<ad>-2.5 E F2(n)A F1 2.5(][)C(\255cplv])-2.5 E F0
+-.4(Wi)144 333.6 S .328
 (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 108 R 1.238
-(Directories are added to the list with the)6.238 F F1(pushd)144 120 Q
+(single line with directory names separated by spaces.)144 345.6 R 1.238
+(Directories are added to the list with the)6.238 F F1(pushd)144 357.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 132 Q F2(n)A F0 1.564
-(Displays the)25.3 F F2(n)4.064 E F0 1.565
+2.5(se).15 G(ntries from the list.)-2.5 E F1(+)144 369.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 144 Q F1<ad>144 156 Q F2(n)A
-F0 1.194(Displays the)25.3 F F2(n)3.694 E F0 1.194
+(without options, starting with zero.)180 381.6 Q F1<ad>144 393.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 168 Q F1<ad63>144 180 Q F0
+(without options, starting with zero.)180 405.6 Q F1<ad63>144 417.6 Q F0
 (Clears the directory stack by deleting all of the entries.)25.86 E F1
-<ad6c>144 192 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 204 Q(.)-.65 E F1<ad70>144 216 Q F0
+<ad6c>144 429.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 441.6 Q(.)-.65 E F1<ad70>144 453.6 Q F0
 (Print the directory stack with one entry per line.)24.74 E F1<ad76>144
-228 Q F0 .273(Print the directory stack with one entry per line, pre\
+465.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 240 Q .257(The return v)144 256.8 R .258
+G(he)-2.772 E(stack.)180 477.6 Q .257(The return v)144 494.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 268.8 Q F1(diso)108 285.6 Q(wn)-.1 E F0([)2.5 E F1
+.15 F(tory stack.)144 506.4 Q F1(diso)108 523.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 297.6 S .295(thout options, each).4 F F2(jobspec)
+(...])2.5 E -.4(Wi)144 535.2 S .295(thout options, each).4 F F2(jobspec)
 4.535 E F0 .295(is remo)3.105 F -.15(ve)-.15 G 2.795(df).15 G .295
 (rom the table of acti)-2.795 F .595 -.15(ve j)-.25 H 2.795(obs. If).15
 F F2(jobspec)4.535 E F0 .295(is not present,)3.105 F .243(and neither)
-144 309.6 R F1 .243(\255a nor \255r is supplied, the shell')2.743 F
+144 547.2 R F1 .243(\255a nor \255r is supplied, the shell')2.743 F
 2.743(sn)-.37 G .243(otion of the)-2.743 F F2(curr)2.743 E .243(ent job)
 -.37 F F1 .243(is used.)2.743 F .244(If the \255h option)5.243 F .334
-(is gi)144 321.6 R -.1(ve)-.1 G .334(n, each).1 F F2(jobspec)4.574 E F0
+(is gi)144 559.2 R -.1(ve)-.1 G .334(n, each).1 F F2(jobspec)4.574 E F0
 .334(is not remo)3.144 F -.15(ve)-.15 G 2.834(df).15 G .334
 (rom the table, b)-2.834 F .334(ut is mark)-.2 F .334(ed so that)-.1 F
-/F3 9/Times-Bold@0 SF(SIGHUP)2.834 E F0 .333(is not sent to)2.584 F
-1.189(the job if the shell recei)144 333.6 R -.15(ve)-.25 G 3.689(sa).15
-G F3(SIGHUP)A/F4 9/Times-Roman@0 SF(.)A F0 1.189(If no)5.689 F F2
-(jobspec)5.429 E F0 1.189(is present, and neither the)3.999 F F1<ad61>
-3.689 E F0 1.19(nor the)3.69 F F1<ad72>3.69 E F0 1.57
-(option is supplied, the)144 345.6 R F2(curr)4.07 E 1.57(ent job)-.37 F
-F0 1.57(is used.)4.07 F 1.569(If no)6.569 F F2(jobspec)5.809 E F0 1.569
-(is supplied, the)4.379 F F1<ad61>4.069 E F0 1.569(option means to)4.069
-F(remo)144 357.6 Q .903 -.15(ve o)-.15 H 3.103(rm).15 G .603
-(ark all jobs; the)-3.103 F F1<ad72>3.103 E F0 .603(option without a)
-3.103 F F2(jobspec)4.843 E F0(ar)3.414 E .604
-(gument restricts operation to running)-.18 F 2.5(jobs. The)144 369.6 R
-(return v)2.5 E(alue is 0 unless a)-.25 E F2(jobspec)4.24 E F0
-(does not specify a v)2.81 E(alid job)-.25 E(.)-.4 E F1(echo)108 386.4 Q
+F3(SIGHUP)2.834 E F0 .333(is not sent to)2.584 F 1.189
+(the job if the shell recei)144 571.2 R -.15(ve)-.25 G 3.689(sa).15 G F3
+(SIGHUP)A/F5 9/Times-Roman@0 SF(.)A F0 1.189(If no)5.689 F F2(jobspec)
+5.429 E F0 1.189(is present, and neither the)3.999 F F1<ad61>3.689 E F0
+1.19(nor the)3.69 F F1<ad72>3.69 E F0 1.57(option is supplied, the)144
+583.2 R F2(curr)4.07 E 1.57(ent job)-.37 F F0 1.57(is used.)4.07 F 1.569
+(If no)6.569 F F2(jobspec)5.809 E F0 1.569(is supplied, the)4.379 F F1
+<ad61>4.069 E F0 1.569(option means to)4.069 F(remo)144 595.2 Q .903
+-.15(ve o)-.15 H 3.103(rm).15 G .603(ark all jobs; the)-3.103 F F1<ad72>
+3.103 E F0 .603(option without a)3.103 F F2(jobspec)4.843 E F0(ar)3.414
+E .604(gument restricts operation to running)-.18 F 2.5(jobs. The)144
+607.2 R(return v)2.5 E(alue is 0 unless a)-.25 E F2(jobspec)4.24 E F0
+(does not specify a v)2.81 E(alid job)-.25 E(.)-.4 E F1(echo)108 624 Q
 F0([)2.5 E F1(\255neE)A F0 2.5(][)C F2(ar)-2.5 E(g)-.37 E F0(...])2.5 E
-.395(Output the)144 398.4 R F2(ar)2.895 E(g)-.37 E F0 .395
+.395(Output the)144 636 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 .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 410.4 R .548(wline is suppressed.)
+(is speci\214ed, the trailing ne)144 648 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 422.4 Q
+-.15(ve)-.25 G .548(n, interpretation of the fol-).15 F(lo)144 660 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 434.4 R -.15(ve)-.25 G 4.002(no).15 G
+F 1.502(escape characters, e)144 672 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 446.4 R
-F1(echo)2.509 E F0 -.15(ex)2.509 G .009(pands these escape characters)
-.15 F .659(by def)144 458.4 R(ault.)-.1 E F1(echo)5.659 E F0 .659
+(option may be used to dynamically determine whether or not)144 684 R F1
+(echo)2.509 E F0 -.15(ex)2.509 G .009(pands these escape characters).15
+F .659(by def)144 696 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 470.4 Q
-F1(\\a)144 482.4 Q F0(alert \(bell\))28.22 E F1(\\b)144 494.4 Q F0
-(backspace)27.66 E F1(\\c)144 506.4 Q F0(suppress trailing ne)28.78 E
-(wline)-.25 E F1(\\e)144 518.4 Q F0(an escape character)28.78 E F1(\\f)
-144 530.4 Q F0(form feed)29.89 E F1(\\n)144 542.4 Q F0(ne)27.66 E 2.5
-(wl)-.25 G(ine)-2.5 E F1(\\r)144 554.4 Q F0(carriage return)28.78 E F1
-(\\t)144 566.4 Q F0(horizontal tab)29.89 E F1(\\v)144 578.4 Q F0 -.15
-(ve)28.22 G(rtical tab).15 E F1(\\\\)144 590.4 Q F0(backslash)30.44 E F1
-(\\0)144 602.4 Q F2(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(\\x)144 614.4 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 631.2 Q F0([)2.5 E
-F1<ad61>A F0 2.5(][)C F1(\255dnps)-2.5 E F0 2.5(][)C F1<ad66>-2.5 E F2
-(\214lename)2.5 E F0 2.5(][)C F2(name)-2.5 E F0(...])2.5 E .278
-(Enable and disable b)144 643.2 R .278(uiltin shell commands.)-.2 F .278
-(Disabling a b)5.278 F .278(uiltin allo)-.2 F .278
-(ws a disk command which has)-.25 F .833(the same name as a shell b)144
-655.2 R .834(uiltin to be e)-.2 F -.15(xe)-.15 G .834
-(cuted without specifying a full pathname, e).15 F -.15(ve)-.25 G 3.334
-(nt).15 G(hough)-3.334 E .99(the shell normally searches for b)144 667.2
-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 679.2 R F2(names)4.082 E F0 1.582(are enabled.)
+(interprets the follo)3.16 F(wing)-.25 E(escape sequences:)144 708 Q
+(GNU Bash-3.2)72 768 Q(2008 April 5)148.455 E(50)198.445 E 0 Cg EP
+%%Page: 51 51
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
+-.35 E/F1 10/Times-Bold@0 SF(\\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
+(\\x)144 216 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 232.8 Q F0([)2.5 E F1<ad61>A F0 2.5(][)C F1(\255dnps)-2.5 E
+F0 2.5(][)C F1<ad66>-2.5 E F2(\214lename)2.5 E F0 2.5(][)C F2(name)-2.5
+E F0(...])2.5 E .278(Enable and disable b)144 244.8 R .278
+(uiltin shell commands.)-.2 F .278(Disabling a b)5.278 F .278
+(uiltin allo)-.2 F .278(ws a disk command which has)-.25 F .833
+(the same name as a shell b)144 256.8 R .834(uiltin to be e)-.2 F -.15
+(xe)-.15 G .834(cuted without specifying a full pathname, e).15 F -.15
+(ve)-.25 G 3.334(nt).15 G(hough)-3.334 E .99
+(the shell normally searches for b)144 268.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 280.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 -.666(PA)4.082
-G(TH)-.189 E F0 .081(instead of the shell b)144 691.2 R .081(uiltin v)
--.2 F .081(ersion, run)-.15 F/F5 10/Courier@0 SF .081(enable -n test)
-2.581 F F0 5.081(.T)C(he)-5.081 E F1<ad66>2.58 E F0 .08
-(option means to load the ne)2.58 F(w)-.25 E -.2(bu)144 703.2 S 1.524
+F1(test)4.082 E F0 1.582(binary found via the)4.082 F/F3 9/Times-Bold@0
+SF -.666(PA)4.082 G(TH)-.189 E F0 .081(instead of the shell b)144 292.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 304.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 715.2 Q F1<ad64>
+(ystems that support dynamic loading.)-4.024 F(The)144 316.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 727.2 R F1<ad70>
+-.18 F -.15(ve)-.25 G .366(n, or).15 F .398(if the)144 328.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 .399(guments, the)-.18 F(GNU Bash-3.2)72 768 Q(2008 February 22)138.46
-E(50)188.45 E 0 Cg EP
-%%Page: 51 51
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
--.35 E .099(list consists of all enabled shell b)144 84 R 2.598
-(uiltins. If)-.2 F/F1 10/Times-Bold@0 SF<ad6e>2.598 E F0 .098
+F .399(guments, the)-.18 F .099(list consists of all enabled shell b)144
+340.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 96 R 1.916
+(is supplied, the list printed includes all b)144 352.8 R 1.916
 (uiltins, with an indication of whether or not each is)-.2 F 2.879
-(enabled. If)144 108 R F1<ad73>2.879 E F0 .379
-(is supplied, the output is restricted to the POSIX)2.879 F/F2 10
-/Times-Italic@0 SF(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 120 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 132 Q F1 -2.3 -.15(ev a)108
-148.8 T(l).15 E F0([)2.5 E F2(ar)A(g)-.37 E F0(...])2.5 E(The)144 160.8
-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 172.8 R -.15(xe)-.15 G
-.495(cuted by the shell, and its e).15 F .495
+(enabled. If)144 364.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 376.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
+388.8 Q F1 -2.3 -.15(ev a)108 405.6 T(l).15 E F0([)2.5 E F2(ar)A(g)-.37
+E F0(...])2.5 E(The)144 417.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 429.6 R -.15(xe)-.15
+G .495(cuted by the shell, and its e).15 F .495
 (xit status is returned as the v)-.15 F .495(alue of)-.25 F F1 -2.3 -.15
 (ev a)2.995 H(l).15 E F0 5.495(.I)C 2.995(ft)-5.495 G .495(here are no)
--2.995 F F2(ar)2.995 E(gs)-.37 E F0(,).27 E(or only null ar)144 184.8 Q
+-2.995 F F2(ar)2.995 E(gs)-.37 E F0(,).27 E(or only null ar)144 441.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 201.6 Q F0([)2.5 E F1(\255cl)A F0 2.5(][)C F1<ad61>-2.5 E F2
+(exec)108 458.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 213.6 Q F2(command)3.006 E F0 .306
+-.37 E F0(]])A(If)144 470.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 225.6 R .176
+(guments)-.37 E F0(become)3.075 E .176(the ar)144 482.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 .177
-(ginning of)-.15 F .5(the zeroth ar)144 237.6 R .5(gument passed to)-.18
+(ginning of)-.15 F .5(the zeroth ar)144 494.4 R .5(gument passed to)-.18
 F F2(command)3 E F0 5.499(.T).77 G .499(his is what)-5.499 F F2(lo)2.999
 E(gin)-.1 E F0 .499(\(1\) does.).24 F(The)5.499 E F1<ad63>2.999 E F0
-.499(option causes)2.999 F F2(com-)3.199 E(mand)144 249.6 Q F0 .638
+.499(option causes)2.999 F F2(com-)3.199 E(mand)144 506.4 Q F0 .638
 (to be e)3.908 F -.15(xe)-.15 G .638(cuted with an empty en).15 F 3.138
 (vironment. If)-.4 F F1<ad61>3.138 E F0 .638
 (is supplied, the shell passes)3.138 F F2(name)3.499 E F0 .639(as the)
-3.319 F 1.078(zeroth ar)144 261.6 R 1.077(gument to the e)-.18 F -.15
+3.319 F 1.078(zeroth ar)144 518.4 R 1.077(gument to the e)-.18 F -.15
 (xe)-.15 G 1.077(cuted command.).15 F(If)6.077 E F2(command)3.777 E F0
 1.077(cannot be e)4.347 F -.15(xe)-.15 G 1.077(cuted for some reason, a)
-.15 F(non-interacti)144 273.6 Q .617 -.15(ve s)-.25 H .317(hell e).15 F
+.15 F(non-interacti)144 530.4 Q .617 -.15(ve s)-.25 H .317(hell e).15 F
 .317(xits, unless the shell option)-.15 F F1(execfail)2.817 E F0 .318
 (is enabled, in which case it returns f)2.817 F(ail-)-.1 E 2.505
-(ure. An)144 285.6 R(interacti)2.505 E .305 -.15(ve s)-.25 H .005
+(ure. An)144 542.4 R(interacti)2.505 E .305 -.15(ve s)-.25 H .005
 (hell returns f).15 F .005(ailure if the \214le cannot be e)-.1 F -.15
 (xe)-.15 G 2.505(cuted. If).15 F F2(command)2.705 E F0 .005
-(is not speci\214ed,)3.275 F(an)144 297.6 Q 3.036(yr)-.15 G .536
+(is not speci\214ed,)3.275 F(an)144 554.4 Q 3.036(yr)-.15 G .536
 (edirections tak)-3.036 F 3.036(ee)-.1 G -.25(ff)-3.036 G .536
 (ect in the current shell, and the return status is 0.).25 F .536
-(If there is a redirection)5.536 F(error)144 309.6 Q 2.5(,t)-.4 G
-(he return status is 1.)-2.5 E F1(exit)108 326.4 Q F0([)2.5 E F2(n)A F0
+(If there is a redirection)5.536 F(error)144 566.4 Q 2.5(,t)-.4 G
+(he return status is 1.)-2.5 E F1(exit)108 583.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 338.4 S 2.5(cuted. A).15 F(trap on)2.5 E/F3 9
-/Times-Bold@0 SF(EXIT)2.5 E F0(is e)2.25 E -.15(xe)-.15 G
-(cuted before the shell terminates.).15 E F1(export)108 355.2 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 367.2 Q F0 .256(The supplied)144 379.2 R
-F2(names)3.117 E F0 .257(are mark)3.027 F .257(ed for automatic e)-.1 F
-.257(xport to the en)-.15 F .257(vironment of subsequently e)-.4 F -.15
-(xe)-.15 G(cuted).15 E 2.627(commands. If)144 391.2 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 .126
-(n, or if the).15 F F1<ad70>144 403.2 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 415.2 R 1.587
+-.15 F -.15(exe)144 595.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 612 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 624 Q F0
+.256(The supplied)144 636 R F2(names)3.117 E F0 .257(are mark)3.027 F
+.257(ed for automatic e)-.1 F .257(xport to the en)-.15 F .257
+(vironment of subsequently e)-.4 F -.15(xe)-.15 G(cuted).15 E 2.627
+(commands. If)144 648 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 .126(n, or if the).15 F F1<ad70>
+144 660 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 672 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.586(ariable name is follo)-4.336 F 1.586(wed by)-.25 F(=)144 427.2 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
+1.586(ariable name is follo)-4.336 F 1.586(wed by)-.25 F(=)144 684 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 .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 439.2 R F2(names)2.793 E F0 .293
+(option is encountered, one of the)144 696 R F2(names)2.793 E F0 .293
 (is not a v)2.793 F .293(alid shell v)-.25 F .293(ariable name, or)-.25
-F F1<ad66>2.793 E F0 .293(is supplied with a)2.793 F F2(name)144.36
-451.2 Q F0(that is not a function.)2.68 E F1(fc)108 468 Q F0([)2.5 E F1
-<ad65>A F2(ename)2.5 E F0 2.5(][)C F1(\255lnr)-2.5 E F0 2.5(][)C F2
-<8c72>-2.5 E(st)-.1 E F0 2.5(][)C F2(last)-2.5 E F0(])A F1(fc \255s)108
-480 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 492 R .478
+F F1<ad66>2.793 E F0 .293(is supplied with a)2.793 F F2(name)144.36 708
+Q F0(that is not a function.)2.68 E(GNU Bash-3.2)72 768 Q(2008 April 5)
+148.455 E(51)198.445 E 0 Cg EP
+%%Page: 52 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/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(\255lnr)-2.5 E F0 2.5(][)C
+F2<8c72>-2.5 E(st)-.1 E F0 2.5(][)C F2(last)-2.5 E F0(])A F1(fc \255s)
+108 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 504 R F2 -.45(Fi)
+(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
-516 R 3.297(xi)-.15 G .797(nto the history list, where a ne)-3.297 F
+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 528 Q .277(fset from the current command number\).)-.25 F
+.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 540 R/F4 10/Courier@0 SF .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<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 552 Q
-(vious command for editing and \25516 for listing.)-.25 E(The)144 576 Q
+(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
 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 588 R .438(If the)5.438
+(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
-.335(the editor gi)144 600 R -.15(ve)-.25 G 2.835(nb).15 G(y)-2.835 E F2
+.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.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 612 R .63(alue of the)-.25 F F3(FCEDIT)3.13 E F0
--.25(va)2.88 G .631(riable is used, and the v).25 F .631(alue of)-.25 F
-F3(EDIT)3.131 E(OR)-.162 E F0(if)2.881 E F3(FCEDIT)3.131 E F0 .631
-(is not set.)2.881 F .631(If nei-)5.631 F .951(ther v)144 624 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 636 S(cuted.).15 E .039(In the second form,)144 660 R F2
+(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 672 R F4 .406(r='fc \255s')2.906 F F0
-2.906(,s)C 2.906(ot)-2.906 G .406(hat typing)-2.906 F F4 6.406(rc)2.906
+(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 F4(cc)144 684 Q F0(and typing)2.5 E F4(r)2.5 E F0(re-e)2.5 E -.15
+-.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 708 R .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 .455(specify history lines out of range.)144 720 R
+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(GNU Bash-3.2)72 768 Q(2008 February 22)138.46 E(51)
-188.45 E 0 Cg EP
-%%Page: 52 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 .787(last command e)144 84 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 .788(If the)5.788 F 1.136
+(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
+.788(If the)5.788 F 1.136
 (second form is used, the return status is that of the command re-e)144
-96 R -.15(xe)-.15 G 1.135(cuted, unless).15 F/F1 10/Times-Italic@0 SF
-(cmd)3.835 E F0 1.135(does not)4.405 F(specify a v)144 108 Q
-(alid history line, in which case)-.25 E/F2 10/Times-Bold@0 SF(fc)2.5 E
-F0(returns f)2.5 E(ailure.)-.1 E F2(fg)108 124.8 Q F0([)2.5 E F1
-(jobspec)A F0(])A(Resume)144 136.8 Q F1(jobspec)5.653 E F0 1.413
-(in the fore)4.223 F 1.413(ground, and mak)-.15 F 3.913(ei)-.1 G 3.913
-(tt)-3.913 G 1.413(he current job)-3.913 F 6.413(.I)-.4 G(f)-6.413 E F1
-(jobspec)5.653 E F0 1.414(is not present, the)4.223 F(shell')144 148.8 Q
-3.117(sn)-.55 G .617(otion of the)-3.117 F F1(curr)3.117 E .617(ent job)
--.37 F F0 .617(is used.)3.117 F .617(The return v)5.617 F .616
-(alue is that of the command placed into the)-.25 F(fore)144 160.8 Q
+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.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 F1(jobspec)145.74 172.8 Q
-F0 .004(does not specify a v)2.815 F .004(alid job or)-.25 F F1(jobspec)
+(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 F2(getopts)108 189.6 Q F1
-(optstring name)2.5 E F0([)2.5 E F1(ar)A(gs)-.37 E F0(])A F2(getopts)144
-201.6 Q F0 .793
-(is used by shell procedures to parse positional parameters.)3.293 F F1
+(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 213.6 R .149
+(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 225.6 Q .578
+-.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 237.6 R 1.665
-(Each time it is in)6.665 F -.2(vo)-.4 G -.1(ke).2 G(d,).1 E F2(getopts)
+(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 249.6 R(ariable)-.25 E F1(name)3.296 E F0
-3.296(,i).18 G(nitializing)-3.296 E F1(name)3.657 E F0 .797
+(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 261.6 Q .085
-(gument to be processed into the v)-.18 F(ariable)-.25 E/F3 9
-/Times-Bold@0 SF(OPTIND)2.585 E/F4 9/Times-Roman@0 SF(.)A F3(OPTIND)
-4.585 E F0 .085(is initialized to 1 each time the shell)2.335 F .845
-(or a shell script is in)144 273.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 F2
+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 .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 285.6 R(ariable)-.25 E F3(OPT)3.304 E(ARG)-.81 E F4(.)A
-F0 .803(The shell does not reset)5.304 F F3(OPTIND)3.303 E F0 .803
+(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 297.6 R F2(getopts)2.793 E F0 .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 .294(et of parameters)-2.793 F(is to be used.)144 309.6
-Q 2.044(When the end of options is encountered,)144 333.6 R F2(getopts)
+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 F2(OPTIND)144 345.6 Q F0
+(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 F2(name)2.5 E F0
-(is set to ?.)2.5 E F2(getopts)144 369.6 Q F0 2.392
+(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 F1(ar)4.893 E(gs)-.37 E F0(,).27 E F2(getopts)144
-381.6 Q F0(parses those instead.)2.5 E F2(getopts)144 405.6 Q F0 1.166
+(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 F1(optstring)3.895 E F0 1.165
-(is a colon,)3.885 F F1(silent)4.005 E F0(error)4.345 E 1.263
-(reporting is used.)144 417.6 R 1.263
+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 .394(missing option ar)144
-429.6 R .394(guments are encountered.)-.18 F .394(If the v)5.394 F
-(ariable)-.25 E F3(OPTERR)2.894 E F0 .394
-(is set to 0, no error messages)2.644 F(will be displayed, e)144 441.6 Q
+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 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
-F1(optstring)2.73 E F0(is not a colon.)2.72 E .666(If an in)144 465.6 R
--.25(va)-.4 G .666(lid option is seen,).25 F F2(getopts)3.166 E F0 .667
-(places ? into)3.167 F F1(name)3.527 E F0 .667
-(and, if not silent, prints an error message)3.347 F .4(and unsets)144
-477.6 R F3(OPT)2.9 E(ARG)-.81 E F4(.)A F0(If)4.899 E F2(getopts)2.899 E
-F0 .399(is silent, the option character found is placed in)2.899 F F3
-(OPT)2.899 E(ARG)-.81 E F0 .399(and no)2.649 F
-(diagnostic message is printed.)144 489.6 Q 1.241(If a required ar)144
-513.6 R 1.241(gument is not found, and)-.18 F F2(getopts)3.741 E F0
-1.241(is not silent, a question mark \()3.741 F F2(?).833 E F0 3.742
-(\)i).833 G 3.742(sp)-3.742 G 1.242(laced in)-3.742 F F1(name)144 525.6
-Q F0(,).18 E F3(OPT)2.735 E(ARG)-.81 E F0 .234
-(is unset, and a diagnostic message is printed.)2.485 F(If)5.234 E F2
-(getopts)2.734 E F0 .234(is silent, then a colon \()2.734 F F2(:).833 E
-F0(\)).833 E(is placed in)144 537.6 Q F1(name)2.86 E F0(and)2.68 E F3
-(OPT)2.5 E(ARG)-.81 E F0(is set to the option character found.)2.25 E F2
-(getopts)144 561.6 Q F0 .902
+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(2008 April 5)148.455 E(52)198.445 E 0 Cg EP
+%%Page: 53 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 .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.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 573.6 Q F2(hash)108
-590.4 Q F0([)2.5 E F2(\255lr)A F0 2.5(][)C F2<ad70>-2.5 E F1(\214lename)
-2.5 E F0 2.5(][)C F2(\255dt)-2.5 E F0 2.5(][)C F1(name)-2.5 E F0(])A
--.15(Fo)144 602.4 S 3.555(re).15 G(ach)-3.555 E F1(name)3.555 E F0 3.555
-(,t).18 G 1.054(he full \214le name of the command is determined by sea\
-rching the directories in)-3.555 F F2($P)144 614.4 Q -.95(AT)-.74 G(H)
-.95 E F0 .349(and remembered.)2.849 F .349(If the)5.349 F F2<ad70>2.849
-E F0 .349(option is supplied, no path search is performed, and)2.849 F
-F1(\214lename)4.76 E F0 .452
-(is used as the full \214le name of the command.)144 626.4 R(The)5.452 E
-F2<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 638.4 R(The)5.592 E F2
+(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 F1(name)3.093 E F0(.)A .021
-(If the)144 650.4 R F2<ad74>2.521 E F0 .021
-(option is supplied, the full pathname to which each)2.521 F F1(name)
+(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 662.4 Q F1(name)3.703 E F0(ar)3.703 E 1.203
-(guments are supplied with)-.18 F F2<ad74>3.703 E F0 3.703(,t)C(he)
--3.703 E F1(name)3.703 E F0 1.204
-(is printed before the hashed full pathname.)3.703 F(The)144 674.4 Q F2
+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 686.4 R -.15(ve)-.25 G 1.183(n, or if only).15 F
-F2<ad6c>3.683 E F0 1.184
+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 698.4 Q F1(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(GNU Bash-3.2)72 768 Q(2008 February 22)138.46 E(52)188.45 E 0 Cg EP
-%%Page: 53 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(help)108 84 Q F0([)2.5 E F1<ad73>A F0 2.5
-(][)C/F2 10/Times-Italic@0 SF(pattern)-2.5 E F0(])A .867
-(Display helpful information about b)144 96 R .867(uiltin commands.)-.2
-F(If)5.867 E F2(pattern)4.617 E F0 .866(is speci\214ed,)3.607 F F1(help)
-3.366 E F0(gi)3.366 E -.15(ve)-.25 G 3.366(sd).15 G(etailed)-3.366 E
-.306(help on all commands matching)144 108 R F2(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 120 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 132
-Q F2(pattern)2.5 E F0(.).24 E F1(history [)108 148.8 Q F2(n)A F1(])A
-(history \255c)108 160.8 Q(history \255d)108 172.8 Q F2(of)2.5 E(fset)
--.18 E F1(history \255anrw)108 184.8 Q F0([)2.5 E F2(\214lename)A F0(])A
-F1(history \255p)108 196.8 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 208.8 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
-220.8 S .752
+3.096 F(The)5.596 E(return status is 0 unless no command matches)144
+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.252 E F0(ha)3.252 E -.15(ve)-.2
-G 1.231(been modi\214ed.)144 232.8 R 1.231(An ar)6.231 F 1.231
-(gument of)-.18 F F2(n)4.091 E F0 1.231(lists only the last)3.971 F F2
+.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 F1(HISTTIME-)3.73 E(FORMA)144 244.8 Q(T)-.95 E F0 .249
-(is set and not null, it is used as a format string for)2.749 F F2
+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 256.8 R 5.379(.N)-.65
+(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 268.8 R(If)5.814 E F2
+(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 280.8 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 292.8 Q F0
-(Clear the history list by deleting all the entries.)25.86 E F1<ad64>144
-304.8 Q F2(of)2.5 E(fset)-.18 E F0(Delete the history entry at position)
-180 316.8 Q F2(of)2.5 E(fset)-.18 E F0(.)A F1<ad61>144 328.8 Q F0 .599
+(\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 F1(bash)180 340.8 Q F0
-(session\) to the history \214le.)2.5 E F1<ad6e>144 352.8 Q F0 .854(Rea\
+(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 .773
-(These are lines appended to the history \214le since the be)180 364.8 R
-.772(ginning of the current)-.15 F F1(bash)3.272 E F0(ses-)3.272 E
-(sion.)180 376.8 Q F1<ad72>144 388.8 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 400.8 Q F0(Write the current history to the history \214le, o)23.08
+(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 412.8 Q F0 .625
-(Perform history substitution on the follo)24.74 F(wing)-.25 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 424.8 R .475
-(not store the results in the history list.)2.975 F(Each)5.475 E F2(ar)
+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 436.8 Q(xpansion.)-.15 E F1<ad73>144 448.8 Q F0
-.362(Store the)26.41 F F2(ar)3.192 E(gs)-.37 E F0 .363
+(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 460.8 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 477.6 R F1(HISTTIMEFORMA)2.78 E(T)-.95
+(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 .539(is written to the history \214le, mark)144 489.6 R .539
+2.78 F .539(is written to the history \214le, mark)144 727.2 R .539
 (ed with the history comment character)-.1 F 5.54(.W)-.55 G .54
-(hen the history \214le is)-5.54 F 1.779(read, lines be)144 501.6 R
-1.779(ginning with the history comment character follo)-.15 F 1.778
+(hen the history \214le is)-5.54 F(GNU Bash-3.2)72 768 Q(2008 April 5)
+148.455 E(53)198.445 E 0 Cg EP
+%%Page: 54 54
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
+-.35 E 1.779(read, lines be)144 84 R 1.779
+(ginning with the history comment character follo)-.15 F 1.778
 (wed immediately by a digit are)-.25 F 1.424
-(interpreted as timestamps for the pre)144 513.6 R 1.424
+(interpreted as timestamps for the pre)144 96 R 1.424
 (vious history line.)-.25 F 1.424(The return v)6.424 F 1.424
 (alue is 0 unless an in)-.25 F -.25(va)-.4 G(lid).25 E .499(option is e\
 ncountered, an error occurs while reading or writing the history \214le\
-, an in)144 525.6 R -.25(va)-.4 G(lid).25 E F2(of)2.999 E(fset)-.18 E F0
-(is)2.999 E(supplied as an ar)144 537.6 Q(gument to)-.18 E F1<ad64>2.5 E
-F0 2.5(,o)C 2.5(rt)-2.5 G(he history e)-2.5 E
-(xpansion supplied as an ar)-.15 E(gument to)-.18 E F1<ad70>2.5 E F0 -.1
-(fa)2.5 G(ils.).1 E F1(jobs)108 554.4 Q F0([)2.5 E F1(\255lnprs)A F0 2.5
-(][)C F2(jobspec)A F0(... ])2.5 E F1(jobs \255x)108 566.4 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 578.4 Q .3 -.15(ve j)-.25 H 2.5
+, an in)144 108 R -.25(va)-.4 G(lid).25 E/F1 10/Times-Italic@0 SF(of)
+2.999 E(fset)-.18 E F0(is)2.999 E(supplied as an ar)144 120 Q(gument to)
+-.18 E/F2 10/Times-Bold@0 SF<ad64>2.5 E F0 2.5(,o)C 2.5(rt)-2.5 G
+(he history e)-2.5 E(xpansion supplied as an ar)-.15 E(gument to)-.18 E
+F2<ad70>2.5 E F0 -.1(fa)2.5 G(ils.).1 E F2(jobs)108 136.8 Q F0([)2.5 E
+F2(\255lnprs)A F0 2.5(][)C F1(jobspec)A F0(... ])2.5 E F2(jobs \255x)108
+148.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 160.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 F1<ad6c>144 590.4 Q F0
-(List process IDs in addition to the normal information.)27.52 E F1
-<ad70>144 602.4 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 614.4 Q F0
+(wing meanings:)-.25 E F2<ad6c>144 172.8 Q F0
+(List process IDs in addition to the normal information.)27.52 E F2
+<ad70>144 184.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 196.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 626.4 Q F1<ad72>144 638.4 Q F0
-(Restrict output to running jobs.)25.86 E F1<ad73>144 650.4 Q F0
-(Restrict output to stopped jobs.)26.41 E(If)144 667.2 Q F2(jobspec)
+(\214ed of their status.)180 208.8 Q F2<ad72>144 220.8 Q F0
+(Restrict output to running jobs.)25.86 E F2<ad73>144 232.8 Q F0
+(Restrict output to stopped jobs.)26.41 E(If)144 249.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 679.2 Q -.25
+-.4 G .313(he return status is 0 unless)-5.313 F(an in)144 261.6 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 .394(If the)144 696 R F1
-<ad78>2.894 E F0 .394(option is supplied,)2.894 F F1(jobs)2.894 E F0
-.394(replaces an)2.894 F(y)-.15 E F2(jobspec)4.634 E F0 .394(found in)
-3.204 F F2(command)3.094 E F0(or)3.664 E F2(ar)3.224 E(gs)-.37 E F0 .395
-(with the corre-)3.164 F(sponding process group ID, and e)144 708 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
-(GNU Bash-3.2)72 768 Q(2008 February 22)138.46 E(53)188.45 E 0 Cg EP
-%%Page: 54 54
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
--.35 E/F1 10/Times-Bold@0 SF(kill)108 84 Q F0([)2.5 E F1<ad73>A/F2 10
-/Times-Italic@0 SF(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 96 Q F0([)2.5
-E F2(sigspec)A F0(|)2.5 E F2 -.2(ex)2.5 G(it_status).2 E F0(])A .12
-(Send the signal named by)144 108 R F2(sigspec)2.96 E F0(or)2.93 E F2
-(signum)2.96 E F0 .119(to the processes named by)2.939 F F2(pid)3.869 E
-F0(or)3.389 E F2(jobspec)2.619 E F0(.).31 E F2(sigspec)5.459 E F0(is)
-2.929 E .318(either a case-insensiti)144 120 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 132 Q F2(signum)4.189 E F0
-1.349(is a signal number)4.169 F 6.349(.I)-.55 G(f)-6.349 E F2(sigspec)
+E F1(jobspec)4.24 E F0(is supplied.)2.81 E .394(If the)144 278.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 290.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 307.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 319.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 331.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 343.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 355.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.348(is assumed.)3.599 F(An)6.348 E(ar)144 144 Q .522(gument of)-.18 F
-F1<ad6c>3.023 E F0 .523(lists the signal names.)3.023 F .523(If an)5.523
-F 3.023(ya)-.15 G -.18(rg)-3.023 G .523(uments are supplied when).18 F
-F1<ad6c>3.023 E F0 .523(is gi)3.023 F -.15(ve)-.25 G .523(n, the names)
-.15 F .28(of the signals corresponding to the ar)144 156 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 168 Q .377(gument to)-.18 F F1
-<ad6c>2.877 E F0 .378
+1.348(is assumed.)3.599 F(An)6.348 E(ar)144 367.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 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 379.2
+R .28(guments are listed, and the return status is 0.)-.18 F(The)5.28 E
+F1 -.2(ex)2.78 G(it_status).2 E F0(ar)144 391.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 180 R
-F1(kill)5.593 E F0 .593(returns true if at least one signal w)3.093 F
+(xit status of a process termi-)-.15 F .594(nated by a signal.)144 403.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 192 Q -.25(va)-.4 G(lid option is encountered.).25
-E F1(let)108 208.8 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 220.8 Q F2(ar)3.964 E(g)-.37 E F0 1.134
+(occurs or an in)144 415.2 Q -.25(va)-.4 G(lid option is encountered.)
+.25 E F2(let)108 432 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 444 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 232.8 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 249.6 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 261.6 S
+5.635 F(last)144 456 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 472.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 484.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 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 273.6 Q 3.152(yo)-.15 G 3.152(ft)-3.152 G .652
-(he options accepted by)-3.152 F F1(declar)3.152 E(e)-.18 E F0 5.652(.W)
-C(hen)-5.652 E F1(local)3.152 E F0 .653
+(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 496.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
-285.6 Q F2(name)3.721 E F0 .861(to ha)3.541 F 1.161 -.15(ve a v)-.2 H
+508.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 F1(local)144 297.6 Q F0 1.164
+-.4(Wi)5.86 G .86(th no operands,).4 F F2(local)144 520.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.665 E F0 1.165(when not)3.665 F .233
-(within a function.)144 309.6 R .233(The return status is 0 unless)5.233
-F F1(local)2.733 E F0 .233(is used outside a function, an in)2.733 F
--.25(va)-.4 G(lid).25 E F2(name)3.092 E F0(is)2.912 E(supplied, or)144
-321.6 Q F2(name)2.5 E F0(is a readonly v)2.5 E(ariable.)-.25 E F1
-(logout)108 338.4 Q F0(Exit a login shell.)9.33 E F1(popd)108 355.2 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 367.2 Q -.15(ve)-.15 G 2.799(se).15 G .299
+6.165 F F2(local)3.665 E F0 1.165(when not)3.665 F .233
+(within a function.)144 532.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
+544.8 Q F1(name)2.5 E F0(is a readonly v)2.5 E(ariable.)-.25 E F2
+(logout)108 561.6 Q F0(Exit a login shell.)9.33 E F2(popd)108 578.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 590.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
-379.2 R F1(cd)3.979 E F0 1.479(to the ne)3.979 F 3.979(wt)-.25 G 1.479
+602.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 391.2 Q F1<ad6e>144 403.2 Q F0 .551
+F(wing)-.25 E(meanings:)144 614.4 Q F2<ad6e>144 626.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 415.2 Q F1(+)144 427.2 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
+(that only the stack is manipulated.)180 638.4 Q F2(+)144 650.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
-F1(dirs)2.64 E F0 2.64(,s)C .14(tarting with zero.)-2.64 F -.15(Fo)180
-439.2 S 2.5(re).15 G(xample:)-2.65 E/F5 10/Courier@0 SF(popd +0)2.5 E F0
+F2(dirs)2.64 E F0 2.64(,s)C .14(tarting with zero.)-2.64 F -.15(Fo)180
+662.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 451.2 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
+-.65 E F5(popd +1)2.5 E F0(the second.)2.5 E F2<ad>144 674.4 Q F1(n)A F0
+(Remo)25.3 E -.15(ve)-.15 G 3.759(st).15 G(he)-3.759 E F1(n)3.759 E F0
 1.259(th entry counting from the right of the list sho)B 1.26(wn by)-.25
-F F1(dirs)3.76 E F0 3.76(,s)C 1.26(tarting with)-3.76 F 2.5(zero. F)180
-463.2 R(or e)-.15 E(xample:)-.15 E F5(popd -0)2.5 E F0(remo)2.5 E -.15
+F F2(dirs)3.76 E F0 3.76(,s)C 1.26(tarting with)-3.76 F 2.5(zero. F)180
+686.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 .644(If the)144 480 R F1(popd)3.144
-E F0 .644(command is successful, a)3.144 F F1(dirs)3.143 E F0 .643
-(is performed as well, and the return status is 0.)3.143 F F1(popd)5.643
-E F0 .415(returns f)144 492 R .415(alse if an in)-.1 F -.25(va)-.4 G
+E F0(the ne)2.5 E(xt to last.)-.15 E .644(If the)144 703.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 715.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.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 504 Q
-(ails.)-.1 E F1(printf)108 520.8 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 532.8 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 544.8 R .159
+(tory stack entry is speci\214ed, or the directory change f)144 727.2 Q
+(ails.)-.1 E(GNU Bash-3.2)72 768 Q(2008 April 5)148.455 E(54)198.445 E 0
+Cg EP
+%%Page: 55 55
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
+-.35 E/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 556.8 R -.15(ve)-.4 G .158(rted and copied to the stan-).15 F .499(\
-dard output, and format speci\214cations, each of which causes printing\
- of the ne)144 568.8 R .5(xt successi)-.15 F -.15(ve)-.25 G F2(ar)3.15 E
-(gu-)-.37 E(ment)144 580.8 Q F0 5.424(.I)C 2.924(na)-5.424 G .424
+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 592.8 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
+(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 604.8 Q F1(\\?)3.422 E F0 .922(are not remo)
+(\\")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 616.8 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 628.8 Q(The)
-144 652.8 Q F1<ad76>2.904 E F0 .404
+(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 664.8 Q(The)144 688.8 Q F2(format)3.423 E F0 .923
+(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 .924(requires more)3.424 F F2(ar)144 700.8 Q(guments)-.37 E
-F0 .033(than are supplied, the e)2.534 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 .033(alue or null string,)
--.25 F(as appropriate, had been supplied.)144 712.8 Q(The return v)5 E
-(alue is zero on success, non-zero on f)-.25 E(ailure.)-.1 E
-(GNU Bash-3.2)72 768 Q(2008 February 22)138.46 E(54)188.45 E 0 Cg EP
-%%Page: 55 55
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
--.35 E/F1 10/Times-Bold@0 SF(pushd)108 84 Q F0([)2.5 E F1<ad6e>A F0 2.5
-(][)C(+)-2.5 E/F2 10/Times-Italic@0 SF(n)A F0 2.5(][)C<ad>-2.5 E F2(n)A
-F0(])A F1(pushd)108 96 Q F0([)2.5 E F1<ad6e>A F0 2.5(][)C F2(dir)-2.5 E
-F0(])A .639(Adds a directory to the top of the directory stack, or rota\
-tes the stack, making the ne)144 108 R 3.14(wt)-.25 G .64(op of the)
--3.14 F 1.316(stack the current w)144 120 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 132 R 5.871(.A)
+-.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 292.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 F1(pushd)108 304.8 Q F0([)2.5 E F1<ad6e>A F0
+2.5(][)C F2(dir)-2.5 E F0(])A .639(Adds a directory to the top of the d\
+irectory stack, or rotates the stack, making the ne)144 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 144 Q
-F1<ad6e>144 156 Q F0 .902(Suppresses the normal change of directory whe\
-n adding directories to the stack, so that)24.74 F
-(only the stack is manipulated.)180 168 Q F1(+)144 180 Q F2(n)A F0 1.267
-(Rotates the stack so that the)25.3 F F2(n)3.767 E F0 1.268
+(ve t)-.2 H .872(he follo).15 F .872(wing mean-)-.25 F(ings:)144 352.8 Q
+F1<ad6e>144 364.8 Q F0 .902(Suppresses the normal change of directory w\
+hen adding directories to the stack, so that)24.74 F
+(only the stack is manipulated.)180 376.8 Q F1(+)144 388.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 192 Q F0 2.5(,s)C(tarting with zero\) is at the top.)
--2.5 E F1<ad>144 204 Q F2(n)A F0 .92(Rotates the stack so that the)25.3
-F F2(n)3.42 E F0 .92
+-.25 F F1(dirs)180 400.8 Q F0 2.5(,s)C
+(tarting with zero\) is at the top.)-2.5 E F1<ad>144 412.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 216 Q F0 2.5(,s)C(tarting with zero\) is at the top.)-2.5
-E F2(dir)144.35 228 Q F0(Adds)23.98 E F2(dir)2.85 E F0
+F F1(dirs)180 424.8 Q F0 2.5(,s)C(tarting with zero\) is at the top.)
+-2.5 E 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 .488(If the)144 244.8
+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 256.8 R F2(dir)3.89 E F0 -.1(fa)4.27 G
+(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
-268.8 R 3.346(,an)-.65 G(on-e)-3.346 E .847(xistent directory stack ele\
+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 280.8 Q 2.5(wc)-.25 G(urrent directory f)-2.5 E
-(ails.)-.1 E F1(pwd)108 297.6 Q F0([)2.5 E F1(\255LP)A F0(])A .845
-(Print the absolute pathname of the current w)144 309.6 R .845
+(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
-321.6 R F1<ad50>2.681 E F0 .181(option is supplied or the)2.681 F F1
+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 .182(iltin command is).2 F 3.264
-(enabled. If)144 333.6 R(the)3.264 E F1<ad4c>3.264 E F0 .763
+(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 345.6 R -.25(va)
--.4 G(lid).25 E(option is supplied.)144 357.6 Q F1 -.18(re)108 374.4 S
+ 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<ad61>-2.5 E F2(aname)
-2.5 E F0 2.5(][)C F1<ad64>-2.5 E F2(delim)2.5 E F0 2.5(][)C F1<ad6e>-2.5
-E F2(nc)2.5 E(har)-.15 E(s)-.1 E F0 2.5(][)C F1<ad70>-2.5 E F2(pr)2.5 E
-(ompt)-.45 E F0 2.5(][)C F1<ad74>-2.5 E F2(timeout)2.5 E F0 2.5(][)C F1
-<ad75>-2.5 E F2(fd)2.5 E F0 2.5(][)C F2(name)-2.5 E F0(...])2.5 E .516(\
-One line is read from the standard input, or from the \214le descriptor)
-144 386.4 R F2(fd)3.016 E F0 .516(supplied as an ar)3.016 F .516
-(gument to)-.18 F(the)144 398.4 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 410.4 R -.15(ve)-.15 G 2.92(rw).15 G .42
-(ords and their interv)-3.02 F .42
+2.5 E F0 2.5(][)C F1<ad64>-2.5 E F2(delim)2.5 E F0 2.5(][)C<ad>-2.5 E F2
+(te)2.5 E(xt)-.2 E F0 2.5(][)C F1<ad6e>-2.5 E F2(nc)2.5 E(har)-.15 E(s)
+-.1 E F0 2.5(][)C F1<ad70>-2.5 E F2(pr)2.5 E(ompt)-.45 E F0 2.5(][)C F1
+<ad74>-2.5 E F2(timeout)2.5 E F0 2.5(][)C F1<ad75>-2.5 E F2(fd)2.5 E F0
+2.5(][)C F2(name)-2.5 E F0(...])2.5 E .516(One line is read from the st\
+andard input, or from the \214le descriptor)144 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 .54(are fe)144 422.4 R .54(wer w)-.25
+.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 434.4 S 2.511(lues. The).25 F .011
+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.51(\)m)C(ay)-2.51 E 1.89
-(be used to remo)144 446.4 R 2.19 -.15(ve a)-.15 H 2.19 -.15(ny s).15 H
+(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 458.4 Q .3 -.15(ve t)-.2 H(he follo).15 E
-(wing meanings:)-.25 E F1<ad61>144 470.4 Q F2(aname)2.5 E F0 1.05(The w)
-180 482.4 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.549 E F0 3.549(,s).18 G 1.049(tarting at 0.)-3.549 F
-F2(aname)180.33 494.4 Q F0(is unset before an)2.68 E 2.5(yn)-.15 G .5
+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 F1<ad64>144 506.4 Q F2(delim)2.5 E
-F0(The \214rst character of)180 518.4 Q F2(delim)2.5 E F0
+(ar)2.5 E(guments are ignored.)-.18 E(GNU Bash-3.2)72 768 Q
+(2008 April 5)148.455 E(55)198.445 E 0 Cg EP
+%%Page: 56 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<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 530.4 Q F0 .372
+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(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 542.4 Q F1<ad6e>144 554.4 Q F2(nc)2.5 E(har)
--.15 E(s)-.1 E F1 -.18(re)180 566.4 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 578.4 Q F1<ad70>144 590.4 Q F2(pr)2.5 E(ompt)-.45 E F0
-(Display)180 602.4 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 614.4 Q
-2.5(yi)-.15 G 2.5(nput. The)-2.5 F
+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<ad69>144 132 Q F2(te)2.5
+E(xt)-.2 E F0(If)10.78 E F1 -.18(re)2.716 G(adline).18 E F0 .216
+(is being used to read the line,)2.716 F F2(te)2.716 E(xt)-.2 E F0 .216
+(is placed into the editing b)2.716 F(uf)-.2 E .215(fer before edit-)
+-.25 F(ing be)180 144 Q(gins.)-.15 E F1<ad6e>144 156 Q F2(nc)2.5 E(har)
+-.15 E(s)-.1 E F1 -.18(re)180 168 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 180 Q F1<ad70>144 192 Q F2(pr)2.5 E(ompt)-.45 E F0
+(Display)180 204 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 216 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 626.4 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 638.4 Q(In particular)5 E 2.5(,ab)-.4 G
+<ad72>144 228 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 240 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 650.4 Q F0(Silent mode.)26.41 E
+-.25 E F1<ad73>144 252 Q F0(Silent mode.)26.41 E
 (If input is coming from a terminal, characters are not echoed.)5 E F1
-<ad74>144 662.4 Q F2(timeout)2.5 E F0(Cause)180 674.4 Q F1 -.18(re)3.548
-G(ad).18 E F0 1.048(to time out and return f)3.548 F 1.048
+<ad74>144 264 Q F2(timeout)2.5 E F0(Cause)180 276 Q F1 -.18(re)3.549 G
+(ad).18 E F0 1.048(to time out and return f)3.549 F 1.048
 (ailure if a complete line of input is not read within)-.1 F F2(timeout)
-180 686.4 Q F0 2.92(seconds. This)2.92 F .42(option has no ef)2.92 F .42
+180 288 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 698.4 Q F1
-<ad75>144 710.4 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 727.2 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(GNU Bash-3.2)72 768 Q
-(2008 February 22)138.46 E(55)188.45 E 0 Cg EP
-%%Page: 56 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 1.218(unless end-of-\214le is encountered,)144 84 R/F1 10
-/Times-Bold@0 SF -.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 96 Q(gument to)-.18 E F1<ad75>2.5 E F0(.)A F1 -.18(re)108 112.8
-S(adonly).18 E F0([)2.5 E F1(\255apf)A F0 2.5(][)C/F2 10/Times-Italic@0
-SF(name)-2.5 E F0([=)A F2(wor)A(d)-.37 E F0 2.5(].)C(..])-2.5 E .77
-(The gi)144 124.8 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.097
-(quent assignment.)144 136.8 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 148.8 Q 2.872(ed. The)
--.1 F F1<ad61>2.872 E F0 .372(option restricts the v)2.872 F .372
+(is not reading input from the terminal)2.92 F(or a pipe.)180 300 Q F1
+<ad75>144 312 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 328.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(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 340.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 352.8 Q
+(gument to)-.18 E F1<ad75>2.5 E F0(.)A F1 -.18(re)108 369.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 381.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 393.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 405.6 Q 2.873(ed. The)
+-.1 F F1<ad61>2.873 E F0 .373(option restricts the v)2.873 F .372
 (ariables to arrays.)-.25 F .372(If no)5.372 F F2(name)3.232 E F0(ar)
-3.053 E .373(guments are gi)-.18 F -.15(ve)-.25 G .373(n, or if the).15
-F F1<ad70>144 160.8 Q F0 .796
-(option is supplied, a list of all readonly names is printed.)3.297 F
+3.052 E .372(guments are gi)-.18 F -.15(ve)-.25 G .372(n, or if the).15
+F F1<ad70>144 417.6 Q F0 .796
+(option is supplied, a list of all readonly names is printed.)3.296 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 172.8 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 184.8 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
-196.8 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 429.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 441.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
+453.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 208.8 Q F1 -.18(re)108 225.6 S(tur).18 E(n)-.15 E F0([)
-2.5 E F2(n)A F0(])A .587(Causes a function to e)144 237.6 R .587
+F(function.)144 465.6 Q F1 -.18(re)108 482.4 S(tur).18 E(n)-.15 E F0([)
+2.5 E F2(n)A F0(])A .586(Causes a function to e)144 494.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 .586
+E F0 5.587(.I).24 G(f)-5.587 E F2(n)3.447 E F0 .587
 (is omitted, the return status is)3.327 F 1.335
-(that of the last command e)144 249.6 R -.15(xe)-.15 G 1.335
+(that of the last command e)144 506.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 261.6 S .794(cution of a script by the).15 F F1(.)3.294 E F0(\()
+144 518.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 .794
-(cuting that script).15 F .245(and return either)144 273.6 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 285.6 R .082
+(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 530.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 542.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.581(,t).833 G .081
-(he return sta-)-2.581 F 2.305(tus is f)144 297.6 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)
+(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 554.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)
 .15 F -.15(xe)-.15 G(cution).15 E(resumes after the function or script.)
-144 309.6 Q F1(set)108 326.4 Q F0([)2.5 E F1
+144 566.4 Q F1(set)108 583.2 Q F0([)2.5 E F1
 (\255\255abefhkmnptuvxBCEHPT)A F0 2.5(][)C F1<ad6f>-2.5 E F2(option)2.5
-E F0 2.5(][)C F2(ar)-2.5 E(g)-.37 E F0(...])2.5 E F1(set)108 338.4 Q F0
+E F0 2.5(][)C F2(ar)-2.5 E(g)-.37 E F0(...])2.5 E F1(set)108 595.2 Q F0
 ([)2.5 E F1(+abefhkmnptuvxBCEHPT)A F0 2.5(][)C F1(+o)-2.5 E F2(option)
-2.5 E F0 2.5(][)C F2(ar)-2.5 E(g)-.37 E F0(...])2.5 E -.4(Wi)144 350.4 S
-.836(thout options, the name and v).4 F .835(alue of each shell v)-.25 F
-.835(ariable are displayed in a format that can be)-.25 F .784
-(reused as input for setting or resetting the currently-set v)144 362.4
-R 3.284(ariables. Read-only)-.25 F -.25(va)3.284 G .784
-(riables cannot be).25 F 2.947(reset. In)144 374.4 R F2 .447(posix mode)
-2.947 F F0 2.947(,o)C .447(nly shell v)-2.947 F .447
+2.5 E F0 2.5(][)C F2(ar)-2.5 E(g)-.37 E F0(...])2.5 E -.4(Wi)144 607.2 S
+.835(thout options, the name and v).4 F .835(alue of each shell v)-.25 F
+.836(ariable are displayed in a format that can be)-.25 F .784
+(reused as input for setting or resetting the currently-set v)144 619.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 631.2 R F2 .447(posix mode)
+2.946 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.53
-(locale. When)144 386.4 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 398.4 R .202
+(The output is sorted according to the current)5.447 F 3.531
+(locale. When)144 643.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 655.2 R .202
 (alues for the positional parameters and are assigned,)-.25 F(in order)
-144 410.4 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 667.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 422.4 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 434.4 Q(vironment of subsequent commands.)
--.4 E F1<ad62>144 446.4 Q F0 .132
+-.15(ve t)-.2 H(he follo).15 E(wing meanings:)-.25 E F1<ad61>144 679.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 691.2 Q
+(vironment of subsequent commands.)-.4 E F1<ad62>144 703.2 Q F0 .131
 (Report the status of terminated background jobs immediately)28.74 F
-2.632(,r)-.65 G .131(ather than before the ne)-2.632 F(xt)-.15 E
-(primary prompt.)184 458.4 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 470.4 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 9/Times-Bold@0 SF 1.693(SHELL GRAMMAR)4.193 F F0(abo)
-3.943 E -.15(ve)-.15 G 4.194(\)e).15 G 1.694(xits with a)-4.344 F .012
-(non-zero status.)184 482.4 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
-.718(list immediately follo)184 494.4 R .718(wing a)-.25 F F1(while)
-3.218 E F0(or)3.218 E F1(until)3.219 E F0 -.1(ke)3.219 G(yw)-.05 E .719
-(ord, part of the test in an)-.1 F F1(if)3.219 E F0(statement,)3.219 E
-.379(part of a command e)184 506.4 R -.15(xe)-.15 G .379(cuted in a).15
-F F1(&&)2.879 E F0(or)2.879 E/F4 10/Symbol SF<efef>2.879 E F0 .379
-(list, an)2.879 F 2.879(yc)-.15 G .379(ommand in a pipeline b)-2.879 F
-.378(ut the last,)-.2 F .577(or if the command')184 518.4 R 3.078(sr)
--.55 G .578(eturn v)-3.078 F .578(alue is being in)-.25 F -.15(ve)-.4 G
-.578(rted via).15 F F1(!)3.078 E F0 5.578(.F)C .578
-(ailing simple commands that)-5.728 F .402(are part of shell functions \
-or command lists enclosed in braces or parentheses satisfying)184 530.4
-R .84(the abo)184 542.4 R 1.14 -.15(ve c)-.15 H .84
-(onditions do not cause the shell to e).15 F 3.341(xit. A)-.15 F .841
-(trap on)3.341 F F1(ERR)3.341 E F0 3.341(,i)C 3.341(fs)-3.341 G .841
-(et, is e)-3.341 F -.15(xe)-.15 G(cuted).15 E(before the shell e)184
-554.4 Q(xits.)-.15 E F1<ad66>144 566.4 Q F0(Disable pathname e)30.97 E
-(xpansion.)-.15 E F1<ad68>144 578.4 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 590.4 Q(ault.)-.1 E F1
-<ad6b>144 602.4 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 614.4 Q F1
-<ad6d>144 626.4 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 638.4 R F3 .636(JOB CONTR)3.136 F
-(OL)-.27 E F0(abo)2.886 E -.15(ve)-.15 G 3.136(\). Background).15 F .637
-(processes run in a)3.136 F .642
-(separate process group and a line containing their e)184 650.4 R .641
-(xit status is printed upon their com-)-.15 F(pletion.)184 662.4 Q F1
-<ad6e>144 674.4 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
-686.4 Q(This is ignored by interacti)5 E .3 -.15(ve s)-.25 H(hells.).15
-E F1<ad6f>144 698.4 Q F2(option\255name)2.5 E F0(The)184 710.4 Q F2
-(option\255name)2.5 E F0(can be one of the follo)2.5 E(wing:)-.25 E
-(GNU Bash-3.2)72 768 Q(2008 February 22)138.46 E(56)188.45 E 0 Cg EP
+2.632(,r)-.65 G .132(ather than before the ne)-2.632 F(xt)-.15 E
+(primary prompt.)184 715.2 Q(This is ef)5 E(fecti)-.25 E .3 -.15(ve o)
+-.25 H(nly when job control is enabled.).15 E(GNU Bash-3.2)72 768 Q
+(2008 April 5)148.455 E(56)198.445 E 0 Cg EP
 %%Page: 57 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(allexport)184 84 Q F0(Same as)224 96 Q F1
-<ad61>2.5 E F0(.)A F1(braceexpand)184 108 Q F0(Same as)224 120 Q F1
-<ad42>2.5 E F0(.)A F1(emacs)184 132 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 144 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 156 Q F1(errtrace)184 168 Q F0(Same as)5.03 E F1<ad45>2.5
-E F0(.)A F1(functrace)184 180 Q F0(Same as)224 192 Q F1<ad54>2.5 E F0(.)
-A F1(err)184 204 Q(exit)-.18 E F0(Same as)11.31 E F1<ad65>2.5 E F0(.)A
-F1(hashall)184 216 Q F0(Same as)9.43 E F1<ad68>2.5 E F0(.)A F1
-(histexpand)184 228 Q F0(Same as)224 240 Q F1<ad48>2.5 E F0(.)A F1
-(history)184 252 Q F0 .587(Enable command history)10 F 3.087(,a)-.65 G
+-.35 E/F1 10/Times-Bold@0 SF<ad65>144 84 Q F0 1.694
+(Exit immediately if a)29.86 F/F2 10/Times-Italic@0 SF 1.693
+(simple command)4.193 F F0(\(see)4.193 E/F3 9/Times-Bold@0 SF 1.693
+(SHELL GRAMMAR)4.193 F F0(abo)3.943 E -.15(ve)-.15 G 4.193(\)e).15 G
+1.693(xits with a)-4.343 F .011(non-zero status.)184 96 R .011
+(The shell does not e)5.011 F .011(xit if the command that f)-.15 F .012
+(ails is part of the command)-.1 F .719(list immediately follo)184 108 R
+.719(wing a)-.25 F F1(while)3.219 E F0(or)3.219 E F1(until)3.219 E F0
+-.1(ke)3.219 G(yw)-.05 E .719(ord, part of the test in an)-.1 F F1(if)
+3.218 E F0(statement,)3.218 E .378(part of a command e)184 120 R -.15
+(xe)-.15 G .379(cuted in a).15 F F1(&&)2.879 E F0(or)2.879 E/F4 10
+/Symbol SF<efef>2.879 E F0 .379(list, an)2.879 F 2.879(yc)-.15 G .379
+(ommand in a pipeline b)-2.879 F .379(ut the last,)-.2 F .578
+(or if the command')184 132 R 3.078(sr)-.55 G .578(eturn v)-3.078 F .578
+(alue is being in)-.25 F -.15(ve)-.4 G .578(rted via).15 F F1(!)3.078 E
+F0 5.578(.F)C .577(ailing simple commands that)-5.728 F .402(are part o\
+f shell functions or command lists enclosed in braces or parentheses sa\
+tisfying)184 144 R .841(the abo)184 156 R 1.141 -.15(ve c)-.15 H .841
+(onditions do not cause the shell to e).15 F 3.341(xit. A)-.15 F .84
+(trap on)3.34 F F1(ERR)3.34 E F0 3.34(,i)C 3.34(fs)-3.34 G .84(et, is e)
+-3.34 F -.15(xe)-.15 G(cuted).15 E(before the shell e)184 168 Q(xits.)
+-.15 E F1<ad66>144 180 Q F0(Disable pathname e)30.97 E(xpansion.)-.15 E
+F1<ad68>144 192 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
+204 Q(ault.)-.1 E F1<ad6b>144 216 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 228 Q F1
+<ad6d>144 240 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 252 R F3 .636(JOB CONTR)3.136 F
+(OL)-.27 E F0(abo)2.886 E -.15(ve)-.15 G 3.136(\). Background).15 F .636
+(processes run in a)3.136 F .641
+(separate process group and a line containing their e)184 264 R .642
+(xit status is printed upon their com-)-.15 F(pletion.)184 276 Q F1
+<ad6e>144 288 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
+300 Q(This is ignored by interacti)5 E .3 -.15(ve s)-.25 H(hells.).15 E
+F1<ad6f>144 312 Q F2(option\255name)2.5 E F0(The)184 324 Q F2
+(option\255name)2.5 E F0(can be one of the follo)2.5 E(wing:)-.25 E F1
+(allexport)184 336 Q F0(Same as)224 348 Q F1<ad61>2.5 E F0(.)A F1
+(braceexpand)184 360 Q F0(Same as)224 372 Q F1<ad42>2.5 E F0(.)A F1
+(emacs)184 384 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 396 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 408 Q F1(errtrace)184 420 Q F0(Same as)5.03 E F1
+<ad45>2.5 E F0(.)A F1(functrace)184 432 Q F0(Same as)224 444 Q F1<ad54>
+2.5 E F0(.)A F1(err)184 456 Q(exit)-.18 E F0(Same as)11.31 E F1<ad65>2.5
+E F0(.)A F1(hashall)184 468 Q F0(Same as)9.43 E F1<ad68>2.5 E F0(.)A F1
+(histexpand)184 480 Q F0(Same as)224 492 Q F1<ad48>2.5 E F0(.)A F1
+(history)184 504 Q F0 .586(Enable command history)10 F 3.087(,a)-.65 G
 3.087(sd)-3.087 G .587(escribed abo)-3.087 F .887 -.15(ve u)-.15 H(nder)
-.15 E/F2 9/Times-Bold@0 SF(HIST)3.087 E(OR)-.162 E(Y)-.315 E/F3 9
-/Times-Roman@0 SF(.)A F0 .587(This option is)5.087 F(on by def)224 264 Q
-(ault in interacti)-.1 E .3 -.15(ve s)-.25 H(hells.).15 E F1(ignor)184
-276 Q(eeof)-.18 E F0 1.656(The ef)224 288 R 1.656
-(fect is as if the shell command)-.25 F/F4 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
-300 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 312 S(yw).1 E(ord)-.1 E F0(Same as)224 324 Q F1
-<ad6b>2.5 E F0(.)A F1(monitor)184 336 Q F0(Same as)5.56 E F1<ad6d>2.5 E
-F0(.)A F1(noclob)184 348 Q(ber)-.1 E F0(Same as)224 360 Q F1<ad43>2.5 E
-F0(.)A F1(noexec)184 372 Q F0(Same as)11.12 E F1<ad6e>2.5 E F0(.)A F1
-(noglob)184 384 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 396 Q F0(Same as)15 E F1<ad62>
-2.5 E F0(.)A F1(nounset)184 408 Q F0(Same as)6.66 E F1<ad75>2.5 E F0(.)A
-F1(onecmd)184 420 Q F0(Same as)6.67 E F1<ad74>2.5 E F0(.)A F1(ph)184 432
-Q(ysical)-.15 E F0(Same as)5.14 E F1<ad50>2.5 E F0(.)A F1(pipefail)184
-444 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 456 R
-1.136
+.15 E F3(HIST)3.087 E(OR)-.162 E(Y)-.315 E/F5 9/Times-Roman@0 SF(.)A F0
+.587(This option is)5.087 F(on by def)224 516 Q(ault in interacti)-.1 E
+.3 -.15(ve s)-.25 H(hells.).15 E F1(ignor)184 528 Q(eeof)-.18 E F0 1.657
+(The ef)224 540 R 1.657(fect is as if the shell command)-.25 F/F6 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 552 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 564 S(yw).1 E(ord)-.1
+E F0(Same as)224 576 Q F1<ad6b>2.5 E F0(.)A F1(monitor)184 588 Q F0
+(Same as)5.56 E F1<ad6d>2.5 E F0(.)A F1(noclob)184 600 Q(ber)-.1 E F0
+(Same as)224 612 Q F1<ad43>2.5 E F0(.)A F1(noexec)184 624 Q F0(Same as)
+11.12 E F1<ad6e>2.5 E F0(.)A F1(noglob)184 636 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 648 Q F0(Same as)15 E F1<ad62>2.5 E F0(.)A F1(nounset)184 660 Q F0
+(Same as)6.66 E F1<ad75>2.5 E F0(.)A F1(onecmd)184 672 Q F0(Same as)6.67
+E F1<ad74>2.5 E F0(.)A F1(ph)184 684 Q(ysical)-.15 E F0(Same as)5.14 E
+F1<ad50>2.5 E F0(.)A F1(pipefail)184 696 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 708
+R 1.136
 (xit with a non-zero status, or zero if all commands in the pipeline)
--.15 F -.15(ex)224 468 S(it successfully).15 E 5(.T)-.65 G
-(his option is disabled by def)-5 E(ault.)-.1 E F1(posix)184 480 Q F0
-2.091(Change the beha)17.77 F 2.091(vior of)-.2 F F1(bash)4.591 E F0
-2.091(where the def)4.591 F 2.091(ault operation dif)-.1 F 2.091
-(fers from the)-.25 F(POSIX standard to match the standard \()224 492 Q
-/F5 10/Times-Italic@0 SF(posix mode)A F0(\).)A F1(pri)184 504 Q(vileged)
--.1 E F0(Same as)224 516 Q F1<ad70>2.5 E F0(.)A F1 -.1(ve)184 528 S
-(rbose).1 E F0(Same as)7.33 E F1<ad76>2.5 E F0(.)A F1(vi)184 540 Q F0
+-.15 F -.15(ex)224 720 S(it successfully).15 E 5(.T)-.65 G
+(his option is disabled by def)-5 E(ault.)-.1 E(GNU Bash-3.2)72 768 Q
+(2008 April 5)148.455 E(57)198.445 E 0 Cg EP
+%%Page: 58 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/F1 10/Times-Bold@0 SF(posix)184 84 Q F0 2.09(Change the beha)
+17.77 F 2.091(vior of)-.2 F F1(bash)4.591 E F0 2.091(where the def)4.591
+F 2.091(ault operation dif)-.1 F 2.091(fers from the)-.25 F
+(POSIX standard to match the standard \()224 96 Q/F2 10/Times-Italic@0
+SF(posix mode)A F0(\).)A F1(pri)184 108 Q(vileged)-.1 E F0(Same as)224
+120 Q F1<ad70>2.5 E F0(.)A F1 -.1(ve)184 132 S(rbose).1 E F0(Same as)
+7.33 E F1<ad76>2.5 E F0(.)A F1(vi)184 144 Q F0
 (Use a vi-style command line editing interf)32.22 E(ace.)-.1 E F1
-(xtrace)184 552 Q F0(Same as)13.35 E F1<ad78>2.5 E F0(.)A(If)184 570 Q
-F1<ad6f>3.052 E F0 .552(is supplied with no)3.052 F F5(option\255name)
-3.053 E F0 3.053(,t)C .553(he v)-3.053 F .553
-(alues of the current options are printed.)-.25 F(If)5.553 E F1(+o)184
-582 Q F0 1.072(is supplied with no)3.572 F F5(option\255name)3.572 E F0
-3.572(,a)C 1.071(series of)-.001 F F1(set)3.571 E F0 1.071
-(commands to recreate the current)3.571 F
-(option settings is displayed on the standard output.)184 594 Q F1<ad70>
-144 606 Q F0 -.45(Tu)28.74 G 1.071(rn on).45 F F5(privile)4.821 E -.1
-(ge)-.4 G(d).1 E F0 3.572(mode. In)4.341 F 1.072(this mode, the)3.572 F
-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 618 R 1.705
-(vironment, and the)-.4 F F2(SHELLOPTS)4.205 E F0 -.25(va)184 630 S .018
+(xtrace)184 156 Q F0(Same as)13.35 E F1<ad78>2.5 E F0(.)A(If)184 174 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
+(alues of the current options are printed.)-.25 F(If)5.552 E F1(+o)184
+186 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 198 Q F1<ad70>
+144 210 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 222 R 1.705
+(vironment, and the)-.4 F F3(SHELLOPTS)4.206 E F0 -.25(va)184 234 S .019
 (riable, if it appears in the en).25 F .019(vironment, is ignored.)-.4 F
-.019(If the shell is started with the ef)5.019 F(fec-)-.25 E(ti)184 642
-Q 1.159 -.15(ve u)-.25 H .859
+.018(If the shell is started with the ef)5.019 F(fec-)-.25 E(ti)184 246
+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<ad70>3.359 E F0 .858(option is not sup-)3.359 F .293
-(plied, these actions are tak)184 654 R .293(en and the ef)-.1 F(fecti)
+F1<ad70>3.359 E F0 .859(option is not sup-)3.359 F .294
+(plied, these actions are tak)184 258 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 .294(If the)5.294 F F1<ad70>2.794 E F0 1.196
-(option is supplied at startup, the ef)184 666 R(fecti)-.25 E 1.495 -.15
-(ve u)-.25 H 1.195(ser id is not reset.).15 F -.45(Tu)6.195 G 1.195
-(rning this option of).45 F(f)-.25 E(causes the ef)184 678 Q(fecti)-.25
+F .293(If the)5.293 F F1<ad70>2.793 E F0 1.195
+(option is supplied at startup, the ef)184 270 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 282 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 690 Q F0(Exit after reading and e)30.97 E -.15(xe)-.15 G
-(cuting one command.).15 E F1<ad75>144 702 Q F0 -.35(Tr)28.74 G .444
+<ad74>144 294 Q F0(Exit after reading and e)30.97 E -.15(xe)-.15 G
+(cuting one command.).15 E F1<ad75>144 306 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 714 R .519
+(xpansion. If)-.15 F -.15(ex)2.944 G .444(pansion is).15 F .519
+(attempted on an unset v)184 318 R .519
 (ariable, the shell prints an error message, and, if not interacti)-.25
-F -.15(ve)-.25 G(,).15 E -.15(ex)184 726 S(its with a non-zero status.)
-.15 E(GNU Bash-3.2)72 768 Q(2008 February 22)138.46 E(57)188.45 E 0 Cg
-EP
-%%Page: 58 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/F1 10/Times-Bold@0 SF<ad76>144 84 Q F0
-(Print shell input lines as the)29.3 E 2.5(ya)-.15 G(re read.)-2.5 E F1
-<ad78>144 96 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 108 R F1
+F -.15(ve)-.25 G(,).15 E -.15(ex)184 330 S(its with a non-zero status.)
+.15 E F1<ad76>144 342 Q F0(Print shell input lines as the)29.3 E 2.5(ya)
+-.15 G(re read.)-2.5 E F1<ad78>144 354 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 366 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 120 Q(xpanded ar)-.15 E(guments or associated w)-.18
-E(ord list.)-.1 E F1<ad42>144 132 Q F0 2.578(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 144 Q(ault.)-.1 E F1<ad43>144 156 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(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 168 R .553(may be o)
-3.053 F -.15(ve)-.15 G .553
+(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
+378 Q(xpanded ar)-.15 E(guments or associated w)-.18 E(ord list.)-.1 E
+F1<ad42>144 390 Q F0 2.579(The shell performs brace e)27.63 F 2.578
+(xpansion \(see)-.15 F F1 2.578(Brace Expansion)5.078 F F0(abo)5.078 E
+-.15(ve)-.15 G 5.078(\). This).15 F 2.578(is on by)5.078 F(def)184 402 Q
+(ault.)-.1 E F1<ad43>144 414 Q F0 .213(If set,)27.08 F F1(bash)2.713 E
+F0 .213(does not o)2.713 F -.15(ve)-.15 G .214(rwrite an e).15 F .214
+(xisting \214le with the)-.15 F F1(>)2.714 E F0(,)A F1(>&)2.714 E F0
+2.714(,a)C(nd)-2.714 E F1(<>)2.714 E F0 .214(redirection opera-)2.714 F
+3.054(tors. This)184 426 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 180 Q F1(>|)2.5 E F0(instead of)2.5 E F1(>)2.5 E F0(.)A F1
-<ad45>144 192 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 204 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 216 Q F1
-<ad48>144 228 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 240 Q -.15
-(ve)-.25 G(.).15 E F1<ad50>144 252 Q F0 1.164
+.15 F(tor)184 438 Q F1(>|)2.5 E F0(instead of)2.5 E F1(>)2.5 E F0(.)A F1
+<ad45>144 450 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 462 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 474 Q F1
+<ad48>144 486 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 498 Q -.15
+(ve)-.25 G(.).15 E F1<ad50>144 510 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 264 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 276 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 522 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 534 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 288 Q(.)-.65 E F1<ad54>144
-300 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 546 Q(.)-.65 E F1<ad54>144
+558 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 312 R -.15(xe)-.15 G 1.932
+(substitutions, and commands e)184 570 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 324 Q F0
-(traps are normally not inherited in such cases.)2.5 E F1<adad>144 336 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 582 Q F0
+(traps are normally not inherited in such cases.)2.5 E F1<adad>144 594 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 348 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 606 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
-360 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 372 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 384 Q .425(The options are of)144
-400.8 R 2.925(fb)-.25 G 2.925(yd)-2.925 G(ef)-2.925 E .425
+618 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 630 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 642 Q .425(The options are of)144
+658.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 412.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 670.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 424.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 682.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 436.8 Q F1(shift)108 453.6 Q F0([)2.5 E F2(n)A F0
-(])A .429(The positional parameters from)144 465.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 477.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 489.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 501.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 513.6 Q F1(shopt)108 530.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 542.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 554.4 R(The)
-144 566.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 578.4 Q .3 -.15(ve t)-.2 H(he follo).15 E(wing meanings:)
--.25 E F1<ad73>144 590.4 Q F0(Enable \(set\) each)26.41 E F2(optname)2.5
-E F0(.)A F1<ad75>144 602.4 Q F0(Disable \(unset\) each)24.74 E F2
-(optname)2.5 E F0(.)A F1<ad71>144 614.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 626.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
-(all)180 638.4 Q F2(optnames)2.5 E F0(are enabled; non-zero otherwise.)
-2.5 E F1<ad6f>144 650.4 Q F0(Restricts the v)25.3 E(alues of)-.25 E F2
-(optname)2.5 E F0(to be those de\214ned for the)2.5 E F1<ad6f>2.5 E F0
-(option to the)2.5 E F1(set)2.5 E F0 -.2(bu)2.5 G(iltin.).2 E .127
-(If either)144 667.2 R F1<ad73>2.627 E F0(or)2.627 E F1<ad75>2.627 E F0
-.127(is used with no)2.627 F F2(optname)2.627 E F0(ar)2.627 E .127
-(guments, the display is limited to those options which)-.18 F 1.024
-(are set or unset, respecti)144 679.2 R -.15(ve)-.25 G(ly).15 E 6.024
-(.U)-.65 G 1.024(nless otherwise noted, the)-6.024 F F1(shopt)3.523 E F0
-1.023(options are disabled \(unset\) by)3.523 F(def)144 691.2 Q(ault.)
--.1 E 1.544(The return status when listing options is zero if all)144
-708 R F2(optnames)4.044 E F0 1.545(are enabled, non-zero otherwise.)
-4.045 F .696
-(When setting or unsetting options, the return status is zero unless an)
-144 720 R F2(optname)3.196 E F0 .696(is not a v)3.196 F .695(alid shell)
--.25 F(GNU Bash-3.2)72 768 Q(2008 February 22)138.46 E(58)188.45 E 0 Cg
-EP
+(ys true unless an in).1 F -.25(va)-.4 G .066(lid option).25 F
+(is encountered.)144 694.8 Q(GNU Bash-3.2)72 768 Q(2008 April 5)148.455
+E(58)198.445 E 0 Cg EP
 %%Page: 59 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(option.)144 84 Q(The list of)144 100.8 Q/F1 10/Times-Bold@0 SF
-(shopt)2.5 E F0(options is:)2.5 E F1(autocd)144 118.8 Q F0 .199
+-.35 E/F1 10/Times-Bold@0 SF(shift)108 84 Q F0([)2.5 E/F2 10
+/Times-Italic@0 SF(n)A F0(])A .428(The positional parameters from)144 96
+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
+108 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 120 R(If)5.06
+E F2(n)2.92 E F0 .06(is not gi)2.8 F -.15(ve)-.25 G .06
+(n, it is assumed to be 1.).15 F(If)5.06 E F2(n)2.92 E F0 .06
+(is greater than)2.8 F F1($#)2.56 E F0 2.56(,t)C(he)-2.56 E .144
+(positional parameters are not changed.)144 132 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 144 Q F1(shopt)108 160.8 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 172.8 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 184.8 R(The)144 196.8 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
+208.8 Q .3 -.15(ve t)-.2 H(he follo).15 E(wing meanings:)-.25 E F1<ad73>
+144 220.8 Q F0(Enable \(set\) each)26.41 E F2(optname)2.5 E F0(.)A F1
+<ad75>144 232.8 Q F0(Disable \(unset\) each)24.74 E F2(optname)2.5 E F0
+(.)A F1<ad71>144 244.8 Q F0 .003(Suppresses normal output \(quiet mode\
+\); the return status indicates whether the)24.74 F F2(optname)2.503 E
+F0(is)2.503 E .255(set or unset.)180 256.8 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 268.8 Q F2(optnames)2.5 E
+F0(are enabled; non-zero otherwise.)2.5 E F1<ad6f>144 280.8 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 297.6 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 309.6 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 321.6 Q(ault.)
+-.1 E 1.544(The return status when listing options is zero if all)144
+338.4 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 350.4 R F2(optname)3.196 E F0 .696(is not a v)3.196 F .696
+(alid shell)-.25 F(option.)144 362.4 Q(The list of)144 379.2 Q F1(shopt)
+2.5 E F0(options is:)2.5 E F1(autocd)144 397.2 Q F0 .2
 (If set, a command name that is the name of a directory is e)11.11 F
--.15(xe)-.15 G .2(cuted as if it were the ar).15 F(gu-)-.18 E
-(ment to the)184 130.8 Q F1(cd)2.5 E F0 2.5(command. This)2.5 F
+-.15(xe)-.15 G .199(cuted as if it were the ar).15 F(gu-)-.18 E
+(ment to the)184 409.2 Q F1(cd)2.5 E F0 2.5(command. This)2.5 F
 (option is only used by interacti)2.5 E .3 -.15(ve s)-.25 H(hells.).15 E
-F1(cdable_v)144 142.8 Q(ars)-.1 E F0 .156(If set, an ar)184 154.8 R .156
-(gument to the)-.18 F F1(cd)2.656 E F0 -.2(bu)2.656 G .155
+F1(cdable_v)144 421.2 Q(ars)-.1 E F0 .155(If set, an ar)184 433.2 R .155
+(gument to the)-.18 F F1(cd)2.655 E F0 -.2(bu)2.655 G .156
 (iltin command that is not a directory is assumed to be the).2 F
-(name of a v)184 166.8 Q(ariable whose v)-.25 E
-(alue is the directory to change to.)-.25 E F1(cdspell)144 178.8 Q F0
+(name of a v)184 445.2 Q(ariable whose v)-.25 E
+(alue is the directory to change to.)-.25 E F1(cdspell)144 457.2 Q F0
 1.055
 (If set, minor errors in the spelling of a directory component in a)
-10.55 F F1(cd)3.555 E F0 1.055(command will be)3.555 F 3.988
-(corrected. The)184 190.8 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 202.8 R 4.352 -.65
+10.55 F F1(cd)3.555 E F0 1.055(command will be)3.555 F 3.987
+(corrected. The)184 469.2 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 481.2 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 214.8 Q
+(the command proceeds.)184 493.2 Q
 (This option is only used by interacti)5 E .3 -.15(ve s)-.25 H(hells.)
-.15 E F1(checkhash)144 226.8 Q F0 2.08(If set,)184 238.8 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 250.8 S(cute it.).15 E
+.15 E F1(checkhash)144 505.2 Q F0 2.079(If set,)184 517.2 R F1(bash)
+4.579 E F0 2.079(checks that a command found in the hash table e)4.579 F
+2.08(xists before trying to)-.15 F -.15(exe)184 529.2 S(cute it.).15 E
 (If a hashed command no longer e)5 E
-(xists, a normal path search is performed.)-.15 E F1(checkjobs)144 262.8
-Q F0 .56(If set, bash lists the status of an)184 274.8 R 3.061(ys)-.15 G
-.561(topped and running jobs before e)-3.061 F .561(xiting an interacti)
--.15 F -.15(ve)-.25 G 3.439(shell. If)184 286.8 R(an)3.439 E 3.439(yj)
--.15 G .938(obs are running, this causes the e)-3.439 F .938
-(xit to be deferred until a second e)-.15 F .938(xit is)-.15 F 1.456
-(attempted without an interv)184 298.8 R 1.456(ening command \(see)-.15
+(xists, a normal path search is performed.)-.15 E F1(checkjobs)144 541.2
+Q F0 .449(If set,)184 553.2 R F1(bash)2.949 E F0 .449
+(lists the status of an)2.949 F 2.949(ys)-.15 G .448
+(topped and running jobs before e)-2.949 F .448(xiting an interacti)-.15
+F -.15(ve)-.25 G 3.438(shell. If)184 565.2 R(an)3.438 E 3.438(yj)-.15 G
+.938(obs are running, this causes the e)-3.438 F .938
+(xit to be deferred until a second e)-.15 F .939(xit is)-.15 F 1.456
+(attempted without an interv)184 577.2 R 1.456(ening command \(see)-.15
 F F1 1.456(JOB CONTR)3.956 F(OL)-.3 E F0(abo)3.956 E -.15(ve)-.15 G
-3.956(\). The).15 F(shell)3.956 E(al)184 310.8 Q -.1(wa)-.1 G
+3.956(\). The).15 F(shell)3.956 E(al)184 589.2 Q -.1(wa)-.1 G
 (ys postpones e).1 E(xiting if an)-.15 E 2.5(yj)-.15 G(obs are stopped.)
--2.5 E F1(checkwinsize)144 322.8 Q F0 .797(If set,)184 334.8 R F1(bash)
-3.297 E F0 .797(checks the windo)3.297 F 3.297(ws)-.25 G .796
-(ize after each command and, if necessary)-3.297 F 3.296(,u)-.65 G .796
-(pdates the)-3.296 F -.25(va)184 346.8 S(lues of).25 E/F2 9/Times-Bold@0
-SF(LINES)2.5 E F0(and)2.25 E F2(COLUMNS)2.5 E/F3 9/Times-Roman@0 SF(.)A
-F1(cmdhist)144 358.8 Q F0 1.202(If set,)6.11 F F1(bash)3.702 E F0 1.202
+-2.5 E F1(checkwinsize)144 601.2 Q F0 .796(If set,)184 613.2 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 625.2 S(lues of).25 E/F3 9/Times-Bold@0
+SF(LINES)2.5 E F0(and)2.25 E F3(COLUMNS)2.5 E/F4 9/Times-Roman@0 SF(.)A
+F1(cmdhist)144 637.2 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
-370.8 Q 5(.T)-.65 G(his allo)-5 E
-(ws easy re-editing of multi-line commands.)-.25 E F1(compat31)144 382.8
-Q F0 .42(If set,)184 394.8 R F1(bash)2.92 E F0 .42(changes its beha)2.92
-F .419(vior to that of v)-.2 F .419
+649.2 Q 5(.T)-.65 G(his allo)-5 E
+(ws easy re-editing of multi-line commands.)-.25 E F1(compat31)144 661.2
+Q F0 .419(If set,)184 673.2 R F1(bash)2.919 E F0 .419(changes its beha)
+2.919 F .419(vior to that of v)-.2 F .42
 (ersion 3.1 with respect to quoted ar)-.15 F(guments)-.18 E
-(to the conditional command')184 406.8 Q 2.5(s=)-.55 G 2.5(~o)-2.5 G
-(perator)-2.5 E(.)-.55 E F1(dotglob)144 418.8 Q F0 .165(If set,)7.77 F
+(to the conditional command')184 685.2 Q 2.5(s=)-.55 G 2.5(~o)-2.5 G
+(perator)-2.5 E(.)-.55 E F1(dotglob)144 697.2 Q F0 .165(If set,)7.77 F
 F1(bash)2.665 E F0 .165(includes \214lenames be)2.665 F .165
 (ginning with a `.)-.15 F 2.665('i)-.7 G 2.665(nt)-2.665 G .165
 (he results of pathname e)-2.665 F(xpansion.)-.15 E F1(execfail)144
-430.8 Q F0 1.387(If set, a non-interacti)7.79 F 1.687 -.15(ve s)-.25 H
+709.2 Q F0 1.386(If set, a non-interacti)7.79 F 1.686 -.15(ve s)-.25 H
 1.386(hell will not e).15 F 1.386(xit if it cannot e)-.15 F -.15(xe)-.15
-G 1.386(cute the \214le speci\214ed as an).15 F(ar)184 442.8 Q
+G 1.387(cute the \214le speci\214ed as an).15 F(ar)184 721.2 Q
 (gument to the)-.18 E F1(exec)2.5 E F0 -.2(bu)2.5 G(iltin command.).2 E
 (An interacti)5 E .3 -.15(ve s)-.25 H(hell does not e).15 E(xit if)-.15
-E F1(exec)2.5 E F0 -.1(fa)2.5 G(ils.).1 E F1(expand_aliases)144 454.8 Q
-F0 .716(If set, aliases are e)184 466.8 R .717(xpanded as described abo)
--.15 F 1.017 -.15(ve u)-.15 H(nder).15 E F2(ALIASES)3.217 E F3(.)A F0
-.717(This option is enabled)5.217 F(by def)184 478.8 Q
-(ault for interacti)-.1 E .3 -.15(ve s)-.25 H(hells.).15 E F1(extdeb)144
-490.8 Q(ug)-.2 E F0(If set, beha)184 502.8 Q
+E F1(exec)2.5 E F0 -.1(fa)2.5 G(ils.).1 E(GNU Bash-3.2)72 768 Q
+(2008 April 5)148.455 E(59)198.445 E 0 Cg EP
+%%Page: 60 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(expand_aliases)144 84 Q F0 .717
+(If set, aliases are e)184 96 R .717(xpanded as described abo)-.15 F
+1.017 -.15(ve u)-.15 H(nder).15 E/F2 9/Times-Bold@0 SF(ALIASES)3.217 E
+/F3 9/Times-Roman@0 SF(.)A F0 .716(This option is enabled)5.217 F
+(by def)184 108 Q(ault for interacti)-.1 E .3 -.15(ve s)-.25 H(hells.)
+.15 E F1(extdeb)144 120 Q(ug)-.2 E F0(If set, beha)184 132 Q
 (vior intended for use by deb)-.2 E(uggers is enabled:)-.2 E F1(1.)184
-514.8 Q F0(The)28.5 E F1<ad46>4.251 E F0 1.751(option to the)4.251 F F1
+144 Q F0(The)28.5 E F1<ad46>4.25 E F0 1.75(option to the)4.25 F F1
 (declar)4.251 E(e)-.18 E F0 -.2(bu)4.251 G 1.751
 (iltin displays the source \214le name and line).2 F
-(number corresponding to each function name supplied as an ar)220 526.8
-Q(gument.)-.18 E F1(2.)184 538.8 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
-550.8 Q -.15(xe)-.15 G(cuted.).15 E F1(3.)184 562.8 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 574.8 S .488
+(number corresponding to each function name supplied as an ar)220 156 Q
+(gument.)-.18 E F1(2.)184 168 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 180
+Q -.15(xe)-.15 G(cuted.).15 E F1(3.)184 192 Q F0 .84
+(If the command run by the)28.5 F F1(DEB)3.34 E(UG)-.1 E F0 .841
+(trap returns a v)3.341 F .841(alue of 2, and the shell is)-.25 F -.15
+(exe)220 204 S .488
 (cuting in a subroutine \(a shell function or a shell script e).15 F
 -.15(xe)-.15 G .488(cuted by the).15 F F1(.)2.988 E F0(or)2.988 E F1
-(sour)220 586.8 Q(ce)-.18 E F0 -.2(bu)2.5 G(iltins\), a call to).2 E F1
+(sour)220 216 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
-598.8 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
-610.8 Q -.15(ve)-.15 G(.).15 E F1(5.)184 622.8 Q F0 1.359
+228 R(ASH_ARGC)-.3 E F0(and)3.775 E F1 -.3(BA)3.775 G(SH_ARGV).3 E F0
+1.276(are updated as described in their descrip-)3.775 F(tions abo)220
+240 Q -.15(ve)-.15 G(.).15 E F1(5.)184 252 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
-634.8 Q -.2(vo)-.4 G -.1(ke).2 G 2.5(dw).1 G(ith)-2.5 E F1(\()2.5 E/F4
-10/Times-Italic@0 SF(command)2.5 E F1(\))2.5 E F0(inherit the)2.5 E F1
+264 Q -.2(vo)-.4 G -.1(ke).2 G 2.5(dw).1 G(ith)-2.5 E F1(\()2.5 E/F4 10
+/Times-Italic@0 SF(command)2.5 E F1(\))2.5 E F0(inherit the)2.5 E F1
 (DEB)2.5 E(UG)-.1 E F0(and)2.5 E F1(RETURN)2.5 E F0(traps.)2.5 E F1(6.)
-184 646.8 Q F0 .805(Error tracing is enabled:)28.5 F .804
-(command substitution, shell functions, and subshells)5.805 F(in)220
-658.8 Q -.2(vo)-.4 G -.1(ke).2 G 2.5(dw).1 G(ith)-2.5 E F1(\()2.5 E F4
+184 276 Q F0 .804(Error tracing is enabled:)28.5 F .805
+(command substitution, shell functions, and subshells)5.804 F(in)220 288
+Q -.2(vo)-.4 G -.1(ke).2 G 2.5(dw).1 G(ith)-2.5 E F1(\()2.5 E F4
 (command)2.5 E F1(\))2.5 E F0(inherit the)2.5 E F1(ERR)2.5 E(OR)-.3 E F0
-(trap.)2.5 E F1(extglob)144 670.8 Q F0 .4(If set, the e)8.89 F .4
+(trap.)2.5 E F1(extglob)144 300 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 682.8 Q
-F0(are enabled.)2.5 E F1(extquote)144 694.8 Q F0 2.473(If set,)184 706.8
-R F1($)4.973 E F0<08>A F4(string)A F0 4.973<0861>C(nd)-4.973 E F1($)
-4.973 E F0(")A F4(string)A F0 4.973("q)C 2.473
-(uoting is performed within)-4.973 F F1(${)4.973 E F4(par)A(ameter)-.15
-E F1(})A F0 -.15(ex)4.973 G(pansions).15 E(enclosed in double quotes.)
-184 718.8 Q(This option is enabled by def)5 E(ault.)-.1 E(GNU Bash-3.2)
-72 768 Q(2008 February 22)138.46 E(59)188.45 E 0 Cg EP
-%%Page: 60 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(failglob)144 84 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 96 S(pansion error).15 E(.)
--.55 E F1 -.25(fo)144 108 S -.18(rc).25 G(e_\214gnor).18 E(e)-.18 E F0
-.585(If set, the suf)184 120 R<8c78>-.25 E .585(es speci\214ed by the)
+-.15 H(nder).15 E F1 -.1(Pa)2.9 G .4(thname Expan-).1 F(sion)184 312 Q
+F0(are enabled.)2.5 E F1(extquote)144 324 Q F0 2.473(If set,)184 336 R
+F1($)4.973 E F0<08>A F4(string)A F0 4.973<0861>C(nd)-4.973 E F1($)4.973
+E F0(")A F4(string)A F0 4.973("q)C 2.473(uoting is performed within)
+-4.973 F F1(${)4.973 E F4(par)A(ameter)-.15 E F1(})A F0 -.15(ex)4.973 G
+(pansions).15 E(enclosed in double quotes.)184 348 Q
+(This option is enabled by def)5 E(ault.)-.1 E F1(failglob)144 360 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 372 S(pansion error).15 E(.)
+-.55 E F1 -.25(fo)144 384 S -.18(rc).25 G(e_\214gnor).18 E(e)-.18 E F0
+.585(If set, the suf)184 396 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 132 R .32
+-.25 F .585(ords to be ignored)-.1 F .32(when performing w)184 408 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 144 R/F2 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 156 Q(ault.)-.1 E F1
-(gnu_errfmt)144 168 Q F0(If set, shell error messages are written in th\
-e standard GNU error message format.)184 180 Q F1(histappend)144 192 Q
-F0 .383
+(he ignored w)-2.82 F .32(ords are the only possible com-)-.1 F 3.329
+(pletions. See)184 420 R F2 .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 432 Q(ault.)-.1 E F1(gnu_errfmt)144 444 Q F0(If set, shell error me\
+ssages are written in the standard GNU error message format.)184 456 Q
+F1(histappend)144 468 Q F0 .384
 (If set, the history list is appended to the \214le named by the v)184
-204 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 216 Q(xits, rather than o)-.15 E
--.15(ve)-.15 G(rwriting the \214le.).15 E F1(histr)144 228 Q(eedit)-.18
-E F0 .576(If set, and)184 240 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 252 Q F1(histv)144 264 Q(erify)-.1 E F0 .402
-(If set, and)184 276 R F1 -.18(re)2.903 G(adline).18 E F0 .403
+480 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 492 Q(xits, rather than o)-.15 E
+-.15(ve)-.15 G(rwriting the \214le.).15 E F1(histr)144 504 Q(eedit)-.18
+E F0 .575(If set, and)184 516 R F1 -.18(re)3.075 G(adline).18 E F0 .575
+(is being used, a user is gi)3.075 F -.15(ve)-.25 G 3.075(nt).15 G .576
+(he opportunity to re-edit a f)-3.075 F .576(ailed his-)-.1 F
+(tory substitution.)184 528 Q F1(histv)144 540 Q(erify)-.1 E F0 .403
+(If set, and)184 552 R F1 -.18(re)2.903 G(adline).18 E F0 .403
 (is being used, the results of history substitution are not immediately)
-2.903 F .662(passed to the shell parser)184 288 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 300 S -.25(ff).2 G(er).25 E
+2.903 F .661(passed to the shell parser)184 564 R 5.661(.I)-.55 G .662
+(nstead, the resulting line is loaded into the)-5.661 F F1 -.18(re)3.162
+G(adline).18 E F0(editing)3.162 E -.2(bu)184 576 S -.25(ff).2 G(er).25 E
 2.5(,a)-.4 G(llo)-2.5 E(wing further modi\214cation.)-.25 E F1
-(hostcomplete)144 312 Q F0 1.181(If set, and)184 324 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
-336 R 1.381(ord containing a)-.1 F F1(@)3.881 E F0 1.381
-(is being completed \(see)3.881 F F1(Completing)3.88 E F0(under)3.88 E
-F2(READLINE)3.88 E F0(abo)184 348 Q -.15(ve)-.15 G 2.5(\). This).15 F
-(is enabled by def)2.5 E(ault.)-.1 E F1(huponexit)144 360 Q F0(If set,)
-184 372 Q F1(bash)2.5 E F0(will send)2.5 E F2(SIGHUP)2.5 E F0
+(hostcomplete)144 588 Q F0 1.182(If set, and)184 600 R F1 -.18(re)3.682
+G(adline).18 E F0 1.182(is being used,)3.682 F F1(bash)3.682 E F0 1.181
+(will attempt to perform hostname completion)3.681 F 1.38(when a w)184
+612 R 1.38(ord containing a)-.1 F F1(@)3.881 E F0 1.381
+(is being completed \(see)3.881 F F1(Completing)3.881 E F0(under)3.881 E
+F2(READLINE)3.881 E F0(abo)184 624 Q -.15(ve)-.15 G 2.5(\). This).15 F
+(is enabled by def)2.5 E(ault.)-.1 E F1(huponexit)144 636 Q F0(If set,)
+184 648 Q F1(bash)2.5 E F0(will send)2.5 E F2(SIGHUP)2.5 E F0
 (to all jobs when an interacti)2.25 E .3 -.15(ve l)-.25 H(ogin shell e)
-.15 E(xits.)-.15 E F1(interacti)144 384 Q -.1(ve)-.1 G(_comments).1 E F0
-.33(If set, allo)184 396 R 2.83(waw)-.25 G .33(ord be)-2.93 F .33
+.15 E(xits.)-.15 E F1(interacti)144 660 Q -.1(ve)-.1 G(_comments).1 E F0
+.33(If set, allo)184 672 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 408 R 1.267 -.15(ve s)-.25
+(that line to be ignored in an interacti)184 684 R 1.267 -.15(ve s)-.25
 H .967(hell \(see).15 F F2(COMMENTS)3.467 E F0(abo)3.217 E -.15(ve)-.15
-G 3.467(\). This).15 F .967(option is)3.467 F(enabled by def)184 420 Q
-(ault.)-.1 E F1(lithist)144 432 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 444 Q
-(wlines rather than using semicolon separators where possible.)-.25 E F1
-(login_shell)144 456 Q F0 .486
-(The shell sets this option if it is started as a login shell \(see)184
-468 R F2(INV)2.986 E(OCA)-.405 E(TION)-.855 E F0(abo)2.736 E -.15(ve)
--.15 G 2.986(\). The).15 F -.25(va)184 480 S(lue may not be changed.).25
-E F1(mailwar)144 492 Q(n)-.15 E F0 .814(If set, and a \214le that)184
-504 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 516 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 528 Q F0 .146(If set, and)184 540 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 552 Q F1
-(nocaseglob)144 564 Q F0 .436(If set,)184 576 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 588 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 600 Q F0 1.194(If set,)184
-612 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 624 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 636 Q F0
-.854(If set,)184 648 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 660 S(pand to a null string, rather than themselv)
-.15 E(es.)-.15 E F1(pr)144 672 Q(ogcomp)-.18 E F0 .677
-(If set, the programmable completion f)184 684 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 696 Q
-(This option is enabled by def)5 E(ault.)-.1 E(GNU Bash-3.2)72 768 Q
-(2008 February 22)138.46 E(60)188.45 E 0 Cg EP
+G 3.467(\). This).15 F .968(option is)3.468 F(enabled by def)184 696 Q
+(ault.)-.1 E F1(lithist)144 708 Q F0 .655(If set, and the)15.55 F F1
+(cmdhist)3.155 E F0 .654(option is enabled, multi-line commands are sa)
+3.154 F -.15(ve)-.2 G 3.154(dt).15 G 3.154(ot)-3.154 G .654(he history)
+-3.154 F(with embedded ne)184 720 Q
+(wlines rather than using semicolon separators where possible.)-.25 E
+(GNU Bash-3.2)72 768 Q(2008 April 5)148.455 E(60)198.445 E 0 Cg EP
 %%Page: 61 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(pr)144 84 Q(omptv)-.18 E(ars)-.1 E F0 1.447
-(If set, prompt strings under)184 96 R 1.448(go parameter e)-.18 F 1.448
-(xpansion, command substitution, arithmetic)-.15 F -.15(ex)184 108 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 120 Q(ault.)-.1 E F1 -.18(re)
-144 132 S(stricted_shell).18 E F0 1.069
+-.35 E/F1 10/Times-Bold@0 SF(login_shell)144 84 Q F0 .486
+(The shell sets this option if it is started as a login shell \(see)184
+96 R/F2 9/Times-Bold@0 SF(INV)2.987 E(OCA)-.405 E(TION)-.855 E F0(abo)
+2.737 E -.15(ve)-.15 G 2.987(\). The).15 F -.25(va)184 108 S
+(lue may not be changed.).25 E F1(mailwar)144 120 Q(n)-.15 E F0 .815
+(If set, and a \214le that)184 132 R F1(bash)3.315 E F0 .814
+(is checking for mail has been accessed since the last time it)3.315 F
+-.1(wa)184 144 S 2.5(sc).1 G(heck)-2.5 E(ed, the message `)-.1 E
+(`The mail in)-.74 E/F3 10/Times-Italic@0 SF(mail\214le)2.5 E F0
+(has been read')2.5 E 2.5('i)-.74 G 2.5(sd)-2.5 G(isplayed.)-2.5 E F1
+(no_empty_cmd_completion)144 156 Q F0 .145(If set, and)184 168 R F1 -.18
+(re)2.645 G(adline).18 E F0 .145(is being used,)2.645 F F1(bash)2.646 E
+F0 .146(will not attempt to search the)2.646 F F1 -.74(PA)2.646 G(TH)
+-.21 E F0 .146(for possible)2.646 F
+(completions when completion is attempted on an empty line.)184 180 Q F1
+(nocaseglob)144 192 Q F0 .437(If set,)184 204 R F1(bash)2.937 E F0 .436
+(matches \214lenames in a case\255insensiti)2.937 F .736 -.15(ve f)-.25
+H .436(ashion when performing pathname).05 F -.15(ex)184 216 S
+(pansion \(see).15 E F1 -.1(Pa)2.5 G(thname Expansion).1 E F0(abo)2.5 E
+-.15(ve)-.15 G(\).).15 E F1(nocasematch)144 228 Q F0 1.193(If set,)184
+240 R F1(bash)3.693 E F0 1.194(matches patterns in a case\255insensiti)
+3.693 F 1.494 -.15(ve f)-.25 H 1.194(ashion when performing matching).05
+F(while e)184 252 Q -.15(xe)-.15 G(cuting).15 E F1(case)2.5 E F0(or)2.5
+E F1([[)2.5 E F0(conditional commands.)2.5 E F1(nullglob)144 264 Q F0
+.855(If set,)184 276 R F1(bash)3.355 E F0(allo)3.355 E .855
+(ws patterns which match no \214les \(see)-.25 F F1 -.1(Pa)3.354 G .854
+(thname Expansion).1 F F0(abo)3.354 E -.15(ve)-.15 G 3.354(\)t).15 G(o)
+-3.354 E -.15(ex)184 288 S(pand to a null string, rather than themselv)
+.15 E(es.)-.15 E F1(pr)144 300 Q(ogcomp)-.18 E F0 .676
+(If set, the programmable completion f)184 312 R .677(acilities \(see)
+-.1 F F1(Pr)3.177 E .677(ogrammable Completion)-.18 F F0(abo)3.177 E
+-.15(ve)-.15 G(\)).15 E(are enabled.)184 324 Q
+(This option is enabled by def)5 E(ault.)-.1 E F1(pr)144 336 Q(omptv)
+-.18 E(ars)-.1 E F0 1.448(If set, prompt strings under)184 348 R 1.448
+(go parameter e)-.18 F 1.447(xpansion, command substitution, arithmetic)
+-.15 F -.15(ex)184 360 S .17(pansion, and quote remo).15 F -.25(va)-.15
+G 2.67(la).25 G .17(fter being e)-2.67 F .17(xpanded as described in)
+-.15 F F2(PR)2.671 E(OMPTING)-.27 E F0(abo)2.421 E -.15(ve)-.15 G(.).15
+E(This option is enabled by def)184 372 Q(ault.)-.1 E F1 -.18(re)144 384
+S(stricted_shell).18 E F0 1.069
 (The shell sets this option if it is started in restricted mode \(see)
-184 144 R F2 1.069(RESTRICTED SHELL)3.569 F F0(belo)184 156 Q 4.178
+184 396 R F2 1.069(RESTRICTED SHELL)3.569 F F0(belo)184 408 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 168 S(cuted, allo).15 E(wing the startup \214les to disco)-.25 E
+184 420 S(cuted, allo).15 E(wing the startup \214les to disco)-.25 E
 -.15(ve)-.15 G 2.5(rw).15 G(hether or not a shell is restricted.)-2.5 E
-F1(shift_v)144 180 Q(erbose)-.1 E F0 .501(If set, the)184 192 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 204 Q F1(sour)
-144 216 Q(cepath)-.18 E F0 .771(If set, the)184 228 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 240 Q 2.5(gument. This)-.18 F(option is enabled by def)2.5 E(ault.)
--.1 E F1(xpg_echo)144 252 Q F0(If set, the)184 264 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 276 Q F0([)2.5 E F1<ad66>A F0(])A .492
-(Suspend the e)144 288 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 300 R(yw)-.15 E
-(ay)-.1 E 5.758(.T)-.65 G .758
+F1(shift_v)144 432 Q(erbose)-.1 E F0 .502(If set, the)184 444 R F1
+(shift)3.002 E F0 -.2(bu)3.002 G .501
+(iltin prints an error message when the shift count e).2 F .501
+(xceeds the number)-.15 F(of positional parameters.)184 456 Q F1(sour)
+144 468 Q(cepath)-.18 E F0 .77(If set, the)184 480 R F1(sour)3.27 E(ce)
+-.18 E F0(\()3.27 E F1(.)A F0 3.27(\)b)C .77(uiltin uses the v)-3.47 F
+.771(alue of)-.25 F F2 -.666(PA)3.271 G(TH)-.189 E F0 .771
+(to \214nd the directory containing the)3.021 F
+(\214le supplied as an ar)184 492 Q 2.5(gument. This)-.18 F
+(option is enabled by def)2.5 E(ault.)-.1 E F1(xpg_echo)144 504 Q F0
+(If set, the)184 516 Q F1(echo)2.5 E F0 -.2(bu)2.5 G(iltin e).2 E
+(xpands backslash-escape sequences by def)-.15 E(ault.)-.1 E F1(suspend)
+108 528 Q F0([)2.5 E F1<ad66>A F0(])A .493(Suspend the e)144 540 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 552 R(yw)-.15 E
+(ay)-.1 E 5.758(.T)-.65 G .759
 (he return status is 0 unless the shell is a)-5.758 F(login shell and)
-144 312 Q F1<ad66>2.5 E F0
+144 564 Q F1<ad66>2.5 E F0
 (is not supplied, or if job control is not enabled.)2.5 E F1(test)108
-324 Q/F3 10/Times-Italic@0 SF -.2(ex)2.5 G(pr).2 E F1([)108 336 Q F3 -.2
-(ex)2.5 G(pr).2 E F1(])2.5 E F0 1.15
-(Return a status of 0 or 1 depending on the e)6.77 F -.25(va)-.25 G 1.15
-(luation of the conditional e).25 F(xpression)-.15 E F3 -.2(ex)3.65 G
-(pr).2 E F0 6.15(.E).73 G(ach)-6.15 E 1.188
-(operator and operand must be a separate ar)144 348 R 3.688
-(gument. Expressions)-.18 F 1.187(are composed of the primaries)3.688 F
-1.889(described abo)144 360 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 372 Q
+576 Q F3 -.2(ex)2.5 G(pr).2 E F1([)108 588 Q F3 -.2(ex)2.5 G(pr).2 E F1
+(])2.5 E F0 1.15(Return a status of 0 or 1 depending on the e)6.77 F
+-.25(va)-.25 G 1.15(luation of the conditional e).25 F(xpression)-.15 E
+F3 -.2(ex)3.65 G(pr).2 E F0 6.15(.E).73 G(ach)-6.15 E 1.187
+(operator and operand must be a separate ar)144 600 R 3.688
+(gument. Expressions)-.18 F 1.188(are composed of the primaries)3.688 F
+1.89(described abo)144 612 R 2.19 -.15(ve u)-.15 H(nder).15 E F2
+(CONDITION)4.39 E 1.89(AL EXPRESSIONS)-.18 F/F4 9/Times-Roman@0 SF(.)A
+F1(test)6.39 E F0 1.889(does not accept an)4.389 F 4.389(yo)-.15 G 1.889
+(ptions, nor)-4.389 F(does it accept and ignore an ar)144 624 Q
 (gument of)-.18 E F1<adad>2.5 E F0(as signifying the end of options.)2.5
-E .786(Expressions may be combined using the follo)144 390 R .785
+E .785(Expressions may be combined using the follo)144 642 R .786
 (wing operators, listed in decreasing order of prece-)-.25 F 2.5
-(dence. The)144 402 R -.25(eva)2.5 G
+(dence. The)144 654 R -.25(eva)2.5 G
 (luation depends on the number of ar).25 E(guments; see belo)-.18 E -.65
-(w.)-.25 G F1(!)144 414 Q F3 -.2(ex)2.5 G(pr).2 E F0 -.35(Tr)12.6 G
+(w.)-.25 G F1(!)144 666 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 426 Q F3 -.2(ex)2.5 G(pr).2 E F1(\))2.5 E F0 .26(Returns the v)6.77
+144 678 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 438 Q F3 -.2(ex)
-144 450 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 462 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 474 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 486 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 502.8 Q F0(and)2.5 E F1([)2.5 E
+(rride the normal precedence of opera-).15 F(tors.)180 690 Q F3 -.2(ex)
+144 702 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 714 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(GNU Bash-3.2)72 768 Q
+(2008 April 5)148.455 E(61)198.445 E 0 Cg EP
+%%Page: 62 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/F1 10/Times-Italic@0 SF -.2(ex)144 84 S(pr1).2 E F0<ad>2.5 E/F2
+10/Times-Bold@0 SF(o)A F1 -.2(ex)2.5 G(pr2).2 E F0 -.35(Tr)180 96 S
+(ue if either).35 E F1 -.2(ex)2.5 G(pr1).2 E F0(or)2.5 E F1 -.2(ex)2.5 G
+(pr2).2 E F0(is true.)2.52 E F2(test)144 112.8 Q F0(and)2.5 E F2([)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 520.8 S -.18(rg)-2.5 G(uments).18 E(The e)
-180 532.8 Q(xpression is f)-.15 E(alse.)-.1 E 2.5(1a)144 544.8 S -.18
-(rg)-2.5 G(ument).18 E(The e)180 556.8 Q
+(guments.)-.18 E 2.5(0a)144 130.8 S -.18(rg)-2.5 G(uments).18 E(The e)
+180 142.8 Q(xpression is f)-.15 E(alse.)-.1 E 2.5(1a)144 154.8 S -.18
+(rg)-2.5 G(ument).18 E(The e)180 166.8 Q
 (xpression is true if and only if the ar)-.15 E(gument is not null.)-.18
-E 2.5(2a)144 568.8 S -.18(rg)-2.5 G(uments).18 E .37(If the \214rst ar)
-180 580.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 178.8 S -.18(rg)-2.5 G(uments).18 E .37(If the \214rst ar)
+180 190.8 R .37(gument is)-.18 F F2(!)2.87 E F0 2.87(,t)C .37(he e)-2.87
 F .37(xpression is true if and only if the second ar)-.15 F .37
-(gument is null.)-.18 F .379(If the \214rst ar)180 592.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 604.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 616.8 Q
+(gument is null.)-.18 F .38(If the \214rst ar)180 202.8 R .38
+(gument is one of the unary conditional operators listed abo)-.18 F .679
+-.15(ve u)-.15 H(nder).15 E/F3 9/Times-Bold@0 SF(CONDI-)2.879 E(TION)180
+214.8 Q .552(AL EXPRESSIONS)-.18 F/F4 9/Times-Roman@0 SF(,)A F0 .552
+(the e)2.802 F .552(xpression is true if the unary test is true.)-.15 F
+.552(If the \214rst ar)5.552 F(gu-)-.18 E(ment is not a v)180 226.8 Q
 (alid unary conditional operator)-.25 E 2.5(,t)-.4 G(he e)-2.5 E
-(xpression is f)-.15 E(alse.)-.1 E 2.5(3a)144 628.8 S -.18(rg)-2.5 G
-(uments).18 E .023(If the second ar)180 640.8 R .023
+(xpression is f)-.15 E(alse.)-.1 E 2.5(3a)144 238.8 S -.18(rg)-2.5 G
+(uments).18 E .024(If the second ar)180 250.8 R .023
 (gument is one of the binary conditional operators listed abo)-.18 F
-.324 -.15(ve u)-.15 H(nder).15 E F2(CON-)2.524 E(DITION)180 652.8 Q
-1.478(AL EXPRESSIONS)-.18 F F4(,)A F0 1.477(the result of the e)3.727 F
+.323 -.15(ve u)-.15 H(nder).15 E F3(CON-)2.523 E(DITION)180 262.8 Q
+1.477(AL EXPRESSIONS)-.18 F F4(,)A F0 1.477(the result of the e)3.727 F
 1.477(xpression is the result of the binary test)-.15 F .513
-(using the \214rst and third ar)180 664.8 R .513(guments as operands.)
--.18 F(The)5.513 E F1<ad61>3.013 E F0(and)3.013 E F1<ad6f>3.013 E F0
-.513(operators are considered)3.013 F .972
-(binary operators when there are three ar)180 676.8 R 3.472(guments. If)
--.18 F .972(the \214rst ar)3.472 F .972(gument is)-.18 F F1(!)3.472 E F0
-3.472(,t)C .972(he v)-3.472 F .972(alue is)-.25 F .883(the ne)180 688.8
-R -.05(ga)-.15 G .883(tion of the tw).05 F(o-ar)-.1 E .884
-(gument test using the second and third ar)-.18 F 3.384(guments. If)-.18
-F .884(the \214rst)3.384 F(ar)180 700.8 Q .875(gument is e)-.18 F
-(xactly)-.15 E F1(\()3.375 E F0 .875(and the third ar)3.375 F .875
-(gument is e)-.18 F(xactly)-.15 E F1(\))3.375 E F0 3.374(,t)C .874
-(he result is the one-ar)-3.374 F(gument)-.18 E(test of the second ar)
-180 712.8 Q 2.5(gument. Otherwise,)-.18 F(the e)2.5 E(xpression is f)
--.15 E(alse.)-.1 E(GNU Bash-3.2)72 768 Q(2008 February 22)138.46 E(61)
-188.45 E 0 Cg EP
-%%Page: 62 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(4a)144 84 S -.18(rg)-2.5 G(uments).18 E .384
-(If the \214rst ar)180 96 R .384(gument is)-.18 F/F1 10/Times-Bold@0 SF
-(!)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 108 R 4.147
-(guments. Otherwise,)-.18 F 1.647(the e)4.147 F 1.647
+(using the \214rst and third ar)180 274.8 R .513(guments as operands.)
+-.18 F(The)5.513 E F2<ad61>3.013 E F0(and)3.013 E F2<ad6f>3.013 E F0
+.512(operators are considered)3.013 F .972
+(binary operators when there are three ar)180 286.8 R 3.472(guments. If)
+-.18 F .972(the \214rst ar)3.472 F .972(gument is)-.18 F F2(!)3.472 E F0
+3.472(,t)C .972(he v)-3.472 F .972(alue is)-.25 F .884(the ne)180 298.8
+R -.05(ga)-.15 G .884(tion of the tw).05 F(o-ar)-.1 E .884
+(gument test using the second and third ar)-.18 F 3.383(guments. If)-.18
+F .883(the \214rst)3.383 F(ar)180 310.8 Q .874(gument is e)-.18 F
+(xactly)-.15 E F2(\()3.374 E F0 .875(and the third ar)3.374 F .875
+(gument is e)-.18 F(xactly)-.15 E F2(\))3.375 E F0 3.375(,t)C .875
+(he result is the one-ar)-3.375 F(gument)-.18 E(test of the second ar)
+180 322.8 Q 2.5(gument. Otherwise,)-.18 F(the e)2.5 E(xpression is f)
+-.15 E(alse.)-.1 E 2.5(4a)144 334.8 S -.18(rg)-2.5 G(uments).18 E .385
+(If the \214rst ar)180 346.8 R .385(gument is)-.18 F F2(!)2.885 E F0
+2.885(,t)C .385(he result is the ne)-2.885 F -.05(ga)-.15 G .384
+(tion of the three-ar).05 F .384(gument e)-.18 F .384(xpression com-)
+-.15 F 1.647(posed of the remaining ar)180 358.8 R 4.147
+(guments. Otherwise,)-.18 F 1.647(the e)4.147 F 1.648
 (xpression is parsed and e)-.15 F -.25(va)-.25 G(luated).25 E
-(according to precedence using the rules listed abo)180 120 Q -.15(ve)
--.15 G(.).15 E 2.5(5o)144 132 S 2.5(rm)-2.5 G(ore ar)-2.5 E(guments)-.18
-E 1.635(The e)180 144 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 156 Q -.15(ve)-.15 G(.).15 E F1(times)108 172.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 184.8 Q F1
-(trap)108 201.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 213.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 225.6 R F2(sigspec)3.108 E F0 3.108(\)o)C(r)-3.108 E F1<ad>3.108 E
+(according to precedence using the rules listed abo)180 370.8 Q -.15(ve)
+-.15 G(.).15 E 2.5(5o)144 382.8 S 2.5(rm)-2.5 G(ore ar)-2.5 E(guments)
+-.18 E 1.635(The e)180 394.8 R 1.635(xpression is parsed and e)-.15 F
+-.25(va)-.25 G 1.635
+(luated according to precedence using the rules listed).25 F(abo)180
+406.8 Q -.15(ve)-.15 G(.).15 E F2(times)108 423.6 Q F0 1.229(Print the \
+accumulated user and system times for the shell and for processes run f\
+rom the shell.)13.23 F(The return status is 0.)144 435.6 Q F2(trap)108
+452.4 Q F0([)2.5 E F2(\255lp)A F0 2.5(][)C([)-2.5 E F1(ar)A(g)-.37 E F0
+(])A F1(sigspec)2.5 E F0(...])2.5 E .703(The command)144 464.4 R F1(ar)
+3.533 E(g)-.37 E F0 .703(is to be read and e)3.423 F -.15(xe)-.15 G .702
+(cuted when the shell recei).15 F -.15(ve)-.25 G 3.202(ss).15 G
+(ignal\(s\))-3.202 E F1(sigspec)3.202 E F0 5.702(.I).31 G(f)-5.702 E F1
+(ar)3.532 E(g)-.37 E F0(is)3.422 E .608(absent \(and there is a single)
+144 476.4 R F1(sigspec)3.108 E F0 3.108(\)o)C(r)-3.108 E F2<ad>3.108 E
 F0 3.108(,e)C .608
 (ach speci\214ed signal is reset to its original disposition)-3.108 F
-.658(\(the v)144 237.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 249.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 261.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 273.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
+.659(\(the v)144 488.4 R .659(alue it had upon entrance to the shell\).)
+-.25 F(If)5.658 E F1(ar)3.488 E(g)-.37 E F0 .658
+(is the null string the signal speci\214ed by each)3.378 F F1(sigspec)
+144.34 500.4 Q F0 .58(is ignored by the shell and by the commands it in)
+3.39 F -.2(vo)-.4 G -.1(ke).2 G 3.081(s. If).1 F F1(ar)3.411 E(g)-.37 E
+F0 .581(is not present and)3.301 F F2<ad70>3.081 E F0(has)3.081 E 1.215
+(been supplied, then the trap commands associated with each)144 512.4 R
+F1(sigspec)4.054 E F0 1.214(are displayed.)4.024 F 1.214(If no ar)6.214
+F(gu-)-.18 E .86(ments are supplied or if only)144 524.4 R F2<ad70>3.36
+E F0 .86(is gi)3.36 F -.15(ve)-.25 G(n,).15 E F2(trap)3.36 E F0 .86
 (prints the list of commands associated with each)3.36 F 2.83
-(signal. The)144 285.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 297.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 309.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 321.6 Q(g)-.37 E F0 1.63(is e)
-4.35 F -.15(xe)-.15 G 1.63(cuted on e).15 F 1.63(xit from the shell.)
--.15 F 1.63(If a)6.63 F F2(sigspec)4.47 E F0(is)4.44 E F3(DEB)4.13 E(UG)
--.09 E/F4 9/Times-Roman@0 SF(,)A F0 1.629(the command)3.88 F F2(ar)4.459
-E(g)-.37 E F0 1.629(is e)4.349 F -.15(xe)-.15 G(cuted).15 E 1.206
-(before e)144 333.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 345.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 357.6 Q -.15(ve)-.15 G 2.665(\). Refer).15 F .166
-(to the description of the)2.665 F F1(extdeb)2.666 E(ug)-.2 E F0 .166
-(option to the)2.666 F F1(shopt)2.666 E F0 -.2(bu)2.666 G .166
-(iltin for details of its ef).2 F(fect)-.25 E .509(on the)144 369.6 R F1
-(DEB)3.009 E(UG)-.1 E F0 3.009(trap. If)3.009 F(a)3.009 E F2(sigspec)
-3.348 E F0(is)3.318 E F3(ERR)3.008 E F4(,)A F0 .508(the command)2.758 F
-F2(ar)3.338 E(g)-.37 E F0 .508(is e)3.228 F -.15(xe)-.15 G .508
-(cuted whene).15 F -.15(ve)-.25 G 3.008(ras).15 G .508(imple com-)-3.008
-F 2.506(mand has a non\255zero e)144 381.6 R 2.506
+(signal. The)144 536.4 R F2<ad6c>2.83 E F0 .33(option causes the shell \
+to print a list of signal names and their corresponding num-)2.83 F 4.31
+(bers. Each)144 548.4 R F1(sigspec)4.65 E F0 1.811
+(is either a signal name de\214ned in <)4.62 F F1(signal.h)A F0 1.811
+(>, or a signal number)B 6.811(.S)-.55 G(ignal)-6.811 E .745
+(names are case insensiti)144 560.4 R 1.045 -.15(ve a)-.25 H .745
+(nd the SIG pre\214x is optional.).15 F .745(If a)5.745 F F1(sigspec)
+3.585 E F0(is)3.555 E F3(EXIT)3.245 E F0 .745(\(0\) the command)2.995 F
+F1(ar)144.33 572.4 Q(g)-.37 E F0 1.629(is e)4.349 F -.15(xe)-.15 G 1.629
+(cuted on e).15 F 1.63(xit from the shell.)-.15 F 1.63(If a)6.63 F F1
+(sigspec)4.47 E F0(is)4.44 E F3(DEB)4.13 E(UG)-.09 E F4(,)A F0 1.63
+(the command)3.88 F F1(ar)4.46 E(g)-.37 E F0 1.63(is e)4.35 F -.15(xe)
+-.15 G(cuted).15 E 1.207(before e)144 584.4 R -.15(ve)-.25 G(ry).15 E F1
+1.207(simple command)3.707 F F0(,)A F1(for)3.707 E F0(command,)3.706 E
+F1(case)3.706 E F0(command,)3.706 E F1(select)3.706 E F0 1.206
+(command, e)3.706 F -.15(ve)-.25 G 1.206(ry arithmetic).15 F F1(for)144
+596.4 Q F0 .412(command, and before the \214rst command e)2.912 F -.15
+(xe)-.15 G .412(cutes in a shell function \(see).15 F F3 .413
+(SHELL GRAMMAR)2.912 F F0(abo)144 608.4 Q -.15(ve)-.15 G 2.666
+(\). Refer).15 F .166(to the description of the)2.666 F F2(extdeb)2.666
+E(ug)-.2 E F0 .166(option to the)2.666 F F2(shopt)2.666 E F0 -.2(bu)
+2.666 G .166(iltin for details of its ef).2 F(fect)-.25 E .508(on the)
+144 620.4 R F2(DEB)3.008 E(UG)-.1 E F0 3.008(trap. If)3.008 F(a)3.008 E
+F1(sigspec)3.348 E F0(is)3.318 E F3(ERR)3.008 E F4(,)A F0 .508
+(the command)2.758 F F1(ar)3.338 E(g)-.37 E F0 .509(is e)3.228 F -.15
+(xe)-.15 G .509(cuted whene).15 F -.15(ve)-.25 G 3.009(ras).15 G .509
+(imple com-)-3.009 F 2.506(mand has a non\255zero e)144 632.4 R 2.506
 (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
-393.6 S .105(cuted if the f).15 F .105
+644.4 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 405.6 S(yw)-.05 E .549(ord, part of the test in an)-.1 F F2(if)
+(wing a)-.25 F F2(while)2.605 E F0(or)2.605 E F2(until)2.605 E F0 -.1
+(ke)144 656.4 S(yw)-.05 E .549(ord, part of the test in an)-.1 F F1(if)
 3.059 E F0 .549(statement, part of a command e)5.009 F -.15(xe)-.15 G
-.549(cuted in a).15 F F1(&&)3.049 E F0(or)3.049 E/F5 10/Symbol SF<efef>
-3.049 E F0 .549(list, or if)3.049 F .578(the command')144 417.6 R 3.078
-(sr)-.55 G .578(eturn v)-3.078 F .578(alue is being in)-.25 F -.15(ve)
--.4 G .578(rted via).15 F F1(!)3.078 E F0 5.577(.T)C .577
-(hese are the same conditions obe)-5.577 F .577(yed by the)-.15 F F1
-(err)144 429.6 Q(exit)-.18 E F0 3.03(option. If)3.03 F(a)3.03 E F2
-(sigspec)3.37 E F0(is)3.341 E F3(RETURN)3.031 E F4(,)A F0 .531
-(the command)2.781 F F2(ar)3.361 E(g)-.37 E F0 .531(is e)3.251 F -.15
-(xe)-.15 G .531(cuted each time a shell function).15 F .317
-(or a script e)144 441.6 R -.15(xe)-.15 G .317(cuted with the).15 F F1
-(.)2.817 E F0(or)2.817 E F1(sour)2.817 E(ce)-.18 E F0 -.2(bu)2.817 G
+.549(cuted in a).15 F F2(&&)3.049 E F0(or)3.049 E/F5 10/Symbol SF<efef>
+3.049 E F0 .549(list, or if)3.049 F .577(the command')144 668.4 R 3.077
+(sr)-.55 G .577(eturn v)-3.077 F .577(alue is being in)-.25 F -.15(ve)
+-.4 G .577(rted via).15 F F2(!)3.077 E F0 5.578(.T)C .578
+(hese are the same conditions obe)-5.578 F .578(yed by the)-.15 F F2
+(err)144 680.4 Q(exit)-.18 E F0 3.031(option. If)3.031 F(a)3.031 E F1
+(sigspec)3.371 E F0(is)3.341 E F3(RETURN)3.031 E F4(,)A F0 .531
+(the command)2.781 F F1(ar)3.361 E(g)-.37 E F0 .531(is e)3.251 F -.15
+(xe)-.15 G .53(cuted each time a shell function).15 F .316
+(or a script e)144 692.4 R -.15(xe)-.15 G .317(cuted with the).15 F F2
+(.)2.817 E F0(or)2.817 E F2(sour)2.817 E(ce)-.18 E F0 -.2(bu)2.817 G
 .317(iltins \214nishes e).2 F -.15(xe)-.15 G 2.817(cuting. Signals).15 F
-.316(ignored upon entry to)2.817 F .787
-(the shell cannot be trapped or reset.)144 453.6 R -.35(Tr)5.787 G .787
+.317(ignored upon entry to)2.817 F .787
+(the shell cannot be trapped or reset.)144 704.4 R -.35(Tr)5.787 G .787
 (apped signals that are not being ignored are reset to their).35 F 1.1
-(original v)144 465.6 R 1.1
+(original v)144 716.4 R 1.1
 (alues in a child process when it is created.)-.25 F 1.1
-(The return status is f)6.1 F 1.1(alse if an)-.1 F(y)-.15 E F2(sigspec)
-3.94 E F0(is)3.91 E(in)144 477.6 Q -.25(va)-.4 G(lid; otherwise).25 E F1
-(trap)2.5 E F0(returns true.)2.5 E F1(type)108 494.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 506.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 518.4 Q F0 .843(option is used,)3.343 F F1(type)3.343 E F0
+(The return status is f)6.1 F 1.1(alse if an)-.1 F(y)-.15 E F1(sigspec)
+3.94 E F0(is)3.91 E(in)144 728.4 Q -.25(va)-.4 G(lid; otherwise).25 E F2
+(trap)2.5 E F0(returns true.)2.5 E(GNU Bash-3.2)72 768 Q(2008 April 5)
+148.455 E(62)198.445 E 0 Cg EP
+%%Page: 63 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(type)108 84 Q F0([)2.5 E F1(\255aftpP)A F0
+(])A/F2 10/Times-Italic@0 SF(name)2.5 E F0([)2.5 E F2(name)A F0(...])2.5
+E -.4(Wi)144 96 S .174(th no options, indicate ho).4 F 2.674(we)-.25 G
+(ach)-2.674 E F2(name)3.034 E F0 -.1(wo)2.854 G .173
+(uld be interpreted if used as a command name.).1 F .173(If the)5.173 F
+F1<ad74>144 108 Q F0 .842(option is used,)3.342 F F1(type)3.342 E F0
 .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 530.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 542.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 554.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 120 Q F0 .087
+(is an alias, shell reserv)2.767 F .087(ed w)-.15 F .087
+(ord, function, b)-.1 F .086(uiltin, or disk \214le, respecti)-.2 F -.15
+(ve)-.25 G(ly).15 E 5.086(.I)-.65 G 2.586(ft)-5.086 G(he)-2.586 E F2
+(name)2.946 E F0 .086(is not)2.766 F .118
+(found, then nothing is printed, and an e)144 132 R .118
+(xit status of f)-.15 F .118(alse is returned.)-.1 F .119(If the)5.119 F
+F1<ad70>2.619 E F0 .119(option is used,)2.619 F F1(type)2.619 E F0 .855
+(either returns the name of the disk \214le that w)144 144 R .855
 (ould be e)-.1 F -.15(xe)-.15 G .855(cuted if).15 F F2(name)3.715 E F0
-.855(were speci\214ed as a com-)3.535 F .641(mand name, or nothing if)
-144 566.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 578.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 590.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 602.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 614.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 626.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 638.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
+156 R/F3 10/Courier@0 SF .64(type -t name)3.14 F F0 -.1(wo)3.14 G .641
+(uld not return).1 F F2(\214le)3.141 E F0 5.641(.T).18 G(he)-5.641 E F1
+<ad50>3.141 E F0 .641(option forces a)3.141 F/F4 9/Times-Bold@0 SF -.666
+(PA)3.141 G(TH)-.189 E F0 .113(search for each)144 168 R F2(name)2.613 E
+F0 2.613(,e)C -.15(ve)-2.863 G 2.613(ni).15 G(f)-2.613 E F3 .113
+(type -t name)2.613 F F0 -.1(wo)2.613 G .113(uld not return).1 F F2
+(\214le)2.613 E F0 5.113(.I).18 G 2.613(fa)-5.113 G .112
+(command is hashed,)-.001 F F1<ad70>2.612 E F0(and)144 180 Q F1<ad50>
+2.944 E F0 .444(print the hashed v)2.944 F .444
+(alue, not necessarily the \214le that appears \214rst in)-.25 F F4
+-.666(PA)2.945 G(TH)-.189 E/F5 9/Times-Roman@0 SF(.)A F0 .445(If the)
+4.945 F F1<ad61>2.945 E F0(option)2.945 E .265(is used,)144 192 R F1
+(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 204 R F1<ad70>2.926 E F0 .426
+(option is not also used.)2.926 F .427
+(The table of hashed commands is not)5.426 F .549(consulted when using)
+144 216 R F1<ad61>3.049 E F0 5.549(.T)C(he)-5.549 E F1<ad66>3.049 E F0
+.548(option suppresses shell function lookup, as with the)3.049 F F1
+(command)3.048 E F0 -.2(bu)144 228 S(iltin.).2 E F1(type)5 E F0
 (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
-655.2 Q F0([)2.5 E F1(\255SHacde\214lmnpqrstuvx)A F0([)2.5 E F2(limit)A
-F0(]])A(Pro)144 667.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
+244.8 Q F0([)2.5 E F1(\255HST)A(abcde\214lmnpqrstuvx)-.92 E F0([)2.5 E
+F2(limit)A F0(]])A(Pro)144 256.8 Q .243(vides control o)-.15 F -.15(ve)
+-.15 G 2.743(rt).15 G .243(he resources a)-2.743 F -.25(va)-.2 G .244
 (ilable to the shell and to processes started by it, on systems).25 F
-.943(that allo)144 679.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
+.944(that allo)144 268.8 R 3.444(ws)-.25 G .944(uch control.)-3.444 F
+(The)5.944 E F1<ad48>3.444 E F0(and)3.444 E F1<ad53>3.444 E F0 .943
 (options specify that the hard or soft limit is set for the)3.444 F(gi)
-144 691.2 Q -.15(ve)-.25 G 2.709(nr).15 G 2.709(esource. A)-2.709 F .208
+144 280.8 Q -.15(ve)-.25 G 2.708(nr).15 G 2.708(esource. A)-2.708 F .208
 (hard limit cannot be increased by a non-root user once it is set; a so\
-ft limit may)2.709 F .425(be increased up to the v)144 703.2 R .425
-(alue of the hard limit.)-.25 F .426(If neither)5.425 F F1<ad48>2.926 E
-F0(nor)2.926 E F1<ad53>2.926 E F0 .426
-(is speci\214ed, both the soft and)2.926 F .139(hard limits are set.)144
-715.2 R .139(The v)5.139 F .139(alue of)-.25 F F2(limit)2.729 E F0 .139
+ft limit may)2.708 F .426(be increased up to the v)144 292.8 R .426
+(alue of the hard limit.)-.25 F .425(If neither)5.426 F F1<ad48>2.925 E
+F0(nor)2.925 E F1<ad53>2.925 E F0 .425
+(is speci\214ed, both the soft and)2.925 F .139(hard limits are set.)144
+304.8 R .139(The v)5.139 F .139(alue of)-.25 F F2(limit)2.729 E F0 .139
 (can be a number in the unit speci\214ed for the resource or one)3.319 F
-.741(of the special v)144 727.2 R(alues)-.25 E F1(hard)3.241 E F0(,)A F1
+.742(of the special v)144 316.8 R(alues)-.25 E F1(hard)3.242 E F0(,)A F1
 (soft)3.241 E F0 3.241(,o)C(r)-3.241 E F1(unlimited)3.241 E F0 3.241(,w)
-C .741(hich stand for the current hard limit, the current)-3.241 F
-(GNU Bash-3.2)72 768 Q(2008 February 22)138.46 E(62)188.45 E 0 Cg EP
-%%Page: 63 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 .78(soft limit, and no limit, respecti)144 84 R -.15(ve)-.25 G
-(ly).15 E 5.78(.I)-.65 G(f)-5.78 E/F1 10/Times-Italic@0 SF(limit)3.37 E
-F0 .78(is omitted, the current v)3.96 F .78
-(alue of the soft limit of the)-.25 F .498
-(resource is printed, unless the)144 96 R/F2 10/Times-Bold@0 SF<ad48>
-2.999 E F0 .499(option is gi)2.999 F -.15(ve)-.25 G 2.999(n. When).15 F
-.499(more than one resource is speci\214ed, the)2.999 F
-(limit name and unit are printed before the v)144 108 Q 2.5(alue. Other)
--.25 F(options are interpreted as follo)2.5 E(ws:)-.25 E F2<ad61>144 120
-Q F0(All current limits are reported)25.3 E F2<ad63>144 132 Q F0
-(The maximum size of core \214les created)25.86 E F2<ad64>144 144 Q F0
-(The maximum size of a process')24.74 E 2.5(sd)-.55 G(ata se)-2.5 E
-(gment)-.15 E F2<ad65>144 156 Q F0
-(The maximum scheduling priority \("nice"\))25.86 E F2<ad66>144 168 Q F0
-(The maximum size of \214les written by the shell and its children)26.97
-E F2<ad69>144 180 Q F0(The maximum number of pending signals)27.52 E F2
-<ad6c>144 192 Q F0(The maximum size that may be lock)27.52 E
-(ed into memory)-.1 E F2<ad6d>144 204 Q F0
-(The maximum resident set size)21.97 E F2<ad6e>144 216 Q F0 .791(The ma\
-ximum number of open \214le descriptors \(most systems do not allo)24.74
-F 3.29(wt)-.25 G .79(his v)-3.29 F .79(alue to)-.25 F(be set\))180 228 Q
-F2<ad70>144 240 Q F0
-(The pipe size in 512-byte blocks \(this may not be set\))24.74 E F2
-<ad71>144 252 Q F0(The maximum number of bytes in POSIX message queues)
-24.74 E F2<ad72>144 264 Q F0(The maximum real-time scheduling priority)
-25.86 E F2<ad73>144 276 Q F0(The maximum stack size)26.41 E F2<ad74>144
-288 Q F0(The maximum amount of cpu time in seconds)26.97 E F2<ad75>144
-300 Q F0(The maximum number of processes a)24.74 E -.25(va)-.2 G
-(ilable to a single user).25 E F2<ad76>144 312 Q F0
+C .741(hich stand for the current hard limit, the current)-3.241 F .78
+(soft limit, and no limit, respecti)144 328.8 R -.15(ve)-.25 G(ly).15 E
+5.78(.I)-.65 G(f)-5.78 E F2(limit)3.37 E F0 .78
+(is omitted, the current v)3.96 F .78(alue of the soft limit of the)-.25
+F .499(resource is printed, unless the)144 340.8 R F1<ad48>2.999 E F0
+.499(option is gi)2.999 F -.15(ve)-.25 G 2.999(n. When).15 F .498
+(more than one resource is speci\214ed, the)2.999 F
+(limit name and unit are printed before the v)144 352.8 Q 2.5
+(alue. Other)-.25 F(options are interpreted as follo)2.5 E(ws:)-.25 E F1
+<ad61>144 364.8 Q F0(All current limits are reported)25.3 E F1<ad62>144
+376.8 Q F0(The maximum sock)24.74 E(et b)-.1 E(uf)-.2 E(fer size)-.25 E
+F1<ad63>144 388.8 Q F0(The maximum size of core \214les created)25.86 E
+F1<ad64>144 400.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<ad65>144 412.8 Q F0
+(The maximum scheduling priority \("nice"\))25.86 E F1<ad66>144 424.8 Q
+F0(The maximum size of \214les written by the shell and its children)
+26.97 E F1<ad69>144 436.8 Q F0(The maximum number of pending signals)
+27.52 E F1<ad6c>144 448.8 Q F0(The maximum size that may be lock)27.52 E
+(ed into memory)-.1 E F1<ad6d>144 460.8 Q F0
+(The maximum resident set size)21.97 E F1<ad6e>144 472.8 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 484.8 Q F1<ad70>144 496.8 Q F0
+(The pipe size in 512-byte blocks \(this may not be set\))24.74 E F1
+<ad71>144 508.8 Q F0
+(The maximum number of bytes in POSIX message queues)24.74 E F1<ad72>144
+520.8 Q F0(The maximum real-time scheduling priority)25.86 E F1<ad73>144
+532.8 Q F0(The maximum stack size)26.41 E F1<ad74>144 544.8 Q F0
+(The maximum amount of cpu time in seconds)26.97 E F1<ad75>144 556.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 568.8 Q F0
 (The maximum amount of virtual memory a)25.3 E -.25(va)-.2 G
-(ilable to the shell).25 E F2<ad78>144 324 Q F0
-(The maximum number of \214le locks)25.3 E(If)144 340.8 Q F1(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 F2<ad61>
+(ilable to the shell).25 E F1<ad78>144 580.8 Q F0
+(The maximum number of \214le locks)25.3 E F1<ad54>144 592.8 Q F0
+(The maximum number of threads)23.63 E(If)144 609.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
-.176(option is gi)144 352.8 R -.15(ve)-.25 G .176(n, then).15 F F2<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 F2
-<ad74>2.675 E F0 2.675(,w)C .175(hich is in)-2.675 F(seconds,)144 364.8
-Q F2<ad70>2.697 E F0 2.697(,w)C .197
-(hich is in units of 512-byte blocks, and)-2.697 F F2<ad6e>2.698 E F0
-(and)2.698 E F2<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 376.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
-388.8 S .5 -.25(ew l)-2.5 H(imit.).25 E F2(umask)108 405.6 Q F0([)2.5 E
-F2<ad70>A F0 2.5(][)C F2<ad53>-2.5 E F0 2.5(][)C F1(mode)-2.5 E F0(])A
-.2(The user \214le-creation mask is set to)144 417.6 R F1(mode)2.7 E F0
-5.2(.I).18 G(f)-5.2 E F1(mode)3.08 E F0(be)2.88 E .2
+.175(option is gi)144 621.6 R -.15(ve)-.25 G .175(n, then).15 F F1<ad66>
+2.675 E F0 .175(is assumed.)2.675 F -1.11(Va)5.175 G .175
+(lues are in 1024-byte increments, e)1.11 F .176(xcept for)-.15 F F1
+<ad74>2.676 E F0 2.676(,w)C .176(hich is in)-2.676 F(seconds,)144 633.6
+Q F1<ad70>2.516 E F0 2.516(,w)C .016
+(hich is in units of 512-byte blocks, and)-2.516 F F1<ad54>2.516 E F0(,)
+A F1<ad62>2.515 E F0(,)A F1<ad6e>2.515 E F0 2.515(,a)C(nd)-2.515 E F1
+<ad75>2.515 E F0 2.515(,w)C .015(hich are unscaled v)-2.515 F(al-)-.25 E
+3.787(ues. The)144 645.6 R 1.287(return status is 0 unless an in)3.787 F
+-.25(va)-.4 G 1.287(lid option or ar).25 F 1.287
+(gument is supplied, or an error occurs)-.18 F(while setting a ne)144
+657.6 Q 2.5(wl)-.25 G(imit.)-2.5 E F1(umask)108 674.4 Q F0([)2.5 E F1
+<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 686.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 429.6 R F1 -.15(ch)2.566 G(mod).15 E F0(\(1\).).77 E(If)144
-441.6 Q F1(mode)3.262 E F0 .382(is omitted, the current v)3.062 F .382
-(alue of the mask is printed.)-.25 F(The)5.382 E F2<ad53>2.882 E F0 .382
+pted by)144 698.4 R F2 -.15(ch)2.566 G(mod).15 E F0(\(1\).).77 E(If)144
+710.4 Q F2(mode)3.263 E F0 .382(is omitted, the current v)3.063 F .382
+(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 453.6 R .547
+(printed in symbolic form; the def)144 722.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 F2<ad70>3.047 E F0 .547(option is supplied, and)3.047 F F1
-(mode)144.38 465.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 477.6 Q
+(he)-3.047 E F1<ad70>3.047 E F0 .547(option is supplied, and)3.047 F
+(GNU Bash-3.2)72 768 Q(2008 April 5)148.455 E(63)198.445 E 0 Cg EP
+%%Page: 64 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/F1 10/Times-Italic@0 SF(mode)144.38 84 Q F0 .552
+(is omitted, the output is in a form that may be reused as input.)3.232
+F .551(The return status is 0 if the)5.551 F(mode w)144 96 Q
 (as successfully changed or if no)-.1 E F1(mode)2.5 E F0(ar)2.5 E
-(gument w)-.18 E(as supplied, and f)-.1 E(alse otherwise.)-.1 E F2
-(unalias)108 494.4 Q F0<5bad>2.5 E F2(a)A F0 2.5(][)C F1(name)-2.5 E F0
-(...])2.5 E(Remo)144 506.4 Q 1.955 -.15(ve e)-.15 H(ach).15 E F1(name)
-4.155 E F0 1.655(from the list of de\214ned aliases.)4.155 F(If)6.655 E
-F2<ad61>4.155 E F0 1.655(is supplied, all alias de\214nitions are)4.155
-F(remo)144 518.4 Q -.15(ve)-.15 G 2.5(d. The).15 F(return v)2.5 E
+(gument w)-.18 E(as supplied, and f)-.1 E(alse otherwise.)-.1 E/F2 10
+/Times-Bold@0 SF(unalias)108 112.8 Q F0<5bad>2.5 E F2(a)A F0 2.5(][)C F1
+(name)-2.5 E F0(...])2.5 E(Remo)144 124.8 Q 1.955 -.15(ve e)-.15 H(ach)
+.15 E F1(name)4.155 E F0 1.655(from the list of de\214ned aliases.)4.155
+F(If)6.655 E F2<ad61>4.155 E F0 1.655
+(is supplied, all alias de\214nitions are)4.155 F(remo)144 136.8 Q -.15
+(ve)-.15 G 2.5(d. The).15 F(return v)2.5 E
 (alue is true unless a supplied)-.25 E F1(name)2.86 E F0
-(is not a de\214ned alias.)2.68 E F2(unset)108 535.2 Q F0<5bad>2.5 E F2
-(fv)A F0 2.5(][)C F1(name)-2.5 E F0(...])2.5 E -.15(Fo)144 547.2 S 3.106
-(re).15 G(ach)-3.106 E F1(name)3.106 E F0 3.106(,r).18 G(emo)-3.106 E
-.906 -.15(ve t)-.15 H .606(he corresponding v).15 F .607
-(ariable or function.)-.25 F .607(If no options are supplied, or the)
-5.607 F F2<ad76>144 559.2 Q F0 .305(option is gi)2.805 F -.15(ve)-.25 G
-.305(n, each).15 F F1(name)3.165 E F0 .305(refers to a shell v)2.985 F
-2.805(ariable. Read-only)-.25 F -.25(va)2.805 G .304
-(riables may not be unset.).25 F(If)5.304 E F2<ad66>144 571.2 Q F0 .459
-(is speci\214ed, each)2.959 F F1(name)3.319 E F0 .459
-(refers to a shell function, and the function de\214nition is remo)3.139
-F -.15(ve)-.15 G 2.96(d. Each).15 F .903(unset v)144 583.2 R .903
+(is not a de\214ned alias.)2.68 E F2(unset)108 153.6 Q F0<5bad>2.5 E F2
+(fv)A F0 2.5(][)C F1(name)-2.5 E F0(...])2.5 E -.15(Fo)144 165.6 S 3.107
+(re).15 G(ach)-3.107 E F1(name)3.107 E F0 3.107(,r).18 G(emo)-3.107 E
+.907 -.15(ve t)-.15 H .607(he corresponding v).15 F .607
+(ariable or function.)-.25 F .606(If no options are supplied, or the)
+5.607 F F2<ad76>144 177.6 Q F0 .304(option is gi)2.804 F -.15(ve)-.25 G
+.304(n, each).15 F F1(name)3.164 E F0 .305(refers to a shell v)2.985 F
+2.805(ariable. Read-only)-.25 F -.25(va)2.805 G .305
+(riables may not be unset.).25 F(If)5.305 E F2<ad66>144 189.6 Q F0 .46
+(is speci\214ed, each)2.96 F F1(name)3.32 E F0 .459
+(refers to a shell function, and the function de\214nition is remo)3.14
+F -.15(ve)-.15 G 2.959(d. Each).15 F .902(unset v)144 201.6 R .902
 (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 595.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 213.6 Q 4.285(yo)-.15 G(f)-4.285 E/F3 9/Times-Bold@0
+SF(RANDOM)4.285 E/F4 9/Times-Roman@0 SF(,)A F3(SECONDS)4.035 E F4(,)A F3
 (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
-607.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
+225.6 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 619.2 Q F1(name)2.86 E F0
-(is readonly)2.68 E(.)-.65 E F2(wait)108 636 Q F0([)2.5 E F1 2.5(n.)C
-(..)-2.5 E F0(])A -.8(Wa)144 648 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 237.6 Q F1(name)2.86 E F0
+(is readonly)2.68 E(.)-.65 E F2(wait)108 254.4 Q F0([)2.5 E F1 2.5(n.)C
+(..)-2.5 E F0(])A -.8(Wa)144 266.4 S .288
 (it for each speci\214ed process and return its termination status.).8 F
-(Each)5.288 E F1(n)3.148 E F0 .288(may be a process ID or a)3.028 F .722
-(job speci\214cation; if a job spec is gi)144 660 R -.15(ve)-.25 G .722
-(n, all processes in that job').15 F 3.222(sp)-.55 G .722(ipeline are w)
--3.222 F .722(aited for)-.1 F 5.722(.I)-.55 G(f)-5.722 E F1(n)3.582 E F0
-(is)3.462 E 1.265(not gi)144 672 R -.15(ve)-.25 G 1.265
-(n, all currently acti).15 F 1.565 -.15(ve c)-.25 H 1.265
-(hild processes are w).15 F 1.265(aited for)-.1 F 3.765(,a)-.4 G 1.266
-(nd the return status is zero.)-3.765 F(If)6.266 E F1(n)4.126 E F0 .457
-(speci\214es a non-e)144 684 R .457
+(Each)5.288 E F1(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 278.4 R -.15(ve)-.25 G
+.722(n, all processes in that job').15 F 3.222(sp)-.55 G .722
+(ipeline are w)-3.222 F .722(aited for)-.1 F 5.722(.I)-.55 G(f)-5.722 E
+F1(n)3.583 E F0(is)3.463 E 1.266(not gi)144 290.4 R -.15(ve)-.25 G 1.266
+(n, all currently acti).15 F 1.566 -.15(ve c)-.25 H 1.265
+(hild processes are w).15 F 1.265(aited for)-.1 F 3.765(,a)-.4 G 1.265
+(nd the return status is zero.)-3.765 F(If)6.265 E F1(n)4.125 E F0 .456
+(speci\214es a non-e)144 302.4 R .457
 (xistent process or job, the return status is 127.)-.15 F .457
-(Otherwise, the return status is the)5.457 F -.15(ex)144 696 S
+(Otherwise, the return status is the)5.457 F -.15(ex)144 314.4 S
 (it status of the last process or job w).15 E(aited for)-.1 E(.)-.55 E
-(GNU Bash-3.2)72 768 Q(2008 February 22)138.46 E(63)188.45 E 0 Cg EP
-%%Page: 64 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/F1 10.95/Times-Bold@0 SF(RESTRICTED SHELL)72 84 Q F0(If)108 96 Q
-/F2 10/Times-Bold@0 SF(bash)4.396 E F0 1.896(is started with the name)
-4.396 F F2(rbash)4.397 E F0 4.397(,o)C 4.397(rt)-4.397 G(he)-4.397 E F2
-<ad72>4.397 E F0 1.897(option is supplied at in)4.397 F -.2(vo)-.4 G
-1.897(cation, the shell becomes).2 F 3.446(restricted. A)108 108 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 120 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
-136.8 S(hanging directories with)-32.5 E F2(cd)2.5 E F0 32.5<8373>108
-153.6 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 170.4 S
+/F5 10.95/Times-Bold@0 SF(RESTRICTED SHELL)72 331.2 Q F0(If)108 343.2 Q
+F2(bash)4.397 E F0 1.897(is started with the name)4.397 F F2(rbash)4.397
+E F0 4.397(,o)C 4.397(rt)-4.397 G(he)-4.397 E F2<ad72>4.397 E F0 1.896
+(option is supplied at in)4.397 F -.2(vo)-.4 G 1.896
+(cation, the shell becomes).2 F 3.445(restricted. A)108 355.2 R .945
+(restricted shell is used to set up an en)3.445 F .946
+(vironment more controlled than the standard shell.)-.4 F(It)5.946 E
+(beha)108 367.2 Q -.15(ve)-.2 G 2.5(si).15 G(dentically to)-2.5 E F2
+(bash)2.5 E F0(with the e)2.5 E(xception that the follo)-.15 E
+(wing are disallo)-.25 E(wed or not performed:)-.25 E 32.5<8363>108 384
+S(hanging directories with)-32.5 E F2(cd)2.5 E F0 32.5<8373>108 400.8 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 417.6 S
 (pecifying command names containing)-32.5 E F2(/)2.5 E F0 32.5<8373>108
-187.2 S(pecifying a \214le name containing a)-32.5 E F2(/)2.5 E F0
+434.4 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 204 S .351
+(iltin command).2 E 32.5<8353>108 451.2 S .351
 (pecifying a \214lename containing a slash as an ar)-32.5 F .351
 (gument to the)-.18 F F2<ad70>2.851 E F0 .351(option to the)2.851 F F2
-(hash)2.852 E F0 -.2(bu)2.852 G .352(iltin com-).2 F(mand)144 216 Q 32.5
-<8369>108 232.8 S(mporting function de\214nitions from the shell en)
--32.5 E(vironment at startup)-.4 E 32.5<8370>108 249.6 S(arsing the v)
+(hash)2.851 E F0 -.2(bu)2.851 G .351(iltin com-).2 F(mand)144 463.2 Q
+32.5<8369>108 480 S(mporting function de\214nitions from the shell en)
+-32.5 E(vironment at startup)-.4 E 32.5<8370>108 496.8 S(arsing the v)
 -32.5 E(alue of)-.25 E F2(SHELLOPTS)2.5 E F0(from the shell en)2.5 E
-(vironment at startup)-.4 E 32.5<8372>108 266.4 S(edirecting output usi\
+(vironment at startup)-.4 E 32.5<8372>108 513.6 S(edirecting output usi\
 ng the >, >|, <>, >&, &>, and >> redirection operators)-32.5 E 32.5
-<8375>108 283.2 S(sing the)-32.5 E F2(exec)2.5 E F0 -.2(bu)2.5 G
+<8375>108 530.4 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 300 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 316.8 S
+108 547.2 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 564 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 333.6 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 350.4
+108 580.8 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 597.6
 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 367.2 Q 2.5(ys)-.15 G
+(These restrictions are enforced after an)108 614.4 Q 2.5(ys)-.15 G
 (tartup \214les are read.)-2.5 E 1.566
-(When a command that is found to be a shell script is e)108 384 R -.15
-(xe)-.15 G 1.566(cuted \(see).15 F/F3 9/Times-Bold@0 SF 1.566
-(COMMAND EXECUTION)4.066 F F0(abo)3.816 E -.15(ve)-.15 G(\),).15 E F2
-(rbash)108 396 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 F1(SEE ALSO)72 412.8 Q/F4 10/Times-Italic@0 SF
-(Bash Refer)108 424.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 436.8 Q
+(When a command that is found to be a shell script is e)108 631.2 R -.15
+(xe)-.15 G 1.567(cuted \(see).15 F F3 1.567(COMMAND EXECUTION)4.067 F F0
+(abo)3.817 E -.15(ve)-.15 G(\),).15 E F2(rbash)108 643.2 Q F0(turns of)
+2.5 E 2.5(fa)-.25 G .3 -.15(ny r)-2.5 H(estrictions in the shell spa).15
+E(wned to e)-.15 E -.15(xe)-.15 G(cute the script.).15 E F5(SEE ALSO)72
+660 Q F1(Bash Refer)108 672 Q(ence Manual)-.37 E F0 2.5(,B)C(rian F)-2.5
+E(ox and Chet Rame)-.15 E(y)-.15 E F1(The Gnu Readline Libr)108 684 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 448.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 -.8(Po)108 460.8 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 472.8 Q F0(\(1\),)A F4(ksh)2.5 E
-F0(\(1\),)A F4(csh)2.5 E F0(\(1\))A F4(emacs)108 484.8 Q F0(\(1\),)A F4
-(vi)2.5 E F0(\(1\))A F4 -.37(re)108 496.8 S(adline).37 E F0(\(3\))A F1
-(FILES)72 513.6 Q F4(/bin/bash)109.666 525.6 Q F0(The)144 537.6 Q F2
-(bash)2.5 E F0 -.15(exe)2.5 G(cutable).15 E F4(/etc/pr)109.666 549.6 Q
-(o\214le)-.45 E F0(The systemwide initialization \214le, e)144 561.6 Q
--.15(xe)-.15 G(cuted for login shells).15 E F4(~/.bash_pr)109.666 573.6
-Q(o\214le)-.45 E F0(The personal initialization \214le, e)144 585.6 Q
--.15(xe)-.15 G(cuted for login shells).15 E F4(~/.bashr)109.666 597.6 Q
-(c)-.37 E F0(The indi)144 609.6 Q(vidual per)-.25 E(-interacti)-.2 E
--.15(ve)-.25 G(-shell startup \214le).15 E F4(~/.bash_lo)109.666 621.6 Q
-(gout)-.1 E F0(The indi)144 633.6 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 645.6
-Q(c)-.37 E F0(Indi)144 657.6 Q(vidual)-.25 E F4 -.37(re)2.5 G(adline).37
-E F0(initialization \214le)2.5 E F1 -.548(AU)72 674.4 S(THORS).548 E F0
-(Brian F)108 686.4 Q(ox, Free Softw)-.15 E(are F)-.1 E(oundation)-.15 E
-(bfox@gnu.or)108 698.4 Q(g)-.18 E(Chet Rame)108 715.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 727.2 Q(GNU Bash-3.2)72 768 Q
-(2008 February 22)138.46 E(64)188.45 E 0 Cg EP
+F1(The Gnu History Libr)108 696 Q(ary)-.15 E F0 2.5(,B)C(rian F)-2.5 E
+(ox and Chet Rame)-.15 E(y)-.15 E(GNU Bash-3.2)72 768 Q(2008 April 5)
+148.455 E(64)198.445 E 0 Cg EP
 %%Page: 65 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/F1 10.95/Times-Bold@0 SF -.11(BU)72 84 S 2.738(GR).11 G(EPOR)
--2.738 E(TS)-.438 E F0 .567(If you \214nd a b)108 96 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 .568(ug, and)-.2 F 5.626
-(that it appears in the latest v)108 108 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.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/F3 10/Times-Italic@0 SF(ftp://ftp.gnu.or)108 120 Q
-(g/pub/bash/)-.37 E F0(.)A .41(Once you ha)108 136.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 F3(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 148.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 160.8 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 177.6 Q(ug reports should include:)-.2 E(The v)
-108 194.4 Q(ersion number of)-.15 E F2(bash)2.5 E F0(The hardw)108 206.4
-Q(are and operating system)-.1 E(The compiler used to compile)108 218.4
-Q 2.5(Ad)108 230.4 S(escription of the b)-2.5 E(ug beha)-.2 E(viour)-.2
-E 2.5(As)108 242.4 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 259.2 Q(ug)-.2 E F0
+-.35 E/F1 10/Times-Italic@0 SF -.8(Po)108 84 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 F1(sh)108 96 Q F0(\(1\),)A F1(ksh)2.5 E F0
+(\(1\),)A F1(csh)2.5 E F0(\(1\))A F1(emacs)108 108 Q F0(\(1\),)A F1(vi)
+2.5 E F0(\(1\))A F1 -.37(re)108 120 S(adline).37 E F0(\(3\))A/F2 10.95
+/Times-Bold@0 SF(FILES)72 136.8 Q F1(/bin/bash)109.666 148.8 Q F0(The)
+144 160.8 Q/F3 10/Times-Bold@0 SF(bash)2.5 E F0 -.15(exe)2.5 G(cutable)
+.15 E F1(/etc/pr)109.666 172.8 Q(o\214le)-.45 E F0
+(The systemwide initialization \214le, e)144 184.8 Q -.15(xe)-.15 G
+(cuted for login shells).15 E F1(~/.bash_pr)109.666 196.8 Q(o\214le)-.45
+E F0(The personal initialization \214le, e)144 208.8 Q -.15(xe)-.15 G
+(cuted for login shells).15 E F1(~/.bashr)109.666 220.8 Q(c)-.37 E F0
+(The indi)144 232.8 Q(vidual per)-.25 E(-interacti)-.2 E -.15(ve)-.25 G
+(-shell startup \214le).15 E F1(~/.bash_lo)109.666 244.8 Q(gout)-.1 E F0
+(The indi)144 256.8 Q(vidual login shell cleanup \214le, e)-.25 E -.15
+(xe)-.15 G(cuted when a login shell e).15 E(xits)-.15 E F1(~/.inputr)
+109.666 268.8 Q(c)-.37 E F0(Indi)144 280.8 Q(vidual)-.25 E F1 -.37(re)
+2.5 G(adline).37 E F0(initialization \214le)2.5 E F2 -.548(AU)72 297.6 S
+(THORS).548 E F0(Brian F)108 309.6 Q(ox, Free Softw)-.15 E(are F)-.1 E
+(oundation)-.15 E(bfox@gnu.or)108 321.6 Q(g)-.18 E(Chet Rame)108 338.4 Q
+1.3 -.65(y, C)-.15 H(ase W).65 E(estern Reserv)-.8 E 2.5(eU)-.15 G(ni)
+-2.5 E -.15(ve)-.25 G(rsity).15 E(chet@po.cwru.edu)108 350.4 Q F2 -.11
+(BU)72 367.2 S 2.738(GR).11 G(EPOR)-2.738 E(TS)-.438 E F0 .568
+(If you \214nd a b)108 379.2 R .568(ug in)-.2 F F3(bash,)3.068 E F0 .568
+(you should report it.)3.068 F .568(But \214rst, you should mak)5.568 F
+3.068(es)-.1 G .568(ure that it really is a b)-3.068 F .567(ug, and)-.2
+F 5.625(that it appears in the latest v)108 391.2 R 5.625(ersion of)-.15
+F F3(bash)8.125 E F0 10.625(.T)C 5.625(he latest v)-10.625 F 5.626
+(ersion is al)-.15 F -.1(wa)-.1 G 5.626(ys a).1 F -.25(va)-.2 G 5.626
+(ilable from).25 F F1(ftp://ftp.gnu.or)108 403.2 Q(g/pub/bash/)-.37 E F0
+(.)A .411(Once you ha)108 420 R .711 -.15(ve d)-.2 H .411
+(etermined that a b).15 F .411(ug actually e)-.2 F .411(xists, use the)
+-.15 F F1(bashb)3.18 E(ug)-.2 E F0 .41(command to submit a b)3.13 F .41
+(ug report.)-.2 F(If)5.41 E .594(you ha)108 432 R .894 -.15(ve a \214)
+-.2 H .595(x, you are encouraged to mail that as well!).15 F .595
+(Suggestions and `philosophical' b)5.595 F .595(ug reports may)-.2 F
+(be mailed to)108 444 Q F1 -.2(bu)2.5 G(g-bash@gnu.or).2 E(g)-.37 E F0
+(or posted to the Usenet ne)2.5 E(wsgroup)-.25 E F3(gnu.bash.b)2.5 E(ug)
+-.2 E F0(.)A(ALL b)108 460.8 Q(ug reports should include:)-.2 E(The v)
+108 477.6 Q(ersion number of)-.15 E F3(bash)2.5 E F0(The hardw)108 489.6
+Q(are and operating system)-.1 E(The compiler used to compile)108 501.6
+Q 2.5(Ad)108 513.6 S(escription of the b)-2.5 E(ug beha)-.2 E(viour)-.2
+E 2.5(As)108 525.6 S(hort script or `recipe' which e)-2.5 E -.15(xe)-.15
+G(rcises the b).15 E(ug)-.2 E F1(bashb)108.27 542.4 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
-276 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 292.8 S
-(GS).11 E F0(It')108 304.8 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 321.6 R 1.868
-(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.369 E F0 4.369(,m)C 1.869
-(ostly because of the)-4.369 F/F4 9/Times-Bold@0 SF(POSIX)108 333.6 Q F0
-(speci\214cation.)2.25 E(Aliases are confusing in some uses.)108 350.4 Q
-(Shell b)108 367.2 Q
+559.2 Q(ug reports concerning this manual page should be directed to)-.2
+E F1 -.15(ch)2.5 G(et@po.cwru.edu).15 E F0(.).25 E F2 -.11(BU)72 576 S
+(GS).11 E F0(It')108 588 Q 2.5(st)-.55 G(oo big and too slo)-2.5 E -.65
+(w.)-.25 G 1.869(There are some subtle dif)108 604.8 R 1.869
+(ferences between)-.25 F F3(bash)4.369 E F0 1.869(and traditional v)
+4.369 F 1.869(ersions of)-.15 F F3(sh)4.368 E F0 4.368(,m)C 1.868
+(ostly because of the)-4.368 F/F4 9/Times-Bold@0 SF(POSIX)108 616.8 Q F0
+(speci\214cation.)2.25 E(Aliases are confusing in some uses.)108 633.6 Q
+(Shell b)108 650.4 Q
 (uiltin commands and functions are not stoppable/restartable.)-.2 E
 1.315(Compound commands and command sequences of the form `a ; b ; c' a\
-re not handled gracefully when)108 384 R .389
-(process suspension is attempted.)108 396 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 408 R .192(It suf)5.193 F .192(\214ces to place the sequence of com\
-mands between parentheses to force it into a)-.25 F
-(subshell, which may be stopped as a unit.)108 420 Q .955
-(Commands inside of)108 436.8 R F2($\()3.455 E F0(...)A F2(\))A F0 .956
+re not handled gracefully when)108 667.2 R .39
+(process suspension is attempted.)108 679.2 R .389
+(When a process is stopped, the shell immediately e)5.39 F -.15(xe)-.15
+G .389(cutes the ne).15 F .389(xt com-)-.15 F .192
+(mand in the sequence.)108 691.2 R .192(It suf)5.192 F .192(\214ces to \
+place the sequence of commands between parentheses to force it into a)
+-.25 F(subshell, which may be stopped as a unit.)108 703.2 Q .956
+(Commands inside of)108 720 R F3($\()3.456 E F0(...)A F3(\))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(GNU Bash-3.2)72 768 Q(2008 April 5)
+148.455 E(65)198.445 E 0 Cg EP
+%%Page: 66 66
+%%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 .567
 (delay error reporting until some time after the command is entered.)108
-448.8 R -.15(Fo)5.567 G 3.067(re).15 G .567
-(xample, unmatched parentheses,)-3.217 F -2.15 -.25(ev e)108 460.8 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 477.6 Q
-(ariables may not \(yet\) be e)-.25 E(xported.)-.15 E(GNU Bash-3.2)72
-768 Q(2008 February 22)138.46 E(65)188.45 E 0 Cg EP
+84 R -.15(Fo)5.567 G 3.067(re).15 G .568(xample, unmatched parentheses,)
+-3.217 F -2.15 -.25(ev e)108 96 T 2.5(ni).25 G(nside shell comments, wi\
+ll result in error messages while the construct is being read.)-2.5 E
+(Array v)108 112.8 Q(ariables may not \(yet\) be e)-.25 E(xported.)-.15
+E(GNU Bash-3.2)72 768 Q(2008 April 5)148.455 E(66)198.445 E 0 Cg EP
 %%Trailer
 end
 %%EOF
index 9b8e7bd3340dd7f50510443303862559873fe7ad..a13cfdecaafb5ab034c732191f58208d8d1cc3a2 100644 (file)
 @xrdef{Readline Init File Syntax-pg}{94}
 @xrdef{Readline Init File Syntax-snt}{Section@tie 8.3.1}
 @xrdef{Conditional Init Constructs-title}{Conditional Init Constructs}
-@xrdef{Conditional Init Constructs-pg}{99}
+@xrdef{Conditional Init Constructs-pg}{100}
 @xrdef{Conditional Init Constructs-snt}{Section@tie 8.3.2}
 @xrdef{Sample Init File-title}{Sample Init File}
 @xrdef{Sample Init File-pg}{100}
index 04eb047ce0f3e0de701d07835846b8a59136f698..ea58233c7296863b2b7531b5ee3c0989c83c70e8 100644 (file)
@@ -29,7 +29,7 @@
 \entry{enable}{45}{\code {enable}}
 \entry{help}{45}{\code {help}}
 \entry{let}{45}{\code {let}}
-\entry{local}{45}{\code {local}}
+\entry{local}{46}{\code {local}}
 \entry{logout}{46}{\code {logout}}
 \entry{printf}{46}{\code {printf}}
 \entry{read}{46}{\code {read}}
@@ -52,5 +52,6 @@
 \entry{suspend}{89}{\code {suspend}}
 \entry{compgen}{113}{\code {compgen}}
 \entry{complete}{113}{\code {complete}}
+\entry{compopt}{116}{\code {compopt}}
 \entry{fc}{118}{\code {fc}}
 \entry{history}{118}{\code {history}}
index 96f2b7ff3291534e68a5b4f9140a8d4adade5ef8..e5b91ebf47fad9b614375f344a3f0cdc982b0c9d 100644 (file)
@@ -17,6 +17,7 @@
 \entry {\code {command}}{43}
 \entry {\code {compgen}}{113}
 \entry {\code {complete}}{113}
+\entry {\code {compopt}}{116}
 \entry {\code {continue}}{36}
 \initial {D}
 \entry {\code {declare}}{43}
@@ -44,7 +45,7 @@
 \entry {\code {kill}}{89}
 \initial {L}
 \entry {\code {let}}{45}
-\entry {\code {local}}{45}
+\entry {\code {local}}{46}
 \entry {\code {logout}}{46}
 \initial {P}
 \entry {\code {popd}}{80}
index 7256779c21c692535181066d5668e9588349a452..9460b7bbe8b614b0c89a21fa55f9649bb876ad2d 100644 (file)
Binary files a/doc/bashref.dvi and b/doc/bashref.dvi differ
index 6733175d590559e2fcafffdf09723fbcff6e311e..282c2945e97fb384cf7f6aa56044a11c388edb14 100644 (file)
@@ -1,6 +1,6 @@
 <HTML>
 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<!-- Created on March, 4  2008 by texi2html 1.64 -->
+<!-- Created on April, 8  2008 by texi2html 1.64 -->
 <!-- 
 Written by: Lionel Cons <Lionel.Cons@cern.ch> (original author)
             Karl Berry  <karl@freefriends.org>
@@ -33,10 +33,10 @@ Send bugs and suggestions to <texi2html@mathematik.uni-kl.de>
 <H1>Bash Reference Manual</H1></P><P>
 
 This text is a brief description of the features that are present in
-the Bash shell (version 3.2, 22 February 2008).
+the Bash shell (version 3.2, 5 April 2008).
 </P><P>
 
-This is Edition 3.2, last updated 22 February 2008,
+This is Edition 3.2, last updated 5 April 2008,
 of <CITE>The GNU Bash Reference Manual</CITE>,
 for <CODE>Bash</CODE>, Version 3.2.
 </P><P>
@@ -968,8 +968,12 @@ waits for each command to terminate in turn.  The return status is the
 exit status of the last command executed.
 </P><P>
 
-The control operators <SAMP>`&#38;&#38;'</SAMP> and <SAMP>`||'</SAMP>
-denote AND lists and OR lists, respectively.
+AND and OR lists are sequences of one or more pipelines
+separated by the control operators <SAMP>`&#38;&#38;'</SAMP> and <SAMP>`||'</SAMP>,
+respectively.  AND and OR lists are executed with left
+associativity.
+</P><P>
+
 An AND list has the form
 <TABLE><tr><td>&nbsp;</td><td class=example><pre><VAR>command1</VAR> &#38;&#38; <VAR>command2</VAR>
 </pre></td></tr></table></P><P>
@@ -4300,7 +4304,18 @@ are given, then display the values of variables instead.
 
 The <SAMP>`-p'</SAMP> option will display the attributes and values of each
 <VAR>name</VAR>.
-When <SAMP>`-p'</SAMP> is used, additional options are ignored.
+When <SAMP>`-p'</SAMP> is used with <VAR>name</VAR> arguments, additional options
+are ignored.
+</P><P>
+
+When <SAMP>`-p'</SAMP> is supplied without <VAR>name</VAR> arguments, <CODE>declare</CODE>
+will display the attributes and values of all variables having the
+attributes specified by the additional options.
+If no other options are supplied with <SAMP>`-p'</SAMP>, <CODE>declare</CODE> will
+display the attributes and values of all shell variables.  The <SAMP>`-f'</SAMP>
+option will restrict the display to shell functions.
+</P><P>
+
 The <SAMP>`-F'</SAMP> option inhibits the display of function definitions;
 only the function name and attributes are printed.
 If the <CODE>extdebug</CODE> shell option is enabled using <CODE>shopt</CODE>
@@ -4522,7 +4537,7 @@ non-zero on failure.
 
 <DT><CODE>read</CODE>
 <DD><A NAME="IDX102"></A>
-<TABLE><tr><td>&nbsp;</td><td class=example><pre>read [-ers] [-a <VAR>aname</VAR>] [-d <VAR>delim</VAR>] [-n <VAR>nchars</VAR>] [-p <VAR>prompt</VAR>] [-t <VAR>timeout</VAR>] [-u <VAR>fd</VAR>] [<VAR>name</VAR> <small>...</small>]
+<TABLE><tr><td>&nbsp;</td><td class=example><pre>read [-ers] [-a <VAR>aname</VAR>] [-d <VAR>delim</VAR>] [-i <VAR>text</VAR>] [-n <VAR>nchars</VAR>] [-p <VAR>prompt</VAR>] [-t <VAR>timeout</VAR>] [-u <VAR>fd</VAR>] [<VAR>name</VAR> <small>...</small>]
 </pre></td></tr></table>One line is read from the standard input, or from the file descriptor
 <VAR>fd</VAR> supplied as an argument to the <SAMP>`-u'</SAMP> option, and the first word
 is assigned to the first <VAR>name</VAR>, the second word to the second <VAR>name</VAR>,
@@ -4559,6 +4574,11 @@ rather than newline.
 <DD>Readline (see section <A HREF="bashref.html#SEC93">8. Command Line Editing</A>) is used to obtain the line.
 <P>
 
+<DT><CODE>-i <VAR>text</VAR></CODE>
+<DD>If Readline is being used to read the line, <VAR>text</VAR> is placed into
+the editing buffer before editing begins.
+<P>
+
 <DT><CODE>-n <VAR>nchars</VAR></CODE>
 <DD><CODE>read</CODE> returns after reading <VAR>nchars</VAR> characters rather than
 waiting for a complete line of input.
@@ -4655,7 +4675,7 @@ builtin command.
 
 <DT><CODE>ulimit</CODE>
 <DD><A NAME="IDX106"></A>
-<TABLE><tr><td>&nbsp;</td><td class=example><pre>ulimit [-acdefilmnpqrstuvxSH] [<VAR>limit</VAR>]
+<TABLE><tr><td>&nbsp;</td><td class=example><pre>ulimit [-abcdefilmnpqrstuvxHST] [<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:
@@ -4672,6 +4692,10 @@ option is given, it is interpreted as follows:
 <DD>All current limits are reported.
 <P>
 
+<DT><CODE>-b</CODE>
+<DD>The maximum socket buffer size.
+<P>
+
 <DT><CODE>-c</CODE>
 <DD>The maximum size of core files created.
 <P>
@@ -4736,6 +4760,10 @@ option is given, it is interpreted as follows:
 <DD>The maximum number of file locks.
 <P>
 
+<DT><CODE>-T</CODE>
+<DD>The maximum number of threads.
+<P>
+
 </DL>
 <P>
 
@@ -9191,8 +9219,14 @@ same location on each history line retrieved with <CODE>previous-history</CODE>
 or <CODE>next-history</CODE>.  The default is <SAMP>`off'</SAMP>.
 <P>
 
-<DT><CODE>horizontal-scroll-mode</CODE>
+<DT><CODE>history-size</CODE>
 <DD><A NAME="IDX305"></A>
+Set the maximum number of history entries saved in the history list.  If
+set to zero, the number of entries in the history list is not limited.
+<P>
+
+<DT><CODE>horizontal-scroll-mode</CODE>
+<DD><A NAME="IDX306"></A>
 This variable can be set to either <SAMP>`on'</SAMP> or <SAMP>`off'</SAMP>.  Setting it
 to <SAMP>`on'</SAMP> means that the text of the lines being edited will scroll
 horizontally on a single screen line when they are longer than the width
@@ -9201,8 +9235,8 @@ this variable is set to <SAMP>`off'</SAMP>.
 <P>
 
 <DT><CODE>input-meta</CODE>
-<DD><A NAME="IDX306"></A>
-<A NAME="IDX307"></A>
+<DD><A NAME="IDX307"></A>
+<A NAME="IDX308"></A>
 If set to <SAMP>`on'</SAMP>, Readline will enable eight-bit input (it
 will not clear the eighth bit in the characters it reads),
 regardless of what the terminal claims it can support.  The
@@ -9211,7 +9245,7 @@ synonym for this variable.
 <P>
 
 <DT><CODE>isearch-terminators</CODE>
-<DD><A NAME="IDX308"></A>
+<DD><A NAME="IDX309"></A>
 The string of characters that should terminate an incremental search without
 subsequently executing the character as a command (see section <A HREF="bashref.html#SEC100">8.2.5 Searching for Commands in the History</A>).
 If this variable has not been given a value, the characters <KBD>ESC</KBD> and
@@ -9219,7 +9253,7 @@ If this variable has not been given a value, the characters <KBD>ESC</KBD> and
 <P>
 
 <DT><CODE>keymap</CODE>
-<DD><A NAME="IDX309"></A>
+<DD><A NAME="IDX310"></A>
 Sets Readline's idea of the current keymap for key binding commands.
 Acceptable <CODE>keymap</CODE> names are
 <CODE>emacs</CODE>,
@@ -9242,14 +9276,14 @@ appended.  The default is <SAMP>`on'</SAMP>.
 <P>
 
 <DT><CODE>mark-modified-lines</CODE>
-<DD><A NAME="IDX310"></A>
+<DD><A NAME="IDX311"></A>
 This variable, when set to <SAMP>`on'</SAMP>, causes Readline to display an
 asterisk (<SAMP>`*'</SAMP>) at the start of history lines which have been modified.
 This variable is <SAMP>`off'</SAMP> by default.
 <P>
 
 <DT><CODE>mark-symlinked-directories</CODE>
-<DD><A NAME="IDX311"></A>
+<DD><A NAME="IDX312"></A>
 If set to <SAMP>`on'</SAMP>, completed names which are symbolic links
 to directories have a slash appended (subject to the value of
 <CODE>mark-directories</CODE>).
@@ -9257,7 +9291,7 @@ The default is <SAMP>`off'</SAMP>.
 <P>
 
 <DT><CODE>match-hidden-files</CODE>
-<DD><A NAME="IDX312"></A>
+<DD><A NAME="IDX313"></A>
 This variable, when set to <SAMP>`on'</SAMP>, causes Readline to match files whose
 names begin with a <SAMP>`.'</SAMP> (hidden files) when performing filename
 completion, unless the leading <SAMP>`.'</SAMP> is
@@ -9266,14 +9300,14 @@ This variable is <SAMP>`on'</SAMP> by default.
 <P>
 
 <DT><CODE>output-meta</CODE>
-<DD><A NAME="IDX313"></A>
+<DD><A NAME="IDX314"></A>
 If set to <SAMP>`on'</SAMP>, Readline will display characters with the
 eighth bit set directly rather than as a meta-prefixed escape
 sequence.  The default is <SAMP>`off'</SAMP>.
 <P>
 
 <DT><CODE>page-completions</CODE>
-<DD><A NAME="IDX314"></A>
+<DD><A NAME="IDX315"></A>
 If set to <SAMP>`on'</SAMP>, Readline uses an internal <CODE>more</CODE>-like pager
 to display a screenful of possible completions at a time.
 This variable is <SAMP>`on'</SAMP> by default.
@@ -9286,7 +9320,7 @@ The default is <SAMP>`off'</SAMP>.
 <P>
 
 <DT><CODE>show-all-if-ambiguous</CODE>
-<DD><A NAME="IDX315"></A>
+<DD><A NAME="IDX316"></A>
 This alters the default behavior of the completion functions.  If
 set to <SAMP>`on'</SAMP>, 
 words which have more than one possible completion cause the
@@ -9295,7 +9329,7 @@ The default value is <SAMP>`off'</SAMP>.
 <P>
 
 <DT><CODE>show-all-if-unmodified</CODE>
-<DD><A NAME="IDX316"></A>
+<DD><A NAME="IDX317"></A>
 This alters the default behavior of the completion functions in
 a fashion similar to <VAR>show-all-if-ambiguous</VAR>.
 If set to <SAMP>`on'</SAMP>, 
@@ -9307,7 +9341,7 @@ The default value is <SAMP>`off'</SAMP>.
 <P>
 
 <DT><CODE>visible-stats</CODE>
-<DD><A NAME="IDX317"></A>
+<DD><A NAME="IDX318"></A>
 If set to <SAMP>`on'</SAMP>, a character denoting a file's type
 is appended to the filename when listing possible
 completions.  The default is <SAMP>`off'</SAMP>.
@@ -9731,54 +9765,54 @@ The text between the point and mark is referred to as the <EM>region</EM>.
 <H3> 8.4.1 Commands For Moving </H3>
 <!--docid::SEC106::-->
 <DL COMPACT>
-<A NAME="IDX318"></A>
+<A NAME="IDX319"></A>
 <DT><CODE>beginning-of-line (C-a)</CODE>
-<DD><A NAME="IDX319"></A>
+<DD><A NAME="IDX320"></A>
 Move to the start of the current line.
 <P>
 
-<A NAME="IDX320"></A>
+<A NAME="IDX321"></A>
 <DT><CODE>end-of-line (C-e)</CODE>
-<DD><A NAME="IDX321"></A>
+<DD><A NAME="IDX322"></A>
 Move to the end of the line.
 <P>
 
-<A NAME="IDX322"></A>
+<A NAME="IDX323"></A>
 <DT><CODE>forward-char (C-f)</CODE>
-<DD><A NAME="IDX323"></A>
+<DD><A NAME="IDX324"></A>
 Move forward a character.
 <P>
 
-<A NAME="IDX324"></A>
+<A NAME="IDX325"></A>
 <DT><CODE>backward-char (C-b)</CODE>
-<DD><A NAME="IDX325"></A>
+<DD><A NAME="IDX326"></A>
 Move back a character.
 <P>
 
-<A NAME="IDX326"></A>
+<A NAME="IDX327"></A>
 <DT><CODE>forward-word (M-f)</CODE>
-<DD><A NAME="IDX327"></A>
+<DD><A NAME="IDX328"></A>
 Move forward to the end of the next word.  Words are composed of
 letters and digits.
 <P>
 
-<A NAME="IDX328"></A>
+<A NAME="IDX329"></A>
 <DT><CODE>backward-word (M-b)</CODE>
-<DD><A NAME="IDX329"></A>
+<DD><A NAME="IDX330"></A>
 Move back to the start of the current or previous word.  Words are
 composed of letters and digits.
 <P>
 
-<A NAME="IDX330"></A>
+<A NAME="IDX331"></A>
 <DT><CODE>clear-screen (C-l)</CODE>
-<DD><A NAME="IDX331"></A>
+<DD><A NAME="IDX332"></A>
 Clear the screen and redraw the current line,
 leaving the current line at the top of the screen.
 <P>
 
-<A NAME="IDX332"></A>
+<A NAME="IDX333"></A>
 <DT><CODE>redraw-current-line ()</CODE>
-<DD><A NAME="IDX333"></A>
+<DD><A NAME="IDX334"></A>
 Refresh the current line.  By default, this is unbound.
 <P>
 
@@ -9804,9 +9838,9 @@ Refresh the current line.  By default, this is unbound.
 <P>
 
 <DL COMPACT>
-<A NAME="IDX334"></A>
+<A NAME="IDX335"></A>
 <DT><CODE>accept-line (Newline or Return)</CODE>
-<DD><A NAME="IDX335"></A>
+<DD><A NAME="IDX336"></A>
 Accept the line regardless of where the cursor is.
 If this line is
 non-empty, add it to the history list according to the setting of
@@ -9815,81 +9849,81 @@ If this line is a modified history line, then restore the history line
 to its original state.
 <P>
 
-<A NAME="IDX336"></A>
+<A NAME="IDX337"></A>
 <DT><CODE>previous-history (C-p)</CODE>
-<DD><A NAME="IDX337"></A>
+<DD><A NAME="IDX338"></A>
 Move `back' through the history list, fetching the previous command.
 <P>
 
-<A NAME="IDX338"></A>
+<A NAME="IDX339"></A>
 <DT><CODE>next-history (C-n)</CODE>
-<DD><A NAME="IDX339"></A>
+<DD><A NAME="IDX340"></A>
 Move `forward' through the history list, fetching the next command.
 <P>
 
-<A NAME="IDX340"></A>
+<A NAME="IDX341"></A>
 <DT><CODE>beginning-of-history (M-&#60;)</CODE>
-<DD><A NAME="IDX341"></A>
+<DD><A NAME="IDX342"></A>
 Move to the first line in the history.
 <P>
 
-<A NAME="IDX342"></A>
+<A NAME="IDX343"></A>
 <DT><CODE>end-of-history (M-&#62;)</CODE>
-<DD><A NAME="IDX343"></A>
+<DD><A NAME="IDX344"></A>
 Move to the end of the input history, i.e., the line currently
 being entered.
 <P>
 
-<A NAME="IDX344"></A>
+<A NAME="IDX345"></A>
 <DT><CODE>reverse-search-history (C-r)</CODE>
-<DD><A NAME="IDX345"></A>
+<DD><A NAME="IDX346"></A>
 Search backward starting at the current line and moving `up' through
 the history as necessary.  This is an incremental search.
 <P>
 
-<A NAME="IDX346"></A>
+<A NAME="IDX347"></A>
 <DT><CODE>forward-search-history (C-s)</CODE>
-<DD><A NAME="IDX347"></A>
+<DD><A NAME="IDX348"></A>
 Search forward starting at the current line and moving `down' through
 the the history as necessary.  This is an incremental search.
 <P>
 
-<A NAME="IDX348"></A>
+<A NAME="IDX349"></A>
 <DT><CODE>non-incremental-reverse-search-history (M-p)</CODE>
-<DD><A NAME="IDX349"></A>
+<DD><A NAME="IDX350"></A>
 Search backward starting at the current line and moving `up'
 through the history as necessary using a non-incremental search
 for a string supplied by the user.
 <P>
 
-<A NAME="IDX350"></A>
+<A NAME="IDX351"></A>
 <DT><CODE>non-incremental-forward-search-history (M-n)</CODE>
-<DD><A NAME="IDX351"></A>
+<DD><A NAME="IDX352"></A>
 Search forward starting at the current line and moving `down'
 through the the history as necessary using a non-incremental search
 for a string supplied by the user.
 <P>
 
-<A NAME="IDX352"></A>
+<A NAME="IDX353"></A>
 <DT><CODE>history-search-forward ()</CODE>
-<DD><A NAME="IDX353"></A>
+<DD><A NAME="IDX354"></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.
 By default, this command is unbound.
 <P>
 
-<A NAME="IDX354"></A>
+<A NAME="IDX355"></A>
 <DT><CODE>history-search-backward ()</CODE>
-<DD><A NAME="IDX355"></A>
+<DD><A NAME="IDX356"></A>
 Search backward through the history for the string of characters
 between the start of the current line and the point.  This
 is a non-incremental search.  By default, this command is unbound.
 <P>
 
-<A NAME="IDX356"></A>
+<A NAME="IDX357"></A>
 <DT><CODE>yank-nth-arg (M-C-y)</CODE>
-<DD><A NAME="IDX357"></A>
+<DD><A NAME="IDX358"></A>
 Insert the first argument to the previous command (usually
 the second word on the previous line) at point.
 With an argument <VAR>n</VAR>,
@@ -9900,9 +9934,9 @@ Once the argument <VAR>n</VAR> is computed, the argument is extracted
 as if the <SAMP>`!<VAR>n</VAR>'</SAMP> history expansion had been specified.
 <P>
 
-<A NAME="IDX358"></A>
+<A NAME="IDX359"></A>
 <DT><CODE>yank-last-arg (M-. or M-_)</CODE>
-<DD><A NAME="IDX359"></A>
+<DD><A NAME="IDX360"></A>
 Insert last argument to the previous command (the last word of the
 previous history entry).  With an
 argument, behave exactly like <CODE>yank-nth-arg</CODE>.
@@ -9934,46 +9968,46 @@ as if the <SAMP>`!$'</SAMP> history expansion had been specified.
 <P>
 
 <DL COMPACT>
-<A NAME="IDX360"></A>
+<A NAME="IDX361"></A>
 <DT><CODE>delete-char (C-d)</CODE>
-<DD><A NAME="IDX361"></A>
+<DD><A NAME="IDX362"></A>
 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 <CODE>delete-char</CODE>, then
 return EOF.
 <P>
 
-<A NAME="IDX362"></A>
+<A NAME="IDX363"></A>
 <DT><CODE>backward-delete-char (Rubout)</CODE>
-<DD><A NAME="IDX363"></A>
+<DD><A NAME="IDX364"></A>
 Delete the character behind the cursor.  A numeric argument means
 to kill the characters instead of deleting them.
 <P>
 
-<A NAME="IDX364"></A>
+<A NAME="IDX365"></A>
 <DT><CODE>forward-backward-delete-char ()</CODE>
-<DD><A NAME="IDX365"></A>
+<DD><A NAME="IDX366"></A>
 Delete the character under the cursor, unless the cursor is at the
 end of the line, in which case the character behind the cursor is
 deleted.  By default, this is not bound to a key.
 <P>
 
-<A NAME="IDX366"></A>
+<A NAME="IDX367"></A>
 <DT><CODE>quoted-insert (C-q or C-v)</CODE>
-<DD><A NAME="IDX367"></A>
+<DD><A NAME="IDX368"></A>
 Add the next character typed to the line verbatim.  This is
 how to insert key sequences like <KBD>C-q</KBD>, for example.
 <P>
 
-<A NAME="IDX368"></A>
+<A NAME="IDX369"></A>
 <DT><CODE>self-insert (a, b, A, 1, !, <small>...</small>)</CODE>
-<DD><A NAME="IDX369"></A>
+<DD><A NAME="IDX370"></A>
 Insert yourself.
 <P>
 
-<A NAME="IDX370"></A>
+<A NAME="IDX371"></A>
 <DT><CODE>transpose-chars (C-t)</CODE>
-<DD><A NAME="IDX371"></A>
+<DD><A NAME="IDX372"></A>
 Drag the character before the cursor forward over
 the character at the cursor, moving the
 cursor forward as well.  If the insertion point
@@ -9982,39 +10016,39 @@ transposes the last two characters of the line.
 Negative arguments have no effect.
 <P>
 
-<A NAME="IDX372"></A>
+<A NAME="IDX373"></A>
 <DT><CODE>transpose-words (M-t)</CODE>
-<DD><A NAME="IDX373"></A>
+<DD><A NAME="IDX374"></A>
 Drag the word before point past the word after point,
 moving point past that word as well.
 If the insertion point is at the end of the line, this transposes
 the last two words on the line.
 <P>
 
-<A NAME="IDX374"></A>
+<A NAME="IDX375"></A>
 <DT><CODE>upcase-word (M-u)</CODE>
-<DD><A NAME="IDX375"></A>
+<DD><A NAME="IDX376"></A>
 Uppercase the current (or following) word.  With a negative argument,
 uppercase the previous word, but do not move the cursor.
 <P>
 
-<A NAME="IDX376"></A>
+<A NAME="IDX377"></A>
 <DT><CODE>downcase-word (M-l)</CODE>
-<DD><A NAME="IDX377"></A>
+<DD><A NAME="IDX378"></A>
 Lowercase the current (or following) word.  With a negative argument,
 lowercase the previous word, but do not move the cursor.
 <P>
 
-<A NAME="IDX378"></A>
+<A NAME="IDX379"></A>
 <DT><CODE>capitalize-word (M-c)</CODE>
-<DD><A NAME="IDX379"></A>
+<DD><A NAME="IDX380"></A>
 Capitalize the current (or following) word.  With a negative argument,
 capitalize the previous word, but do not move the cursor.
 <P>
 
-<A NAME="IDX380"></A>
+<A NAME="IDX381"></A>
 <DT><CODE>overwrite-mode ()</CODE>
-<DD><A NAME="IDX381"></A>
+<DD><A NAME="IDX382"></A>
 Toggle overwrite mode.  With an explicit positive numeric argument,
 switches to overwrite mode.  With an explicit non-positive numeric
 argument, switches to insert mode.  This command affects only
@@ -10054,106 +10088,106 @@ By default, this command is unbound.
 
 <DL COMPACT>
 
-<A NAME="IDX382"></A>
+<A NAME="IDX383"></A>
 <DT><CODE>kill-line (C-k)</CODE>
-<DD><A NAME="IDX383"></A>
+<DD><A NAME="IDX384"></A>
 Kill the text from point to the end of the line.
 <P>
 
-<A NAME="IDX384"></A>
+<A NAME="IDX385"></A>
 <DT><CODE>backward-kill-line (C-x Rubout)</CODE>
-<DD><A NAME="IDX385"></A>
+<DD><A NAME="IDX386"></A>
 Kill backward to the beginning of the line.
 <P>
 
-<A NAME="IDX386"></A>
+<A NAME="IDX387"></A>
 <DT><CODE>unix-line-discard (C-u)</CODE>
-<DD><A NAME="IDX387"></A>
+<DD><A NAME="IDX388"></A>
 Kill backward from the cursor to the beginning of the current line.
 <P>
 
-<A NAME="IDX388"></A>
+<A NAME="IDX389"></A>
 <DT><CODE>kill-whole-line ()</CODE>
-<DD><A NAME="IDX389"></A>
+<DD><A NAME="IDX390"></A>
 Kill all characters on the current line, no matter where point is.
 By default, this is unbound.
 <P>
 
-<A NAME="IDX390"></A>
+<A NAME="IDX391"></A>
 <DT><CODE>kill-word (M-d)</CODE>
-<DD><A NAME="IDX391"></A>
+<DD><A NAME="IDX392"></A>
 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 <CODE>forward-word</CODE>.
 <P>
 
-<A NAME="IDX392"></A>
+<A NAME="IDX393"></A>
 <DT><CODE>backward-kill-word (M-<KBD>DEL</KBD>)</CODE>
-<DD><A NAME="IDX393"></A>
+<DD><A NAME="IDX394"></A>
 Kill the word behind point.
 Word boundaries are the same as <CODE>backward-word</CODE>.
 <P>
 
-<A NAME="IDX394"></A>
+<A NAME="IDX395"></A>
 <DT><CODE>unix-word-rubout (C-w)</CODE>
-<DD><A NAME="IDX395"></A>
+<DD><A NAME="IDX396"></A>
 Kill the word behind point, using white space as a word boundary.
 The killed text is saved on the kill-ring.
 <P>
 
-<A NAME="IDX396"></A>
+<A NAME="IDX397"></A>
 <DT><CODE>unix-filename-rubout ()</CODE>
-<DD><A NAME="IDX397"></A>
+<DD><A NAME="IDX398"></A>
 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.
 <P>
 
-<A NAME="IDX398"></A>
+<A NAME="IDX399"></A>
 <DT><CODE>delete-horizontal-space ()</CODE>
-<DD><A NAME="IDX399"></A>
+<DD><A NAME="IDX400"></A>
 Delete all spaces and tabs around point.  By default, this is unbound.
 <P>
 
-<A NAME="IDX400"></A>
+<A NAME="IDX401"></A>
 <DT><CODE>kill-region ()</CODE>
-<DD><A NAME="IDX401"></A>
+<DD><A NAME="IDX402"></A>
 Kill the text in the current region.
 By default, this command is unbound.
 <P>
 
-<A NAME="IDX402"></A>
+<A NAME="IDX403"></A>
 <DT><CODE>copy-region-as-kill ()</CODE>
-<DD><A NAME="IDX403"></A>
+<DD><A NAME="IDX404"></A>
 Copy the text in the region to the kill buffer, so it can be yanked
 right away.  By default, this command is unbound.
 <P>
 
-<A NAME="IDX404"></A>
+<A NAME="IDX405"></A>
 <DT><CODE>copy-backward-word ()</CODE>
-<DD><A NAME="IDX405"></A>
+<DD><A NAME="IDX406"></A>
 Copy the word before point to the kill buffer.
 The word boundaries are the same as <CODE>backward-word</CODE>.
 By default, this command is unbound.
 <P>
 
-<A NAME="IDX406"></A>
+<A NAME="IDX407"></A>
 <DT><CODE>copy-forward-word ()</CODE>
-<DD><A NAME="IDX407"></A>
+<DD><A NAME="IDX408"></A>
 Copy the word following point to the kill buffer.
 The word boundaries are the same as <CODE>forward-word</CODE>.
 By default, this command is unbound.
 <P>
 
-<A NAME="IDX408"></A>
+<A NAME="IDX409"></A>
 <DT><CODE>yank (C-y)</CODE>
-<DD><A NAME="IDX409"></A>
+<DD><A NAME="IDX410"></A>
 Yank the top of the kill ring into the buffer at point.
 <P>
 
-<A NAME="IDX410"></A>
+<A NAME="IDX411"></A>
 <DT><CODE>yank-pop (M-y)</CODE>
-<DD><A NAME="IDX411"></A>
+<DD><A NAME="IDX412"></A>
 Rotate the kill-ring, and yank the new top.  You can only do this if
 the prior command is <CODE>yank</CODE> or <CODE>yank-pop</CODE>.
 </DL>
@@ -10177,16 +10211,16 @@ the prior command is <CODE>yank</CODE> or <CODE>yank-pop</CODE>.
 <!--docid::SEC110::-->
 <DL COMPACT>
 
-<A NAME="IDX412"></A>
+<A NAME="IDX413"></A>
 <DT><CODE>digit-argument (<KBD>M-0</KBD>, <KBD>M-1</KBD>, <small>...</small> <KBD>M--</KBD>)</CODE>
-<DD><A NAME="IDX413"></A>
+<DD><A NAME="IDX414"></A>
 Add this digit to the argument already accumulating, or start a new
 argument.  <KBD>M--</KBD> starts a negative argument.
 <P>
 
-<A NAME="IDX414"></A>
+<A NAME="IDX415"></A>
 <DT><CODE>universal-argument ()</CODE>
-<DD><A NAME="IDX415"></A>
+<DD><A NAME="IDX416"></A>
 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.
@@ -10221,9 +10255,9 @@ By default, this is not bound to a key.
 <P>
 
 <DL COMPACT>
-<A NAME="IDX416"></A>
+<A NAME="IDX417"></A>
 <DT><CODE>complete (<KBD>TAB</KBD>)</CODE>
-<DD><A NAME="IDX417"></A>
+<DD><A NAME="IDX418"></A>
 Attempt to perform completion on the text before point.
 The actual completion performed is application-specific.
 Bash attempts completion treating the text as a variable (if the
@@ -10233,22 +10267,22 @@ command (including aliases and functions) in turn.  If none
 of these produces a match, filename completion is attempted.
 <P>
 
-<A NAME="IDX418"></A>
+<A NAME="IDX419"></A>
 <DT><CODE>possible-completions (M-?)</CODE>
-<DD><A NAME="IDX419"></A>
+<DD><A NAME="IDX420"></A>
 List the possible completions of the text before point.
 <P>
 
-<A NAME="IDX420"></A>
+<A NAME="IDX421"></A>
 <DT><CODE>insert-completions (M-*)</CODE>
-<DD><A NAME="IDX421"></A>
+<DD><A NAME="IDX422"></A>
 Insert all completions of the text before point that would have
 been generated by <CODE>possible-completions</CODE>.
 <P>
 
-<A NAME="IDX422"></A>
+<A NAME="IDX423"></A>
 <DT><CODE>menu-complete ()</CODE>
-<DD><A NAME="IDX423"></A>
+<DD><A NAME="IDX424"></A>
 Similar to <CODE>complete</CODE>, but replaces the word to be completed
 with a single match from the list of possible completions.
 Repeated execution of <CODE>menu-complete</CODE> steps through the list
@@ -10263,9 +10297,9 @@ This command is intended to be bound to <KBD>TAB</KBD>, but is unbound
 by default.
 <P>
 
-<A NAME="IDX424"></A>
+<A NAME="IDX425"></A>
 <DT><CODE>delete-char-or-list ()</CODE>
-<DD><A NAME="IDX425"></A>
+<DD><A NAME="IDX426"></A>
 Deletes the character under the cursor if not at the beginning or
 end of the line (like <CODE>delete-char</CODE>).
 If at the end of the line, behaves identically to
@@ -10273,64 +10307,64 @@ If at the end of the line, behaves identically to
 This command is unbound by default.
 <P>
 
-<A NAME="IDX426"></A>
+<A NAME="IDX427"></A>
 <DT><CODE>complete-filename (M-/)</CODE>
-<DD><A NAME="IDX427"></A>
+<DD><A NAME="IDX428"></A>
 Attempt filename completion on the text before point.
 <P>
 
-<A NAME="IDX428"></A>
+<A NAME="IDX429"></A>
 <DT><CODE>possible-filename-completions (C-x /)</CODE>
-<DD><A NAME="IDX429"></A>
+<DD><A NAME="IDX430"></A>
 List the possible completions of the text before point,
 treating it as a filename.
 <P>
 
-<A NAME="IDX430"></A>
+<A NAME="IDX431"></A>
 <DT><CODE>complete-username (M-~)</CODE>
-<DD><A NAME="IDX431"></A>
+<DD><A NAME="IDX432"></A>
 Attempt completion on the text before point, treating
 it as a username.
 <P>
 
-<A NAME="IDX432"></A>
+<A NAME="IDX433"></A>
 <DT><CODE>possible-username-completions (C-x ~)</CODE>
-<DD><A NAME="IDX433"></A>
+<DD><A NAME="IDX434"></A>
 List the possible completions of the text before point,
 treating it as a username.
 <P>
 
-<A NAME="IDX434"></A>
+<A NAME="IDX435"></A>
 <DT><CODE>complete-variable (M-$)</CODE>
-<DD><A NAME="IDX435"></A>
+<DD><A NAME="IDX436"></A>
 Attempt completion on the text before point, treating
 it as a shell variable.
 <P>
 
-<A NAME="IDX436"></A>
+<A NAME="IDX437"></A>
 <DT><CODE>possible-variable-completions (C-x $)</CODE>
-<DD><A NAME="IDX437"></A>
+<DD><A NAME="IDX438"></A>
 List the possible completions of the text before point,
 treating it as a shell variable.
 <P>
 
-<A NAME="IDX438"></A>
+<A NAME="IDX439"></A>
 <DT><CODE>complete-hostname (M-@)</CODE>
-<DD><A NAME="IDX439"></A>
+<DD><A NAME="IDX440"></A>
 Attempt completion on the text before point, treating
 it as a hostname.
 <P>
 
-<A NAME="IDX440"></A>
+<A NAME="IDX441"></A>
 <DT><CODE>possible-hostname-completions (C-x @)</CODE>
-<DD><A NAME="IDX441"></A>
+<DD><A NAME="IDX442"></A>
 List the possible completions of the text before point,
 treating it as a hostname.
 <P>
 
-<A NAME="IDX442"></A>
+<A NAME="IDX443"></A>
 <DT><CODE>complete-command (M-!)</CODE>
-<DD><A NAME="IDX443"></A>
+<DD><A NAME="IDX444"></A>
 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
@@ -10338,24 +10372,24 @@ functions, shell builtins, and finally executable filenames,
 in that order.
 <P>
 
-<A NAME="IDX444"></A>
+<A NAME="IDX445"></A>
 <DT><CODE>possible-command-completions (C-x !)</CODE>
-<DD><A NAME="IDX445"></A>
+<DD><A NAME="IDX446"></A>
 List the possible completions of the text before point,
 treating it as a command name.
 <P>
 
-<A NAME="IDX446"></A>
+<A NAME="IDX447"></A>
 <DT><CODE>dynamic-complete-history (M-<KBD>TAB</KBD>)</CODE>
-<DD><A NAME="IDX447"></A>
+<DD><A NAME="IDX448"></A>
 Attempt completion on the text before point, comparing
 the text against lines from the history list for possible
 completion matches.
 <P>
 
-<A NAME="IDX448"></A>
+<A NAME="IDX449"></A>
 <DT><CODE>complete-into-braces (M-{)</CODE>
-<DD><A NAME="IDX449"></A>
+<DD><A NAME="IDX450"></A>
 Perform filename completion and insert the list of possible completions
 enclosed within braces so the list is available to the shell
 (see section <A HREF="bashref.html#SEC28">3.5.1 Brace Expansion</A>).
@@ -10382,22 +10416,22 @@ enclosed within braces so the list is available to the shell
 <!--docid::SEC112::-->
 <DL COMPACT>
 
-<A NAME="IDX450"></A>
+<A NAME="IDX451"></A>
 <DT><CODE>start-kbd-macro (C-x ()</CODE>
-<DD><A NAME="IDX451"></A>
+<DD><A NAME="IDX452"></A>
 Begin saving the characters typed into the current keyboard macro.
 <P>
 
-<A NAME="IDX452"></A>
+<A NAME="IDX453"></A>
 <DT><CODE>end-kbd-macro (C-x ))</CODE>
-<DD><A NAME="IDX453"></A>
+<DD><A NAME="IDX454"></A>
 Stop saving the characters typed into the current keyboard macro
 and save the definition.
 <P>
 
-<A NAME="IDX454"></A>
+<A NAME="IDX455"></A>
 <DT><CODE>call-last-kbd-macro (C-x e)</CODE>
-<DD><A NAME="IDX455"></A>
+<DD><A NAME="IDX456"></A>
 Re-execute the last keyboard macro defined, by making the characters
 in the macro appear as if typed at the keyboard.
 <P>
@@ -10423,87 +10457,87 @@ in the macro appear as if typed at the keyboard.
 <!--docid::SEC113::-->
 <DL COMPACT>
 
-<A NAME="IDX456"></A>
+<A NAME="IDX457"></A>
 <DT><CODE>re-read-init-file (C-x C-r)</CODE>
-<DD><A NAME="IDX457"></A>
+<DD><A NAME="IDX458"></A>
 Read in the contents of the <VAR>inputrc</VAR> file, and incorporate
 any bindings or variable assignments found there.
 <P>
 
-<A NAME="IDX458"></A>
+<A NAME="IDX459"></A>
 <DT><CODE>abort (C-g)</CODE>
-<DD><A NAME="IDX459"></A>
+<DD><A NAME="IDX460"></A>
 Abort the current editing command and
 ring the terminal's bell (subject to the setting of
 <CODE>bell-style</CODE>).
 <P>
 
-<A NAME="IDX460"></A>
+<A NAME="IDX461"></A>
 <DT><CODE>do-uppercase-version (M-a, M-b, M-<VAR>x</VAR>, <small>...</small>)</CODE>
-<DD><A NAME="IDX461"></A>
+<DD><A NAME="IDX462"></A>
 If the metafied character <VAR>x</VAR> is lowercase, run the command
 that is bound to the corresponding uppercase character.
 <P>
 
-<A NAME="IDX462"></A>
+<A NAME="IDX463"></A>
 <DT><CODE>prefix-meta (<KBD>ESC</KBD>)</CODE>
-<DD><A NAME="IDX463"></A>
+<DD><A NAME="IDX464"></A>
 Metafy the next character typed.  This is for keyboards
 without a meta key.  Typing <SAMP>`<KBD>ESC</KBD> f'</SAMP> is equivalent to typing
 <KBD>M-f</KBD>.
 <P>
 
-<A NAME="IDX464"></A>
+<A NAME="IDX465"></A>
 <DT><CODE>undo (C-_ or C-x C-u)</CODE>
-<DD><A NAME="IDX465"></A>
+<DD><A NAME="IDX466"></A>
 Incremental undo, separately remembered for each line.
 <P>
 
-<A NAME="IDX466"></A>
+<A NAME="IDX467"></A>
 <DT><CODE>revert-line (M-r)</CODE>
-<DD><A NAME="IDX467"></A>
+<DD><A NAME="IDX468"></A>
 Undo all changes made to this line.  This is like executing the <CODE>undo</CODE>
 command enough times to get back to the beginning.
 <P>
 
-<A NAME="IDX468"></A>
+<A NAME="IDX469"></A>
 <DT><CODE>tilde-expand (M-&#38;)</CODE>
-<DD><A NAME="IDX469"></A>
+<DD><A NAME="IDX470"></A>
 Perform tilde expansion on the current word.
 <P>
 
-<A NAME="IDX470"></A>
+<A NAME="IDX471"></A>
 <DT><CODE>set-mark (C-@)</CODE>
-<DD><A NAME="IDX471"></A>
+<DD><A NAME="IDX472"></A>
 Set the mark to the point.  If a
 numeric argument is supplied, the mark is set to that position.
 <P>
 
-<A NAME="IDX472"></A>
+<A NAME="IDX473"></A>
 <DT><CODE>exchange-point-and-mark (C-x C-x)</CODE>
-<DD><A NAME="IDX473"></A>
+<DD><A NAME="IDX474"></A>
 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.
 <P>
 
-<A NAME="IDX474"></A>
+<A NAME="IDX475"></A>
 <DT><CODE>character-search (C-])</CODE>
-<DD><A NAME="IDX475"></A>
+<DD><A NAME="IDX476"></A>
 A character is read and point is moved to the next occurrence of that
 character.  A negative count searches for previous occurrences.
 <P>
 
-<A NAME="IDX476"></A>
+<A NAME="IDX477"></A>
 <DT><CODE>character-search-backward (M-C-])</CODE>
-<DD><A NAME="IDX477"></A>
+<DD><A NAME="IDX478"></A>
 A character is read and point is moved to the previous occurrence
 of that character.  A negative count searches for subsequent
 occurrences.
 <P>
 
-<A NAME="IDX478"></A>
+<A NAME="IDX479"></A>
 <DT><CODE>insert-comment (M-#)</CODE>
-<DD><A NAME="IDX479"></A>
+<DD><A NAME="IDX480"></A>
 Without a numeric argument, the value of the <CODE>comment-begin</CODE>
 variable is inserted at the beginning of the current line.
 If a numeric argument is supplied, this command acts as a toggle:  if
@@ -10518,115 +10552,115 @@ If a numeric argument causes the comment character to be removed, the line
 will be executed by the shell.
 <P>
 
-<A NAME="IDX480"></A>
+<A NAME="IDX481"></A>
 <DT><CODE>dump-functions ()</CODE>
-<DD><A NAME="IDX481"></A>
+<DD><A NAME="IDX482"></A>
 Print all of the functions and their key bindings 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
 of an <VAR>inputrc</VAR> file.  This command is unbound by default.
 <P>
 
-<A NAME="IDX482"></A>
+<A NAME="IDX483"></A>
 <DT><CODE>dump-variables ()</CODE>
-<DD><A NAME="IDX483"></A>
+<DD><A NAME="IDX484"></A>
 Print all of the settable 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
 of an <VAR>inputrc</VAR> file.  This command is unbound by default.
 <P>
 
-<A NAME="IDX484"></A>
+<A NAME="IDX485"></A>
 <DT><CODE>dump-macros ()</CODE>
-<DD><A NAME="IDX485"></A>
+<DD><A NAME="IDX486"></A>
 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 <VAR>inputrc</VAR> file.  This command is unbound by default.
 <P>
 
-<A NAME="IDX486"></A>
+<A NAME="IDX487"></A>
 <DT><CODE>glob-complete-word (M-g)</CODE>
-<DD><A NAME="IDX487"></A>
+<DD><A NAME="IDX488"></A>
 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.
 <P>
 
-<A NAME="IDX488"></A>
+<A NAME="IDX489"></A>
 <DT><CODE>glob-expand-word (C-x *)</CODE>
-<DD><A NAME="IDX489"></A>
+<DD><A NAME="IDX490"></A>
 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, a <SAMP>`*'</SAMP> is appended before
 pathname expansion.
 <P>
 
-<A NAME="IDX490"></A>
+<A NAME="IDX491"></A>
 <DT><CODE>glob-list-expansions (C-x g)</CODE>
-<DD><A NAME="IDX491"></A>
+<DD><A NAME="IDX492"></A>
 The list of expansions that would have been generated by
 <CODE>glob-expand-word</CODE> is displayed, and the line is redrawn.
 If a numeric argument is supplied, a <SAMP>`*'</SAMP> is appended before
 pathname expansion.
 <P>
 
-<A NAME="IDX492"></A>
+<A NAME="IDX493"></A>
 <DT><CODE>display-shell-version (C-x C-v)</CODE>
-<DD><A NAME="IDX493"></A>
+<DD><A NAME="IDX494"></A>
 Display version information about the current instance of Bash.
 <P>
 
-<A NAME="IDX494"></A>
+<A NAME="IDX495"></A>
 <DT><CODE>shell-expand-line (M-C-e)</CODE>
-<DD><A NAME="IDX495"></A>
+<DD><A NAME="IDX496"></A>
 Expand the line as the shell does.
 This performs alias and history expansion as well as all of the shell
 word expansions (see section <A HREF="bashref.html#SEC27">3.5 Shell Expansions</A>).
 <P>
 
-<A NAME="IDX496"></A>
+<A NAME="IDX497"></A>
 <DT><CODE>history-expand-line (M-^)</CODE>
-<DD><A NAME="IDX497"></A>
+<DD><A NAME="IDX498"></A>
 Perform history expansion on the current line.
 <P>
 
-<A NAME="IDX498"></A>
+<A NAME="IDX499"></A>
 <DT><CODE>magic-space ()</CODE>
-<DD><A NAME="IDX499"></A>
+<DD><A NAME="IDX500"></A>
 Perform history expansion on the current line and insert a space
 (see section <A HREF="bashref.html#SEC120">9.3 History Expansion</A>).
 <P>
 
-<A NAME="IDX500"></A>
+<A NAME="IDX501"></A>
 <DT><CODE>alias-expand-line ()</CODE>
-<DD><A NAME="IDX501"></A>
+<DD><A NAME="IDX502"></A>
 Perform alias expansion on the current line (see section <A HREF="bashref.html#SEC82">6.6 Aliases</A>).
 <P>
 
-<A NAME="IDX502"></A>
+<A NAME="IDX503"></A>
 <DT><CODE>history-and-alias-expand-line ()</CODE>
-<DD><A NAME="IDX503"></A>
+<DD><A NAME="IDX504"></A>
 Perform history and alias expansion on the current line.
 <P>
 
-<A NAME="IDX504"></A>
+<A NAME="IDX505"></A>
 <DT><CODE>insert-last-argument (M-. or M-_)</CODE>
-<DD><A NAME="IDX505"></A>
+<DD><A NAME="IDX506"></A>
 A synonym for <CODE>yank-last-arg</CODE>.
 <P>
 
-<A NAME="IDX506"></A>
+<A NAME="IDX507"></A>
 <DT><CODE>operate-and-get-next (C-o)</CODE>
-<DD><A NAME="IDX507"></A>
+<DD><A NAME="IDX508"></A>
 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.
 <P>
 
-<A NAME="IDX508"></A>
+<A NAME="IDX509"></A>
 <DT><CODE>edit-and-execute-command (C-xC-e)</CODE>
-<DD><A NAME="IDX509"></A>
+<DD><A NAME="IDX510"></A>
 Invoke an editor on the current command line, and execute the result as shell
 commands.
 Bash attempts to invoke
@@ -10763,7 +10797,7 @@ the matches.
 
 Any function specified with <SAMP>`-F'</SAMP> is invoked first.
 The function may use any of the shell facilities, including the
-<CODE>compgen</CODE> builtin described below
+<CODE>compgen</CODE> and <CODE>compopt</CODE> builtins described below
 (see section <A HREF="bashref.html#SEC116">8.7 Programmable Completion Builtins</A>), to generate the matches.
 It must put the possible completions in the <CODE>COMPREPLY</CODE> array
 variable.
@@ -10847,7 +10881,7 @@ facilities.
 
 <DL COMPACT>
 <DT><CODE>compgen</CODE>
-<DD><A NAME="IDX510"></A>
+<DD><A NAME="IDX511"></A>
 <TABLE><tr><td>&nbsp;</td><td class=example><pre><CODE>compgen [<VAR>option</VAR>] [<VAR>word</VAR>]</CODE>
 </pre></td></tr></table><P>
 
@@ -10873,7 +10907,7 @@ matches were generated.
 </P><P>
 
 <DT><CODE>complete</CODE>
-<DD><A NAME="IDX511"></A>
+<DD><A NAME="IDX512"></A>
 <TABLE><tr><td>&nbsp;</td><td class=example><pre><CODE>complete [-abcdefgjksuv] [-o <VAR>comp-option</VAR>] [-A <VAR>action</VAR>] [-G <VAR>globpat</VAR>] [-W <VAR>wordlist</VAR>]
 [-F <VAR>function</VAR>] [-C <VAR>command</VAR>] [-X <VAR>filterpat</VAR>]
 [-P <VAR>prefix</VAR>] [-S <VAR>suffix</VAR>] <VAR>name</VAR> [<VAR>name</VAR> <small>...</small>]</CODE>
@@ -11102,10 +11136,29 @@ a <VAR>name</VAR> for which no specification exists, or
 an error occurs adding a completion specification.
 </P><P>
 
+<DT><CODE>compopt</CODE>
+<DD><A NAME="IDX513"></A>
+<TABLE><tr><td>&nbsp;</td><td class=example><pre><CODE>compopt</CODE> [-o <VAR>option</VAR>] [+o <VAR>option</VAR>] [<VAR>name</VAR>]
+</pre></td></tr></table>Modify completion options for each <VAR>name</VAR> according to the
+<VAR>option</VAR>s, or for the currently-execution completion if no <VAR>name</VAR>s
+are supplied.
+If no <VAR>option</VAR>s are given, display the completion options for each
+<VAR>name</VAR> or the current completion.
+The possible values of <VAR>option</VAR> are those valid for the <CODE>complete</CODE>
+builtin described above.
+<P>
+
+The return value is true unless an invalid option is supplied, an attempt
+is made to modify the options for a <VAR>name</VAR> for which no completion
+specification exists, or an output error occurs.
+</P><P>
+
 </DL>
-<A NAME="IDX512"></A>
 <P>
 
+<A NAME="IDX514"></A>
+</P><P>
+
 <A NAME="Using History Interactively"></A>
 <HR SIZE="6">
 <A NAME="SEC117"></A>
@@ -11248,7 +11301,7 @@ history list and history file.
 <DL COMPACT>
 
 <DT><CODE>fc</CODE>
-<DD><A NAME="IDX513"></A>
+<DD><A NAME="IDX515"></A>
 <TABLE><tr><td>&nbsp;</td><td class=example><pre><CODE>fc [-e <VAR>ename</VAR>] [-lnr] [<VAR>first</VAR>] [<VAR>last</VAR>]</CODE>
 <CODE>fc -s [<VAR>pat</VAR>=<VAR>rep</VAR>] [<VAR>command</VAR>]</CODE>
 </pre></td></tr></table><P>
@@ -11282,7 +11335,7 @@ and typing <SAMP>`r'</SAMP> re-executes the last command (see section <A HREF="b
 </P><P>
 
 <DT><CODE>history</CODE>
-<DD><A NAME="IDX514"></A>
+<DD><A NAME="IDX516"></A>
 <TABLE><tr><td>&nbsp;</td><td class=example><pre>history [<VAR>n</VAR>]
 history -c
 history -d <VAR>offset</VAR>
@@ -11455,7 +11508,7 @@ writing the history file.
 
 An event designator is a reference to a command line entry in the
 history list.
-<A NAME="IDX515"></A>
+<A NAME="IDX517"></A>
 </P><P>
 
 <DL COMPACT>
@@ -12466,8 +12519,9 @@ the <CODE>bind</CODE> builtin.
 
 <LI>
 Bash provides a programmable word completion mechanism
-(see section <A HREF="bashref.html#SEC115">8.6 Programmable Completion</A>), and two builtin commands,
-<CODE>complete</CODE> and <CODE>compgen</CODE>, to manipulate it.
+(see section <A HREF="bashref.html#SEC115">8.6 Programmable Completion</A>), and builtin commands
+<CODE>complete</CODE>, <CODE>compgen</CODE>, and <CODE>compopt</CODE>, to
+manipulate it.
 <P>
 
 <LI>
@@ -13633,8 +13687,9 @@ to permit their use in free software.
 <TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX92"><CODE>caller</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC58">4.2 Bash Builtin Commands</A></TD></TR>
 <TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX71"><CODE>cd</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC57">4.1 Bourne Shell Builtins</A></TD></TR>
 <TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX93"><CODE>command</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC58">4.2 Bash Builtin Commands</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX510"><CODE>compgen</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.7 Programmable Completion Builtins</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX511"><CODE>complete</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.7 Programmable Completion Builtins</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX511"><CODE>compgen</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.7 Programmable Completion Builtins</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX512"><CODE>complete</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.7 Programmable Completion Builtins</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX513"><CODE>compopt</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.7 Programmable Completion Builtins</A></TD></TR>
 <TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX72"><CODE>continue</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC57">4.1 Bourne Shell Builtins</A></TD></TR>
 <TR><TD COLSPAN=3> <HR></TD></TR>
 <TR><TH><A NAME="bt_D"></A>D</TH><TD></TD><TD></TD></TR>
@@ -13651,7 +13706,7 @@ to permit their use in free software.
 <TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX76"><CODE>export</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC57">4.1 Bourne Shell Builtins</A></TD></TR>
 <TR><TD COLSPAN=3> <HR></TD></TR>
 <TR><TH><A NAME="bt_F"></A>F</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX513"><CODE>fc</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC119">9.2 Bash History Builtins</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX515"><CODE>fc</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC119">9.2 Bash History Builtins</A></TD></TR>
 <TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX282"><CODE>fg</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC91">7.2 Job Control Builtins</A></TD></TR>
 <TR><TD COLSPAN=3> <HR></TD></TR>
 <TR><TH><A NAME="bt_G"></A>G</TH><TD></TD><TD></TD></TR>
@@ -13660,7 +13715,7 @@ to permit their use in free software.
 <TR><TH><A NAME="bt_H"></A>H</TH><TD></TD><TD></TD></TR>
 <TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX78"><CODE>hash</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC57">4.1 Bourne Shell Builtins</A></TD></TR>
 <TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX97"><CODE>help</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC58">4.2 Bash Builtin Commands</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX514"><CODE>history</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC119">9.2 Bash History Builtins</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX516"><CODE>history</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC119">9.2 Bash History Builtins</A></TD></TR>
 <TR><TD COLSPAN=3> <HR></TD></TR>
 <TR><TH><A NAME="bt_J"></A>J</TH><TD></TD><TD></TD></TR>
 <TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX283"><CODE>jobs</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC91">7.2 Job Control Builtins</A></TD></TR>
@@ -14093,13 +14148,14 @@ to permit their use in free software.
 <TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX200"><CODE>HISTIGNORE</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC65">5.2 Bash Variables</A></TD></TR>
 <TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX201"><CODE>HISTIGNORE</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC65">5.2 Bash Variables</A></TD></TR>
 <TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX304"><CODE>history-preserve-point</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC102">8.3.1 Readline Init File Syntax</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX305"><CODE>history-size</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC102">8.3.1 Readline Init File Syntax</A></TD></TR>
 <TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX202"><CODE>HISTSIZE</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC65">5.2 Bash Variables</A></TD></TR>
 <TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX203"><CODE>HISTSIZE</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC65">5.2 Bash Variables</A></TD></TR>
 <TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX204"><CODE>HISTTIMEFORMAT</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC65">5.2 Bash Variables</A></TD></TR>
 <TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX205"><CODE>HISTTIMEFORMAT</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC65">5.2 Bash Variables</A></TD></TR>
 <TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX112"><CODE>HOME</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC64">5.1 Bourne Shell Variables</A></TD></TR>
 <TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX113"><CODE>HOME</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC64">5.1 Bourne Shell Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX305"><CODE>horizontal-scroll-mode</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC102">8.3.1 Readline Init File Syntax</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX306"><CODE>horizontal-scroll-mode</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC102">8.3.1 Readline Init File Syntax</A></TD></TR>
 <TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX206"><CODE>HOSTFILE</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC65">5.2 Bash Variables</A></TD></TR>
 <TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX207"><CODE>HOSTFILE</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC65">5.2 Bash Variables</A></TD></TR>
 <TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX208"><CODE>HOSTNAME</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC65">5.2 Bash Variables</A></TD></TR>
@@ -14112,13 +14168,13 @@ to permit their use in free software.
 <TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX115"><CODE>IFS</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC64">5.1 Bourne Shell Variables</A></TD></TR>
 <TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX212"><CODE>IGNOREEOF</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC65">5.2 Bash Variables</A></TD></TR>
 <TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX213"><CODE>IGNOREEOF</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC65">5.2 Bash Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX306"><CODE>input-meta</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC102">8.3.1 Readline Init File Syntax</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX307"><CODE>input-meta</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC102">8.3.1 Readline Init File Syntax</A></TD></TR>
 <TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX214"><CODE>INPUTRC</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC65">5.2 Bash Variables</A></TD></TR>
 <TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX215"><CODE>INPUTRC</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC65">5.2 Bash Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX308"><CODE>isearch-terminators</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC102">8.3.1 Readline Init File Syntax</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX309"><CODE>isearch-terminators</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC102">8.3.1 Readline Init File Syntax</A></TD></TR>
 <TR><TD COLSPAN=3> <HR></TD></TR>
 <TR><TH><A NAME="vr_K"></A>K</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX309"><CODE>keymap</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC102">8.3.1 Readline Init File Syntax</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX310"><CODE>keymap</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC102">8.3.1 Readline Init File Syntax</A></TD></TR>
 <TR><TD COLSPAN=3> <HR></TD></TR>
 <TR><TH><A NAME="vr_L"></A>L</TH><TD></TD><TD></TD></TR>
 <TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX216"><CODE>LANG</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC65">5.2 Bash Variables</A></TD></TR>
@@ -14148,10 +14204,10 @@ to permit their use in free software.
 <TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX235"><CODE>MAILCHECK</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC65">5.2 Bash Variables</A></TD></TR>
 <TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX118"><CODE>MAILPATH</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC64">5.1 Bourne Shell Variables</A></TD></TR>
 <TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX119"><CODE>MAILPATH</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC64">5.1 Bourne Shell Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX310"><CODE>mark-modified-lines</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC102">8.3.1 Readline Init File Syntax</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX311"><CODE>mark-symlinked-directories</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC102">8.3.1 Readline Init File Syntax</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX312"><CODE>match-hidden-files</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC102">8.3.1 Readline Init File Syntax</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX307"><CODE>meta-flag</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC102">8.3.1 Readline Init File Syntax</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX311"><CODE>mark-modified-lines</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC102">8.3.1 Readline Init File Syntax</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX312"><CODE>mark-symlinked-directories</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC102">8.3.1 Readline Init File Syntax</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX313"><CODE>match-hidden-files</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC102">8.3.1 Readline Init File Syntax</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX308"><CODE>meta-flag</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC102">8.3.1 Readline Init File Syntax</A></TD></TR>
 <TR><TD COLSPAN=3> <HR></TD></TR>
 <TR><TH><A NAME="vr_O"></A>O</TH><TD></TD><TD></TD></TR>
 <TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX236"><CODE>OLDPWD</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC65">5.2 Bash Variables</A></TD></TR>
@@ -14164,10 +14220,10 @@ to permit their use in free software.
 <TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX123"><CODE>OPTIND</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC64">5.1 Bourne Shell Variables</A></TD></TR>
 <TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX240"><CODE>OSTYPE</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC65">5.2 Bash Variables</A></TD></TR>
 <TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX241"><CODE>OSTYPE</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC65">5.2 Bash Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX313"><CODE>output-meta</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC102">8.3.1 Readline Init File Syntax</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX314"><CODE>output-meta</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC102">8.3.1 Readline Init File Syntax</A></TD></TR>
 <TR><TD COLSPAN=3> <HR></TD></TR>
 <TR><TH><A NAME="vr_P"></A>P</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX314"><CODE>page-completions</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC102">8.3.1 Readline Init File Syntax</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX315"><CODE>page-completions</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC102">8.3.1 Readline Init File Syntax</A></TD></TR>
 <TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX124"><CODE>PATH</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC64">5.1 Bourne Shell Variables</A></TD></TR>
 <TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX125"><CODE>PATH</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC64">5.1 Bourne Shell Variables</A></TD></TR>
 <TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX242"><CODE>PIPESTATUS</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC65">5.2 Bash Variables</A></TD></TR>
@@ -14204,8 +14260,8 @@ to permit their use in free software.
 <TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX265"><CODE>SHELLOPTS</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC65">5.2 Bash Variables</A></TD></TR>
 <TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX266"><CODE>SHLVL</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC65">5.2 Bash Variables</A></TD></TR>
 <TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX267"><CODE>SHLVL</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC65">5.2 Bash Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX315"><CODE>show-all-if-ambiguous</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC102">8.3.1 Readline Init File Syntax</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX316"><CODE>show-all-if-unmodified</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC102">8.3.1 Readline Init File Syntax</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX316"><CODE>show-all-if-ambiguous</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC102">8.3.1 Readline Init File Syntax</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX317"><CODE>show-all-if-unmodified</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC102">8.3.1 Readline Init File Syntax</A></TD></TR>
 <TR><TD COLSPAN=3> <HR></TD></TR>
 <TR><TH><A NAME="vr_T"></A>T</TH><TD></TD><TD></TD></TR>
 <TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX22"><CODE>TEXTDOMAIN</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC13">3.1.2.5 Locale-Specific Translation</A></TD></TR>
@@ -14222,7 +14278,7 @@ to permit their use in free software.
 <TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX275"><CODE>UID</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC65">5.2 Bash Variables</A></TD></TR>
 <TR><TD COLSPAN=3> <HR></TD></TR>
 <TR><TH><A NAME="vr_V"></A>V</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX317"><CODE>visible-stats</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC102">8.3.1 Readline Init File Syntax</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX318"><CODE>visible-stats</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC102">8.3.1 Readline Init File Syntax</A></TD></TR>
 <TR><TD COLSPAN=3> <HR></TD></TR>
 </TABLE><P></P><table><tr><th valign=top>Jump to: &nbsp; </th><td><A HREF="bashref.html#vr_!" style="text-decoration:none"><b>!</b></A>
  &nbsp; 
@@ -14344,236 +14400,236 @@ to permit their use in free software.
 <TR><TD></TD><TH ALIGN=LEFT>Index Entry</TH><TH ALIGN=LEFT> Section</TH></TR>
 <TR><TD COLSPAN=3> <HR></TD></TR>
 <TR><TH><A NAME="fn_A"></A>A</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX458"><CODE>abort (C-g)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC113">8.4.8 Some Miscellaneous Commands</A></TD></TR>
 <TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX459"><CODE>abort (C-g)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC113">8.4.8 Some Miscellaneous Commands</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX334"><CODE>accept-line (Newline or Return)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC107">8.4.2 Commands For Manipulating The History</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX460"><CODE>abort (C-g)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC113">8.4.8 Some Miscellaneous Commands</A></TD></TR>
 <TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX335"><CODE>accept-line (Newline or Return)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC107">8.4.2 Commands For Manipulating The History</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX500"><CODE>alias-expand-line ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC113">8.4.8 Some Miscellaneous Commands</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX336"><CODE>accept-line (Newline or Return)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC107">8.4.2 Commands For Manipulating The History</A></TD></TR>
 <TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX501"><CODE>alias-expand-line ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC113">8.4.8 Some Miscellaneous Commands</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX502"><CODE>alias-expand-line ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC113">8.4.8 Some Miscellaneous Commands</A></TD></TR>
 <TR><TD COLSPAN=3> <HR></TD></TR>
 <TR><TH><A NAME="fn_B"></A>B</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX324"><CODE>backward-char (C-b)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC106">8.4.1 Commands For Moving</A></TD></TR>
 <TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX325"><CODE>backward-char (C-b)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC106">8.4.1 Commands For Moving</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX362"><CODE>backward-delete-char (Rubout)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC108">8.4.3 Commands For Changing Text</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX326"><CODE>backward-char (C-b)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC106">8.4.1 Commands For Moving</A></TD></TR>
 <TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX363"><CODE>backward-delete-char (Rubout)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC108">8.4.3 Commands For Changing Text</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX384"><CODE>backward-kill-line (C-x Rubout)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC109">8.4.4 Killing And Yanking</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX364"><CODE>backward-delete-char (Rubout)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC108">8.4.3 Commands For Changing Text</A></TD></TR>
 <TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX385"><CODE>backward-kill-line (C-x Rubout)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC109">8.4.4 Killing And Yanking</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX392"><CODE>backward-kill-word (M-<KBD>DEL</KBD>)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC109">8.4.4 Killing And Yanking</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX386"><CODE>backward-kill-line (C-x Rubout)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC109">8.4.4 Killing And Yanking</A></TD></TR>
 <TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX393"><CODE>backward-kill-word (M-<KBD>DEL</KBD>)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC109">8.4.4 Killing And Yanking</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX328"><CODE>backward-word (M-b)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC106">8.4.1 Commands For Moving</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX394"><CODE>backward-kill-word (M-<KBD>DEL</KBD>)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC109">8.4.4 Killing And Yanking</A></TD></TR>
 <TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX329"><CODE>backward-word (M-b)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC106">8.4.1 Commands For Moving</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX340"><CODE>beginning-of-history (M-&#38;#60;)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC107">8.4.2 Commands For Manipulating The History</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX330"><CODE>backward-word (M-b)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC106">8.4.1 Commands For Moving</A></TD></TR>
 <TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX341"><CODE>beginning-of-history (M-&#38;#60;)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC107">8.4.2 Commands For Manipulating The History</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX318"><CODE>beginning-of-line (C-a)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC106">8.4.1 Commands For Moving</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX342"><CODE>beginning-of-history (M-&#38;#60;)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC107">8.4.2 Commands For Manipulating The History</A></TD></TR>
 <TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX319"><CODE>beginning-of-line (C-a)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC106">8.4.1 Commands For Moving</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX320"><CODE>beginning-of-line (C-a)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC106">8.4.1 Commands For Moving</A></TD></TR>
 <TR><TD COLSPAN=3> <HR></TD></TR>
 <TR><TH><A NAME="fn_C"></A>C</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX454"><CODE>call-last-kbd-macro (C-x e)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC112">8.4.7 Keyboard Macros</A></TD></TR>
 <TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX455"><CODE>call-last-kbd-macro (C-x e)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC112">8.4.7 Keyboard Macros</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX378"><CODE>capitalize-word (M-c)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC108">8.4.3 Commands For Changing Text</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX456"><CODE>call-last-kbd-macro (C-x e)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC112">8.4.7 Keyboard Macros</A></TD></TR>
 <TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX379"><CODE>capitalize-word (M-c)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC108">8.4.3 Commands For Changing Text</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX474"><CODE>character-search (C-])</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC113">8.4.8 Some Miscellaneous Commands</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX380"><CODE>capitalize-word (M-c)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC108">8.4.3 Commands For Changing Text</A></TD></TR>
 <TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX475"><CODE>character-search (C-])</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC113">8.4.8 Some Miscellaneous Commands</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX476"><CODE>character-search-backward (M-C-])</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC113">8.4.8 Some Miscellaneous Commands</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX476"><CODE>character-search (C-])</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC113">8.4.8 Some Miscellaneous Commands</A></TD></TR>
 <TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX477"><CODE>character-search-backward (M-C-])</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC113">8.4.8 Some Miscellaneous Commands</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX330"><CODE>clear-screen (C-l)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC106">8.4.1 Commands For Moving</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX478"><CODE>character-search-backward (M-C-])</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC113">8.4.8 Some Miscellaneous Commands</A></TD></TR>
 <TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX331"><CODE>clear-screen (C-l)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC106">8.4.1 Commands For Moving</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX416"><CODE>complete (<KBD>TAB</KBD>)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC111">8.4.6 Letting Readline Type For You</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX332"><CODE>clear-screen (C-l)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC106">8.4.1 Commands For Moving</A></TD></TR>
 <TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX417"><CODE>complete (<KBD>TAB</KBD>)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC111">8.4.6 Letting Readline Type For You</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX442"><CODE>complete-command (M-!)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC111">8.4.6 Letting Readline Type For You</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX418"><CODE>complete (<KBD>TAB</KBD>)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC111">8.4.6 Letting Readline Type For You</A></TD></TR>
 <TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX443"><CODE>complete-command (M-!)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC111">8.4.6 Letting Readline Type For You</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX426"><CODE>complete-filename (M-/)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC111">8.4.6 Letting Readline Type For You</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX444"><CODE>complete-command (M-!)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC111">8.4.6 Letting Readline Type For You</A></TD></TR>
 <TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX427"><CODE>complete-filename (M-/)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC111">8.4.6 Letting Readline Type For You</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX438"><CODE>complete-hostname (M-@)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC111">8.4.6 Letting Readline Type For You</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX428"><CODE>complete-filename (M-/)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC111">8.4.6 Letting Readline Type For You</A></TD></TR>
 <TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX439"><CODE>complete-hostname (M-@)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC111">8.4.6 Letting Readline Type For You</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX448"><CODE>complete-into-braces (M-{)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC111">8.4.6 Letting Readline Type For You</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX440"><CODE>complete-hostname (M-@)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC111">8.4.6 Letting Readline Type For You</A></TD></TR>
 <TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX449"><CODE>complete-into-braces (M-{)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC111">8.4.6 Letting Readline Type For You</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX430"><CODE>complete-username (M-~)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC111">8.4.6 Letting Readline Type For You</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX450"><CODE>complete-into-braces (M-{)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC111">8.4.6 Letting Readline Type For You</A></TD></TR>
 <TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX431"><CODE>complete-username (M-~)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC111">8.4.6 Letting Readline Type For You</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX434"><CODE>complete-variable (M-$)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC111">8.4.6 Letting Readline Type For You</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX432"><CODE>complete-username (M-~)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC111">8.4.6 Letting Readline Type For You</A></TD></TR>
 <TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX435"><CODE>complete-variable (M-$)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC111">8.4.6 Letting Readline Type For You</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX404"><CODE>copy-backward-word ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC109">8.4.4 Killing And Yanking</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX436"><CODE>complete-variable (M-$)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC111">8.4.6 Letting Readline Type For You</A></TD></TR>
 <TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX405"><CODE>copy-backward-word ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC109">8.4.4 Killing And Yanking</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX406"><CODE>copy-forward-word ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC109">8.4.4 Killing And Yanking</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX406"><CODE>copy-backward-word ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC109">8.4.4 Killing And Yanking</A></TD></TR>
 <TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX407"><CODE>copy-forward-word ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC109">8.4.4 Killing And Yanking</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX402"><CODE>copy-region-as-kill ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC109">8.4.4 Killing And Yanking</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX408"><CODE>copy-forward-word ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC109">8.4.4 Killing And Yanking</A></TD></TR>
 <TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX403"><CODE>copy-region-as-kill ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC109">8.4.4 Killing And Yanking</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX404"><CODE>copy-region-as-kill ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC109">8.4.4 Killing And Yanking</A></TD></TR>
 <TR><TD COLSPAN=3> <HR></TD></TR>
 <TR><TH><A NAME="fn_D"></A>D</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX360"><CODE>delete-char (C-d)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC108">8.4.3 Commands For Changing Text</A></TD></TR>
 <TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX361"><CODE>delete-char (C-d)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC108">8.4.3 Commands For Changing Text</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX424"><CODE>delete-char-or-list ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC111">8.4.6 Letting Readline Type For You</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX362"><CODE>delete-char (C-d)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC108">8.4.3 Commands For Changing Text</A></TD></TR>
 <TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX425"><CODE>delete-char-or-list ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC111">8.4.6 Letting Readline Type For You</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX398"><CODE>delete-horizontal-space ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC109">8.4.4 Killing And Yanking</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX426"><CODE>delete-char-or-list ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC111">8.4.6 Letting Readline Type For You</A></TD></TR>
 <TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX399"><CODE>delete-horizontal-space ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC109">8.4.4 Killing And Yanking</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX412"><CODE>digit-argument (<KBD>M-0</KBD>, <KBD>M-1</KBD>, &#60;small&#62;...&#60;/small&#62; <KBD>M--</KBD>)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC110">8.4.5 Specifying Numeric Arguments</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX400"><CODE>delete-horizontal-space ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC109">8.4.4 Killing And Yanking</A></TD></TR>
 <TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX413"><CODE>digit-argument (<KBD>M-0</KBD>, <KBD>M-1</KBD>, &#60;small&#62;...&#60;/small&#62; <KBD>M--</KBD>)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC110">8.4.5 Specifying Numeric Arguments</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX492"><CODE>display-shell-version (C-x C-v)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC113">8.4.8 Some Miscellaneous Commands</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX414"><CODE>digit-argument (<KBD>M-0</KBD>, <KBD>M-1</KBD>, &#60;small&#62;...&#60;/small&#62; <KBD>M--</KBD>)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC110">8.4.5 Specifying Numeric Arguments</A></TD></TR>
 <TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX493"><CODE>display-shell-version (C-x C-v)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC113">8.4.8 Some Miscellaneous Commands</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX460"><CODE>do-uppercase-version (M-a, M-b, M-<VAR>x</VAR>, &#60;small&#62;...&#60;/small&#62;)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC113">8.4.8 Some Miscellaneous Commands</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX494"><CODE>display-shell-version (C-x C-v)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC113">8.4.8 Some Miscellaneous Commands</A></TD></TR>
 <TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX461"><CODE>do-uppercase-version (M-a, M-b, M-<VAR>x</VAR>, &#60;small&#62;...&#60;/small&#62;)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC113">8.4.8 Some Miscellaneous Commands</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX376"><CODE>downcase-word (M-l)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC108">8.4.3 Commands For Changing Text</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX462"><CODE>do-uppercase-version (M-a, M-b, M-<VAR>x</VAR>, &#60;small&#62;...&#60;/small&#62;)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC113">8.4.8 Some Miscellaneous Commands</A></TD></TR>
 <TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX377"><CODE>downcase-word (M-l)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC108">8.4.3 Commands For Changing Text</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX480"><CODE>dump-functions ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC113">8.4.8 Some Miscellaneous Commands</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX378"><CODE>downcase-word (M-l)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC108">8.4.3 Commands For Changing Text</A></TD></TR>
 <TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX481"><CODE>dump-functions ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC113">8.4.8 Some Miscellaneous Commands</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX484"><CODE>dump-macros ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC113">8.4.8 Some Miscellaneous Commands</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX482"><CODE>dump-functions ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC113">8.4.8 Some Miscellaneous Commands</A></TD></TR>
 <TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX485"><CODE>dump-macros ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC113">8.4.8 Some Miscellaneous Commands</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX482"><CODE>dump-variables ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC113">8.4.8 Some Miscellaneous Commands</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX486"><CODE>dump-macros ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC113">8.4.8 Some Miscellaneous Commands</A></TD></TR>
 <TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX483"><CODE>dump-variables ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC113">8.4.8 Some Miscellaneous Commands</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX446"><CODE>dynamic-complete-history (M-<KBD>TAB</KBD>)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC111">8.4.6 Letting Readline Type For You</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX484"><CODE>dump-variables ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC113">8.4.8 Some Miscellaneous Commands</A></TD></TR>
 <TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX447"><CODE>dynamic-complete-history (M-<KBD>TAB</KBD>)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC111">8.4.6 Letting Readline Type For You</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX448"><CODE>dynamic-complete-history (M-<KBD>TAB</KBD>)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC111">8.4.6 Letting Readline Type For You</A></TD></TR>
 <TR><TD COLSPAN=3> <HR></TD></TR>
 <TR><TH><A NAME="fn_E"></A>E</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX508"><CODE>edit-and-execute-command (C-xC-e)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC113">8.4.8 Some Miscellaneous Commands</A></TD></TR>
 <TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX509"><CODE>edit-and-execute-command (C-xC-e)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC113">8.4.8 Some Miscellaneous Commands</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX452"><CODE>end-kbd-macro (C-x ))</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC112">8.4.7 Keyboard Macros</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX510"><CODE>edit-and-execute-command (C-xC-e)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC113">8.4.8 Some Miscellaneous Commands</A></TD></TR>
 <TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX453"><CODE>end-kbd-macro (C-x ))</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC112">8.4.7 Keyboard Macros</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX342"><CODE>end-of-history (M-&#38;#62;)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC107">8.4.2 Commands For Manipulating The History</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX454"><CODE>end-kbd-macro (C-x ))</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC112">8.4.7 Keyboard Macros</A></TD></TR>
 <TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX343"><CODE>end-of-history (M-&#38;#62;)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC107">8.4.2 Commands For Manipulating The History</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX320"><CODE>end-of-line (C-e)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC106">8.4.1 Commands For Moving</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX344"><CODE>end-of-history (M-&#38;#62;)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC107">8.4.2 Commands For Manipulating The History</A></TD></TR>
 <TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX321"><CODE>end-of-line (C-e)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC106">8.4.1 Commands For Moving</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX472"><CODE>exchange-point-and-mark (C-x C-x)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC113">8.4.8 Some Miscellaneous Commands</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX322"><CODE>end-of-line (C-e)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC106">8.4.1 Commands For Moving</A></TD></TR>
 <TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX473"><CODE>exchange-point-and-mark (C-x C-x)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC113">8.4.8 Some Miscellaneous Commands</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX474"><CODE>exchange-point-and-mark (C-x C-x)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC113">8.4.8 Some Miscellaneous Commands</A></TD></TR>
 <TR><TD COLSPAN=3> <HR></TD></TR>
 <TR><TH><A NAME="fn_F"></A>F</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX364"><CODE>forward-backward-delete-char ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC108">8.4.3 Commands For Changing Text</A></TD></TR>
 <TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX365"><CODE>forward-backward-delete-char ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC108">8.4.3 Commands For Changing Text</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX322"><CODE>forward-char (C-f)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC106">8.4.1 Commands For Moving</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX366"><CODE>forward-backward-delete-char ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC108">8.4.3 Commands For Changing Text</A></TD></TR>
 <TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX323"><CODE>forward-char (C-f)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC106">8.4.1 Commands For Moving</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX346"><CODE>forward-search-history (C-s)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC107">8.4.2 Commands For Manipulating The History</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX324"><CODE>forward-char (C-f)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC106">8.4.1 Commands For Moving</A></TD></TR>
 <TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX347"><CODE>forward-search-history (C-s)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC107">8.4.2 Commands For Manipulating The History</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX326"><CODE>forward-word (M-f)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC106">8.4.1 Commands For Moving</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX348"><CODE>forward-search-history (C-s)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC107">8.4.2 Commands For Manipulating The History</A></TD></TR>
 <TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX327"><CODE>forward-word (M-f)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC106">8.4.1 Commands For Moving</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX328"><CODE>forward-word (M-f)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC106">8.4.1 Commands For Moving</A></TD></TR>
 <TR><TD COLSPAN=3> <HR></TD></TR>
 <TR><TH><A NAME="fn_G"></A>G</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX486"><CODE>glob-complete-word (M-g)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC113">8.4.8 Some Miscellaneous Commands</A></TD></TR>
 <TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX487"><CODE>glob-complete-word (M-g)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC113">8.4.8 Some Miscellaneous Commands</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX488"><CODE>glob-expand-word (C-x *)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC113">8.4.8 Some Miscellaneous Commands</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX488"><CODE>glob-complete-word (M-g)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC113">8.4.8 Some Miscellaneous Commands</A></TD></TR>
 <TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX489"><CODE>glob-expand-word (C-x *)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC113">8.4.8 Some Miscellaneous Commands</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX490"><CODE>glob-list-expansions (C-x g)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC113">8.4.8 Some Miscellaneous Commands</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX490"><CODE>glob-expand-word (C-x *)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC113">8.4.8 Some Miscellaneous Commands</A></TD></TR>
 <TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX491"><CODE>glob-list-expansions (C-x g)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC113">8.4.8 Some Miscellaneous Commands</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX492"><CODE>glob-list-expansions (C-x g)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC113">8.4.8 Some Miscellaneous Commands</A></TD></TR>
 <TR><TD COLSPAN=3> <HR></TD></TR>
 <TR><TH><A NAME="fn_H"></A>H</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX502"><CODE>history-and-alias-expand-line ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC113">8.4.8 Some Miscellaneous Commands</A></TD></TR>
 <TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX503"><CODE>history-and-alias-expand-line ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC113">8.4.8 Some Miscellaneous Commands</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX496"><CODE>history-expand-line (M-^)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC113">8.4.8 Some Miscellaneous Commands</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX504"><CODE>history-and-alias-expand-line ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC113">8.4.8 Some Miscellaneous Commands</A></TD></TR>
 <TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX497"><CODE>history-expand-line (M-^)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC113">8.4.8 Some Miscellaneous Commands</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX354"><CODE>history-search-backward ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC107">8.4.2 Commands For Manipulating The History</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX498"><CODE>history-expand-line (M-^)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC113">8.4.8 Some Miscellaneous Commands</A></TD></TR>
 <TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX355"><CODE>history-search-backward ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC107">8.4.2 Commands For Manipulating The History</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX352"><CODE>history-search-forward ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC107">8.4.2 Commands For Manipulating The History</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX356"><CODE>history-search-backward ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC107">8.4.2 Commands For Manipulating The History</A></TD></TR>
 <TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX353"><CODE>history-search-forward ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC107">8.4.2 Commands For Manipulating The History</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX354"><CODE>history-search-forward ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC107">8.4.2 Commands For Manipulating The History</A></TD></TR>
 <TR><TD COLSPAN=3> <HR></TD></TR>
 <TR><TH><A NAME="fn_I"></A>I</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX478"><CODE>insert-comment (M-#)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC113">8.4.8 Some Miscellaneous Commands</A></TD></TR>
 <TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX479"><CODE>insert-comment (M-#)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC113">8.4.8 Some Miscellaneous Commands</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX420"><CODE>insert-completions (M-*)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC111">8.4.6 Letting Readline Type For You</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX480"><CODE>insert-comment (M-#)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC113">8.4.8 Some Miscellaneous Commands</A></TD></TR>
 <TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX421"><CODE>insert-completions (M-*)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC111">8.4.6 Letting Readline Type For You</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX504"><CODE>insert-last-argument (M-. or M-_)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC113">8.4.8 Some Miscellaneous Commands</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX422"><CODE>insert-completions (M-*)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC111">8.4.6 Letting Readline Type For You</A></TD></TR>
 <TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX505"><CODE>insert-last-argument (M-. or M-_)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC113">8.4.8 Some Miscellaneous Commands</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX506"><CODE>insert-last-argument (M-. or M-_)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC113">8.4.8 Some Miscellaneous Commands</A></TD></TR>
 <TR><TD COLSPAN=3> <HR></TD></TR>
 <TR><TH><A NAME="fn_K"></A>K</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX382"><CODE>kill-line (C-k)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC109">8.4.4 Killing And Yanking</A></TD></TR>
 <TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX383"><CODE>kill-line (C-k)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC109">8.4.4 Killing And Yanking</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX400"><CODE>kill-region ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC109">8.4.4 Killing And Yanking</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX384"><CODE>kill-line (C-k)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC109">8.4.4 Killing And Yanking</A></TD></TR>
 <TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX401"><CODE>kill-region ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC109">8.4.4 Killing And Yanking</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX388"><CODE>kill-whole-line ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC109">8.4.4 Killing And Yanking</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX402"><CODE>kill-region ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC109">8.4.4 Killing And Yanking</A></TD></TR>
 <TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX389"><CODE>kill-whole-line ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC109">8.4.4 Killing And Yanking</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX390"><CODE>kill-word (M-d)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC109">8.4.4 Killing And Yanking</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX390"><CODE>kill-whole-line ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC109">8.4.4 Killing And Yanking</A></TD></TR>
 <TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX391"><CODE>kill-word (M-d)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC109">8.4.4 Killing And Yanking</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX392"><CODE>kill-word (M-d)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC109">8.4.4 Killing And Yanking</A></TD></TR>
 <TR><TD COLSPAN=3> <HR></TD></TR>
 <TR><TH><A NAME="fn_M"></A>M</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX498"><CODE>magic-space ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC113">8.4.8 Some Miscellaneous Commands</A></TD></TR>
 <TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX499"><CODE>magic-space ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC113">8.4.8 Some Miscellaneous Commands</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX422"><CODE>menu-complete ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC111">8.4.6 Letting Readline Type For You</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX500"><CODE>magic-space ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC113">8.4.8 Some Miscellaneous Commands</A></TD></TR>
 <TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX423"><CODE>menu-complete ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC111">8.4.6 Letting Readline Type For You</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX424"><CODE>menu-complete ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC111">8.4.6 Letting Readline Type For You</A></TD></TR>
 <TR><TD COLSPAN=3> <HR></TD></TR>
 <TR><TH><A NAME="fn_N"></A>N</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX338"><CODE>next-history (C-n)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC107">8.4.2 Commands For Manipulating The History</A></TD></TR>
 <TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX339"><CODE>next-history (C-n)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC107">8.4.2 Commands For Manipulating The History</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX350"><CODE>non-incremental-forward-search-history (M-n)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC107">8.4.2 Commands For Manipulating The History</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX340"><CODE>next-history (C-n)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC107">8.4.2 Commands For Manipulating The History</A></TD></TR>
 <TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX351"><CODE>non-incremental-forward-search-history (M-n)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC107">8.4.2 Commands For Manipulating The History</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX348"><CODE>non-incremental-reverse-search-history (M-p)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC107">8.4.2 Commands For Manipulating The History</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX352"><CODE>non-incremental-forward-search-history (M-n)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC107">8.4.2 Commands For Manipulating The History</A></TD></TR>
 <TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX349"><CODE>non-incremental-reverse-search-history (M-p)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC107">8.4.2 Commands For Manipulating The History</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX350"><CODE>non-incremental-reverse-search-history (M-p)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC107">8.4.2 Commands For Manipulating The History</A></TD></TR>
 <TR><TD COLSPAN=3> <HR></TD></TR>
 <TR><TH><A NAME="fn_O"></A>O</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX506"><CODE>operate-and-get-next (C-o)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC113">8.4.8 Some Miscellaneous Commands</A></TD></TR>
 <TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX507"><CODE>operate-and-get-next (C-o)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC113">8.4.8 Some Miscellaneous Commands</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX380"><CODE>overwrite-mode ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC108">8.4.3 Commands For Changing Text</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX508"><CODE>operate-and-get-next (C-o)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC113">8.4.8 Some Miscellaneous Commands</A></TD></TR>
 <TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX381"><CODE>overwrite-mode ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC108">8.4.3 Commands For Changing Text</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX382"><CODE>overwrite-mode ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC108">8.4.3 Commands For Changing Text</A></TD></TR>
 <TR><TD COLSPAN=3> <HR></TD></TR>
 <TR><TH><A NAME="fn_P"></A>P</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX444"><CODE>possible-command-completions (C-x !)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC111">8.4.6 Letting Readline Type For You</A></TD></TR>
 <TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX445"><CODE>possible-command-completions (C-x !)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC111">8.4.6 Letting Readline Type For You</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX418"><CODE>possible-completions (M-?)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC111">8.4.6 Letting Readline Type For You</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX446"><CODE>possible-command-completions (C-x !)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC111">8.4.6 Letting Readline Type For You</A></TD></TR>
 <TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX419"><CODE>possible-completions (M-?)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC111">8.4.6 Letting Readline Type For You</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX428"><CODE>possible-filename-completions (C-x /)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC111">8.4.6 Letting Readline Type For You</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX420"><CODE>possible-completions (M-?)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC111">8.4.6 Letting Readline Type For You</A></TD></TR>
 <TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX429"><CODE>possible-filename-completions (C-x /)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC111">8.4.6 Letting Readline Type For You</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX440"><CODE>possible-hostname-completions (C-x @)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC111">8.4.6 Letting Readline Type For You</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX430"><CODE>possible-filename-completions (C-x /)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC111">8.4.6 Letting Readline Type For You</A></TD></TR>
 <TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX441"><CODE>possible-hostname-completions (C-x @)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC111">8.4.6 Letting Readline Type For You</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX432"><CODE>possible-username-completions (C-x ~)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC111">8.4.6 Letting Readline Type For You</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX442"><CODE>possible-hostname-completions (C-x @)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC111">8.4.6 Letting Readline Type For You</A></TD></TR>
 <TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX433"><CODE>possible-username-completions (C-x ~)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC111">8.4.6 Letting Readline Type For You</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX436"><CODE>possible-variable-completions (C-x $)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC111">8.4.6 Letting Readline Type For You</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX434"><CODE>possible-username-completions (C-x ~)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC111">8.4.6 Letting Readline Type For You</A></TD></TR>
 <TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX437"><CODE>possible-variable-completions (C-x $)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC111">8.4.6 Letting Readline Type For You</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX462"><CODE>prefix-meta (<KBD>ESC</KBD>)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC113">8.4.8 Some Miscellaneous Commands</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX438"><CODE>possible-variable-completions (C-x $)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC111">8.4.6 Letting Readline Type For You</A></TD></TR>
 <TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX463"><CODE>prefix-meta (<KBD>ESC</KBD>)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC113">8.4.8 Some Miscellaneous Commands</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX336"><CODE>previous-history (C-p)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC107">8.4.2 Commands For Manipulating The History</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX464"><CODE>prefix-meta (<KBD>ESC</KBD>)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC113">8.4.8 Some Miscellaneous Commands</A></TD></TR>
 <TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX337"><CODE>previous-history (C-p)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC107">8.4.2 Commands For Manipulating The History</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX338"><CODE>previous-history (C-p)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC107">8.4.2 Commands For Manipulating The History</A></TD></TR>
 <TR><TD COLSPAN=3> <HR></TD></TR>
 <TR><TH><A NAME="fn_Q"></A>Q</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX366"><CODE>quoted-insert (C-q or C-v)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC108">8.4.3 Commands For Changing Text</A></TD></TR>
 <TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX367"><CODE>quoted-insert (C-q or C-v)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC108">8.4.3 Commands For Changing Text</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX368"><CODE>quoted-insert (C-q or C-v)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC108">8.4.3 Commands For Changing Text</A></TD></TR>
 <TR><TD COLSPAN=3> <HR></TD></TR>
 <TR><TH><A NAME="fn_R"></A>R</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX456"><CODE>re-read-init-file (C-x C-r)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC113">8.4.8 Some Miscellaneous Commands</A></TD></TR>
 <TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX457"><CODE>re-read-init-file (C-x C-r)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC113">8.4.8 Some Miscellaneous Commands</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX332"><CODE>redraw-current-line ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC106">8.4.1 Commands For Moving</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX458"><CODE>re-read-init-file (C-x C-r)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC113">8.4.8 Some Miscellaneous Commands</A></TD></TR>
 <TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX333"><CODE>redraw-current-line ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC106">8.4.1 Commands For Moving</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX344"><CODE>reverse-search-history (C-r)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC107">8.4.2 Commands For Manipulating The History</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX334"><CODE>redraw-current-line ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC106">8.4.1 Commands For Moving</A></TD></TR>
 <TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX345"><CODE>reverse-search-history (C-r)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC107">8.4.2 Commands For Manipulating The History</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX466"><CODE>revert-line (M-r)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC113">8.4.8 Some Miscellaneous Commands</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX346"><CODE>reverse-search-history (C-r)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC107">8.4.2 Commands For Manipulating The History</A></TD></TR>
 <TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX467"><CODE>revert-line (M-r)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC113">8.4.8 Some Miscellaneous Commands</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX468"><CODE>revert-line (M-r)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC113">8.4.8 Some Miscellaneous Commands</A></TD></TR>
 <TR><TD COLSPAN=3> <HR></TD></TR>
 <TR><TH><A NAME="fn_S"></A>S</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX368"><CODE>self-insert (a, b, A, 1, !, &#60;small&#62;...&#60;/small&#62;)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC108">8.4.3 Commands For Changing Text</A></TD></TR>
 <TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX369"><CODE>self-insert (a, b, A, 1, !, &#60;small&#62;...&#60;/small&#62;)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC108">8.4.3 Commands For Changing Text</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX470"><CODE>set-mark (C-@)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC113">8.4.8 Some Miscellaneous Commands</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX370"><CODE>self-insert (a, b, A, 1, !, &#60;small&#62;...&#60;/small&#62;)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC108">8.4.3 Commands For Changing Text</A></TD></TR>
 <TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX471"><CODE>set-mark (C-@)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC113">8.4.8 Some Miscellaneous Commands</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX494"><CODE>shell-expand-line (M-C-e)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC113">8.4.8 Some Miscellaneous Commands</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX472"><CODE>set-mark (C-@)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC113">8.4.8 Some Miscellaneous Commands</A></TD></TR>
 <TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX495"><CODE>shell-expand-line (M-C-e)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC113">8.4.8 Some Miscellaneous Commands</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX450"><CODE>start-kbd-macro (C-x ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC112">8.4.7 Keyboard Macros</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX496"><CODE>shell-expand-line (M-C-e)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC113">8.4.8 Some Miscellaneous Commands</A></TD></TR>
 <TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX451"><CODE>start-kbd-macro (C-x ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC112">8.4.7 Keyboard Macros</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX452"><CODE>start-kbd-macro (C-x ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC112">8.4.7 Keyboard Macros</A></TD></TR>
 <TR><TD COLSPAN=3> <HR></TD></TR>
 <TR><TH><A NAME="fn_T"></A>T</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX468"><CODE>tilde-expand (M-&#38;#38;)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC113">8.4.8 Some Miscellaneous Commands</A></TD></TR>
 <TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX469"><CODE>tilde-expand (M-&#38;#38;)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC113">8.4.8 Some Miscellaneous Commands</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX370"><CODE>transpose-chars (C-t)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC108">8.4.3 Commands For Changing Text</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX470"><CODE>tilde-expand (M-&#38;#38;)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC113">8.4.8 Some Miscellaneous Commands</A></TD></TR>
 <TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX371"><CODE>transpose-chars (C-t)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC108">8.4.3 Commands For Changing Text</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX372"><CODE>transpose-words (M-t)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC108">8.4.3 Commands For Changing Text</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX372"><CODE>transpose-chars (C-t)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC108">8.4.3 Commands For Changing Text</A></TD></TR>
 <TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX373"><CODE>transpose-words (M-t)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC108">8.4.3 Commands For Changing Text</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX374"><CODE>transpose-words (M-t)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC108">8.4.3 Commands For Changing Text</A></TD></TR>
 <TR><TD COLSPAN=3> <HR></TD></TR>
 <TR><TH><A NAME="fn_U"></A>U</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX464"><CODE>undo (C-_ or C-x C-u)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC113">8.4.8 Some Miscellaneous Commands</A></TD></TR>
 <TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX465"><CODE>undo (C-_ or C-x C-u)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC113">8.4.8 Some Miscellaneous Commands</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX414"><CODE>universal-argument ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC110">8.4.5 Specifying Numeric Arguments</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX466"><CODE>undo (C-_ or C-x C-u)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC113">8.4.8 Some Miscellaneous Commands</A></TD></TR>
 <TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX415"><CODE>universal-argument ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC110">8.4.5 Specifying Numeric Arguments</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX396"><CODE>unix-filename-rubout ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC109">8.4.4 Killing And Yanking</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX416"><CODE>universal-argument ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC110">8.4.5 Specifying Numeric Arguments</A></TD></TR>
 <TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX397"><CODE>unix-filename-rubout ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC109">8.4.4 Killing And Yanking</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX386"><CODE>unix-line-discard (C-u)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC109">8.4.4 Killing And Yanking</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX398"><CODE>unix-filename-rubout ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC109">8.4.4 Killing And Yanking</A></TD></TR>
 <TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX387"><CODE>unix-line-discard (C-u)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC109">8.4.4 Killing And Yanking</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX394"><CODE>unix-word-rubout (C-w)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC109">8.4.4 Killing And Yanking</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX388"><CODE>unix-line-discard (C-u)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC109">8.4.4 Killing And Yanking</A></TD></TR>
 <TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX395"><CODE>unix-word-rubout (C-w)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC109">8.4.4 Killing And Yanking</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX374"><CODE>upcase-word (M-u)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC108">8.4.3 Commands For Changing Text</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX396"><CODE>unix-word-rubout (C-w)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC109">8.4.4 Killing And Yanking</A></TD></TR>
 <TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX375"><CODE>upcase-word (M-u)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC108">8.4.3 Commands For Changing Text</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX376"><CODE>upcase-word (M-u)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC108">8.4.3 Commands For Changing Text</A></TD></TR>
 <TR><TD COLSPAN=3> <HR></TD></TR>
 <TR><TH><A NAME="fn_Y"></A>Y</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX408"><CODE>yank (C-y)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC109">8.4.4 Killing And Yanking</A></TD></TR>
 <TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX409"><CODE>yank (C-y)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC109">8.4.4 Killing And Yanking</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX358"><CODE>yank-last-arg (M-. or M-_)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC107">8.4.2 Commands For Manipulating The History</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX410"><CODE>yank (C-y)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC109">8.4.4 Killing And Yanking</A></TD></TR>
 <TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX359"><CODE>yank-last-arg (M-. or M-_)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC107">8.4.2 Commands For Manipulating The History</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX356"><CODE>yank-nth-arg (M-C-y)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC107">8.4.2 Commands For Manipulating The History</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX360"><CODE>yank-last-arg (M-. or M-_)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC107">8.4.2 Commands For Manipulating The History</A></TD></TR>
 <TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX357"><CODE>yank-nth-arg (M-C-y)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC107">8.4.2 Commands For Manipulating The History</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX410"><CODE>yank-pop (M-y)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC109">8.4.4 Killing And Yanking</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX358"><CODE>yank-nth-arg (M-C-y)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC107">8.4.2 Commands For Manipulating The History</A></TD></TR>
 <TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX411"><CODE>yank-pop (M-y)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC109">8.4.4 Killing And Yanking</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX412"><CODE>yank-pop (M-y)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC109">8.4.4 Killing And Yanking</A></TD></TR>
 <TR><TD COLSPAN=3> <HR></TD></TR>
 </TABLE><P></P><table><tr><th valign=top>Jump to: &nbsp; </th><td><A HREF="bashref.html#fn_A" style="text-decoration:none"><b>A</b></A>
  &nbsp; 
@@ -14747,10 +14803,10 @@ to permit their use in free software.
 <TR><TD COLSPAN=3> <HR></TD></TR>
 <TR><TH><A NAME="cp_H"></A>H</TH><TD></TD><TD></TD></TR>
 <TR><TD></TD><TD valign=top><A HREF="bashref.html#SEC119">history builtins</A></TD><TD valign=top><A HREF="bashref.html#SEC119">9.2 Bash History Builtins</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX515">history events</A></TD><TD valign=top><A HREF="bashref.html#SEC121">9.3.1 Event Designators</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX517">history events</A></TD><TD valign=top><A HREF="bashref.html#SEC121">9.3.1 Event Designators</A></TD></TR>
 <TR><TD></TD><TD valign=top><A HREF="bashref.html#SEC120">history expansion</A></TD><TD valign=top><A HREF="bashref.html#SEC120">9.3 History Expansion</A></TD></TR>
 <TR><TD></TD><TD valign=top><A HREF="bashref.html#SEC118">history list</A></TD><TD valign=top><A HREF="bashref.html#SEC118">9.1 Bash History Facilities</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX512">History, how to use</A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.7 Programmable Completion Builtins</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX514">History, how to use</A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.7 Programmable Completion Builtins</A></TD></TR>
 <TR><TD COLSPAN=3> <HR></TD></TR>
 <TR><TH><A NAME="cp_I"></A>I</TH><TD></TD><TD></TD></TR>
 <TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX11">identifier</A></TD><TD valign=top><A HREF="bashref.html#SEC4">2. Definitions</A></TD></TR>
@@ -15272,7 +15328,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>March, 4  2008</I>
+This document was generated by <I>Chet Ramey</I> on <I>April, 8  2008</I>
 using <A HREF="http://www.mathematik.uni-kl.de/~obachman/Texi2html
 "><I>texi2html</I></A>
 <P></P>  
@@ -15434,7 +15490,7 @@ the following structure:
 <BR>  
 <FONT SIZE="-1">
 This document was generated
-by <I>Chet Ramey</I> on <I>March, 4  2008</I>
+by <I>Chet Ramey</I> on <I>April, 8  2008</I>
 using <A HREF="http://www.mathematik.uni-kl.de/~obachman/Texi2html
 "><I>texi2html</I></A>
 
index c5e7b8ee529ff4e164158cd426c5c72276f32dce..4345886277dd8120e3252fbdb34bbf7303d4cca4 100644 (file)
@@ -1,10 +1,10 @@
-This is bashref.info, produced by makeinfo version 4.8 from
-/Users/chet/src/bash/src/doc/bashref.texi.
+This is bashref.info, produced by makeinfo version 4.11 from
+/usr/homes/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.2, 22 February 2008).
+This text is a brief description of the features that are present in
+the Bash shell (version 3.2, 5 April 2008).
 
-   This is Edition 3.2, last updated 22 February 2008, of `The GNU Bash
+   This is Edition 3.2, last updated 5 April 2008, of `The GNU Bash
 Reference Manual', for `Bash', Version 3.2.
 
    Copyright (C) 1988-2007 Free Software Foundation, Inc.
@@ -38,9 +38,9 @@ Bash Features
 *************
 
 This text is a brief description of the features that are present in
-the Bash shell (version 3.2, 22 February 2008).
+the Bash shell (version 3.2, 5 April 2008).
 
-   This is Edition 3.2, last updated 22 February 2008, of `The GNU Bash
+   This is Edition 3.2, last updated 5 April 2008, of `The GNU Bash
 Reference Manual', for `Bash', Version 3.2.
 
    Bash contains features that appear in other popular shells, and some
@@ -322,7 +322,7 @@ reads and executes a command.  Basically, the shell does the following:
      Invoking Bash::), or from the user's terminal.
 
   2. Breaks the input into words and operators, obeying the quoting
-     rules described in *Note Quoting::.  These tokens are separated by
+     rules described in *note Quoting::.  These tokens are separated by
      `metacharacters'.  Alias expansion is performed by this step
      (*note Aliases::).
 
@@ -616,8 +616,11 @@ redirected from `/dev/null'.
 waits for each command to terminate in turn.  The return status is the
 exit status of the last command executed.
 
-   The control operators `&&' and `||' denote AND lists and OR lists,
-respectively.  An AND list has the form
+   AND and OR lists are sequences of one or more pipelines separated by
+the control operators `&&' and `||', respectively.  AND and OR lists
+are executed with left associativity.
+
+   An AND list has the form
      COMMAND1 && COMMAND2
 
 COMMAND2 is executed if, and only if, COMMAND1 returns an exit status
@@ -746,7 +749,7 @@ File: bashref.info,  Node: Conditional Constructs,  Next: Command Grouping,  Pre
 
      `case' will selectively execute the COMMAND-LIST corresponding to
      the first PATTERN that matches WORD.  If the shell option
-     `nocasematch' (see the description of `shopt' in *Note The Shopt
+     `nocasematch' (see the description of `shopt' in *note The Shopt
      Builtin::) is enabled, the match is performed without regard to
      the case of alphabetic characters.  The `|' is used to separate
      multiple patterns, and the `)' operator terminates a pattern list.
@@ -824,7 +827,7 @@ File: bashref.info,  Node: Conditional Constructs,  Next: Command Grouping,  Pre
 
      Return a status of 0 or 1 depending on the evaluation of the
      conditional expression EXPRESSION.  Expressions are composed of
-     the primaries described below in *Note Bash Conditional
+     the primaries described below in *note Bash Conditional
      Expressions::.  Word splitting and filename expansion are not
      performed on the words between the `[[' and `]]'; tilde expansion,
      parameter and variable expansion, arithmetic expansion, command
@@ -834,9 +837,9 @@ File: bashref.info,  Node: Conditional Constructs,  Next: Command Grouping,  Pre
 
      When the `==' and `!=' operators are used, the string to the right
      of the operator is considered a pattern and matched according to
-     the rules described below in *Note Pattern Matching::.  If the
+     the rules described below in *note Pattern Matching::.  If the
      shell option `nocasematch' (see the description of `shopt' in
-     *Note The Shopt Builtin::) is enabled, the match is performed
+     *note The Shopt Builtin::) 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, and 1 otherwise.  Any part of the pattern may
@@ -849,7 +852,7 @@ File: bashref.info,  Node: Conditional Constructs,  Next: Command Grouping,  Pre
      the string matches the pattern, and 1 otherwise.  If the regular
      expression is syntactically incorrect, the conditional
      expression's return value is 2.  If the shell option `nocasematch'
-     (see the description of `shopt' in *Note The Shopt Builtin::) is
+     (see the description of `shopt' in *note The Shopt Builtin::) is
      enabled, the match is performed without regard to the case of
      alphabetic characters.  Any part of the pattern may be quoted to
      force it to be matched as a string.  Substrings matched by
@@ -1016,7 +1019,7 @@ File: bashref.info,  Node: Shell Parameters,  Next: Shell Expansions,  Prev: She
 number, or one of the special characters listed below.  A VARIABLE is a
 parameter denoted by a `name'.  A variable has a VALUE and zero or more
 ATTRIBUTES.  Attributes are assigned using the `declare' builtin command
-(see the description of the `declare' builtin in *Note Bash Builtins::).
+(see the description of the `declare' builtin in *note Bash Builtins::).
 
    A parameter is set if it has been assigned a value.  The null string
 is a valid value.  Once a variable is set, it may be unset only by using
@@ -1595,7 +1598,7 @@ matched explicitly, unless the shell option `dotglob' is set.  When
 matching a file name, the slash character must always be matched
 explicitly.  In other cases, the `.' character is not treated specially.
 
-   See the description of `shopt' in *Note The Shopt Builtin::, for a
+   See the description of `shopt' in *note The Shopt Builtin::, for a
 description of the `nocaseglob', `nullglob', `failglob', and `dotglob'
 options.
 
@@ -1977,7 +1980,7 @@ taken.
 
   1. 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 in *Note Shell Functions::.
+     function is invoked as described in *note Shell Functions::.
 
   2. 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
@@ -1988,7 +1991,7 @@ taken.
      directory containing an executable file by that name.  Bash uses a
      hash table to remember the full pathnames of executable files to
      avoid multiple `PATH' searches (see the description of `hash' in
-     *Note Bourne Shell Builtins::).  A full search of the directories
+     *note Bourne Shell Builtins::).  A full search of the directories
      in `$PATH' 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.
@@ -2001,7 +2004,7 @@ taken.
 
   5. 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
-     SHELL SCRIPT and the shell executes it as described in *Note Shell
+     SHELL SCRIPT and the shell executes it as described in *note Shell
      Scripts::.
 
   6. If the command was not begun asynchronously, the shell waits for
@@ -2105,7 +2108,7 @@ modified in the shell, less any pairs removed by the `unset' and
 
    The environment for any simple command or function may be augmented
 temporarily by prefixing it with parameter assignments, as described in
-*Note Shell Parameters::.  These assignment statements affect only the
+*note Shell Parameters::.  These assignment statements affect only the
 environment seen by that command.
 
    If the `-k' option is set (*note The Set Builtin::), then all
@@ -2225,7 +2228,7 @@ if `filename' is an executable shell script.  This subshell
 reinitializes itself, so that the effect is as if a new shell had been
 invoked to interpret the script, with the exception that the locations
 of commands remembered by the parent (see the description of `hash' in
-*Note Bourne Shell Builtins::) are retained by the child.
+*note Bourne Shell Builtins::) are retained by the child.
 
    Most versions of Unix make this a part of the operating system's
 command execution mechanism.  If the first line of a script begins with
@@ -2500,7 +2503,7 @@ standard.
 `['
      Evaluate a conditional expression EXPR.  Each operator and operand
      must be a separate argument.  Expressions are composed of the
-     primaries described below in *Note Bash Conditional Expressions::.
+     primaries described below in *note Bash Conditional Expressions::.
      `test' does not accept any options, nor does it accept and ignore
      an argument of `--' as signifying the end of options.
 
@@ -2654,7 +2657,7 @@ POSIX standard.
      of aliases on the standard output in a form that allows them to be
      reused as input.  If arguments are supplied, an alias is defined
      for each NAME whose VALUE is given.  If no VALUE is given, the name
-     and value of the alias is printed.  Aliases are described in *Note
+     and value of the alias is printed.  Aliases are described in *note
      Aliases::.
 
 `bind'
@@ -2779,13 +2782,22 @@ POSIX standard.
      given, then display the values of variables instead.
 
      The `-p' option will display the attributes and values of each
-     NAME.  When `-p' is used, additional options are ignored.  The
-     `-F' option inhibits the display of function definitions; only the
-     function name and attributes are printed.  If the `extdebug' shell
-     option is enabled using `shopt' (*note The Shopt Builtin::), the
-     source file name and line number where the function is defined are
-     displayed as well.  `-F' implies `-f'.  The following options can
-     be used to restrict output to variables with the specified
+     NAME.  When `-p' is used with NAME arguments, additional options
+     are ignored.
+
+     When `-p' is supplied without NAME arguments, `declare' will
+     display the attributes and values of all variables having the
+     attributes specified by the additional options.  If no other
+     options are supplied with `-p', `declare' will display the
+     attributes and values of all shell variables.  The `-f' option
+     will restrict the display to shell functions.
+
+     The `-F' option inhibits the display of function definitions; only
+     the function name and attributes are printed.  If the `extdebug'
+     shell option is enabled using `shopt' (*note The Shopt Builtin::),
+     the source file name and line number where the function is defined
+     are displayed as well.  `-F' implies `-f'.  The following options
+     can be used to restrict output to variables with the specified
      attributes or to give variables attributes:
 
     `-a'
@@ -2922,7 +2934,7 @@ POSIX standard.
           let EXPRESSION [EXPRESSION]
      The `let' builtin allows arithmetic to be performed on shell
      variables.  Each EXPRESSION is evaluated according to the rules
-     given below in *Note Shell Arithmetic::.  If the last EXPRESSION
+     given below in *note Shell Arithmetic::.  If the last EXPRESSION
      evaluates to 0, `let' returns 1; otherwise 0 is returned.
 
 `local'
@@ -2965,7 +2977,7 @@ POSIX standard.
      success, non-zero on failure.
 
 `read'
-          read [-ers] [-a ANAME] [-d DELIM] [-n NCHARS] [-p PROMPT] [-t TIMEOUT] [-u FD] [NAME ...]
+          read [-ers] [-a ANAME] [-d DELIM] [-i TEXT] [-n NCHARS] [-p PROMPT] [-t TIMEOUT] [-u FD] [NAME ...]
      One line is read from the standard input, or from the file
      descriptor FD supplied as an argument to the `-u' option, and the
      first word is assigned to the first NAME, the second word to the
@@ -2996,6 +3008,10 @@ POSIX standard.
           Readline (*note Command Line Editing::) is used to obtain the
           line.
 
+    `-i TEXT'
+          If Readline is being used to read the line, TEXT is placed
+          into the editing buffer before editing begins.
+
     `-n NCHARS'
           `read' returns after reading NCHARS characters rather than
           waiting for a complete line of input.
@@ -3067,7 +3083,7 @@ POSIX standard.
      builtin command.
 
 `ulimit'
-          ulimit [-acdefilmnpqrstuvxSH] [LIMIT]
+          ulimit [-abcdefilmnpqrstuvxHST] [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:
@@ -3080,6 +3096,9 @@ POSIX standard.
     `-a'
           All current limits are reported.
 
+    `-b'
+          The maximum socket buffer size.
+
     `-c'
           The maximum size of core files created.
 
@@ -3129,6 +3148,9 @@ POSIX standard.
     `-x'
           The maximum number of file locks.
 
+    `-T'
+          The maximum number of threads.
+
 
      If LIMIT is given, it is the new value of the specified resource;
      the special LIMIT values `hard', `soft', and `unlimited' stand for
@@ -3150,7 +3172,7 @@ POSIX standard.
           unalias [-a] [NAME ... ]
 
      Remove each NAME from the list of aliases.  If `-a' is supplied,
-     all aliases are removed.  Aliases are described in *Note Aliases::.
+     all aliases are removed.  Aliases are described in *note Aliases::.
 
 
 \1f
@@ -3260,7 +3282,7 @@ parameters, or to display the names and values of shell variables.
                Same as `-H'.
 
          `history'
-               Enable command history, as described in *Note Bash
+               Enable command history, as described in *note Bash
                History Facilities::.  This option is on by default in
                interactive shells.
 
@@ -3523,7 +3545,7 @@ This builtin allows you to change additional shell optional behavior.
 
     `expand_aliases'
           If set, aliases are expanded as described below under Aliases,
-          *Note Aliases::.  This option is enabled by default for
+          *note Aliases::.  This option is enabled by default for
           interactive shells.
 
     `extdebug'
@@ -3701,7 +3723,7 @@ respects:
 
    When Bash is not executing in POSIX mode, these builtins behave no
 differently than the rest of the Bash builtin commands.  The Bash POSIX
-mode is described in *Note Bash POSIX Mode::.
+mode is described in *note Bash POSIX Mode::.
 
    These are the POSIX special builtins:
      break : . continue eval exec exit export readonly return set
@@ -3807,7 +3829,7 @@ Variables::).
      executed with `.' or `source') is at the top of the stack.  When a
      subroutine is executed, the number of parameters passed is pushed
      onto `BASH_ARGC'.  The shell sets `BASH_ARGC' only when in
-     extended debugging mode (see *Note The Shopt Builtin:: for a
+     extended debugging mode (see *note The Shopt Builtin:: for a
      description of the `extdebug' option to the `shopt' builtin).
 
 `BASH_ARGV'
@@ -3816,7 +3838,7 @@ Variables::).
      subroutine call is at the top of the stack; the first parameter of
      the initial call is at the bottom.  When a subroutine is executed,
      the parameters supplied are pushed onto `BASH_ARGV'.  The shell
-     sets `BASH_ARGV' only when in extended debugging mode (see *Note
+     sets `BASH_ARGV' only when in extended debugging mode (see *note
      The Shopt Builtin:: for a description of the `extdebug' option to
      the `shopt' builtin).
 
@@ -4332,9 +4354,9 @@ the single-character options to be recognized.
 
 `--debugger'
      Arrange for the debugger profile to be executed before the shell
-     starts.  Turns on extended debugging mode (see *Note The Shopt
+     starts.  Turns on extended debugging mode (see *note The Shopt
      Builtin:: for a description of the `extdebug' option to the `shopt'
-     builtin) and shell function tracing (see *Note The Set Builtin::
+     builtin) and shell function tracing (see *note The Set Builtin::
      for a description of the `-o functrace' option).
 
 `--dump-po-strings'
@@ -4397,7 +4419,7 @@ invocation which are not available with the `set' builtin.
 
 `-i'
      Force the shell to run interactively.  Interactive shells are
-     described in *Note Interactive Shells::.
+     described in *note Interactive Shells::.
 
 `-l'
      Make this shell act as if it had been directly invoked by login.
@@ -4468,7 +4490,7 @@ the files exist but cannot be read, Bash reports an error.  Tildes are
 expanded in file names as described above under Tilde Expansion (*note
 Tilde Expansion::).
 
-   Interactive shells are described in *Note Interactive Shells::.
+   Interactive shells are described in *note Interactive Shells::.
 
 Invoked as an interactive login shell, or with `--login'
 ........................................................
@@ -4631,7 +4653,7 @@ File: bashref.info,  Node: Interactive Shell Behavior,  Prev: Is this Shell Inte
 When the shell is running interactively, it changes its behavior in
 several ways.
 
-  1. Startup files are read and executed as described in *Note Bash
+  1. Startup files are read and executed as described in *note Bash
      Startup Files::.
 
   2. Job Control (*note Job Control::) is enabled by default.  When job
@@ -4697,7 +4719,7 @@ several ways.
 
  20. Simple spelling correction for directory arguments to the `cd'
      builtin is enabled by default (see the description of the `cdspell'
-     option to the `shopt' builtin in *Note The Shopt Builtin::).
+     option to the `shopt' builtin in *note The Shopt Builtin::).
 
  21. The shell will check the value of the `TMOUT' variable and exit if
      a command is not read within the specified number of seconds after
@@ -5593,7 +5615,7 @@ reports such changes immediately (*note The Set Builtin::).  Any trap
 on `SIGCHLD' is executed for each child process that exits.
 
    If an attempt to exit Bash is made while jobs are stopped, (or
-running, if the `checkjobs' option is enabled - see *Note The Shopt
+running, if the `checkjobs' option is enabled - see *note The Shopt
 Builtin::), the shell prints a warning message, and if the `checkjobs'
 option is enabled, lists the jobs and their statuses.  The `jobs'
 command may then be used to inspect their status.  If a second attempt
@@ -6138,6 +6160,11 @@ Variable Settings
           history line retrieved with `previous-history' or
           `next-history'.  The default is `off'.
 
+    `history-size'
+          Set the maximum number of history entries saved in the
+          history list.  If set to zero, the number of entries in the
+          history list is not limited.
+
     `horizontal-scroll-mode'
           This variable can be set to either `on' or `off'.  Setting it
           to `on' means that the text of the lines being edited will
@@ -7131,10 +7158,10 @@ generated completions against the word being completed is performed;
 the function or command has complete freedom in generating the matches.
 
    Any function specified with `-F' is invoked first.  The function may
-use any of the shell facilities, including the `compgen' builtin
-described below (*note Programmable Completion Builtins::), to generate
-the matches.  It must put the possible completions in the `COMPREPLY'
-array variable.
+use any of the shell facilities, including the `compgen' and `compopt'
+builtins described below (*note Programmable Completion Builtins::), to
+generate the matches.  It must put the possible completions in the
+`COMPREPLY' array variable.
 
    Next, any command specified with the `-C' option is invoked in an
 environment equivalent to command substitution.  It should print a list
@@ -7389,7 +7416,19 @@ completion facilities.
      for a NAME for which no specification exists, or an error occurs
      adding a completion specification.
 
-   
+`compopt'
+          `compopt' [-o OPTION] [+o OPTION] [NAME]
+     Modify completion options for each NAME according to the OPTIONs,
+     or for the currently-execution completion if no NAMEs are supplied.
+     If no OPTIONs are given, display the completion options for each
+     NAME or the current completion.  The possible values of OPTION are
+     those valid for the `complete' builtin described above.
+
+     The return value is true unless an invalid option is supplied, an
+     attempt is made to modify the options for a NAME for which no
+     completion specification exists, or an output error occurs.
+
+
 \1f
 File: bashref.info,  Node: Using History Interactively,  Next: Installing Bash,  Prev: Command Line Editing,  Up: Top
 
@@ -8094,7 +8133,7 @@ does not provide the necessary support.
 
 `--enable-brace-expansion'
      Include `csh'-like brace expansion ( `b{a,b}c' ==> `bac bbc' ).
-     See *Note Brace Expansion::, for a complete description.
+     See *note Brace Expansion::, for a complete description.
 
 `--enable-command-timing'
      Include support for recognizing `time' as a reserved word and for
@@ -8120,7 +8159,7 @@ does not provide the necessary support.
 
 `--enable-disabled-builtins'
      Allow builtin commands to be invoked via `builtin xxx' even after
-     `xxx' has been disabled using `enable -n xxx'.  See *Note Bash
+     `xxx' has been disabled using `enable -n xxx'.  See *note Bash
      Builtins::, for details of the `builtin' and `enable' builtin
      commands.
 
@@ -8130,7 +8169,7 @@ does not provide the necessary support.
 
 `--enable-extended-glob'
      Include support for the extended pattern matching features
-     described above under *Note Pattern Matching::.
+     described above under *note Pattern Matching::.
 
 `--enable-help-builtin'
      Include the `help' builtin, which displays help on shell builtins
@@ -8165,7 +8204,7 @@ does not provide the necessary support.
 `--enable-prompt-string-decoding'
      Turn on the interpretation of a number of backslash-escaped
      characters in the `$PS1', `$PS2', `$PS3', and `$PS4' prompt
-     strings.  See *Note Printing a Prompt::, for a complete list of
+     strings.  See *note Printing a Prompt::, for a complete list of
      prompt string escape sequences.
 
 `--enable-readline'
@@ -8174,7 +8213,7 @@ does not provide the necessary support.
 
 `--enable-restricted'
      Include support for a "restricted shell".  If this is enabled,
-     Bash, when called as `rbash', enters a restricted mode.  See *Note
+     Bash, when called as `rbash', enters a restricted mode.  See *note
      The Restricted Shell::, for a description of restricted mode.
 
 `--enable-select'
@@ -8272,8 +8311,8 @@ the baseline reference.
      the `bind' builtin.
 
    * Bash provides a programmable word completion mechanism (*note
-     Programmable Completion::), and two builtin commands, `complete'
-     and `compgen', to manipulate it.
+     Programmable Completion::), and builtin commands `complete',
+     `compgen', and `compopt', to manipulate it.
 
    * Bash has command history (*note Bash History Facilities::) and the
      `history' and `fc' builtins to manipulate it.  The Bash history
@@ -8565,7 +8604,7 @@ the baseline reference.
    * The SVR4.2 `sh' uses a `TIMEOUT' variable like Bash uses `TMOUT'.
 
 
-More features unique to Bash may be found in *Note Bash Features::.
+More features unique to Bash may be found in *note Bash Features::.
 
 B.1 Implementation Differences From The SVR4.2 Shell
 ====================================================
@@ -9088,6 +9127,8 @@ D.1 Index of Shell Builtin Commands
                                                               (line  10)
 * complete:                              Programmable Completion Builtins.
                                                               (line  28)
+* compopt:                               Programmable Completion Builtins.
+                                                              (line 210)
 * continue:                              Bourne Shell Builtins.
                                                               (line  55)
 * declare:                               Bash Builtins.       (line 136)
@@ -9095,8 +9136,8 @@ D.1 Index of Shell Builtin Commands
                                                               (line   7)
 * disown:                                Job Control Builtins.
                                                               (line  83)
-* echo:                                  Bash Builtins.       (line 193)
-* enable:                                Bash Builtins.       (line 245)
+* echo:                                  Bash Builtins.       (line 202)
+* enable:                                Bash Builtins.       (line 254)
 * eval:                                  Bourne Shell Builtins.
                                                               (line  63)
 * exec:                                  Bourne Shell Builtins.
@@ -9113,24 +9154,24 @@ D.1 Index of Shell Builtin Commands
                                                               (line 103)
 * hash:                                  Bourne Shell Builtins.
                                                               (line 145)
-* help:                                  Bash Builtins.       (line 273)
+* help:                                  Bash Builtins.       (line 282)
 * history:                               Bash History Builtins.
                                                               (line  39)
 * jobs:                                  Job Control Builtins.
                                                               (line  25)
 * kill:                                  Job Control Builtins.
                                                               (line  57)
-* let:                                   Bash Builtins.       (line 282)
-* local:                                 Bash Builtins.       (line 289)
-* logout:                                Bash Builtins.       (line 299)
+* let:                                   Bash Builtins.       (line 291)
+* local:                                 Bash Builtins.       (line 298)
+* logout:                                Bash Builtins.       (line 308)
 * popd:                                  Directory Stack Builtins.
                                                               (line  37)
-* printf:                                Bash Builtins.       (line 303)
+* printf:                                Bash Builtins.       (line 312)
 * pushd:                                 Directory Stack Builtins.
                                                               (line  58)
 * pwd:                                   Bourne Shell Builtins.
                                                               (line 163)
-* read:                                  Bash Builtins.       (line 328)
+* read:                                  Bash Builtins.       (line 337)
 * readonly:                              Bourne Shell Builtins.
                                                               (line 172)
 * return:                                Bourne Shell Builtins.
@@ -9139,7 +9180,7 @@ D.1 Index of Shell Builtin Commands
 * shift:                                 Bourne Shell Builtins.
                                                               (line 200)
 * shopt:                                 The Shopt Builtin.   (line   9)
-* source:                                Bash Builtins.       (line 389)
+* source:                                Bash Builtins.       (line 402)
 * suspend:                               Job Control Builtins.
                                                               (line  94)
 * test:                                  Bourne Shell Builtins.
@@ -9148,12 +9189,12 @@ D.1 Index of Shell Builtin Commands
                                                               (line 280)
 * trap:                                  Bourne Shell Builtins.
                                                               (line 285)
-* type:                                  Bash Builtins.       (line 393)
-* typeset:                               Bash Builtins.       (line 424)
-* ulimit:                                Bash Builtins.       (line 430)
+* type:                                  Bash Builtins.       (line 406)
+* typeset:                               Bash Builtins.       (line 437)
+* ulimit:                                Bash Builtins.       (line 443)
 * umask:                                 Bourne Shell Builtins.
                                                               (line 326)
-* unalias:                               Bash Builtins.       (line 510)
+* unalias:                               Bash Builtins.       (line 529)
 * unset:                                 Bourne Shell Builtins.
                                                               (line 343)
 * wait:                                  Job Control Builtins.
@@ -9279,12 +9320,14 @@ D.3 Parameter and Variable Index
 * HISTIGNORE:                            Bash Variables.      (line 261)
 * history-preserve-point:                Readline Init File Syntax.
                                                               (line  96)
+* history-size:                          Readline Init File Syntax.
+                                                              (line 102)
 * HISTSIZE:                              Bash Variables.      (line 280)
 * HISTTIMEFORMAT:                        Bash Variables.      (line 284)
 * HOME:                                  Bourne Shell Variables.
                                                               (line  13)
 * horizontal-scroll-mode:                Readline Init File Syntax.
-                                                              (line 102)
+                                                              (line 107)
 * HOSTFILE:                              Bash Variables.      (line 293)
 * HOSTNAME:                              Bash Variables.      (line 304)
 * HOSTTYPE:                              Bash Variables.      (line 307)
@@ -9292,12 +9335,12 @@ D.3 Parameter and Variable Index
                                                               (line  18)
 * IGNOREEOF:                             Bash Variables.      (line 310)
 * input-meta:                            Readline Init File Syntax.
-                                                              (line 109)
+                                                              (line 114)
 * INPUTRC:                               Bash Variables.      (line 320)
 * isearch-terminators:                   Readline Init File Syntax.
-                                                              (line 116)
+                                                              (line 121)
 * keymap:                                Readline Init File Syntax.
-                                                              (line 123)
+                                                              (line 128)
 * LANG:                                  Bash Variables.      (line 324)
 * LC_ALL:                                Bash Variables.      (line 328)
 * LC_COLLATE:                            Bash Variables.      (line 332)
@@ -9314,13 +9357,13 @@ D.3 Parameter and Variable Index
 * MAILPATH:                              Bourne Shell Variables.
                                                               (line  27)
 * mark-modified-lines:                   Readline Init File Syntax.
-                                                              (line 136)
-* mark-symlinked-directories:            Readline Init File Syntax.
                                                               (line 141)
-* match-hidden-files:                    Readline Init File Syntax.
+* mark-symlinked-directories:            Readline Init File Syntax.
                                                               (line 146)
+* match-hidden-files:                    Readline Init File Syntax.
+                                                              (line 151)
 * meta-flag:                             Readline Init File Syntax.
-                                                              (line 109)
+                                                              (line 114)
 * OLDPWD:                                Bash Variables.      (line 373)
 * OPTARG:                                Bourne Shell Variables.
                                                               (line  34)
@@ -9329,9 +9372,9 @@ D.3 Parameter and Variable Index
                                                               (line  38)
 * OSTYPE:                                Bash Variables.      (line 380)
 * output-meta:                           Readline Init File Syntax.
-                                                              (line 153)
-* page-completions:                      Readline Init File Syntax.
                                                               (line 158)
+* page-completions:                      Readline Init File Syntax.
+                                                              (line 163)
 * PATH:                                  Bourne Shell Variables.
                                                               (line  42)
 * PIPESTATUS:                            Bash Variables.      (line 383)
@@ -9352,9 +9395,9 @@ D.3 Parameter and Variable Index
 * SHELLOPTS:                             Bash Variables.      (line 438)
 * SHLVL:                                 Bash Variables.      (line 447)
 * show-all-if-ambiguous:                 Readline Init File Syntax.
-                                                              (line 168)
+                                                              (line 173)
 * show-all-if-unmodified:                Readline Init File Syntax.
-                                                              (line 174)
+                                                              (line 179)
 * TEXTDOMAIN:                            Locale Translation.  (line  11)
 * TEXTDOMAINDIR:                         Locale Translation.  (line  11)
 * TIMEFORMAT:                            Bash Variables.      (line 452)
@@ -9362,7 +9405,7 @@ D.3 Parameter and Variable Index
 * TMPDIR:                                Bash Variables.      (line 502)
 * UID:                                   Bash Variables.      (line 506)
 * visible-stats:                         Readline Init File Syntax.
-                                                              (line 183)
+                                                              (line 188)
 
 \1f
 File: bashref.info,  Node: Function Index,  Next: Concept Index,  Prev: Variable Index,  Up: Indexes
@@ -9549,7 +9592,7 @@ D.5 Concept Index
 * history list:                          Bash History Facilities.
                                                               (line   6)
 * History, how to use:                   Programmable Completion Builtins.
-                                                              (line 209)
+                                                              (line 222)
 * identifier:                            Definitions.         (line  50)
 * initialization file, readline:         Readline Init File.  (line   6)
 * installation:                          Basic Installation.  (line   6)
@@ -9626,131 +9669,131 @@ D.5 Concept Index
 
 \1f
 Tag Table:
-Node: Top\7f1350
-Node: Introduction\7f3189
-Node: What is Bash?\7f3417
-Node: What is a shell?\7f4530
-Node: Definitions\7f7070
-Node: Basic Shell Features\7f9839
-Node: Shell Syntax\7f11058
-Node: Shell Operation\7f12088
-Node: Quoting\7f13382
-Node: Escape Character\7f14685
-Node: Single Quotes\7f15170
-Node: Double Quotes\7f15518
-Node: ANSI-C Quoting\7f16643
-Node: Locale Translation\7f17599
-Node: Comments\7f18495
-Node: Shell Commands\7f19113
-Node: Simple Commands\7f19879
-Node: Pipelines\7f20510
-Node: Lists\7f22385
-Node: Compound Commands\7f24016
-Node: Looping Constructs\7f24800
-Node: Conditional Constructs\7f27247
-Node: Command Grouping\7f34807
-Node: Shell Functions\7f36286
-Node: Shell Parameters\7f40747
-Node: Positional Parameters\7f43077
-Node: Special Parameters\7f43977
-Node: Shell Expansions\7f46941
-Node: Brace Expansion\7f48866
-Node: Tilde Expansion\7f51192
-Node: Shell Parameter Expansion\7f53543
-Node: Command Substitution\7f61243
-Node: Arithmetic Expansion\7f62576
-Node: Process Substitution\7f63426
-Node: Word Splitting\7f64476
-Node: Filename Expansion\7f66099
-Node: Pattern Matching\7f68239
-Node: Quote Removal\7f71557
-Node: Redirections\7f71852
-Node: Executing Commands\7f79582
-Node: Simple Command Expansion\7f80252
-Node: Command Search and Execution\7f82182
-Node: Command Execution Environment\7f84188
-Node: Environment\7f86987
-Node: Exit Status\7f88647
-Node: Signals\7f90268
-Node: Shell Scripts\7f92236
-Node: Shell Builtin Commands\7f94754
-Node: Bourne Shell Builtins\7f96431
-Node: Bash Builtins\7f113661
-Node: Modifying Shell Behavior\7f133791
-Node: The Set Builtin\7f134136
-Node: The Shopt Builtin\7f142984
-Node: Special Builtins\7f153392
-Node: Shell Variables\7f154371
-Node: Bourne Shell Variables\7f154811
-Node: Bash Variables\7f156792
-Node: Bash Features\7f178164
-Node: Invoking Bash\7f179047
-Node: Bash Startup Files\7f184856
-Node: Interactive Shells\7f189825
-Node: What is an Interactive Shell?\7f190235
-Node: Is this Shell Interactive?\7f190884
-Node: Interactive Shell Behavior\7f191699
-Node: Bash Conditional Expressions\7f194979
-Node: Shell Arithmetic\7f198558
-Node: Aliases\7f201304
-Node: Arrays\7f203876
-Node: The Directory Stack\7f207225
-Node: Directory Stack Builtins\7f207939
-Node: Printing a Prompt\7f210831
-Node: The Restricted Shell\7f213545
-Node: Bash POSIX Mode\7f215377
-Node: Job Control\7f223136
-Node: Job Control Basics\7f223596
-Node: Job Control Builtins\7f228105
-Node: Job Control Variables\7f232432
-Node: Command Line Editing\7f233590
-Node: Introduction and Notation\7f234585
-Node: Readline Interaction\7f236207
-Node: Readline Bare Essentials\7f237398
-Node: Readline Movement Commands\7f239187
-Node: Readline Killing Commands\7f240152
-Node: Readline Arguments\7f242072
-Node: Searching\7f243116
-Node: Readline Init File\7f245302
-Node: Readline Init File Syntax\7f246449
-Node: Conditional Init Constructs\7f258824
-Node: Sample Init File\7f261357
-Node: Bindable Readline Commands\7f264474
-Node: Commands For Moving\7f265681
-Node: Commands For History\7f266542
-Node: Commands For Text\7f269697
-Node: Commands For Killing\7f272370
-Node: Numeric Arguments\7f274512
-Node: Commands For Completion\7f275651
-Node: Keyboard Macros\7f279244
-Node: Miscellaneous Commands\7f279815
-Node: Readline vi Mode\7f285126
-Node: Programmable Completion\7f286040
-Node: Programmable Completion Builtins\7f291858
-Node: Using History Interactively\7f299454
-Node: Bash History Facilities\7f300138
-Node: Bash History Builtins\7f303052
-Node: History Interaction\7f306909
-Node: Event Designators\7f309614
-Node: Word Designators\7f310629
-Node: Modifiers\7f312268
-Node: Installing Bash\7f313672
-Node: Basic Installation\7f314809
-Node: Compilers and Options\7f317501
-Node: Compiling For Multiple Architectures\7f318242
-Node: Installation Names\7f319906
-Node: Specifying the System Type\7f320724
-Node: Sharing Defaults\7f321440
-Node: Operation Controls\7f322113
-Node: Optional Features\7f323071
-Node: Reporting Bugs\7f332002
-Node: Major Differences From The Bourne Shell\7f333196
-Node: GNU Free Documentation License\7f349876
-Node: Indexes\7f372337
-Node: Builtin Index\7f372791
-Node: Reserved Word Index\7f379324
-Node: Variable Index\7f381772
-Node: Function Index\7f392936
-Node: Concept Index\7f399668
+Node: Top\7f1344
+Node: Introduction\7f3175
+Node: What is Bash?\7f3403
+Node: What is a shell?\7f4516
+Node: Definitions\7f7056
+Node: Basic Shell Features\7f9825
+Node: Shell Syntax\7f11044
+Node: Shell Operation\7f12074
+Node: Quoting\7f13368
+Node: Escape Character\7f14671
+Node: Single Quotes\7f15156
+Node: Double Quotes\7f15504
+Node: ANSI-C Quoting\7f16629
+Node: Locale Translation\7f17585
+Node: Comments\7f18481
+Node: Shell Commands\7f19099
+Node: Simple Commands\7f19865
+Node: Pipelines\7f20496
+Node: Lists\7f22371
+Node: Compound Commands\7f24100
+Node: Looping Constructs\7f24884
+Node: Conditional Constructs\7f27331
+Node: Command Grouping\7f34891
+Node: Shell Functions\7f36370
+Node: Shell Parameters\7f40831
+Node: Positional Parameters\7f43161
+Node: Special Parameters\7f44061
+Node: Shell Expansions\7f47025
+Node: Brace Expansion\7f48950
+Node: Tilde Expansion\7f51276
+Node: Shell Parameter Expansion\7f53627
+Node: Command Substitution\7f61327
+Node: Arithmetic Expansion\7f62660
+Node: Process Substitution\7f63510
+Node: Word Splitting\7f64560
+Node: Filename Expansion\7f66183
+Node: Pattern Matching\7f68323
+Node: Quote Removal\7f71641
+Node: Redirections\7f71936
+Node: Executing Commands\7f79666
+Node: Simple Command Expansion\7f80336
+Node: Command Search and Execution\7f82266
+Node: Command Execution Environment\7f84272
+Node: Environment\7f87071
+Node: Exit Status\7f88731
+Node: Signals\7f90352
+Node: Shell Scripts\7f92320
+Node: Shell Builtin Commands\7f94838
+Node: Bourne Shell Builtins\7f96515
+Node: Bash Builtins\7f113745
+Node: Modifying Shell Behavior\7f134539
+Node: The Set Builtin\7f134884
+Node: The Shopt Builtin\7f143732
+Node: Special Builtins\7f154140
+Node: Shell Variables\7f155119
+Node: Bourne Shell Variables\7f155559
+Node: Bash Variables\7f157540
+Node: Bash Features\7f178912
+Node: Invoking Bash\7f179795
+Node: Bash Startup Files\7f185604
+Node: Interactive Shells\7f190573
+Node: What is an Interactive Shell?\7f190983
+Node: Is this Shell Interactive?\7f191632
+Node: Interactive Shell Behavior\7f192447
+Node: Bash Conditional Expressions\7f195727
+Node: Shell Arithmetic\7f199306
+Node: Aliases\7f202052
+Node: Arrays\7f204624
+Node: The Directory Stack\7f207973
+Node: Directory Stack Builtins\7f208687
+Node: Printing a Prompt\7f211579
+Node: The Restricted Shell\7f214293
+Node: Bash POSIX Mode\7f216125
+Node: Job Control\7f223884
+Node: Job Control Basics\7f224344
+Node: Job Control Builtins\7f228853
+Node: Job Control Variables\7f233180
+Node: Command Line Editing\7f234338
+Node: Introduction and Notation\7f235333
+Node: Readline Interaction\7f236955
+Node: Readline Bare Essentials\7f238146
+Node: Readline Movement Commands\7f239935
+Node: Readline Killing Commands\7f240900
+Node: Readline Arguments\7f242820
+Node: Searching\7f243864
+Node: Readline Init File\7f246050
+Node: Readline Init File Syntax\7f247197
+Node: Conditional Init Constructs\7f259766
+Node: Sample Init File\7f262299
+Node: Bindable Readline Commands\7f265416
+Node: Commands For Moving\7f266623
+Node: Commands For History\7f267484
+Node: Commands For Text\7f270639
+Node: Commands For Killing\7f273312
+Node: Numeric Arguments\7f275454
+Node: Commands For Completion\7f276593
+Node: Keyboard Macros\7f280186
+Node: Miscellaneous Commands\7f280757
+Node: Readline vi Mode\7f286068
+Node: Programmable Completion\7f286982
+Node: Programmable Completion Builtins\7f292815
+Node: Using History Interactively\7f301021
+Node: Bash History Facilities\7f301705
+Node: Bash History Builtins\7f304619
+Node: History Interaction\7f308476
+Node: Event Designators\7f311181
+Node: Word Designators\7f312196
+Node: Modifiers\7f313835
+Node: Installing Bash\7f315239
+Node: Basic Installation\7f316376
+Node: Compilers and Options\7f319068
+Node: Compiling For Multiple Architectures\7f319809
+Node: Installation Names\7f321473
+Node: Specifying the System Type\7f322291
+Node: Sharing Defaults\7f323007
+Node: Operation Controls\7f323680
+Node: Optional Features\7f324638
+Node: Reporting Bugs\7f333569
+Node: Major Differences From The Bourne Shell\7f334763
+Node: GNU Free Documentation License\7f351450
+Node: Indexes\7f373911
+Node: Builtin Index\7f374365
+Node: Reserved Word Index\7f381046
+Node: Variable Index\7f383494
+Node: Function Index\7f394799
+Node: Concept Index\7f401531
 \1f
 End Tag Table
index 23c3433b519aa56e168fb2d9cecdb53c668be0cc..d98ca0fa51b9fb67f9a1ce8a7458a2c543f890b0 100644 (file)
@@ -1,6 +1,6 @@
-This is TeX, Version 3.141592 (Web2C 7.5.4) (format=tex 2006.11.28)  4 MAR 2008 08:38
-**/Users/chet/src/bash/src/doc/bashref.texi
-(/Users/chet/src/bash/src/doc/bashref.texi (./texinfo.tex
+This is TeX, Version 3.141592 (Web2C 7.5.4) (format=tex 2008.4.8)  8 APR 2008 09:50
+**/usr/homes/chet/src/bash/src/doc/bashref.texi
+(/usr/homes/chet/src/bash/src/doc/bashref.texi (./texinfo.tex
 Loading texinfo [version 2003-02-03.16]: Basics,
 \bindingoffset=\dimen16
 \normaloffset=\dimen17
@@ -158,7 +158,7 @@ localization,
 
  [1]
 Chapter 2 [2] [3] Chapter 3 [4] [5] [6] [7] [8] [9] [10]
-Overfull \hbox (43.33539pt too wide) in paragraph at lines 840--840
+Overfull \hbox (43.33539pt too wide) in paragraph at lines 843--843
  []@texttt case @textttsl word @texttt in [ [(] @textttsl pat-tern @texttt [| @
 textttsl pat-tern@texttt ][]) @textttsl command-list @texttt ;;][] esac[][] 
 
@@ -173,7 +173,7 @@ textttsl pat-tern@texttt ][]) @textttsl command-list @texttt ;;][] esac[][]
 [11] [12] [13] [14] [15] [16] [17] [18] [19] [20] [21] [22] [23] [24] [25]
 [26] [27] [28] [29] [30] [31] [32] Chapter 4 [33] [34] [35] [36] [37] [38]
 [39] [40] [41]
-Underfull \hbox (badness 5231) in paragraph at lines 3136--3149
+Underfull \hbox (badness 5231) in paragraph at lines 3139--3152
  @texttt emacs-meta[]@textrm , @texttt emacs-ctlx[]@textrm , @texttt vi[]@textr
 m , @texttt vi-move[]@textrm , @texttt vi-command[]@textrm , and
 
@@ -186,10 +186,10 @@ m , @texttt vi-move[]@textrm , @texttt vi-command[]@textrm , and
 .etc.
 
 [42] [43] [44] [45]
-Overfull \hbox (43.33536pt too wide) in paragraph at lines 3479--3479
+Overfull \hbox (102.08961pt too wide) in paragraph at lines 3491--3491
  []@texttt read [-ers] [-a @textttsl aname@texttt ] [-d @textttsl de-lim@texttt
- ] [-n @textttsl nchars@texttt ] [-p @textttsl prompt@texttt ] [-t @textttsl ti
-me-
+ ] [-i @textttsl text@texttt ] [-n @textttsl nchars@texttt ] [-p @textttsl prom
+pt@texttt ] [-t @textttsl time-
 
 @hbox(7.60416+2.43333)x433.62
 .@glue(@leftskip) 86.72375
@@ -199,8 +199,8 @@ me-
 .@texttt a
 .etc.
 
-[46] [47] [48] [49] [50] [51] [52] [53]
-Underfull \hbox (badness 2573) in paragraph at lines 4111--4115
+[46] [47] [48] [49] [50] [51] [52] [53] [54]
+Underfull \hbox (badness 2573) in paragraph at lines 4133--4137
  [] []@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,9 +215,9 @@ Underfull \hbox (badness 2573) in paragraph at lines 4111--4115
 .@textrm E
 .etc.
 
-[54] [55] [56] Chapter 5 [57] [58] [59] [60] [61] [62] [63] [64] [65] [66]
+[55] [56] Chapter 5 [57] [58] [59] [60] [61] [62] [63] [64] [65] [66]
 Chapter 6 [67] [68]
-Overfull \hbox (51.96864pt too wide) in paragraph at lines 4928--4928
+Overfull \hbox (51.96864pt too wide) in paragraph at lines 4950--4950
  []@texttt bash [long-opt] [-ir] [-abefhkmnptuvxdBCDHP] [-o @textttsl op-tion@t
 exttt ] [-O @textttsl shopt_option@texttt ] [@textttsl ar-
 
@@ -230,7 +230,7 @@ exttt ] [-O @textttsl shopt_option@texttt ] [@textttsl ar-
 .etc.
 
 
-Overfull \hbox (76.23077pt too wide) in paragraph at lines 4929--4929
+Overfull \hbox (76.23077pt too wide) in paragraph at lines 4951--4951
  []@texttt bash [long-opt] [-abefhkmnptuvxdBCDHP] [-o @textttsl op-tion@texttt 
 ] [-O @textttsl shopt_option@texttt ] -c @textttsl string @texttt [@textttsl ar
 -
@@ -244,7 +244,7 @@ Overfull \hbox (76.23077pt too wide) in paragraph at lines 4929--4929
 .etc.
 
 
-Overfull \hbox (34.72258pt too wide) in paragraph at lines 4930--4930
+Overfull \hbox (34.72258pt too wide) in paragraph at lines 4952--4952
  []@texttt bash [long-opt] -s [-abefhkmnptuvxdBCDHP] [-o @textttsl op-tion@text
 tt ] [-O @textttsl shopt_option@texttt ] [@textttsl ar-
 
@@ -257,7 +257,7 @@ tt ] [-O @textttsl shopt_option@texttt ] [@textttsl ar-
 .etc.
 
 [69] [70]
-Underfull \hbox (badness 2245) in paragraph at lines 5104--5106
+Underfull \hbox (badness 2245) in paragraph at lines 5126--5128
 []@textrm When a lo-gin shell ex-its, Bash reads and ex-e-cutes com-mands from 
 the file
 
@@ -270,7 +270,7 @@ the file
 .etc.
 
 [71] [72] [73] [74] [75] [76] [77] [78] [79] [80] [81] [82] [83] [84]
-Underfull \hbox (badness 2521) in paragraph at lines 6220--6223
+Underfull \hbox (badness 2521) in paragraph at lines 6242--6245
 @textrm `@texttt --enable-strict-posix-default[]@textrm '[] to @texttt configur
 e[] @textrm when build-ing (see Sec-tion 10.8
 
@@ -283,9 +283,9 @@ e[] @textrm when build-ing (see Sec-tion 10.8
 .etc.
 
 Chapter 7 [85] [86] [87] [88] [89]
-(/Users/chet/src/bash/src/lib/readline/doc/rluser.texi Chapter 8 [90] [91]
-[92] [93] [94] [95]
-Underfull \hbox (badness 5231) in paragraph at lines 502--518
+(/usr/homes/chet/src/bash/src/lib/readline/doc/rluser.texi Chapter 8 [90]
+[91] [92] [93] [94] [95] [96]
+Underfull \hbox (badness 5231) in paragraph at lines 507--523
  @texttt emacs-meta[]@textrm , @texttt emacs-ctlx[]@textrm , @texttt vi[]@textr
 m , @texttt vi-move[]@textrm , @texttt vi-command[]@textrm , and
 
@@ -297,8 +297,8 @@ m , @texttt vi-move[]@textrm , @texttt vi-command[]@textrm , and
 .@texttt c
 .etc.
 
-[96] [97] [98] [99] [100]
-Overfull \hbox (26.43913pt too wide) in paragraph at lines 817--817
+[97] [98] [99] [100]
+Overfull \hbox (26.43913pt too wide) in paragraph at lines 822--822
  []@texttt Meta-Control-h: backward-kill-word Text after the function name is i
 gnored[] 
 
@@ -311,7 +311,7 @@ gnored[]
 .etc.
 
 [101] [102] [103] [104] [105] [106] [107] [108] [109] [110] [111] [112]
-Overfull \hbox (17.80585pt too wide) in paragraph at lines 1666--1666
+Overfull \hbox (17.80585pt too wide) in paragraph at lines 1671--1671
  []@texttt complete [-abcdefgjksuv] [-o @textttsl comp-option@texttt ] [-A @tex
 tttsl ac-tion@texttt ] [-G @textttsl glob-
 
@@ -324,7 +324,7 @@ tttsl ac-tion@texttt ] [-G @textttsl glob-
 .etc.
 
 [113] [114]
-Underfull \hbox (badness 2753) in paragraph at lines 1768--1771
+Underfull \hbox (badness 2753) in paragraph at lines 1773--1776
  @texttt hostname[]@textrm Hostnames, as taken from the file spec-i-fied by
 
 @hbox(7.60416+2.12917)x433.62, glue set 3.02202
@@ -335,9 +335,9 @@ Underfull \hbox (badness 2753) in paragraph at lines 1768--1771
 .@texttt o
 .etc.
 
-[115]) (/Users/chet/src/bash/src/lib/readline/doc/hsuser.texi Chapter 9
+[115]) (/usr/homes/chet/src/bash/src/lib/readline/doc/hsuser.texi Chapter 9
 [116] [117] [118] [119] [120]) Chapter 10 [121] [122] [123] [124] [125]
-Underfull \hbox (badness 2772) in paragraph at lines 6816--6820
+Underfull \hbox (badness 2772) in paragraph at lines 6838--6842
  []@textrm Enable sup-port for large files (@texttt http://www.sas.com/standard
 s/large_
 
@@ -352,7 +352,7 @@ s/large_
 [126] [127] [128] Appendix A [129] [130] Appendix B [131] [132] [133] [134]
 [135] [136] [137] Appendix C [138] (./fdl.texi [139] [140] [141] [142] [143]
 [144]) Appendix D [145] [146] (./bashref.bts) [147]
-Overfull \vbox (45.46959pt too high) has occurred while \output is active
+Overfull \vbox (45.71959pt too high) has occurred while \output is active
 \vbox(643.19986+2.0)x433.62, glue set - 1.0
 .\glue(\topskip) 26.00002
 .\vbox(9.99998+0.0)x433.62
@@ -370,14 +370,36 @@ Overfull \vbox (45.46959pt too high) has occurred while \output is active
 
 
 [148] (./bashref.rws) (./bashref.vrs [149] [150]) (./bashref.fns [151])
+Overfull \vbox (39.33694pt too high) has occurred while \output is active
+\vbox(643.19986+2.0)x433.62
+.\glue(\topskip) 0.0
+.\hbox(682.5368+2.0)x433.62, glue set 18.01016fil
+..\vbox(682.5368+0.0)x207.80492, glue set 0.01196
+...\glue(\topskip) 29.75
+...\hbox(6.25+2.0)x207.80492, glue set 20.64868fil []
+...\penalty 20000
+...\glue(\baselineskip) 2.70001
+...\hbox(5.79999+0.0)x189.30504, glue set 163.09688fill, shifted 18.49988 []
+...etc.
+..\glue 0.0 plus 1.0fil
+..\vbox(682.5368+2.0)x207.80492, glue set 0.96613
+...\glue(\splittopskip) 26.12001
+...\hbox(9.87999+0.0)x207.80492, glue set 195.63828fil []
+...\glue 3.46501 plus 1.05006
+...\penalty 10000
+...\glue 0.0 plus 1.0
+...etc.
+.\penalty 10000
+
+
 [152] (./bashref.cps [153]) [154] ) 
 Here is how much of TeX's memory you used:
  1732 strings out of 97980
- 23635 string characters out of 1221004
- 55303 words of memory out of 1000000
+ 23667 string characters out of 1221006
+ 56767 words of memory out of 1500000
  2583 multiletter control sequences out of 10000+50000
- 31953 words of font info for 111 fonts, out of 500000 for 2000
- 19 hyphenation exceptions out of 1000
- 15i,8n,11p,269b,471s stack positions out of 1500i,500n,5000p,200000b,5000s
+ 31953 words of font info for 111 fonts, out of 1200000 for 2000
+ 19 hyphenation exceptions out of 8191
+ 15i,8n,11p,273b,471s stack positions out of 5000i,500n,6000p,200000b,5000s
 
-Output written on bashref.dvi (160 pages, 613080 bytes).
+Output written on bashref.dvi (160 pages, 615548 bytes).
index 91b344ccf9d6c0df86588a7d18a631ddd1858a7a..aa77a969946e985243ea3ec4e71814a1a95b18d7 100644 (file)
Binary files a/doc/bashref.pdf and b/doc/bashref.pdf differ
index ae69104ae274d6456a782746ca108f9cbf570c84..a1b4062d9e00881a066269634dba9e03fa91c39b 100644 (file)
@@ -11,7 +11,7 @@
 %DVIPSWebPage: (www.radicaleye.com)
 %DVIPSCommandLine: dvips -D 600 -t letter -o bashref.ps bashref.dvi
 %DVIPSParameters: dpi=600
-%DVIPSSource:  TeX output 2008.03.04:0838
+%DVIPSSource:  TeX output 2008.04.08:0950
 %%BeginProcSet: tex.pro 0 0
 %!
 /TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S
@@ -4537,26 +4537,25 @@ letter
 TeXDict begin 1 0 bop 150 1318 a Fu(Bash)64 b(Reference)j(Man)-5
 b(ual)p 150 1385 3600 34 v 2361 1481 a Ft(Reference)31
 b(Do)s(cumen)m(tation)i(for)d(Bash)2428 1589 y(Edition)h(3.2,)g(for)f
-Fs(Bash)g Ft(V)-8 b(ersion)31 b(3.2.)3180 1697 y(F)-8
-b(ebruary)30 b(2008)150 4935 y Fr(Chet)45 b(Ramey)-11
-b(,)46 b(Case)g(W)-11 b(estern)46 b(Reserv)l(e)g(Univ)l(ersit)l(y)150
-5068 y(Brian)f(F)-11 b(o)l(x,)45 b(F)-11 b(ree)45 b(Soft)l(w)l(are)h(F)
--11 b(oundation)p 150 5141 3600 17 v eop end
+Fs(Bash)g Ft(V)-8 b(ersion)31 b(3.2.)3333 1697 y(April)f(2008)150
+4935 y Fr(Chet)45 b(Ramey)-11 b(,)46 b(Case)g(W)-11 b(estern)46
+b(Reserv)l(e)g(Univ)l(ersit)l(y)150 5068 y(Brian)f(F)-11
+b(o)l(x,)45 b(F)-11 b(ree)45 b(Soft)l(w)l(are)h(F)-11
+b(oundation)p 150 5141 3600 17 v eop end
 %%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.2,)c(22)f(F)-8
-b(ebruary)30 b(2008\).)150 3133 y(This)g(is)h(Edition)g(3.2,)h(last)g
-(up)s(dated)e(22)h(F)-8 b(ebruary)31 b(2008,)i(of)e Fq(The)g(GNU)g
-(Bash)g(Reference)h(Man)m(ual)p Ft(,)150 3243 y(for)e
-Fs(Bash)p Ft(,)g(V)-8 b(ersion)31 b(3.2.)150 3377 y(Cop)m(yrigh)m(t)602
-3374 y(c)577 3377 y Fp(\015)f Ft(1988{2007)35 b(F)-8
-b(ree)31 b(Soft)m(w)m(are)h(F)-8 b(oundation,)31 b(Inc.)150
-3512 y(P)m(ermission)h(is)h(gran)m(ted)g(to)f(mak)m(e)i(and)d
-(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(this)g(p)s
-(ermission)g(notice)h(are)g(preserv)m(ed)f(on)h(all)g(copies.)390
-3756 y(P)m(ermission)k(is)h(gran)m(ted)f(to)h(cop)m(y)-8
+(the)h(Bash)f(shell)h(\(v)m(ersion)150 2999 y(3.2,)c(5)e(April)h
+(2008\).)150 3133 y(This)36 b(is)g(Edition)h(3.2,)j(last)d(up)s(dated)e
+(5)i(April)g(2008,)j(of)c Fq(The)h(GNU)g(Bash)g(Reference)g(Man)m(ual)p
+Ft(,)i(for)150 3243 y Fs(Bash)p Ft(,)29 b(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{2007)35 b(F)-8 b(ree)31 b(Soft)m(w)m(are)h(F)-8
+b(oundation,)31 b(Inc.)150 3512 y(P)m(ermission)h(is)h(gran)m(ted)g(to)
+f(mak)m(e)i(and)d(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
+(this)g(p)s(ermission)g(notice)h(are)g(preserv)m(ed)f(on)h(all)g
+(copies.)390 3756 y(P)m(ermission)k(is)h(gran)m(ted)f(to)h(cop)m(y)-8
 b(,)38 b(distribute)d(and/or)g(mo)s(dify)f(this)h(do)s(cumen)m(t)g
 (under)390 3866 y(the)j(terms)g(of)g(the)g(GNU)h(F)-8
 b(ree)39 b(Do)s(cumen)m(tation)h(License,)g(V)-8 b(ersion)39
@@ -4758,7 +4757,7 @@ b Fm(.)16 b(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
 b Ft(49)748 2654 y(4.3.2)93 b(The)29 b(Shopt)h(Builtin)23
 b Fm(.)15 b(.)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(.)52
-b Ft(52)449 2764 y(4.4)92 b(Sp)s(ecial)31 b(Builtins)22
+b Ft(53)449 2764 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(57)150 3006 y Fr(5)135
@@ -4979,7 +4978,7 @@ g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)49
 b Ft(151)449 1843 y(D.5)92 b(Concept)31 b(Index)9 b Fm(.)k(.)j(.)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
-(.)38 b Ft(152)p eop end
+(.)38 b Ft(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)
@@ -5439,67 +5438,69 @@ eop end
 %%Page: 9 15
 TeXDict begin 9 14 bop 150 -116 a Ft(Chapter)30 b(3:)41
 b(Basic)32 b(Shell)e(F)-8 b(eatures)2292 b(9)150 299
-y Fk(3.2.3)63 b(Lists)41 b(of)h(Commands)275 547 y Ft(A)29
+y Fk(3.2.3)63 b(Lists)41 b(of)h(Commands)275 541 y Ft(A)29
 b Fs(list)f Ft(is)i(a)f(sequence)h(of)g(one)f(or)h(more)f(pip)s(elines)
 g(separated)h(b)m(y)f(one)h(of)f(the)h(op)s(erators)g(`)p
-Fs(;)p Ft(',)g(`)p Fs(&)p Ft(',)150 657 y(`)p Fs(&&)p
+Fs(;)p Ft(',)g(`)p Fs(&)p Ft(',)150 651 y(`)p Fs(&&)p
 Ft(',)h(or)f(`)p Fs(||)p Ft(',)g(and)g(optionally)i(terminated)f(b)m(y)
 f(one)h(of)f(`)p Fs(;)p Ft(',)h(`)p Fs(&)p Ft(',)g(or)f(a)h
-Fs(newline)p Ft(.)275 795 y(Of)23 b(these)h(list)g(op)s(erators,)i(`)p
+Fs(newline)p Ft(.)275 783 y(Of)23 b(these)h(list)g(op)s(erators,)i(`)p
 Fs(&&)p Ft(')d(and)g(`)p Fs(||)p Ft(')h(ha)m(v)m(e)h(equal)f
 (precedence,)i(follo)m(w)m(ed)f(b)m(y)f(`)p Fs(;)p Ft(')g(and)f(`)p
-Fs(&)p Ft(',)i(whic)m(h)150 905 y(ha)m(v)m(e)32 b(equal)e(precedence.)
-275 1044 y(A)f(sequence)h(of)g(one)g(or)g(more)g(newlines)f(ma)m(y)h
+Fs(&)p Ft(',)i(whic)m(h)150 893 y(ha)m(v)m(e)32 b(equal)e(precedence.)
+275 1026 y(A)f(sequence)h(of)g(one)g(or)g(more)g(newlines)f(ma)m(y)h
 (app)s(ear)f(in)h(a)g Fs(list)e Ft(to)j(delimit)f(commands,)g(equiv-)
-150 1153 y(alen)m(t)i(to)f(a)g(semicolon.)275 1292 y(If)c(a)h(command)f
+150 1135 y(alen)m(t)i(to)f(a)g(semicolon.)275 1268 y(If)c(a)h(command)f
 (is)h(terminated)g(b)m(y)g(the)g(con)m(trol)h(op)s(erator)f(`)p
 Fs(&)p Ft(',)h(the)e(shell)h(executes)h(the)f(command)150
-1401 y(async)m(hronously)g(in)h(a)g(subshell.)39 b(This)28
+1378 y(async)m(hronously)g(in)h(a)g(subshell.)39 b(This)28
 b(is)h(kno)m(wn)f(as)h(executing)h(the)f(command)g(in)f(the)h
-Fq(bac)m(kground)p Ft(.)150 1511 y(The)f(shell)h(do)s(es)f(not)h(w)m
+Fq(bac)m(kground)p Ft(.)150 1487 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
+(status)i(is)g(0)g(\(true\).)40 b(When)150 1597 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(87\),)j(the)d(standard)e(input)g(for)150 1730
+(page)e(87\),)j(the)d(standard)e(input)g(for)150 1706
 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
+1816 y Fs(/dev/null)p Ft(.)275 1949 y(Commands)19 b(separated)j(b)m(y)f
 (a)g(`)p Fs(;)p Ft(')g(are)h(executed)g(sequen)m(tially;)k(the)21
-b(shell)g(w)m(aits)h(for)f(eac)m(h)h(command)150 2088
+b(shell)g(w)m(aits)h(for)f(eac)m(h)h(command)150 2058
 y(to)31 b(terminate)h(in)e(turn.)39 b(The)30 b(return)f(status)i(is)f
 (the)h(exit)g(status)g(of)g(the)f(last)h(command)f(executed.)275
-2227 y(The)f(con)m(trol)j(op)s(erators)e(`)p Fs(&&)p
-Ft(')g(and)g(`)p Fs(||)p Ft(')g(denote)h Fl(and)e Ft(lists)i(and)f
-Fl(or)f Ft(lists,)i(resp)s(ectiv)m(ely)-8 b(.)43 b(An)30
-b Fl(and)150 2336 y Ft(list)h(has)f(the)h(form)390 2475
-y Fj(command1)56 b Fs(&&)47 b Fj(command2)150 2614 y
-Fq(command2)38 b Ft(is)30 b(executed)i(if,)e(and)g(only)g(if,)h
+2191 y Fl(and)g Ft(and)h Fl(or)g Ft(lists)h(are)g(sequences)f(of)h(one)
+g(or)f(more)h(pip)s(elines)e(separated)i(b)m(y)g(the)f(con)m(trol)i(op)
+s(er-)150 2301 y(ators)e(`)p Fs(&&)p Ft(')f(and)g(`)p
+Fs(||)p Ft(',)h(resp)s(ectiv)m(ely)-8 b(.)42 b Fl(and)30
+b Ft(and)f Fl(or)h Ft(lists)h(are)g(executed)g(with)f(left)h(asso)s
+(ciativit)m(y)-8 b(.)275 2433 y(An)30 b Fl(and)f Ft(list)i(has)f(the)h
+(form)390 2566 y Fj(command1)56 b Fs(&&)47 b Fj(command2)150
+2699 y Fq(command2)38 b Ft(is)30 b(executed)i(if,)e(and)g(only)g(if,)h
 Fq(command1)38 b Ft(returns)29 b(an)h(exit)h(status)g(of)g(zero.)275
-2752 y(An)f Fl(or)f Ft(list)i(has)f(the)h(form)390 2891
-y Fj(command1)56 b Fs(||)47 b Fj(command2)150 3030 y
+2831 y(An)f Fl(or)f Ft(list)i(has)f(the)h(form)390 2964
+y Fj(command1)56 b Fs(||)47 b Fj(command2)150 3097 y
 Fq(command2)38 b Ft(is)30 b(executed)i(if,)e(and)g(only)g(if,)h
 Fq(command1)38 b Ft(returns)29 b(a)i(non-zero)g(exit)g(status.)275
-3168 y(The)h(return)g(status)i(of)f Fl(and)f Ft(and)h
+3229 y(The)h(return)g(status)i(of)f Fl(and)f Ft(and)h
 Fl(or)f Ft(lists)i(is)f(the)g(exit)h(status)g(of)f(the)g(last)h
-(command)f(executed)150 3278 y(in)d(the)h(list.)150 3510
-y Fk(3.2.4)63 b(Comp)s(ound)42 b(Commands)275 3759 y
+(command)f(executed)150 3339 y(in)d(the)h(list.)150 3558
+y Fk(3.2.4)63 b(Comp)s(ound)42 b(Commands)275 3800 y
 Ft(Comp)s(ound)e(commands)i(are)h(the)g(shell)g(programming)f
 (constructs.)77 b(Eac)m(h)44 b(construct)e(b)s(egins)150
-3868 y(with)d(a)g(reserv)m(ed)g(w)m(ord)f(or)h(con)m(trol)h(op)s
+3910 y(with)d(a)g(reserv)m(ed)g(w)m(ord)f(or)h(con)m(trol)h(op)s
 (erator)f(and)g(is)g(terminated)g(b)m(y)g(a)g(corresp)s(onding)f
-(reserv)m(ed)150 3978 y(w)m(ord)k(or)h(op)s(erator.)77
+(reserv)m(ed)150 4019 y(w)m(ord)k(or)h(op)s(erator.)77
 b(An)m(y)42 b(redirections)h(\(see)h(Section)f(3.6)h([Redirections],)j
-(page)c(25\))g(asso)s(ciated)150 4087 y(with)26 b(a)g(comp)s(ound)f
+(page)c(25\))g(asso)s(ciated)150 4129 y(with)26 b(a)g(comp)s(ound)f
 (command)h(apply)g(to)h(all)g(commands)f(within)f(that)i(comp)s(ound)e
-(command)h(unless)150 4197 y(explicitly)32 b(o)m(v)m(erridden.)275
-4336 y(Bash)45 b(pro)m(vides)h(lo)s(oping)g(constructs,)j(conditional)e
+(command)h(unless)150 4239 y(explicitly)32 b(o)m(v)m(erridden.)275
+4371 y(Bash)45 b(pro)m(vides)h(lo)s(oping)g(constructs,)j(conditional)e
 (commands,)j(and)44 b(mec)m(hanisms)i(to)g(group)150
-4445 y(commands)30 b(and)g(execute)i(them)e(as)g(a)h(unit.)150
-4678 y Fk(3.2.4.1)63 b(Lo)s(oping)43 b(Constructs)275
-4926 y Ft(Bash)30 b(supp)s(orts)f(the)h(follo)m(wing)i(lo)s(oping)f
-(constructs.)275 5065 y(Note)k(that)f(wherev)m(er)g(a)g(`)p
+4481 y(commands)30 b(and)g(execute)i(them)e(as)g(a)h(unit.)150
+4700 y Fk(3.2.4.1)63 b(Lo)s(oping)43 b(Constructs)275
+4942 y Ft(Bash)30 b(supp)s(orts)f(the)h(follo)m(wing)i(lo)s(oping)f
+(constructs.)275 5075 y(Note)k(that)f(wherev)m(er)g(a)g(`)p
 Fs(;)p Ft(')g(app)s(ears)f(in)h(the)g(description)g(of)g(a)g(command's)
-g(syn)m(tax,)i(it)e(ma)m(y)h(b)s(e)150 5174 y(replaced)c(with)f(one)h
+g(syn)m(tax,)i(it)e(ma)m(y)h(b)s(e)150 5184 y(replaced)c(with)f(one)h
 (or)f(more)g(newlines.)150 5340 y Fs(until)240 b Ft(The)30
 b(syn)m(tax)h(of)f(the)h Fs(until)e Ft(command)h(is:)p
 eop end
@@ -7933,957 +7934,975 @@ Fq(shell-builtin)f Ft(is)g(not)h(a)g(shell)f(builtin)g(command.)150
 %%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
+b([)p Fj(expr)11 b Fs(])630 434 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
-Ft(or)g Fs(source)f Ft(builtins\).)630 685 y(Without)45
+(or)h(a)g(script)630 544 y(executed)c(with)f(the)h Fs(.)f
+Ft(or)g Fs(source)f Ft(builtins\).)630 679 y(Without)45
 b Fq(expr)p Ft(,)j Fs(caller)43 b Ft(displa)m(ys)i(the)f(line)h(n)m(um)
-m(b)s(er)f(and)g(source)g(\014lename)h(of)g(the)630 795
+m(b)s(er)f(and)g(source)g(\014lename)h(of)g(the)630 789
 y(curren)m(t)35 b(subroutine)g(call.)58 b(If)35 b(a)h(non-negativ)m(e)i
 (in)m(teger)f(is)f(supplied)e(as)i Fq(expr)p Ft(,)h Fs(caller)630
-905 y Ft(displa)m(ys)k(the)f(line)h(n)m(um)m(b)s(er,)h(subroutine)d
+898 y Ft(displa)m(ys)k(the)f(line)h(n)m(um)m(b)s(er,)h(subroutine)d
 (name,)44 b(and)c(source)g(\014le)h(corresp)s(onding)e(to)630
-1014 y(that)c(p)s(osition)g(in)f(the)h(curren)m(t)f(execution)i(call)g
+1008 y(that)c(p)s(osition)g(in)f(the)h(curren)m(t)f(execution)i(call)g
 (stac)m(k.)54 b(This)34 b(extra)h(information)g(ma)m(y)630
-1124 y(b)s(e)30 b(used,)g(for)g(example,)h(to)g(prin)m(t)f(a)h(stac)m
+1118 y(b)s(e)30 b(used,)g(for)g(example,)h(to)g(prin)m(t)f(a)h(stac)m
 (k)h(trace.)42 b(The)29 b(curren)m(t)i(frame)f(is)g(frame)h(0.)630
-1262 y(The)e(return)f(v)-5 b(alue)29 b(is)h(0)f(unless)g(the)g(shell)g
+1253 y(The)e(return)f(v)-5 b(alue)29 b(is)h(0)f(unless)g(the)g(shell)g
 (is)h(not)f(executing)h(a)g(subroutine)e(call)i(or)g
-Fq(expr)630 1372 y Ft(do)s(es)g(not)h(corresp)s(ond)e(to)i(a)g(v)-5
+Fq(expr)630 1363 y Ft(do)s(es)g(not)h(corresp)s(ond)e(to)i(a)g(v)-5
 b(alid)30 b(p)s(osition)h(in)f(the)g(call)i(stac)m(k.)150
-1539 y Fs(command)870 1677 y(command)46 b([-pVv])g Fj(command)56
-b Fs([)p Fj(arguments)g Fs(...)o(])630 1816 y Ft(Runs)32
+1524 y Fs(command)870 1659 y(command)46 b([-pVv])g Fj(command)56
+b Fs([)p Fj(arguments)g Fs(...)o(])630 1794 y Ft(Runs)32
 b Fq(command)k Ft(with)d Fq(argumen)m(ts)k Ft(ignoring)c(an)m(y)g
-(shell)h(function)e(named)h Fq(command)p Ft(.)630 1925
+(shell)h(function)e(named)h Fq(command)p Ft(.)630 1904
 y(Only)39 b(shell)i(builtin)e(commands)h(or)g(commands)f(found)g(b)m(y)
-h(searc)m(hing)h(the)f Fs(PATH)f Ft(are)630 2035 y(executed.)g(If)23
+h(searc)m(hing)h(the)f Fs(PATH)f Ft(are)630 2014 y(executed.)g(If)23
 b(there)h(is)f(a)h(shell)f(function)g(named)g Fs(ls)p
 Ft(,)i(running)c(`)p Fs(command)29 b(ls)p Ft(')23 b(within)g(the)630
-2145 y(function)33 b(will)g(execute)i(the)f(external)g(command)f
+2123 y(function)33 b(will)g(execute)i(the)f(external)g(command)f
 Fs(ls)f Ft(instead)i(of)f(calling)i(the)e(function)630
-2254 y(recursiv)m(ely)-8 b(.)84 b(The)44 b(`)p Fs(-p)p
+2233 y(recursiv)m(ely)-8 b(.)84 b(The)44 b(`)p Fs(-p)p
 Ft(')h(option)g(means)f(to)h(use)g(a)f(default)h(v)-5
-b(alue)45 b(for)f Fs(PATH)g Ft(that)h(is)630 2364 y(guaran)m(teed)35
+b(alue)45 b(for)f Fs(PATH)g Ft(that)h(is)630 2342 y(guaran)m(teed)35
 b(to)f(\014nd)e(all)j(of)f(the)g(standard)f(utilities.)52
-b(The)33 b(return)g(status)h(in)f(this)h(case)630 2473
+b(The)33 b(return)g(status)h(in)f(this)h(case)630 2452
 y(is)29 b(127)g(if)g Fq(command)j Ft(cannot)d(b)s(e)e(found)h(or)g(an)g
 (error)h(o)s(ccurred,)f(and)g(the)h(exit)g(status)g(of)630
-2583 y Fq(command)34 b Ft(otherwise.)630 2721 y(If)25
+2562 y Fq(command)34 b Ft(otherwise.)630 2697 y(If)25
 b(either)g(the)h(`)p Fs(-V)p Ft(')f(or)g(`)p Fs(-v)p
 Ft(')g(option)g(is)g(supplied,)h(a)f(description)g(of)h
-Fq(command)i Ft(is)d(prin)m(ted.)630 2831 y(The)i(`)p
+Fq(command)i Ft(is)d(prin)m(ted.)630 2807 y(The)i(`)p
 Fs(-v)p Ft(')h(option)h(causes)f(a)h(single)f(w)m(ord)g(indicating)h
-(the)f(command)g(or)g(\014le)g(name)g(used)630 2941 y(to)36
+(the)f(command)g(or)g(\014le)g(name)g(used)630 2916 y(to)36
 b(in)m(v)m(ok)m(e)g Fq(command)j Ft(to)c(b)s(e)g(displa)m(y)m(ed;)j
 (the)d(`)p Fs(-V)p Ft(')g(option)g(pro)s(duces)e(a)j(more)f(v)m(erb)s
-(ose)630 3050 y(description.)61 b(In)36 b(this)h(case,)j(the)e(return)e
+(ose)630 3026 y(description.)61 b(In)36 b(this)h(case,)j(the)e(return)e
 (status)h(is)g(zero)h(if)f Fq(command)k Ft(is)c(found,)h(and)630
-3160 y(non-zero)31 b(if)f(not.)150 3327 y Fs(declare)870
-3465 y(declare)46 b([-afFirtx])f([-p])h([)p Fj(name)11
-b Fs([=)p Fj(value)g Fs(])44 b(...)o(])630 3604 y Ft(Declare)29
+3135 y(non-zero)31 b(if)f(not.)150 3296 y Fs(declare)870
+3432 y(declare)46 b([-afFirtx])f([-p])h([)p Fj(name)11
+b Fs([=)p Fj(value)g Fs(])44 b(...)o(])630 3567 y Ft(Declare)29
 b(v)-5 b(ariables)28 b(and)e(giv)m(e)j(them)e(attributes.)40
 b(If)27 b(no)g Fq(name)5 b Ft(s)27 b(are)h(giv)m(en,)h(then)e(displa)m
-(y)630 3713 y(the)k(v)-5 b(alues)30 b(of)h(v)-5 b(ariables)31
-b(instead.)630 3852 y(The)d(`)p Fs(-p)p Ft(')g(option)g(will)h(displa)m
+(y)630 3677 y(the)k(v)-5 b(alues)30 b(of)h(v)-5 b(ariables)31
+b(instead.)630 3812 y(The)d(`)p Fs(-p)p Ft(')g(option)g(will)h(displa)m
 (y)f(the)h(attributes)f(and)g(v)-5 b(alues)28 b(of)h(eac)m(h)g
-Fq(name)p Ft(.)40 b(When)28 b(`)p Fs(-p)p Ft(')630 3961
-y(is)40 b(used,)i(additional)f(options)f(are)h(ignored.)69
-b(The)40 b(`)p Fs(-F)p Ft(')g(option)g(inhibits)g(the)g(displa)m(y)630
-4071 y(of)c(function)h(de\014nitions;)i(only)d(the)h(function)f(name)g
-(and)g(attributes)h(are)f(prin)m(ted.)58 b(If)630 4181
-y(the)28 b Fs(extdebug)d Ft(shell)j(option)g(is)g(enabled)f(using)h
-Fs(shopt)e Ft(\(see)i(Section)h(4.3.2)g([The)f(Shopt)630
-4290 y(Builtin],)43 b(page)e(53\),)j(the)c(source)g(\014le)g(name)g
-(and)g(line)g(n)m(um)m(b)s(er)f(where)g(the)h(function)630
-4400 y(is)d(de\014ned)g(are)h(displa)m(y)m(ed)g(as)f(w)m(ell.)63
-b(`)p Fs(-F)p Ft(')38 b(implies)f(`)p Fs(-f)p Ft('.)62
-b(The)37 b(follo)m(wing)i(options)f(can)630 4509 y(b)s(e)33
-b(used)h(to)h(restrict)f(output)g(to)h(v)-5 b(ariables)35
-b(with)e(the)i(sp)s(eci\014ed)e(attributes)i(or)f(to)g(giv)m(e)630
-4619 y(v)-5 b(ariables)31 b(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(78\).)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(76\))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
+Fq(name)p Ft(.)40 b(When)28 b(`)p Fs(-p)p Ft(')630 3922
+y(is)i(used)g(with)g Fq(name)36 b Ft(argumen)m(ts,)31
+b(additional)g(options)f(are)h(ignored.)630 4057 y(When)36
+b(`)p Fs(-p)p Ft(')f(is)h(supplied)f(without)h Fq(name)41
+b Ft(argumen)m(ts,)d Fs(declare)c Ft(will)i(displa)m(y)g(the)g(at-)630
+4167 y(tributes)31 b(and)f(v)-5 b(alues)31 b(of)g(all)h(v)-5
+b(ariables)31 b(ha)m(ving)h(the)f(attributes)g(sp)s(eci\014ed)f(b)m(y)h
+(the)g(addi-)630 4276 y(tional)h(options.)41 b(If)30
+b(no)g(other)h(options)g(are)g(supplied)e(with)h(`)p
+Fs(-p)p Ft(',)g Fs(declare)f Ft(will)i(displa)m(y)630
+4386 y(the)f(attributes)g(and)e(v)-5 b(alues)30 b(of)g(all)g(shell)g(v)
+-5 b(ariables.)41 b(The)29 b(`)p Fs(-f)p Ft(')g(option)h(will)g
+(restrict)g(the)630 4495 y(displa)m(y)h(to)g(shell)f(functions.)630
+4631 y(The)36 b(`)p Fs(-F)p Ft(')h(option)g(inhibits)f(the)h(displa)m
+(y)g(of)g(function)g(de\014nitions;)i(only)e(the)g(function)630
+4740 y(name)30 b(and)f(attributes)i(are)f(prin)m(ted.)40
+b(If)30 b(the)g Fs(extdebug)e Ft(shell)i(option)g(is)g(enabled)g(using)
+630 4850 y Fs(shopt)24 b Ft(\(see)i(Section)g(4.3.2)i([The)d(Shopt)f
+(Builtin],)k(page)e(53\),)i(the)d(source)h(\014le)f(name)h(and)630
+4960 y(line)38 b(n)m(um)m(b)s(er)e(where)i(the)g(function)f(is)h
+(de\014ned)e(are)i(displa)m(y)m(ed)h(as)e(w)m(ell.)64
+b(`)p Fs(-F)p Ft(')38 b(implies)630 5069 y(`)p Fs(-f)p
+Ft('.)i(The)28 b(follo)m(wing)i(options)f(can)f(b)s(e)g(used)g(to)h
+(restrict)g(output)f(to)h(v)-5 b(ariables)30 b(with)e(the)630
+5179 y(sp)s(eci\014ed)i(attributes)h(or)f(to)h(giv)m(e)h(v)-5
+b(ariables)31 b(attributes:)630 5340 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(78\).)p
+eop end
 %%Page: 44 50
 TeXDict begin 44 49 bop 150 -116 a Ft(44)2572 b(Bash)31
-b(Reference)g(Man)m(ual)630 299 y 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
-408 y(b)m(y)30 b(subsequen)m(t)g(assignmen)m(t)h(statemen)m(ts)h(or)f
-(unset.)630 569 y Fs(-t)384 b Ft(Giv)m(e)33 b(eac)m(h)h
-Fq(name)j Ft(the)32 b Fs(trace)f Ft(attribute.)46 b(T)-8
-b(raced)32 b(functions)g(inherit)g(the)1110 679 y Fs(DEBUG)26
-b Ft(and)h Fs(RETURN)f Ft(traps)h(from)g(the)h(calling)h(shell.)40
-b(The)27 b(trace)i(attribute)1110 788 y(has)h(no)g(sp)s(ecial)h
-(meaning)g(for)f(v)-5 b(ariables.)630 949 y Fs(-x)384
-b Ft(Mark)30 b(eac)m(h)h Fq(name)k Ft(for)29 b(exp)s(ort)h(to)g
-(subsequen)m(t)f(commands)h(via)g(the)g(en)m(vi-)1110
-1059 y(ronmen)m(t.)630 1219 y(Using)e(`)p Fs(+)p Ft(')h(instead)f(of)g
+b(Reference)g(Man)m(ual)630 299 y Fs(-f)384 b Ft(Use)31
+b(function)f(names)g(only)-8 b(.)630 455 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
+565 y(\(see)29 b(Section)f(6.5)h([Shell)f(Arithmetic],)i(page)e(76\))h
+(is)f(p)s(erformed)e(when)h(the)1110 675 y(v)-5 b(ariable)31
+b(is)g(assigned)f(a)h(v)-5 b(alue.)630 831 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 941 y(b)m(y)30 b(subsequen)m(t)g(assignmen)m(t)h(statemen)
+m(ts)h(or)f(unset.)630 1097 y Fs(-t)384 b Ft(Giv)m(e)33
+b(eac)m(h)h Fq(name)j Ft(the)32 b Fs(trace)f Ft(attribute.)46
+b(T)-8 b(raced)32 b(functions)g(inherit)g(the)1110 1207
+y Fs(DEBUG)26 b Ft(and)h Fs(RETURN)f Ft(traps)h(from)g(the)h(calling)h
+(shell.)40 b(The)27 b(trace)i(attribute)1110 1316 y(has)h(no)g(sp)s
+(ecial)h(meaning)g(for)f(v)-5 b(ariables.)630 1473 y
+Fs(-x)384 b Ft(Mark)30 b(eac)m(h)h Fq(name)k Ft(for)29
+b(exp)s(ort)h(to)g(subsequen)m(t)f(commands)h(via)g(the)g(en)m(vi-)1110
+1583 y(ronmen)m(t.)630 1739 y(Using)e(`)p Fs(+)p Ft(')h(instead)f(of)g
 (`)p Fs(-)p Ft(')g(turns)f(o\013)i(the)f(attribute)h(instead,)g(with)f
-(the)g(exceptions)h(that)630 1329 y(`)p Fs(+a)p Ft(')h(ma)m(y)h(not)f
+(the)g(exceptions)h(that)630 1849 y(`)p Fs(+a)p Ft(')h(ma)m(y)h(not)f
 (b)s(e)f(used)g(to)i(destro)m(y)g(an)f(arra)m(y)g(v)-5
 b(ariable)31 b(and)f(`)p Fs(+r)p Ft(')g(will)g(not)g(remo)m(v)m(e)i
-(the)630 1439 y(readonly)e(attribute.)41 b(When)30 b(used)f(in)g(a)h
+(the)630 1958 y(readonly)e(attribute.)41 b(When)30 b(used)f(in)g(a)h
 (function,)g Fs(declare)e Ft(mak)m(es)j(eac)m(h)f Fq(name)35
-b Ft(lo)s(cal,)630 1548 y(as)24 b(with)g(the)g Fs(local)e
+b Ft(lo)s(cal,)630 2068 y(as)24 b(with)g(the)g Fs(local)e
 Ft(command.)39 b(If)23 b(a)i(v)-5 b(ariable)24 b(name)g(is)g(follo)m(w)
 m(ed)i(b)m(y)e(=)p Fq(v)-5 b(alue)p Ft(,)25 b(the)f(v)-5
-b(alue)630 1658 y(of)31 b(the)f(v)-5 b(ariable)31 b(is)g(set)g(to)g
-Fq(v)-5 b(alue)p Ft(.)630 1793 y(The)35 b(return)f(status)i(is)g(zero)g
+b(alue)630 2178 y(of)31 b(the)f(v)-5 b(ariable)31 b(is)g(set)g(to)g
+Fq(v)-5 b(alue)p Ft(.)630 2311 y(The)35 b(return)f(status)i(is)g(zero)g
 (unless)f(an)g(in)m(v)-5 b(alid)36 b(option)g(is)g(encoun)m(tered,)h
-(an)f(attempt)630 1903 y(is)c(made)g(to)g(de\014ne)f(a)h(function)g
+(an)f(attempt)630 2420 y(is)c(made)g(to)g(de\014ne)f(a)h(function)g
 (using)f(`)p Fs(-f)f(foo=bar)p Ft(',)h(an)h(attempt)g(is)g(made)g(to)h
-(assign)630 2012 y(a)42 b(v)-5 b(alue)43 b(to)g(a)f(readonly)g(v)-5
+(assign)630 2530 y(a)42 b(v)-5 b(alue)43 b(to)g(a)f(readonly)g(v)-5
 b(ariable,)47 b(an)42 b(attempt)h(is)f(made)g(to)h(assign)f(a)h(v)-5
-b(alue)42 b(to)h(an)630 2122 y(arra)m(y)30 b(v)-5 b(ariable)30
+b(alue)42 b(to)h(an)630 2639 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 2231 y([Arra)m(ys],)47 b(page)c(78\),)48
+(\(see)h(Section)f(6.7)630 2749 y([Arra)m(ys],)47 b(page)c(78\),)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
-2341 y(attempt)28 b(is)f(made)h(to)f(turn)f(o\013)i(readonly)f(status)g
+2859 y(attempt)28 b(is)f(made)h(to)f(turn)f(o\013)i(readonly)f(status)g
 (for)g(a)h(readonly)f(v)-5 b(ariable,)29 b(an)e(attempt)630
-2450 y(is)h(made)h(to)g(turn)e(o\013)i(arra)m(y)f(status)h(for)f(an)g
+2968 y(is)h(made)h(to)g(turn)e(o\013)i(arra)m(y)f(status)h(for)f(an)g
 (arra)m(y)h(v)-5 b(ariable,)30 b(or)e(an)g(attempt)i(is)e(made)g(to)630
-2560 y(displa)m(y)j(a)f(non-existen)m(t)i(function)e(with)g(`)p
-Fs(-f)p Ft('.)150 2721 y Fs(echo)870 2856 y(echo)47 b([-neE])f([)p
-Fj(arg)57 b Fs(...)o(])630 2991 y Ft(Output)31 b(the)i
+3078 y(displa)m(y)j(a)f(non-existen)m(t)i(function)e(with)g(`)p
+Fs(-f)p Ft('.)150 3234 y Fs(echo)870 3367 y(echo)47 b([-neE])f([)p
+Fj(arg)57 b Fs(...)o(])630 3500 y Ft(Output)31 b(the)i
 Fq(arg)8 b Ft(s,)33 b(separated)g(b)m(y)g(spaces,)g(terminated)g(with)f
-(a)h(newline.)47 b(The)32 b(return)630 3101 y(status)40
+(a)h(newline.)47 b(The)32 b(return)630 3610 y(status)40
 b(is)g(alw)m(a)m(ys)h(0.)69 b(If)39 b(`)p Fs(-n)p Ft(')h(is)f(sp)s
 (eci\014ed,)j(the)e(trailing)h(newline)e(is)h(suppressed.)66
-b(If)630 3210 y(the)29 b(`)p Fs(-e)p Ft(')g(option)g(is)h(giv)m(en,)g
+b(If)630 3720 y(the)29 b(`)p Fs(-e)p Ft(')g(option)g(is)h(giv)m(en,)g
 (in)m(terpretation)g(of)g(the)f(follo)m(wing)h(bac)m(kslash-escap)s(ed)
-g(c)m(har-)630 3320 y(acters)38 b(is)f(enabled.)60 b(The)36
+g(c)m(har-)630 3829 y(acters)38 b(is)f(enabled.)60 b(The)36
 b(`)p Fs(-E)p Ft(')h(option)g(disables)g(the)g(in)m(terpretation)h(of)f
-(these)g(escap)s(e)630 3429 y(c)m(haracters,)h(ev)m(en)d(on)g(systems)g
+(these)g(escap)s(e)630 3939 y(c)m(haracters,)h(ev)m(en)d(on)g(systems)g
 (where)f(they)h(are)g(in)m(terpreted)h(b)m(y)e(default.)55
-b(The)34 b Fs(xpg_)630 3539 y(echo)d Ft(shell)h(option)h(ma)m(y)g(b)s
+b(The)34 b Fs(xpg_)630 4048 y(echo)d Ft(shell)h(option)h(ma)m(y)g(b)s
 (e)e(used)h(to)h(dynamically)g(determine)f(whether)f(or)i(not)f
-Fs(echo)630 3649 y Ft(expands)39 b(these)i(escap)s(e)g(c)m(haracters)g
+Fs(echo)630 4158 y Ft(expands)39 b(these)i(escap)s(e)g(c)m(haracters)g
 (b)m(y)g(default.)70 b Fs(echo)39 b Ft(do)s(es)h(not)g(in)m(terpret)h
-(`)p Fs(--)p Ft(')f(to)630 3758 y(mean)30 b(the)h(end)f(of)g(options.)
-630 3893 y Fs(echo)f Ft(in)m(terprets)i(the)f(follo)m(wing)i(escap)s(e)
-f(sequences:)630 4054 y Fs(\\a)384 b Ft(alert)31 b(\(b)s(ell\))630
-4215 y Fs(\\b)384 b Ft(bac)m(kspace)630 4376 y Fs(\\c)g
-Ft(suppress)28 b(trailing)k(newline)630 4536 y Fs(\\e)384
-b Ft(escap)s(e)630 4697 y Fs(\\f)g Ft(form)30 b(feed)630
-4858 y Fs(\\n)384 b Ft(new)30 b(line)630 5019 y Fs(\\r)384
-b Ft(carriage)32 b(return)630 5179 y Fs(\\t)384 b Ft(horizon)m(tal)32
-b(tab)630 5340 y Fs(\\v)384 b Ft(v)m(ertical)32 b(tab)p
-eop end
+(`)p Fs(--)p Ft(')f(to)630 4268 y(mean)30 b(the)h(end)f(of)g(options.)
+630 4401 y Fs(echo)f Ft(in)m(terprets)i(the)f(follo)m(wing)i(escap)s(e)
+f(sequences:)630 4557 y Fs(\\a)384 b Ft(alert)31 b(\(b)s(ell\))630
+4714 y Fs(\\b)384 b Ft(bac)m(kspace)630 4870 y Fs(\\c)g
+Ft(suppress)28 b(trailing)k(newline)630 5027 y Fs(\\e)384
+b Ft(escap)s(e)630 5183 y Fs(\\f)g Ft(form)30 b(feed)630
+5340 y Fs(\\n)384 b Ft(new)30 b(line)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(\\\\)384
-b Ft(bac)m(kslash)630 454 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
-564 y(three)e(o)s(ctal)g(digits\))630 719 y Fs(\\x)p
-Fj(HH)288 b Ft(the)40 b(eigh)m(t-bit)h(c)m(haracter)g(whose)e(v)-5
-b(alue)39 b(is)h(the)f(hexadecimal)i(v)-5 b(alue)40 b
-Fq(HH)1110 829 y Ft(\(one)31 b(or)f(t)m(w)m(o)i(hex)e(digits\))150
-984 y Fs(enable)870 1116 y(enable)46 b([-a])h([-dnps])f([-f)g
-Fj(filename)11 b Fs(])45 b([)p Fj(name)57 b Fs(...)o(])630
-1249 y Ft(Enable)36 b(and)f(disable)h(builtin)g(shell)g(commands.)56
+b(Shell)30 b(Builtin)h(Commands)2069 b(45)630 299 y Fs(\\r)384
+b Ft(carriage)32 b(return)630 459 y Fs(\\t)384 b Ft(horizon)m(tal)32
+b(tab)630 619 y Fs(\\v)384 b Ft(v)m(ertical)32 b(tab)630
+779 y Fs(\\\\)384 b Ft(bac)m(kslash)630 940 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 1049 y(three)e(o)s(ctal)g(digits\))630
+1209 y Fs(\\x)p Fj(HH)288 b Ft(the)40 b(eigh)m(t-bit)h(c)m(haracter)g
+(whose)e(v)-5 b(alue)39 b(is)h(the)f(hexadecimal)i(v)-5
+b(alue)40 b Fq(HH)1110 1319 y Ft(\(one)31 b(or)f(t)m(w)m(o)i(hex)e
+(digits\))150 1479 y Fs(enable)870 1614 y(enable)46 b([-a])h([-dnps])f
+([-f)g Fj(filename)11 b Fs(])45 b([)p Fj(name)57 b Fs(...)o(])630
+1749 y Ft(Enable)36 b(and)f(disable)h(builtin)g(shell)g(commands.)56
 b(Disabling)37 b(a)g(builtin)e(allo)m(ws)i(a)f(disk)630
-1358 y(command)e(whic)m(h)g(has)g(the)g(same)h(name)f(as)h(a)f(shell)h
-(builtin)e(to)i(b)s(e)f(executed)h(without)630 1468 y(sp)s(ecifying)27
+1858 y(command)e(whic)m(h)g(has)g(the)g(same)h(name)f(as)h(a)f(shell)h
+(builtin)e(to)i(b)s(e)f(executed)h(without)630 1968 y(sp)s(ecifying)27
 b(a)g(full)g(pathname,)g(ev)m(en)h(though)f(the)g(shell)g(normally)g
-(searc)m(hes)h(for)f(builtins)630 1577 y(b)s(efore)32
+(searc)m(hes)h(for)f(builtins)630 2078 y(b)s(efore)32
 b(disk)f(commands.)46 b(If)31 b(`)p Fs(-n)p Ft(')h(is)g(used,)g(the)g
 Fq(name)5 b Ft(s)32 b(b)s(ecome)h(disabled.)45 b(Otherwise)630
-1687 y Fq(name)5 b Ft(s)44 b(are)h(enabled.)82 b(F)-8
+2187 y Fq(name)5 b Ft(s)44 b(are)h(enabled.)82 b(F)-8
 b(or)45 b(example,)k(to)c(use)f(the)g Fs(test)f Ft(binary)h(found)f
-(via)h Fs($PATH)630 1797 y Ft(instead)31 b(of)f(the)h(shell)f(builtin)g
+(via)h Fs($PATH)630 2297 y Ft(instead)31 b(of)f(the)h(shell)f(builtin)g
 (v)m(ersion,)h(t)m(yp)s(e)g(`)p Fs(enable)e(-n)h(test)p
-Ft('.)630 1929 y(If)42 b(the)h(`)p Fs(-p)p Ft(')f(option)h(is)f
+Ft('.)630 2432 y(If)42 b(the)h(`)p Fs(-p)p Ft(')f(option)h(is)f
 (supplied,)j(or)d(no)h Fq(name)k Ft(argumen)m(ts)c(app)s(ear,)i(a)e
-(list)g(of)g(shell)630 2039 y(builtins)37 b(is)h(prin)m(ted.)63
+(list)g(of)g(shell)630 2541 y(builtins)37 b(is)h(prin)m(ted.)63
 b(With)38 b(no)f(other)h(argumen)m(ts,)j(the)d(list)g(consists)g(of)g
-(all)h(enabled)630 2148 y(shell)33 b(builtins.)46 b(The)32
+(all)h(enabled)630 2651 y(shell)33 b(builtins.)46 b(The)32
 b(`)p Fs(-a)p Ft(')h(option)g(means)f(to)i(list)f(eac)m(h)h(builtin)e
-(with)g(an)g(indication)i(of)630 2258 y(whether)c(or)g(not)h(it)g(is)f
-(enabled.)630 2390 y(The)40 b(`)p Fs(-f)p Ft(')g(option)g(means)g(to)h
+(with)g(an)g(indication)i(of)630 2760 y(whether)c(or)g(not)h(it)g(is)f
+(enabled.)630 2895 y(The)40 b(`)p Fs(-f)p Ft(')g(option)g(means)g(to)h
 (load)g(the)f(new)f(builtin)h(command)g Fq(name)45 b
-Ft(from)40 b(shared)630 2500 y(ob)5 b(ject)27 b Fq(\014lename)p
+Ft(from)40 b(shared)630 3005 y(ob)5 b(ject)27 b Fq(\014lename)p
 Ft(,)g(on)f(systems)g(that)h(supp)s(ort)d(dynamic)i(loading.)40
-b(The)26 b(`)p Fs(-d)p Ft(')g(option)h(will)630 2609
+b(The)26 b(`)p Fs(-d)p Ft(')g(option)h(will)630 3114
 y(delete)32 b(a)e(builtin)g(loaded)h(with)f(`)p Fs(-f)p
-Ft('.)630 2742 y(If)h(there)g(are)g(no)g(options,)h(a)f(list)h(of)f
+Ft('.)630 3249 y(If)h(there)g(are)g(no)g(options,)h(a)f(list)h(of)f
 (the)g(shell)g(builtins)g(is)g(displa)m(y)m(ed.)43 b(The)31
-b(`)p Fs(-s)p Ft(')f(option)630 2851 y(restricts)f Fs(enable)e
+b(`)p Fs(-s)p Ft(')f(option)630 3359 y(restricts)f Fs(enable)e
 Ft(to)i(the)f Fl(posix)g Ft(sp)s(ecial)h(builtins.)40
 b(If)27 b(`)p Fs(-s)p Ft(')i(is)f(used)g(with)g(`)p Fs(-f)p
-Ft(',)h(the)f(new)630 2961 y(builtin)i(b)s(ecomes)h(a)f(sp)s(ecial)h
+Ft(',)h(the)f(new)630 3469 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
-(57\).)630 3093 y(The)26 b(return)f(status)h(is)g(zero)h(unless)e(a)i
+(57\).)630 3603 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 3203 y(loading)31 b(a)g(new)f(builtin)g(from)g(a)g(shared)g
-(ob)5 b(ject.)150 3358 y Fs(help)870 3491 y(help)47 b([-s])f([)p
-Fj(pattern)11 b Fs(])630 3623 y Ft(Displa)m(y)40 b(helpful)e
+(error)630 3713 y(loading)31 b(a)g(new)f(builtin)g(from)g(a)g(shared)g
+(ob)5 b(ject.)150 3873 y Fs(help)870 4008 y(help)47 b([-s])f([)p
+Fj(pattern)11 b Fs(])630 4143 y Ft(Displa)m(y)40 b(helpful)e
 (information)h(ab)s(out)g(builtin)f(commands.)66 b(If)38
-b Fq(pattern)h Ft(is)g(sp)s(eci\014ed,)630 3733 y Fs(help)28
+b Fq(pattern)h Ft(is)g(sp)s(eci\014ed,)630 4253 y Fs(help)28
 b Ft(giv)m(es)i(detailed)g(help)e(on)h(all)h(commands)e(matc)m(hing)i
-Fq(pattern)p Ft(,)g(otherwise)f(a)g(list)h(of)630 3842
+Fq(pattern)p Ft(,)g(otherwise)f(a)g(list)h(of)630 4362
 y(the)36 b(builtins)f(is)h(prin)m(ted.)56 b(The)35 b(`)p
 Fs(-s)p Ft(')h(option)g(restricts)g(the)g(information)g(displa)m(y)m
-(ed)g(to)630 3952 y(a)c(short)g(usage)h(synopsis.)44
+(ed)g(to)630 4472 y(a)c(short)g(usage)h(synopsis.)44
 b(The)32 b(return)f(status)h(is)g(zero)h(unless)e(no)h(command)g(matc)m
-(hes)630 4061 y Fq(pattern)p Ft(.)150 4217 y Fs(let)870
-4349 y(let)47 b Fj(expression)55 b Fs([)p Fj(expression)11
-b Fs(])630 4482 y Ft(The)41 b Fs(let)g Ft(builtin)g(allo)m(ws)i
+(hes)630 4581 y Fq(pattern)p Ft(.)150 4741 y Fs(let)870
+4876 y(let)47 b Fj(expression)55 b Fs([)p Fj(expression)11
+b Fs(])630 5011 y Ft(The)41 b Fs(let)g Ft(builtin)g(allo)m(ws)i
 (arithmetic)f(to)h(b)s(e)d(p)s(erformed)g(on)i(shell)g(v)-5
-b(ariables.)74 b(Eac)m(h)630 4591 y Fq(expression)31
+b(ariables.)74 b(Eac)m(h)630 5121 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 4701
+h(b)s(elo)m(w)f(in)f(Section)i(6.5)g([Shell)630 5230
 y(Arithmetic],)51 b(page)46 b(76.)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 4810 y(otherwise)31 b(0)g(is)f(returned.)150
-4966 y Fs(local)870 5098 y(local)46 b([)p Fj(option)11
-b Fs(])45 b Fj(name)11 b Fs([=)p Fj(value)g Fs(])44 b(...)630
-5230 y Ft(F)-8 b(or)27 b(eac)m(h)g(argumen)m(t,)g(a)f(lo)s(cal)h(v)-5
-b(ariable)27 b(named)e Fq(name)31 b Ft(is)26 b(created,)i(and)d
-(assigned)h Fq(v)-5 b(alue)p Ft(.)630 5340 y(The)37 b
-Fq(option)h Ft(can)f(b)s(e)g(an)m(y)h(of)f(the)h(options)g(accepted)g
-(b)m(y)g Fs(declare)p Ft(.)59 b Fs(local)36 b Ft(can)i(only)p
+b Ft(returns)g(1;)630 5340 y(otherwise)31 b(0)g(is)f(returned.)p
 eop end
 %%Page: 46 52
 TeXDict begin 46 51 bop 150 -116 a Ft(46)2572 b(Bash)31
-b(Reference)g(Man)m(ual)630 299 y(b)s(e)41 b(used)h(within)f(a)i
+b(Reference)g(Man)m(ual)150 299 y Fs(local)870 436 y(local)46
+b([)p Fj(option)11 b Fs(])45 b Fj(name)11 b Fs([=)p Fj(value)g
+Fs(])44 b(...)630 573 y Ft(F)-8 b(or)27 b(eac)m(h)g(argumen)m(t,)g(a)f
+(lo)s(cal)h(v)-5 b(ariable)27 b(named)e Fq(name)31 b
+Ft(is)26 b(created,)i(and)d(assigned)h Fq(v)-5 b(alue)p
+Ft(.)630 682 y(The)37 b Fq(option)h Ft(can)f(b)s(e)g(an)m(y)h(of)f(the)
+h(options)g(accepted)g(b)m(y)g Fs(declare)p Ft(.)59 b
+Fs(local)36 b Ft(can)i(only)630 792 y(b)s(e)j(used)h(within)f(a)i
 (function;)48 b(it)42 b(mak)m(es)h(the)f(v)-5 b(ariable)43
 b Fq(name)48 b Ft(ha)m(v)m(e)43 b(a)f(visible)h(scop)s(e)630
-408 y(restricted)c(to)g(that)g(function)f(and)f(its)i(c)m(hildren.)64
-b(The)38 b(return)f(status)h(is)h(zero)g(unless)630 518
+902 y(restricted)c(to)g(that)g(function)f(and)f(its)i(c)m(hildren.)64
+b(The)38 b(return)f(status)h(is)h(zero)g(unless)630 1011
 y Fs(local)g Ft(is)h(used)g(outside)g(a)h(function,)h(an)e(in)m(v)-5
 b(alid)41 b Fq(name)46 b Ft(is)40 b(supplied,)i(or)e
-Fq(name)45 b Ft(is)c(a)630 628 y(readonly)30 b(v)-5 b(ariable.)150
-778 y Fs(logout)870 908 y(logout)46 b([)p Fj(n)11 b Fs(])630
-1039 y Ft(Exit)31 b(a)g(login)g(shell,)g(returning)e(a)i(status)g(of)f
-Fq(n)g Ft(to)h(the)g(shell's)f(paren)m(t.)150 1189 y
-Fs(printf)870 1319 y(printf)46 b([-v)h Fj(var)11 b Fs(])46
-b Fj(format)57 b Fs([)p Fj(arguments)11 b Fs(])630 1450
-y Ft(W)-8 b(rite)27 b(the)g(formatted)f Fq(argumen)m(ts)k
-Ft(to)d(the)f(standard)f(output)h(under)e(the)i(con)m(trol)i(of)e(the)
-630 1559 y Fq(format)p Ft(.)41 b(The)28 b Fq(format)j
-Ft(is)e(a)g(c)m(haracter)i(string)d(whic)m(h)h(con)m(tains)h(three)f(t)
-m(yp)s(es)g(of)g(ob)5 b(jects:)630 1669 y(plain)28 b(c)m(haracters,)j
-(whic)m(h)d(are)h(simply)f(copied)h(to)h(standard)d(output,)i(c)m
-(haracter)h(escap)s(e)630 1778 y(sequences,)g(whic)m(h)f(are)g(con)m(v)
-m(erted)i(and)d(copied)i(to)f(the)h(standard)e(output,)h(and)g(format)
-630 1888 y(sp)s(eci\014cations,)39 b(eac)m(h)e(of)g(whic)m(h)f(causes)g
-(prin)m(ting)g(of)h(the)f(next)h(successiv)m(e)g Fq(argumen)m(t)p
-Ft(.)630 1998 y(In)31 b(addition)h(to)h(the)e(standard)g
+Fq(name)45 b Ft(is)c(a)630 1121 y(readonly)30 b(v)-5
+b(ariable.)150 1285 y Fs(logout)870 1422 y(logout)46
+b([)p Fj(n)11 b Fs(])630 1559 y Ft(Exit)31 b(a)g(login)g(shell,)g
+(returning)e(a)i(status)g(of)f Fq(n)g Ft(to)h(the)g(shell's)f(paren)m
+(t.)150 1724 y Fs(printf)870 1861 y(printf)46 b([-v)h
+Fj(var)11 b Fs(])46 b Fj(format)57 b Fs([)p Fj(arguments)11
+b Fs(])630 1998 y Ft(W)-8 b(rite)27 b(the)g(formatted)f
+Fq(argumen)m(ts)k Ft(to)d(the)f(standard)f(output)h(under)e(the)i(con)m
+(trol)i(of)e(the)630 2107 y Fq(format)p Ft(.)41 b(The)28
+b Fq(format)j Ft(is)e(a)g(c)m(haracter)i(string)d(whic)m(h)h(con)m
+(tains)h(three)f(t)m(yp)s(es)g(of)g(ob)5 b(jects:)630
+2217 y(plain)28 b(c)m(haracters,)j(whic)m(h)d(are)h(simply)f(copied)h
+(to)h(standard)d(output,)i(c)m(haracter)h(escap)s(e)630
+2326 y(sequences,)g(whic)m(h)f(are)g(con)m(v)m(erted)i(and)d(copied)i
+(to)f(the)h(standard)e(output,)h(and)g(format)630 2436
+y(sp)s(eci\014cations,)39 b(eac)m(h)e(of)g(whic)m(h)f(causes)g(prin)m
+(ting)g(of)h(the)f(next)h(successiv)m(e)g Fq(argumen)m(t)p
+Ft(.)630 2545 y(In)31 b(addition)h(to)h(the)e(standard)g
 Fs(printf\(1\))f Ft(formats,)i(`)p Fs(\045b)p Ft(')g(causes)g
-Fs(printf)e Ft(to)j(expand)630 2107 y(bac)m(kslash)39
+Fs(printf)e Ft(to)j(expand)630 2655 y(bac)m(kslash)39
 b(escap)s(e)g(sequences)f(in)h(the)f(corresp)s(onding)f
 Fq(argumen)m(t)p Ft(,)k(\(except)f(that)f(`)p Fs(\\c)p
-Ft(')630 2217 y(terminates)44 b(output,)j(bac)m(kslashes)d(in)f(`)p
+Ft(')630 2765 y(terminates)44 b(output,)j(bac)m(kslashes)d(in)f(`)p
 Fs(\\')p Ft(',)k(`)p Fs(\\")p Ft(',)g(and)c(`)p Fs(\\?)p
-Ft(')g(are)h(not)g(remo)m(v)m(ed,)k(and)630 2326 y(o)s(ctal)25
+Ft(')g(are)h(not)g(remo)m(v)m(ed,)k(and)630 2874 y(o)s(ctal)25
 b(escap)s(es)f(b)s(eginning)f(with)g(`)p Fs(\\0)p Ft(')h(ma)m(y)g(con)m
 (tain)h(up)e(to)h(four)f(digits\),)j(and)d(`)p Fs(\045q)p
-Ft(')h(causes)630 2436 y Fs(printf)31 b Ft(to)i(output)f(the)h(corresp)
+Ft(')h(causes)630 2984 y Fs(printf)31 b Ft(to)i(output)f(the)h(corresp)
 s(onding)f Fq(argumen)m(t)j Ft(in)d(a)h(format)g(that)g(can)g(b)s(e)f
-(reused)630 2545 y(as)f(shell)f(input.)630 2676 y(The)24
+(reused)630 3093 y(as)f(shell)f(input.)630 3230 y(The)24
 b(`)p Fs(-v)p Ft(')h(option)g(causes)g(the)g(output)g(to)g(b)s(e)f
 (assigned)h(to)h(the)f(v)-5 b(ariable)25 b Fq(v)-5 b(ar)32
-b Ft(rather)24 b(than)630 2785 y(b)s(eing)30 b(prin)m(ted)g(to)h(the)g
-(standard)e(output.)630 2915 y(The)i Fq(format)i Ft(is)f(reused)e(as)i
+b Ft(rather)24 b(than)630 3340 y(b)s(eing)30 b(prin)m(ted)g(to)h(the)g
+(standard)e(output.)630 3477 y(The)i Fq(format)i Ft(is)f(reused)e(as)i
 (necessary)f(to)i(consume)e(all)h(of)f(the)h Fq(argumen)m(ts)p
-Ft(.)44 b(If)30 b(the)i Fq(for-)630 3025 y(mat)c Ft(requires)e(more)g
+Ft(.)44 b(If)30 b(the)i Fq(for-)630 3587 y(mat)c Ft(requires)e(more)g
 Fq(argumen)m(ts)k Ft(than)25 b(are)i(supplied,)e(the)h(extra)h(format)f
-(sp)s(eci\014cations)630 3134 y(b)s(eha)m(v)m(e)j(as)g(if)f(a)h(zero)g
+(sp)s(eci\014cations)630 3696 y(b)s(eha)m(v)m(e)j(as)g(if)f(a)h(zero)g
 (v)-5 b(alue)29 b(or)g(n)m(ull)f(string,)h(as)g(appropriate,)g(had)f(b)
-s(een)g(supplied.)38 b(The)630 3244 y(return)29 b(v)-5
+s(een)g(supplied.)38 b(The)630 3806 y(return)29 b(v)-5
 b(alue)31 b(is)g(zero)g(on)f(success,)h(non-zero)g(on)f(failure.)150
-3395 y Fs(read)870 3525 y(read)47 b([-ers])f([-a)h Fj(aname)11
-b Fs(])45 b([-d)i Fj(delim)11 b Fs(])46 b([-n)h Fj(nchars)11
-b Fs(])45 b([-p)i Fj(prompt)11 b Fs(])45 b([-t)i Fj(time-)870
-3634 y(out)11 b Fs(])46 b([-u)h Fj(fd)11 b Fs(])46 b([)p
-Fj(name)57 b Fs(...])630 3765 y Ft(One)26 b(line)h(is)g(read)f(from)h
-(the)f(standard)g(input,)h(or)g(from)f(the)h(\014le)f(descriptor)h
-Fq(fd)i Ft(supplied)630 3874 y(as)37 b(an)g(argumen)m(t)h(to)f(the)h(`)
-p Fs(-u)p Ft(')e(option,)k(and)c(the)i(\014rst)e(w)m(ord)g(is)h
-(assigned)h(to)f(the)h(\014rst)630 3984 y Fq(name)p Ft(,)29
-b(the)f(second)h(w)m(ord)e(to)i(the)g(second)f Fq(name)p
-Ft(,)h(and)e(so)i(on,)g(with)f(lefto)m(v)m(er)i(w)m(ords)e(and)630
-4093 y(their)g(in)m(terv)m(ening)h(separators)g(assigned)f(to)h(the)f
-(last)h Fq(name)p Ft(.)40 b(If)27 b(there)i(are)f(few)m(er)g(w)m(ords)
-630 4203 y(read)44 b(from)f(the)g(input)g(stream)h(than)g(names,)j(the)
-c(remaining)h(names)g(are)g(assigned)630 4313 y(empt)m(y)31
+3970 y Fs(read)870 4107 y(read)47 b([-ers])f([-a)h Fj(aname)11
+b Fs(])45 b([-d)i Fj(delim)11 b Fs(])46 b([-i)h Fj(text)11
+b Fs(])46 b([-n)g Fj(nchars)11 b Fs(])46 b([-p)h Fj(prompt)11
+b Fs(])45 b([-t)i Fj(time-)870 4217 y(out)11 b Fs(])46
+b([-u)h Fj(fd)11 b Fs(])46 b([)p Fj(name)57 b Fs(...])630
+4354 y Ft(One)26 b(line)h(is)g(read)f(from)h(the)f(standard)g(input,)h
+(or)g(from)f(the)h(\014le)f(descriptor)h Fq(fd)i Ft(supplied)630
+4463 y(as)37 b(an)g(argumen)m(t)h(to)f(the)h(`)p Fs(-u)p
+Ft(')e(option,)k(and)c(the)i(\014rst)e(w)m(ord)g(is)h(assigned)h(to)f
+(the)h(\014rst)630 4573 y Fq(name)p Ft(,)29 b(the)f(second)h(w)m(ord)e
+(to)i(the)g(second)f Fq(name)p Ft(,)h(and)e(so)i(on,)g(with)f(lefto)m
+(v)m(er)i(w)m(ords)e(and)630 4682 y(their)g(in)m(terv)m(ening)h
+(separators)g(assigned)f(to)h(the)f(last)h Fq(name)p
+Ft(.)40 b(If)27 b(there)i(are)f(few)m(er)g(w)m(ords)630
+4792 y(read)44 b(from)f(the)g(input)g(stream)h(than)g(names,)j(the)c
+(remaining)h(names)g(are)g(assigned)630 4902 y(empt)m(y)31
 b(v)-5 b(alues.)41 b(The)30 b(c)m(haracters)i(in)e(the)h(v)-5
 b(alue)31 b(of)g(the)f Fs(IFS)g Ft(v)-5 b(ariable)31
-b(are)g(used)f(to)h(split)630 4422 y(the)37 b(line)h(in)m(to)g(w)m
+b(are)g(used)f(to)h(split)630 5011 y(the)37 b(line)h(in)m(to)g(w)m
 (ords.)61 b(The)36 b(bac)m(kslash)i(c)m(haracter)h(`)p
 Fs(\\)p Ft(')e(ma)m(y)h(b)s(e)f(used)f(to)i(remo)m(v)m(e)h(an)m(y)630
-4532 y(sp)s(ecial)h(meaning)g(for)f(the)g(next)h(c)m(haracter)h(read)e
+5121 y(sp)s(ecial)h(meaning)g(for)f(the)g(next)h(c)m(haracter)h(read)e
 (and)g(for)g(line)h(con)m(tin)m(uation.)69 b(If)39 b(no)630
-4641 y(names)28 b(are)h(supplied,)f(the)g(line)h(read)g(is)f(assigned)h
+5230 y(names)28 b(are)h(supplied,)f(the)g(line)h(read)g(is)f(assigned)h
 (to)g(the)f(v)-5 b(ariable)29 b Fs(REPLY)p Ft(.)39 b(The)28
-b(return)630 4751 y(co)s(de)i(is)f(zero,)i(unless)e(end-of-\014le)h(is)
+b(return)630 5340 y(co)s(de)i(is)f(zero,)i(unless)e(end-of-\014le)h(is)
 f(encoun)m(tered,)h Fs(read)f Ft(times)h(out,)g(or)f(an)h(in)m(v)-5
-b(alid)30 b(\014le)630 4861 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 4970 y(follo)m(wing)32
-b(meanings:)630 5121 y Fs(-a)e Fj(aname)114 b Ft(The)34
-b(w)m(ords)f(are)i(assigned)f(to)h(sequen)m(tial)h(indices)e(of)g(the)g
-(arra)m(y)h(v)-5 b(ariable)1110 5230 y Fq(aname)p Ft(,)29
-b(starting)h(at)f(0.)40 b(All)29 b(elemen)m(ts)h(are)e(remo)m(v)m(ed)i
-(from)d Fq(aname)34 b Ft(b)s(efore)1110 5340 y(the)d(assignmen)m(t.)41
-b(Other)30 b Fq(name)36 b Ft(argumen)m(ts)30 b(are)h(ignored.)p
-eop end
+b(alid)30 b(\014le)p eop end
 %%Page: 47 53
 TeXDict begin 47 52 bop 150 -116 a Ft(Chapter)30 b(4:)41
-b(Shell)30 b(Builtin)h(Commands)2069 b(47)630 299 y Fs(-d)30
-b Fj(delim)114 b Ft(The)41 b(\014rst)h(c)m(haracter)h(of)f
-Fq(delim)g Ft(is)g(used)g(to)g(terminate)h(the)f(input)f(line,)1110
-408 y(rather)30 b(than)g(newline.)630 567 y Fs(-e)384
-b Ft(Readline)28 b(\(see)h(Chapter)e(8)h([Command)f(Line)g(Editing],)i
-(page)f(91\))h(is)f(used)1110 676 y(to)j(obtain)g(the)g(line.)630
-835 y Fs(-n)f Fj(nchars)1110 944 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 1054 y(for)30 b(a)h(complete)h(line)e(of)h(input.)630
-1212 y Fs(-p)f Fj(prompt)1110 1322 y Ft(Displa)m(y)38
-b Fq(prompt)p Ft(,)g(without)e(a)h(trailing)h(newline,)h(b)s(efore)d
-(attempting)i(to)1110 1431 y(read)f(an)m(y)h(input.)60
-b(The)37 b(prompt)g(is)g(displa)m(y)m(ed)h(only)f(if)g(input)g(is)g
-(coming)1110 1541 y(from)30 b(a)h(terminal.)630 1699
-y Fs(-r)384 b Ft(If)21 b(this)h(option)g(is)f(giv)m(en,)k(bac)m(kslash)
-d(do)s(es)f(not)h(act)h(as)f(an)f(escap)s(e)h(c)m(haracter.)1110
-1809 y(The)30 b(bac)m(kslash)i(is)f(considered)g(to)h(b)s(e)e(part)h
-(of)g(the)g(line.)43 b(In)30 b(particular,)i(a)1110 1918
-y(bac)m(kslash-newline)f(pair)f(ma)m(y)h(not)g(b)s(e)f(used)f(as)i(a)g
-(line)f(con)m(tin)m(uation.)630 2077 y Fs(-s)384 b Ft(Silen)m(t)28
-b(mo)s(de.)40 b(If)27 b(input)f(is)i(coming)g(from)f(a)h(terminal,)h(c)
-m(haracters)g(are)f(not)1110 2186 y(ec)m(ho)s(ed.)630
-2345 y Fs(-t)i Fj(timeout)1110 2454 y Ft(Cause)42 b Fs(read)g
-Ft(to)h(time)h(out)f(and)f(return)f(failure)i(if)g(a)g(complete)h(line)
-f(of)1110 2564 y(input)26 b(is)h(not)h(read)f(within)f
-Fq(timeout)k Ft(seconds.)40 b(This)26 b(option)i(has)e(no)h(e\013ect)
-1110 2673 y(if)j Fs(read)g Ft(is)g(not)h(reading)f(input)f(from)h(the)h
-(terminal)g(or)f(a)h(pip)s(e.)630 2832 y Fs(-u)f Fj(fd)258
-b Ft(Read)31 b(input)e(from)h(\014le)g(descriptor)h Fq(fd)p
-Ft(.)150 2990 y Fs(source)870 3124 y(source)46 b Fj(filename)630
-3258 y Ft(A)30 b(synon)m(ym)g(for)g Fs(.)g Ft(\(see)i(Section)f(4.1)g
-([Bourne)g(Shell)f(Builtins],)h(page)g(35\).)150 3416
-y Fs(type)870 3550 y(type)47 b([-afptP])e([)p Fj(name)57
-b Fs(...)o(])630 3684 y Ft(F)-8 b(or)42 b(eac)m(h)g Fq(name)p
-Ft(,)i(indicate)e(ho)m(w)g(it)f(w)m(ould)g(b)s(e)g(in)m(terpreted)g(if)
-g(used)f(as)i(a)f(command)630 3794 y(name.)630 3927 y(If)d(the)g(`)p
-Fs(-t)p Ft(')g(option)g(is)g(used,)i Fs(type)d Ft(prin)m(ts)g(a)i
-(single)f(w)m(ord)g(whic)m(h)g(is)g(one)g(of)h(`)p Fs(alias)p
-Ft(',)630 4037 y(`)p Fs(function)p Ft(',)32 b(`)p Fs(builtin)p
-Ft(',)g(`)p Fs(file)p Ft(')g(or)h(`)p Fs(keyword)p Ft(',)f(if)h
-Fq(name)38 b Ft(is)33 b(an)f(alias,)j(shell)e(function,)630
-4147 y(shell)i(builtin,)g(disk)g(\014le,)h(or)e(shell)h(reserv)m(ed)g
-(w)m(ord,)h(resp)s(ectiv)m(ely)-8 b(.)55 b(If)34 b(the)h
-Fq(name)40 b Ft(is)35 b(not)630 4256 y(found,)29 b(then)h(nothing)h(is)
-f(prin)m(ted,)g(and)g Fs(type)f Ft(returns)g(a)i(failure)g(status.)630
-4390 y(If)39 b(the)g(`)p Fs(-p)p Ft(')g(option)h(is)f(used,)i
+b(Shell)30 b(Builtin)h(Commands)2069 b(47)630 299 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
+408 y(follo)m(wing)32 b(meanings:)630 562 y Fs(-a)e Fj(aname)114
+b Ft(The)34 b(w)m(ords)f(are)i(assigned)f(to)h(sequen)m(tial)h(indices)
+e(of)g(the)g(arra)m(y)h(v)-5 b(ariable)1110 671 y Fq(aname)p
+Ft(,)29 b(starting)h(at)f(0.)40 b(All)29 b(elemen)m(ts)h(are)e(remo)m
+(v)m(ed)i(from)d Fq(aname)34 b Ft(b)s(efore)1110 781
+y(the)d(assignmen)m(t.)41 b(Other)30 b Fq(name)36 b Ft(argumen)m(ts)30
+b(are)h(ignored.)630 934 y Fs(-d)f Fj(delim)114 b Ft(The)41
+b(\014rst)h(c)m(haracter)h(of)f Fq(delim)g Ft(is)g(used)g(to)g
+(terminate)h(the)f(input)f(line,)1110 1044 y(rather)30
+b(than)g(newline.)630 1198 y Fs(-e)384 b Ft(Readline)28
+b(\(see)h(Chapter)e(8)h([Command)f(Line)g(Editing],)i(page)f(91\))h(is)
+f(used)1110 1307 y(to)j(obtain)g(the)g(line.)630 1461
+y Fs(-i)f Fj(text)162 b Ft(If)36 b(Readline)i(is)f(b)s(eing)g(used)f
+(to)h(read)g(the)g(line,)j Fq(text)f Ft(is)e(placed)h(in)m(to)g(the)
+1110 1570 y(editing)31 b(bu\013er)e(b)s(efore)h(editing)h(b)s(egins.)
+630 1724 y Fs(-n)f Fj(nchars)1110 1833 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 1943 y(for)30 b(a)h(complete)h(line)e
+(of)h(input.)630 2096 y Fs(-p)f Fj(prompt)1110 2206 y
+Ft(Displa)m(y)38 b Fq(prompt)p Ft(,)g(without)e(a)h(trailing)h
+(newline,)h(b)s(efore)d(attempting)i(to)1110 2315 y(read)f(an)m(y)h
+(input.)60 b(The)37 b(prompt)g(is)g(displa)m(y)m(ed)h(only)f(if)g
+(input)g(is)g(coming)1110 2425 y(from)30 b(a)h(terminal.)630
+2578 y Fs(-r)384 b Ft(If)21 b(this)h(option)g(is)f(giv)m(en,)k(bac)m
+(kslash)d(do)s(es)f(not)h(act)h(as)f(an)f(escap)s(e)h(c)m(haracter.)
+1110 2688 y(The)30 b(bac)m(kslash)i(is)f(considered)g(to)h(b)s(e)e
+(part)h(of)g(the)g(line.)43 b(In)30 b(particular,)i(a)1110
+2798 y(bac)m(kslash-newline)f(pair)f(ma)m(y)h(not)g(b)s(e)f(used)f(as)i
+(a)g(line)f(con)m(tin)m(uation.)630 2951 y Fs(-s)384
+b Ft(Silen)m(t)28 b(mo)s(de.)40 b(If)27 b(input)f(is)i(coming)g(from)f
+(a)h(terminal,)h(c)m(haracters)g(are)f(not)1110 3061
+y(ec)m(ho)s(ed.)630 3214 y Fs(-t)i Fj(timeout)1110 3324
+y Ft(Cause)42 b Fs(read)g Ft(to)h(time)h(out)f(and)f(return)f(failure)i
+(if)g(a)g(complete)h(line)f(of)1110 3433 y(input)26 b(is)h(not)h(read)f
+(within)f Fq(timeout)k Ft(seconds.)40 b(This)26 b(option)i(has)e(no)h
+(e\013ect)1110 3543 y(if)j Fs(read)g Ft(is)g(not)h(reading)f(input)f
+(from)h(the)h(terminal)g(or)f(a)h(pip)s(e.)630 3696 y
+Fs(-u)f Fj(fd)258 b Ft(Read)31 b(input)e(from)h(\014le)g(descriptor)h
+Fq(fd)p Ft(.)150 3850 y Fs(source)870 3981 y(source)46
+b Fj(filename)630 4113 y Ft(A)30 b(synon)m(ym)g(for)g
+Fs(.)g Ft(\(see)i(Section)f(4.1)g([Bourne)g(Shell)f(Builtins],)h(page)g
+(35\).)150 4266 y Fs(type)870 4398 y(type)47 b([-afptP])e([)p
+Fj(name)57 b Fs(...)o(])630 4529 y Ft(F)-8 b(or)42 b(eac)m(h)g
+Fq(name)p Ft(,)i(indicate)e(ho)m(w)g(it)f(w)m(ould)g(b)s(e)g(in)m
+(terpreted)g(if)g(used)f(as)i(a)f(command)630 4639 y(name.)630
+4770 y(If)d(the)g(`)p Fs(-t)p Ft(')g(option)g(is)g(used,)i
+Fs(type)d Ft(prin)m(ts)g(a)i(single)f(w)m(ord)g(whic)m(h)g(is)g(one)g
+(of)h(`)p Fs(alias)p Ft(',)630 4880 y(`)p Fs(function)p
+Ft(',)32 b(`)p Fs(builtin)p Ft(',)g(`)p Fs(file)p Ft(')g(or)h(`)p
+Fs(keyword)p Ft(',)f(if)h Fq(name)38 b Ft(is)33 b(an)f(alias,)j(shell)e
+(function,)630 4989 y(shell)i(builtin,)g(disk)g(\014le,)h(or)e(shell)h
+(reserv)m(ed)g(w)m(ord,)h(resp)s(ectiv)m(ely)-8 b(.)55
+b(If)34 b(the)h Fq(name)40 b Ft(is)35 b(not)630 5099
+y(found,)29 b(then)h(nothing)h(is)f(prin)m(ted,)g(and)g
+Fs(type)f Ft(returns)g(a)i(failure)g(status.)630 5230
+y(If)39 b(the)g(`)p Fs(-p)p Ft(')g(option)h(is)f(used,)i
 Fs(type)d Ft(either)h(returns)f(the)i(name)f(of)g(the)g(disk)g(\014le)g
-(that)630 4500 y(w)m(ould)30 b(b)s(e)g(executed,)h(or)g(nothing)f(if)g
+(that)630 5340 y(w)m(ould)30 b(b)s(e)g(executed,)h(or)g(nothing)f(if)g
 (`)p Fs(-t)p Ft(')h(w)m(ould)f(not)g(return)g(`)p Fs(file)p
-Ft('.)630 4634 y(The)23 b(`)p Fs(-P)p Ft(')h(option)g(forces)g(a)g
-(path)g(searc)m(h)g(for)g(eac)m(h)g Fq(name)p Ft(,)i(ev)m(en)e(if)g(`)p
-Fs(-t)p Ft(')g(w)m(ould)f(not)h(return)630 4743 y(`)p
-Fs(file)p Ft('.)630 4877 y(If)34 b(a)i(command)e(is)h(hashed,)g(`)p
-Fs(-p)p Ft(')g(and)f(`)p Fs(-P)p Ft(')h(prin)m(t)f(the)h(hashed)f(v)-5
-b(alue,)37 b(not)e(necessarily)630 4987 y(the)c(\014le)f(that)h(app)s
-(ears)f(\014rst)f(in)h Fs($PATH)p Ft(.)630 5121 y(If)36
-b(the)h(`)p Fs(-a)p Ft(')g(option)g(is)g(used,)g Fs(type)f
-Ft(returns)f(all)j(of)f(the)g(places)g(that)g(con)m(tain)h(an)f(exe-)
-630 5230 y(cutable)d(named)f Fq(\014le)p Ft(.)50 b(This)33
-b(includes)g(aliases)i(and)e(functions,)h(if)f(and)g(only)h(if)f(the)h
-(`)p Fs(-p)p Ft(')630 5340 y(option)d(is)f(not)h(also)g(used.)p
-eop end
+Ft('.)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)26 b(the)h(`)p Fs(-f)p
-Ft(')g(option)g(is)g(used,)g Fs(type)e Ft(do)s(es)i(not)g(attempt)g(to)
-h(\014nd)d(shell)i(functions,)g(as)g(with)630 408 y(the)k
-Fs(command)d Ft(builtin.)630 543 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 652 y(found.)150 811 y Fs(typeset)870
-945 y(typeset)46 b([-afFrxi])f([-p])i([)p Fj(name)11
-b Fs([=)p Fj(value)g Fs(])43 b(...)o(])630 1079 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 1189 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 1348 y Fs(ulimit)870
-1482 y(ulimit)46 b([-acdefilmnpqrstuvxSH])c([)p Fj(limit)11
-b Fs(])630 1616 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 1726 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 1835 y(as)i(follo)m(ws:)630
-1994 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 2153 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 2312 y Fs(-a)384 b Ft(All)31
-b(curren)m(t)f(limits)h(are)g(rep)s(orted.)630 2471 y
-Fs(-c)384 b Ft(The)30 b(maxim)m(um)g(size)h(of)g(core)g(\014les)f
-(created.)630 2629 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 2788 y Fs(-e)384
+b(Reference)g(Man)m(ual)630 299 y(The)23 b(`)p Fs(-P)p
+Ft(')h(option)g(forces)g(a)g(path)g(searc)m(h)g(for)g(eac)m(h)g
+Fq(name)p Ft(,)i(ev)m(en)e(if)g(`)p Fs(-t)p Ft(')g(w)m(ould)f(not)h
+(return)630 408 y(`)p Fs(file)p Ft('.)630 542 y(If)34
+b(a)i(command)e(is)h(hashed,)g(`)p Fs(-p)p Ft(')g(and)f(`)p
+Fs(-P)p Ft(')h(prin)m(t)f(the)h(hashed)f(v)-5 b(alue,)37
+b(not)e(necessarily)630 651 y(the)c(\014le)f(that)h(app)s(ears)f
+(\014rst)f(in)h Fs($PATH)p Ft(.)630 785 y(If)36 b(the)h(`)p
+Fs(-a)p Ft(')g(option)g(is)g(used,)g Fs(type)f Ft(returns)f(all)j(of)f
+(the)g(places)g(that)g(con)m(tain)h(an)f(exe-)630 894
+y(cutable)d(named)f Fq(\014le)p Ft(.)50 b(This)33 b(includes)g(aliases)
+i(and)e(functions,)h(if)f(and)g(only)h(if)f(the)h(`)p
+Fs(-p)p Ft(')630 1004 y(option)d(is)f(not)h(also)g(used.)630
+1137 y(If)26 b(the)h(`)p Fs(-f)p Ft(')g(option)g(is)g(used,)g
+Fs(type)e Ft(do)s(es)i(not)g(attempt)g(to)h(\014nd)d(shell)i
+(functions,)g(as)g(with)630 1247 y(the)k Fs(command)d
+Ft(builtin.)630 1380 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 1490 y(found.)150 1647 y Fs(typeset)870 1781
+y(typeset)46 b([-afFrxi])f([-p])i([)p Fj(name)11 b Fs([=)p
+Fj(value)g Fs(])43 b(...)o(])630 1914 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 2024 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 2181 y Fs(ulimit)870 2314 y(ulimit)46
+b([-abcdefilmnpqrstuvxHST])41 b([)p Fj(limit)11 b Fs(])630
+2448 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 2557 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 2667 y(as)i(follo)m(ws:)630 2824 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 2981 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 3139 y Fs(-a)384 b Ft(All)31 b(curren)m(t)f(limits)h
+(are)g(rep)s(orted.)630 3296 y Fs(-b)384 b Ft(The)30
+b(maxim)m(um)g(so)s(c)m(k)m(et)i(bu\013er)e(size.)630
+3453 y Fs(-c)384 b Ft(The)30 b(maxim)m(um)g(size)h(of)g(core)g(\014les)
+f(created.)630 3610 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 3768 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 2947 y Fs(-f)384 b
+Fs(")p Ft(nice)p Fs(")p Ft(\).)630 3925 y Fs(-f)384 b
 Ft(The)30 b(maxim)m(um)g(size)h(of)g(\014les)f(written)h(b)m(y)f(the)g
-(shell)h(and)f(its)h(c)m(hildren.)630 3106 y Fs(-i)384
+(shell)h(and)f(its)h(c)m(hildren.)630 4082 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 3264 y Fs(-l)384 b Ft(The)30 b(maxim)m(um)g(size)h(that)g
+(signals.)630 4239 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 3423 y Fs(-m)384 b Ft(The)30 b(maxim)m(um)g(residen)m(t)h(set)g
-(size.)630 3582 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 3741 y Fs(-p)384
-b Ft(The)30 b(pip)s(e)f(bu\013er)h(size.)630 3900 y Fs(-q)384
+b(.)630 4397 y Fs(-m)384 b Ft(The)30 b(maxim)m(um)g(residen)m(t)h(set)g
+(size.)630 4554 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 4711 y Fs(-p)384
+b Ft(The)30 b(pip)s(e)f(bu\013er)h(size.)630 4868 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 4058 y Fs(-r)384 b Ft(The)30
+(POSIX)f(message)j(queues.)630 5026 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 4217 y Fs(-s)384 b Ft(The)30 b(maxim)m(um)g(stac)m(k)i(size.)
-630 4376 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 4535 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 4694 y Fs(-v)384
+b(.)630 5183 y Fs(-s)384 b Ft(The)30 b(maxim)m(um)g(stac)m(k)i(size.)
+630 5340 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.)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)630 299 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 464 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 4852 y Fs(-x)384
+b(ailable)32 b(to)e(the)g(pro)s(cess.)630 629 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 5011 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 5121 y Ft(v)-5 b(alues)27
+(ks.)630 794 y Fs(-T)384 b Ft(The)30 b(maxim)m(um)g(n)m(um)m(b)s(er)f
+(of)i(threads.)630 959 y(If)i Fq(limit)j Ft(is)e(giv)m(en,)h(it)f(is)g
+(the)g(new)f(v)-5 b(alue)34 b(of)f(the)h(sp)s(eci\014ed)f(resource;)i
+(the)f(sp)s(ecial)g Fq(limit)630 1069 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 5230 y(soft)38 b(limit,)j(and)d(no)f(limit,)k(resp)s(ectiv)m(ely)-8
+630 1178 y(soft)38 b(limit,)j(and)d(no)f(limit,)k(resp)s(ectiv)m(ely)-8
 b(.)66 b(A)38 b(hard)f(limit)h(cannot)h(b)s(e)e(increased)i(b)m(y)f(a)
-630 5340 y(non-ro)s(ot)f(user)f(once)i(it)g(is)f(set;)k(a)c(soft)g
+630 1288 y(non-ro)s(ot)f(user)f(once)i(it)g(is)f(set;)k(a)c(soft)g
 (limit)h(ma)m(y)g(b)s(e)e(increased)h(up)f(to)i(the)f(v)-5
-b(alue)38 b(of)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)630 299 y(the)34
-b(hard)f(limit.)51 b(Otherwise,)35 b(the)f(curren)m(t)f(v)-5
-b(alue)35 b(of)f(the)f(soft)i(limit)f(for)g(the)g(sp)s(eci\014ed)630
-408 y(resource)27 b(is)h(prin)m(ted,)f(unless)g(the)g(`)p
-Fs(-H)p Ft(')g(option)h(is)f(supplied.)38 b(When)27 b(setting)h(new)f
-(limits,)630 518 y(if)40 b(neither)f(`)p Fs(-H)p Ft(')h(nor)f(`)p
-Fs(-S)p Ft(')h(is)f(supplied,)i(b)s(oth)e(the)h(hard)f(and)g(soft)h
-(limits)g(are)g(set.)69 b(If)630 628 y(no)35 b(option)h(is)f(giv)m(en,)
-j(then)d(`)p Fs(-f)p Ft(')g(is)g(assumed.)55 b(V)-8 b(alues)36
-b(are)f(in)g(1024-b)m(yte)j(incremen)m(ts,)630 737 y(except)d(for)f(`)p
-Fs(-t)p Ft(',)g(whic)m(h)g(is)g(in)g(seconds,)h(`)p Fs(-p)p
-Ft(',)g(whic)m(h)e(is)h(in)g(units)f(of)h(512-b)m(yte)i(blo)s(c)m(ks,)
-630 847 y(and)30 b(`)p Fs(-n)p Ft(')g(and)g(`)p Fs(-u)p
+b(alue)38 b(of)630 1398 y(the)c(hard)f(limit.)51 b(Otherwise,)35
+b(the)f(curren)m(t)f(v)-5 b(alue)35 b(of)f(the)f(soft)i(limit)f(for)g
+(the)g(sp)s(eci\014ed)630 1507 y(resource)27 b(is)h(prin)m(ted,)f
+(unless)g(the)g(`)p Fs(-H)p Ft(')g(option)h(is)f(supplied.)38
+b(When)27 b(setting)h(new)f(limits,)630 1617 y(if)40
+b(neither)f(`)p Fs(-H)p Ft(')h(nor)f(`)p Fs(-S)p Ft(')h(is)f(supplied,)
+i(b)s(oth)e(the)h(hard)f(and)g(soft)h(limits)g(are)g(set.)69
+b(If)630 1726 y(no)35 b(option)h(is)f(giv)m(en,)j(then)d(`)p
+Fs(-f)p Ft(')g(is)g(assumed.)55 b(V)-8 b(alues)36 b(are)f(in)g(1024-b)m
+(yte)j(incremen)m(ts,)630 1836 y(except)d(for)f(`)p Fs(-t)p
+Ft(',)g(whic)m(h)g(is)g(in)g(seconds,)h(`)p Fs(-p)p Ft(',)g(whic)m(h)e
+(is)h(in)g(units)f(of)h(512-b)m(yte)i(blo)s(c)m(ks,)630
+1946 y(and)30 b(`)p Fs(-n)p Ft(')g(and)g(`)p Fs(-u)p
 Ft(',)g(whic)m(h)g(are)h(unscaled)f(v)-5 b(alues.)630
-984 y(The)34 b(return)g(status)h(is)f(zero)i(unless)e(an)g(in)m(v)-5
+2083 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
-1094 y(an)30 b(error)g(o)s(ccurs)g(while)h(setting)g(a)g(new)f(limit.)
-150 1259 y Fs(unalias)870 1396 y(unalias)46 b([-a])g([)p
-Fj(name)57 b Fs(...)47 b(])630 1534 y Ft(Remo)m(v)m(e)39
+2193 y(an)30 b(error)g(o)s(ccurs)g(while)h(setting)g(a)g(new)f(limit.)
+150 2358 y Fs(unalias)870 2495 y(unalias)46 b([-a])g([)p
+Fj(name)57 b Fs(...)47 b(])630 2632 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
-1643 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(77.)150 1915 y Fr(4.3)68
-b(Mo)t(difying)45 b(Shell)g(Beha)l(vior)150 2261 y Fk(4.3.1)63
-b(The)41 b(Set)g(Builtin)275 2511 y Ft(This)27 b(builtin)h(is)h(so)f
+2742 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(77.)150 3014 y Fr(4.3)68
+b(Mo)t(difying)45 b(Shell)g(Beha)l(vior)150 3359 y Fk(4.3.1)63
+b(The)41 b(Set)g(Builtin)275 3609 y Ft(This)27 b(builtin)h(is)h(so)f
 (complicated)i(that)f(it)g(deserv)m(es)g(its)g(o)m(wn)f(section.)42
 b Fs(set)27 b Ft(allo)m(ws)j(y)m(ou)f(to)g(c)m(hange)150
-2620 y(the)k(v)-5 b(alues)34 b(of)f(shell)g(options)h(and)e(set)i(the)f
+3718 y(the)k(v)-5 b(alues)34 b(of)f(shell)g(options)h(and)e(set)i(the)f
 (p)s(ositional)h(parameters,)h(or)e(to)h(displa)m(y)f(the)g(names)h
-(and)150 2730 y(v)-5 b(alues)31 b(of)f(shell)h(v)-5 b(ariables.)150
-2898 y Fs(set)870 3035 y(set)47 b([--abefhkmnptuvxBCEHPT])41
+(and)150 3828 y(v)-5 b(alues)31 b(of)f(shell)h(v)-5 b(ariables.)150
+3996 y Fs(set)870 4133 y(set)47 b([--abefhkmnptuvxBCEHPT])41
 b([-o)47 b Fj(option)11 b Fs(])46 b([)p Fj(argument)55
-b Fs(...])870 3145 y(set)47 b([+abefhkmnptuvxBCEHPT])42
+b Fs(...])870 4243 y(set)47 b([+abefhkmnptuvxBCEHPT])42
 b([+o)47 b Fj(option)11 b Fs(])45 b([)p Fj(argument)56
-b Fs(...)o(])630 3282 y Ft(If)22 b(no)h(options)g(or)g(argumen)m(ts)g
+b Fs(...)o(])630 4380 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 3392 y(shell)j(v)-5 b(ariables)27
+b(alues)23 b(of)g(all)630 4490 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 3501 y(that)i(ma)m(y)h(b)s(e)e(reused)g
+(cale,)k(in)c(a)i(format)630 4599 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 3611 y(Read-only)37 b(v)-5 b(ariables)37
+(v)-5 b(ariables.)630 4709 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 3721 y(listed.)630
-3858 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 4818 y(listed.)630
+4956 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
-3968 y(i\014ed,)h(ha)m(v)m(e)i(the)e(follo)m(wing)i(meanings:)630
-4133 y Fs(-a)384 b Ft(Mark)32 b(v)-5 b(ariables)33 b(and)e(function)h
+5065 y(i\014ed,)h(ha)m(v)m(e)i(the)e(follo)m(wing)i(meanings:)630
+5230 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
-4242 y(p)s(ort)e(to)h(the)f(en)m(vironmen)m(t)h(of)g(subsequen)m(t)f
-(commands.)630 4408 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
-4517 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 4682 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 4792 y(Commands],)31
+5340 y(p)s(ort)e(to)h(the)f(en)m(vironmen)m(t)h(of)g(subsequen)m(t)f
+(commands.)p eop end
+%%Page: 50 56
+TeXDict begin 50 55 bop 150 -116 a Ft(50)2572 b(Bash)31
+b(Reference)g(Man)m(ual)630 299 y Fs(-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 408 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
+566 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 676 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 4902 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 5011 y(a)41
-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 5121
+(com-)1110 785 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 895 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 1004
 y(part)33 b(of)h(a)g(command)f(executed)i(in)e(a)h Fs(&&)f
 Ft(or)g Fs(||b)g Ft(list,)i(an)m(y)f(command)f(in)1110
-5230 y(a)g(pip)s(eline)e(but)h(the)g(last,)i(or)f(if)f(the)g(command's)
-g(return)f(status)i(is)f(b)s(eing)1110 5340 y(in)m(v)m(erted)38
+1114 y(a)g(pip)s(eline)e(but)h(the)g(last,)i(or)f(if)f(the)g(command's)
+g(return)f(status)i(is)f(b)s(eing)1110 1224 y(in)m(v)m(erted)38
 b(using)e Fs(!)p Ft(.)60 b(F)-8 b(ailing)39 b(simple)e(commands)f(that)
-i(are)f(part)g(of)g(shell)p eop end
-%%Page: 50 56
-TeXDict begin 50 55 bop 150 -116 a Ft(50)2572 b(Bash)31
-b(Reference)g(Man)m(ual)1110 299 y(functions)k(or)g(command)g(lists)h
-(enclosed)g(in)f(braces)g(or)h(paren)m(theses)f(sat-)1110
-408 y(isfying)d(the)f(ab)s(o)m(v)m(e)i(conditions)f(do)g(not)f(cause)h
-(the)g(shell)g(to)g(exit.)45 b(A)32 b(trap)1110 518 y(on)e
-Fs(ERR)p Ft(,)g(if)g(set,)i(is)e(executed)h(b)s(efore)f(the)h(shell)f
-(exits.)630 677 y Fs(-f)384 b Ft(Disable)31 b(\014le)g(name)f
-(generation)i(\(globbing\).)630 836 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 945 y(execution.)42 b(This)29
-b(option)i(is)g(enabled)f(b)m(y)g(default.)630 1104 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
-1214 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 1324 y(command)30
-b(name.)630 1482 y Fs(-m)384 b Ft(Job)30 b(con)m(trol)i(is)e(enabled)h
+i(are)f(part)g(of)g(shell)1110 1333 y(functions)e(or)g(command)g(lists)
+h(enclosed)g(in)f(braces)g(or)h(paren)m(theses)f(sat-)1110
+1443 y(isfying)d(the)f(ab)s(o)m(v)m(e)i(conditions)f(do)g(not)f(cause)h
+(the)g(shell)g(to)g(exit.)45 b(A)32 b(trap)1110 1552
+y(on)e Fs(ERR)p Ft(,)g(if)g(set,)i(is)e(executed)h(b)s(efore)f(the)h
+(shell)f(exits.)630 1710 y Fs(-f)384 b Ft(Disable)31
+b(\014le)g(name)f(generation)i(\(globbing\).)630 1867
+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
+1977 y(execution.)42 b(This)29 b(option)i(is)g(enabled)f(b)m(y)g
+(default.)630 2134 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
+2244 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 2354 y(command)30
+b(name.)630 2511 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(87\).)630
-1641 y Fs(-n)384 b Ft(Read)21 b(commands)f(but)g(do)h(not)g(execute)h
+2669 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
-1751 y(a)42 b(script)g(for)g(syn)m(tax)g(errors.)75 b(This)41
+2778 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
-1861 y(shells.)630 2019 y Fs(-o)30 b Fj(option-name)1110
-2129 y Ft(Set)h(the)f(option)h(corresp)s(onding)e(to)i
-Fq(option-name)5 b Ft(:)1110 2288 y Fs(allexport)1590
-2398 y Ft(Same)30 b(as)h Fs(-a)p Ft(.)1110 2556 y Fs(braceexpand)1590
-2666 y Ft(Same)f(as)h Fs(-B)p Ft(.)1110 2825 y Fs(emacs)240
+2888 y(shells.)630 3045 y Fs(-o)30 b Fj(option-name)1110
+3155 y Ft(Set)h(the)f(option)h(corresp)s(onding)e(to)i
+Fq(option-name)5 b Ft(:)1110 3313 y Fs(allexport)1590
+3422 y Ft(Same)30 b(as)h Fs(-a)p Ft(.)1110 3580 y Fs(braceexpand)1590
+3689 y Ft(Same)f(as)h Fs(-B)p Ft(.)1110 3847 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 2934 y([Command)30
-b(Line)g(Editing],)h(page)g(91\).)1110 3093 y Fs(errexit)144
-b Ft(Same)30 b(as)h Fs(-e)p Ft(.)1110 3252 y Fs(errtrace)96
-b Ft(Same)30 b(as)h Fs(-E)p Ft(.)1110 3411 y Fs(functrace)1590
-3521 y Ft(Same)f(as)h Fs(-T)p Ft(.)1110 3680 y Fs(hashall)144
-b Ft(Same)30 b(as)h Fs(-h)p Ft(.)1110 3839 y Fs(histexpand)1590
-3948 y Ft(Same)f(as)h Fs(-H)p Ft(.)1110 4107 y Fs(history)144
+(terface)h(\(see)g(Chapter)e(8)1590 3956 y([Command)30
+b(Line)g(Editing],)h(page)g(91\).)1110 4114 y Fs(errexit)144
+b Ft(Same)30 b(as)h Fs(-e)p Ft(.)1110 4271 y Fs(errtrace)96
+b Ft(Same)30 b(as)h Fs(-E)p Ft(.)1110 4429 y Fs(functrace)1590
+4539 y Ft(Same)f(as)h Fs(-T)p Ft(.)1110 4696 y Fs(hashall)144
+b Ft(Same)30 b(as)h Fs(-h)p Ft(.)1110 4854 y Fs(histexpand)1590
+4963 y Ft(Same)f(as)h Fs(-H)p Ft(.)1110 5121 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 4217 y([Bash)d(History)g(F)-8 b(acilities],)41
-b(page)c(117.)60 b(This)36 b(option)h(is)f(on)1590 4326
-y(b)m(y)30 b(default)h(in)f(in)m(teractiv)m(e)j(shells.)1110
-4485 y Fs(ignoreeof)1590 4595 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 4754
-y Fs(keyword)144 b Ft(Same)30 b(as)h Fs(-k)p Ft(.)1110
-4913 y Fs(monitor)144 b Ft(Same)30 b(as)h Fs(-m)p Ft(.)1110
-5071 y Fs(noclobber)1590 5181 y Ft(Same)f(as)h Fs(-C)p
-Ft(.)1110 5340 y Fs(noexec)192 b Ft(Same)30 b(as)h Fs(-n)p
-Ft(.)p eop end
+(Section)h(9.1)1590 5230 y([Bash)d(History)g(F)-8 b(acilities],)41
+b(page)c(117.)60 b(This)36 b(option)h(is)f(on)1590 5340
+y(b)m(y)30 b(default)h(in)f(in)m(teractiv)m(e)j(shells.)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)1110 299 y
-Fs(noglob)192 b Ft(Same)30 b(as)h Fs(-f)p Ft(.)1110 456
-y Fs(nolog)240 b Ft(Curren)m(tly)30 b(ignored.)1110 614
-y Fs(notify)192 b Ft(Same)30 b(as)h Fs(-b)p Ft(.)1110
-771 y Fs(nounset)144 b Ft(Same)30 b(as)h Fs(-u)p Ft(.)1110
-929 y Fs(onecmd)192 b Ft(Same)30 b(as)h Fs(-t)p Ft(.)1110
-1087 y Fs(physical)96 b Ft(Same)30 b(as)h Fs(-P)p Ft(.)1110
-1244 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 1354 y(the)33 b(last)h(\(righ)m(tmost\))h(command)e(to)h
-(exit)g(with)f(a)g(non-zero)1590 1463 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
-1573 y(cessfully)-8 b(.)41 b(This)30 b(option)h(is)f(disabled)g(b)m(y)h
-(default.)1110 1730 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
-1840 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 1950 y(dard)32
-b(\(see)i(Section)g(6.11)h([Bash)e(POSIX)f(Mo)s(de],)j(page)e(82\).)
-1590 2059 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 2169 y(p)s(erset)30
-b(of)h(that)f(standard.)1110 2326 y Fs(privileged)1590
-2436 y Ft(Same)g(as)h Fs(-p)p Ft(.)1110 2593 y Fs(verbose)144
-b Ft(Same)30 b(as)h Fs(-v)p Ft(.)1110 2751 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 2908 y Fs(xtrace)192 b Ft(Same)30 b(as)h
-Fs(-x)p Ft(.)630 3066 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 3176 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 3285 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
-3395 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 3504
-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 3614 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 3724 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 3833 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 3943 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
-4100 y Fs(-t)384 b Ft(Exit)31 b(after)g(reading)f(and)g(executing)h
-(one)g(command.)630 4258 y Fs(-u)384 b Ft(T)-8 b(reat)38
+Fs(ignoreeof)1590 408 y Ft(An)30 b(in)m(teractiv)m(e)j(shell)e(will)g
+(not)f(exit)h(up)s(on)e(reading)i(EOF.)1110 558 y Fs(keyword)144
+b Ft(Same)30 b(as)h Fs(-k)p Ft(.)1110 708 y Fs(monitor)144
+b Ft(Same)30 b(as)h Fs(-m)p Ft(.)1110 858 y Fs(noclobber)1590
+968 y Ft(Same)f(as)h Fs(-C)p Ft(.)1110 1118 y Fs(noexec)192
+b Ft(Same)30 b(as)h Fs(-n)p Ft(.)1110 1268 y Fs(noglob)192
+b Ft(Same)30 b(as)h Fs(-f)p Ft(.)1110 1418 y Fs(nolog)240
+b Ft(Curren)m(tly)30 b(ignored.)1110 1568 y Fs(notify)192
+b Ft(Same)30 b(as)h Fs(-b)p Ft(.)1110 1718 y Fs(nounset)144
+b Ft(Same)30 b(as)h Fs(-u)p Ft(.)1110 1868 y Fs(onecmd)192
+b Ft(Same)30 b(as)h Fs(-t)p Ft(.)1110 2018 y Fs(physical)96
+b Ft(Same)30 b(as)h Fs(-P)p Ft(.)1110 2168 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 2277 y(the)33
+b(last)h(\(righ)m(tmost\))h(command)e(to)h(exit)g(with)f(a)g(non-zero)
+1590 2387 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 2496 y(cessfully)-8 b(.)41
+b(This)30 b(option)h(is)f(disabled)g(b)m(y)h(default.)1110
+2646 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 2756 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 2866 y(dard)32 b(\(see)i(Section)g(6.11)h([Bash)e
+(POSIX)f(Mo)s(de],)j(page)e(82\).)1590 2975 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
+3085 y(p)s(erset)30 b(of)h(that)f(standard.)1110 3235
+y Fs(privileged)1590 3344 y Ft(Same)g(as)h Fs(-p)p Ft(.)1110
+3494 y Fs(verbose)144 b Ft(Same)30 b(as)h Fs(-v)p Ft(.)1110
+3644 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 3794 y Fs(xtrace)192 b
+Ft(Same)30 b(as)h Fs(-x)p Ft(.)630 3944 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
+4054 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 4163 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 4273 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 4383 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
+4492 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 4602 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 4711 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 4821 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
+4971 y Fs(-t)384 b Ft(Exit)31 b(after)g(reading)f(and)g(executing)h
+(one)g(command.)630 5121 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 4367 y(pansion.)58 b(An)36 b(error)f(message)j
+(parameter)h(ex-)1110 5230 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
-4477 y(and)30 b(a)h(non-in)m(teractiv)m(e)i(shell)d(will)h(exit.)630
-4634 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 4792 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 4902 y Fs(select)29 b Ft(commands,)j(and)e
-(arithmetic)j Fs(for)d Ft(commands)h(and)f(their)i(argu-)1110
-5011 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 5121 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 5230 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 5340 y(argumen)m(ts.)p
+5340 y(and)30 b(a)h(non-in)m(teractiv)m(e)i(shell)d(will)h(exit.)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)630 299 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 408 y(Expansion],)30 b(page)h(17\).)42
-b(This)30 b(option)h(is)f(on)g(b)m(y)h(default.)630 556
-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 666 y(existing)31
-b(\014les.)630 814 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
-923 y(substitutions,)35 b(and)e(commands)g(executed)i(in)f(a)g
-(subshell)f(en)m(vironmen)m(t.)1110 1033 y(The)d Fs(ERR)f
+b(Reference)g(Man)m(ual)630 299 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
+458 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
+568 y Fs(select)29 b Ft(commands,)j(and)e(arithmetic)j
+Fs(for)d Ft(commands)h(and)f(their)i(argu-)1110 677 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 787 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 897 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 1006 y(argumen)m(ts.)630 1166 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 1275 y(Expansion],)30
+b(page)h(17\).)42 b(This)30 b(option)h(is)f(on)g(b)m(y)h(default.)630
+1435 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 1544 y(existing)31
+b(\014les.)630 1704 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 1813 y(substitutions,)35 b(and)e(commands)g(executed)i(in)f(a)g
+(subshell)f(en)m(vironmen)m(t.)1110 1923 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
-1181 y Fs(-H)384 b Ft(Enable)38 b(`)p Fs(!)p Ft(')h(st)m(yle)h(history)
+2082 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
-1290 y(teraction],)g(page)d(119\).)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 1400 y(shells.)630
-1548 y Fs(-P)384 b Ft(If)43 b(set,)k(do)c(not)g(follo)m(w)h(sym)m(b)s
+2192 y(teraction],)g(page)d(119\).)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 2301 y(shells.)630
+2461 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
-1657 y(suc)m(h)29 b(as)h Fs(cd)f Ft(whic)m(h)g(c)m(hange)h(the)g
+2570 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
-1767 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 1877
+2680 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 2790
 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 1986 y(directory)-8 b(.)1110
-2115 y(F)g(or)31 b(example,)g(if)f(`)p Fs(/usr/sys)p
+i(the)f(curren)m(t)1110 2899 y(directory)-8 b(.)1110
+3034 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 2224 y(then:)1350 2353 y Fs($)47 b(cd)h(/usr/sys;)d(echo)i
-($PWD)1350 2463 y(/usr/sys)1350 2572 y($)g(cd)h(..;)f(pwd)1350
-2682 y(/usr)1110 2811 y Ft(If)30 b Fs(set)f(-P)h Ft(is)h(on,)f(then:)
-1350 2939 y Fs($)47 b(cd)h(/usr/sys;)d(echo)i($PWD)1350
-3049 y(/usr/local/sys)1350 3158 y($)g(cd)h(..;)f(pwd)1350
-3268 y(/usr/local)630 3416 y(-T)384 b Ft(If)34 b(set,)j(an)m(y)e(trap)g
+Ft(')1110 3143 y(then:)1350 3278 y Fs($)47 b(cd)h(/usr/sys;)d(echo)i
+($PWD)1350 3387 y(/usr/sys)1350 3497 y($)g(cd)h(..;)f(pwd)1350
+3606 y(/usr)1110 3741 y Ft(If)30 b Fs(set)f(-P)h Ft(is)h(on,)f(then:)
+1350 3875 y Fs($)47 b(cd)h(/usr/sys;)d(echo)i($PWD)1350
+3985 y(/usr/local/sys)1350 4095 y($)g(cd)h(..;)f(pwd)1350
+4204 y(/usr/local)630 4364 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 3525 y(tions,)k(command)d(substitutions,)h(and)f
-(commands)g(executed)h(in)f(a)h(sub-)1110 3635 y(shell)33
+(shell)i(func-)1110 4473 y(tions,)k(command)d(substitutions,)h(and)f
+(commands)g(executed)h(in)f(a)h(sub-)1110 4583 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 3745
-y(inherited)d(in)g(suc)m(h)g(cases.)630 3892 y Fs(--)384
+Fs(RETURN)f Ft(traps)h(are)i(normally)f(not)1110 4692
+y(inherited)d(in)g(suc)m(h)g(cases.)630 4852 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 4002 y(are)h(unset.)49
+(the)h(p)s(ositional)h(parameters)1110 4961 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 4112 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 4260
+(the)g Fq(ar-)1110 5071 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 5230
 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
-4369 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
-4479 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
-4588 y(remain)k(unc)m(hanged.)630 4736 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
-4846 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 4955 y(found)29 b(in)h Fs($-)p Ft(.)630 5084
-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 5194 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 5322 y(The)f(return)f(status)i(is)f(alw)m(a)m
-(ys)i(zero)f(unless)f(an)g(in)m(v)-5 b(alid)31 b(option)g(is)f
-(supplied.)p eop end
+5340 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)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 Fk(4.3.2)63
-b(The)41 b(Shopt)h(Builtin)275 544 y Ft(This)29 b(builtin)h(allo)m(ws)i
-(y)m(ou)e(to)i(c)m(hange)f(additional)g(shell)g(optional)g(b)s(eha)m
-(vior.)150 704 y Fs(shopt)870 839 y(shopt)46 b([-pqsu])g([-o])h([)p
-Fj(optname)56 b Fs(...)o(])630 974 y Ft(T)-8 b(oggle)47
-b(the)d(v)-5 b(alues)45 b(of)g(v)-5 b(ariables)45 b(con)m(trolling)i
-(optional)f(shell)e(b)s(eha)m(vior.)84 b(With)45 b(no)630
-1083 y(options,)32 b(or)f(with)g(the)g(`)p Fs(-p)p Ft(')g(option,)h(a)g
-(list)f(of)h(all)g(settable)g(options)g(is)f(displa)m(y)m(ed,)h(with)
-630 1193 y(an)i(indication)i(of)f(whether)f(or)g(not)h(eac)m(h)h(is)e
-(set.)54 b(The)34 b(`)p Fs(-p)p Ft(')h(option)g(causes)g(output)f(to)
-630 1303 y(b)s(e)i(displa)m(y)m(ed)h(in)e(a)i(form)f(that)h(ma)m(y)g(b)
-s(e)e(reused)h(as)g(input.)58 b(Other)36 b(options)g(ha)m(v)m(e)i(the)
-630 1412 y(follo)m(wing)32 b(meanings:)630 1572 y Fs(-s)384
-b Ft(Enable)30 b(\(set\))i(eac)m(h)f Fq(optname)p Ft(.)630
-1732 y Fs(-u)384 b Ft(Disable)31 b(\(unset\))g(eac)m(h)h
-Fq(optname)p Ft(.)630 1893 y Fs(-q)384 b Ft(Suppresses)28
-b(normal)h(output;)h(the)g(return)e(status)i(indicates)h(whether)e(the)
-1110 2002 y Fq(optname)37 b Ft(is)31 b(set)h(or)f(unset.)43
-b(If)31 b(m)m(ultiple)h Fq(optname)37 b Ft(argumen)m(ts)31
-b(are)h(giv)m(en)1110 2112 y(with)43 b(`)p Fs(-q)p Ft(',)j(the)d
-(return)f(status)h(is)g(zero)h(if)f(all)g Fq(optnames)k
-Ft(are)d(enabled;)1110 2221 y(non-zero)31 b(otherwise.)630
-2381 y Fs(-o)384 b Ft(Restricts)28 b(the)g(v)-5 b(alues)28
-b(of)f Fq(optname)33 b Ft(to)c(b)s(e)d(those)i(de\014ned)f(for)g(the)g
-(`)p Fs(-o)p Ft(')h(op-)1110 2491 y(tion)23 b(to)h(the)f
-Fs(set)f Ft(builtin)h(\(see)g(Section)h(4.3.1)h([The)d(Set)i(Builtin],)
-h(page)e(49\).)630 2651 y(If)29 b(either)i(`)p Fs(-s)p
-Ft(')f(or)g(`)p Fs(-u)p Ft(')f(is)h(used)g(with)f(no)h
-Fq(optname)35 b Ft(argumen)m(ts,)c(the)f(displa)m(y)g(is)g(limited)630
-2761 y(to)h(those)g(options)g(whic)m(h)f(are)h(set)f(or)h(unset,)f
-(resp)s(ectiv)m(ely)-8 b(.)630 2896 y(Unless)30 b(otherwise)h(noted,)g
-(the)g Fs(shopt)d Ft(options)j(are)g(disabled)f(\(o\013)7
-b(\))32 b(b)m(y)e(default.)630 3030 y(The)d(return)f(status)i(when)f
-(listing)h(options)g(is)f(zero)i(if)e(all)i Fq(optnames)i
-Ft(are)d(enabled,)g(non-)630 3140 y(zero)40 b(otherwise.)66
-b(When)39 b(setting)h(or)f(unsetting)g(options,)i(the)e(return)f
-(status)h(is)g(zero)630 3250 y(unless)30 b(an)g Fq(optname)36
-b Ft(is)30 b(not)h(a)g(v)-5 b(alid)30 b(shell)h(option.)630
-3384 y(The)f(list)h(of)f Fs(shopt)f Ft(options)i(is:)630
-3545 y Fs(autocd)192 b Ft(If)27 b(set,)h(a)g(command)f(name)g(that)h
-(is)f(the)g(name)g(of)h(a)f(directory)h(is)f(executed)1110
-3654 y(as)j(if)f(it)h(w)m(ere)f(the)h(argumen)m(t)g(to)g(the)f
-Fs(cd)g Ft(command.)40 b(This)29 b(option)g(is)h(only)1110
-3764 y(used)g(b)m(y)g(in)m(teractiv)m(e)j(shells.)630
-3924 y Fs(cdable_vars)1110 4033 y Ft(If)h(this)h(is)g(set,)i(an)e
-(argumen)m(t)g(to)h(the)f Fs(cd)f Ft(builtin)h(command)f(that)i(is)f
-(not)1110 4143 y(a)c(directory)g(is)g(assumed)f(to)h(b)s(e)f(the)h
-(name)f(of)h(a)g(v)-5 b(ariable)31 b(whose)g(v)-5 b(alue)31
-b(is)1110 4253 y(the)g(directory)f(to)i(c)m(hange)f(to.)630
-4413 y Fs(cdspell)144 b Ft(If)27 b(set,)h(minor)f(errors)f(in)h(the)g
-(sp)s(elling)h(of)f(a)g(directory)h(comp)s(onen)m(t)f(in)g(a)h
-Fs(cd)1110 4522 y Ft(command)i(will)h(b)s(e)f(corrected.)43
-b(The)30 b(errors)g(c)m(hec)m(k)m(ed)j(for)d(are)h(transp)s(osed)1110
-4632 y(c)m(haracters,)46 b(a)c(missing)f(c)m(haracter,)47
-b(and)40 b(a)i(c)m(haracter)h(to)s(o)g(man)m(y)-8 b(.)74
-b(If)42 b(a)1110 4742 y(correction)25 b(is)e(found,)g(the)h(corrected)g
-(path)f(is)g(prin)m(ted,)h(and)f(the)g(command)1110 4851
-y(pro)s(ceeds.)40 b(This)30 b(option)h(is)f(only)h(used)e(b)m(y)h(in)m
-(teractiv)m(e)k(shells.)630 5011 y Fs(checkhash)1110
-5121 y Ft(If)29 b(this)h(is)g(set,)g(Bash)g(c)m(hec)m(ks)h(that)g(a)f
-(command)f(found)g(in)g(the)h(hash)f(table)1110 5230
-y(exists)k(b)s(efore)f(trying)h(to)h(execute)g(it.)48
-b(If)32 b(a)h(hashed)e(command)i(no)f(longer)1110 5340
-y(exists,)f(a)g(normal)f(path)g(searc)m(h)h(is)g(p)s(erformed.)p
-eop end
+b(Shell)30 b(Builtin)h(Commands)2069 b(53)1110 299 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 408 y(remain)k(unc)m(hanged.)630
+568 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 678 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
+787 y(found)29 b(in)h Fs($-)p Ft(.)630 922 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 1032 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
+1166 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 1391
+y Fk(4.3.2)63 b(The)41 b(Shopt)h(Builtin)275 1635 y Ft(This)29
+b(builtin)h(allo)m(ws)i(y)m(ou)e(to)i(c)m(hange)f(additional)g(shell)g
+(optional)g(b)s(eha)m(vior.)150 1795 y Fs(shopt)870 1930
+y(shopt)46 b([-pqsu])g([-o])h([)p Fj(optname)56 b Fs(...)o(])630
+2065 y Ft(T)-8 b(oggle)47 b(the)d(v)-5 b(alues)45 b(of)g(v)-5
+b(ariables)45 b(con)m(trolling)i(optional)f(shell)e(b)s(eha)m(vior.)84
+b(With)45 b(no)630 2174 y(options,)32 b(or)f(with)g(the)g(`)p
+Fs(-p)p Ft(')g(option,)h(a)g(list)f(of)h(all)g(settable)g(options)g(is)
+f(displa)m(y)m(ed,)h(with)630 2284 y(an)i(indication)i(of)f(whether)f
+(or)g(not)h(eac)m(h)h(is)e(set.)54 b(The)34 b(`)p Fs(-p)p
+Ft(')h(option)g(causes)g(output)f(to)630 2393 y(b)s(e)i(displa)m(y)m
+(ed)h(in)e(a)i(form)f(that)h(ma)m(y)g(b)s(e)e(reused)h(as)g(input.)58
+b(Other)36 b(options)g(ha)m(v)m(e)i(the)630 2503 y(follo)m(wing)32
+b(meanings:)630 2663 y Fs(-s)384 b Ft(Enable)30 b(\(set\))i(eac)m(h)f
+Fq(optname)p Ft(.)630 2822 y Fs(-u)384 b Ft(Disable)31
+b(\(unset\))g(eac)m(h)h Fq(optname)p Ft(.)630 2982 y
+Fs(-q)384 b Ft(Suppresses)28 b(normal)h(output;)h(the)g(return)e
+(status)i(indicates)h(whether)e(the)1110 3092 y Fq(optname)37
+b Ft(is)31 b(set)h(or)f(unset.)43 b(If)31 b(m)m(ultiple)h
+Fq(optname)37 b Ft(argumen)m(ts)31 b(are)h(giv)m(en)1110
+3201 y(with)43 b(`)p Fs(-q)p Ft(',)j(the)d(return)f(status)h(is)g(zero)
+h(if)f(all)g Fq(optnames)k Ft(are)d(enabled;)1110 3311
+y(non-zero)31 b(otherwise.)630 3471 y Fs(-o)384 b Ft(Restricts)28
+b(the)g(v)-5 b(alues)28 b(of)f Fq(optname)33 b Ft(to)c(b)s(e)d(those)i
+(de\014ned)f(for)g(the)g(`)p Fs(-o)p Ft(')h(op-)1110
+3580 y(tion)23 b(to)h(the)f Fs(set)f Ft(builtin)h(\(see)g(Section)h
+(4.3.1)h([The)d(Set)i(Builtin],)h(page)e(49\).)630 3740
+y(If)29 b(either)i(`)p Fs(-s)p Ft(')f(or)g(`)p Fs(-u)p
+Ft(')f(is)h(used)g(with)f(no)h Fq(optname)35 b Ft(argumen)m(ts,)c(the)f
+(displa)m(y)g(is)g(limited)630 3849 y(to)h(those)g(options)g(whic)m(h)f
+(are)h(set)f(or)h(unset,)f(resp)s(ectiv)m(ely)-8 b(.)630
+3984 y(Unless)30 b(otherwise)h(noted,)g(the)g Fs(shopt)d
+Ft(options)j(are)g(disabled)f(\(o\013)7 b(\))32 b(b)m(y)e(default.)630
+4119 y(The)d(return)f(status)i(when)f(listing)h(options)g(is)f(zero)i
+(if)e(all)i Fq(optnames)i Ft(are)d(enabled,)g(non-)630
+4228 y(zero)40 b(otherwise.)66 b(When)39 b(setting)h(or)f(unsetting)g
+(options,)i(the)e(return)f(status)h(is)g(zero)630 4338
+y(unless)30 b(an)g Fq(optname)36 b Ft(is)30 b(not)h(a)g(v)-5
+b(alid)30 b(shell)h(option.)630 4473 y(The)f(list)h(of)f
+Fs(shopt)f Ft(options)i(is:)630 4632 y Fs(autocd)192
+b Ft(If)27 b(set,)h(a)g(command)f(name)g(that)h(is)f(the)g(name)g(of)h
+(a)f(directory)h(is)f(executed)1110 4742 y(as)j(if)f(it)h(w)m(ere)f
+(the)h(argumen)m(t)g(to)g(the)f Fs(cd)g Ft(command.)40
+b(This)29 b(option)g(is)h(only)1110 4851 y(used)g(b)m(y)g(in)m
+(teractiv)m(e)j(shells.)630 5011 y Fs(cdable_vars)1110
+5121 y Ft(If)h(this)h(is)g(set,)i(an)e(argumen)m(t)g(to)h(the)f
+Fs(cd)f Ft(builtin)h(command)f(that)i(is)f(not)1110 5230
+y(a)c(directory)g(is)g(assumed)f(to)h(b)s(e)f(the)h(name)f(of)h(a)g(v)
+-5 b(ariable)31 b(whose)g(v)-5 b(alue)31 b(is)1110 5340
+y(the)g(directory)f(to)i(c)m(hange)f(to.)p eop end
 %%Page: 54 60
 TeXDict begin 54 59 bop 150 -116 a Ft(54)2572 b(Bash)31
-b(Reference)g(Man)m(ual)630 299 y Fs(checkjobs)1110 408
-y Ft(If)d(set,)i(Bash)e(lists)h(the)g(status)g(of)f(an)m(y)h(stopp)s
-(ed)f(and)g(running)e(jobs)i(b)s(efore)1110 518 y(exiting)42
-b(an)f(in)m(teractiv)m(e)j(shell.)72 b(If)41 b(an)m(y)g(jobs)f(are)i
-(running,)g(this)f(causes)1110 628 y(the)30 b(exit)g(to)g(b)s(e)f
-(deferred)g(un)m(til)h(a)f(second)h(exit)g(is)g(attempted)h(without)e
-(an)1110 737 y(in)m(terv)m(ening)j(command)e(\(see)h(Chapter)f(7)h
-([Job)f(Con)m(trol],)i(page)f(87\).)42 b(The)1110 847
-y(shell)31 b(alw)m(a)m(ys)g(p)s(ostp)s(ones)f(exiting)h(if)g(an)m(y)f
-(jobs)g(are)h(stopp)s(ed.)630 1011 y Fs(checkwinsize)1110
-1121 y Ft(If)41 b(set,)k(Bash)c(c)m(hec)m(ks)i(the)f(windo)m(w)e(size)j
-(after)f(eac)m(h)g(command)f(and,)j(if)1110 1230 y(necessary)-8
+b(Reference)g(Man)m(ual)630 299 y Fs(cdspell)144 b Ft(If)27
+b(set,)h(minor)f(errors)f(in)h(the)g(sp)s(elling)h(of)f(a)g(directory)h
+(comp)s(onen)m(t)f(in)g(a)h Fs(cd)1110 408 y Ft(command)i(will)h(b)s(e)
+f(corrected.)43 b(The)30 b(errors)g(c)m(hec)m(k)m(ed)j(for)d(are)h
+(transp)s(osed)1110 518 y(c)m(haracters,)46 b(a)c(missing)f(c)m
+(haracter,)47 b(and)40 b(a)i(c)m(haracter)h(to)s(o)g(man)m(y)-8
+b(.)74 b(If)42 b(a)1110 628 y(correction)25 b(is)e(found,)g(the)h
+(corrected)g(path)f(is)g(prin)m(ted,)h(and)f(the)g(command)1110
+737 y(pro)s(ceeds.)40 b(This)30 b(option)h(is)f(only)h(used)e(b)m(y)h
+(in)m(teractiv)m(e)k(shells.)630 889 y Fs(checkhash)1110
+998 y Ft(If)29 b(this)h(is)g(set,)g(Bash)g(c)m(hec)m(ks)h(that)g(a)f
+(command)f(found)g(in)g(the)h(hash)f(table)1110 1108
+y(exists)k(b)s(efore)f(trying)h(to)h(execute)g(it.)48
+b(If)32 b(a)h(hashed)e(command)i(no)f(longer)1110 1217
+y(exists,)f(a)g(normal)f(path)g(searc)m(h)h(is)g(p)s(erformed.)630
+1369 y Fs(checkjobs)1110 1478 y Ft(If)d(set,)i(Bash)e(lists)h(the)g
+(status)g(of)f(an)m(y)h(stopp)s(ed)f(and)g(running)e(jobs)i(b)s(efore)
+1110 1588 y(exiting)42 b(an)f(in)m(teractiv)m(e)j(shell.)72
+b(If)41 b(an)m(y)g(jobs)f(are)i(running,)g(this)f(causes)1110
+1697 y(the)30 b(exit)g(to)g(b)s(e)f(deferred)g(un)m(til)h(a)f(second)h
+(exit)g(is)g(attempted)h(without)e(an)1110 1807 y(in)m(terv)m(ening)j
+(command)e(\(see)h(Chapter)f(7)h([Job)f(Con)m(trol],)i(page)f(87\).)42
+b(The)1110 1917 y(shell)31 b(alw)m(a)m(ys)g(p)s(ostp)s(ones)f(exiting)h
+(if)g(an)m(y)f(jobs)g(are)h(stopp)s(ed.)630 2068 y Fs(checkwinsize)1110
+2178 y Ft(If)41 b(set,)k(Bash)c(c)m(hec)m(ks)i(the)f(windo)m(w)e(size)j
+(after)f(eac)m(h)g(command)f(and,)j(if)1110 2287 y(necessary)-8
 b(,)31 b(up)s(dates)f(the)g(v)-5 b(alues)31 b(of)g Fs(LINES)e
-Ft(and)g Fs(COLUMNS)p Ft(.)630 1395 y Fs(cmdhist)144
+Ft(and)g Fs(COLUMNS)p Ft(.)630 2438 y Fs(cmdhist)144
 b Ft(If)33 b(set,)j(Bash)e(attempts)h(to)g(sa)m(v)m(e)g(all)g(lines)f
-(of)g(a)h(m)m(ultiple-line)g(command)1110 1504 y(in)c(the)g(same)g
+(of)g(a)h(m)m(ultiple-line)g(command)1110 2548 y(in)c(the)g(same)g
 (history)g(en)m(try)-8 b(.)42 b(This)30 b(allo)m(ws)i(easy)g
-(re-editing)g(of)f(m)m(ulti-line)1110 1614 y(commands.)630
-1778 y Fs(compat31)96 b Ft(If)27 b(set,)i(Bash)e(c)m(hanges)i(its)f(b)s
+(re-editing)g(of)f(m)m(ulti-line)1110 2658 y(commands.)630
+2809 y Fs(compat31)96 b Ft(If)27 b(set,)i(Bash)e(c)m(hanges)i(its)f(b)s
 (eha)m(vior)f(to)i(that)f(of)f(v)m(ersion)h(3.1)h(with)e(resp)s(ect)
-1110 1888 y(to)k(quoted)g(argumen)m(ts)f(to)h(the)g(conditional)h
-(command's)e(=)p Fs(~)g Ft(op)s(erator.)630 2052 y Fs(dotglob)144
+1110 2919 y(to)k(quoted)g(argumen)m(ts)f(to)h(the)g(conditional)h
+(command's)e(=)p Fs(~)g Ft(op)s(erator.)630 3070 y Fs(dotglob)144
 b Ft(If)27 b(set,)i(Bash)f(includes)g(\014lenames)g(b)s(eginning)f
 (with)g(a)h(`.')41 b(in)27 b(the)h(results)g(of)1110
-2162 y(\014lename)j(expansion.)630 2326 y Fs(execfail)96
+3180 y(\014lename)j(expansion.)630 3331 y Fs(execfail)96
 b Ft(If)24 b(this)h(is)f(set,)j(a)e(non-in)m(teractiv)m(e)i(shell)e
 (will)f(not)h(exit)h(if)e(it)h(cannot)h(execute)1110
-2436 y(the)i(\014le)g(sp)s(eci\014ed)g(as)g(an)g(argumen)m(t)g(to)h
-(the)f Fs(exec)f Ft(builtin)h(command.)39 b(An)1110 2545
+3440 y(the)i(\014le)g(sp)s(eci\014ed)g(as)g(an)g(argumen)m(t)g(to)h
+(the)f Fs(exec)f Ft(builtin)h(command.)39 b(An)1110 3550
 y(in)m(teractiv)m(e)33 b(shell)e(do)s(es)f(not)g(exit)i(if)e
-Fs(exec)f Ft(fails.)630 2710 y Fs(expand_aliases)1110
-2819 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 2929 y(tion)38
+Fs(exec)f Ft(fails.)630 3701 y Fs(expand_aliases)1110
+3811 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 3921 y(tion)38
 b(6.6)h([Aliases],)j(page)d(77.)64 b(This)37 b(option)h(is)g(enabled)g
-(b)m(y)g(default)g(for)1110 3039 y(in)m(teractiv)m(e)33
-b(shells.)630 3203 y Fs(extdebug)96 b Ft(If)30 b(set,)h(b)s(eha)m(vior)
+(b)m(y)g(default)g(for)1110 4030 y(in)m(teractiv)m(e)33
+b(shells.)630 4181 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
-3340 y(1.)61 b(The)32 b(`)p Fs(-F)p Ft(')g(option)h(to)g(the)g
+4312 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
-3450 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 3559 y(b)s(er)h(corresp)s
+4422 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 4531 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 3669 y(men)m(t.)1159 3806 y(2.)61 b(If)20 b(the)h(command)g(run)e
+1290 4641 y(men)m(t.)1159 4771 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 3915 y(the)31 b(next)f(command)g(is)h(skipp)s(ed)e(and)g
-(not)i(executed.)1159 4052 y(3.)61 b(If)37 b(the)g(command)g(run)f(b)m
+b(alue,)1290 4881 y(the)31 b(next)f(command)g(is)h(skipp)s(ed)e(and)g
+(not)i(executed.)1159 5011 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 4162 y(and)c(the)g(shell)h(is)f(executing)i(in)e(a)h
-(subroutine)e(\(a)i(shell)g(function)f(or)1290 4271 y(a)h(shell)h
+b(of)f(2,)1290 5121 y(and)c(the)g(shell)h(is)f(executing)i(in)e(a)h
+(subroutine)e(\(a)i(shell)g(function)f(or)1290 5230 y(a)h(shell)h
 (script)f(executed)h(b)m(y)f(the)g Fs(.)g Ft(or)g Fs(source)e
-Ft(builtins\),)j(a)g(call)g(to)1290 4381 y Fs(return)29
-b Ft(is)h(sim)m(ulated.)1159 4518 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 4628 y(descriptions)30 b(\(see)i(Section)f(5.2)g([Bash)g
-(V)-8 b(ariables],)32 b(page)f(59\).)1159 4765 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 4874 y(functions,)30
-b(and)f(subshells)g(in)m(v)m(ok)m(ed)j(with)d Fs(\()h
-Fj(command)39 b Fs(\))30 b Ft(inherit)g(the)1290 4984
-y Fs(DEBUG)f Ft(and)h Fs(RETURN)e Ft(traps.)1159 5121
-y(6.)61 b(Error)74 b(tracing)i(is)f(enabled:)131 b(command)74
-b(substitution,)87 b(shell)1290 5230 y(functions,)30
-b(and)f(subshells)g(in)m(v)m(ok)m(ed)j(with)d Fs(\()h
-Fj(command)39 b Fs(\))30 b Ft(inherit)g(the)1290 5340
-y Fs(ERROR)f Ft(trap.)p eop end
+Ft(builtins\),)j(a)g(call)g(to)1290 5340 y Fs(return)29
+b Ft(is)h(sim)m(ulated.)p eop end
 %%Page: 55 61
 TeXDict begin 55 60 bop 150 -116 a Ft(Chapter)30 b(4:)41
-b(Shell)30 b(Builtin)h(Commands)2069 b(55)630 299 y Fs(extglob)144
-b Ft(If)26 b(set,)i(the)f(extended)f(pattern)h(matc)m(hing)g(features)g
-(describ)s(ed)e(ab)s(o)m(v)m(e)j(\(see)1110 408 y(Section)j(3.5.8.1)i
-([P)m(attern)f(Matc)m(hing],)g(page)f(24\))h(are)f(enabled.)630
-558 y Fs(extquote)96 b Ft(If)49 b(set,)54 b Fs($')p Fj(string)11
-b Fs(')46 b Ft(and)j Fs($")p Fj(string)11 b Fs(")46 b
-Ft(quoting)k(is)f(p)s(erformed)e(within)1110 667 y Fs(${)p
-Fj(parameter)11 b Fs(})30 b Ft(expansions)j(enclosed)h(in)g(double)f
-(quotes.)51 b(This)32 b(option)1110 777 y(is)e(enabled)h(b)m(y)f
-(default.)630 927 y Fs(failglob)96 b Ft(If)30 b(set,)g(patterns)g(whic)
-m(h)g(fail)h(to)g(matc)m(h)g(\014lenames)f(during)e(pathname)i(ex-)1110
-1036 y(pansion)g(result)g(in)g(an)g(expansion)h(error.)630
-1186 y Fs(force_fignore)1110 1295 y Ft(If)43 b(set,)k(the)d(su\016xes)f
-(sp)s(eci\014ed)f(b)m(y)i(the)f Fs(FIGNORE)f Ft(shell)h(v)-5
-b(ariable)44 b(cause)1110 1405 y(w)m(ords)31 b(to)h(b)s(e)f(ignored)h
-(when)f(p)s(erforming)f(w)m(ord)h(completion)i(ev)m(en)f(if)g(the)1110
-1514 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 1624 y([Bash)24
-b(V)-8 b(ariables],)27 b(page)e(59,)h(for)d(a)h(description)g(of)g
-Fs(FIGNORE)p Ft(.)37 b(This)22 b(option)1110 1733 y(is)30
-b(enabled)h(b)m(y)f(default.)630 1883 y Fs(gnu_errfmt)1110
-1993 y Ft(If)35 b(set,)j(shell)e(error)g(messages)g(are)h(written)e(in)
-h(the)g(standard)f Fl(gnu)g Ft(error)1110 2102 y(message)c(format.)630
-2252 y Fs(histappend)1110 2361 y Ft(If)c(set,)j(the)e(history)g(list)g
+b(Shell)30 b(Builtin)h(Commands)2069 b(55)1159 299 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 408 y(descriptions)30
+b(\(see)i(Section)f(5.2)g([Bash)g(V)-8 b(ariables],)32
+b(page)f(59\).)1159 551 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
+661 y(functions,)30 b(and)f(subshells)g(in)m(v)m(ok)m(ed)j(with)d
+Fs(\()h Fj(command)39 b Fs(\))30 b Ft(inherit)g(the)1290
+770 y Fs(DEBUG)f Ft(and)h Fs(RETURN)e Ft(traps.)1159
+913 y(6.)61 b(Error)74 b(tracing)i(is)f(enabled:)131
+b(command)74 b(substitution,)87 b(shell)1290 1022 y(functions,)30
+b(and)f(subshells)g(in)m(v)m(ok)m(ed)j(with)d Fs(\()h
+Fj(command)39 b Fs(\))30 b Ft(inherit)g(the)1290 1132
+y Fs(ERROR)f Ft(trap.)630 1307 y Fs(extglob)144 b Ft(If)26
+b(set,)i(the)f(extended)f(pattern)h(matc)m(hing)g(features)g(describ)s
+(ed)e(ab)s(o)m(v)m(e)j(\(see)1110 1417 y(Section)j(3.5.8.1)i([P)m
+(attern)f(Matc)m(hing],)g(page)f(24\))h(are)f(enabled.)630
+1592 y Fs(extquote)96 b Ft(If)49 b(set,)54 b Fs($')p
+Fj(string)11 b Fs(')46 b Ft(and)j Fs($")p Fj(string)11
+b Fs(")46 b Ft(quoting)k(is)f(p)s(erformed)e(within)1110
+1702 y Fs(${)p Fj(parameter)11 b Fs(})30 b Ft(expansions)j(enclosed)h
+(in)g(double)f(quotes.)51 b(This)32 b(option)1110 1811
+y(is)e(enabled)h(b)m(y)f(default.)630 1987 y Fs(failglob)96
+b Ft(If)30 b(set,)g(patterns)g(whic)m(h)g(fail)h(to)g(matc)m(h)g
+(\014lenames)f(during)e(pathname)i(ex-)1110 2096 y(pansion)g(result)g
+(in)g(an)g(expansion)h(error.)630 2271 y Fs(force_fignore)1110
+2381 y Ft(If)43 b(set,)k(the)d(su\016xes)f(sp)s(eci\014ed)f(b)m(y)i
+(the)f Fs(FIGNORE)f Ft(shell)h(v)-5 b(ariable)44 b(cause)1110
+2491 y(w)m(ords)31 b(to)h(b)s(e)f(ignored)h(when)f(p)s(erforming)f(w)m
+(ord)h(completion)i(ev)m(en)f(if)g(the)1110 2600 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 2710 y([Bash)24 b(V)-8
+b(ariables],)27 b(page)e(59,)h(for)d(a)h(description)g(of)g
+Fs(FIGNORE)p Ft(.)37 b(This)22 b(option)1110 2819 y(is)30
+b(enabled)h(b)m(y)f(default.)630 2995 y Fs(gnu_errfmt)1110
+3104 y Ft(If)35 b(set,)j(shell)e(error)g(messages)g(are)h(written)e(in)
+h(the)g(standard)f Fl(gnu)g Ft(error)1110 3214 y(message)c(format.)630
+3389 y Fs(histappend)1110 3499 y Ft(If)c(set,)j(the)e(history)g(list)g
 (is)g(app)s(ended)e(to)j(the)f(\014le)g(named)f(b)m(y)h(the)g(v)-5
-b(alue)29 b(of)1110 2471 y(the)d Fs(HISTFILE)d Ft(v)-5
+b(alue)29 b(of)1110 3608 y(the)d Fs(HISTFILE)d Ft(v)-5
 b(ariable)26 b(when)e(the)h(shell)h(exits,)h(rather)e(than)h(o)m(v)m
-(erwriting)1110 2580 y(the)31 b(\014le.)630 2730 y Fs(histreedit)1110
-2839 y Ft(If)i(set,)h(and)f(Readline)h(is)f(b)s(eing)g(used,)g(a)g
+(erwriting)1110 3718 y(the)31 b(\014le.)630 3893 y Fs(histreedit)1110
+4003 y Ft(If)i(set,)h(and)f(Readline)h(is)f(b)s(eing)g(used,)g(a)g
 (user)g(is)g(giv)m(en)h(the)g(opp)s(ortunit)m(y)1110
-2949 y(to)d(re-edit)g(a)g(failed)g(history)f(substitution.)630
-3098 y Fs(histverify)1110 3208 y Ft(If)35 b(set,)i(and)e(Readline)h(is)
+4113 y(to)d(re-edit)g(a)g(failed)g(history)f(substitution.)630
+4288 y Fs(histverify)1110 4398 y Ft(If)35 b(set,)i(and)e(Readline)h(is)
 f(b)s(eing)g(used,)h(the)f(results)g(of)g(history)h(substitu-)1110
-3318 y(tion)h(are)g(not)g(immediately)h(passed)e(to)h(the)g(shell)g
-(parser.)59 b(Instead,)38 b(the)1110 3427 y(resulting)i(line)f(is)h
+4507 y(tion)h(are)g(not)g(immediately)h(passed)e(to)h(the)g(shell)g
+(parser.)59 b(Instead,)38 b(the)1110 4617 y(resulting)i(line)f(is)h
 (loaded)g(in)m(to)g(the)g(Readline)g(editing)g(bu\013er,)h(allo)m(wing)
-1110 3537 y(further)29 b(mo)s(di\014cation.)630 3686
-y Fs(hostcomplete)1110 3796 y Ft(If)38 b(set,)j(and)c(Readline)i(is)f
+1110 4726 y(further)29 b(mo)s(di\014cation.)630 4902
+y Fs(hostcomplete)1110 5011 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
-3905 y(hostname)d(completion)h(when)e(a)h(w)m(ord)f(con)m(taining)i(a)f
-(`)p Fs(@)p Ft(')g(is)g(b)s(eing)f(com-)1110 4015 y(pleted)g(\(see)h
+5121 y(hostname)d(completion)h(when)e(a)h(w)m(ord)f(con)m(taining)i(a)f
+(`)p Fs(@)p Ft(')g(is)g(b)s(eing)f(com-)1110 5230 y(pleted)g(\(see)h
 (Section)f(8.4.6)i([Commands)d(F)-8 b(or)36 b(Completion],)g(page)g
-(107\).)1110 4125 y(This)30 b(option)g(is)h(enabled)f(b)m(y)g(default.)
-630 4274 y Fs(huponexit)1110 4384 y Ft(If)i(set,)i(Bash)f(will)h(send)d
-Fs(SIGHUP)h Ft(to)h(all)h(jobs)e(when)g(an)g(in)m(teractiv)m(e)k(login)
-1110 4493 y(shell)31 b(exits)g(\(see)g(Section)g(3.7.6)h([Signals],)g
-(page)f(32\).)630 4643 y Fs(interactive_comments)1110
-4752 y Ft(Allo)m(w)c(a)g(w)m(ord)e(b)s(eginning)g(with)h(`)p
-Fs(#)p Ft(')g(to)h(cause)f(that)h(w)m(ord)f(and)f(all)i(remain-)1110
-4862 y(ing)41 b(c)m(haracters)i(on)e(that)h(line)g(to)g(b)s(e)f
-(ignored)g(in)g(an)g(in)m(teractiv)m(e)j(shell.)1110
-4971 y(This)30 b(option)g(is)h(enabled)f(b)m(y)g(default.)630
-5121 y Fs(lithist)144 b Ft(If)22 b(enabled,)i(and)d(the)h
-Fs(cmdhist)e Ft(option)j(is)f(enabled,)i(m)m(ulti-line)f(commands)1110
-5230 y(are)28 b(sa)m(v)m(ed)h(to)g(the)f(history)g(with)f(em)m(b)s
-(edded)g(newlines)h(rather)g(than)f(using)1110 5340 y(semicolon)32
-b(separators)f(where)e(p)s(ossible.)p eop end
+(107\).)1110 5340 y(This)30 b(option)g(is)h(enabled)f(b)m(y)g(default.)
+p eop end
 %%Page: 56 62
 TeXDict begin 56 61 bop 150 -116 a Ft(56)2572 b(Bash)31
-b(Reference)g(Man)m(ual)630 299 y Fs(login_shell)1110
-408 y Ft(The)k(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 518 y(tion)29
-b(6.1)g([In)m(v)m(oking)h(Bash],)f(page)g(69\).)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
-677 y Fs(mailwarn)96 b Ft(If)34 b(set,)i(and)e(a)h(\014le)g(that)g
+b(Reference)g(Man)m(ual)630 299 y Fs(huponexit)1110 408
+y Ft(If)h(set,)i(Bash)f(will)h(send)d Fs(SIGHUP)h Ft(to)h(all)h(jobs)e
+(when)g(an)g(in)m(teractiv)m(e)k(login)1110 518 y(shell)31
+b(exits)g(\(see)g(Section)g(3.7.6)h([Signals],)g(page)f(32\).)630
+667 y Fs(interactive_comments)1110 777 y Ft(Allo)m(w)c(a)g(w)m(ord)e(b)
+s(eginning)g(with)h(`)p Fs(#)p Ft(')g(to)h(cause)f(that)h(w)m(ord)f
+(and)f(all)i(remain-)1110 887 y(ing)41 b(c)m(haracters)i(on)e(that)h
+(line)g(to)g(b)s(e)f(ignored)g(in)g(an)g(in)m(teractiv)m(e)j(shell.)
+1110 996 y(This)30 b(option)g(is)h(enabled)f(b)m(y)g(default.)630
+1146 y Fs(lithist)144 b Ft(If)22 b(enabled,)i(and)d(the)h
+Fs(cmdhist)e Ft(option)j(is)f(enabled,)i(m)m(ulti-line)f(commands)1110
+1255 y(are)28 b(sa)m(v)m(ed)h(to)g(the)f(history)g(with)f(em)m(b)s
+(edded)g(newlines)h(rather)g(than)f(using)1110 1365 y(semicolon)32
+b(separators)f(where)e(p)s(ossible.)630 1514 y Fs(login_shell)1110
+1624 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
+1733 y(tion)29 b(6.1)g([In)m(v)m(oking)h(Bash],)f(page)g(69\).)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
+1883 y Fs(mailwarn)96 b Ft(If)34 b(set,)i(and)e(a)h(\014le)g(that)g
 (Bash)f(is)h(c)m(hec)m(king)h(for)f(mail)g(has)f(b)s(een)g(accessed)
-1110 787 y(since)24 b(the)h(last)g(time)f(it)h(w)m(as)f(c)m(hec)m(k)m
+1110 1993 y(since)24 b(the)h(last)g(time)f(it)h(w)m(as)f(c)m(hec)m(k)m
 (ed,)k(the)c(message)h Fs("The)k(mail)h(in)f Fj(mail-)1110
-897 y(file)40 b Fs(has)29 b(been)g(read")g Ft(is)i(displa)m(y)m(ed.)630
-1056 y Fs(no_empty_cmd_completion)1110 1166 y Ft(If)f(set,)g(and)g
+2102 y(file)40 b Fs(has)29 b(been)g(read")g Ft(is)i(displa)m(y)m(ed.)
+630 2252 y Fs(no_empty_cmd_completion)1110 2361 y Ft(If)f(set,)g(and)g
 (Readline)g(is)h(b)s(eing)e(used,)h(Bash)g(will)g(not)g(attempt)i(to)e
-(searc)m(h)1110 1275 y(the)25 b Fs(PATH)f Ft(for)h(p)s(ossible)f
+(searc)m(h)1110 2471 y(the)25 b Fs(PATH)f Ft(for)h(p)s(ossible)f
 (completions)j(when)d(completion)i(is)f(attempted)h(on)1110
-1385 y(an)k(empt)m(y)h(line.)630 1544 y Fs(nocaseglob)1110
-1654 y Ft(If)38 b(set,)k(Bash)d(matc)m(hes)g(\014lenames)g(in)f(a)h
-(case-insensitiv)m(e)j(fashion)c(when)1110 1763 y(p)s(erforming)29
-b(\014lename)i(expansion.)630 1923 y Fs(nocasematch)1110
-2032 y Ft(If)42 b(set,)k(Bash)d(matc)m(hes)g(patterns)g(in)f(a)h
-(case-insensitiv)m(e)i(fashion)d(when)1110 2142 y(p)s(erforming)31
+2580 y(an)k(empt)m(y)h(line.)630 2730 y Fs(nocaseglob)1110
+2839 y Ft(If)38 b(set,)k(Bash)d(matc)m(hes)g(\014lenames)g(in)f(a)h
+(case-insensitiv)m(e)j(fashion)c(when)1110 2949 y(p)s(erforming)29
+b(\014lename)i(expansion.)630 3098 y Fs(nocasematch)1110
+3208 y Ft(If)42 b(set,)k(Bash)d(matc)m(hes)g(patterns)g(in)f(a)h
+(case-insensitiv)m(e)i(fashion)d(when)1110 3318 y(p)s(erforming)31
 b(matc)m(hing)i(while)f(executing)i Fs(case)d Ft(or)h
-Fs([[)g Ft(conditional)h(com-)1110 2252 y(mands.)630
-2411 y Fs(nullglob)96 b Ft(If)23 b(set,)j(Bash)e(allo)m(ws)g
+Fs([[)g Ft(conditional)h(com-)1110 3427 y(mands.)630
+3577 y Fs(nullglob)96 b Ft(If)23 b(set,)j(Bash)e(allo)m(ws)g
 (\014lename)g(patterns)g(whic)m(h)f(matc)m(h)h(no)g(\014les)f(to)i
-(expand)1110 2521 y(to)31 b(a)g(n)m(ull)f(string,)h(rather)f(than)g
-(themselv)m(es.)630 2680 y Fs(progcomp)96 b Ft(If)25
+(expand)1110 3686 y(to)31 b(a)g(n)m(ull)f(string,)h(rather)f(than)g
+(themselv)m(es.)630 3836 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 2790 y(grammable)45 b(Completion],)k(page)c
+(Section)f(8.6)h([Pro-)1110 3945 y(grammable)45 b(Completion],)k(page)c
 (111\))h(are)f(enabled.)82 b(This)44 b(option)h(is)1110
-2899 y(enabled)30 b(b)m(y)h(default.)630 3059 y Fs(promptvars)1110
-3168 y Ft(If)24 b(set,)i(prompt)d(strings)h(undergo)f(parameter)i
-(expansion,)g(command)f(sub-)1110 3278 y(stitution,)34
+4055 y(enabled)30 b(b)m(y)h(default.)630 4204 y Fs(promptvars)1110
+4314 y Ft(If)24 b(set,)i(prompt)d(strings)h(undergo)f(parameter)i
+(expansion,)g(command)f(sub-)1110 4423 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 3387 y(panded)39
+b(al)33 b(after)g(b)s(eing)e(ex-)1110 4533 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 3497 y(page)31 b(81\).)42 b(This)30
-b(option)g(is)h(enabled)f(b)m(y)g(default.)630 3656 y
-Fs(restricted_shell)1110 3766 y Ft(The)40 b(shell)h(sets)g(this)g
+(ting)g(a)g(Prompt],)1110 4643 y(page)31 b(81\).)42 b(This)30
+b(option)g(is)h(enabled)f(b)m(y)g(default.)630 4792 y
+Fs(restricted_shell)1110 4902 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 3875 y(Section)c(6.10)g([The)f(Restricted)g(Shell],)i(page)e
+1110 5011 y(Section)c(6.10)g([The)f(Restricted)g(Shell],)i(page)e
 (82\).)56 b(The)34 b(v)-5 b(alue)35 b(ma)m(y)h(not)1110
-3985 y(b)s(e)c(c)m(hanged.)49 b(This)32 b(is)h(not)h(reset)f(when)f
-(the)h(startup)g(\014les)f(are)i(executed,)1110 4095
+5121 y(b)s(e)c(c)m(hanged.)49 b(This)32 b(is)h(not)h(reset)f(when)f
+(the)h(startup)g(\014les)f(are)i(executed,)1110 5230
 y(allo)m(wing)k(the)e(startup)f(\014les)h(to)g(disco)m(v)m(er)h
-(whether)f(or)f(not)i(a)f(shell)g(is)g(re-)1110 4204
-y(stricted.)630 4364 y Fs(shift_verbose)1110 4473 y Ft(If)g(this)g(is)g
-(set,)j(the)d Fs(shift)f Ft(builtin)h(prin)m(ts)f(an)h(error)g(message)
-i(when)d(the)1110 4583 y(shift)30 b(coun)m(t)h(exceeds)g(the)g(n)m(um)m
-(b)s(er)e(of)h(p)s(ositional)i(parameters.)630 4742 y
-Fs(sourcepath)1110 4852 y Ft(If)22 b(set,)j(the)e Fs(source)e
-Ft(builtin)h(uses)g(the)h(v)-5 b(alue)23 b(of)g Fs(PATH)e
-Ft(to)j(\014nd)d(the)h(directory)1110 4961 y(con)m(taining)29
-b(the)e(\014le)h(supplied)e(as)h(an)g(argumen)m(t.)40
-b(This)27 b(option)h(is)f(enabled)1110 5071 y(b)m(y)j(default.)630
-5230 y Fs(xpg_echo)96 b Ft(If)31 b(set,)h(the)g Fs(echo)e
-Ft(builtin)h(expands)f(bac)m(kslash-escap)s(e)j(sequences)f(b)m(y)f
-(de-)1110 5340 y(fault.)p eop end
+(whether)f(or)f(not)i(a)f(shell)g(is)g(re-)1110 5340
+y(stricted.)p eop end
 %%Page: 57 63
 TeXDict begin 57 62 bop 150 -116 a Ft(Chapter)30 b(4:)41
-b(Shell)30 b(Builtin)h(Commands)2069 b(57)630 299 y(The)27
-b(return)f(status)i(when)f(listing)h(options)g(is)f(zero)i(if)e(all)i
-Fq(optnames)i Ft(are)d(enabled,)g(non-)630 408 y(zero)40
-b(otherwise.)66 b(When)39 b(setting)h(or)f(unsetting)g(options,)i(the)e
-(return)f(status)h(is)g(zero)630 518 y(unless)30 b(an)g
-Fq(optname)36 b Ft(is)30 b(not)h(a)g(v)-5 b(alid)30 b(shell)h(option.)
-150 775 y Fr(4.4)68 b(Sp)t(ecial)45 b(Builtins)275 1020
+b(Shell)30 b(Builtin)h(Commands)2069 b(57)630 299 y Fs(shift_verbose)
+1110 408 y Ft(If)36 b(this)g(is)g(set,)j(the)d Fs(shift)f
+Ft(builtin)h(prin)m(ts)f(an)h(error)g(message)i(when)d(the)1110
+518 y(shift)30 b(coun)m(t)h(exceeds)g(the)g(n)m(um)m(b)s(er)e(of)h(p)s
+(ositional)i(parameters.)630 677 y Fs(sourcepath)1110
+787 y Ft(If)22 b(set,)j(the)e Fs(source)e Ft(builtin)h(uses)g(the)h(v)
+-5 b(alue)23 b(of)g Fs(PATH)e Ft(to)j(\014nd)d(the)h(directory)1110
+897 y(con)m(taining)29 b(the)e(\014le)h(supplied)e(as)h(an)g(argumen)m
+(t.)40 b(This)27 b(option)h(is)f(enabled)1110 1006 y(b)m(y)j(default.)
+630 1166 y Fs(xpg_echo)96 b Ft(If)31 b(set,)h(the)g Fs(echo)e
+Ft(builtin)h(expands)f(bac)m(kslash-escap)s(e)j(sequences)f(b)m(y)f
+(de-)1110 1275 y(fault.)630 1435 y(The)c(return)f(status)i(when)f
+(listing)h(options)g(is)f(zero)i(if)e(all)i Fq(optnames)i
+Ft(are)d(enabled,)g(non-)630 1544 y(zero)40 b(otherwise.)66
+b(When)39 b(setting)h(or)f(unsetting)g(options,)i(the)e(return)f
+(status)h(is)g(zero)630 1654 y(unless)30 b(an)g Fq(optname)36
+b Ft(is)30 b(not)h(a)g(v)-5 b(alid)30 b(shell)h(option.)150
+1911 y Fr(4.4)68 b(Sp)t(ecial)45 b(Builtins)275 2155
 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 1129 y Fm(sp)-5 b(e)g(cial)p Ft(.)84 b(When)44
+(as)150 2265 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 1239
+(ecial)f(builtins)g(di\013er)g(from)g(other)150 2374
 y(builtin)30 b(commands)g(in)g(three)h(resp)s(ects:)199
-1373 y(1.)61 b(Sp)s(ecial)31 b(builtins)e(are)i(found)e(b)s(efore)h
+2509 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
-1508 y(2.)61 b(If)30 b(a)h(sp)s(ecial)g(builtin)f(returns)f(an)h(error)
+2643 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
-1642 y(3.)61 b(Assignmen)m(t)30 b(statemen)m(ts)h(preceding)f(the)f
+2778 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 1752 y(after)i(the)f(command)h(completes.)275
-1911 y(When)36 b(Bash)g(is)h(not)f(executing)i(in)e Fl(posix)f
+(t)330 2888 y(after)i(the)f(command)h(completes.)275
+3047 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 2021 y(the)31 b(rest)f(of)h(the)f(Bash)h(builtin)e
+(tly)h(than)150 3156 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 2130 y([Bash)g(POSIX)e(Mo)s(de],)i(page)g
-(82.)275 2265 y(These)f(are)g(the)h Fl(posix)f Ft(sp)s(ecial)h
-(builtins:)390 2399 y Fs(break)46 b(:)i(.)f(continue)f(eval)g(exec)h
-(exit)g(export)f(readonly)f(return)h(set)390 2509 y(shift)g(trap)h
+(ed)f(in)h(Section)h(6.11)150 3266 y([Bash)g(POSIX)e(Mo)s(de],)i(page)g
+(82.)275 3401 y(These)f(are)g(the)h Fl(posix)f Ft(sp)s(ecial)h
+(builtins:)390 3535 y Fs(break)46 b(:)i(.)f(continue)f(eval)g(exec)h
+(exit)g(export)f(readonly)f(return)h(set)390 3645 y(shift)g(trap)h
 (unset)p eop end
 %%Page: 58 64
 TeXDict begin 58 63 bop 150 -116 a Ft(58)2572 b(Bash)31
@@ -11345,9 +11364,9 @@ b(b)s(eginning)f(with)g(a)i(`)p Fs($)p Ft(')f(indicate)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)150 299 y(conditional)43
-b(constructs)e(\(see)i(Section)f(8.3.2)h([Conditional)f(Init)f
-(Constructs],)j(page)f(99\).)74 b(Other)150 408 y(lines)31
+b(Command)29 b(Line)i(Editing)2107 b(95)150 299 y(conditional)39
+b(constructs)f(\(see)g(Section)h(8.3.2)g([Conditional)g(Init)e
+(Constructs],)j(page)e(100\).)64 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
@@ -11421,319 +11440,325 @@ f(the)i(eigh)m(th)g(bit)f(and)g(pre\014xing)f(an)1110
 643 V 1268 625 a Fg(i)1332 628 y Ft(c)m(haracter,)36
 b(con)m(v)m(erting)g(them)e(to)g(a)h(meta-pre\014xed)f(k)m(ey)g
 (sequence.)1110 737 y(The)c(default)g(v)-5 b(alue)31
-b(is)g(`)p Fs(on)p Ft('.)630 902 y Fs(disable-completion)1110
-1011 y Ft(If)36 b(set)h(to)h(`)p Fs(On)p Ft(',)g(Readline)f(will)g
+b(is)g(`)p Fs(on)p Ft('.)630 883 y Fs(disable-completion)1110
+993 y Ft(If)36 b(set)h(to)h(`)p Fs(On)p Ft(',)g(Readline)f(will)g
 (inhibit)f(w)m(ord)h(completion.)60 b(Completion)1110
-1121 y(c)m(haracters)28 b(will)e(b)s(e)f(inserted)h(in)m(to)h(the)g
+1103 y(c)m(haracters)28 b(will)e(b)s(e)f(inserted)h(in)m(to)h(the)g
 (line)f(as)g(if)g(they)h(had)e(b)s(een)g(mapp)s(ed)1110
-1230 y(to)31 b Fs(self-insert)p Ft(.)38 b(The)30 b(default)g(is)h(`)p
-Fs(off)p Ft('.)630 1395 y Fs(editing-mode)1110 1504 y
+1212 y(to)31 b Fs(self-insert)p Ft(.)38 b(The)30 b(default)g(is)h(`)p
+Fs(off)p Ft('.)630 1358 y Fs(editing-mode)1110 1468 y
 Ft(The)d Fs(editing-mode)e Ft(v)-5 b(ariable)29 b(con)m(trols)h(whic)m
-(h)e(default)h(set)h(of)e(k)m(ey)i(bind-)1110 1614 y(ings)25
+(h)e(default)h(set)h(of)e(k)m(ey)i(bind-)1110 1577 y(ings)25
 b(is)g(used.)38 b(By)26 b(default,)g(Readline)g(starts)f(up)f(in)h
-(Emacs)g(editing)h(mo)s(de,)1110 1724 y(where)j(the)g(k)m(eystrok)m(es)
+(Emacs)g(editing)h(mo)s(de,)1110 1687 y(where)j(the)g(k)m(eystrok)m(es)
 i(are)e(most)h(similar)f(to)h(Emacs.)40 b(This)29 b(v)-5
-b(ariable)30 b(can)1110 1833 y(b)s(e)g(set)h(to)g(either)g(`)p
-Fs(emacs)p Ft(')e(or)h(`)p Fs(vi)p Ft('.)630 1998 y Fs(enable-keypad)
-1110 2107 y Ft(When)23 b(set)h(to)g(`)p Fs(on)p Ft(',)h(Readline)f
+b(ariable)30 b(can)1110 1797 y(b)s(e)g(set)h(to)g(either)g(`)p
+Fs(emacs)p Ft(')e(or)h(`)p Fs(vi)p Ft('.)630 1943 y Fs(enable-keypad)
+1110 2052 y Ft(When)23 b(set)h(to)g(`)p Fs(on)p Ft(',)h(Readline)f
 (will)g(try)f(to)h(enable)g(the)f(application)i(k)m(eypad)1110
-2217 y(when)h(it)h(is)f(called.)41 b(Some)27 b(systems)f(need)h(this)f
-(to)h(enable)g(the)g(arro)m(w)g(k)m(eys.)1110 2326 y(The)j(default)g
-(is)h(`)p Fs(off)p Ft('.)630 2491 y Fs(expand-tilde)1110
-2600 y Ft(If)c(set)h(to)h(`)p Fs(on)p Ft(',)f(tilde)g(expansion)g(is)f
-(p)s(erformed)f(when)h(Readline)h(attempts)1110 2710
+2162 y(when)h(it)h(is)f(called.)41 b(Some)27 b(systems)f(need)h(this)f
+(to)h(enable)g(the)g(arro)m(w)g(k)m(eys.)1110 2271 y(The)j(default)g
+(is)h(`)p Fs(off)p Ft('.)630 2418 y Fs(expand-tilde)1110
+2527 y Ft(If)c(set)h(to)h(`)p Fs(on)p Ft(',)f(tilde)g(expansion)g(is)f
+(p)s(erformed)f(when)h(Readline)h(attempts)1110 2637
 y(w)m(ord)i(completion.)42 b(The)30 b(default)g(is)h(`)p
-Fs(off)p Ft('.)630 2874 y Fs(history-preserve-point)1110
-2984 y Ft(If)41 b(set)h(to)h(`)p Fs(on)p Ft(',)i(the)c(history)h(co)s
+Fs(off)p Ft('.)630 2783 y Fs(history-preserve-point)1110
+2892 y Ft(If)41 b(set)h(to)h(`)p Fs(on)p Ft(',)i(the)c(history)h(co)s
 (de)g(attempts)h(to)f(place)h(the)f(p)s(oin)m(t)f(\(the)1110
-3093 y(curren)m(t)35 b(cursor)g(p)s(osition\))g(at)h(the)g(same)f(lo)s
-(cation)i(on)e(eac)m(h)h(history)g(line)1110 3203 y(retriev)m(ed)h
+3002 y(curren)m(t)35 b(cursor)g(p)s(osition\))g(at)h(the)g(same)f(lo)s
+(cation)i(on)e(eac)m(h)h(history)g(line)1110 3112 y(retriev)m(ed)h
 (with)f Fs(previous-history)c Ft(or)37 b Fs(next-history)p
-Ft(.)55 b(The)36 b(default)1110 3313 y(is)30 b(`)p Fs(off)p
-Ft('.)630 3477 y Fs(horizontal-scroll-mode)1110 3587
-y Ft(This)35 b(v)-5 b(ariable)37 b(can)f(b)s(e)f(set)h(to)h(either)f(`)
-p Fs(on)p Ft(')g(or)g(`)p Fs(off)p Ft('.)57 b(Setting)36
-b(it)g(to)h(`)p Fs(on)p Ft(')1110 3696 y(means)26 b(that)h(the)f(text)h
+Ft(.)55 b(The)36 b(default)1110 3221 y(is)30 b(`)p Fs(off)p
+Ft('.)630 3367 y Fs(history-size)1110 3477 y Ft(Set)39
+b(the)g(maxim)m(um)g(n)m(um)m(b)s(er)f(of)h(history)g(en)m(tries)h(sa)m
+(v)m(ed)g(in)f(the)g(history)1110 3587 y(list.)53 b(If)34
+b(set)h(to)g(zero,)i(the)d(n)m(um)m(b)s(er)g(of)g(en)m(tries)h(in)f
+(the)h(history)f(list)h(is)g(not)1110 3696 y(limited.)630
+3842 y Fs(horizontal-scroll-mode)1110 3952 y Ft(This)g(v)-5
+b(ariable)37 b(can)f(b)s(e)f(set)h(to)h(either)f(`)p
+Fs(on)p Ft(')g(or)g(`)p Fs(off)p Ft('.)57 b(Setting)36
+b(it)g(to)h(`)p Fs(on)p Ft(')1110 4061 y(means)26 b(that)h(the)f(text)h
 (of)g(the)f(lines)g(b)s(eing)g(edited)h(will)f(scroll)h(horizon)m
-(tally)1110 3806 y(on)32 b(a)g(single)g(screen)g(line)g(when)e(they)i
-(are)g(longer)h(than)e(the)h(width)f(of)h(the)1110 3915
+(tally)1110 4171 y(on)32 b(a)g(single)g(screen)g(line)g(when)e(they)i
+(are)g(longer)h(than)e(the)h(width)f(of)h(the)1110 4281
 y(screen,)27 b(instead)g(of)f(wrapping)f(on)m(to)i(a)f(new)g(screen)g
-(line.)39 b(By)27 b(default,)g(this)1110 4025 y(v)-5
+(line.)39 b(By)27 b(default,)g(this)1110 4390 y(v)-5
 b(ariable)31 b(is)g(set)f(to)i(`)p Fs(off)p Ft('.)630
-4189 y Fs(input-meta)1110 4299 y Ft(If)f(set)g(to)h(`)p
+4536 y Fs(input-meta)1110 4646 y Ft(If)f(set)g(to)h(`)p
 Fs(on)p Ft(',)g(Readline)g(will)f(enable)h(eigh)m(t-bit)h(input)d(\(it)
-i(will)f(not)h(clear)1110 4408 y(the)40 b(eigh)m(th)g(bit)g(in)f(the)h
+i(will)f(not)h(clear)1110 4755 y(the)40 b(eigh)m(th)g(bit)g(in)f(the)h
 (c)m(haracters)h(it)f(reads\),)j(regardless)c(of)h(what)g(the)1110
-4518 y(terminal)g(claims)h(it)g(can)f(supp)s(ort.)68
+4865 y(terminal)g(claims)h(it)g(can)f(supp)s(ort.)68
 b(The)39 b(default)h(v)-5 b(alue)40 b(is)g(`)p Fs(off)p
-Ft('.)69 b(The)1110 4628 y(name)30 b Fs(meta-flag)e Ft(is)j(a)f(synon)m
-(ym)g(for)g(this)h(v)-5 b(ariable.)630 4792 y Fs(isearch-terminators)
-1110 4902 y Ft(The)51 b(string)h(of)g(c)m(haracters)h(that)f(should)e
-(terminate)j(an)f(incremen)m(tal)1110 5011 y(searc)m(h)25
+Ft('.)69 b(The)1110 4975 y(name)30 b Fs(meta-flag)e Ft(is)j(a)f(synon)m
+(ym)g(for)g(this)h(v)-5 b(ariable.)630 5121 y Fs(isearch-terminators)
+1110 5230 y Ft(The)51 b(string)h(of)g(c)m(haracters)h(that)f(should)e
+(terminate)j(an)f(incremen)m(tal)1110 5340 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 5121 y(\(see)42 b(Section)f(8.2.5)i([Searc)m(hing],)i
-(page)c(94\).)73 b(If)41 b(this)g(v)-5 b(ariable)41 b(has)g(not)1110
-5230 y(b)s(een)31 b(giv)m(en)h(a)g(v)-5 b(alue,)32 b(the)g(c)m
-(haracters)2494 5227 y Fg(h)p 2518 5174 V 2518 5230 a
-Ff(ESC)p 2518 5246 V 2652 5227 a Fg(i)2713 5230 y Ft(and)f
-Fj(C-J)g Ft(will)h(terminate)g(an)1110 5340 y(incremen)m(tal)g(searc)m
-(h.)p eop end
+(command)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)630 299 y Fs(keymap)192
-b Ft(Sets)39 b(Readline's)g(idea)h(of)f(the)g(curren)m(t)f(k)m(eymap)h
-(for)g(k)m(ey)g(binding)f(com-)1110 408 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(,)1110 518 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 628 y Fs(vi-insert)p Ft(.)64 b Fs(vi)38
-b Ft(is)h(equiv)-5 b(alen)m(t)41 b(to)e Fs(vi-command)p
-Ft(;)i Fs(emacs)c Ft(is)i(equiv)-5 b(alen)m(t)1110 737
-y(to)33 b Fs(emacs-standard)p Ft(.)41 b(The)31 b(default)h(v)-5
-b(alue)32 b(is)g Fs(emacs)p Ft(.)44 b(The)31 b(v)-5 b(alue)33
-b(of)f(the)1110 847 y Fs(editing-mode)27 b Ft(v)-5 b(ariable)31
-b(also)h(a\013ects)f(the)g(default)f(k)m(eymap.)630 1017
-y Fs(mark-directories)1110 1127 y Ft(If)38 b(set)g(to)h(`)p
-Fs(on)p Ft(',)i(completed)e(directory)f(names)g(ha)m(v)m(e)i(a)e(slash)
-g(app)s(ended.)1110 1236 y(The)30 b(default)g(is)h(`)p
-Fs(on)p Ft('.)630 1407 y Fs(mark-modified-lines)1110
-1517 y Ft(This)k(v)-5 b(ariable,)38 b(when)d(set)h(to)h(`)p
-Fs(on)p Ft(',)g(causes)g(Readline)f(to)h(displa)m(y)f(an)f(as-)1110
-1626 y(terisk)f(\(`)p Fs(*)p Ft('\))h(at)f(the)g(start)g(of)g(history)g
-(lines)g(whic)m(h)f(ha)m(v)m(e)i(b)s(een)e(mo)s(di\014ed.)1110
-1736 y(This)d(v)-5 b(ariable)31 b(is)f(`)p Fs(off)p Ft(')g(b)m(y)g
-(default.)630 1906 y Fs(mark-symlinked-directori)o(es)1110
-2016 y Ft(If)44 b(set)h(to)h(`)p Fs(on)p Ft(',)i(completed)e(names)f
-(whic)m(h)f(are)h(sym)m(b)s(olic)g(links)g(to)g(di-)1110
-2125 y(rectories)j(ha)m(v)m(e)f(a)g(slash)f(app)s(ended)e(\(sub)5
-b(ject)47 b(to)g(the)f(v)-5 b(alue)47 b(of)f Fs(mark-)1110
-2235 y(directories)p Ft(\).)38 b(The)30 b(default)g(is)h(`)p
-Fs(off)p Ft('.)630 2405 y Fs(match-hidden-files)1110
-2515 y Ft(This)21 b(v)-5 b(ariable,)25 b(when)d(set)g(to)h(`)p
-Fs(on)p Ft(',)h(causes)f(Readline)g(to)g(matc)m(h)g(\014les)f(whose)
-1110 2625 y(names)44 b(b)s(egin)g(with)g(a)g(`)p Fs(.)p
-Ft(')g(\(hidden)f(\014les\))i(when)e(p)s(erforming)g(\014lename)1110
-2734 y(completion,)j(unless)41 b(the)g(leading)h(`)p
-Fs(.)p Ft(')g(is)g(supplied)e(b)m(y)h(the)h(user)f(in)g(the)1110
-2844 y(\014lename)31 b(to)g(b)s(e)e(completed.)42 b(This)30
+b(Command)29 b(Line)i(Editing)2107 b(97)1110 299 y(\(see)42
+b(Section)f(8.2.5)i([Searc)m(hing],)i(page)c(94\).)73
+b(If)41 b(this)g(v)-5 b(ariable)41 b(has)g(not)1110 408
+y(b)s(een)31 b(giv)m(en)h(a)g(v)-5 b(alue,)32 b(the)g(c)m(haracters)
+2494 405 y Fg(h)p 2518 352 139 4 v 2518 408 a Ff(ESC)p
+2518 424 V 2652 405 a Fg(i)2713 408 y Ft(and)f Fj(C-J)g
+Ft(will)h(terminate)g(an)1110 518 y(incremen)m(tal)g(searc)m(h.)630
+689 y Fs(keymap)192 b Ft(Sets)39 b(Readline's)g(idea)h(of)f(the)g
+(curren)m(t)f(k)m(eymap)h(for)g(k)m(ey)g(binding)f(com-)1110
+798 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(,)1110 908 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
+1017 y Fs(vi-insert)p Ft(.)64 b Fs(vi)38 b Ft(is)h(equiv)-5
+b(alen)m(t)41 b(to)e Fs(vi-command)p Ft(;)i Fs(emacs)c
+Ft(is)i(equiv)-5 b(alen)m(t)1110 1127 y(to)33 b Fs(emacs-standard)p
+Ft(.)41 b(The)31 b(default)h(v)-5 b(alue)32 b(is)g Fs(emacs)p
+Ft(.)44 b(The)31 b(v)-5 b(alue)33 b(of)f(the)1110 1236
+y Fs(editing-mode)27 b Ft(v)-5 b(ariable)31 b(also)h(a\013ects)f(the)g
+(default)f(k)m(eymap.)630 1407 y Fs(mark-directories)1110
+1517 y Ft(If)38 b(set)g(to)h(`)p Fs(on)p Ft(',)i(completed)e(directory)
+f(names)g(ha)m(v)m(e)i(a)e(slash)g(app)s(ended.)1110
+1626 y(The)30 b(default)g(is)h(`)p Fs(on)p Ft('.)630
+1797 y Fs(mark-modified-lines)1110 1906 y Ft(This)k(v)-5
+b(ariable,)38 b(when)d(set)h(to)h(`)p Fs(on)p Ft(',)g(causes)g
+(Readline)f(to)h(displa)m(y)f(an)f(as-)1110 2016 y(terisk)f(\(`)p
+Fs(*)p Ft('\))h(at)f(the)g(start)g(of)g(history)g(lines)g(whic)m(h)f
+(ha)m(v)m(e)i(b)s(een)e(mo)s(di\014ed.)1110 2125 y(This)d(v)-5
+b(ariable)31 b(is)f(`)p Fs(off)p Ft(')g(b)m(y)g(default.)630
+2296 y Fs(mark-symlinked-directori)o(es)1110 2405 y Ft(If)44
+b(set)h(to)h(`)p Fs(on)p Ft(',)i(completed)e(names)f(whic)m(h)f(are)h
+(sym)m(b)s(olic)g(links)g(to)g(di-)1110 2515 y(rectories)j(ha)m(v)m(e)f
+(a)g(slash)f(app)s(ended)e(\(sub)5 b(ject)47 b(to)g(the)f(v)-5
+b(alue)47 b(of)f Fs(mark-)1110 2625 y(directories)p Ft(\).)38
+b(The)30 b(default)g(is)h(`)p Fs(off)p Ft('.)630 2795
+y Fs(match-hidden-files)1110 2905 y Ft(This)21 b(v)-5
+b(ariable,)25 b(when)d(set)g(to)h(`)p Fs(on)p Ft(',)h(causes)f
+(Readline)g(to)g(matc)m(h)g(\014les)f(whose)1110 3014
+y(names)44 b(b)s(egin)g(with)g(a)g(`)p Fs(.)p Ft(')g(\(hidden)f
+(\014les\))i(when)e(p)s(erforming)g(\014lename)1110 3124
+y(completion,)j(unless)41 b(the)g(leading)h(`)p Fs(.)p
+Ft(')g(is)g(supplied)e(b)m(y)h(the)h(user)f(in)g(the)1110
+3233 y(\014lename)31 b(to)g(b)s(e)e(completed.)42 b(This)30
 b(v)-5 b(ariable)31 b(is)f(`)p Fs(on)p Ft(')h(b)m(y)f(default.)630
-3014 y Fs(output-meta)1110 3124 y Ft(If)35 b(set)h(to)g(`)p
+3404 y Fs(output-meta)1110 3513 y Ft(If)35 b(set)h(to)g(`)p
 Fs(on)p Ft(',)h(Readline)f(will)g(displa)m(y)f(c)m(haracters)i(with)e
-(the)h(eigh)m(th)g(bit)1110 3233 y(set)h(directly)g(rather)f(than)g(as)
+(the)h(eigh)m(th)g(bit)1110 3623 y(set)h(directly)g(rather)f(than)g(as)
 h(a)g(meta-pre\014xed)f(escap)s(e)h(sequence.)59 b(The)1110
-3343 y(default)31 b(is)f(`)p Fs(off)p Ft('.)630 3513
-y Fs(page-completions)1110 3623 y Ft(If)j(set)i(to)f(`)p
+3733 y(default)31 b(is)f(`)p Fs(off)p Ft('.)630 3903
+y Fs(page-completions)1110 4013 y Ft(If)j(set)i(to)f(`)p
 Fs(on)p Ft(',)h(Readline)g(uses)e(an)h(in)m(ternal)h
 Fs(more)p Ft(-lik)m(e)f(pager)g(to)h(displa)m(y)1110
-3733 y(a)e(screenful)f(of)g(p)s(ossible)g(completions)i(at)f(a)g(time.)
+4122 y(a)e(screenful)f(of)g(p)s(ossible)g(completions)i(at)f(a)g(time.)
 47 b(This)31 b(v)-5 b(ariable)34 b(is)e(`)p Fs(on)p Ft(')1110
-3842 y(b)m(y)e(default.)630 4013 y Fs(print-completions-horizo)o(ntal)o
-(ly)1110 4122 y Ft(If)23 b(set)i(to)g(`)p Fs(on)p Ft(',)g(Readline)g
+4232 y(b)m(y)e(default.)630 4402 y Fs(print-completions-horizo)o(ntal)o
+(ly)1110 4512 y Ft(If)23 b(set)i(to)g(`)p Fs(on)p Ft(',)g(Readline)g
 (will)f(displa)m(y)g(completions)h(with)f(matc)m(hes)h(sorted)1110
-4232 y(horizon)m(tally)45 b(in)e(alphab)s(etical)i(order,)i(rather)c
-(than)g(do)m(wn)g(the)h(screen.)1110 4341 y(The)30 b(default)g(is)h(`)p
-Fs(off)p Ft('.)630 4512 y Fs(show-all-if-ambiguous)1110
-4622 y Ft(This)e(alters)i(the)f(default)g(b)s(eha)m(vior)g(of)g(the)h
-(completion)g(functions.)40 b(If)29 b(set)1110 4731 y(to)f(`)p
+4622 y(horizon)m(tally)45 b(in)e(alphab)s(etical)i(order,)i(rather)c
+(than)g(do)m(wn)g(the)h(screen.)1110 4731 y(The)30 b(default)g(is)h(`)p
+Fs(off)p Ft('.)630 4902 y Fs(show-all-if-ambiguous)1110
+5011 y Ft(This)e(alters)i(the)f(default)g(b)s(eha)m(vior)g(of)g(the)h
+(completion)g(functions.)40 b(If)29 b(set)1110 5121 y(to)f(`)p
 Fs(on)p Ft(',)g(w)m(ords)f(whic)m(h)g(ha)m(v)m(e)i(more)f(than)f(one)h
-(p)s(ossible)f(completion)h(cause)1110 4841 y(the)39
+(p)s(ossible)f(completion)h(cause)1110 5230 y(the)39
 b(matc)m(hes)h(to)g(b)s(e)e(listed)h(immediately)i(instead)e(of)g
-(ringing)g(the)g(b)s(ell.)1110 4950 y(The)30 b(default)g(v)-5
-b(alue)31 b(is)g(`)p Fs(off)p Ft('.)630 5121 y Fs
-(show-all-if-unmodified)1110 5230 y Ft(This)38 b(alters)h(the)g
-(default)g(b)s(eha)m(vior)g(of)f(the)h(completion)h(functions)e(in)h(a)
-1110 5340 y(fashion)25 b(similar)h(to)g Fq(sho)m(w-all-if-am)m(biguous)
-p Ft(.)41 b(If)25 b(set)h(to)h(`)p Fs(on)p Ft(',)f(w)m(ords)f(whic)m(h)
-p eop end
+(ringing)g(the)g(b)s(ell.)1110 5340 y(The)30 b(default)g(v)-5
+b(alue)31 b(is)g(`)p Fs(off)p Ft('.)p eop end
 %%Page: 98 104
 TeXDict begin 98 103 bop 150 -116 a Ft(98)2572 b(Bash)31
-b(Reference)g(Man)m(ual)1110 299 y(ha)m(v)m(e)h(more)f(than)f(one)i(p)s
-(ossible)e(completion)i(without)f(an)m(y)g(p)s(ossible)f(par-)1110
-408 y(tial)43 b(completion)h(\(the)f(p)s(ossible)f(completions)h(don't)
-f(share)g(a)h(common)1110 518 y(pre\014x\))30 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
-628 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('.)630 781 y Fs(visible-stats)1110
-891 y Ft(If)h(set)i(to)f(`)p Fs(on)p Ft(',)h(a)f(c)m(haracter)i
+b(Reference)g(Man)m(ual)630 299 y Fs(show-all-if-unmodified)1110
+408 y Ft(This)38 b(alters)h(the)g(default)g(b)s(eha)m(vior)g(of)f(the)h
+(completion)h(functions)e(in)h(a)1110 518 y(fashion)25
+b(similar)h(to)g Fq(sho)m(w-all-if-am)m(biguous)p Ft(.)41
+b(If)25 b(set)h(to)h(`)p Fs(on)p Ft(',)f(w)m(ords)f(whic)m(h)1110
+628 y(ha)m(v)m(e)32 b(more)f(than)f(one)i(p)s(ossible)e(completion)i
+(without)f(an)m(y)g(p)s(ossible)f(par-)1110 737 y(tial)43
+b(completion)h(\(the)f(p)s(ossible)f(completions)h(don't)f(share)g(a)h
+(common)1110 847 y(pre\014x\))30 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
+956 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('.)630 1113 y Fs(visible-stats)1110
+1223 y Ft(If)h(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)
-1110 1000 y(\014lename)e(when)e(listing)i(p)s(ossible)f(completions.)42
-b(The)30 b(default)g(is)h(`)p Fs(off)p Ft('.)150 1154
-y(Key)f(Bindings)630 1263 y(The)41 b(syn)m(tax)i(for)f(con)m(trolling)h
+1110 1332 y(\014lename)e(when)e(listing)i(p)s(ossible)f(completions.)42
+b(The)30 b(default)g(is)h(`)p Fs(off)p Ft('.)150 1489
+y(Key)f(Bindings)630 1598 y(The)41 b(syn)m(tax)i(for)f(con)m(trolling)h
 (k)m(ey)g(bindings)e(in)h(the)g(init)g(\014le)g(is)g(simple.)75
-b(First)43 b(y)m(ou)630 1373 y(need)27 b(to)i(\014nd)d(the)i(name)f(of)
+b(First)43 b(y)m(ou)630 1708 y(need)27 b(to)i(\014nd)d(the)i(name)f(of)
 h(the)g(command)f(that)i(y)m(ou)f(w)m(an)m(t)g(to)g(c)m(hange.)41
-b(The)27 b(follo)m(wing)630 1482 y(sections)37 b(con)m(tain)g(tables)g
+b(The)27 b(follo)m(wing)630 1817 y(sections)37 b(con)m(tain)g(tables)g
 (of)f(the)g(command)f(name,)j(the)e(default)g(k)m(eybinding,)h(if)f(an)
-m(y)-8 b(,)630 1592 y(and)30 b(a)h(short)f(description)g(of)h(what)f
-(the)g(command)h(do)s(es.)630 1724 y(Once)36 b(y)m(ou)g(kno)m(w)g(the)g
+m(y)-8 b(,)630 1927 y(and)30 b(a)h(short)f(description)g(of)h(what)f
+(the)g(command)h(do)s(es.)630 2060 y(Once)36 b(y)m(ou)g(kno)m(w)g(the)g
 (name)g(of)g(the)g(command,)h(simply)f(place)h(on)e(a)i(line)f(in)g
-(the)g(init)630 1833 y(\014le)e(the)g(name)f(of)h(the)g(k)m(ey)g(y)m
+(the)g(init)630 2170 y(\014le)e(the)g(name)f(of)h(the)g(k)m(ey)g(y)m
 (ou)g(wish)f(to)h(bind)f(the)h(command)f(to,)i(a)f(colon,)i(and)d(then)
-630 1943 y(the)f(name)h(of)f(the)g(command.)46 b(There)32
+630 2279 y(the)f(name)h(of)f(the)g(command.)46 b(There)32
 b(can)g(b)s(e)g(no)g(space)g(b)s(et)m(w)m(een)h(the)f(k)m(ey)h(name)g
-(and)630 2052 y(the)41 b(colon)h({)f(that)g(will)g(b)s(e)g(in)m
+(and)630 2389 y(the)41 b(colon)h({)f(that)g(will)g(b)s(e)g(in)m
 (terpreted)g(as)g(part)f(of)h(the)g(k)m(ey)h(name.)72
-b(The)40 b(name)h(of)630 2162 y(the)35 b(k)m(ey)g(can)g(b)s(e)f
+b(The)40 b(name)h(of)630 2498 y(the)35 b(k)m(ey)g(can)g(b)s(e)f
 (expressed)f(in)i(di\013eren)m(t)g(w)m(a)m(ys,)h(dep)s(ending)d(on)h
-(what)h(y)m(ou)g(\014nd)e(most)630 2271 y(comfortable.)630
-2403 y(In)i(addition)h(to)h(command)f(names,)i(readline)e(allo)m(ws)h
+(what)h(y)m(ou)g(\014nd)e(most)630 2608 y(comfortable.)630
+2741 y(In)i(addition)h(to)h(command)f(names,)i(readline)e(allo)m(ws)h
 (k)m(eys)g(to)g(b)s(e)e(b)s(ound)f(to)j(a)f(string)630
-2513 y(that)31 b(is)f(inserted)h(when)e(the)i(k)m(ey)g(is)f(pressed)g
-(\(a)h Fq(macro)5 b Ft(\).)630 2644 y(The)42 b Fs(bind)30
+2851 y(that)31 b(is)f(inserted)h(when)e(the)i(k)m(ey)g(is)f(pressed)g
+(\(a)h Fq(macro)5 b Ft(\).)630 2984 y(The)42 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 2754 y(format)37 b(that)h(can)f(put)f(directly)
+f(bindings)g(in)h(a)630 3093 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 2863 y(Builtins],)31 b(page)g(41.)630
-3017 y Fq(k)m(eyname)5 b Ft(:)42 b Fq(function-name)35
-b Ft(or)c Fq(macro)1110 3126 y(k)m(eyname)k Ft(is)29
+b(Section)f(4.2)i([Bash)630 3203 y(Builtins],)31 b(page)g(41.)630
+3360 y Fq(k)m(eyname)5 b Ft(:)42 b Fq(function-name)35
+b Ft(or)c Fq(macro)1110 3469 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 3258 y Fs(Control-u:)45
-b(universal-argument)1350 3367 y(Meta-Rubout:)f(backward-kill-word)1350
-3477 y(Control-o:)h(">)i(output")1110 3608 y Ft(In)38
+b(F)-8 b(or)30 b(example:)1350 3602 y Fs(Control-u:)45
+b(universal-argument)1350 3712 y(Meta-Rubout:)f(backward-kill-word)1350
+3821 y(Control-o:)h(">)i(output")1110 3954 y Ft(In)38
 b(the)h(ab)s(o)m(v)m(e)h(example,)h Fj(C-u)d Ft(is)h(b)s(ound)d(to)k
-(the)e(function)h Fs(universal-)1110 3718 y(argument)p
+(the)e(function)h Fs(universal-)1110 4064 y(argument)p
 Ft(,)f Fj(M-DEL)e Ft(is)i(b)s(ound)e(to)i(the)g(function)g
-Fs(backward-kill-word)p Ft(,)1110 3828 y(and)g Fj(C-o)g
+Fs(backward-kill-word)p Ft(,)1110 4174 y(and)g Fj(C-o)g
 Ft(is)h(b)s(ound)e(to)j(run)d(the)j(macro)f(expressed)g(on)f(the)i
-(righ)m(t)f(hand)1110 3937 y(side)30 b(\(that)i(is,)e(to)h(insert)g
+(righ)m(t)f(hand)1110 4283 y(side)30 b(\(that)i(is,)e(to)h(insert)g
 (the)f(text)i(`)p Fs(>)e(output)p Ft(')f(in)m(to)i(the)g(line\).)1110
-4069 y(A)37 b(n)m(um)m(b)s(er)f(of)h(sym)m(b)s(olic)g(c)m(haracter)i
-(names)e(are)g(recognized)h(while)f(pro-)1110 4178 y(cessing)24
+4416 y(A)37 b(n)m(um)m(b)s(er)f(of)h(sym)m(b)s(olic)g(c)m(haracter)i
+(names)e(are)g(recognized)h(while)f(pro-)1110 4526 y(cessing)24
 b(this)g(k)m(ey)g(binding)f(syn)m(tax:)37 b Fq(DEL)p
 Ft(,)24 b Fq(ESC)p Ft(,)f Fq(ESCAPE)p Ft(,)g Fq(LFD)p
-Ft(,)h Fq(NEW-)1110 4288 y(LINE)p Ft(,)30 b Fq(RET)p
+Ft(,)h Fq(NEW-)1110 4635 y(LINE)p Ft(,)30 b Fq(RET)p
 Ft(,)g Fq(RETURN)p Ft(,)h Fq(R)m(UBOUT)p Ft(,)g Fq(SP)-8
 b(A)m(CE)p Ft(,)30 b Fq(SPC)p Ft(,)g(and)f Fq(T)-8 b(AB)p
-Ft(.)630 4441 y Fs(")p Fq(k)m(eyseq)r Fs(")p Ft(:)41
-b Fq(function-name)36 b Ft(or)30 b Fq(macro)1110 4551
+Ft(.)630 4792 y Fs(")p Fq(k)m(eyseq)r Fs(")p Ft(:)41
+b Fq(function-name)36 b Ft(or)30 b Fq(macro)1110 4902
 y(k)m(eyseq)k Ft(di\013ers)d(from)f Fq(k)m(eyname)37
 b Ft(ab)s(o)m(v)m(e)32 b(in)f(that)h(strings)f(denoting)g(an)g(en-)1110
-4661 y(tire)j(k)m(ey)h(sequence)f(can)g(b)s(e)f(sp)s(eci\014ed,)h(b)m
-(y)f(placing)i(the)f(k)m(ey)g(sequence)g(in)1110 4770
+5011 y(tire)j(k)m(ey)h(sequence)f(can)g(b)s(e)f(sp)s(eci\014ed,)h(b)m
+(y)f(placing)i(the)f(k)m(ey)g(sequence)g(in)1110 5121
 y(double)29 b(quotes.)41 b(Some)29 b Fl(gnu)h Ft(Emacs)f(st)m(yle)i(k)m
-(ey)f(escap)s(es)g(can)g(b)s(e)f(used,)g(as)1110 4880
+(ey)f(escap)s(es)g(can)g(b)s(e)f(used,)g(as)1110 5230
 y(in)k(the)h(follo)m(wing)i(example,)f(but)e(the)h(sp)s(ecial)h(c)m
-(haracter)g(names)f(are)g(not)1110 4989 y(recognized.)1350
-5121 y Fs("\\C-u":)46 b(universal-argument)1350 5230
-y("\\C-x\\C-r":)f(re-read-init-file)1350 5340 y("\\e[11~":)g("Function)
-h(Key)g(1")p eop end
+(haracter)g(names)f(are)g(not)1110 5340 y(recognized.)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)1110 299 y(In)64
+b(Command)29 b(Line)i(Editing)2107 b(99)1350 299 y Fs("\\C-u":)46
+b(universal-argument)1350 408 y("\\C-x\\C-r":)f(re-read-init-file)1350
+518 y("\\e[11~":)g("Function)h(Key)g(1")1110 660 y Ft(In)64
 b(the)g(ab)s(o)m(v)m(e)i(example,)74 b Fj(C-u)64 b Ft(is)g(again)i(b)s
-(ound)c(to)k(the)e(function)1110 408 y Fs(universal-argument)39
+(ound)c(to)k(the)e(function)1110 770 y Fs(universal-argument)39
 b Ft(\(just)k(as)h(it)g(w)m(as)g(in)g(the)f(\014rst)g(example\),)49
-b(`)p Fj(C-x)1110 518 y(C-r)p Ft(')41 b(is)g(b)s(ound)e(to)j(the)f
+b(`)p Fj(C-x)1110 880 y(C-r)p Ft(')41 b(is)g(b)s(ound)e(to)j(the)f
 (function)g Fs(re-read-init-file)p Ft(,)e(and)i(`)3462
-515 y Fg(h)p 3486 462 139 4 v 3486 518 a Ff(ESC)p 3486
-533 V 3620 515 a Fg(i)31 b(h)p 3705 462 20 4 v 3705 518
-a Ff([)p 3705 535 V 3720 515 a Fg(i)1110 625 y(h)p 1134
-572 36 4 v 1134 628 a Ff(1)p 1134 643 V 1165 625 a Fg(i)f(h)p
-1250 572 V 1250 628 a Ff(1)p 1250 643 V 1281 625 a Fg(i)g(h)p
-1365 572 48 4 v 1365 628 a Fs(~)p 1365 643 V 1409 625
-a Fg(i)1438 628 y Ft(')h(is)f(b)s(ound)f(to)i(insert)f(the)h(text)g(`)p
-Fs(Function)d(Key)i(1)p Ft('.)630 786 y(The)f(follo)m(wing)i
+877 y Fg(h)p 3486 823 139 4 v 3486 880 a Ff(ESC)p 3486
+895 V 3620 877 a Fg(i)31 b(h)p 3705 823 20 4 v 3705 880
+a Ff([)p 3705 896 V 3720 877 a Fg(i)1110 986 y(h)p 1134
+933 36 4 v 1134 989 a Ff(1)p 1134 1004 V 1165 986 a Fg(i)f(h)p
+1250 933 V 1250 989 a Ff(1)p 1250 1004 V 1281 986 a Fg(i)g(h)p
+1365 933 48 4 v 1365 989 a Fs(~)p 1365 1004 V 1409 986
+a Fg(i)1438 989 y Ft(')h(is)f(b)s(ound)f(to)i(insert)f(the)h(text)g(`)p
+Fs(Function)d(Key)i(1)p Ft('.)630 1164 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 896 y(k)m(ey)i(sequences:)630
-1055 y Fj(\\C-)336 b Ft(con)m(trol)32 b(pre\014x)630
-1213 y Fj(\\M-)336 b Ft(meta)31 b(pre\014x)630 1372 y
+b(ailable)32 b(when)d(sp)s(ecifying)630 1274 y(k)m(ey)i(sequences:)630
+1449 y Fj(\\C-)336 b Ft(con)m(trol)32 b(pre\014x)630
+1624 y Fj(\\M-)336 b Ft(meta)31 b(pre\014x)630 1799 y
 Fj(\\e)384 b Ft(an)30 b(escap)s(e)h(c)m(haracter)630
-1531 y Fj(\\\\)384 b Ft(bac)m(kslash)630 1689 y Fj(\\)p
-Fs(")1110 1686 y Fg(h)p 1134 1633 V 1134 1689 a Fs(")p
-1134 1705 V 1178 1686 a Fg(i)1208 1689 y Ft(,)30 b(a)h(double)f
-(quotation)h(mark)630 1848 y Fj(\\')1110 1845 y Fg(h)p
-1134 1792 20 4 v 1134 1848 a Ff(')p 1134 1864 V 1150
-1845 a Fg(i)1179 1848 y Ft(,)g(a)g(single)g(quote)g(or)f(ap)s(ostrophe)
-630 2007 y(In)d(addition)h(to)g(the)g Fl(gnu)f Ft(Emacs)h(st)m(yle)h
+1974 y Fj(\\\\)384 b Ft(bac)m(kslash)630 2148 y Fj(\\)p
+Fs(")1110 2145 y Fg(h)p 1134 2092 V 1134 2148 a Fs(")p
+1134 2164 V 1178 2145 a Fg(i)1208 2148 y Ft(,)30 b(a)h(double)f
+(quotation)h(mark)630 2323 y Fj(\\')1110 2320 y Fg(h)p
+1134 2267 20 4 v 1134 2323 a Ff(')p 1134 2339 V 1150
+2320 a Fg(i)1179 2323 y Ft(,)g(a)g(single)g(quote)g(or)f(ap)s(ostrophe)
+630 2498 y(In)d(addition)h(to)g(the)g Fl(gnu)f Ft(Emacs)h(st)m(yle)h
 (escap)s(e)f(sequences,)h(a)f(second)f(set)h(of)g(bac)m(kslash)630
-2116 y(escap)s(es)j(is)f(a)m(v)-5 b(ailable:)630 2275
-y Fs(\\a)384 b Ft(alert)31 b(\(b)s(ell\))630 2434 y Fs(\\b)384
-b Ft(bac)m(kspace)630 2593 y Fs(\\d)g Ft(delete)630 2751
-y Fs(\\f)g Ft(form)30 b(feed)630 2910 y Fs(\\n)384 b
-Ft(newline)630 3069 y Fs(\\r)g Ft(carriage)32 b(return)630
-3227 y Fs(\\t)384 b Ft(horizon)m(tal)32 b(tab)630 3386
-y Fs(\\v)384 b Ft(v)m(ertical)32 b(tab)630 3545 y Fs(\\)p
+2608 y(escap)s(es)j(is)f(a)m(v)-5 b(ailable:)630 2783
+y Fs(\\a)384 b Ft(alert)31 b(\(b)s(ell\))630 2958 y Fs(\\b)384
+b Ft(bac)m(kspace)630 3133 y Fs(\\d)g Ft(delete)630 3308
+y Fs(\\f)g Ft(form)30 b(feed)630 3483 y Fs(\\n)384 b
+Ft(newline)630 3658 y Fs(\\r)g Ft(carriage)32 b(return)630
+3833 y Fs(\\t)384 b Ft(horizon)m(tal)32 b(tab)630 4008
+y Fs(\\v)384 b Ft(v)m(ertical)32 b(tab)630 4183 y Fs(\\)p
 Fj(nnn)288 b Ft(the)35 b(eigh)m(t-bit)h(c)m(haracter)g(whose)e(v)-5
 b(alue)35 b(is)g(the)f(o)s(ctal)i(v)-5 b(alue)35 b Fq(nnn)e
-Ft(\(one)i(to)1110 3654 y(three)c(digits\))630 3813 y
+Ft(\(one)i(to)1110 4292 y(three)c(digits\))630 4467 y
 Fs(\\x)p Fj(HH)288 b Ft(the)40 b(eigh)m(t-bit)h(c)m(haracter)g(whose)e
 (v)-5 b(alue)39 b(is)h(the)f(hexadecimal)i(v)-5 b(alue)40
-b Fq(HH)1110 3923 y Ft(\(one)31 b(or)f(t)m(w)m(o)i(hex)e(digits\))630
-4081 y(When)37 b(en)m(tering)h(the)g(text)g(of)g(a)g(macro,)i(single)e
+b Fq(HH)1110 4577 y Ft(\(one)31 b(or)f(t)m(w)m(o)i(hex)e(digits\))630
+4752 y(When)37 b(en)m(tering)h(the)g(text)g(of)g(a)g(macro,)i(single)e
 (or)f(double)g(quotes)h(m)m(ust)f(b)s(e)g(used)f(to)630
-4191 y(indicate)23 b(a)e(macro)h(de\014nition.)38 b(Unquoted)21
+4861 y(indicate)23 b(a)e(macro)h(de\014nition.)38 b(Unquoted)21
 b(text)i(is)e(assumed)g(to)h(b)s(e)f(a)h(function)f(name.)38
-b(In)630 4301 y(the)22 b(macro)f(b)s(o)s(dy)-8 b(,)23
+b(In)630 4971 y(the)22 b(macro)f(b)s(o)s(dy)-8 b(,)23
 b(the)e(bac)m(kslash)h(escap)s(es)g(describ)s(ed)e(ab)s(o)m(v)m(e)j
-(are)e(expanded.)37 b(Bac)m(kslash)630 4410 y(will)j(quote)h(an)m(y)f
+(are)e(expanded.)37 b(Bac)m(kslash)630 5081 y(will)j(quote)h(an)m(y)f
 (other)g(c)m(haracter)i(in)d(the)i(macro)f(text,)k(including)39
 b(`)p Fs(")p Ft(')h(and)g(`)p Fs(')p Ft('.)69 b(F)-8
-b(or)630 4520 y(example,)28 b(the)e(follo)m(wing)h(binding)d(will)i
+b(or)630 5190 y(example,)28 b(the)e(follo)m(wing)h(binding)d(will)i
 (mak)m(e)h(`)p Fj(C-x)j Fs(\\)p Ft(')c(insert)f(a)h(single)h(`)p
-Fs(\\)p Ft(')f(in)m(to)g(the)g(line:)870 4654 y Fs("\\C-x\\\\":)45
-b("\\\\")150 4877 y Fk(8.3.2)63 b(Conditional)41 b(Init)g(Constructs)
-275 5121 y Ft(Readline)36 b(implemen)m(ts)f(a)h(facilit)m(y)i(similar)d
-(in)g(spirit)g(to)h(the)g(conditional)h(compilation)g(features)150
-5230 y(of)e(the)f(C)g(prepro)s(cessor)g(whic)m(h)g(allo)m(ws)i(k)m(ey)f
-(bindings)e(and)h(v)-5 b(ariable)35 b(settings)h(to)f(b)s(e)f(p)s
-(erformed)f(as)150 5340 y(the)e(result)f(of)g(tests.)42
-b(There)30 b(are)h(four)e(parser)h(directiv)m(es)i(used.)p
-eop end
+Fs(\\)p Ft(')f(in)m(to)g(the)g(line:)870 5332 y Fs("\\C-x\\\\":)45
+b("\\\\")p eop end
 %%Page: 100 106
 TeXDict begin 100 105 bop 150 -116 a Ft(100)2527 b(Bash)31
-b(Reference)g(Man)m(ual)150 299 y Fs($if)336 b Ft(The)31
+b(Reference)g(Man)m(ual)150 299 y Fk(8.3.2)63 b(Conditional)41
+b(Init)g(Constructs)275 541 y Ft(Readline)36 b(implemen)m(ts)f(a)h
+(facilit)m(y)i(similar)d(in)g(spirit)g(to)h(the)g(conditional)h
+(compilation)g(features)150 651 y(of)e(the)f(C)g(prepro)s(cessor)g
+(whic)m(h)g(allo)m(ws)i(k)m(ey)f(bindings)e(and)h(v)-5
+b(ariable)35 b(settings)h(to)f(b)s(e)f(p)s(erformed)f(as)150
+760 y(the)e(result)f(of)g(tests.)42 b(There)30 b(are)h(four)e(parser)h
+(directiv)m(es)i(used.)150 916 y Fs($if)336 b Ft(The)31
 b Fs($if)f Ft(construct)i(allo)m(ws)h(bindings)d(to)i(b)s(e)e(made)i
-(based)f(on)g(the)g(editing)h(mo)s(de,)g(the)630 408
+(based)f(on)g(the)g(editing)h(mo)s(de,)g(the)630 1026
 y(terminal)39 b(b)s(eing)e(used,)j(or)e(the)g(application)h(using)f
-(Readline.)64 b(The)38 b(text)h(of)f(the)g(test)630 518
+(Readline.)64 b(The)38 b(text)h(of)f(the)g(test)630 1135
 y(extends)30 b(to)h(the)g(end)f(of)g(the)h(line;)g(no)f(c)m(haracters)i
-(are)f(required)e(to)i(isolate)i(it.)630 677 y Fs(mode)288
+(are)f(required)e(to)i(isolate)i(it.)630 1291 y Fs(mode)288
 b Ft(The)20 b Fs(mode=)g Ft(form)g(of)h(the)g Fs($if)f
 Ft(directiv)m(e)j(is)e(used)f(to)h(test)h(whether)e(Readline)1110
-787 y(is)29 b(in)h Fs(emacs)e Ft(or)h Fs(vi)g Ft(mo)s(de.)40
+1401 y(is)29 b(in)h Fs(emacs)e Ft(or)h Fs(vi)g Ft(mo)s(de.)40
 b(This)29 b(ma)m(y)h(b)s(e)e(used)h(in)g(conjunction)h(with)f(the)1110
-897 y(`)p Fs(set)h(keymap)p Ft(')c(command,)i(for)f(instance,)i(to)f
-(set)g(bindings)f(in)g(the)h Fs(emacs-)1110 1006 y(standard)23
+1510 y(`)p Fs(set)h(keymap)p Ft(')c(command,)i(for)f(instance,)i(to)f
+(set)g(bindings)f(in)g(the)h Fs(emacs-)1110 1620 y(standard)23
 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 1116 y(in)k Fs(emacs)f Ft(mo)s(de.)630
-1275 y Fs(term)288 b Ft(The)26 b Fs(term=)g Ft(form)g(ma)m(y)i(b)s(e)e
+(starting)h(out)1110 1729 y(in)k Fs(emacs)f Ft(mo)s(de.)630
+1885 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
-1385 y(ings,)38 b(p)s(erhaps)c(to)j(bind)e(the)h(k)m(ey)h(sequences)f
-(output)g(b)m(y)g(the)g(terminal's)1110 1494 y(function)24
+1995 y(ings,)38 b(p)s(erhaps)c(to)j(bind)e(the)h(k)m(ey)h(sequences)f
+(output)g(b)m(y)g(the)g(terminal's)1110 2104 y(function)24
 b(k)m(eys.)39 b(The)23 b(w)m(ord)h(on)f(the)i(righ)m(t)f(side)g(of)g
-(the)g(`)p Fs(=)p Ft(')g(is)g(tested)h(against)1110 1604
+(the)g(`)p Fs(=)p Ft(')g(is)g(tested)h(against)1110 2214
 y(b)s(oth)k(the)h(full)g(name)g(of)g(the)g(terminal)h(and)e(the)i(p)s
-(ortion)e(of)h(the)g(terminal)1110 1714 y(name)k(b)s(efore)f(the)g
+(ortion)e(of)h(the)g(terminal)1110 2324 y(name)k(b)s(efore)f(the)g
 (\014rst)g(`)p Fs(-)p Ft('.)50 b(This)33 b(allo)m(ws)i
 Fs(sun)e Ft(to)h(matc)m(h)g(b)s(oth)f Fs(sun)g Ft(and)1110
-1823 y Fs(sun-cmd)p Ft(,)c(for)h(instance.)630 1983 y
-Fs(application)1110 2092 y Ft(The)21 b Fq(application)j
+2433 y Fs(sun-cmd)p Ft(,)c(for)h(instance.)630 2589 y
+Fs(application)1110 2699 y Ft(The)21 b Fq(application)j
 Ft(construct)e(is)g(used)f(to)i(include)f(application-sp)s(eci\014c)h
-(set-)1110 2202 y(tings.)39 b(Eac)m(h)26 b(program)e(using)g(the)h
+(set-)1110 2808 y(tings.)39 b(Eac)m(h)26 b(program)e(using)g(the)h
 (Readline)g(library)g(sets)g(the)g Fq(application)1110
-2311 y(name)p Ft(,)g(and)e(y)m(ou)g(can)h(test)g(for)f(a)g(particular)h
+2918 y(name)p Ft(,)g(and)e(y)m(ou)g(can)h(test)g(for)f(a)g(particular)h
 (v)-5 b(alue.)39 b(This)22 b(could)h(b)s(e)g(used)f(to)1110
-2421 y(bind)32 b(k)m(ey)h(sequences)g(to)h(functions)e(useful)g(for)h
-(a)g(sp)s(eci\014c)f(program.)48 b(F)-8 b(or)1110 2531
+3027 y(bind)32 b(k)m(ey)h(sequences)g(to)h(functions)e(useful)g(for)h
+(a)g(sp)s(eci\014c)f(program.)48 b(F)-8 b(or)1110 3137
 y(instance,)35 b(the)e(follo)m(wing)h(command)f(adds)f(a)i(k)m(ey)f
-(sequence)h(that)f(quotes)1110 2640 y(the)e(curren)m(t)f(or)g(previous)
-g(w)m(ord)g(in)g(Bash:)1350 2775 y Fs($if)47 b(Bash)1350
-2884 y(#)g(Quote)g(the)g(current)f(or)h(previous)e(word)1350
-2994 y("\\C-xq":)h("\\eb\\"\\ef\\"")1350 3103 y($endif)150
-3263 y($endif)192 b Ft(This)29 b(command,)i(as)f(seen)h(in)f(the)g
+(sequence)h(that)f(quotes)1110 3246 y(the)e(curren)m(t)f(or)g(previous)
+g(w)m(ord)g(in)g(Bash:)1350 3379 y Fs($if)47 b(Bash)1350
+3489 y(#)g(Quote)g(the)g(current)f(or)h(previous)e(word)1350
+3598 y("\\C-xq":)h("\\eb\\"\\ef\\"")1350 3708 y($endif)150
+3864 y($endif)192 b Ft(This)29 b(command,)i(as)f(seen)h(in)f(the)g
 (previous)g(example,)h(terminates)g(an)g Fs($if)e Ft(command.)150
-3422 y Fs($else)240 b Ft(Commands)29 b(in)h(this)h(branc)m(h)e(of)i
+4019 y Fs($else)240 b Ft(Commands)29 b(in)h(this)h(branc)m(h)e(of)i
 (the)f Fs($if)g Ft(directiv)m(e)i(are)f(executed)g(if)f(the)h(test)g
-(fails.)150 3582 y Fs($include)96 b Ft(This)43 b(directiv)m(e)i(tak)m
+(fails.)150 4175 y Fs($include)96 b Ft(This)43 b(directiv)m(e)i(tak)m
 (es)g(a)e(single)i(\014lename)e(as)h(an)f(argumen)m(t)h(and)f(reads)g
-(commands)630 3691 y(and)38 b(bindings)f(from)h(that)i(\014le.)65
+(commands)630 4285 y(and)38 b(bindings)f(from)h(that)i(\014le.)65
 b(F)-8 b(or)39 b(example,)j(the)d(follo)m(wing)h(directiv)m(e)g(reads)e
-(from)630 3801 y(`)p Fs(/etc/inputrc)p Ft(':)870 3935
-y Fs($include)46 b(/etc/inputrc)150 4159 y Fk(8.3.3)63
-b(Sample)41 b(Init)g(File)275 4403 y Ft(Here)31 b(is)f(an)g(example)i
+(from)630 4394 y(`)p Fs(/etc/inputrc)p Ft(':)870 4527
+y Fs($include)46 b(/etc/inputrc)150 4746 y Fk(8.3.3)63
+b(Sample)41 b(Init)g(File)275 4988 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
-4513 y(and)f(conditional)h(syn)m(tax.)p eop end
+5098 y(and)f(conditional)h(syn)m(tax.)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)390 408 y Fs(#)47
@@ -12427,12 +12452,12 @@ b(No)29 b(\014ltering)g(of)150 3011 y(the)i(generated)h(completions)h
 (in)g(generating)i(the)f(matc)m(hes.)275 3258 y(An)m(y)g(function)h(sp)
 s(eci\014ed)f(with)g(`)p Fs(-F)p Ft(')h(is)g(in)m(v)m(ok)m(ed)h
 (\014rst.)44 b(The)31 b(function)h(ma)m(y)g(use)g(an)m(y)g(of)g(the)g
-(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
-(113\),)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
+(shell)150 3367 y(facilities,)50 b(including)44 b(the)h
+Fs(compgen)d Ft(and)i Fs(compopt)e Ft(builtins)i(describ)s(ed)f(b)s
+(elo)m(w)h(\(see)i(Section)f(8.7)150 3477 y([Programmable)31
+b(Completion)h(Builtins],)f(page)h(113\),)g(to)g(generate)g(the)f(matc)
+m(hes.)42 b(It)31 b(m)m(ust)g(put)f(the)150 3587 y(p)s(ossible)g
+(completions)h(in)f(the)h Fs(COMPREPLY)d 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
 (with)g(the)h(`)p Fs(-C)p Ft(')f(option)h(is)g(in)m(v)m(ok)m(ed)h(in)e
 (an)g(en)m(vironmen)m(t)h(equiv)-5 b(alen)m(t)150 3833
@@ -12688,7 +12713,25 @@ b(an)f(attempt)h(is)f(made)g(to)630 2471 y(remo)m(v)m(e)h(a)e
 (completion)i(sp)s(eci\014cation)f(for)f(a)h Fq(name)k
 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
+(eci\014cation.)150 2740 y Fs(compopt)870 2874 y(compopt)46
+b([-o)h Fj(option)11 b Fs(])45 b([+o)i Fj(option)11 b
+Fs(])45 b([)p Fj(name)11 b Fs(])630 3009 y Ft(Mo)s(dify)33
+b(completion)h(options)g(for)f(eac)m(h)h Fq(name)39 b
+Ft(according)34 b(to)g(the)f Fq(option)p Ft(s,)i(or)e(for)g(the)630
+3118 y(curren)m(tly-execution)46 b(completion)f(if)f(no)f
+Fq(name)5 b Ft(s)44 b(are)h(supplied.)80 b(If)43 b(no)h
+Fq(option)p Ft(s)h(are)630 3228 y(giv)m(en,)30 b(displa)m(y)e(the)g
+(completion)h(options)g(for)e(eac)m(h)i Fq(name)34 b
+Ft(or)27 b(the)i(curren)m(t)e(completion.)630 3337 y(The)f(p)s(ossible)
+g(v)-5 b(alues)27 b(of)f Fq(option)h Ft(are)g(those)g(v)-5
+b(alid)26 b(for)g(the)h Fs(complete)d Ft(builtin)i(describ)s(ed)630
+3447 y(ab)s(o)m(v)m(e.)630 3582 y(The)d(return)g(v)-5
+b(alue)25 b(is)f(true)g(unless)f(an)h(in)m(v)-5 b(alid)24
+b(option)h(is)f(supplied,)g(an)g(attempt)h(is)f(made)630
+3691 y(to)32 b(mo)s(dify)f(the)g(options)h(for)f(a)h
+Fq(name)k Ft(for)31 b(whic)m(h)g(no)g(completion)i(sp)s(eci\014cation)f
+(exists,)630 3801 y(or)e(an)h(output)f(error)g(o)s(ccurs.)p
+eop end
 %%Page: 117 123
 TeXDict begin 117 122 bop 150 -116 a Ft(Chapter)47 b(9:)i(Using)f
 (History)g(In)m(teractiv)m(ely)1865 b(117)150 299 y Fo(9)80
@@ -13589,9 +13632,9 @@ b Ft(Bash)26 b(has)g(m)m(ulti-c)m(haracter)i(in)m(v)m(o)s(cation)g
 (91\))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(111\),)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
+2052 y(grammable)39 b(Completion],)i(page)e(111\),)i(and)d(builtin)g
+(commands)f Fs(complete)p Ft(,)h Fs(compgen)p Ft(,)h(and)330
+2162 y Fs(compopt)p Ft(,)29 b(to)i(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(117\))i(and)d(the)330 2405 y Fs(history)k Ft(and)h
@@ -14616,83 +14659,86 @@ b(D)119 b(Indexes)p eop end
 %%Page: 148 154
 TeXDict begin 148 153 bop 150 -116 a Ft(148)2527 b(Bash)31
 b(Reference)g(Man)m(ual)150 299 y Fr(D.1)68 b(Index)45
-b(of)g(Shell)g(Builtin)g(Commands)150 604 y(.)150 730
+b(of)g(Shell)g(Builtin)g(Commands)150 604 y(.)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(.)h(.)f(.)g(.)h(.)
 f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)42 b
-Fb(35)150 988 y Fr(:)150 1114 y Fe(:)17 b Fc(.)12 b(.)h(.)f(.)g(.)h(.)f
+Fb(35)150 980 y Fr(:)150 1104 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(35)150 1382 y Fr([)150 1508 y Fe([)17
+(.)h(.)42 b Fb(35)150 1367 y Fr([)150 1490 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(39)150 1775
-y Fr(A)150 1901 y Fe(alias)11 b Fc(.)j(.)e(.)g(.)g(.)h(.)f(.)g(.)h(.)f
+f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)42 b Fb(39)150 1752
+y Fr(A)150 1875 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(41)150 2159 y Fr(B)150 2285 y Fe(bg)15 b Fc(.)e(.)g(.)f(.)g(.)g(.)h
+Fb(41)150 2128 y Fr(B)150 2252 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(88)150 2377 y Fe(bind)13 b Fc(.)g(.)f(.)g(.)h(.)f(.)g(.)h(.)
+(.)41 b Fb(88)150 2343 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(41)150 2469 y Fe(break)11 b Fc(.)j(.)e(.)g(.)g(.)h(.)f(.)g(.)h(.)f
+b Fb(41)150 2434 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(35)150 2561 y Fe(builtin)8 b Fc(.)14 b(.)e(.)h(.)f(.)g(.)h(.)f(.)g
+Fb(35)150 2525 y Fe(builtin)8 b Fc(.)14 b(.)e(.)h(.)f(.)g(.)h(.)f(.)g
 (.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)
 f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)34 b Fb(42)150
-2820 y Fr(C)150 2946 y Fe(caller)10 b Fc(.)j(.)g(.)f(.)g(.)h(.)f(.)g(.)
+2778 y Fr(C)150 2902 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(42)150 3038 y Fe(cd)15 b Fc(.)e(.)g(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)
+b Fb(42)150 2993 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(36)150 3130 y Fe(command)8 b Fc(.)14 b(.)e(.)h(.)f(.)g(.)h(.)f(.)g
+b Fb(36)150 3084 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(43)150
-3222 y Fe(compgen)7 b Fc(.)14 b(.)e(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
+3175 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(113)150 3314 y Fe(complete)26
+f(.)g(.)h(.)f(.)g(.)h(.)f(.)33 b Fb(113)150 3266 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(113)150 3406 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(36)150
-3664 y Fr(D)150 3790 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(43)150 3882 y Fe(dirs)13 b Fc(.)g(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)
+50 b Fb(113)150 3357 y Fe(compopt)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(116)150
+3448 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(36)150 3700 y
+Fr(D)150 3824 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(.)h(.)f(.)38
-b Fb(79)150 3975 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(89)150
-4233 y Fr(E)150 4359 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(44)150 4451 y Fe(enable)10 b Fc(.)j(.)g(.)f(.)g(.)h(.)f(.)g(.)h(.)
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)34 b Fb(43)150
+3915 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(79)150
+4006 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(89)150 4259
+y Fr(E)150 4383 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(44)150 4474 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(45)150
-4543 y Fe(eval)13 b Fc(.)g(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
+4565 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(36)150
-4635 y Fe(exec)13 b Fc(.)g(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
+4656 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(36)150
-4727 y Fe(exit)13 b Fc(.)g(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
+4747 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(36)150
-4819 y Fe(export)10 b Fc(.)j(.)g(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)
+4838 y Fe(export)10 b Fc(.)j(.)g(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)
 f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
-(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)35 b Fb(36)150 5096
-y Fr(F)150 5222 y Fe(fc)14 b Fc(.)f(.)f(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f
+(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)35 b Fb(36)150 5109
+y Fr(F)150 5233 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(118)150 5314 y Fe(fg)15 b Fc(.)e(.)g(.)f(.)g(.)g(.)h(.)f(.)g(.)h
+b Fb(118)150 5324 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(88)150 5592 y Fr(G)150 5717 y Fe(getopts)8 b Fc(.)14
+b Fb(88)150 5596 y Fr(G)150 5720 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(37)2025 604 y Fr(H)2025 720 y Fe(hash)13
@@ -14707,7 +14753,7 @@ b Fc(.)14 b(.)e(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h
 g(.)h(.)33 b Fb(118)2025 1146 y Fr(J)2025 1262 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(88)2025 1513 y Fr(K)2025
+(.)g(.)h(.)f(.)g(.)h(.)38 b Fb(88)2025 1514 y Fr(K)2025
 1630 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(89)2025
@@ -14717,73 +14763,73 @@ h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)40
 b Fb(45)2025 2066 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(45)2025 2153 y Fe(logout)10 b Fc(.)j(.)f(.)h(.)f(.)g(.)h(.)f(.)g
+b Fb(46)2025 2154 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(46)2025 2405 y Fr(P)2025 2521 y Fe(popd)13 b Fc(.)g(.)f(.)g(.)g(.)h
+Fb(46)2025 2405 y Fr(P)2025 2522 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(80)2025 2608 y Fe(printf)10 b Fc(.)j(.)f(.)h(.)f(.)g(.)h(.)f(.)g
+b Fb(80)2025 2609 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(46)2025 2695 y Fe(pushd)11 b Fc(.)i(.)g(.)f(.)g(.)h(.)f(.)g(.)h(.)f
+Fb(46)2025 2696 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(80)2025 2782 y Fe(pwd)14 b Fc(.)f(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)
+Fb(80)2025 2783 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(38)2025 3034 y Fr(R)2025 3150 y Fe(read)13 b Fc(.)g(.)f(.)g(.)g(.)
+b Fb(38)2025 3035 y Fr(R)2025 3151 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(46)2025 3237 y Fe(readonly)7 b Fc(.)14 b(.)e(.)g(.)h(.)f(.)g(.)
+38 b Fb(46)2025 3238 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(38)2025
-3325 y Fe(return)10 b Fc(.)j(.)f(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)
+3326 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(38)2025 3558
-y Fr(S)2025 3674 y Fe(set)14 b Fc(.)f(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)35 b Fb(38)2025 3559
+y Fr(S)2025 3675 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(49)2025 3761 y Fe(shift)11 b Fc(.)i(.)g(.)f(.)g(.)h(.)f(.)g(.)h(.)
+b Fb(49)2025 3762 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(38)2025 3848 y Fe(shopt)11 b Fc(.)i(.)g(.)f(.)g(.)h(.)f(.)g(.)h(.)
+b Fb(38)2025 3849 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(53)2025 3935 y Fe(source)10 b Fc(.)j(.)f(.)h(.)f(.)g(.)h(.)f(.)g
+b Fb(53)2025 3937 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(47)2025 4022 y Fe(suspend)8 b Fc(.)14 b(.)e(.)g(.)h(.)f(.)g(.)h(.)f
+Fb(47)2025 4024 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(89)2025
-4274 y Fr(T)2025 4390 y Fe(test)13 b Fc(.)g(.)f(.)g(.)g(.)h(.)f(.)g(.)h
+4276 y Fr(T)2025 4392 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(39)2025 4477 y Fe(times)11 b Fc(.)i(.)g(.)f(.)g(.)h(.)f(.)g(.)h(.)
+b Fb(39)2025 4479 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(40)2025 4565 y Fe(trap)13 b Fc(.)g(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f
+b Fb(40)2025 4566 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(40)2025 4652 y Fe(type)13 b Fc(.)g(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f
+b Fb(40)2025 4653 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(47)2025 4739 y Fe(typeset)8 b Fc(.)14 b(.)e(.)g(.)h(.)f(.)g(.)h(.)
+b Fb(47)2025 4741 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(48)2025
-4991 y Fr(U)2025 5107 y Fe(ulimit)10 b Fc(.)j(.)f(.)h(.)f(.)g(.)h(.)f
+4993 y Fr(U)2025 5109 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(48)2025 5194 y Fe(umask)11 b Fc(.)i(.)g(.)f(.)g(.)h(.)f(.)g(.)h(.)
+b Fb(48)2025 5196 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(40)2025 5281 y Fe(unalias)8 b Fc(.)14 b(.)e(.)g(.)h(.)f(.)g(.)h(.)
+b Fb(40)2025 5283 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(49)2025
-5368 y Fe(unset)11 b Fc(.)i(.)g(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f
+5370 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(41)2025 5601
-y Fr(W)2025 5717 y Fe(wait)13 b Fc(.)g(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f
+h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)37 b Fb(41)2025 5603
+y Fr(W)2025 5720 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(89)p eop end
@@ -14985,442 +15031,445 @@ 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(62)150 5340 y Fe(expand-tilde)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(96)2025 299 y Fr(F)2025 415 y Fe(FCEDIT)10 b Fc(.)j(.)f(.)h(.)f(.)
+b Fb(96)2025 299 y Fr(F)2025 437 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(62)2025 503 y Fe(FIGNORE)8 b Fc(.)14 b(.)e(.)g(.)h(.)f(.)g(.)h(.)f
+b Fb(62)2025 535 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(62)2025
-590 y Fe(FUNCNAME)7 b Fc(.)14 b(.)e(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f
+633 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(62)2025 825 y Fr(G)2025
-941 y Fe(GLOBIGNORE)24 b Fc(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
+h(.)f(.)g(.)h(.)f(.)g(.)h(.)32 b Fb(62)2025 923 y Fr(G)2025
+1061 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(63)2025 1029 y Fe(GROUPS)10
+f(.)g(.)h(.)f(.)g(.)48 b Fb(63)2025 1159 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(63)2025 1263 y Fr(H)2025 1380
+(.)f(.)g(.)h(.)35 b Fb(63)2025 1449 y Fr(H)2025 1587
 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(63)2025 1467 y Fe(HISTCMD)8
+h(.)f(.)g(.)h(.)f(.)49 b Fb(63)2025 1685 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(63)2025 1555 y Fe(HISTCONTROL)23
+g(.)h(.)f(.)34 b Fb(63)2025 1783 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(63)2025 1642 y Fe(HISTFILE)7 b Fc(.)14 b(.)e(.)g(.)h(.)f(.)g(.)h
+b Fb(63)2025 1881 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(63)2025
-1730 y Fe(HISTFILESIZE)22 b Fc(.)12 b(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g
+1979 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(63)2025 1817 y Fe(HISTIGNORE)24
+g(.)h(.)f(.)g(.)45 b Fb(63)2025 2077 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(63)2025 1905 y Fe(history-preserve-point)27 b Fc(.)13
+b Fb(63)2025 2175 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(96)2025 2273 y Fe(history-size)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(96)2025 2371 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(64)2025
+2469 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(64)2025 2567 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(59)2025 2665 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(96)2025 1992 y Fe(HISTSIZE)7 b Fc(.)14
+(.)h(.)48 b Fb(96)2025 2763 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(64)2025 2080 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(64)2025 2167 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(59)2025 2255 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(96)2025
-2342 y Fe(HOSTFILE)7 b Fc(.)14 b(.)e(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)
+32 b Fb(64)2025 2861 y Fe(HOSTNAME)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(64)2025
+2959 y Fe(HOSTTYPE)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(64)2025 2430 y
-Fe(HOSTNAME)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(64)2025 2517 y Fe(HOSTTYPE)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(64)2025 2752 y Fr(I)2025 2868 y Fe(IFS)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(59)2025 2956 y Fe(IGNOREEOF)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(64)2025 3043 y Fe(input-meta)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(96)2025 3131
-y Fe(INPUTRC)8 b Fc(.)14 b(.)e(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
+(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)32 b Fb(64)2025 3249 y
+Fr(I)2025 3387 y Fe(IFS)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(59)2025 3485 y Fe(IGNOREEOF)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(.)g(.)h(.)f(.)34 b Fb(64)2025 3218 y Fe
-(isearch-terminators)9 b Fc(.)16 b(.)d(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
-(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)35
-b Fb(96)2025 3453 y Fr(K)2025 3569 y Fe(keymap)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(97)2025 3822 y Fr(L)2025 3939 y Fe(LANG)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(64)2025 4027 y Fe(LC_ALL)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(64)2025 4114 y Fe(LC_COLLATE)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(65)2025 4202
+g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)49 b Fb(64)2025 3583
+y Fe(input-meta)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(96)2025 3681 y Fe(INPUTRC)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(64)2025 3779 y Fe(isearch-terminators)9
+b Fc(.)16 b(.)d(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)35 b Fb(96)2025 4069 y
+Fr(K)2025 4207 y Fe(keymap)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(97)2025
+4516 y Fr(L)2025 4654 y Fe(LANG)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(64)2025 4752 y Fe(LC_ALL)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(64)2025 4850 y Fe(LC_COLLATE)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(65)2025 4948
 y Fe(LC_CTYPE)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(65)2025 4289 y Fe(LC_MESSAGES)14
+f(.)g(.)h(.)f(.)g(.)h(.)32 b Fb(65)2025 5046 y Fe(LC_MESSAGES)14
 b Fc(.)h(.)d(.)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(.)40
-b Fb(7,)26 b(65)2025 4377 y Fe(LC_NUMERIC)e Fc(.)12 b(.)h(.)f(.)g(.)h
+b Fb(7,)26 b(65)2025 5144 y Fe(LC_NUMERIC)e 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(65)2025
-4464 y Fe(LINENO)10 b Fc(.)j(.)f(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)
+5242 y Fe(LINENO)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(65)2025 4552
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)35 b Fb(65)2025 5340
 y Fe(LINES)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(65)2025 4786
-y Fr(M)2025 4903 y Fe(MACHTYPE)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(65)2025
-4990 y Fe(MAIL)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(59)2025
-5078 y Fe(MAILCHECK)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(65)2025 5165 y Fe(MAILPATH)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 5252 y Fe(mark-modified-lines)9
-b Fc(.)16 b(.)d(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f
-(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)35 b Fb(97)2025 5340 y
-Fe(mark-symlinked-directories)17 b Fc(.)h(.)12 b(.)h(.)f(.)g(.)g(.)h(.)
-f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)43 b Fb(97)p eop end
+f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)37 b Fb(65)p eop end
 %%Page: 151 157
 TeXDict begin 151 156 bop 150 -116 a Ft(App)s(endix)29
-b(D:)i(Indexes)2623 b(151)150 299 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(97)150
-394 y Fe(meta-flag)25 b Fc(.)13 b(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h
+b(D:)i(Indexes)2623 b(151)150 299 y Fr(M)150 415 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(.)f(.)g(.)h(.)f(.)49 b Fb(96)150 690 y Fr(O)150
-823 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(65)150 919 y
-Fe(OPTARG)10 b Fc(.)j(.)g(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
+g(.)h(.)32 b Fb(65)150 502 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(59)150 589 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(65)150 676
+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(59)150 764 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(97)150 851
+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(97)150 938
+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(97)150 1025 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(96)150 1277
+y Fr(O)150 1392 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(65)150
+1480 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(59)150 1567
+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(59)150 1014 y Fe(OPTERR)10
+f(.)g(.)h(.)f(.)g(.)h(.)f(.)35 b Fb(65)150 1654 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(65)150 1110 y Fe(OPTIND)10 b Fc(.)j(.)g(.)f(.)g
+(.)g(.)h(.)f(.)35 b Fb(59)150 1741 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(59)150 1206 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(65)150
-1301 y Fe(output-meta)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(97)150 1597 y Fr(P)150 1730
-y Fe(page-completions)13 b Fc(.)j(.)d(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f
-(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)39
-b Fb(97)150 1826 y Fe(PATH)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(59)150 1921 y Fe(PIPESTATUS)24 b Fc(.)13 b(.)f(.)g(.)h(.)f(.)g(.)g
+b Fb(65)150 1828 y Fe(output-meta)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(97)150 2080 y
+Fr(P)150 2196 y Fe(page-completions)13 b Fc(.)j(.)d(.)f(.)g(.)h(.)f(.)g
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)
+f(.)g(.)39 b Fb(97)150 2283 y Fe(PATH)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(59)150 2370 y Fe(PIPESTATUS)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(65)150 2017 y
+g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)47 b Fb(65)150 2457 y
 Fe(POSIXLY_CORRECT)15 b Fc(.)g(.)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(.)40
-b Fb(65)150 2112 y Fe(PPID)13 b Fc(.)g(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
+b Fb(65)150 2545 y Fe(PPID)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(66)150 2208 y Fe(PROMPT_COMMAND)16 b Fc(.)g(.)c(.)g(.)h(.)f(.)g(.)
+b Fb(66)150 2632 y Fe(PROMPT_COMMAND)16 b Fc(.)g(.)c(.)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(.)42 b Fb(66)150 2303 y Fe(PS1)14 b
+(.)g(.)h(.)f(.)g(.)42 b Fb(66)150 2719 y Fe(PS1)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(59)150 2399 y Fe(PS2)14
+f(.)g(.)h(.)f(.)g(.)h(.)39 b Fb(59)150 2806 y Fe(PS2)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(59)150 2495 y Fe(PS3)14
+(.)f(.)g(.)h(.)f(.)g(.)h(.)39 b Fb(59)150 2893 y Fe(PS3)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(66)150 2590 y Fe(PS4)14
+(.)f(.)g(.)h(.)f(.)g(.)h(.)39 b Fb(66)150 2980 y Fe(PS4)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(66)150 2686 y Fe(PWD)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(66)2025 299 y Fr(R)2025
-415 y Fe(RANDOM)10 b Fc(.)j(.)f(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h
+(.)f(.)g(.)h(.)f(.)g(.)h(.)39 b Fb(66)2025 299 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(66)2025 539 y Fr(R)2025
+658 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(66)2025 502 y
+g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)35 b Fb(66)2025 747 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(66)2025 736 y
-Fr(S)2025 852 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(66)2025
-939 y Fe(SHELL)11 b Fc(.)i(.)g(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)37 b Fb(66)2025 987 y
+Fr(S)2025 1106 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(66)2025
+1194 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(66)2025 1026
+h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)37 b Fb(66)2025 1283
 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(66)2025 1114 y Fe(SHLVL)11
+h(.)f(.)g(.)h(.)f(.)49 b Fb(66)2025 1371 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(66)2025 1201 y Fe(show-all-if-ambiguous)29
+(.)g(.)h(.)f(.)g(.)37 b Fb(66)2025 1460 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(97)2025 1288 y Fe(show-all-if-unmodified)27
+(.)g(.)g(.)h(.)f(.)50 b Fb(97)2025 1549 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(97)2025 1522 y Fr(T)2025 1638
+(.)f(.)g(.)h(.)48 b Fb(98)2025 1789 y Fr(T)2025 1908
 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 1725 y Fe(TEXTDOMAINDIR)21
+g(.)h(.)f(.)g(.)h(.)49 b Fb(7)2025 1996 y Fe(TEXTDOMAINDIR)21
 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 1812 y Fe(TIMEFORMAT)24 b Fc(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g
+b Fb(7)2025 2085 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(66)2025 1900
+f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)48 b Fb(66)2025 2174
 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(67)2025 1987
+f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)37 b Fb(67)2025 2262
 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(67)2025 2220 y Fr(U)2025
-2336 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(.)35 b Fb(67)2025 2502 y Fr(U)2025
+2621 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(67)2025
-2570 y Fr(V)2025 2686 y Fe(visible-stats)18 b Fc(.)d(.)d(.)g(.)h(.)f(.)
+2862 y Fr(V)2025 2980 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(98)150 2943 y Fr(D.4)68
-b(F)-11 b(unction)44 b(Index)150 3264 y(A)150 3381 y
+(.)f(.)g(.)h(.)f(.)g(.)h(.)43 b Fb(98)150 3238 y Fr(D.4)68
+b(F)-11 b(unction)44 b(Index)150 3559 y(A)150 3679 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(109)150 3468 y Fe(accept-line)28
+f(.)g(.)h(.)f(.)34 b Fb(109)150 3769 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(103)150 3555 y Fe(alias-expand-line)29
+(.)g(.)37 b Fb(103)150 3858 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(111)150 3808 y
-Fr(B)150 3924 y Fe(backward-char)29 b(\(C-b\))15 b Fc(.)e(.)f(.)g(.)h
+(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)39 b Fb(111)150 4121 y
+Fr(B)150 4242 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(103)150 4011 y Fe(backward-delete-char)30
+g(.)41 b Fb(103)150 4331 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(105)150 4098 y Fe(backward-kill-line)30 b(\(C-x)c(Rubout\))e
+b Fb(105)150 4420 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(106)150
-4186 y Fe(backward-kill-word)30 b(\(M-)999 4183 y Fg(h)p
-1024 4130 146 4 v 1024 4186 a Ff(DEL)p 1024 4201 V 1165
-4183 a Fg(i)1195 4186 y Fe(\))20 b Fc(.)13 b(.)f(.)g(.)h(.)f(.)g(.)h(.)
-f(.)g(.)h(.)f(.)g(.)46 b Fb(106)150 4273 y Fe(backward-word)29
+4510 y Fe(backward-kill-word)30 b(\(M-)999 4507 y Fg(h)p
+1024 4454 146 4 v 1024 4510 a Ff(DEL)p 1024 4525 V 1165
+4507 a Fg(i)1195 4510 y Fe(\))20 b Fc(.)13 b(.)f(.)g(.)h(.)f(.)g(.)h(.)
+f(.)g(.)h(.)f(.)g(.)46 b Fb(106)150 4599 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(103)150
-4360 y Fe(beginning-of-history)30 b(\(M-<\))24 b Fc(.)12
+4688 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(104)150 4448 y Fe(beginning-of-line)29 b(\(C-a\))9
+b Fb(104)150 4778 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(103)150 4700 y Fr(C)150 4816 y Fe
+(.)f(.)g(.)35 b Fb(103)150 5041 y Fr(C)150 5161 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(109)150 4903
+(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)36 b Fb(109)150 5251
 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(105)150 4991 y Fe(character-search)29 b(\(C-]\))10
+b Fb(105)150 5340 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(109)150 5078 y Fe(character-search-backward)31
-b(\(M-C-]\))12 b Fc(.)j(.)d(.)g(.)h(.)f(.)g(.)h(.)38
-b Fb(109)150 5165 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(103)150 5253 y Fe(complete)27
-b(\()528 5250 y Fg(h)p 553 5197 148 4 v 553 5253 a Ff(T)-6
-b(AB)p 553 5268 V 697 5250 a Fg(i)726 5253 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(107)150
-5340 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(108)2025 3264 y Fe(complete-filename)29 b(\(M-/\))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(108)2025 3357 y Fe(complete-hostname)29
+g(.)g(.)h(.)36 b Fb(109)2025 3559 y Fe(character-search-backward)31
+b(\(M-C-]\))12 b Fc(.)i(.)f(.)f(.)g(.)h(.)f(.)g(.)39
+b Fb(109)2025 3651 y Fe(clear-screen)28 b(\(C-l\))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(103)2025 3743 y Fe(complete)27
+b(\()2403 3740 y Fg(h)p 2428 3687 148 4 v 2428 3743 a
+Ff(T)-6 b(AB)p 2428 3758 V 2571 3740 a Fg(i)2601 3743
+y Fe(\))18 b Fc(.)13 b(.)f(.)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(107)2025 3835 y Fe(complete-command)29 b(\(M-!\))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(108)2025 3927 y Fe(complete-filename)29
+b(\(M-/\))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(108)2025 4019 y Fe(complete-hostname)29
 b(\(M-@\))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(108)2025 3450 y Fe(complete-into-braces)
+(.)h(.)f(.)g(.)h(.)f(.)35 b Fb(108)2025 4111 y Fe(complete-into-braces)
 30 b(\(M-{\))24 b Fc(.)12 b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h
-(.)f(.)g(.)49 b Fb(108)2025 3543 y Fe(complete-username)29
+(.)f(.)g(.)49 b Fb(108)2025 4203 y Fe(complete-username)29
 b(\(M-~\))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(108)2025 3636 y Fe(complete-variable)29
+(.)h(.)f(.)g(.)h(.)f(.)35 b Fb(108)2025 4294 y Fe(complete-variable)29
 b(\(M-$\))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(108)2025 3729 y Fe(copy-backward-word)29
+(.)h(.)f(.)g(.)h(.)f(.)35 b Fb(108)2025 4386 y Fe(copy-backward-word)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(106)2025 3822 y Fe
+(.)h(.)f(.)g(.)g(.)h(.)f(.)38 b Fb(106)2025 4478 y Fe
 (copy-forward-word)29 b(\(\))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 3915 y Fe(copy-region-as-kill)30 b(\(\))10
+b Fb(106)2025 4570 y Fe(copy-region-as-kill)30 b(\(\))10
 b Fc(.)j(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)
-f(.)g(.)h(.)36 b Fb(106)2025 4196 y Fr(D)2025 4324 y
+f(.)g(.)h(.)36 b Fb(106)2025 4847 y Fr(D)2025 4972 y
 Fe(delete-char)28 b(\(C-d\))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(105)2025 4417 y Fe(delete-char-or-list)30 b(\(\))10
+b Fb(105)2025 5064 y Fe(delete-char-or-list)30 b(\(\))10
 b Fc(.)j(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)
-f(.)g(.)h(.)36 b Fb(108)2025 4510 y Fe(delete-horizontal-space)31
+f(.)g(.)h(.)36 b Fb(108)2025 5156 y Fe(delete-horizontal-space)31
 b(\(\))23 b Fc(.)12 b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f
-(.)g(.)49 b Fb(106)2025 4603 y Fe(digit-argument)29 b(\()p
+(.)g(.)49 b Fb(106)2025 5248 y Fe(digit-argument)29 b(\()p
 Fd(M-0)p Fe(,)d Fd(M-1)p Fe(,)h(...)f Fd(M--)p Fe(\))13
-b Fc(.)h(.)e(.)g(.)h(.)f(.)g(.)h(.)39 b Fb(107)2025 4695
+b Fc(.)h(.)e(.)g(.)h(.)f(.)g(.)h(.)39 b Fb(107)2025 5340
 y Fe(display-shell-version)30 b(\(C-x)d(C-v\))c Fc(.)12
-b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)48 b Fb(110)2025
-4788 y Fe(do-uppercase-version)30 b(\(M-a,)d(M-b,)f(M-)p
-Fd(x)p Fe(,)h(...\))2191 4876 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(109)2025 4968 y Fe(downcase-word)28 b(\(M-l\))15
-b Fc(.)e(.)g(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)
-h(.)f(.)g(.)h(.)f(.)g(.)41 b Fb(105)2025 5061 y Fe(dump-functions)29
-b(\(\))18 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(.)44 b Fb(110)2025
-5154 y Fe(dump-macros)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(110)2025 5247 y Fe(dump-variables)29
-b(\(\))18 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(.)44 b Fb(110)2025
-5340 y Fe(dynamic-complete-history)31 b(\(M-)3109 5337
-y Fg(h)p 3134 5284 V 3134 5340 a Ff(T)-6 b(AB)p 3134
-5355 V 3277 5337 a Fg(i)3307 5340 y Fe(\))10 b Fc(.)j(.)f(.)h(.)f(.)g
-(.)h(.)36 b Fb(108)p eop end
+b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)48 b Fb(110)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(E)150 420 y Fe
-(edit-and-execute-command)g(\(C-xC-e\))12 b Fc(.)j(.)d(.)g(.)h(.)f(.)g
-(.)h(.)38 b Fb(111)150 509 y Fe(end-kbd-macro)29 b(\(C-x)d(\)\))19
+b(Reference)g(Man)m(ual)150 299 y Fe(do-uppercase-version)f(\(M-a,)d
+(M-b,)f(M-)p Fd(x)p Fe(,)h(...)q(\))317 386 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(109)150 473 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(105)150
+561 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(110)150 648 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(110)150
+735 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(110)150 822 y Fe(dynamic-complete-history)31
+b(\(M-)1234 819 y Fg(h)p 1259 766 148 4 v 1259 822 a
+Ff(T)-6 b(AB)p 1259 838 V 1403 819 a Fg(i)1432 822 y
+Fe(\))10 b Fc(.)j(.)g(.)f(.)g(.)h(.)f(.)36 b Fb(108)150
+1074 y Fr(E)150 1191 y Fe(edit-and-execute-command)31
+b(\(C-xC-e\))12 b Fc(.)j(.)d(.)g(.)h(.)f(.)g(.)h(.)38
+b Fb(111)150 1278 y Fe(end-kbd-macro)29 b(\(C-x)d(\)\))19
 b Fc(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
-(.)h(.)f(.)g(.)h(.)44 b Fb(109)150 599 y Fe(end-of-history)29
+(.)h(.)f(.)g(.)h(.)44 b Fb(109)150 1365 y Fe(end-of-history)29
 b(\(M->\))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(104)150 688
+(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)39 b Fb(104)150 1452
 y Fe(end-of-line)28 b(\(C-e\))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(103)150 778 y Fe(exchange-point-and-mark)31 b(\(C-x)26
+b Fb(103)150 1540 y Fe(exchange-point-and-mark)31 b(\(C-x)26
 b(C-x\))21 b Fc(.)12 b(.)g(.)h(.)f(.)g(.)g(.)h(.)45 b
-Fb(109)150 1041 y Fr(F)150 1162 y Fe(forward-backward-delete-char)32
+Fb(109)150 1792 y Fr(F)150 1908 y Fe(forward-backward-delete-char)32
 b(\(\))15 b Fc(.)e(.)f(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)41
-b Fb(105)150 1252 y Fe(forward-char)28 b(\(C-f\))16 b
+b Fb(105)150 1995 y Fe(forward-char)28 b(\(C-f\))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(103)150 1341 y Fe
+(.)g(.)h(.)f(.)g(.)h(.)f(.)42 b Fb(103)150 2082 y Fe
 (forward-search-history)31 b(\(C-s\))20 b Fc(.)13 b(.)f(.)g(.)h(.)f(.)g
-(.)h(.)f(.)g(.)h(.)f(.)g(.)46 b Fb(104)150 1431 y Fe(forward-word)28
+(.)h(.)f(.)g(.)h(.)f(.)g(.)46 b Fb(104)150 2170 y Fe(forward-word)28
 b(\(M-f\))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(103)150
-1684 y Fr(G)150 1805 y Fe(glob-complete-word)30 b(\(M-g\))7
+2411 y Fr(G)150 2527 y Fe(glob-complete-word)30 b(\(M-g\))7
 b Fc(.)14 b(.)e(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
-(.)h(.)33 b Fb(110)150 1894 y Fe(glob-expand-word)c(\(C-x)e(*\))14
+(.)h(.)33 b Fb(110)150 2615 y Fe(glob-expand-word)c(\(C-x)e(*\))14
 b Fc(.)f(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)
-f(.)40 b Fb(110)150 1984 y Fe(glob-list-expansions)30
+f(.)40 b Fb(110)150 2702 y Fe(glob-list-expansions)30
 b(\(C-x)d(g\))8 b Fc(.)13 b(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
-(.)h(.)34 b Fb(110)150 2248 y Fr(H)150 2368 y Fe
+(.)h(.)34 b Fb(110)150 2954 y Fr(H)150 3070 y Fe
 (history-and-alias-expand-line)e(\(\))14 b Fc(.)f(.)f(.)h(.)f(.)g(.)h
-(.)f(.)g(.)40 b Fb(111)150 2458 y Fe(history-expand-line)30
+(.)f(.)g(.)40 b Fb(111)150 3157 y Fe(history-expand-line)30
 b(\(M-^\))25 b Fc(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)
-g(.)h(.)f(.)50 b Fb(110)150 2547 y Fe(history-search-backward)31
+g(.)h(.)f(.)50 b Fb(110)150 3245 y Fe(history-search-backward)31
 b(\(\))23 b Fc(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f
-(.)g(.)49 b Fb(104)150 2637 y Fe(history-search-forward)31
+(.)g(.)49 b Fb(104)150 3332 y Fe(history-search-forward)31
 b(\(\))24 b Fc(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
-(.)h(.)f(.)50 b Fb(104)150 2901 y Fr(I)150 3021 y Fe(insert-comment)29
+(.)h(.)f(.)50 b Fb(104)150 3584 y Fr(I)150 3700 y Fe(insert-comment)29
 b(\(M-#\))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(110)150 3111
+(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)39 b Fb(110)150 3787
 y Fe(insert-completions)30 b(\(M-*\))7 b Fc(.)14 b(.)e(.)g(.)h(.)f(.)g
 (.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)33 b Fb(107)150
-3201 y Fe(insert-last-argument)d(\(M-.)d(or)f(M-_\))8
+3875 y Fe(insert-last-argument)d(\(M-.)d(or)f(M-_\))8
 b Fc(.)13 b(.)f(.)h(.)f(.)g(.)h(.)f(.)g(.)34 b Fb(111)150
-3464 y Fr(K)150 3585 y Fe(kill-line)28 b(\(C-k\))21 b
+4127 y Fr(K)150 4243 y Fe(kill-line)28 b(\(C-k\))21 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(.)46 b Fb(106)150
-3675 y Fe(kill-region)28 b(\(\))22 b Fc(.)13 b(.)f(.)g(.)h(.)f(.)g(.)h
+4330 y Fe(kill-region)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 3764 y Fe(kill-whole-line)29
+h(.)f(.)g(.)48 b Fb(106)150 4417 y Fe(kill-whole-line)29
 b(\(\))16 b Fc(.)d(.)f(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f
 (.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)42 b Fb(106)150
-3854 y Fe(kill-word)28 b(\(M-d\))21 b Fc(.)13 b(.)f(.)g(.)h(.)f(.)g(.)h
+4504 y Fe(kill-word)28 b(\(M-d\))21 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(.)46 b Fb(106)150 4107 y Fr(M)150 4228 y Fe(magic-space)28
+g(.)h(.)46 b Fb(106)150 4746 y Fr(M)150 4862 y Fe(magic-space)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(111)150 4317 y Fe(menu-complete)29 b(\(\))19 b Fc(.)12
+b Fb(111)150 4950 y Fe(menu-complete)29 b(\(\))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(.)45 b Fb(107)150 4581 y
-Fr(N)150 4702 y Fe(next-history)28 b(\(C-n\))16 b Fc(.)e(.)e(.)h(.)f(.)
+(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)45 b Fb(107)150 5202 y
+Fr(N)150 5318 y Fe(next-history)28 b(\(C-n\))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(104)150 4791 y Fe(non-incremental-forward-searc)q(h-hi)q
-(story)32 b(\(M-n\))317 4878 y Fc(.)12 b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)
+(.)f(.)42 b Fb(104)150 5405 y Fe(non-incremental-forward-searc)q(h-hi)q
+(story)32 b(\(M-n\))317 5492 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(104)150 4968 y Fe(non-incremental-reverse-searc)q(h-hi)q(story)32
-b(\(M-p\))317 5055 y Fc(.)12 b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
+b Fb(104)150 5579 y Fe(non-incremental-reverse-searc)q(h-hi)q(story)32
+b(\(M-p\))317 5667 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(104)2025
-299 y Fr(O)2025 415 y Fe(operate-and-get-next)30 b(\(C-o\))24
+299 y Fr(O)2025 431 y Fe(operate-and-get-next)30 b(\(C-o\))24
 b Fc(.)12 b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)49
-b Fb(111)2025 502 y Fe(overwrite-mode)29 b(\(\))18 b
+b Fb(111)2025 526 y Fe(overwrite-mode)29 b(\(\))18 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(.)44 b Fb(105)2025 744
-y Fr(P)2025 860 y Fe(possible-command-completions)32
+(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)44 b Fb(105)2025 810
+y Fr(P)2025 942 y Fe(possible-command-completions)32
 b(\(C-x)26 b(!\))15 b Fc(.)e(.)f(.)h(.)f(.)41 b Fb(108)2025
-947 y Fe(possible-completions)30 b(\(M-?\))24 b Fc(.)12
+1037 y Fe(possible-completions)30 b(\(M-?\))24 b Fc(.)12
 b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)49
-b Fb(107)2025 1035 y Fe(possible-filename-completions)32
+b Fb(107)2025 1132 y Fe(possible-filename-completions)32
 b(\(C-x)26 b(/\))14 b Fc(.)f(.)f(.)g(.)40 b Fb(108)2025
-1122 y Fe(possible-hostname-completions)32 b(\(C-x)26
-b(@\))14 b Fc(.)f(.)f(.)g(.)40 b Fb(108)2025 1209 y Fe
+1228 y Fe(possible-hostname-completions)32 b(\(C-x)26
+b(@\))14 b Fc(.)f(.)f(.)g(.)40 b Fb(108)2025 1323 y Fe
 (possible-username-completions)32 b(\(C-x)26 b(~\))14
-b Fc(.)f(.)f(.)g(.)40 b Fb(108)2025 1296 y Fe
+b Fc(.)f(.)f(.)g(.)40 b Fb(108)2025 1418 y Fe
 (possible-variable-completions)32 b(\(C-x)26 b($\))14
-b Fc(.)f(.)f(.)g(.)40 b Fb(108)2025 1384 y Fe(prefix-meta)28
-b(\()2521 1381 y Fg(h)p 2545 1328 139 4 v 2545 1384 a
-Ff(ESC)p 2545 1399 V 2679 1381 a Fg(i)2709 1384 y Fe(\))19
+b Fc(.)f(.)f(.)g(.)40 b Fb(108)2025 1513 y Fe(prefix-meta)28
+b(\()2521 1510 y Fg(h)p 2545 1457 139 4 v 2545 1513 a
+Ff(ESC)p 2545 1529 V 2679 1510 a Fg(i)2709 1513 y Fe(\))19
 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(.)45 b Fb(109)2025 1471 y Fe(previous-history)
+(.)h(.)f(.)g(.)h(.)f(.)g(.)45 b Fb(109)2025 1608 y Fe(previous-history)
 29 b(\(C-p\))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(104)2025 1723 y Fr(Q)2025
-1839 y Fe(quoted-insert)28 b(\(C-q)f(or)f(C-v\))18 b
+h(.)f(.)g(.)h(.)f(.)g(.)h(.)36 b Fb(104)2025 1902 y Fr(Q)2025
+2034 y Fe(quoted-insert)28 b(\(C-q)f(or)f(C-v\))18 b
 Fc(.)13 b(.)g(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)44
-b Fb(105)2025 2091 y Fr(R)2025 2207 y Fe(re-read-init-file)29
+b Fb(105)2025 2328 y Fr(R)2025 2460 y Fe(re-read-init-file)29
 b(\(C-x)e(C-r\))10 b Fc(.)j(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
-(.)h(.)f(.)36 b Fb(109)2025 2294 y Fe(redraw-current-line)30
+(.)h(.)f(.)36 b Fb(109)2025 2556 y Fe(redraw-current-line)30
 b(\(\))10 b Fc(.)j(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f
-(.)g(.)h(.)f(.)g(.)h(.)36 b Fb(103)2025 2382 y Fe
+(.)g(.)h(.)f(.)g(.)h(.)36 b Fb(103)2025 2651 y Fe
 (reverse-search-history)30 b(\(C-r\))21 b Fc(.)13 b(.)f(.)g(.)h(.)f(.)g
-(.)h(.)f(.)g(.)g(.)h(.)f(.)46 b Fb(104)2025 2469 y Fe(revert-line)28
+(.)h(.)f(.)g(.)g(.)h(.)f(.)46 b Fb(104)2025 2746 y Fe(revert-line)28
 b(\(M-r\))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(109)2025 2711 y Fr(S)2025 2827 y Fe(self-insert)28
+Fb(109)2025 3029 y Fr(S)2025 3162 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(105)2025 2914 y Fe(set-mark)27
+(.)g(.)h(.)f(.)g(.)38 b Fb(105)2025 3257 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(109)2025 3001 y Fe(shell-expand-line)29 b(\(M-C-e\))d
+b Fb(109)2025 3352 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(110)2025 3088 y Fe(start-kbd-macro)29 b(\(C-x)d(\(\))16
+b Fb(110)2025 3447 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(108)2025 3330 y Fr(T)2025 3446 y Fe(tilde-expand)28
+f(.)g(.)42 b Fb(108)2025 3730 y Fr(T)2025 3863 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(109)2025
-3533 y Fe(transpose-chars)29 b(\(C-t\))12 b Fc(.)h(.)f(.)h(.)f(.)g(.)h
+3958 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(105)2025 3621 y Fe(transpose-words)29 b(\(M-t\))12
+b Fb(105)2025 4053 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(105)2025 3873 y Fr(U)2025 3989
+g(.)g(.)h(.)f(.)38 b Fb(105)2025 4347 y Fr(U)2025 4479
 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(109)2025 4076 y Fe(universal-argument)29 b(\(\))12
+b Fb(109)2025 4574 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(107)2025 4163 y Fe(unix-filename-rubout)30
+g(.)g(.)h(.)f(.)38 b Fb(107)2025 4669 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(106)2025 4251 y Fe(unix-line-discard)29
+(.)f(.)g(.)h(.)f(.)35 b Fb(106)2025 4765 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(106)2025 4338 y Fe(unix-word-rubout)29
+(.)h(.)f(.)g(.)h(.)f(.)35 b Fb(106)2025 4860 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(106)2025 4425 y Fe(upcase-word)28
+(.)f(.)g(.)h(.)f(.)g(.)h(.)36 b Fb(106)2025 4955 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(105)2025 4677 y Fr(Y)2025 4793 y Fe(yank)26 b(\(C-y\))10
+Fb(105)2025 5249 y Fr(Y)2025 5381 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(107)2025 4881 y Fe(yank-last-arg)28 b(\(M-.)f(or)f(M-_\))18
+b Fb(107)2025 5476 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(104)2025 4968 y Fe(yank-nth-arg)28 b(\(M-C-y\))13
+44 b Fb(104)2025 5571 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(104)2025 5055 y Fe(yank-pop)27
+g(.)h(.)f(.)g(.)h(.)39 b Fb(104)2025 5667 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(107)p eop end
index 830599f6404cb7c7a5615b4fe45183a87bfcda36..e8482ab2c264adf8dba9f0586689b817c099f22f 100644 (file)
@@ -3132,6 +3132,7 @@ Each non-option argument is a command as it would appear in a
 Readline initialization file (@pxref{Readline Init File}),
 but each binding or command must be passed as a separate argument;  e.g.,
 @samp{"\C-x\C-r":re-read-init-file}.
+
 Options, if supplied, have the following meanings:
 
 @table @code
@@ -3412,14 +3413,24 @@ or there is an error loading a new builtin from a shared object.
 @item help
 @btindex help
 @example
-help [-s] [@var{pattern}]
+help [-dms] [@var{pattern}]
 @end example
 Display helpful information about builtin commands.
 If @var{pattern} is specified, @code{help} gives detailed help
 on all commands matching @var{pattern}, otherwise a list of
 the builtins is printed.
-The @option{-s} option restricts the information displayed to a short
-usage synopsis.
+
+Options, if supplied, have the following meanings:
+
+@table @code
+@item -d
+Display a short description of each @var{pattern}
+@item -m
+Display the description of each @var{pattern} in a manpage-like format
+@item -s
+Display only a short usage synopsis for each @var{pattern}
+@end table
+
 The return status is zero unless no command matches @var{pattern}.
 
 @item let
@@ -3455,6 +3466,46 @@ logout [@var{n}]
 Exit a login shell, returning a status of @var{n} to the shell's
 parent.
 
+@item mapfile
+@btindex mapfile
+@example
+mapfile [-n @var{count}] [-O @var{origin}] [-s @var{count}] [-t] [-u @var{fd}] [
+-C @var{callback}] [-c @var{quantum}] [@var{array}]
+@end example
+Read lines from the standard input into array variable @var{array},
+or from file descriptor @var{fd}
+if the @option{-u} option is supplied.
+The variable @code{MAPFILE} is the default @var{array}.
+Options, if supplied, have the following meanings:
+@table @code
+
+@item -n
+Copy at most @var{count} lines.  If @var{count} is 0, all lines are copied.
+@item -O
+Begin assigning to @var{array} at index @var{origin}.
+The default index is 0.
+@item -s
+Discard the first @var{count} lines read.
+@item -t
+Remove a trailing line from each line read.
+@item -u
+Read lines from file descriptor @var{fd} instead of the standard input.
+@item -C
+Evaluate @var{callback} each time @var{quantum}P lines are read.
+The @option{-c} option specifies @var{quantum}.
+@item -c
+Specify the number of lines read between each call to @var{callback}.
+@end table
+
+If @option{-C} is specified without @option{-c}, 
+the default quantum is 5000.
+
+If not supplied with an explicit origin, @code{mapfile} will clear @var{array}
+before assigning to it.
+
+@code{mapfile} returns successfully unless an invalid option or option
+argument is supplied, or @var{array} is invalid or unassignable.
+
 @item printf
 @btindex printf
 @example
@@ -3597,8 +3648,8 @@ is not also used.
 If the @option{-f} option is used, @code{type} does not attempt to find
 shell functions, as with the @code{command} builtin.
 
-The return status is zero if any of the @var{names} are found, non-zero
-if none are found.
+The return status is zero if all of the @var{names} are found, non-zero
+if any are not found.
 
 @item typeset
 @btindex typeset
index a7571020c5614dd4ac25fb3a0181e569f751b38b..5e1d64ff7d6585ed6e3afb3215b3c2f3de62dc12 100644 (file)
@@ -3132,6 +3132,7 @@ Each non-option argument is a command as it would appear in a
 Readline initialization file (@pxref{Readline Init File}),
 but each binding or command must be passed as a separate argument;  e.g.,
 @samp{"\C-x\C-r":re-read-init-file}.
+
 Options, if supplied, have the following meanings:
 
 @table @code
@@ -3412,14 +3413,24 @@ or there is an error loading a new builtin from a shared object.
 @item help
 @btindex help
 @example
-help [-s] [@var{pattern}]
+help [-dms] [@var{pattern}]
 @end example
 Display helpful information about builtin commands.
 If @var{pattern} is specified, @code{help} gives detailed help
 on all commands matching @var{pattern}, otherwise a list of
 the builtins is printed.
-The @option{-s} option restricts the information displayed to a short
-usage synopsis.
+
+Options, if supplied, have the following meanings:
+
+@table @code
+@item -d
+Display a short description of each @var{pattern}
+@item -m
+Display the description of each @var{pattern} in a manpage-like format
+@item -s
+Display only a short usage synopsis for each @var{pattern}
+@end table
+
 The return status is zero unless no command matches @var{pattern}.
 
 @item let
@@ -3488,7 +3499,7 @@ non-zero on failure.
 @item read
 @btindex read
 @example
-read [-ers] [-a @var{aname}] [-d @var{delim}] [-n @var{nchars}] [-p @var{prompt}] [-t @var{timeout}] [-u @var{fd}] [@var{name} @dots{}]
+read [-ers] [-a @var{aname}] [-d @var{delim}] [-i @var{text}] [-n @var{nchars}] [-p @var{prompt}] [-t @var{timeout}] [-u @var{fd}] [@var{name} @dots{}]
 @end example
 One line is read from the standard input, or from the file descriptor
 @var{fd} supplied as an argument to the @option{-u} option, and the first word
@@ -3522,6 +3533,10 @@ rather than newline.
 @item -e
 Readline (@pxref{Command Line Editing}) is used to obtain the line.
 
+@item -i @var{text}
+If Readline is being used to read the line, @var{text} is placed into
+the editing buffer before editing begins.
+
 @item -n @var{nchars}
 @code{read} returns after reading @var{nchars} characters rather than
 waiting for a complete line of input.
@@ -3593,8 +3608,8 @@ is not also used.
 If the @option{-f} option is used, @code{type} does not attempt to find
 shell functions, as with the @code{command} builtin.
 
-The return status is zero if any of the @var{names} are found, non-zero
-if none are found.
+The return status is zero if all of the @var{names} are found, non-zero
+if any are not found.
 
 @item typeset
 @btindex typeset
index 550561f6d605a60ef82eb5ca5307d7a764f86f5e..400375006f04cb1d7322b5b7638dfb80f8cbff47 100644 (file)
@@ -58,7 +58,7 @@
 \secentry{Bash Builtin Commands}{4}{2}{41}
 \secentry{Modifying Shell Behavior}{4}{3}{49}
 \subsecentry{The Set Builtin}{4}{3}{1}{49}
-\subsecentry{The Shopt Builtin}{4}{3}{2}{52}
+\subsecentry{The Shopt Builtin}{4}{3}{2}{53}
 \secentry{Special Builtins}{4}{4}{57}
 \chapentry{Shell Variables}{5}{59}
 \secentry{Bourne Shell Variables}{5}{1}{59}
 \secentry{Index of Shell Reserved Words}{D}{2}{149}
 \secentry{Parameter and Variable Index}{D}{3}{149}
 \secentry{Function Index}{D}{4}{151}
-\secentry{Concept Index}{D}{5}{152}
+\secentry{Concept Index}{D}{5}{153}
index db69b212936096e165d2c97d0997f9764aa767ed..e39dc0c6aeb7e75e98c3cbf9fe45ca01db91e35a 100644 (file)
 \entry{enable-keypad}{96}{\code {enable-keypad}}
 \entry{expand-tilde}{96}{\code {expand-tilde}}
 \entry{history-preserve-point}{96}{\code {history-preserve-point}}
+\entry{history-size}{96}{\code {history-size}}
 \entry{horizontal-scroll-mode}{96}{\code {horizontal-scroll-mode}}
 \entry{input-meta}{96}{\code {input-meta}}
 \entry{meta-flag}{96}{\code {meta-flag}}
 \entry{output-meta}{97}{\code {output-meta}}
 \entry{page-completions}{97}{\code {page-completions}}
 \entry{show-all-if-ambiguous}{97}{\code {show-all-if-ambiguous}}
-\entry{show-all-if-unmodified}{97}{\code {show-all-if-unmodified}}
+\entry{show-all-if-unmodified}{98}{\code {show-all-if-unmodified}}
 \entry{visible-stats}{98}{\code {visible-stats}}
index 6dcffbb62cb8aa96c0f8e08a25b057bccbde997d..7b81de19d03d7dcc47437c6d8c61e7db046499d3 100644 (file)
@@ -72,6 +72,7 @@
 \entry {\code {HISTFILESIZE}}{63}
 \entry {\code {HISTIGNORE}}{63}
 \entry {\code {history-preserve-point}}{96}
+\entry {\code {history-size}}{96}
 \entry {\code {HISTSIZE}}{64}
 \entry {\code {HISTTIMEFORMAT}}{64}
 \entry {\code {HOME}}{59}
 \entry {\code {SHELLOPTS}}{66}
 \entry {\code {SHLVL}}{66}
 \entry {\code {show-all-if-ambiguous}}{97}
-\entry {\code {show-all-if-unmodified}}{97}
+\entry {\code {show-all-if-unmodified}}{98}
 \initial {T}
 \entry {\code {TEXTDOMAIN}}{7}
 \entry {\code {TEXTDOMAINDIR}}{7}
index 9aab1b4104e9081821451fd1a857ce0f70322991..afea1b2d321bfddf979d8b6b3d6974954e5171d5 100644 (file)
@@ -302,27 +302,44 @@ B\bBA\bAS\bSH\bH B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS
               for a _\bn_\ba_\bm_\be for which no specification exists, or an error occurs
               adding a completion specification.
 
+       c\bco\bom\bmp\bpo\bop\bpt\bt [-\b-o\bo _\bo_\bp_\bt_\bi_\bo_\bn] [+\b+o\bo _\bo_\bp_\bt_\bi_\bo_\bn] [_\bn_\ba_\bm_\be]
+              Modify  completion  options  for  each  _\bn_\ba_\bm_\be  according  to  the
+              _\bo_\bp_\bt_\bi_\bo_\bns,  or  for the currently-execution completion if no _\bn_\ba_\bm_\bes
+              are supplied.  If no _\bo_\bp_\bt_\bi_\bo_\bns are given, display  the  completion
+              options  for  each _\bn_\ba_\bm_\be or the current completion.  The possible
+              values of _\bo_\bp_\bt_\bi_\bo_\bn  are  those  valid  for  the  c\bco\bom\bmp\bpl\ble\bet\bte\be  builtin
+              described above.
+
+       The  return  value  is  true  unless  an invalid option is supplied, an
+       attempt is made to modify the options for a _\bn_\ba_\bm_\be for which  no  comple-
+       tion specification exists, or an output error occurs.
+
        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\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''
+              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''
               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\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-
-              ables attributes:
+              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
+              with _\bn_\ba_\bm_\be arguments, additional options are ignored.  When -\b-p\bp is
+              supplied without _\bn_\ba_\bm_\be arguments, it will display the  attributes
+              and  values  of all variables having the attributes specified by
+              the additional options.  If no other options are  supplied  with
+              -\b-p\bp,  d\bde\bec\bcl\bla\bar\bre\be will display the attributes and values of all shell
+              variables.  The -\b-f\bf option will restrict  the  display  to  shell
+              functions.  The -\b-F\bF option inhibits the display of function defi-
+              nitions; 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 dis-
+              played  as  well.   The  -\b-F\bF  option  implies  -\b-f\bf.  The following
+              options can be used to restrict output  to  variables  with  the
+              specified attribute or to give variables 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-
@@ -775,8 +792,8 @@ B\bBA\bAS\bSH\bH B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS
               occurs while reading the name of the  current  directory  or  an
               invalid option is supplied.
 
-       r\bre\bea\bad\bd  [-\b-e\ber\brs\bs] [-\b-a\ba _\ba_\bn_\ba_\bm_\be] [-\b-d\bd _\bd_\be_\bl_\bi_\bm] [-\b-n\bn _\bn_\bc_\bh_\ba_\br_\bs] [-\b-p\bp _\bp_\br_\bo_\bm_\bp_\bt] [-\b-t\bt _\bt_\bi_\bm_\be_\bo_\bu_\bt]
-       [-\b-u\bu _\bf_\bd] [_\bn_\ba_\bm_\be ...]
+       r\bre\bea\bad\bd  [-\b-e\ber\brs\bs] [-\b-a\ba _\ba_\bn_\ba_\bm_\be] [-\b-d\bd _\bd_\be_\bl_\bi_\bm] [-\b- _\bt_\be_\bx_\bt] [-\b-n\bn _\bn_\bc_\bh_\ba_\br_\bs] [-\b-p\bp _\bp_\br_\bo_\bm_\bp_\bt] [-\b-t\bt
+       _\bt_\bi_\bm_\be_\bo_\bu_\bt] [-\b-u\bu _\bf_\bd] [_\bn_\ba_\bm_\be ...]
               One  line  is  read  from  the  standard input, or from the file
               descriptor _\bf_\bd supplied as an argument to the -\b-u\bu option, and  the
               first word is assigned to the first _\bn_\ba_\bm_\be, the second word to the
@@ -798,101 +815,104 @@ B\bBA\bAS\bSH\bH B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS
                      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-i\bi _\bt_\be_\bx_\bt
+                     If r\bre\bea\bad\bdl\bli\bin\bne\be is being used  to  read  the  line,  _\bt_\be_\bx_\bt  is
+                     placed into the editing buffer before editing begins.
               -\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\bCE\bEH\bHP\bPT\bT] [-\b-o\bo _\bo_\bp_\bt_\bi_\bo_\bn] [_\ba_\br_\bg ...]
        s\bse\bet\bt [+\b+a\bab\bbe\bef\bfh\bhk\bkm\bmn\bnp\bpt\btu\buv\bvx\bxB\bBC\bCE\bEH\bHP\bPT\bT] [+\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 i\bif\bf statement, part of a command
-                      executed in a &\b&&\b& or |\b||\b| list, any command in  a  pipeline
-                      but  the last, or if the command's return value is being
-                      inverted via !\b!.  Failing simple commands that  are  part
-                      of  shell  functions or command lists enclosed in braces
-                      or parentheses satisfying the above  conditions  do  not
+                      exit if the command that fails is part  of  the  command
+                      list  immediately  following  a  w\bwh\bhi\bil\ble\be or u\bun\bnt\bti\bil\bl keyword,
+                      part of the test in an i\bif\bf statement, part of  a  command
+                      executed  in  a &\b&&\b& or |\b||\b| list, any command in a pipeline
+                      but the last, or if the command's return value is  being
+                      inverted  via  !\b!.  Failing simple commands that are part
+                      of shell functions or command lists enclosed  in  braces
+                      or  parentheses  satisfying  the above conditions do not
                       cause the shell to exit.  A trap on E\bER\bRR\bR, if set, is exe-
                       cuted before the shell exits.
               -\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:
@@ -900,7 +920,7 @@ B\bBA\bAS\bSH\bH B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS
                               Same as -\b-a\ba.
                       b\bbr\bra\bac\bce\bee\bex\bxp\bpa\ban\bnd\bd
                               Same as -\b-B\bB.
-                      e\bem\bma\bac\bcs\bs   Use an emacs-style command line  editing  inter-
+                      e\bem\bma\bac\bcs\bs   Use  an  emacs-style command line editing inter-
                               face.  This is enabled by default when the shell
                               is interactive, unless the shell is started with
                               the -\b--\b-n\bno\boe\bed\bdi\bit\bti\bin\bng\bg option.
@@ -916,8 +936,8 @@ B\bBA\bAS\bSH\bH B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS
                               H\bHI\bIS\bST\bTO\bOR\bRY\bY.  This option is on by default in inter-
                               active shells.
                       i\big\bgn\bno\bor\bre\bee\beo\bof\bf
-                              The   effect   is   as   if  the  shell  command
-                              ``IGNOREEOF=10'' had been  executed  (see  S\bSh\bhe\bel\bll\bl
+                              The  effect  is  as   if   the   shell   command
+                              ``IGNOREEOF=10''  had  been  executed (see S\bSh\bhe\bel\bll\bl
                               V\bVa\bar\bri\bia\bab\bbl\ble\bes\bs above).
                       k\bke\bey\byw\bwo\bor\brd\bd Same as -\b-k\bk.
                       m\bmo\bon\bni\bit\bto\bor\br Same as -\b-m\bm.
@@ -931,13 +951,13 @@ B\bBA\bAS\bSH\bH B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS
                       p\bph\bhy\bys\bsi\bic\bca\bal\bl
                               Same as -\b-P\bP.
                       p\bpi\bip\bpe\bef\bfa\bai\bil\bl
-                              If  set,  the  return value of a pipeline is the
-                              value of the last (rightmost)  command  to  exit
-                              with  a non-zero status, or zero if all commands
-                              in the pipeline exit successfully.  This  option
+                              If set, the return value of a  pipeline  is  the
+                              value  of  the  last (rightmost) command to exit
+                              with a non-zero status, or zero if all  commands
+                              in  the pipeline exit successfully.  This option
                               is disabled by default.
-                      p\bpo\bos\bsi\bix\bx   Change  the  behavior  of b\bba\bas\bsh\bh where the default
-                              operation differs from  the  POSIX  standard  to
+                      p\bpo\bos\bsi\bix\bx   Change the behavior of b\bba\bas\bsh\bh  where  the  default
+                              operation  differs  from  the  POSIX standard to
                               match the standard (_\bp_\bo_\bs_\bi_\bx _\bm_\bo_\bd_\be).
                       p\bpr\bri\biv\bvi\bil\ble\beg\bge\bed\bd
                               Same as -\b-p\bp.
@@ -945,250 +965,250 @@ B\bBA\bAS\bSH\bH B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS
                       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:
 
-              a\bau\but\bto\boc\bcd\bd  If  set,  a command name that is the name of a directory
-                      is executed as if it were the argument to  the  c\bcd\b com-
+              a\bau\but\bto\boc\bcd\bd  If set, a command name that is the name of  a  directory
+                      is  executed  as  if it were the argument to the c\bcd\bd com-
                       mand.  This option is only used by interactive shells.
               c\bcd\bda\bab\bbl\ble\be_\b_v\bva\bar\brs\bs
-                      If  set,  an  argument to the c\bcd\bd builtin command that is
-                      not a directory is assumed to be the name of a  variable
+                      If set, an argument to the c\bcd\bd builtin  command  that  is
+                      not  a directory is assumed to be the name of a variable
                       whose value is the directory to change to.
               c\bcd\bds\bsp\bpe\bel\bll\bl If set, minor errors in the spelling of a directory com-
-                      ponent in a c\bcd\bd command will be  corrected.   The  errors
+                      ponent  in  a  c\bcd\bd command will be corrected.  The errors
                       checked for are transposed characters, a missing charac-
-                      ter, and one character too many.   If  a  correction  is
-                      found,  the corrected file name is printed, and the com-
-                      mand proceeds.  This option is only used by  interactive
+                      ter,  and  one  character  too many.  If a correction is
+                      found, the corrected file name is printed, and the  com-
+                      mand  proceeds.  This option is only used by interactive
                       shells.
               c\bch\bhe\bec\bck\bkh\bha\bas\bsh\bh
                       If set, b\bba\bas\bsh\bh checks that a command found in the hash ta-
-                      ble exists before trying to execute  it.   If  a  hashed
-                      command  no  longer exists, a normal path search is per-
+                      ble  exists  before  trying  to execute it.  If a hashed
+                      command no longer exists, a normal path search  is  per-
                       formed.
               c\bch\bhe\bec\bck\bkj\bjo\bob\bbs\bs
-                      If set, bash lists the status of any stopped and running
-                      jobs  before  exiting an interactive shell.  If any jobs
+                      If set, b\bba\bas\bsh\bh lists the status of any stopped and running
+                      jobs before exiting an interactive shell.  If  any  jobs
                       are running, this causes the exit to be deferred until a
-                      second  exit is attempted without an intervening command
-                      (see J\bJO\bOB\bB C\bCO\bON\bNT\bTR\bRO\bOL\bL above).   The  shell  always  postpones
+                      second exit is attempted without an intervening  command
+                      (see  J\bJO\bOB\bB  C\bCO\bON\bNT\bTR\bRO\bOL\bL  above).   The shell always postpones
                       exiting if any jobs are stopped.
               c\bch\bhe\bec\bck\bkw\bwi\bin\bns\bsi\biz\bze\be
-                      If  set,  b\bba\bas\bsh\bh checks the window size after each command
-                      and, if necessary, updates the values of L\bLI\bIN\bNE\bES\bS and  C\bCO\bOL\bL-\b-
+                      If set, b\bba\bas\bsh\bh checks the window size after  each  command
+                      and,  if necessary, updates the values of L\bLI\bIN\bNE\bES\bS and C\bCO\bOL\bL-\b-
                       U\bUM\bMN\bNS\bS.
-              c\bcm\bmd\bdh\bhi\bis\bst\bt If  set,  b\bba\bas\bsh\bh attempts to save all lines of a multiple-
-                      line command in the same  history  entry.   This  allows
+              c\bcm\bmd\bdh\bhi\bis\bst\bt If set, b\bba\bas\bsh\bh attempts to save all lines of  a  multiple-
+                      line  command  in  the  same history entry.  This allows
                       easy re-editing of multi-line commands.
               c\bco\bom\bmp\bpa\bat\bt3\b31\b1
                       If set, b\bba\bas\bsh\bh changes its behavior to that of version 3.1
                       with respect to quoted arguments to the conditional com-
                       mand's =~ operator.
-              d\bdo\bot\btg\bgl\blo\bob\bb If  set, b\bba\bas\bsh\bh includes filenames beginning with a `.' in
+              d\bdo\bot\btg\bgl\blo\bob\bb If set, b\bba\bas\bsh\bh includes filenames beginning with a `.'  in
                       the results of pathname expansion.
               e\bex\bxe\bec\bcf\bfa\bai\bil\bl
                       If set, a non-interactive shell will not exit if it can-
-                      not  execute  the  file  specified as an argument to the
-                      e\bex\bxe\bec\bbuiltin command.  An  interactive  shell  does  not
+                      not execute the file specified as  an  argument  to  the
+                      e\bex\bxe\bec\b builtin  command.   An  interactive shell does not
                       exit if e\bex\bxe\bec\bc fails.
               e\bex\bxp\bpa\ban\bnd\bd_\b_a\bal\bli\bia\bas\bse\bes\bs
-                      If  set,  aliases  are expanded as described above under
+                      If set, aliases are expanded as  described  above  under
                       A\bAL\bLI\bIA\bAS\bSE\bES\bS.  This option is enabled by default for interac-
                       tive shells.
               e\bex\bxt\btd\bde\beb\bbu\bug\bg
-                      If  set,  behavior  intended  for  use  by  debuggers is
+                      If set,  behavior  intended  for  use  by  debuggers  is
                       enabled:
                       1\b1.\b.     The -\b-F\bF option to the d\bde\bec\bcl\bla\bar\bre\be builtin displays the
                              source file name and line number corresponding to
                              each function name supplied as an argument.
-                      2\b2.\b.     If the command run by the D\bDE\bEB\bBU\bUG\bG  trap  returns  a
-                             non-zero  value,  the next command is skipped and
+                      2\b2.\b.     If  the  command  run by the D\bDE\bEB\bBU\bUG\bG trap returns a
+                             non-zero value, the next command is  skipped  and
                              not executed.
-                      3\b3.\b.     If the command run by the D\bDE\bEB\bBU\bUG\bG  trap  returns  a
-                             value  of 2, and the shell is executing in a sub-
-                             routine (a shell function or a shell script  exe-
-                             cuted  by  the  .\b.  or s\bso\bou\bur\brc\bce\be builtins), a call to
+                      3\b3.\b.     If  the  command  run by the D\bDE\bEB\bBU\bUG\bG trap returns a
+                             value of 2, and the shell is executing in a  sub-
+                             routine  (a shell function or a shell script exe-
+                             cuted by the .\b. or s\bso\bou\bur\brc\bce\be  builtins),  a  call  to
                              r\bre\bet\btu\bur\brn\bn is simulated.
-                      4\b4.\b.     B\bBA\bAS\bSH\bH_\b_A\bAR\bRG\bGC\band B\bBA\bAS\bSH\bH_\b_A\bAR\bRG\bGV\bV are updated as  described
+                      4\b4.\b.     B\bBA\bAS\bSH\bH_\b_A\bAR\bRG\bGC\b and B\bBA\bAS\bSH\bH_\b_A\bAR\bRG\bGV\bV are updated as described
                              in their descriptions above.
-                      5\b5.\b.     Function  tracing  is enabled:  command substitu-
+                      5\b5.\b.     Function tracing is enabled:   command  substitu-
                              tion, shell functions, and subshells invoked with
                              (\b( _\bc_\bo_\bm_\bm_\ba_\bn_\bd )\b) inherit the D\bDE\bEB\bBU\bUG\bG and R\bRE\bET\bTU\bUR\bRN\bN traps.
-                      6\b6.\b.     Error  tracing is enabled:  command substitution,
-                             shell functions, and  subshells  invoked  with  (\b(
+                      6\b6.\b.     Error tracing is enabled:  command  substitution,
+                             shell  functions,  and  subshells  invoked with (\b(
                              _\bc_\bo_\bm_\bm_\ba_\bn_\bd )\b) inherit the E\bER\bRR\bRO\bOR\bR trap.
               e\bex\bxt\btg\bgl\blo\bob\bb If set, the extended pattern matching features described
                       above under P\bPa\bat\bth\bhn\bna\bam\bme\be E\bEx\bxp\bpa\ban\bns\bsi\bio\bon\bn are enabled.
               e\bex\bxt\btq\bqu\buo\bot\bte\be
-                      If set, $\b$'_\bs_\bt_\br_\bi_\bn_\bg' and  $\b$"_\bs_\bt_\br_\bi_\bn_\bg"  quoting  is  performed
-                      within   $\b${\b{_\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br}\b}   expansions  enclosed  in  double
+                      If  set,  $\b$'_\bs_\bt_\br_\bi_\bn_\bg'  and  $\b$"_\bs_\bt_\br_\bi_\bn_\bg" quoting is performed
+                      within  $\b${\b{_\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br}\b}  expansions  enclosed   in   double
                       quotes.  This option is enabled by default.
               f\bfa\bai\bil\blg\bgl\blo\bob\bb
-                      If set, patterns which fail to  match  filenames  during
+                      If  set,  patterns  which fail to match filenames during
                       pathname expansion result in an expansion error.
               f\bfo\bor\brc\bce\be_\b_f\bfi\big\bgn\bno\bor\bre\be
-                      If  set,  the  suffixes  specified  by the F\bFI\bIG\bGN\bNO\bOR\bRE\bE shell
-                      variable cause words to be ignored when performing  word
+                      If set, the suffixes  specified  by  the  F\bFI\bIG\bGN\bNO\bOR\bRE\b shell
+                      variable  cause words to be ignored when performing word
                       completion even if the ignored words are the only possi-
                       ble  completions.   See  S\bSH\bHE\bEL\bLL\bL  V\bVA\bAR\bRI\bIA\bAB\bBL\bLE\bES\bS  above  for  a
-                      description  of  F\bFI\bIG\bGN\bNO\bOR\bRE\bE.   This  option  is  enabled by
+                      description of  F\bFI\bIG\bGN\bNO\bOR\bRE\bE.   This  option  is  enabled  by
                       default.
               g\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\b E\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\bE\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-
@@ -1196,47 +1216,47 @@ B\bBA\bAS\bSH\bH B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS
                       enabled by default.
               p\bpr\bro\bom\bmp\bpt\btv\bva\bar\brs\bs
                       If set, prompt strings undergo parameter expansion, com-
-                      mand   substitution,  arithmetic  expansion,  and  quote
-                      removal after being expanded as described  in  P\bPR\bRO\bOM\bMP\bPT\bTI\bIN\bNG\bG
+                      mand  substitution,  arithmetic  expansion,  and   quote
+                      removal  after  being expanded as described in P\bPR\bRO\bOM\bMP\bPT\bTI\bIN\bNG\bG
                       above.  This option is enabled by default.
               r\bre\bes\bst\btr\bri\bic\bct\bte\bed\bd_\b_s\bsh\bhe\bel\bll\bl
-                      The   shell  sets  this  option  if  it  is  started  in
+                      The  shell  sets  this  option  if  it  is  started   in
                       restricted mode (see R\bRE\bES\bST\bTR\bRI\bIC\bCT\bTE\bED\bD S\bSH\bHE\bEL\bLL\bL below).  The value
-                      may  not be changed.  This is not reset when the startup
-                      files are executed, allowing the startup files  to  dis-
+                      may not be changed.  This is not reset when the  startup
+                      files  are  executed, allowing the startup files to dis-
                       cover whether or not a shell is restricted.
               s\bsh\bhi\bif\bft\bt_\b_v\bve\ber\brb\bbo\bos\bse\be
-                      If  set,  the s\bsh\bhi\bif\bft\bt builtin prints an error message when
+                      If set, the s\bsh\bhi\bif\bft\bt builtin prints an error  message  when
                       the shift count exceeds the number of positional parame-
                       ters.
               s\bso\bou\bur\brc\bce\bep\bpa\bat\bth\bh
                       If set, the s\bso\bou\bur\brc\bce\be (.\b.) builtin uses the value of P\bPA\bAT\bTH\bH to
-                      find the directory containing the file  supplied  as  an
+                      find  the  directory  containing the file supplied as an
                       argument.  This option is enabled by default.
               x\bxp\bpg\bg_\b_e\bec\bch\bho\bo
-                      If   set,  the  e\bec\bch\bho\bo  builtin  expands  backslash-escape
+                      If  set,  the  e\bec\bch\bho\bo  builtin  expands   backslash-escape
                       sequences by default.
        s\bsu\bus\bsp\bpe\ben\bnd\bd [-\b-f\bf]
-              Suspend the execution of this shell until it receives a  S\bSI\bIG\bGC\bCO\bON\bNT\bT
-              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.   The  evaluation
               depends on the number of arguments; see below.
               !\b! _\be_\bx_\bp_\br True if _\be_\bx_\bp_\br is false.
               (\b( _\be_\bx_\bp_\br )\b)
-                     Returns  the value of _\be_\bx_\bp_\br.  This may be used to override
+                     Returns the value of _\be_\bx_\bp_\br.  This may be used to  override
                      the normal precedence of operators.
               _\be_\bx_\bp_\br_\b1 -a\ba _\be_\bx_\bp_\br_\b2
                      True if both _\be_\bx_\bp_\br_\b1 and _\be_\bx_\bp_\br_\b2 are true.
@@ -1253,116 +1273,117 @@ B\bBA\bAS\bSH\bH B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS
                      null.
               2 arguments
                      If the first argument is !\b!, the expression is true if and
-                     only  if the second argument is null.  If the first argu-
-                     ment is one of the  unary  conditional  operators  listed
-                     above  under  C\bCO\bON\bND\bDI\bIT\bTI\bIO\bON\bNA\bAL\bL  E\bEX\bXP\bPR\bRE\bES\bSS\bSI\bIO\bON\bNS\bS, the expression is
+                     only if the second argument is null.  If the first  argu-
+                     ment  is  one  of  the unary conditional operators listed
+                     above under C\bCO\bON\bND\bDI\bIT\bTI\bIO\bON\bNA\bAL\bL E\bEX\bXP\bPR\bRE\bES\bSS\bSI\bIO\bON\bNS\bS,  the  expression  is
                      true if the unary test is true.  If the first argument is
                      not a valid unary conditional operator, the expression is
                      false.
               3 arguments
-                     If the second argument is one of the  binary  conditional
+                     If  the  second argument is one of the binary conditional
                      operators listed above under C\bCO\bON\bND\bDI\bIT\bTI\bIO\bON\bNA\bAL\bL E\bEX\bXP\bPR\bRE\bES\bSS\bSI\bIO\bON\bNS\bS, the
                      result of the expression is the result of the binary test
-                     using  the first and third arguments as operands.  The -\b-a\ba
-                     and -\b-o\bo operators are  considered  binary  operators  when
-                     there  are  three arguments.  If the first argument is !\b!,
-                     the value is the negation of the two-argument test  using
+                     using the first and third arguments as operands.  The  -\b-a\ba
+                     and  -\b-o\bo  operators  are  considered binary operators when
+                     there are three arguments.  If the first argument  is  !\b!,
+                     the  value is the negation of the two-argument test using
                      the second and third arguments.  If the first argument is
                      exactly (\b( and the third argument is exactly )\b), the result
-                     is  the one-argument test of the second argument.  Other-
+                     is the one-argument test of the second argument.   Other-
                      wise, the expression is false.
               4 arguments
                      If the first argument is !\b!, the result is the negation of
-                     the  three-argument  expression composed of the remaining
+                     the three-argument expression composed of  the  remaining
                      arguments.  Otherwise, the expression is parsed and eval-
-                     uated  according  to  precedence  using  the rules listed
+                     uated according to  precedence  using  the  rules  listed
                      above.
               5 or more arguments
-                     The expression  is  parsed  and  evaluated  according  to
+                     The  expression  is  parsed  and  evaluated  according to
                      precedence using the rules listed above.
 
-       t\bti\bim\bme\bes\bs  Print  the  accumulated  user and system times for the shell and
+       t\bti\bim\bme\bes\bs  Print the accumulated user and system times for  the  shell  and
               for processes run from the shell.  The return status is 0.
 
        t\btr\bra\bap\bp [-\b-l\blp\bp] [[_\ba_\br_\bg] _\bs_\bi_\bg_\bs_\bp_\be_\bc ...]
-              The command _\ba_\br_\bg is to  be  read  and  executed  when  the  shell
-              receives  signal(s)  _\bs_\bi_\bg_\bs_\bp_\be_\bc.   If _\ba_\br_\bg is absent (and there is a
-              single _\bs_\bi_\bg_\bs_\bp_\be_\bc) or -\b-, each specified  signal  is  reset  to  its
-              original  disposition  (the  value  it  had upon entrance to the
-              shell).  If _\ba_\br_\bg is the null string the signal specified by  each
-              _\bs_\bi_\bg_\bs_\bp_\be_\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,
-              part  of the test in an _\bi_\bf statement, part of a command executed
-              in a &\b&&\b& or |\b||\b| list, or if the command's return  value  is  being
-              inverted  via  !\b!.   These  are the same conditions obeyed by the
+              a  shell  function  (see  S\bSH\bHE\bEL\bLL\bL  G\bGR\bRA\bAM\bMM\bMA\bAR\bR  above).   Refer to the
+              description of the e\bex\bxt\btd\bde\beb\bbu\bug\bg option  to  the  s\bsh\bho\bop\bpt\bt  builtin  for
+              details  of  its effect on the D\bDE\bEB\bBU\bUG\bG trap.  If a _\bs_\bi_\bg_\bs_\bp_\be_\bc is E\bER\bRR\bR,
+              the command _\ba_\br_\bg is executed whenever  a  simple  command  has  a
+              non-zero  exit status, subject to the following conditions.  The
+              E\bER\bRR\btrap is not executed if the failed command is  part  of  the
+              command  list  immediately  following  a w\bwh\bhi\bil\ble\be or u\bun\bnt\bti\bil\bl keyword,
+              part of the test in an _\bi_\bf statement, part of a command  executed
+              in  a  &\b&&\b&  or |\b||\b| list, or if the command's return value is being
+              inverted via !\b!.  These are the same  conditions  obeyed  by  the
               e\ber\brr\bre\bex\bxi\bit\bt option.  If a _\bs_\bi_\bg_\bs_\bp_\be_\bc is R\bRE\bET\bTU\bUR\bRN\bN, the command _\ba_\br_\bg is exe-
               cuted each time a shell function or a script executed with the .\b.
-              or s\bso\bou\bur\brc\bce\be builtins finishes  executing.   Signals  ignored  upon
-              entry  to the shell cannot be trapped or reset.  Trapped signals
+              or  s\bso\bou\bur\brc\bce\be  builtins  finishes  executing.  Signals ignored upon
+              entry to the shell cannot be trapped or reset.  Trapped  signals
               that are not being ignored are reset to their original values in
-              a  child process when it is created.  The return status is false
+              a child process when it is created.  The return status is  false
               if any _\bs_\bi_\bg_\bs_\bp_\be_\bc is invalid; otherwise t\btr\bra\bap\bp returns true.
 
        t\bty\byp\bpe\be [-\b-a\baf\bft\btp\bpP\bP] _\bn_\ba_\bm_\be [_\bn_\ba_\bm_\be ...]
-              With no options, indicate how each _\bn_\ba_\bm_\be would be interpreted  if
+              With  no options, indicate how each _\bn_\ba_\bm_\be would be interpreted if
               used as a command name.  If the -\b-t\bt option is used, t\bty\byp\bpe\be prints a
-              string which is one of _\ba_\bl_\bi_\ba_\bs,  _\bk_\be_\by_\bw_\bo_\br_\bd,  _\bf_\bu_\bn_\bc_\bt_\bi_\bo_\bn,  _\bb_\bu_\bi_\bl_\bt_\bi_\bn,  or
-              _\bf_\bi_\bl_\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\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.
+       u\bul\bli\bim\bmi\bit\bt [-\b-H\bHS\bST\bTa\bab\bbc\bcd\bde\bef\bfi\bil\blm\bmn\bnp\bpq\bqr\brs\bst\btu\buv\bvx\bx [_\bl_\bi_\bm_\bi_\bt]]
+              Provides  control  over the resources available to the shell and
+              to processes started by it, on systems that allow such  control.
               The -\b-H\bH and -\b-S\bS options specify that the hard or soft limit is set
-              for  the  given resource.  A hard limit cannot be increased by a
-              non-root user once it is set; a soft limit may be  increased  up
-              to  the value of the hard limit.  If neither -\b-H\bH nor -\b-S\bS is speci-
+              for the given resource.  A hard limit cannot be increased  by  a
+              non-root  user  once it is set; a soft limit may be increased up
+              to the value of the hard limit.  If neither -\b-H\bH nor -\b-S\bS is  speci-
               fied, both the soft and hard limits are set.  The value of _\bl_\bi_\bm_\bi_\bt
               can be a number in the unit specified for the resource or one of
               the special values h\bha\bar\brd\bd, s\bso\bof\bft\bt, or u\bun\bnl\bli\bim\bmi\bit\bte\bed\bd, which stand for the
-              current  hard  limit,  the  current  soft  limit,  and no limit,
-              respectively.  If _\bl_\bi_\bm_\bi_\bt is omitted, the  current  value  of  the
-              soft  limit  of the resource is printed, unless the -\b-H\bH option is
+              current hard limit,  the  current  soft  limit,  and  no  limit,
+              respectively.   If  _\bl_\bi_\bm_\bi_\bt  is  omitted, the current value of the
+              soft limit of the resource is printed, unless the -\b-H\bH  option  is
               given.  When more than one resource is specified, the limit name
               and unit are printed before the value.  Other options are inter-
               preted as follows:
               -\b-a\ba     All current limits are reported
+              -\b-b\bb     The maximum socket buffer size
               -\b-c\bc     The maximum size of core files created
               -\b-d\bd     The maximum size of a process's data segment
               -\b-e\be     The maximum scheduling priority ("nice")
-              -\b-f\bf     The maximum size of files written by the  shell  and  its
+              -\b-f\bf     The  maximum  size  of files written by the shell and its
                      children
               -\b-i\bi     The maximum number of pending signals
               -\b-l\bl     The maximum size that may be locked into memory
@@ -1374,57 +1395,58 @@ B\bBA\bAS\bSH\bH B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS
               -\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
+              -\b-T\bT     The maximum number of threads
 
               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
-              occurs while setting a new limit.
+              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-T\bT,  -\b-b\bb, -\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\ba 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\b 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.
 
 S\bSE\bEE\bE A\bAL\bLS\bSO\bO
index 7d5d8f2f475a905c34002a3dc37fc94b823dc8de..68c90399da654d0f14e05d79fc2ea3f6e2455324 100644 (file)
@@ -1,12 +1,12 @@
 %!PS-Adobe-3.0
-%%Creator: groff version 1.19.1
-%%CreationDate: Tue Mar  4 08:37:55 2008
+%%Creator: groff version 1.19.2
+%%CreationDate: Tue Apr  8 09:14:15 2008
 %%DocumentNeededResources: font Times-Roman
 %%+ font Times-Bold
 %%+ font Times-Italic
 %%+ font Symbol
 %%+ font Courier
-%%DocumentSuppliedResources: procset grops 1.19 1
+%%DocumentSuppliedResources: procset grops 1.19 2
 %%Pages: 19
 %%PageOrder: Ascend
 %%DocumentMedia: Default 595 842 0 () ()
@@ -16,7 +16,7 @@
 %%PageMedia: Default
 %%EndDefaults
 %%BeginProlog
-%%BeginResource: procset grops 1.19 1
+%%BeginResource: procset grops 1.19 2
 %!PS-Adobe-3.0 Resource-ProcSet
 /setpacking where{
 pop
@@ -85,7 +85,7 @@ LS{
 /EP{
 level0 restore
 showpage
-}bind def
+}def
 /DA{
 newpath arcn stroke
 }bind def
@@ -179,7 +179,6 @@ userdict begin
 /setpagedevice{}def
 }bind def
 /PEND{
-clear
 countdictstack CNT sub{end}repeat
 level1 restore
 }bind def
@@ -682,1741 +681,1776 @@ E .3 -.15(ve b)-.2 H(een applied.).15 E .467(The return v)144 100.8 R
 1.362(ompletion speci\214cation for a).15 F F2(name)144 124.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 141.6 Q F0([)2.5 E F2(n)A F0(])A 1.754(Resume the ne)144
-153.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.253(loop. If)4.254 F F2(n)4.613 E F0
-1.753(is speci\214ed,)4.493 F 1.208(resume at the)144 165.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/F3
-10/Symbol SF<b3>3.709 E F0 3.709(1. If)3.709 F F2(n)4.069 E F0 1.209
+F1(compopt)108 141.6 Q F0([)2.5 E F1<ad6f>A F2(option)2.5 E F0 2.5(][)C
+F1(+o)-2.5 E F2(option)2.5 E F0 2.5(][)C F2(name)-2.5 E F0(])A .447
+(Modify completion options for each)144 153.6 R F2(name)2.947 E F0 .447
+(according to the)2.947 F F2(option)2.947 E F0 .447
+(s, or for the currently-e)B -.15(xe)-.15 G(cution).15 E .725
+(completion if no)144 165.6 R F2(name)3.225 E F0 3.225(sa)C .725
+(re supplied.)-3.225 F .725(If no)5.725 F F2(option)3.225 E F0 3.225(sa)
+C .725(re gi)-3.225 F -.15(ve)-.25 G .726
+(n, display the completion options for).15 F(each)144 177.6 Q F2(name)
+3.224 E F0 .724(or the current completion.)3.224 F .724(The possible v)
+5.724 F .724(alues of)-.25 F F2(option)3.224 E F0 .724(are those v)3.224
+F .723(alid for the)-.25 F F1(com-)3.223 E(plete)144 189.6 Q F0 -.2(bu)
+2.5 G(iltin described abo).2 E -.15(ve)-.15 G(.).15 E .327(The return v)
+108 206.4 R .327(alue is true unless an in)-.25 F -.25(va)-.4 G .327
+(lid option is supplied, an attempt is made to modify the options for a)
+.25 F F2(name)108 218.4 Q F0(for which no completion speci\214cation e)
+2.5 E(xists, or an output error occurs.)-.15 E F1(continue)108 235.2 Q
+F0([)2.5 E F2(n)A F0(])A 1.754(Resume the ne)144 247.2 R 1.754
+(xt iteration of the enclosing)-.15 F F1 -.25(fo)4.254 G(r).25 E F0(,)A
+F1(while)4.254 E F0(,)A F1(until)4.254 E F0 4.254(,o)C(r)-4.254 E F1
+(select)4.254 E F0 4.253(loop. If)4.254 F F2(n)4.613 E F0 1.753
+(is speci\214ed,)4.493 F 1.208(resume at the)144 259.2 R F2(n)3.709 E F0
+1.209(th enclosing loop.)B F2(n)6.569 E F0 1.209(must be)3.949 F/F3 10
+/Symbol SF<b3>3.709 E F0 3.709(1. If)3.709 F F2(n)4.069 E F0 1.209
 (is greater than the number of enclosing)3.949 F .668
-(loops, the last enclosing loop \(the `)144 177.6 R(`top-le)-.74 E -.15
+(loops, the last enclosing loop \(the `)144 271.2 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 189.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 206.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
+144 283.2 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 300 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
-218.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.264
-(Declare v)144 230.4 R 1.264(ariables and/or gi)-.25 F 1.564 -.15(ve t)
+312 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.264
+(Declare v)144 324 R 1.264(ariables and/or gi)-.25 F 1.564 -.15(ve t)
 -.25 H 1.264(hem attrib).15 F 3.765(utes. If)-.2 F(no)3.765 E F2(name)
 3.765 E F0 3.765(sa)C 1.265(re gi)-3.765 F -.15(ve)-.25 G 3.765(nt).15 G
-1.265(hen display the v)-3.765 F 1.265(alues of)-.25 F -.25(va)144 242.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 F2(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 254.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 266.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 278.4 R(The)6.309 E F1<ad46>
-3.809 E F0 .191(option implies)144 290.4 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 302.4 Q(ute or to gi)
--.2 E .3 -.15(ve v)-.25 H(ariables attrib)-.1 E(utes:)-.2 E F1<ad61>144
-314.4 Q F0(Each)25.3 E F2(name)2.5 E F0(is an array v)2.5 E
+1.265(hen display the v)-3.765 F 1.265(alues of)-.25 F -.25(va)144 336 S
+3.483(riables. The).25 F F1<ad70>3.483 E F0 .983
+(option will display the attrib)3.483 F .983(utes and v)-.2 F .982
+(alues of each)-.25 F F2(name)3.482 E F0 5.982(.W).18 G(hen)-5.982 E F1
+<ad70>3.482 E F0 .982(is used)3.482 F(with)144 348 Q F2(name)3.579 E F0
+(ar)3.579 E 1.079(guments, additional options are ignored.)-.18 F(When)
+6.079 E F1<ad70>3.579 E F0 1.079(is supplied without)3.579 F F2(name)
+3.58 E F0(ar)3.58 E(gu-)-.18 E .151(ments, it will display the attrib)
+144 360 R .151(utes and v)-.2 F .151(alues of all v)-.25 F .15
+(ariables ha)-.25 F .15(ving the attrib)-.2 F .15
+(utes speci\214ed by the)-.2 F .046(additional options.)144 372 R .046
+(If no other options are supplied with)5.046 F F1<ad70>2.547 E F0(,)A F1
+(declar)2.547 E(e)-.18 E F0 .047(will display the attrib)2.547 F .047
+(utes and)-.2 F -.25(va)144 384 S 1.363(lues of all shell v).25 F 3.863
+(ariables. The)-.25 F F1<ad66>3.863 E F0 1.362
+(option will restrict the display to shell functions.)3.863 F(The)6.362
+E F1<ad46>3.862 E F0 2.422(option inhibits the display of function de\
+\214nitions; only the function name and attrib)144 396 R 2.423(utes are)
+-.2 F 2.664(printed. If)144 408 R(the)2.664 E F1(extdeb)2.664 E(ug)-.2 E
+F0 .164(shell option is enabled using)2.664 F F1(shopt)2.664 E F0 2.664
+(,t)C .163(he source \214le name and line number)-2.664 F 1.382
+(where the function is de\214ned are displayed as well.)144 420 R(The)
+6.382 E F1<ad46>3.882 E F0 1.382(option implies)3.882 F F1<ad66>3.882 E
+F0 6.382(.T)C 1.382(he follo)-6.382 F(wing)-.25 E .794
+(options can be used to restrict output to v)144 432 R .794
+(ariables with the speci\214ed attrib)-.25 F .793(ute or to gi)-.2 F
+1.093 -.15(ve v)-.25 H(ariables)-.1 E(attrib)144 444 Q(utes:)-.2 E F1
+<ad61>144 456 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 326.4 Q F0(Use function names only)26.97 E(.)-.65 E F1
-<ad69>144 338.4 Q F0 .557(The v)27.52 F .558
+.15 E F1<ad66>144 468 Q F0(Use function names only)26.97 E(.)-.65 E F1
+<ad69>144 480 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/F4 9/Times-Bold@0 SF .558
-(ARITHMETIC EV)3.058 F(ALU)-1.215 E(A-)-.54 E(TION \))180 350.4 Q F0
+(ARITHMETIC EV)3.058 F(ALU)-1.215 E(A-)-.54 E(TION \))180 492 Q F0
 (is performed when the v)2.25 E(ariable is assigned a v)-.25 E(alue.)
--.25 E F1<ad72>144 362.4 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
+-.25 E F1<ad72>144 504 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 374.4 Q
-F1<ad74>144 386.4 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.93 E F1(RETURN)2.93 E F0
-(traps from the calling shell.)180 398.4 Q(The trace attrib)5 E
-(ute has no special meaning for v)-.2 E(ariables.)-.25 E F1<ad78>144
-410.4 Q F0(Mark)25.3 E F2(name)2.5 E F0 2.5(sf)C(or e)-2.5 E
-(xport to subsequent commands via the en)-.15 E(vironment.)-.4 E .121
-(Using `+' instead of `\255' turns of)144 427.2 R 2.621(ft)-.25 G .121
-(he attrib)-2.621 F .121(ute instead, with the e)-.2 F .12
-(xceptions that)-.15 F F1(+a)2.62 E F0 .12(may not be used)2.62 F 1.236
-(to destro)144 439.2 R 3.736(ya)-.1 G 3.737(na)-3.736 G 1.237(rray v)
--3.737 F 1.237(ariable and)-.25 F F1 1.237(+r will not r)3.737 F(emo)
--.18 E 1.437 -.1(ve t)-.1 H 1.237(he r).1 F 1.237(eadonly attrib)-.18 F
-3.737(ute. When)-.2 F 1.237(used in a)3.737 F .312(function, mak)144
-451.2 R .312(es each)-.1 F F2(name)2.812 E F1 .311
+(alues by subsequent)-.25 F(assignment statements or unset.)180 516 Q F1
+<ad74>144 528 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.93 E F1(RETURN)2.93 E F0(traps from the calling shell.)
+180 540 Q(The trace attrib)5 E(ute has no special meaning for v)-.2 E
+(ariables.)-.25 E F1<ad78>144 552 Q F0(Mark)25.3 E F2(name)2.5 E F0 2.5
+(sf)C(or e)-2.5 E(xport to subsequent commands via the en)-.15 E
+(vironment.)-.4 E .121(Using `+' instead of `\255' turns of)144 568.8 R
+2.621(ft)-.25 G .121(he attrib)-2.621 F .121(ute instead, with the e)-.2
+F .12(xceptions that)-.15 F F1(+a)2.62 E F0 .12(may not be used)2.62 F
+1.236(to destro)144 580.8 R 3.736(ya)-.1 G 3.737(na)-3.736 G 1.237
+(rray v)-3.737 F 1.237(ariable and)-.25 F F1 1.237(+r will not r)3.737 F
+(emo)-.18 E 1.437 -.1(ve t)-.1 H 1.237(he r).1 F 1.237(eadonly attrib)
+-.18 F 3.737(ute. When)-.2 F 1.237(used in a)3.737 F .312(function, mak)
+144 592.8 R .312(es each)-.1 F F2(name)2.812 E F1 .311
 (local, as with the local)2.812 F F0 2.811(command. If)2.811 F 2.811(av)
 2.811 G .311(ariable name is follo)-3.061 F .311(wed by)-.25 F(=)144
-463.2 Q F2(value)A F0 3.238(,t)C .738(he v)-3.238 F .738(alue of the v)
+604.8 Q F2(value)A F0 3.238(,t)C .738(he v)-3.238 F .738(alue of the v)
 -.25 F .738(ariable is set to)-.25 F F2(value)3.238 E F0 5.738(.T)C .738
 (he return v)-5.738 F .739(alue is 0 unless an in)-.25 F -.25(va)-.4 G
 .739(lid option is).25 F .603
-(encountered, an attempt is made to de\214ne a function using)144 475.2
+(encountered, an attempt is made to de\214ne a function using)144 616.8
 R/F5 10/Courier@0 SF .603(\255f foo=bar)3.103 F F0 3.103(,a)C 3.103(na)
--3.103 G .603(ttempt is made to)-3.103 F 1.242(assign a v)144 487.2 R
+-3.103 G .603(ttempt is made to)-3.103 F 1.242(assign a v)144 628.8 R
 1.242(alue to a readonly v)-.25 F 1.242
 (ariable, an attempt is made to assign a v)-.25 F 1.243
 (alue to an array v)-.25 F(ariable)-.25 E 1.386
-(without using the compound assignment syntax \(see)144 499.2 R F1
+(without using the compound assignment syntax \(see)144 640.8 R F1
 (Arrays)3.886 E F0(abo)3.886 E -.15(ve)-.15 G 1.386(\), one of the).15 F
-F2(names)3.886 E F0 1.386(is not a)3.886 F -.25(va)144 511.2 S .171
+F2(names)3.886 E F0 1.386(is not a)3.886 F -.25(va)144 652.8 S .171
 (lid shell v).25 F .171(ariable name, an attempt is made to turn of)-.25
 F 2.671(fr)-.25 G .171(eadonly status for a readonly v)-2.671 F .172
-(ariable, an)-.25 F .96(attempt is made to turn of)144 523.2 R 3.46(fa)
+(ariable, an)-.25 F .96(attempt is made to turn of)144 664.8 R 3.46(fa)
 -.25 G .96(rray status for an array v)-3.46 F .96
-(ariable, or an attempt is made to display a)-.25 F(non-e)144 535.2 Q
-(xistent function with)-.15 E F1<ad66>2.5 E F0(.)A F1(dirs [+)108 552 Q
-F2(n)A F1 2.5(][)C<ad>-2.5 E F2(n)A F1 2.5(][)C(\255cplv])-2.5 E F0 -.4
-(Wi)144 564 S .328
+(ariable, or an attempt is made to display a)-.25 F(non-e)144 676.8 Q
+(xistent function with)-.15 E F1<ad66>2.5 E F0(.)A F1(dirs [+)108 693.6
+Q F2(n)A F1 2.5(][)C<ad>-2.5 E F2(n)A F1 2.5(][)C(\255cplv])-2.5 E F0
+-.4(Wi)144 705.6 S .328
 (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 576 R 1.238
-(Directories are added to the list with the)6.238 F F1(pushd)144 588 Q
+(single line with directory names separated by spaces.)144 717.6 R 1.238
+(Directories are added to the list with the)6.238 F F1(pushd)144 729.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 600 Q F2(n)A F0 1.564
+2.5(se).15 G(ntries from the list.)-2.5 E(GNU Bash-3.0)72 768 Q
+(2004 Apr 20)148.735 E(5)203.725 E 0 Cg EP
+%%Page: 6 6
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF -.35(BA)72 48 S(SH_B).35 E(UIL)-.1 E 290.48
+(TINS\(1\) B)-.92 F(ASH_B)-.35 E(UIL)-.1 E(TINS\(1\))-.92 E/F1 10
+/Times-Bold@0 SF(+)144 84 Q/F2 10/Times-Italic@0 SF(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 612 Q F1<ad>144 624 Q F2(n)A
-F0 1.194(Displays the)25.3 F F2(n)3.694 E F0 1.194
+(without options, starting with zero.)180 96 Q F1<ad>144 108 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 636 Q F1<ad63>144 648 Q F0
+(without options, starting with zero.)180 120 Q F1<ad63>144 132 Q F0
 (Clears the directory stack by deleting all of the entries.)25.86 E F1
-<ad6c>144 660 Q F0 .324(Produces a longer listing; the def)27.52 F .324
+<ad6c>144 144 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 672 Q(.)-.65 E F1<ad70>144 684 Q F0
+180 156 Q(.)-.65 E F1<ad70>144 168 Q F0
 (Print the directory stack with one entry per line.)24.74 E F1<ad76>144
-696 Q F0 .273(Print the directory stack with one entry per line, pre\
+180 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 708 Q 1.706(The return v)144 724.8 R 1.706
-(alue is 0 unless an in)-.25 F -.25(va)-.4 G 1.707
-(lid option is supplied or).25 F F2(n)4.207 E F0(inde)4.207 E -.15(xe)
--.15 G 4.207(sb).15 G -.15(ey)-4.207 G 1.707(ond the end of the).15 F
-(GNU Bash-3.0)72 768 Q(2004 Apr 20)148.735 E(5)203.725 E 0 Cg EP
-%%Page: 6 6
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Roman@0 SF -.35(BA)72 48 S(SH_B).35 E(UIL)-.1 E 290.48
-(TINS\(1\) B)-.92 F(ASH_B)-.35 E(UIL)-.1 E(TINS\(1\))-.92 E
-(directory stack.)144 84 Q/F1 10/Times-Bold@0 SF(diso)108 100.8 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 10
-/Times-Italic@0 SF(jobspec)-2.5 E F0(...])2.5 E -.4(Wi)144 112.8 S .295
-(thout options, each).4 F F2(jobspec)4.535 E F0 .295(is remo)3.105 F
--.15(ve)-.15 G 2.795(df).15 G .295(rom the table of acti)-2.795 F .595
--.15(ve j)-.25 H 2.795(obs. If).15 F F2(jobspec)4.535 E F0 .295
-(is not present,)3.105 F .243(and neither)144 124.8 R F1 .243
-(\255a nor \255r is supplied, the shell')2.743 F 2.743(sn)-.37 G .243
-(otion of the)-2.743 F F2(curr)2.743 E .243(ent job)-.37 F F1 .243
-(is used.)2.743 F .244(If the \255h option)5.243 F .334(is gi)144 136.8
-R -.1(ve)-.1 G .334(n, each).1 F F2(jobspec)4.574 E F0 .334(is not remo)
-3.144 F -.15(ve)-.15 G 2.834(df).15 G .334(rom the table, b)-2.834 F
-.334(ut is mark)-.2 F .334(ed so that)-.1 F/F3 9/Times-Bold@0 SF(SIGHUP)
-2.834 E F0 .333(is not sent to)2.584 F 1.189(the job if the shell recei)
-144 148.8 R -.15(ve)-.25 G 3.689(sa).15 G F3(SIGHUP)A/F4 9/Times-Roman@0
-SF(.)A F0 1.189(If no)5.689 F F2(jobspec)5.429 E F0 1.189
-(is present, and neither the)3.999 F F1<ad61>3.689 E F0 1.19(nor the)
-3.69 F F1<ad72>3.69 E F0 1.57(option is supplied, the)144 160.8 R F2
-(curr)4.07 E 1.57(ent job)-.37 F F0 1.57(is used.)4.07 F 1.569(If no)
-6.569 F F2(jobspec)5.809 E F0 1.569(is supplied, the)4.379 F F1<ad61>
-4.069 E F0 1.569(option means to)4.069 F(remo)144 172.8 Q .903 -.15
-(ve o)-.15 H 3.103(rm).15 G .603(ark all jobs; the)-3.103 F F1<ad72>
-3.103 E F0 .603(option without a)3.103 F F2(jobspec)4.843 E F0(ar)3.414
-E .604(gument restricts operation to running)-.18 F 2.5(jobs. The)144
-184.8 R(return v)2.5 E(alue is 0 unless a)-.25 E F2(jobspec)4.24 E F0
-(does not specify a v)2.81 E(alid job)-.25 E(.)-.4 E F1(echo)108 201.6 Q
+G(he)-2.772 E(stack.)180 192 Q .257(The return v)144 208.8 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 220.8 Q F1(diso)108 237.6 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 249.6 S .295(thout options, each).4 F F2(jobspec)
+4.535 E F0 .295(is remo)3.105 F -.15(ve)-.15 G 2.795(df).15 G .295
+(rom the table of acti)-2.795 F .595 -.15(ve j)-.25 H 2.795(obs. If).15
+F F2(jobspec)4.535 E F0 .295(is not present,)3.105 F .243(and neither)
+144 261.6 R F1 .243(\255a nor \255r is supplied, the shell')2.743 F
+2.743(sn)-.37 G .243(otion of the)-2.743 F F2(curr)2.743 E .243(ent job)
+-.37 F F1 .243(is used.)2.743 F .244(If the \255h option)5.243 F .334
+(is gi)144 273.6 R -.1(ve)-.1 G .334(n, each).1 F F2(jobspec)4.574 E F0
+.334(is not remo)3.144 F -.15(ve)-.15 G 2.834(df).15 G .334
+(rom the table, b)-2.834 F .334(ut is mark)-.2 F .334(ed so that)-.1 F
+/F3 9/Times-Bold@0 SF(SIGHUP)2.834 E F0 .333(is not sent to)2.584 F
+1.189(the job if the shell recei)144 285.6 R -.15(ve)-.25 G 3.689(sa).15
+G F3(SIGHUP)A/F4 9/Times-Roman@0 SF(.)A F0 1.189(If no)5.689 F F2
+(jobspec)5.429 E F0 1.189(is present, and neither the)3.999 F F1<ad61>
+3.689 E F0 1.19(nor the)3.69 F F1<ad72>3.69 E F0 1.57
+(option is supplied, the)144 297.6 R F2(curr)4.07 E 1.57(ent job)-.37 F
+F0 1.57(is used.)4.07 F 1.569(If no)6.569 F F2(jobspec)5.809 E F0 1.569
+(is supplied, the)4.379 F F1<ad61>4.069 E F0 1.569(option means to)4.069
+F(remo)144 309.6 Q .903 -.15(ve o)-.15 H 3.103(rm).15 G .603
+(ark all jobs; the)-3.103 F F1<ad72>3.103 E F0 .603(option without a)
+3.103 F F2(jobspec)4.843 E F0(ar)3.414 E .604
+(gument restricts operation to running)-.18 F 2.5(jobs. The)144 321.6 R
+(return v)2.5 E(alue is 0 unless a)-.25 E F2(jobspec)4.24 E F0
+(does not specify a v)2.81 E(alid job)-.25 E(.)-.4 E F1(echo)108 338.4 Q
 F0([)2.5 E F1(\255neE)A F0 2.5(][)C F2(ar)-2.5 E(g)-.37 E F0(...])2.5 E
-.395(Output the)144 213.6 R F2(ar)2.895 E(g)-.37 E F0 .395
+.395(Output the)144 350.4 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 .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 225.6 R .548(wline is suppressed.)
+(is speci\214ed, the trailing ne)144 362.4 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 237.6 Q
+-.15(ve)-.25 G .548(n, interpretation of the fol-).15 F(lo)144 374.4 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 249.6 R -.15(ve)-.25 G 4.002(no).15 G
+F 1.502(escape characters, e)144 386.4 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 261.6 R
+(option may be used to dynamically determine whether or not)144 398.4 R
 F1(echo)2.509 E F0 -.15(ex)2.509 G .009(pands these escape characters)
-.15 F .659(by def)144 273.6 R(ault.)-.1 E F1(echo)5.659 E F0 .659
+.15 F .659(by def)144 410.4 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 285.6 Q
-F1(\\a)144 297.6 Q F0(alert \(bell\))28.22 E F1(\\b)144 309.6 Q F0
-(backspace)27.66 E F1(\\c)144 321.6 Q F0(suppress trailing ne)28.78 E
-(wline)-.25 E F1(\\e)144 333.6 Q F0(an escape character)28.78 E F1(\\f)
-144 345.6 Q F0(form feed)29.89 E F1(\\n)144 357.6 Q F0(ne)27.66 E 2.5
-(wl)-.25 G(ine)-2.5 E F1(\\r)144 369.6 Q F0(carriage return)28.78 E F1
-(\\t)144 381.6 Q F0(horizontal tab)29.89 E F1(\\v)144 393.6 Q F0 -.15
-(ve)28.22 G(rtical tab).15 E F1(\\\\)144 405.6 Q F0(backslash)30.44 E F1
-(\\0)144 417.6 Q F2(nnn)A F0(the eight-bit character whose v)13.22 E
+(interprets the follo)3.16 F(wing)-.25 E(escape sequences:)144 422.4 Q
+F1(\\a)144 434.4 Q F0(alert \(bell\))28.22 E F1(\\b)144 446.4 Q F0
+(backspace)27.66 E F1(\\c)144 458.4 Q F0(suppress trailing ne)28.78 E
+(wline)-.25 E F1(\\e)144 470.4 Q F0(an escape character)28.78 E F1(\\f)
+144 482.4 Q F0(form feed)29.89 E F1(\\n)144 494.4 Q F0(ne)27.66 E 2.5
+(wl)-.25 G(ine)-2.5 E F1(\\r)144 506.4 Q F0(carriage return)28.78 E F1
+(\\t)144 518.4 Q F0(horizontal tab)29.89 E F1(\\v)144 530.4 Q F0 -.15
+(ve)28.22 G(rtical tab).15 E F1(\\\\)144 542.4 Q F0(backslash)30.44 E F1
+(\\0)144 554.4 Q F2(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(\\x)144 429.6 Q F2(HH)A F0
+(\(zero to three octal digits\))2.5 E F1(\\x)144 566.4 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 446.4 Q F0([)2.5 E
+-.1 G .3 -.15(ex d)-2.5 H(igits\)).15 E F1(enable)108 583.2 Q F0([)2.5 E
 F1<ad61>A F0 2.5(][)C F1(\255dnps)-2.5 E F0 2.5(][)C F1<ad66>-2.5 E F2
 (\214lename)2.5 E F0 2.5(][)C F2(name)-2.5 E F0(...])2.5 E .278
-(Enable and disable b)144 458.4 R .278(uiltin shell commands.)-.2 F .278
+(Enable and disable b)144 595.2 R .278(uiltin shell commands.)-.2 F .278
 (Disabling a b)5.278 F .278(uiltin allo)-.2 F .278
 (ws a disk command which has)-.25 F .833(the same name as a shell b)144
-470.4 R .834(uiltin to be e)-.2 F -.15(xe)-.15 G .834
+607.2 R .834(uiltin to be e)-.2 F -.15(xe)-.15 G .834
 (cuted without specifying a full pathname, e).15 F -.15(ve)-.25 G 3.334
-(nt).15 G(hough)-3.334 E .99(the shell normally searches for b)144 482.4
+(nt).15 G(hough)-3.334 E .99(the shell normally searches for b)144 619.2
 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 494.4 R F2(names)4.082 E F0 1.582(are enabled.)
+(abled; otherwise,)144 631.2 R F2(names)4.082 E F0 1.582(are enabled.)
 4.082 F -.15(Fo)6.582 G 4.082(re).15 G 1.582(xample, to use the)-4.232 F
 F1(test)4.082 E F0 1.582(binary found via the)4.082 F F3 -.666(PA)4.082
-G(TH)-.189 E F0 .081(instead of the shell b)144 506.4 R .081(uiltin v)
+G(TH)-.189 E F0 .081(instead of the shell b)144 643.2 R .081(uiltin v)
 -.2 F .081(ersion, run)-.15 F/F5 10/Courier@0 SF .081(enable -n test)
 2.581 F F0 5.081(.T)C(he)-5.081 E F1<ad66>2.58 E F0 .08
-(option means to load the ne)2.58 F(w)-.25 E -.2(bu)144 518.4 S 1.524
+(option means to load the ne)2.58 F(w)-.25 E -.2(bu)144 655.2 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 530.4 Q F1<ad64>
+(ystems that support dynamic loading.)-4.024 F(The)144 667.2 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 542.4 R F1<ad70>
+-.18 F -.15(ve)-.25 G .366(n, or).15 F .398(if the)144 679.2 R F1<ad70>
 2.898 E F0 .399(option is supplied, a list of shell b)2.899 F .399
 (uiltins is printed.)-.2 F -.4(Wi)5.399 G .399(th no other option ar).4
 F .399(guments, the)-.18 F .099(list consists of all enabled shell b)144
-554.4 R 2.598(uiltins. If)-.2 F F1<ad6e>2.598 E F0 .098
+691.2 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 566.4 R 1.916
+(is supplied, the list printed includes all b)144 703.2 R 1.916
 (uiltins, with an indication of whether or not each is)-.2 F 2.879
-(enabled. If)144 578.4 R F1<ad73>2.879 E F0 .379
+(enabled. If)144 715.2 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 590.4 R F2(name)3.854 E F0 .994
+(alue)-.25 E .994(is 0 unless a)144 727.2 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
-602.4 Q F1 -2.3 -.15(ev a)108 619.2 T(l).15 E F0([)2.5 E F2(ar)A(g)-.37
-E F0(...])2.5 E(The)144 631.2 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 643.2 R -.15(xe)-.15
-G .495(cuted by the shell, and its e).15 F .495
+-.2 F 3.495(wb)-.25 G .995(uiltin from a shared)-3.695 F(GNU Bash-3.0)72
+768 Q(2004 Apr 20)148.735 E(6)203.725 E 0 Cg EP
+%%Page: 7 7
+%%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(object.)144
+84 Q/F1 10/Times-Bold@0 SF -2.3 -.15(ev a)108 100.8 T(l).15 E F0([)2.5 E
+/F2 10/Times-Italic@0 SF(ar)A(g)-.37 E F0(...])2.5 E(The)144 112.8 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 124.8 R -.15(xe)-.15 G
+.495(cuted by the shell, and its e).15 F .495
 (xit status is returned as the v)-.15 F .495(alue of)-.25 F F1 -2.3 -.15
 (ev a)2.995 H(l).15 E F0 5.495(.I)C 2.995(ft)-5.495 G .495(here are no)
--2.995 F F2(ar)2.995 E(gs)-.37 E F0(,).27 E(or only null ar)144 655.2 Q
+-2.995 F F2(ar)2.995 E(gs)-.37 E F0(,).27 E(or only null ar)144 136.8 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 672 Q F0([)2.5 E F1(\255cl)A F0 2.5(][)C F1<ad61>-2.5 E F2
+(exec)108 153.6 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 684 Q F2(command)3.006 E F0 .306
+-.37 E F0(]])A(If)144 165.6 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 696 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
+(guments)-.37 E F0(become)3.075 E .176(the ar)144 177.6 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 .177
-(ginning of)-.15 F .5(the zeroth ar)144 708 R .5(gument passed to)-.18 F
-F2(command)3 E F0 5.499(.T).77 G .499(his is what)-5.499 F F2(lo)2.999 E
-(gin)-.1 E F0 .499(\(1\) does.).24 F(The)5.499 E F1<ad63>2.999 E F0 .499
-(option causes)2.999 F F2(com-)3.199 E(mand)144 720 Q F0 .638(to be e)
-3.908 F -.15(xe)-.15 G .638(cuted with an empty en).15 F 3.138
+(ginning of)-.15 F .5(the zeroth ar)144 189.6 R .5(gument passed to)-.18
+F F2(command)3 E F0 5.499(.T).77 G .499(his is what)-5.499 F F2(lo)2.999
+E(gin)-.1 E F0 .499(\(1\) does.).24 F(The)5.499 E F1<ad63>2.999 E F0
+.499(option causes)2.999 F F2(com-)3.199 E(mand)144 201.6 Q F0 .638
+(to be e)3.908 F -.15(xe)-.15 G .638(cuted with an empty en).15 F 3.138
 (vironment. If)-.4 F F1<ad61>3.138 E F0 .638
 (is supplied, the shell passes)3.138 F F2(name)3.499 E F0 .639(as the)
-3.319 F(GNU Bash-3.0)72 768 Q(2004 Apr 20)148.735 E(6)203.725 E 0 Cg EP
-%%Page: 7 7
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Roman@0 SF -.35(BA)72 48 S(SH_B).35 E(UIL)-.1 E 290.48
-(TINS\(1\) B)-.92 F(ASH_B)-.35 E(UIL)-.1 E(TINS\(1\))-.92 E 1.078
-(zeroth ar)144 84 R 1.077(gument to the e)-.18 F -.15(xe)-.15 G 1.077
-(cuted command.).15 F(If)6.077 E/F1 10/Times-Italic@0 SF(command)3.777 E
-F0 1.077(cannot be e)4.347 F -.15(xe)-.15 G 1.077
-(cuted for some reason, a).15 F(non-interacti)144 96 Q .617 -.15(ve s)
--.25 H .317(hell e).15 F .317(xits, unless the shell option)-.15 F/F2 10
-/Times-Bold@0 SF(execfail)2.817 E F0 .318
+3.319 F 1.078(zeroth ar)144 213.6 R 1.077(gument to the e)-.18 F -.15
+(xe)-.15 G 1.077(cuted command.).15 F(If)6.077 E F2(command)3.777 E F0
+1.077(cannot be e)4.347 F -.15(xe)-.15 G 1.077(cuted for some reason, a)
+.15 F(non-interacti)144 225.6 Q .617 -.15(ve s)-.25 H .317(hell e).15 F
+.317(xits, unless the shell option)-.15 F F1(execfail)2.817 E F0 .318
 (is enabled, in which case it returns f)2.817 F(ail-)-.1 E 2.505
-(ure. An)144 108 R(interacti)2.505 E .305 -.15(ve s)-.25 H .005
+(ure. An)144 237.6 R(interacti)2.505 E .305 -.15(ve s)-.25 H .005
 (hell returns f).15 F .005(ailure if the \214le cannot be e)-.1 F -.15
-(xe)-.15 G 2.505(cuted. If).15 F F1(command)2.705 E F0 .005
-(is not speci\214ed,)3.275 F(an)144 120 Q 3.036(yr)-.15 G .536
+(xe)-.15 G 2.505(cuted. If).15 F F2(command)2.705 E F0 .005
+(is not speci\214ed,)3.275 F(an)144 249.6 Q 3.036(yr)-.15 G .536
 (edirections tak)-3.036 F 3.036(ee)-.1 G -.25(ff)-3.036 G .536
 (ect in the current shell, and the return status is 0.).25 F .536
-(If there is a redirection)5.536 F(error)144 132 Q 2.5(,t)-.4 G
-(he return status is 1.)-2.5 E F2(exit)108 148.8 Q F0([)2.5 E F1(n)A F0
+(If there is a redirection)5.536 F(error)144 261.6 Q 2.5(,t)-.4 G
+(he return status is 1.)-2.5 E F1(exit)108 278.4 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 F1(n)2.596 E F0 5.096(.I)C(f)-5.096 E F1(n)2.955 E F0 .095
+-.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 160.8 S 2.5(cuted. A).15 F(trap on)2.5 E/F3 9
+-.15 F -.15(exe)144 290.4 S 2.5(cuted. A).15 F(trap on)2.5 E/F3 9
 /Times-Bold@0 SF(EXIT)2.5 E F0(is e)2.25 E -.15(xe)-.15 G
-(cuted before the shell terminates.).15 E F2(export)108 177.6 Q F0([)2.5
-E F2(\255fn)A F0 2.5(][).833 G F1(name)-2.5 E F0([=)A F1(wor)A(d)-.37 E
-F0(]] ...)A F2(export \255p)108 189.6 Q F0 .256(The supplied)144 201.6 R
-F1(names)3.117 E F0 .257(are mark)3.027 F .257(ed for automatic e)-.1 F
+(cuted before the shell terminates.).15 E F1(export)108 307.2 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 319.2 Q F0 .256(The supplied)144 331.2 R
+F2(names)3.117 E F0 .257(are mark)3.027 F .257(ed for automatic e)-.1 F
 .257(xport to the en)-.15 F .257(vironment of subsequently e)-.4 F -.15
-(xe)-.15 G(cuted).15 E 2.627(commands. If)144 213.6 R(the)2.627 E F2
+(xe)-.15 G(cuted).15 E 2.627(commands. If)144 343.2 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 F1(names)2.987 E F0 .127(refer to functions.)2.897 F .127(If no)
-5.127 F F1(names)2.987 E F0 .127(are gi)2.897 F -.15(ve)-.25 G .126
-(n, or if the).15 F F2<ad70>144 225.6 Q F0 .659
+.15 F F2(names)2.987 E F0 .127(refer to functions.)2.897 F .127(If no)
+5.127 F F2(names)2.987 E F0 .127(are gi)2.897 F -.15(ve)-.25 G .126
+(n, or if the).15 F F1<ad70>144 355.2 Q F0 .659
 (option is supplied, a list of all names that are e)3.159 F .66
-(xported in this shell is printed.)-.15 F(The)5.66 E F2<ad6e>3.16 E F0
-(option)3.16 E 1.587(causes the e)144 237.6 R 1.587
+(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 367.2 R 1.587
 (xport property to be remo)-.15 F -.15(ve)-.15 G 4.086(df).15 G 1.586
-(rom each)-4.086 F F1(name)4.086 E F0 6.586(.I)C 4.086(fav)-6.586 G
-1.586(ariable name is follo)-4.336 F 1.586(wed by)-.25 F(=)144 249.6 Q
-F1(wor)A(d)-.37 E F0 2.803(,t)C .303(he v)-2.803 F .303(alue of the v)
--.25 F .304(ariable is set to)-.25 F F1(wor)2.804 E(d)-.37 E F0(.)A F2
+(rom each)-4.086 F F2(name)4.086 E F0 6.586(.I)C 4.086(fav)-6.586 G
+1.586(ariable name is follo)-4.336 F 1.586(wed by)-.25 F(=)144 379.2 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 .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 261.6 R F1(names)2.793 E F0 .293
+(option is encountered, one of the)144 391.2 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 F2<ad66>2.793 E F0 .293(is supplied with a)2.793 F F1(name)144.36
-273.6 Q F0(that is not a function.)2.68 E F2(fc)108 290.4 Q F0([)2.5 E
-F2<ad65>A F1(ename)2.5 E F0 2.5(][)C F2(\255lnr)-2.5 E F0 2.5(][)C F1
-<8c72>-2.5 E(st)-.1 E F0 2.5(][)C F1(last)-2.5 E F0(])A F2(fc \255s)108
-302.4 Q F0([)2.5 E F1(pat)A F0(=)A F1 -.37(re)C(p).37 E F0 2.5(][)C F1
-(cmd)-2.5 E F0(])A .477(Fix Command.)144 314.4 R .478
-(In the \214rst form, a range of commands from)5.477 F F1<8c72>4.888 E
-(st)-.1 E F0(to)3.658 E F1(last)3.068 E F0 .478
-(is selected from the his-)3.658 F .882(tory list.)144 326.4 R F1 -.45
-(Fi)5.882 G -.1(rs).45 G(t).1 E F0(and)4.062 E F1(last)3.472 E F0 .882
+F F1<ad66>2.793 E F0 .293(is supplied with a)2.793 F F2(name)144.36
+403.2 Q F0(that is not a function.)2.68 E F1(fc)108 420 Q F0([)2.5 E F1
+<ad65>A F2(ename)2.5 E F0 2.5(][)C F1(\255lnr)-2.5 E F0 2.5(][)C F2
+<8c72>-2.5 E(st)-.1 E F0 2.5(][)C F2(last)-2.5 E F0(])A F1(fc \255s)108
+432 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 444 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 456 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
-338.4 R 3.297(xi)-.15 G .797(nto the history list, where a ne)-3.297 F
+468 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 350.4 Q .277(fset from the current command number\).)-.25 F
-(If)5.277 E F1(last)2.867 E F0 .276
+.15 F(of)144 480 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 362.4 R/F4 10/Courier@0 SF .092
+(for listing \(so that)144 492 R/F4 10/Courier@0 SF .092
 (fc \255l \25510)2.592 F F0 .092(prints the last 10 commands\) and to)
-2.592 F F1<8c72>4.502 E(st)-.1 E F0 2.592(otherwise. If)3.272 F F1<8c72>
+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 374.4 Q
-(vious command for editing and \25516 for listing.)-.25 E(The)144 398.4
-Q F2<ad6e>2.522 E F0 .022
+(speci\214ed it is set to the pre)144 504 Q
+(vious command for editing and \25516 for listing.)-.25 E(The)144 528 Q
+F1<ad6e>2.522 E F0 .022
 (option suppresses the command numbers when listing.)2.522 F(The)5.022 E
-F2<ad72>2.522 E F0 .022(option re)2.522 F -.15(ve)-.25 G .022
-(rses the order of).15 F .438(the commands.)144 410.4 R .438(If the)
-5.438 F F2<ad6c>2.938 E F0 .438(option is gi)2.938 F -.15(ve)-.25 G .438
+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 540 R .438(If the)5.438
+F F1<ad6c>2.938 E F0 .438(option is gi)2.938 F -.15(ve)-.25 G .438
 (n, the commands are listed on standard output.).15 F(Otherwise,)5.438 E
-.335(the editor gi)144 422.4 R -.15(ve)-.25 G 2.835(nb).15 G(y)-2.835 E
-F1(ename)3.025 E F0 .335(is in)3.015 F -.2(vo)-.4 G -.1(ke).2 G 2.835
-(do).1 G 2.835(na\214)-2.835 G .335(le containing those commands.)-2.835
-F(If)5.334 E F1(ename)3.024 E F0 .334(is not gi)3.014 F -.15(ve)-.25 G
-(n,).15 E .63(the v)144 434.4 R .63(alue of the)-.25 F F3(FCEDIT)3.13 E
-F0 -.25(va)2.88 G .631(riable is used, and the v).25 F .631(alue of)-.25
-F F3(EDIT)3.131 E(OR)-.162 E F0(if)2.881 E F3(FCEDIT)3.131 E F0 .631
-(is not set.)2.881 F .631(If nei-)5.631 F 1.884(ther v)144 446.4 R 1.884
+.335(the editor gi)144 552 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.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 564 R .63(alue of the)-.25 F F3(FCEDIT)3.13 E F0
+-.25(va)2.88 G .631(riable is used, and the v).25 F .631(alue of)-.25 F
+F3(EDIT)3.131 E(OR)-.162 E F0(if)2.881 E F3(FCEDIT)3.131 E F0 .631
+(is not set.)2.881 F .631(If nei-)5.631 F 1.884(ther v)144 576 R 1.884
 (ariable is set, is used.)-.25 F 1.884
 (When editing is complete, the edited commands are echoed and)6.884 F
--.15(exe)144 458.4 S(cuted.).15 E .039(In the second form,)144 482.4 R
-F1(command)2.539 E F0 .039(is re-e)2.539 F -.15(xe)-.15 G .039
-(cuted after each instance of).15 F F1(pat)2.54 E F0 .04(is replaced by)
-2.54 F F1 -.37(re)2.54 G(p).37 E F0 5.04(.A)C(useful)-2.5 E .406
-(alias to use with this is)144 494.4 R F4 .406(r='fc \255s')2.906 F F0
+-.15(exe)144 588 S(cuted.).15 E .039(In the second form,)144 612 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 624 R F4 .406(r='fc \255s')2.906 F F0
 2.906(,s)C 2.906(ot)-2.906 G .406(hat typing)-2.906 F F4 6.406(rc)2.906
 G(c)-6.406 E F0 .406(runs the last command be)2.906 F .406(ginning with)
--.15 F F4(cc)144 506.4 Q F0(and typing)2.5 E F4(r)2.5 E F0(re-e)2.5 E
--.15(xe)-.15 G(cutes the last command.).15 E .142
-(If the \214rst form is used, the return v)144 530.4 R .142
+-.15 F F4(cc)144 636 Q F0(and typing)2.5 E F4(r)2.5 E F0(re-e)2.5 E -.15
+(xe)-.15 G(cutes the last command.).15 E .142
+(If the \214rst form is used, the return v)144 660 R .142
 (alue is 0 unless an in)-.25 F -.25(va)-.4 G .142
-(lid option is encountered or).25 F F1<8c72>4.552 E(st)-.1 E F0(or)3.322
-E F1(last)2.732 E F0 .455(specify history lines out of range.)144 542.4
-R .454(If the)5.454 F F2<ad65>2.954 E F0 .454
+(lid option is encountered or).25 F F2<8c72>4.552 E(st)-.1 E F0(or)3.322
+E F2(last)2.732 E F0 .455(specify history lines out of range.)144 672 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 554.4 R -.15(xe)-.15 G .787
+(alue of the)-.25 F .787(last command e)144 684 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
 .788(If the)5.788 F 1.136
 (second form is used, the return status is that of the command re-e)144
-566.4 R -.15(xe)-.15 G 1.135(cuted, unless).15 F F1(cmd)3.835 E F0 1.135
-(does not)4.405 F(specify a v)144 578.4 Q
-(alid history line, in which case)-.25 E F2(fc)2.5 E F0(returns f)2.5 E
-(ailure.)-.1 E F2(fg)108 595.2 Q F0([)2.5 E F1(jobspec)A F0(])A(Resume)
-144 607.2 Q F1(jobspec)5.653 E F0 1.413(in the fore)4.223 F 1.413
-(ground, and mak)-.15 F 3.913(ei)-.1 G 3.913(tt)-3.913 G 1.413
-(he current job)-3.913 F 6.413(.I)-.4 G(f)-6.413 E F1(jobspec)5.653 E F0
-1.414(is not present, the)4.223 F(shell')144 619.2 Q 3.117(sn)-.55 G
-.617(otion of the)-3.117 F F1(curr)3.117 E .617(ent job)-.37 F F0 .617
+696 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 708 Q
+(alid history line, in which case)-.25 E F1(fc)2.5 E F0(returns f)2.5 E
+(ailure.)-.1 E(GNU Bash-3.0)72 768 Q(2004 Apr 20)148.735 E(7)203.725 E 0
+Cg EP
+%%Page: 8 8
+%%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(fg)108 84 Q F0([)2.5 E/F2 10/Times-Italic@0 SF(jobspec)
+A F0(])A(Resume)144 96 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.414(is not present, the)4.223 F(shell')144 108 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 631.2 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 F1(jobspec)145.74 643.2 Q
-F0 .004(does not specify a v)2.815 F .004(alid job or)-.25 F F1(jobspec)
-4.244 E F0 .004(speci\214es a job that w)2.814 F .004
-(as started without job control.)-.1 F F2(getopts)108 660 Q F1
-(optstring name)2.5 E F0([)2.5 E F1(ar)A(gs)-.37 E F0(])A F2(getopts)144
-672 Q F0 .793
-(is used by shell procedures to parse positional parameters.)3.293 F F1
+(alue is that of the command placed into the)-.25 F(fore)144 120 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 132 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 F1(getopts)108 148.8
+Q F2(optstring name)2.5 E F0([)2.5 E F2(ar)A(gs)-.37 E F0(])A F1
+(getopts)144 160.8 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 684 R .149
+(characters to be recognized; if a character is follo)144 172.8 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 696 Q .578
+-.15(ve a)-.2 H(n).15 E(ar)144 184.8 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 708 R 1.665
-(Each time it is in)6.665 F -.2(vo)-.4 G -.1(ke).2 G(d,).1 E F2(getopts)
+(acters may not be used as option characters.)144 196.8 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 720 R(ariable)-.25 E F1(name)3.296 E F0 3.296
-(,i).18 G(nitializing)-3.296 E F1(name)3.657 E F0 .797(if it does not e)
-3.477 F .797(xist, and the inde)-.15 F 3.297(xo)-.15 G 3.297(ft)-3.297 G
-.797(he ne)-3.297 F(xt)-.15 E(GNU Bash-3.0)72 768 Q(2004 Apr 20)148.735
-E(7)203.725 E 0 Cg EP
-%%Page: 8 8
-%%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(ar)144 84 Q
-.085(gument to be processed into the v)-.18 F(ariable)-.25 E/F1 9
-/Times-Bold@0 SF(OPTIND)2.585 E/F2 9/Times-Roman@0 SF(.)A F1(OPTIND)
+(option in the shell v)144 208.8 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 220.8 Q .085
+(gument to be processed into the v)-.18 F(ariable)-.25 E/F3 9
+/Times-Bold@0 SF(OPTIND)2.585 E/F4 9/Times-Roman@0 SF(.)A F3(OPTIND)
 4.585 E F0 .085(is initialized to 1 each time the shell)2.335 F .845
-(or a shell script is in)144 96 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 10
-/Times-Bold@0 SF(getopts)3.346 E F0 .846(places that ar)3.346 F(gument)
--.18 E .804(into the v)144 108 R(ariable)-.25 E F1(OPT)3.304 E(ARG)-.81
-E F2(.)A F0 .803(The shell does not reset)5.304 F F1(OPTIND)3.303 E F0
-.803(automatically; it must be manually)3.053 F .293
-(reset between multiple calls to)144 120 R F3(getopts)2.793 E F0 .293
+(or a shell script is in)144 232.8 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 244.8 R(ariable)-.25 E F3(OPT)3.304 E(ARG)-.81 E F4(.)A
+F0 .803(The shell does not reset)5.304 F F3(OPTIND)3.303 E F0 .803
+(automatically; it must be manually)3.053 F .293
+(reset between multiple calls to)144 256.8 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 .294(et of parameters)-2.793 F(is to be used.)144 132 Q
-2.044(When the end of options is encountered,)144 156 R F3(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 F3(OPTIND)144 168 Q F0
+2.793(ws)-.25 G .294(et of parameters)-2.793 F(is to be used.)144 268.8
+Q 2.044(When the end of options is encountered,)144 292.8 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 304.8 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 192 Q F0 2.392
+(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 328.8 Q F0 2.392
 (normally parses the positional parameters, b)4.892 F 2.392
 (ut if more ar)-.2 F 2.393(guments are gi)-.18 F -.15(ve)-.25 G 4.893
-(ni).15 G(n)-4.893 E/F4 10/Times-Italic@0 SF(ar)4.893 E(gs)-.37 E F0(,)
-.27 E F3(getopts)144 204 Q F0(parses those instead.)2.5 E F3(getopts)144
-228 Q F0 1.166(can report errors in tw)3.666 F 3.665(ow)-.1 G 3.665
-(ays. If)-3.765 F 1.165(the \214rst character of)3.665 F F4(optstring)
-3.895 E F0 1.165(is a colon,)3.885 F F4(silent)4.005 E F0(error)4.345 E
-1.263(reporting is used.)144 240 R 1.263
+(ni).15 G(n)-4.893 E F2(ar)4.893 E(gs)-.37 E F0(,).27 E F1(getopts)144
+340.8 Q F0(parses those instead.)2.5 E F1(getopts)144 364.8 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 376.8 R 1.263
 (In normal operation diagnostic messages are printed when in)6.263 F
--.25(va)-.4 G 1.263(lid options or).25 F .394(missing option ar)144 252
-R .394(guments are encountered.)-.18 F .394(If the v)5.394 F(ariable)
--.25 E F1(OPTERR)2.894 E F0 .394(is set to 0, no error messages)2.644 F
-(will be displayed, e)144 264 Q -.15(ve)-.25 G 2.5(ni).15 G 2.5(ft)-2.5
-G(he \214rst character of)-2.5 E F4(optstring)2.73 E F0(is not a colon.)
-2.72 E .666(If an in)144 288 R -.25(va)-.4 G .666(lid option is seen,)
-.25 F F3(getopts)3.166 E F0 .667(places ? into)3.167 F F4(name)3.527 E
-F0 .667(and, if not silent, prints an error message)3.347 F .4
-(and unsets)144 300 R F1(OPT)2.9 E(ARG)-.81 E F2(.)A F0(If)4.899 E F3
-(getopts)2.899 E F0 .399
-(is silent, the option character found is placed in)2.899 F F1(OPT)2.899
-E(ARG)-.81 E F0 .399(and no)2.649 F(diagnostic message is printed.)144
-312 Q 1.241(If a required ar)144 336 R 1.241(gument is not found, and)
--.18 F F3(getopts)3.741 E F0 1.241(is not silent, a question mark \()
-3.741 F F3(?).833 E F0 3.742(\)i).833 G 3.742(sp)-3.742 G 1.242
-(laced in)-3.742 F F4(name)144 348 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 360 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 384 Q F0 .902
+-.25(va)-.4 G 1.263(lid options or).25 F .394(missing option ar)144
+388.8 R .394(guments are encountered.)-.18 F .394(If the v)5.394 F
+(ariable)-.25 E F3(OPTERR)2.894 E F0 .394
+(is set to 0, no error messages)2.644 F(will be displayed, e)144 400.8 Q
+-.15(ve)-.25 G 2.5(ni).15 G 2.5(ft)-2.5 G(he \214rst character of)-2.5 E
+F2(optstring)2.73 E F0(is not a colon.)2.72 E .666(If an in)144 424.8 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 .4(and unsets)144
+436.8 R F3(OPT)2.9 E(ARG)-.81 E F4(.)A F0(If)4.899 E F1(getopts)2.899 E
+F0 .399(is silent, the option character found is placed in)2.899 F F3
+(OPT)2.899 E(ARG)-.81 E F0 .399(and no)2.649 F
+(diagnostic message is printed.)144 448.8 Q 1.241(If a required ar)144
+472.8 R 1.241(gument is not found, and)-.18 F F1(getopts)3.741 E F0
+1.241(is not silent, a question mark \()3.741 F F1(?).833 E F0 3.742
+(\)i).833 G 3.742(sp)-3.742 G 1.242(laced in)-3.742 F F2(name)144 484.8
+Q F0(,).18 E F3(OPT)2.735 E(ARG)-.81 E F0 .234
+(is unset, and a diagnostic message is printed.)2.485 F(If)5.234 E F1
+(getopts)2.734 E F0 .234(is silent, then a colon \()2.734 F F1(:).833 E
+F0(\)).833 E(is placed in)144 496.8 Q F2(name)2.86 E F0(and)2.68 E F3
+(OPT)2.5 E(ARG)-.81 E F0(is set to the option character found.)2.25 E F1
+(getopts)144 520.8 Q F0 .902
 (returns true if an option, speci\214ed or unspeci\214ed, is found.)
 3.401 F .902(It returns f)5.902 F .902(alse if the end of)-.1 F
-(options is encountered or an error occurs.)144 396 Q F3(hash)108 412.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 424.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 436.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 448.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 460.8 R(The)5.592 E F3
+(options is encountered or an error occurs.)144 532.8 Q F1(hash)108
+549.6 Q F0([)2.5 E F1(\255lr)A F0 2.5(][)C F1<ad70>-2.5 E F2(\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 561.6 S 3.555(re).15 G(ach)-3.555 E F2(name)3.555 E F0 3.555
+(,t).18 G 1.054(he full \214le name of the command is determined by sea\
+rching the directories in)-3.555 F F1($P)144 573.6 Q -.95(AT)-.74 G(H)
+.95 E F0 .349(and remembered.)2.849 F .349(If the)5.349 F F1<ad70>2.849
+E F0 .349(option is supplied, no path search is performed, and)2.849 F
+F2(\214lename)4.76 E F0 .452
+(is used as the full \214le name of the command.)144 585.6 R(The)5.452 E
+F1<ad72>2.952 E F0 .452(option causes the shell to for)2.952 F .452
+(get all remem-)-.18 F .592(bered locations.)144 597.6 R(The)5.592 E F1
 <ad64>3.092 E F0 .593(option causes the shell to for)3.092 F .593
-(get the remembered location of each)-.18 F F4(name)3.093 E F0(.)A .021
-(If the)144 472.8 R F3<ad74>2.521 E F0 .021
-(option is supplied, the full pathname to which each)2.521 F F4(name)
+(get the remembered location of each)-.18 F F2(name)3.093 E F0(.)A .021
+(If the)144 609.6 R F1<ad74>2.521 E F0 .021
+(option is supplied, the full pathname to which each)2.521 F F2(name)
 2.52 E F0 .02(corresponds is printed.)2.52 F .02(If multi-)5.02 F(ple)
-144 484.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 496.8 Q F3
+144 621.6 Q F2(name)3.703 E F0(ar)3.703 E 1.203
+(guments are supplied with)-.18 F F1<ad74>3.703 E F0 3.703(,t)C(he)
+-3.703 E F2(name)3.703 E F0 1.204
+(is printed before the hashed full pathname.)3.703 F(The)144 633.6 Q F1
 <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 508.8 R -.15(ve)-.25 G 1.183(n, or if only).15 F
-F3<ad6c>3.683 E F0 1.184
+1.183(ments are gi)144 645.6 R -.15(ve)-.25 G 1.183(n, or if only).15 F
+F1<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 520.8 Q F4(name)2.86 E F0
+(The return status is true unless a)144 657.6 Q F2(name)2.86 E F0
 (is not found or an in)2.68 E -.25(va)-.4 G(lid option is supplied.).25
-E F3(help)108 537.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 549.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
+E F1(help)108 674.4 Q F0([)2.5 E F1<ad73>A F0 2.5(][)C F2(pattern)-2.5 E
+F0(])A .867(Display helpful information about b)144 686.4 R .867
+(uiltin commands.)-.2 F(If)5.867 E F2(pattern)4.617 E F0 .866
+(is speci\214ed,)3.607 F F1(help)3.366 E F0(gi)3.366 E -.15(ve)-.25 G
 3.366(sd).15 G(etailed)-3.366 E .306(help on all commands matching)144
-561.6 R F4(pattern)2.806 E F0 2.807(;o).24 G .307
+698.4 R F2(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 573.6
-R(The)5.596 E F3<ad73>3.096 E F0 .596
+(uiltins and shell control struc-)-.2 F .596(tures is printed.)144 710.4
+R(The)5.596 E F1<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
-585.6 Q F4(pattern)2.5 E F0(.).24 E F3(history [)108 602.4 Q F4(n)A F3
-(])A(history \255c)108 614.4 Q(history \255d)108 626.4 Q F4(of)2.5 E
-(fset)-.18 E F3(history \255anrw)108 638.4 Q F0([)2.5 E F4(\214lename)A
-F0(])A F3(history \255p)108 650.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 662.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 674.4 S .752
-(th no options, display the command history list with line numbers.).4 F
-.752(Lines listed with a)5.752 F F3(*)3.252 E F0(ha)3.252 E -.15(ve)-.2
-G 1.231(been modi\214ed.)144 686.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 698.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 710.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 722.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
-(GNU Bash-3.0)72 768 Q(2004 Apr 20)148.735 E(8)203.725 E 0 Cg EP
+722.4 Q F2(pattern)2.5 E F0(.).24 E(GNU Bash-3.0)72 768 Q(2004 Apr 20)
+148.735 E(8)203.725 E 0 Cg EP
 %%Page: 9 9
 %%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
-(\214le; if not, the v)144 84 Q(alue of)-.25 E/F1 9/Times-Bold@0 SF
+(TINS\(1\) B)-.92 F(ASH_B)-.35 E(UIL)-.1 E(TINS\(1\))-.92 E/F1 10
+/Times-Bold@0 SF(history [)108 84 Q/F2 10/Times-Italic@0 SF(n)A F1(])A
+(history \255c)108 96 Q(history \255d)108 108 Q F2(of)2.5 E(fset)-.18 E
+F1(history \255anrw)108 120 Q F0([)2.5 E F2(\214lename)A F0(])A F1
+(history \255p)108 132 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 144 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 156 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.252 E F0(ha)3.252 E -.15(ve)-.2
+G 1.231(been modi\214ed.)144 168 R 1.231(An ar)6.231 F 1.231(gument of)
+-.18 F F2(n)4.091 E F0 1.231(lists only the last)3.971 F F2(n)4.091 E F0
+3.73(lines. If)3.97 F 1.23(the shell v)3.73 F(ariable)-.25 E F1
+(HISTTIME-)3.73 E(FORMA)144 180 Q(T)-.95 E F0 .249
+(is set and not null, it is used as a format string for)2.749 F F2
+(strftime)2.75 E F0 .25(\(3\) to display the time stamp)B .379
+(associated with each displayed history entry)144 192 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 204 R(If)5.814 E F2
+(\214lename)3.314 E F0 .814
+(is supplied, it is used as the name of the history)3.314 F
+(\214le; if not, the v)144 216 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/F2 10/Times-Bold@0 SF
-<ad63>144 96 Q F0(Clear the history list by deleting all the entries.)
-25.86 E F2<ad64>144 108 Q/F3 10/Times-Italic@0 SF(of)2.5 E(fset)-.18 E
-F0(Delete the history entry at position)180 120 Q F3(of)2.5 E(fset)-.18
-E F0(.)A F2<ad61>144 132 Q F0 .599(Append the `)25.3 F(`ne)-.74 E(w')
--.25 E 3.099('h)-.74 G .598
+(ve t)-.2 H(he follo).15 E(wing meanings:)-.25 E F1<ad63>144 228 Q F0
+(Clear the history list by deleting all the entries.)25.86 E F1<ad64>144
+240 Q F2(of)2.5 E(fset)-.18 E F0(Delete the history entry at position)
+180 252 Q F2(of)2.5 E(fset)-.18 E F0(.)A F1<ad61>144 264 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 F2(bash)180 144 Q F0
-(session\) to the history \214le.)2.5 E F2<ad6e>144 156 Q F0 .854(Read \
+(ginning of the current)-.15 F F1(bash)180 276 Q F0
+(session\) to the history \214le.)2.5 E F1<ad6e>144 288 Q F0 .854(Read \
 the history lines not already read from the history \214le into the cur\
 rent history list.)24.74 F .773
-(These are lines appended to the history \214le since the be)180 168 R
-.772(ginning of the current)-.15 F F2(bash)3.272 E F0(ses-)3.272 E
-(sion.)180 180 Q F2<ad72>144 192 Q F0(Read the contents of the history \
-\214le and use them as the current history)25.86 E(.)-.65 E F2<ad77>144
-204 Q F0(Write the current history to the history \214le, o)23.08 E -.15
+(These are lines appended to the history \214le since the be)180 300 R
+.772(ginning of the current)-.15 F F1(bash)3.272 E F0(ses-)3.272 E
+(sion.)180 312 Q F1<ad72>144 324 Q F0(Read the contents of the history \
+\214le and use them as the current history)25.86 E(.)-.65 E F1<ad77>144
+336 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 F2<ad70>144 216 Q F0 .625
-(Perform history substitution on the follo)24.74 F(wing)-.25 E F3(ar)
+-2.5 E F1<ad70>144 348 Q F0 .625
+(Perform history substitution on the follo)24.74 F(wing)-.25 E F2(ar)
 3.125 E(gs)-.37 E F0 .626(and display the result on the standard)3.125 F
-2.975(output. Does)180 228 R .475
-(not store the results in the history list.)2.975 F(Each)5.475 E F3(ar)
+2.975(output. Does)180 360 R .475
+(not store the results in the history list.)2.975 F(Each)5.475 E F2(ar)
 2.975 E(g)-.37 E F0 .475(must be quoted to disable)2.975 F
-(normal history e)180 240 Q(xpansion.)-.15 E F2<ad73>144 252 Q F0 .362
-(Store the)26.41 F F3(ar)3.192 E(gs)-.37 E F0 .363
+(normal history e)180 372 Q(xpansion.)-.15 E F1<ad73>144 384 Q F0 .362
+(Store the)26.41 F F2(ar)3.192 E(gs)-.37 E F0 .363
 (in the history list as a single entry)3.132 F 5.363(.T)-.65 G .363
-(he last command in the history list is)-5.363 F(remo)180 264 Q -.15(ve)
--.15 G 2.5(db).15 G(efore the)-2.5 E F3(ar)2.83 E(gs)-.37 E F0
-(are added.)2.77 E .28(If the)144 280.8 R F2(HISTTIMEFORMA)2.78 E(T)-.95
+(he last command in the history list is)-5.363 F(remo)180 396 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 412.8 R F1(HISTTIMEFORMA)2.78 E(T)-.95
 E F0 .28
 (is set, the time stamp information associated with each history entry)
-2.78 F .539(is written to the history \214le, mark)144 292.8 R .539
+2.78 F .539(is written to the history \214le, mark)144 424.8 R .539
 (ed with the history comment character)-.1 F 5.54(.W)-.55 G .54
-(hen the history \214le is)-5.54 F 1.779(read, lines be)144 304.8 R
+(hen the history \214le is)-5.54 F 1.779(read, lines be)144 436.8 R
 1.779(ginning with the history comment character follo)-.15 F 1.778
 (wed immediately by a digit are)-.25 F 1.424
-(interpreted as timestamps for the pre)144 316.8 R 1.424
+(interpreted as timestamps for the pre)144 448.8 R 1.424
 (vious history line.)-.25 F 1.424(The return v)6.424 F 1.424
 (alue is 0 unless an in)-.25 F -.25(va)-.4 G(lid).25 E .499(option is e\
 ncountered, an error occurs while reading or writing the history \214le\
-, an in)144 328.8 R -.25(va)-.4 G(lid).25 E F3(of)2.999 E(fset)-.18 E F0
-(is)2.999 E(supplied as an ar)144 340.8 Q(gument to)-.18 E F2<ad64>2.5 E
+, an in)144 460.8 R -.25(va)-.4 G(lid).25 E F2(of)2.999 E(fset)-.18 E F0
+(is)2.999 E(supplied as an ar)144 472.8 Q(gument to)-.18 E F1<ad64>2.5 E
 F0 2.5(,o)C 2.5(rt)-2.5 G(he history e)-2.5 E
-(xpansion supplied as an ar)-.15 E(gument to)-.18 E F2<ad70>2.5 E F0 -.1
-(fa)2.5 G(ils.).1 E F2(jobs)108 357.6 Q F0([)2.5 E F2(\255lnprs)A F0 2.5
-(][)C F3(jobspec)A F0(... ])2.5 E F2(jobs \255x)108 369.6 Q F3(command)
-2.5 E F0([)2.5 E F3(ar)2.5 E(gs)-.37 E F0(... ])2.5 E
-(The \214rst form lists the acti)144 381.6 Q .3 -.15(ve j)-.25 H 2.5
+(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 489.6 Q F0([)2.5 E F1(\255lnprs)A F0 2.5
+(][)C F2(jobspec)A F0(... ])2.5 E F1(jobs \255x)108 501.6 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 513.6 Q .3 -.15(ve j)-.25 H 2.5
 (obs. The).15 F(options ha)2.5 E .3 -.15(ve t)-.2 H(he follo).15 E
-(wing meanings:)-.25 E F2<ad6c>144 393.6 Q F0
-(List process IDs in addition to the normal information.)27.52 E F2
-<ad70>144 405.6 Q F0(List only the process ID of the job')24.74 E 2.5
-(sp)-.55 G(rocess group leader)-2.5 E(.)-.55 E F2<ad6e>144 417.6 Q F0
+(wing meanings:)-.25 E F1<ad6c>144 525.6 Q F0
+(List process IDs in addition to the normal information.)27.52 E F1
+<ad70>144 537.6 Q F0(List only the process ID of the job')24.74 E 2.5
+(sp)-.55 G(rocess group leader)-2.5 E(.)-.55 E F1<ad6e>144 549.6 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 429.6 Q F2<ad72>144 441.6 Q F0
-(Restrict output to running jobs.)25.86 E F2<ad73>144 453.6 Q F0
-(Restrict output to stopped jobs.)26.41 E(If)144 470.4 Q F3(jobspec)
+(\214ed of their status.)180 561.6 Q F1<ad72>144 573.6 Q F0
+(Restrict output to running jobs.)25.86 E F1<ad73>144 585.6 Q F0
+(Restrict output to stopped jobs.)26.41 E(If)144 602.4 Q F2(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 482.4 Q -.25
+-.4 G .313(he return status is 0 unless)-5.313 F(an in)144 614.4 Q -.25
 (va)-.4 G(lid option is encountered or an in).25 E -.25(va)-.4 G(lid).25
-E F3(jobspec)4.24 E F0(is supplied.)2.81 E .394(If the)144 499.2 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 F3(jobspec)4.634 E F0 .394(found in)
-3.204 F F3(command)3.094 E F0(or)3.664 E F3(ar)3.224 E(gs)-.37 E F0 .395
-(with the corre-)3.164 F(sponding process group ID, and e)144 511.2 Q
--.15(xe)-.15 G(cutes).15 E F3(command)2.7 E F0(passing it)3.27 E F3(ar)
+E F2(jobspec)4.24 E F0(is supplied.)2.81 E .394(If the)144 631.2 R F1
+<ad78>2.894 E F0 .394(option is supplied,)2.894 F F1(jobs)2.894 E F0
+.394(replaces an)2.894 F(y)-.15 E F2(jobspec)4.634 E F0 .394(found in)
+3.204 F F2(command)3.094 E F0(or)3.664 E F2(ar)3.224 E(gs)-.37 E F0 .395
+(with the corre-)3.164 F(sponding process group ID, and e)144 643.2 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
-F2(kill)108 528 Q F0([)2.5 E F2<ad73>A F3(sigspec)2.5 E F0(|)2.5 E F2
-<ad6e>2.5 E F3(signum)2.5 E F0(|)2.5 E F2<ad>2.5 E F3(sigspec)A F0 2.5
-(][)C F3(pid)-2.5 E F0(|)2.5 E F3(jobspec)2.5 E F0 2.5(].)C(..)-2.5 E F2
-(kill \255l)108 540 Q F0([)2.5 E F3(sigspec)A F0(|)2.5 E F3 -.2(ex)2.5 G
-(it_status).2 E F0(])A .12(Send the signal named by)144 552 R F3
-(sigspec)2.96 E F0(or)2.93 E F3(signum)2.96 E F0 .119
-(to the processes named by)2.939 F F3(pid)3.869 E F0(or)3.389 E F3
-(jobspec)2.619 E F0(.).31 E F3(sigspec)5.459 E F0(is)2.929 E .318
-(either a case-insensiti)144 564 R .618 -.15(ve s)-.25 H .318
-(ignal name such as).15 F F1(SIGKILL)2.818 E F0 .319
-(\(with or without the)2.569 F F1(SIG)2.819 E F0 .319
-(pre\214x\) or a signal)2.569 F(number;)144 576 Q F3(signum)4.189 E F0
-1.349(is a signal number)4.169 F 6.349(.I)-.55 G(f)-6.349 E F3(sigspec)
-4.189 E F0 1.349(is not present, then)4.159 F F1(SIGTERM)3.849 E F0
-1.348(is assumed.)3.599 F(An)6.348 E(ar)144 588 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
+F1(kill)108 660 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 672 Q F0([)2.5 E F2(sigspec)A F0(|)2.5 E F2 -.2(ex)2.5 G
+(it_status).2 E F0(])A .12(Send the signal named by)144 684 R F2
+(sigspec)2.96 E F0(or)2.93 E F2(signum)2.96 E F0 .119
+(to the processes named by)2.939 F F2(pid)3.869 E F0(or)3.389 E F2
+(jobspec)2.619 E F0(.).31 E F2(sigspec)5.459 E F0(is)2.929 E .318
+(either a case-insensiti)144 696 R .618 -.15(ve s)-.25 H .318
+(ignal name such as).15 F F3(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 708 Q F2(signum)4.189 E F0
+1.349(is a signal number)4.169 F 6.349(.I)-.55 G(f)-6.349 E F2(sigspec)
+4.189 E F0 1.349(is not present, then)4.159 F F3(SIGTERM)3.849 E F0
+1.348(is assumed.)3.599 F(An)6.348 E(ar)144 720 Q .522(gument of)-.18 F
+F1<ad6c>3.023 E F0 .523(lists the signal names.)3.023 F .523(If an)5.523
 F 3.023(ya)-.15 G -.18(rg)-3.023 G .523(uments are supplied when).18 F
-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 600 R .28
-(guments are listed, and the return status is 0.)-.18 F(The)5.28 E F3
--.2(ex)2.78 G(it_status).2 E F0(ar)144 612 Q .377(gument to)-.18 F F2
-<ad6c>2.877 E F0 .378
+F1<ad6c>3.023 E F0 .523(is gi)3.023 F -.15(ve)-.25 G .523(n, the names)
+.15 F(GNU Bash-3.0)72 768 Q(2004 Apr 20)148.735 E(9)203.725 E 0 Cg EP
+%%Page: 10 10
+%%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 .28
+(of the signals corresponding to the ar)144 84 R .28
+(guments are listed, and the return status is 0.)-.18 F(The)5.28 E/F1 10
+/Times-Italic@0 SF -.2(ex)2.78 G(it_status).2 E F0(ar)144 96 Q .377
+(gument to)-.18 F/F2 10/Times-Bold@0 SF<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 624 R
+(xit status of a process termi-)-.15 F .594(nated by a signal.)144 108 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 636 Q -.25(va)-.4 G(lid option is encountered.).25
-E F2(let)108 652.8 Q F3(ar)2.5 E(g)-.37 E F0([)2.5 E F3(ar)A(g)-.37 E F0
-(...])2.5 E(Each)144 664.8 Q F3(ar)3.964 E(g)-.37 E F0 1.134
+(occurs or an in)144 120 Q -.25(va)-.4 G(lid option is encountered.).25
+E F2(let)108 136.8 Q F1(ar)2.5 E(g)-.37 E F0([)2.5 E F1(ar)A(g)-.37 E F0
+(...])2.5 E(Each)144 148.8 Q F1(ar)3.964 E(g)-.37 E F0 1.134
 (is an arithmetic e)3.854 F 1.134(xpression to be e)-.15 F -.25(va)-.25
-G 1.135(luated \(see).25 F F1 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 676.8 Q F3(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 693.6 Q F0([)2.5 E F3(option)A F0 2.5(][)C F3(name)
--2.5 E F0([=)A F3(value)A F0 2.5(].)C(..])-2.5 E -.15(Fo)144 705.6 S
-2.56(re).15 G .06(ach ar)-2.56 F .06(gument, a local v)-.18 F .06
-(ariable named)-.25 F F3(name)2.92 E F0 .06(is created, and assigned)
-2.74 F F3(value)2.56 E F0 5.06(.T).18 G(he)-5.06 E F3(option)2.56 E F0
-.06(can be)2.56 F(an)144 717.6 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
+G 1.135(luated \(see).25 F/F3 9/Times-Bold@0 SF 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 160.8 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 177.6 Q F0([)2.5
+E F1(option)A F0 2.5(][)C F1(name)-2.5 E F0([=)A F1(value)A F0 2.5(].)C
+(..])-2.5 E -.15(Fo)144 189.6 S 2.56(re).15 G .06(ach ar)-2.56 F .06
+(gument, a local v)-.18 F .06(ariable named)-.25 F F1(name)2.92 E F0 .06
+(is created, and assigned)2.74 F F1(value)2.56 E F0 5.06(.T).18 G(he)
+-5.06 E F1(option)2.56 E F0 .06(can be)2.56 F(an)144 201.6 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
-729.6 Q F3(name)3.721 E F0 .861(to ha)3.541 F 1.161 -.15(ve a v)-.2 H
+213.6 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(GNU Bash-3.0)72 768 Q
-(2004 Apr 20)148.735 E(9)203.725 E 0 Cg EP
-%%Page: 10 10
-%%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(local)144 84 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.665 E F0 1.165(when not)3.665
-F .233(within a function.)144 96 R .233(The return status is 0 unless)
-5.233 F F1(local)2.733 E F0 .233(is used outside a function, an in)2.733
-F -.25(va)-.4 G(lid).25 E/F2 10/Times-Italic@0 SF(name)3.092 E F0(is)
-2.912 E(supplied, or)144 108 Q F2(name)2.5 E F0(is a readonly v)2.5 E
-(ariable.)-.25 E F1(logout)108 124.8 Q F0(Exit a login shell.)9.33 E F1
-(popd)108 141.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 153.6 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
-165.6 R F1(cd)3.979 E F0 1.479(to the ne)3.979 F 3.979(wt)-.25 G 1.479
+-.4(Wi)5.86 G .86(th no operands,).4 F F2(local)144 225.6 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 F2(local)3.665 E F0 1.165(when not)3.665 F .233
+(within a function.)144 237.6 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
+249.6 Q F1(name)2.5 E F0(is a readonly v)2.5 E(ariable.)-.25 E F2
+(logout)108 266.4 Q F0(Exit a login shell.)9.33 E F2(popd)108 283.2 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 295.2 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
+307.2 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 177.6 Q F1<ad6e>144 189.6 Q F0 .551
+F(wing)-.25 E(meanings:)144 319.2 Q F2<ad6e>144 331.2 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 201.6 Q F1(+)144 213.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
+(that only the stack is manipulated.)180 343.2 Q F2(+)144 355.2 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
-F1(dirs)2.64 E F0 2.64(,s)C .14(tarting with zero.)-2.64 F -.15(Fo)180
-225.6 S 2.5(re).15 G(xample:)-2.65 E/F3 10/Courier@0 SF(popd +0)2.5 E F0
+F2(dirs)2.64 E F0 2.64(,s)C .14(tarting with zero.)-2.64 F -.15(Fo)180
+367.2 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 F3(popd +1)2.5 E F0(the second.)2.5 E F1<ad>144 237.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
+-.65 E F5(popd +1)2.5 E F0(the second.)2.5 E F2<ad>144 379.2 Q F1(n)A F0
+(Remo)25.3 E -.15(ve)-.15 G 3.759(st).15 G(he)-3.759 E F1(n)3.759 E F0
 1.259(th entry counting from the right of the list sho)B 1.26(wn by)-.25
-F F1(dirs)3.76 E F0 3.76(,s)C 1.26(tarting with)-3.76 F 2.5(zero. F)180
-249.6 R(or e)-.15 E(xample:)-.15 E F3(popd -0)2.5 E F0(remo)2.5 E -.15
-(ve)-.15 G 2.5(st).15 G(he last directory)-2.5 E(,)-.65 E F3(popd -1)2.5
-E F0(the ne)2.5 E(xt to last.)-.15 E .644(If the)144 266.4 R F1(popd)
-3.144 E F0 .644(command is successful, a)3.144 F F1(dirs)3.143 E F0 .643
-(is performed as well, and the return status is 0.)3.143 F F1(popd)5.643
-E F0 .415(returns f)144 278.4 R .415(alse if an in)-.1 F -.25(va)-.4 G
+F F2(dirs)3.76 E F0 3.76(,s)C 1.26(tarting with)-3.76 F 2.5(zero. F)180
+391.2 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 .644(If the)144 408 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 420 R .415(alse if an in)-.1 F -.25(va)-.4 G
 .415(lid option is encountered, the directory stack is empty).25 F 2.916
 (,an)-.65 G(on-e)-2.916 E .416(xistent direc-)-.15 F
-(tory stack entry is speci\214ed, or the directory change f)144 290.4 Q
-(ails.)-.1 E F1(printf)108 307.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 319.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\
+(tory stack entry is speci\214ed, or the directory change f)144 432 Q
+(ails.)-.1 E F2(printf)108 448.8 Q F0([)2.5 E F2<ad76>A F1(var)2.5 E F0
+(])A F1(format)2.5 E F0([)2.5 E F1(ar)A(guments)-.37 E F0(])A .372
+(Write the formatted)144 460.8 R F1(ar)2.872 E(guments)-.37 E F0 .372
+(to the standard output under the control of the)2.872 F F1(format)2.872
+E F0 5.372(.T)C(he)-5.372 E F1(format)2.872 E F0 1.804(is a character s\
 tring which contains three types of objects: plain characters, which ar\
-e simply)144 331.2 R .159
+e simply)144 472.8 R .159
 (copied to standard output, character escape sequences, which are con)
-144 343.2 R -.15(ve)-.4 G .158(rted and copied to the stan-).15 F .499(\
+144 484.8 R -.15(ve)-.4 G .158(rted and copied to the stan-).15 F .499(\
 dard output, and format speci\214cations, each of which causes printing\
- of the ne)144 355.2 R .5(xt successi)-.15 F -.15(ve)-.25 G F2(ar)3.15 E
-(gu-)-.37 E(ment)144 367.2 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
+ of the ne)144 496.8 R .5(xt successi)-.15 F -.15(ve)-.25 G F1(ar)3.15 E
+(gu-)-.37 E(ment)144 508.8 Q F0 5.424(.I)C 2.924(na)-5.424 G .424
+(ddition to the standard)-2.924 F F1(printf)2.924 E F0 .424
+(\(1\) formats,)B F2(%b)2.924 E F0(causes)2.923 E F2(printf)2.923 E F0
 .423(to e)2.923 F .423(xpand backslash escape)-.15 F .976
-(sequences in the corresponding)144 379.2 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 391.2 Q F1(\\?)3.422 E F0 .922(are not remo)
+(sequences in the corresponding)144 520.8 R F1(ar)3.476 E(gument)-.37 E
+F0(\(e)3.476 E .976(xcept that)-.15 F F2(\\c)3.476 E F0 .976
+(terminates output, backslashes in)3.476 F F2<5c08>3.477 E F0(,)A F2
+(\\")3.477 E F0(,)A(and)144 532.8 Q F2(\\?)3.422 E F0 .922(are not remo)
 3.422 F -.15(ve)-.15 G .922(d, and octal escapes be).15 F .922
-(ginning with)-.15 F F1(\\0)3.422 E F0 .921
-(may contain up to four digits\), and)3.422 F F1(%q)144 403.2 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 415.2 Q(The)
-144 439.2 Q F1<ad76>2.904 E F0 .404
+(ginning with)-.15 F F2(\\0)3.422 E F0 .921
+(may contain up to four digits\), and)3.422 F F2(%q)144 544.8 Q F0
+(causes)3.63 E F2(printf)3.63 E F0 1.13(to output the corresponding)3.63
+F F1(ar)3.631 E(gument)-.37 E F0 1.131
+(in a format that can be reused as shell)3.631 F(input.)144 556.8 Q(The)
+144 580.8 Q F2<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 451.2 Q(The)144 475.2 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 .924(requires more)3.424 F F2(ar)144 487.2 Q(guments)-.37 E
+F1(var)2.904 E F0 .404(rather than being printed to the)2.904 F
+(standard output.)144 592.8 Q(The)144 616.8 Q F1(format)3.423 E F0 .923
+(is reused as necessary to consume all of the)3.423 F F1(ar)3.423 E
+(guments)-.37 E F0 5.923(.I)C 3.423(ft)-5.923 G(he)-3.423 E F1(format)
+3.423 E F0 .924(requires more)3.424 F F1(ar)144 628.8 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 .033(alue or null string,)
--.25 F(as appropriate, had been supplied.)144 499.2 Q(The return v)5 E
-(alue is zero on success, non-zero on f)-.25 E(ailure.)-.1 E F1(pushd)
-108 516 Q F0([)2.5 E F1<ad6e>A F0 2.5(][)C(+)-2.5 E F2(n)A F0 2.5(][)C
-<ad>-2.5 E F2(n)A F0(])A F1(pushd)108 528 Q F0([)2.5 E F1<ad6e>A F0 2.5
-(][)C F2(dir)-2.5 E F0(])A .639(Adds a directory to the top of the dire\
-ctory stack, or rotates the stack, making the ne)144 540 R 3.14(wt)-.25
-G .64(op of the)-3.14 F 1.316(stack the current w)144 552 R 1.316
+-.25 F(as appropriate, had been supplied.)144 640.8 Q(The return v)5 E
+(alue is zero on success, non-zero on f)-.25 E(ailure.)-.1 E F2(pushd)
+108 657.6 Q F0([)2.5 E F2<ad6e>A F0 2.5(][)C(+)-2.5 E F1(n)A F0 2.5(][)C
+<ad>-2.5 E F1(n)A F0(])A F2(pushd)108 669.6 Q F0([)2.5 E F2<ad6e>A F0
+2.5(][)C F1(dir)-2.5 E F0(])A .639(Adds a directory to the top of the d\
+irectory stack, or rotates the stack, making the ne)144 681.6 R 3.14(wt)
+-.25 G .64(op of the)-3.14 F 1.316(stack the current w)144 693.6 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 564 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 576 Q F1
-<ad6e>144 588 Q F0 .902(Suppresses the normal change of directory when \
-adding directories to the stack, so that)24.74 F
-(only the stack is manipulated.)180 600 Q F1(+)144 612 Q F2(n)A F0 1.267
-(Rotates the stack so that the)25.3 F F2(n)3.767 E F0 1.268
+(returns 0, unless the directory stack is empty)144 705.6 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 717.6 Q
+(GNU Bash-3.0)72 768 Q(2004 Apr 20)148.735 E(10)198.725 E 0 Cg EP
+%%Page: 11 11
+%%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<ad6e>144 84 Q F0 .902(Suppresses the normal change of \
+directory when adding directories to the stack, so that)24.74 F
+(only the stack is manipulated.)180 96 Q F1(+)144 108 Q/F2 10
+/Times-Italic@0 SF(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 624 Q F0 2.5(,s)C(tarting with zero\) is at the top.)
--2.5 E F1<ad>144 636 Q F2(n)A F0 .92(Rotates the stack so that the)25.3
+-.25 F F1(dirs)180 120 Q F0 2.5(,s)C(tarting with zero\) is at the top.)
+-2.5 E F1<ad>144 132 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 648 Q F0 2.5(,s)C(tarting with zero\) is at the top.)-2.5
-E F2(dir)144.35 660 Q F0(Adds)23.98 E F2(dir)2.85 E F0
+F F1(dirs)180 144 Q F0 2.5(,s)C(tarting with zero\) is at the top.)-2.5
+E F2(dir)144.35 156 Q F0(Adds)23.98 E F2(dir)2.85 E F0
 (to the directory stack at the top, making it the ne)3.23 E 2.5(wc)-.25
-G(urrent w)-2.5 E(orking directory)-.1 E(.)-.65 E .488(If the)144 676.8
+G(urrent w)-2.5 E(orking directory)-.1 E(.)-.65 E .488(If the)144 172.8
 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 688.8 R F2(dir)3.89 E F0 -.1(fa)4.27 G
+(returns 0 unless the cd to)144 184.8 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
-700.8 R 3.346(,an)-.65 G(on-e)-3.346 E .847(xistent directory stack ele\
+196.8 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 712.8 Q 2.5(wc)-.25 G(urrent directory f)-2.5 E
-(ails.)-.1 E(GNU Bash-3.0)72 768 Q(2004 Apr 20)148.735 E(10)198.725 E 0
-Cg EP
-%%Page: 11 11
-%%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(pwd)108 84 Q F0([)2.5 E F1(\255LP)A F0(])A .845
-(Print the absolute pathname of the current w)144 96 R .845
+(speci\214ed ne)144 208.8 Q 2.5(wc)-.25 G(urrent directory f)-2.5 E
+(ails.)-.1 E F1(pwd)108 225.6 Q F0([)2.5 E F1(\255LP)A F0(])A .845
+(Print the absolute pathname of the current w)144 237.6 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
-108 R F1<ad50>2.681 E F0 .181(option is supplied or the)2.681 F F1 .181
-(\255o ph)2.681 F(ysical)-.15 E F0 .181(option to the)2.681 F F1(set)
-2.681 E F0 -.2(bu)2.681 G .182(iltin command is).2 F 3.264(enabled. If)
-144 120 R(the)3.264 E F1<ad4c>3.264 E F0 .763
+249.6 R F1<ad50>2.681 E F0 .181(option is supplied or the)2.681 F F1
+.181(\255o ph)2.681 F(ysical)-.15 E F0 .181(option to the)2.681 F F1
+(set)2.681 E F0 -.2(bu)2.681 G .182(iltin command is).2 F 3.264
+(enabled. If)144 261.6 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 132 R -.25(va)
--.4 G(lid).25 E(option is supplied.)144 144 Q F1 -.18(re)108 160.8 S(ad)
-.18 E F0([)2.5 E F1(\255ers)A F0 2.5(][)C F1<ad61>-2.5 E/F2 10
-/Times-Italic@0 SF(aname)2.5 E F0 2.5(][)C F1<ad64>-2.5 E F2(delim)2.5 E
-F0 2.5(][)C F1<ad6e>-2.5 E F2(nc)2.5 E(har)-.15 E(s)-.1 E F0 2.5(][)C F1
-<ad70>-2.5 E F2(pr)2.5 E(ompt)-.45 E F0 2.5(][)C F1<ad74>-2.5 E F2
-(timeout)2.5 E F0 2.5(][)C F1<ad75>-2.5 E F2(fd)2.5 E F0 2.5(][)C F2
-(name)-2.5 E F0(...])2.5 E .516(One line is read from the standard inpu\
-t, or from the \214le descriptor)144 172.8 R F2(fd)3.016 E F0 .516
-(supplied as an ar)3.016 F .516(gument to)-.18 F(the)144 184.8 Q F1
+ reading the name of the current directory or an in)144 273.6 R -.25(va)
+-.4 G(lid).25 E(option is supplied.)144 285.6 Q F1 -.18(re)108 302.4 S
+(ad).18 E F0([)2.5 E F1(\255ers)A F0 2.5(][)C F1<ad61>-2.5 E F2(aname)
+2.5 E F0 2.5(][)C F1<ad64>-2.5 E F2(delim)2.5 E F0 2.5(][)C<ad>-2.5 E F2
+(te)2.5 E(xt)-.2 E F0 2.5(][)C F1<ad6e>-2.5 E F2(nc)2.5 E(har)-.15 E(s)
+-.1 E F0 2.5(][)C F1<ad70>-2.5 E F2(pr)2.5 E(ompt)-.45 E F0 2.5(][)C F1
+<ad74>-2.5 E F2(timeout)2.5 E F0 2.5(][)C F1<ad75>-2.5 E F2(fd)2.5 E F0
+2.5(][)C F2(name)-2.5 E F0(...])2.5 E .516(One line is read from the st\
+andard input, or from the \214le descriptor)144 314.4 R F2(fd)3.016 E F0
+.516(supplied as an ar)3.016 F .516(gument to)-.18 F(the)144 326.4 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 196.8 R -.15(ve)-.15 G 2.92(rw)
+F0(,).18 E .42(and so on, with lefto)144 338.4 R -.15(ve)-.15 G 2.92(rw)
 .15 G .42(ords and their interv)-3.02 F .42
 (ening separators assigned to the last)-.15 F F2(name)2.92 E F0 5.42(.I)
-.18 G 2.92(ft)-5.42 G(here)-2.92 E .54(are fe)144 208.8 R .54(wer w)-.25
+.18 G 2.92(ft)-5.42 G(here)-2.92 E .54(are fe)144 350.4 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 220.8 S 2.511(lues. The).25 F .011
+are assigned empty)-.1 F -.25(va)144 362.4 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.51(\)m)C(ay)-2.51 E 1.89
-(be used to remo)144 232.8 R 2.19 -.15(ve a)-.15 H 2.19 -.15(ny s).15 H
+(be used to remo)144 374.4 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 244.8 Q .3 -.15(ve t)-.2 H(he follo).15 E
-(wing meanings:)-.25 E F1<ad61>144 256.8 Q F2(aname)2.5 E F0 1.05(The w)
-180 268.8 R 1.049
+(Options, if supplied, ha)144 386.4 Q .3 -.15(ve t)-.2 H(he follo).15 E
+(wing meanings:)-.25 E F1<ad61>144 398.4 Q F2(aname)2.5 E F0 1.05(The w)
+180 410.4 R 1.049
 (ords are assigned to sequential indices of the array v)-.1 F(ariable)
 -.25 E F2(aname)3.549 E F0 3.549(,s).18 G 1.049(tarting at 0.)-3.549 F
-F2(aname)180.33 280.8 Q F0(is unset before an)2.68 E 2.5(yn)-.15 G .5
+F2(aname)180.33 422.4 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 292.8 Q F2(delim)2.5 E
-F0(The \214rst character of)180 304.8 Q F2(delim)2.5 E F0
+(ar)2.5 E(guments are ignored.)-.18 E F1<ad64>144 434.4 Q F2(delim)2.5 E
+F0(The \214rst character of)180 446.4 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 316.8 Q F0 .372
+F1<ad65>144 458.4 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(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 328.8 Q F1<ad6e>144 340.8 Q F2(nc)2.5 E(har)
--.15 E(s)-.1 E F1 -.18(re)180 352.8 S(ad).18 E F0 1.395
-(returns after reading)3.895 F F2(nc)3.895 E(har)-.15 E(s)-.1 E F0 1.395
-(characters rather than w)3.895 F 1.394(aiting for a complete line of)
--.1 F(input.)180 364.8 Q F1<ad70>144 376.8 Q F2(pr)2.5 E(ompt)-.45 E F0
-(Display)180 388.8 Q F2(pr)3.66 E(ompt)-.45 E F0 1.161
-(on standard error)3.66 F 3.661(,w)-.4 G 1.161(ithout a trailing ne)
--3.661 F 1.161(wline, before attempting to read)-.25 F(an)180 400.8 Q
+(to obtain the line.)180 470.4 Q F1<ad69>144 482.4 Q F2(te)2.5 E(xt)-.2
+E F0(If)10.78 E F1 -.18(re)2.716 G(adline).18 E F0 .216
+(is being used to read the line,)2.716 F F2(te)2.716 E(xt)-.2 E F0 .216
+(is placed into the editing b)2.716 F(uf)-.2 E .215(fer before edit-)
+-.25 F(ing be)180 494.4 Q(gins.)-.15 E F1<ad6e>144 506.4 Q F2(nc)2.5 E
+(har)-.15 E(s)-.1 E F1 -.18(re)180 518.4 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 530.4 Q F1<ad70>144 542.4 Q F2(pr)2.5 E(ompt)-.45 E F0
+(Display)180 554.4 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 566.4 Q
 2.5(yi)-.15 G 2.5(nput. The)-2.5 F
 (prompt is displayed only if input is coming from a terminal.)2.5 E F1
-<ad72>144 412.8 Q F0 .544(Backslash does not act as an escape character)
-25.86 F 5.543(.T)-.55 G .543(he backslash is considered to be part of)
--5.543 F(the line.)180 424.8 Q(In particular)5 E 2.5(,ab)-.4 G
+<ad72>144 578.4 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 590.4 Q(In particular)5 E 2.5(,ab)-.4 G
 (ackslash-ne)-2.5 E(wline pair may not be used as a line continuation.)
--.25 E F1<ad73>144 436.8 Q F0(Silent mode.)26.41 E
+-.25 E F1<ad73>144 602.4 Q F0(Silent mode.)26.41 E
 (If input is coming from a terminal, characters are not echoed.)5 E F1
-<ad74>144 448.8 Q F2(timeout)2.5 E F0(Cause)180 460.8 Q F1 -.18(re)3.548
-G(ad).18 E F0 1.048(to time out and return f)3.548 F 1.048
+<ad74>144 614.4 Q F2(timeout)2.5 E F0(Cause)180 626.4 Q F1 -.18(re)3.549
+G(ad).18 E F0 1.048(to time out and return f)3.549 F 1.048
 (ailure if a complete line of input is not read within)-.1 F F2(timeout)
-180 472.8 Q F0 2.92(seconds. This)2.92 F .42(option has no ef)2.92 F .42
+180 638.4 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 484.8 Q F1
-<ad75>144 496.8 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 513.6 R F2(names)3.051 E F0 .191
-(are supplied, the line read is assigned to the v)2.961 F(ariable)-.25 E
-F3(REPL)2.692 E(Y)-.828 E/F4 9/Times-Roman@0 SF(.)A F0 .192
-(The return code is zero,)4.692 F 1.218
-(unless end-of-\214le is encountered,)144 525.6 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 537.6 Q
-(gument to)-.18 E F1<ad75>2.5 E F0(.)A F1 -.18(re)108 554.4 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 566.4 R -.15(ve)-.25 G(n)
-.15 E F2(names)3.27 E F0 .77(are mark)3.27 F .77(ed readonly; the v)-.1
-F .77(alues of these)-.25 F F2(names)3.63 E F0 .77
-(may not be changed by subse-)3.54 F 1.097(quent assignment.)144 578.4 R
-1.097(If the)6.097 F F1<ad66>3.597 E F0 1.097
-(option is supplied, the functions corresponding to the)3.597 F F2
-(names)3.596 E F0 1.096(are so)3.596 F(mark)144 590.4 Q 2.872(ed. The)
--.1 F F1<ad61>2.872 E F0 .372(option restricts the v)2.872 F .372
+(is not reading input from the terminal)2.92 F(or a pipe.)180 650.4 Q F1
+<ad75>144 662.4 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 679.2 R F2(names)3.052 E F0 .192
+(are supplied, the line read is assigned to the v)2.962 F(ariable)-.25 E
+F3(REPL)2.691 E(Y)-.828 E/F4 9/Times-Roman@0 SF(.)A F0 .191
+(The return code is zero,)4.691 F 1.217
+(unless end-of-\214le is encountered,)144 691.2 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 703.2 Q
+(gument to)-.18 E F1<ad75>2.5 E F0(.)A(GNU Bash-3.0)72 768 Q
+(2004 Apr 20)148.735 E(11)198.725 E 0 Cg EP
+%%Page: 12 12
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF -.35(BA)72 48 S(SH_B).35 E(UIL)-.1 E 290.48
+(TINS\(1\) B)-.92 F(ASH_B)-.35 E(UIL)-.1 E(TINS\(1\))-.92 E/F1 10
+/Times-Bold@0 SF -.18(re)108 84 S(adonly).18 E F0([)2.5 E F1(\255apf)A
+F0 2.5(][)C/F2 10/Times-Italic@0 SF(name)-2.5 E F0([=)A F2(wor)A(d)-.37
+E F0 2.5(].)C(..])-2.5 E .77(The gi)144 96 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 108 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 120 Q 2.873(ed. The)-.1
+F F1<ad61>2.873 E F0 .373(option restricts the v)2.873 F .372
 (ariables to arrays.)-.25 F .372(If no)5.372 F F2(name)3.232 E F0(ar)
-3.053 E .373(guments are gi)-.18 F -.15(ve)-.25 G .373(n, or if the).15
-F F1<ad70>144 602.4 Q F0 .796
-(option is supplied, a list of all readonly names is printed.)3.297 F
+3.052 E .372(guments are gi)-.18 F -.15(ve)-.25 G .372(n, or if the).15
+F F1<ad70>144 132 Q F0 .796
+(option is supplied, a list of all readonly names is printed.)3.296 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 614.4 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 626.4 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
-638.4 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
+.828(displayed in a format that may be reused as input.)144 144 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 156 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 168
+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 650.4 Q F1 -.18(re)108 667.2 S(tur).18 E(n)-.15 E F0([)
-2.5 E F2(n)A F0(])A .587(Causes a function to e)144 679.2 R .587
+F(function.)144 180 Q F1 -.18(re)108 196.8 S(tur).18 E(n)-.15 E F0([)2.5
+E F2(n)A F0(])A .586(Causes a function to e)144 208.8 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 .586
+E F0 5.587(.I).24 G(f)-5.587 E F2(n)3.447 E F0 .587
 (is omitted, the return status is)3.327 F 1.335
-(that of the last command e)144 691.2 R -.15(xe)-.15 G 1.335
+(that of the last command e)144 220.8 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 703.2 S .794(cution of a script by the).15 F F1(.)3.294 E F0(\()
+144 232.8 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 .794
-(cuting that script).15 F .245(and return either)144 715.2 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 .978(tus of the script.)144 727.2 R .978
-(If used outside a function and not during e)5.978 F -.15(xe)-.15 G .978
-(cution of a script by).15 F F1(.)3.477 E F0 3.477(,t).833 G .977
-(he return)-3.477 F(GNU Bash-3.0)72 768 Q(2004 Apr 20)148.735 E(11)
-198.725 E 0 Cg EP
-%%Page: 12 12
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Roman@0 SF -.35(BA)72 48 S(SH_B).35 E(UIL)-.1 E 290.48
-(TINS\(1\) B)-.92 F(ASH_B)-.35 E(UIL)-.1 E(TINS\(1\))-.92 E 1.45
-(status is f)144 84 R 3.95(alse. An)-.1 F 3.951(yc)-.15 G 1.451
-(ommand associated with the)-3.951 F/F1 10/Times-Bold@0 SF(RETURN)3.951
-E F0 1.451(trap is e)3.951 F -.15(xe)-.15 G 1.451(cuted before e).15 F
--.15(xe)-.15 G(cution).15 E(resumes after the function or script.)144 96
-Q F1(set)108 112.8 Q F0([)2.5 E F1(\255\255abefhkmnptuvxBCEHPT)A F0 2.5
-(][)C F1<ad6f>-2.5 E/F2 10/Times-Italic@0 SF(option)2.5 E F0 2.5(][)C F2
-(ar)-2.5 E(g)-.37 E F0(...])2.5 E F1(set)108 124.8 Q F0([)2.5 E F1
-(+abefhkmnptuvxBCEHPT)A F0 2.5(][)C F1(+o)-2.5 E F2(option)2.5 E F0 2.5
-(][)C F2(ar)-2.5 E(g)-.37 E F0(...])2.5 E -.4(Wi)144 136.8 S .836
-(thout options, the name and v).4 F .835(alue of each shell v)-.25 F
-.835(ariable are displayed in a format that can be)-.25 F .784
-(reused as input for setting or resetting the currently-set v)144 148.8
-R 3.284(ariables. Read-only)-.25 F -.25(va)3.284 G .784
-(riables cannot be).25 F 2.947(reset. In)144 160.8 R F2 .447(posix mode)
-2.947 F F0 2.947(,o)C .447(nly shell v)-2.947 F .447
+(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 244.8 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 256.8 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 268.8 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)
+.15 F -.15(xe)-.15 G(cution).15 E(resumes after the function or script.)
+144 280.8 Q F1(set)108 297.6 Q F0([)2.5 E F1
+(\255\255abefhkmnptuvxBCEHPT)A F0 2.5(][)C F1<ad6f>-2.5 E F2(option)2.5
+E F0 2.5(][)C F2(ar)-2.5 E(g)-.37 E F0(...])2.5 E F1(set)108 309.6 Q F0
+([)2.5 E F1(+abefhkmnptuvxBCEHPT)A F0 2.5(][)C F1(+o)-2.5 E F2(option)
+2.5 E F0 2.5(][)C F2(ar)-2.5 E(g)-.37 E F0(...])2.5 E -.4(Wi)144 321.6 S
+.835(thout options, the name and v).4 F .835(alue of each shell v)-.25 F
+.836(ariable are displayed in a format that can be)-.25 F .784
+(reused as input for setting or resetting the currently-set v)144 333.6
+R 3.284(ariables. Read-only)-.25 F -.25(va)3.284 G .783
+(riables cannot be).25 F 2.946(reset. In)144 345.6 R F2 .447(posix mode)
+2.946 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.53
-(locale. When)144 172.8 R 1.031(options are speci\214ed, the)3.53 F
-3.531(ys)-.15 G 1.031(et or unset shell attrib)-3.531 F 3.531(utes. An)
--.2 F 3.531(ya)-.15 G -.18(rg)-3.531 G 1.031(uments remaining).18 F .202
-(after the options are processed are treated as v)144 184.8 R .202
+(The output is sorted according to the current)5.447 F 3.531
+(locale. When)144 357.6 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 369.6 R .202
 (alues for the positional parameters and are assigned,)-.25 F(in order)
-144 196.8 Q 2.5(,t)-.4 G(o)-2.5 E F1($1)2.5 E F0(,)A F1($2)2.5 E F0(,)A
+144 381.6 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 208.8 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 220.8 Q(vironment of subsequent commands.)
--.4 E F1<ad62>144 232.8 Q F0 .132
+-.15(ve t)-.2 H(he follo).15 E(wing meanings:)-.25 E F1<ad61>144 393.6 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 405.6 Q
+(vironment of subsequent commands.)-.4 E F1<ad62>144 417.6 Q F0 .131
 (Report the status of terminated background jobs immediately)28.74 F
-2.632(,r)-.65 G .131(ather than before the ne)-2.632 F(xt)-.15 E
-(primary prompt.)184 244.8 Q(This is ef)5 E(fecti)-.25 E .3 -.15(ve o)
--.25 H(nly when job control is enabled.).15 E F1<ad65>144 256.8 Q F0
-1.693(Exit immediately if a)29.86 F F2 1.693(simple command)4.193 F F0
+2.632(,r)-.65 G .132(ather than before the ne)-2.632 F(xt)-.15 E
+(primary prompt.)184 429.6 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 441.6 Q F0
+1.694(Exit immediately if a)29.86 F F2 1.693(simple command)4.193 F F0
 (\(see)4.193 E/F3 9/Times-Bold@0 SF 1.693(SHELL GRAMMAR)4.193 F F0(abo)
-3.943 E -.15(ve)-.15 G 4.194(\)e).15 G 1.694(xits with a)-4.344 F .012
-(non-zero status.)184 268.8 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
-.718(list immediately follo)184 280.8 R .718(wing a)-.25 F F1(while)
-3.218 E F0(or)3.218 E F1(until)3.219 E F0 -.1(ke)3.219 G(yw)-.05 E .719
-(ord, part of the test in an)-.1 F F1(if)3.219 E F0(statement,)3.219 E
-.379(part of a command e)184 292.8 R -.15(xe)-.15 G .379(cuted in a).15
+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 453.6 R .011(The shell does not e)5.011 F .011
+(xit if the command that f)-.15 F .012(ails is part of the command)-.1 F
+.719(list immediately follo)184 465.6 R .719(wing a)-.25 F F1(while)
+3.219 E F0(or)3.219 E F1(until)3.219 E F0 -.1(ke)3.219 G(yw)-.05 E .719
+(ord, part of the test in an)-.1 F F1(if)3.218 E F0(statement,)3.218 E
+.378(part of a command e)184 477.6 R -.15(xe)-.15 G .379(cuted in a).15
 F F1(&&)2.879 E F0(or)2.879 E/F4 10/Symbol SF<efef>2.879 E F0 .379
 (list, an)2.879 F 2.879(yc)-.15 G .379(ommand in a pipeline b)-2.879 F
-.378(ut the last,)-.2 F .577(or if the command')184 304.8 R 3.078(sr)
+.379(ut the last,)-.2 F .578(or if the command')184 489.6 R 3.078(sr)
 -.55 G .578(eturn v)-3.078 F .578(alue is being in)-.25 F -.15(ve)-.4 G
-.578(rted via).15 F F1(!)3.078 E F0 5.578(.F)C .578
+.578(rted via).15 F F1(!)3.078 E F0 5.578(.F)C .577
 (ailing simple commands that)-5.728 F .402(are part of shell functions \
-or command lists enclosed in braces or parentheses satisfying)184 316.8
-R .84(the abo)184 328.8 R 1.14 -.15(ve c)-.15 H .84
-(onditions do not cause the shell to e).15 F 3.341(xit. A)-.15 F .841
-(trap on)3.341 F F1(ERR)3.341 E F0 3.341(,i)C 3.341(fs)-3.341 G .841
-(et, is e)-3.341 F -.15(xe)-.15 G(cuted).15 E(before the shell e)184
-340.8 Q(xits.)-.15 E F1<ad66>144 352.8 Q F0(Disable pathname e)30.97 E
-(xpansion.)-.15 E F1<ad68>144 364.8 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 376.8 Q(ault.)-.1 E F1
-<ad6b>144 388.8 Q F0 .513(All ar)28.74 F .514
+or command lists enclosed in braces or parentheses satisfying)184 501.6
+R .841(the abo)184 513.6 R 1.141 -.15(ve c)-.15 H .841
+(onditions do not cause the shell to e).15 F 3.341(xit. A)-.15 F .84
+(trap on)3.34 F F1(ERR)3.34 E F0 3.34(,i)C 3.34(fs)-3.34 G .84(et, is e)
+-3.34 F -.15(xe)-.15 G(cuted).15 E(before the shell e)184 525.6 Q(xits.)
+-.15 E F1<ad66>144 537.6 Q F0(Disable pathname e)30.97 E(xpansion.)-.15
+E F1<ad68>144 549.6 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
+561.6 Q(ault.)-.1 E F1<ad6b>144 573.6 Q F0 .514(All ar)28.74 F .514
 (guments in the form of assignment statements are placed in the en)-.18
-F .514(vironment for a)-.4 F
-(command, not just those that precede the command name.)184 400.8 Q F1
-<ad6d>144 412.8 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 424.8 R F3 .636(JOB CONTR)3.136 F
-(OL)-.27 E F0(abo)2.886 E -.15(ve)-.15 G 3.136(\). Background).15 F .637
-(processes run in a)3.136 F .642
-(separate process group and a line containing their e)184 436.8 R .641
-(xit status is printed upon their com-)-.15 F(pletion.)184 448.8 Q F1
-<ad6e>144 460.8 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
-472.8 Q(This is ignored by interacti)5 E .3 -.15(ve s)-.25 H(hells.).15
-E F1<ad6f>144 484.8 Q F2(option\255name)2.5 E F0(The)184 496.8 Q F2
+F .513(vironment for a)-.4 F
+(command, not just those that precede the command name.)184 585.6 Q F1
+<ad6d>144 597.6 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 609.6 R F3 .636(JOB CONTR)3.136 F
+(OL)-.27 E F0(abo)2.886 E -.15(ve)-.15 G 3.136(\). Background).15 F .636
+(processes run in a)3.136 F .641
+(separate process group and a line containing their e)184 621.6 R .642
+(xit status is printed upon their com-)-.15 F(pletion.)184 633.6 Q F1
+<ad6e>144 645.6 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
+657.6 Q(This is ignored by interacti)5 E .3 -.15(ve s)-.25 H(hells.).15
+E F1<ad6f>144 669.6 Q F2(option\255name)2.5 E F0(The)184 681.6 Q F2
 (option\255name)2.5 E F0(can be one of the follo)2.5 E(wing:)-.25 E F1
-(allexport)184 508.8 Q F0(Same as)224 520.8 Q F1<ad61>2.5 E F0(.)A F1
-(braceexpand)184 532.8 Q F0(Same as)224 544.8 Q F1<ad42>2.5 E F0(.)A F1
-(emacs)184 556.8 Q F0 .089
-(Use an emacs-style command line editing interf)13.9 F 2.589(ace. This)
--.1 F .089(is enabled by def)2.589 F(ault)-.1 E .95
-(when the shell is interacti)224 568.8 R -.15(ve)-.25 G 3.45(,u).15 G
-.95(nless the shell is started with the)-3.45 F F1(\255\255noediting)
-3.45 E F0(option.)224 580.8 Q F1(errtrace)184 592.8 Q F0(Same as)5.03 E
-F1<ad45>2.5 E F0(.)A F1(functrace)184 604.8 Q F0(Same as)224 616.8 Q F1
-<ad54>2.5 E F0(.)A F1(err)184 628.8 Q(exit)-.18 E F0(Same as)11.31 E F1
-<ad65>2.5 E F0(.)A F1(hashall)184 640.8 Q F0(Same as)9.43 E F1<ad68>2.5
-E F0(.)A F1(histexpand)184 652.8 Q F0(Same as)224 664.8 Q F1<ad48>2.5 E
-F0(.)A F1(history)184 676.8 Q F0 .587(Enable command history)10 F 3.087
-(,a)-.65 G 3.087(sd)-3.087 G .587(escribed abo)-3.087 F .887 -.15(ve u)
--.15 H(nder).15 E F3(HIST)3.087 E(OR)-.162 E(Y)-.315 E/F5 9
-/Times-Roman@0 SF(.)A F0 .587(This option is)5.087 F(on by def)224 688.8
-Q(ault in interacti)-.1 E .3 -.15(ve s)-.25 H(hells.).15 E F1(ignor)184
-700.8 Q(eeof)-.18 E F0 1.656(The ef)224 712.8 R 1.656
-(fect is as if the shell command)-.25 F/F6 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
-724.8 Q F1(Shell V)2.5 E(ariables)-.92 E F0(abo)2.5 E -.15(ve)-.15 G
-(\).).15 E(GNU Bash-3.0)72 768 Q(2004 Apr 20)148.735 E(12)198.725 E 0 Cg
-EP
+(allexport)184 693.6 Q F0(Same as)224 705.6 Q F1<ad61>2.5 E F0(.)A
+(GNU Bash-3.0)72 768 Q(2004 Apr 20)148.735 E(12)198.725 E 0 Cg EP
 %%Page: 13 13
 %%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 -.1(ke)184 84 S(yw).1 E(ord)-.1 E F0(Same as)224 96 Q
-F1<ad6b>2.5 E F0(.)A F1(monitor)184 108 Q F0(Same as)5.56 E F1<ad6d>2.5
-E F0(.)A F1(noclob)184 120 Q(ber)-.1 E F0(Same as)224 132 Q F1<ad43>2.5
-E F0(.)A F1(noexec)184 144 Q F0(Same as)11.12 E F1<ad6e>2.5 E F0(.)A F1
-(noglob)184 156 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 168 Q F0(Same as)15 E F1<ad62>
-2.5 E F0(.)A F1(nounset)184 180 Q F0(Same as)6.66 E F1<ad75>2.5 E F0(.)A
-F1(onecmd)184 192 Q F0(Same as)6.67 E F1<ad74>2.5 E F0(.)A F1(ph)184 204
+/Times-Bold@0 SF(braceexpand)184 84 Q F0(Same as)224 96 Q F1<ad42>2.5 E
+F0(.)A F1(emacs)184 108 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 120 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 132 Q F1(errtrace)184 144 Q F0(Same as)5.03 E F1<ad45>2.5
+E F0(.)A F1(functrace)184 156 Q F0(Same as)224 168 Q F1<ad54>2.5 E F0(.)
+A F1(err)184 180 Q(exit)-.18 E F0(Same as)11.31 E F1<ad65>2.5 E F0(.)A
+F1(hashall)184 192 Q F0(Same as)9.43 E F1<ad68>2.5 E F0(.)A F1
+(histexpand)184 204 Q F0(Same as)224 216 Q F1<ad48>2.5 E F0(.)A F1
+(history)184 228 Q F0 .586(Enable command history)10 F 3.087(,a)-.65 G
+3.087(sd)-3.087 G .587(escribed abo)-3.087 F .887 -.15(ve u)-.15 H(nder)
+.15 E/F2 9/Times-Bold@0 SF(HIST)3.087 E(OR)-.162 E(Y)-.315 E/F3 9
+/Times-Roman@0 SF(.)A F0 .587(This option is)5.087 F(on by def)224 240 Q
+(ault in interacti)-.1 E .3 -.15(ve s)-.25 H(hells.).15 E F1(ignor)184
+252 Q(eeof)-.18 E F0 1.657(The ef)224 264 R 1.657
+(fect is as if the shell command)-.25 F/F4 10/Courier@0 SF(IGNOREEOF=10)
+4.156 E F0 1.656(had been e)4.156 F -.15(xe)-.15 G(cuted).15 E(\(see)224
+276 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 288 S(yw).1 E(ord)-.1 E F0(Same as)224 300 Q F1
+<ad6b>2.5 E F0(.)A F1(monitor)184 312 Q F0(Same as)5.56 E F1<ad6d>2.5 E
+F0(.)A F1(noclob)184 324 Q(ber)-.1 E F0(Same as)224 336 Q F1<ad43>2.5 E
+F0(.)A F1(noexec)184 348 Q F0(Same as)11.12 E F1<ad6e>2.5 E F0(.)A F1
+(noglob)184 360 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 372 Q F0(Same as)15 E F1<ad62>
+2.5 E F0(.)A F1(nounset)184 384 Q F0(Same as)6.66 E F1<ad75>2.5 E F0(.)A
+F1(onecmd)184 396 Q F0(Same as)6.67 E F1<ad74>2.5 E F0(.)A F1(ph)184 408
 Q(ysical)-.15 E F0(Same as)5.14 E F1<ad50>2.5 E F0(.)A F1(pipefail)184
-216 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 228 R
+420 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 432 R
 1.136
 (xit with a non-zero status, or zero if all commands in the pipeline)
--.15 F -.15(ex)224 240 S(it successfully).15 E 5(.T)-.65 G
-(his option is disabled by def)-5 E(ault.)-.1 E F1(posix)184 252 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 444 S(it successfully).15 E 5(.T)-.65 G
+(his option is disabled by def)-5 E(ault.)-.1 E F1(posix)184 456 Q F0
+2.09(Change the beha)17.77 F 2.091(vior of)-.2 F F1(bash)4.591 E F0
 2.091(where the def)4.591 F 2.091(ault operation dif)-.1 F 2.091
-(fers from the)-.25 F(POSIX standard to match the standard \()224 264 Q
-/F2 10/Times-Italic@0 SF(posix mode)A F0(\).)A F1(pri)184 276 Q(vileged)
--.1 E F0(Same as)224 288 Q F1<ad70>2.5 E F0(.)A F1 -.1(ve)184 300 S
-(rbose).1 E F0(Same as)7.33 E F1<ad76>2.5 E F0(.)A F1(vi)184 312 Q F0
+(fers from the)-.25 F(POSIX standard to match the standard \()224 468 Q
+/F5 10/Times-Italic@0 SF(posix mode)A F0(\).)A F1(pri)184 480 Q(vileged)
+-.1 E F0(Same as)224 492 Q F1<ad70>2.5 E F0(.)A F1 -.1(ve)184 504 S
+(rbose).1 E F0(Same as)7.33 E F1<ad76>2.5 E F0(.)A F1(vi)184 516 Q F0
 (Use a vi-style command line editing interf)32.22 E(ace.)-.1 E F1
-(xtrace)184 324 Q F0(Same as)13.35 E F1<ad78>2.5 E F0(.)A(If)184 342 Q
-F1<ad6f>3.052 E F0 .552(is supplied with no)3.052 F F2(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
-354 Q F0 1.072(is supplied with no)3.572 F F2(option\255name)3.572 E F0
-3.572(,a)C 1.071(series of)-.001 F F1(set)3.571 E F0 1.071
-(commands to recreate the current)3.571 F
-(option settings is displayed on the standard output.)184 366 Q F1<ad70>
-144 378 Q F0 -.45(Tu)28.74 G 1.071(rn on).45 F F2(privile)4.821 E -.1
-(ge)-.4 G(d).1 E F0 3.572(mode. In)4.341 F 1.072(this mode, the)3.572 F
-/F3 9/Times-Bold@0 SF($ENV)3.572 E F0(and)3.322 E F3($B)3.572 E(ASH_ENV)
--.27 E F0 1.072(\214les are not pro-)3.322 F 1.705
-(cessed, shell functions are not inherited from the en)184 390 R 1.705
-(vironment, and the)-.4 F F3(SHELLOPTS)4.205 E F0 -.25(va)184 402 S .018
+(xtrace)184 528 Q F0(Same as)13.35 E F1<ad78>2.5 E F0(.)A(If)184 546 Q
+F1<ad6f>3.053 E F0 .553(is supplied with no)3.053 F F5(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
+558 Q F0 1.071(is supplied with no)3.571 F F5(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 570 Q F1<ad70>
+144 582 Q F0 -.45(Tu)28.74 G 1.072(rn on).45 F F5(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
+F2($ENV)3.572 E F0(and)3.322 E F2($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 594 R 1.705
+(vironment, and the)-.4 F F2(SHELLOPTS)4.206 E F0 -.25(va)184 606 S .019
 (riable, if it appears in the en).25 F .019(vironment, is ignored.)-.4 F
-.019(If the shell is started with the ef)5.019 F(fec-)-.25 E(ti)184 414
-Q 1.159 -.15(ve u)-.25 H .859
+.018(If the shell is started with the ef)5.019 F(fec-)-.25 E(ti)184 618
+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<ad70>3.359 E F0 .858(option is not sup-)3.359 F .293
-(plied, these actions are tak)184 426 R .293(en and the ef)-.1 F(fecti)
+F1<ad70>3.359 E F0 .859(option is not sup-)3.359 F .294
+(plied, these actions are tak)184 630 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 .294(If the)5.294 F F1<ad70>2.794 E F0 1.196
-(option is supplied at startup, the ef)184 438 R(fecti)-.25 E 1.495 -.15
-(ve u)-.25 H 1.195(ser id is not reset.).15 F -.45(Tu)6.195 G 1.195
-(rning this option of).45 F(f)-.25 E(causes the ef)184 450 Q(fecti)-.25
+F .293(If the)5.293 F F1<ad70>2.793 E F0 1.195
+(option is supplied at startup, the ef)184 642 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 654 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 462 Q F0(Exit after reading and e)30.97 E -.15(xe)-.15 G
-(cuting one command.).15 E F1<ad75>144 474 Q F0 -.35(Tr)28.74 G .444
+<ad74>144 666 Q F0(Exit after reading and e)30.97 E -.15(xe)-.15 G
+(cuting one command.).15 E F1<ad75>144 678 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 486 R .519
+(xpansion. If)-.15 F -.15(ex)2.944 G .444(pansion is).15 F .519
+(attempted on an unset v)184 690 R .519
 (ariable, the shell prints an error message, and, if not interacti)-.25
-F -.15(ve)-.25 G(,).15 E -.15(ex)184 498 S(its with a non-zero status.)
-.15 E F1<ad76>144 510 Q F0(Print shell input lines as the)29.3 E 2.5(ya)
--.15 G(re read.)-2.5 E F1<ad78>144 522 Q F0 .315(After e)29.3 F .315
-(xpanding each)-.15 F F2 .315(simple command)2.815 F F0(,)A F1 -.25(fo)
-2.815 G(r).25 E F0(command,)2.815 E F1(case)2.815 E F0(command,)2.815 E
-F1(select)2.815 E F0(command,)2.815 E 1.236(or arithmetic)184 534 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
-546 Q(xpanded ar)-.15 E(guments or associated w)-.18 E(ord list.)-.1 E
-F1<ad42>144 558 Q F0 2.578(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 570 Q
-(ault.)-.1 E F1<ad43>144 582 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
-(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 594 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 606 Q F1(>|)2.5 E F0(instead of)2.5 E F1(>)2.5 E F0(.)A F1
-<ad45>144 618 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 630 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 642 Q F1
-<ad48>144 654 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 666 Q -.15
-(ve)-.25 G(.).15 E F1<ad50>144 678 Q F0 1.164
-(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 690 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 702 R(def)2.685
-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 714 Q(.)-.65 E
-(GNU Bash-3.0)72 768 Q(2004 Apr 20)148.735 E(13)198.725 E 0 Cg EP
+F -.15(ve)-.25 G(,).15 E -.15(ex)184 702 S(its with a non-zero status.)
+.15 E F1<ad76>144 714 Q F0(Print shell input lines as the)29.3 E 2.5(ya)
+-.15 G(re read.)-2.5 E(GNU Bash-3.0)72 768 Q(2004 Apr 20)148.735 E(13)
+198.725 E 0 Cg EP
 %%Page: 14 14
 %%BeginPageSetup
 BP
 %%EndPageSetup
 /F0 10/Times-Roman@0 SF -.35(BA)72 48 S(SH_B).35 E(UIL)-.1 E 290.48
 (TINS\(1\) B)-.92 F(ASH_B)-.35 E(UIL)-.1 E(TINS\(1\))-.92 E/F1 10
-/Times-Bold@0 SF<ad54>144 84 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 96 R -.15(xe)-.15 G 1.932
+/Times-Bold@0 SF<ad78>144 84 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.235
+(or arithmetic)184 96 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 108 Q
+(xpanded ar)-.15 E(guments or associated w)-.18 E(ord list.)-.1 E F1
+<ad42>144 120 Q F0 2.579(The shell performs brace e)27.63 F 2.578
+(xpansion \(see)-.15 F F1 2.578(Brace Expansion)5.078 F F0(abo)5.078 E
+-.15(ve)-.15 G 5.078(\). This).15 F 2.578(is on by)5.078 F(def)184 132 Q
+(ault.)-.1 E F1<ad43>144 144 Q F0 .213(If set,)27.08 F F1(bash)2.713 E
+F0 .213(does not o)2.713 F -.15(ve)-.15 G .214(rwrite an e).15 F .214
+(xisting \214le with the)-.15 F F1(>)2.714 E F0(,)A F1(>&)2.714 E F0
+2.714(,a)C(nd)-2.714 E F1(<>)2.714 E F0 .214(redirection opera-)2.714 F
+3.054(tors. This)184 156 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 168 Q F1(>|)2.5 E F0(instead of)2.5 E F1(>)2.5 E F0(.)A F1
+<ad45>144 180 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 192 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 204 Q F1
+<ad48>144 216 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 228 Q -.15
+(ve)-.25 G(.).15 E F1<ad50>144 240 Q F0 1.165
+(If set, the shell does not follo)28.19 F 3.664(ws)-.25 G 1.164
+(ymbolic links when e)-3.664 F -.15(xe)-.15 G 1.164
+(cuting commands such as).15 F F1(cd)3.664 E F0 2.821
+(that change the current w)184 252 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 264 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 276 Q(.)-.65 E F1<ad54>144
+288 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 300 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 108 Q F0
-(traps are normally not inherited in such cases.)2.5 E F1<adad>144 120 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 312 Q F0
+(traps are normally not inherited in such cases.)2.5 E F1<adad>144 324 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 132 Q/F2
-10/Times-Italic@0 SF(ar)2.5 E(g)-.37 E F0(s, e)A -.15(ve)-.25 G 2.5(ni)
-.15 G 2.5(fs)-2.5 G(ome of them be)-2.5 E(gin with a)-.15 E F1<ad>2.5 E
-F0(.)A F1<ad>144 144 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 156 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 168 Q .425(The options are of)144
-184.8 R 2.925(fb)-.25 G 2.925(yd)-2.925 G(ef)-2.925 E .425
+(Otherwise,)5.401 E(the positional parameters are set to the)184 336 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
+348 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 360 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 372 Q .425(The options are of)144
+388.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 196.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 400.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 208.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 412.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 220.8 Q F1(shift)108 237.6 Q F0([)2.5 E F2(n)A F0
-(])A .429(The positional parameters from)144 249.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 261.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 273.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 424.8 Q F1(shift)108 441.6 Q F0([)2.5 E F2(n)A F0
+(])A .428(The positional parameters from)144 453.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 465.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 477.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 285.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 297.6 Q F1(shopt)108 314.4 Q F0([)
+(,t)C(he)-2.56 E .144(positional parameters are not changed.)144 489.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 501.6 Q F1(shopt)108 518.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 326.4 S .222(ggle the v).8 F .222
+-2.5 E F0(...])2.5 E -.8(To)144 530.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 338.4 R(The)
-144 350.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 362.4 Q .3 -.15(ve t)-.2 H(he follo).15 E(wing meanings:)
--.25 E F1<ad73>144 374.4 Q F0(Enable \(set\) each)26.41 E F2(optname)2.5
-E F0(.)A F1<ad75>144 386.4 Q F0(Disable \(unset\) each)24.74 E F2
-(optname)2.5 E F0(.)A F1<ad71>144 398.4 Q F0 .003(Suppresses normal out\
+ed, with an indication of whether or not each is set.)144 542.4 R(The)
+144 554.4 Q F1<ad70>2.827 E F0 .327(option causes output to be displaye\
+d in a form that may be reused as input.)2.827 F .328(Other options)
+5.328 F(ha)144 566.4 Q .3 -.15(ve t)-.2 H(he follo).15 E(wing meanings:)
+-.25 E F1<ad73>144 578.4 Q F0(Enable \(set\) each)26.41 E F2(optname)2.5
+E F0(.)A F1<ad75>144 590.4 Q F0(Disable \(unset\) each)24.74 E F2
+(optname)2.5 E F0(.)A F1<ad71>144 602.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 410.4 R .256
-(If multiple)5.256 F F2(optname)2.756 E F0(ar)2.756 E .256
+(optname)2.503 E F0(is)2.503 E .255(set or unset.)180 614.4 R .255
+(If multiple)5.255 F F2(optname)2.755 E F0(ar)2.755 E .256
 (guments are gi)-.18 F -.15(ve)-.25 G 2.756(nw).15 G(ith)-2.756 E F1
-<ad71>2.756 E F0 2.755(,t)C .255(he return status is zero if)-2.755 F
-(all)180 422.4 Q F2(optnames)2.5 E F0(are enabled; non-zero otherwise.)
-2.5 E F1<ad6f>144 434.4 Q F0(Restricts the v)25.3 E(alues of)-.25 E F2
+<ad71>2.756 E F0 2.756(,t)C .256(he return status is zero if)-2.756 F
+(all)180 626.4 Q F2(optnames)2.5 E F0(are enabled; non-zero otherwise.)
+2.5 E F1<ad6f>144 638.4 Q F0(Restricts the v)25.3 E(alues of)-.25 E F2
 (optname)2.5 E F0(to be those de\214ned for the)2.5 E F1<ad6f>2.5 E F0
-(option to the)2.5 E F1(set)2.5 E F0 -.2(bu)2.5 G(iltin.).2 E .127
-(If either)144 451.2 R F1<ad73>2.627 E F0(or)2.627 E F1<ad75>2.627 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 655.2 R F1<ad73>2.628 E F0(or)2.628 E F1<ad75>2.628 E F0
 .127(is used with no)2.627 F F2(optname)2.627 E F0(ar)2.627 E .127
-(guments, the display is limited to those options which)-.18 F 1.024
-(are set or unset, respecti)144 463.2 R -.15(ve)-.25 G(ly).15 E 6.024
-(.U)-.65 G 1.024(nless otherwise noted, the)-6.024 F F1(shopt)3.523 E F0
-1.023(options are disabled \(unset\) by)3.523 F(def)144 475.2 Q(ault.)
+(guments, the display is limited to those options which)-.18 F 1.023
+(are set or unset, respecti)144 667.2 R -.15(ve)-.25 G(ly).15 E 6.023
+(.U)-.65 G 1.024(nless otherwise noted, the)-6.023 F F1(shopt)3.524 E F0
+1.024(options are disabled \(unset\) by)3.524 F(def)144 679.2 Q(ault.)
 -.1 E 1.544(The return status when listing options is zero if all)144
-492 R F2(optnames)4.044 E F0 1.545(are enabled, non-zero otherwise.)
-4.045 F .696
+696 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 504 R F2(optname)3.196 E F0 .696(is not a v)3.196 F .695(alid shell)
--.25 F(option.)144 516 Q(The list of)144 532.8 Q F1(shopt)2.5 E F0
-(options is:)2.5 E F1(autocd)144 550.8 Q F0 .199
+144 708 R F2(optname)3.196 E F0 .696(is not a v)3.196 F .696(alid shell)
+-.25 F(option.)144 720 Q(GNU Bash-3.0)72 768 Q(2004 Apr 20)148.735 E(14)
+198.725 E 0 Cg EP
+%%Page: 15 15
+%%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(The list of)
+144 84 Q/F1 10/Times-Bold@0 SF(shopt)2.5 E F0(options is:)2.5 E F1
+(autocd)144 102 Q F0 .2
 (If set, a command name that is the name of a directory is e)11.11 F
--.15(xe)-.15 G .2(cuted as if it were the ar).15 F(gu-)-.18 E
-(ment to the)184 562.8 Q F1(cd)2.5 E F0 2.5(command. This)2.5 F
+-.15(xe)-.15 G .199(cuted as if it were the ar).15 F(gu-)-.18 E
+(ment to the)184 114 Q F1(cd)2.5 E F0 2.5(command. This)2.5 F
 (option is only used by interacti)2.5 E .3 -.15(ve s)-.25 H(hells.).15 E
-F1(cdable_v)144 574.8 Q(ars)-.1 E F0 .156(If set, an ar)184 586.8 R .156
-(gument to the)-.18 F F1(cd)2.656 E F0 -.2(bu)2.656 G .155
+F1(cdable_v)144 126 Q(ars)-.1 E F0 .155(If set, an ar)184 138 R .155
+(gument to the)-.18 F F1(cd)2.655 E F0 -.2(bu)2.655 G .156
 (iltin command that is not a directory is assumed to be the).2 F
-(name of a v)184 598.8 Q(ariable whose v)-.25 E
-(alue is the directory to change to.)-.25 E F1(cdspell)144 610.8 Q F0
+(name of a v)184 150 Q(ariable whose v)-.25 E
+(alue is the directory to change to.)-.25 E F1(cdspell)144 162 Q F0
 1.055
 (If set, minor errors in the spelling of a directory component in a)
-10.55 F F1(cd)3.555 E F0 1.055(command will be)3.555 F 3.988
-(corrected. The)184 622.8 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 634.8 R 4.352 -.65
-(y. I)-.15 H 3.052(fac).65 G .552
+10.55 F F1(cd)3.555 E F0 1.055(command will be)3.555 F 3.987
+(corrected. The)184 174 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 186 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 646.8 Q
-(This option is only used by interacti)5 E .3 -.15(ve s)-.25 H(hells.)
-.15 E F1(checkhash)144 658.8 Q F0 2.08(If set,)184 670.8 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 682.8 S(cute it.).15 E
+(the command proceeds.)184 198 Q(This option is only used by interacti)5
+E .3 -.15(ve s)-.25 H(hells.).15 E F1(checkhash)144 210 Q F0 2.079
+(If set,)184 222 R F1(bash)4.579 E F0 2.079
+(checks that a command found in the hash table e)4.579 F 2.08
+(xists before trying to)-.15 F -.15(exe)184 234 S(cute it.).15 E
 (If a hashed command no longer e)5 E
-(xists, a normal path search is performed.)-.15 E F1(checkjobs)144 694.8
-Q F0 .56(If set, bash lists the status of an)184 706.8 R 3.061(ys)-.15 G
-.561(topped and running jobs before e)-3.061 F .561(xiting an interacti)
--.15 F -.15(ve)-.25 G 3.439(shell. If)184 718.8 R(an)3.439 E 3.439(yj)
--.15 G .938(obs are running, this causes the e)-3.439 F .938
-(xit to be deferred until a second e)-.15 F .938(xit is)-.15 F 1.456
-(attempted without an interv)184 730.8 R 1.456(ening command \(see)-.15
-F F1 1.456(JOB CONTR)3.956 F(OL)-.3 E F0(abo)3.956 E -.15(ve)-.15 G
-3.956(\). The).15 F(shell)3.956 E(GNU Bash-3.0)72 768 Q(2004 Apr 20)
-148.735 E(14)198.725 E 0 Cg EP
-%%Page: 15 15
-%%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(al)184 84 Q
--.1(wa)-.1 G(ys postpones e).1 E(xiting if an)-.15 E 2.5(yj)-.15 G
-(obs are stopped.)-2.5 E/F1 10/Times-Bold@0 SF(checkwinsize)144 96 Q F0
-.797(If set,)184 108 R F1(bash)3.297 E F0 .797(checks the windo)3.297 F
-3.297(ws)-.25 G .796(ize after each command and, if necessary)-3.297 F
-3.296(,u)-.65 G .796(pdates the)-3.296 F -.25(va)184 120 S(lues of).25 E
-/F2 9/Times-Bold@0 SF(LINES)2.5 E F0(and)2.25 E F2(COLUMNS)2.5 E/F3 9
-/Times-Roman@0 SF(.)A F1(cmdhist)144 132 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 144 Q 5(.T)-.65 G(his allo)-5 E
-(ws easy re-editing of multi-line commands.)-.25 E F1(compat31)144 156 Q
-F0 .42(If set,)184 168 R F1(bash)2.92 E F0 .42(changes its beha)2.92 F
-.419(vior to that of v)-.2 F .419(ersion 3.1 with respect to quoted ar)
--.15 F(guments)-.18 E(to the conditional command')184 180 Q 2.5(s=)-.55
-G 2.5(~o)-2.5 G(perator)-2.5 E(.)-.55 E F1(dotglob)144 192 Q F0 .165
+(xists, a normal path search is performed.)-.15 E F1(checkjobs)144 246 Q
+F0 .449(If set,)184 258 R F1(bash)2.949 E F0 .449
+(lists the status of an)2.949 F 2.949(ys)-.15 G .448
+(topped and running jobs before e)-2.949 F .448(xiting an interacti)-.15
+F -.15(ve)-.25 G 3.438(shell. If)184 270 R(an)3.438 E 3.438(yj)-.15 G
+.938(obs are running, this causes the e)-3.438 F .938
+(xit to be deferred until a second e)-.15 F .939(xit is)-.15 F 1.456
+(attempted without an interv)184 282 R 1.456(ening command \(see)-.15 F
+F1 1.456(JOB CONTR)3.956 F(OL)-.3 E F0(abo)3.956 E -.15(ve)-.15 G 3.956
+(\). The).15 F(shell)3.956 E(al)184 294 Q -.1(wa)-.1 G(ys postpones e).1
+E(xiting if an)-.15 E 2.5(yj)-.15 G(obs are stopped.)-2.5 E F1
+(checkwinsize)144 306 Q F0 .796(If set,)184 318 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 330 S(lues of).25 E/F2 9/Times-Bold@0
+SF(LINES)2.5 E F0(and)2.25 E F2(COLUMNS)2.5 E/F3 9/Times-Roman@0 SF(.)A
+F1(cmdhist)144 342 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
+354 Q 5(.T)-.65 G(his allo)-5 E
+(ws easy re-editing of multi-line commands.)-.25 E F1(compat31)144 366 Q
+F0 .419(If set,)184 378 R F1(bash)2.919 E F0 .419(changes its beha)2.919
+F .419(vior to that of v)-.2 F .42(ersion 3.1 with respect to quoted ar)
+-.15 F(guments)-.18 E(to the conditional command')184 390 Q 2.5(s=)-.55
+G 2.5(~o)-2.5 G(perator)-2.5 E(.)-.55 E F1(dotglob)144 402 Q F0 .165
 (If set,)7.77 F F1(bash)2.665 E F0 .165(includes \214lenames be)2.665 F
 .165(ginning with a `.)-.15 F 2.665('i)-.7 G 2.665(nt)-2.665 G .165
-(he results of pathname e)-2.665 F(xpansion.)-.15 E F1(execfail)144 204
-Q F0 1.387(If set, a non-interacti)7.79 F 1.687 -.15(ve s)-.25 H 1.386
+(he results of pathname e)-2.665 F(xpansion.)-.15 E F1(execfail)144 414
+Q F0 1.386(If set, a non-interacti)7.79 F 1.686 -.15(ve s)-.25 H 1.386
 (hell will not e).15 F 1.386(xit if it cannot e)-.15 F -.15(xe)-.15 G
-1.386(cute the \214le speci\214ed as an).15 F(ar)184 216 Q
+1.387(cute the \214le speci\214ed as an).15 F(ar)184 426 Q
 (gument to the)-.18 E F1(exec)2.5 E F0 -.2(bu)2.5 G(iltin command.).2 E
 (An interacti)5 E .3 -.15(ve s)-.25 H(hell does not e).15 E(xit if)-.15
-E F1(exec)2.5 E F0 -.1(fa)2.5 G(ils.).1 E F1(expand_aliases)144 228 Q F0
-.716(If set, aliases are e)184 240 R .717(xpanded as described abo)-.15
-F 1.017 -.15(ve u)-.15 H(nder).15 E F2(ALIASES)3.217 E F3(.)A F0 .717
-(This option is enabled)5.217 F(by def)184 252 Q(ault for interacti)-.1
-E .3 -.15(ve s)-.25 H(hells.).15 E F1(extdeb)144 264 Q(ug)-.2 E F0
-(If set, beha)184 276 Q(vior intended for use by deb)-.2 E
-(uggers is enabled:)-.2 E F1(1.)184 288 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 300 Q
-(gument.)-.18 E F1(2.)184 312 Q F0 1.667(If the command run by the)28.5
+E F1(exec)2.5 E F0 -.1(fa)2.5 G(ils.).1 E F1(expand_aliases)144 438 Q F0
+.717(If set, aliases are e)184 450 R .717(xpanded as described abo)-.15
+F 1.017 -.15(ve u)-.15 H(nder).15 E F2(ALIASES)3.217 E F3(.)A F0 .716
+(This option is enabled)5.217 F(by def)184 462 Q(ault for interacti)-.1
+E .3 -.15(ve s)-.25 H(hells.).15 E F1(extdeb)144 474 Q(ug)-.2 E F0
+(If set, beha)184 486 Q(vior intended for use by deb)-.2 E
+(uggers is enabled:)-.2 E F1(1.)184 498 Q F0(The)28.5 E F1<ad46>4.25 E
+F0 1.75(option to the)4.25 F F1(declar)4.251 E(e)-.18 E F0 -.2(bu)4.251
+G 1.751(iltin displays the source \214le name and line).2 F
+(number corresponding to each function name supplied as an ar)220 510 Q
+(gument.)-.18 E F1(2.)184 522 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 324
-Q -.15(xe)-.15 G(cuted.).15 E F1(3.)184 336 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 348 S .488
+1.667(alue, the ne)-.25 F(xt)-.15 E(command is skipped and not e)220 534
+Q -.15(xe)-.15 G(cuted.).15 E F1(3.)184 546 Q F0 .84
+(If the command run by the)28.5 F F1(DEB)3.34 E(UG)-.1 E F0 .841
+(trap returns a v)3.341 F .841(alue of 2, and the shell is)-.25 F -.15
+(exe)220 558 S .488
 (cuting in a subroutine \(a shell function or a shell script e).15 F
 -.15(xe)-.15 G .488(cuted by the).15 F F1(.)2.988 E F0(or)2.988 E F1
-(sour)220 360 Q(ce)-.18 E F0 -.2(bu)2.5 G(iltins\), a call to).2 E F1
+(sour)220 570 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
-372 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
-384 Q -.15(ve)-.15 G(.).15 E F1(5.)184 396 Q F0 1.359
+582 R(ASH_ARGC)-.3 E F0(and)3.775 E F1 -.3(BA)3.775 G(SH_ARGV).3 E F0
+1.276(are updated as described in their descrip-)3.775 F(tions abo)220
+594 Q -.15(ve)-.15 G(.).15 E F1(5.)184 606 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
-408 Q -.2(vo)-.4 G -.1(ke).2 G 2.5(dw).1 G(ith)-2.5 E F1(\()2.5 E/F4 10
+618 Q -.2(vo)-.4 G -.1(ke).2 G 2.5(dw).1 G(ith)-2.5 E F1(\()2.5 E/F4 10
 /Times-Italic@0 SF(command)2.5 E F1(\))2.5 E F0(inherit the)2.5 E F1
 (DEB)2.5 E(UG)-.1 E F0(and)2.5 E F1(RETURN)2.5 E F0(traps.)2.5 E F1(6.)
-184 420 Q F0 .805(Error tracing is enabled:)28.5 F .804
-(command substitution, shell functions, and subshells)5.805 F(in)220 432
+184 630 Q F0 .804(Error tracing is enabled:)28.5 F .805
+(command substitution, shell functions, and subshells)5.804 F(in)220 642
 Q -.2(vo)-.4 G -.1(ke).2 G 2.5(dw).1 G(ith)-2.5 E F1(\()2.5 E F4
 (command)2.5 E F1(\))2.5 E F0(inherit the)2.5 E F1(ERR)2.5 E(OR)-.3 E F0
-(trap.)2.5 E F1(extglob)144 444 Q F0 .4(If set, the e)8.89 F .4
+(trap.)2.5 E F1(extglob)144 654 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 456 Q
-F0(are enabled.)2.5 E F1(extquote)144 468 Q F0 2.473(If set,)184 480 R
+-.15 H(nder).15 E F1 -.1(Pa)2.9 G .4(thname Expan-).1 F(sion)184 666 Q
+F0(are enabled.)2.5 E F1(extquote)144 678 Q F0 2.473(If set,)184 690 R
 F1($)4.973 E F0<08>A F4(string)A F0 4.973<0861>C(nd)-4.973 E F1($)4.973
 E F0(")A F4(string)A F0 4.973("q)C 2.473(uoting is performed within)
 -4.973 F F1(${)4.973 E F4(par)A(ameter)-.15 E F1(})A F0 -.15(ex)4.973 G
-(pansions).15 E(enclosed in double quotes.)184 492 Q
-(This option is enabled by def)5 E(ault.)-.1 E F1(failglob)144 504 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 516 S(pansion error).15 E(.)
--.55 E F1 -.25(fo)144 528 S -.18(rc).25 G(e_\214gnor).18 E(e)-.18 E F0
-.585(If set, the suf)184 540 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 552 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 564 R F2 .83(SHELL V)3.33 F(ARIABLES)-1.215 E F0(abo)
-3.08 E 1.13 -.15(ve f)-.15 H .829(or a description of).15 F F1(FIGNORE)
-3.329 E F0 5.829(.T)C .829(his option)-5.829 F(is enabled by def)184 576
-Q(ault.)-.1 E F1(gnu_errfmt)144 588 Q F0(If set, shell error messages a\
-re written in the standard GNU error message format.)184 600 Q F1
-(histappend)144 612 Q F0 .383
-(If set, the history list is appended to the \214le named by the v)184
-624 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 636 Q(xits, rather than o)-.15 E
--.15(ve)-.15 G(rwriting the \214le.).15 E F1(histr)144 648 Q(eedit)-.18
-E F0 .576(If set, and)184 660 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 672 Q F1(histv)144 684 Q(erify)-.1 E F0 .402
-(If set, and)184 696 R F1 -.18(re)2.903 G(adline).18 E F0 .403
-(is being used, the results of history substitution are not immediately)
-2.903 F .662(passed to the shell parser)184 708 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 720 S -.25(ff).2 G(er).25 E
-2.5(,a)-.4 G(llo)-2.5 E(wing further modi\214cation.)-.25 E
-(GNU Bash-3.0)72 768 Q(2004 Apr 20)148.735 E(15)198.725 E 0 Cg EP
+(pansions).15 E(enclosed in double quotes.)184 702 Q
+(This option is enabled by def)5 E(ault.)-.1 E F1(failglob)144 714 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 726 S(pansion error).15 E(.)
+-.55 E(GNU Bash-3.0)72 768 Q(2004 Apr 20)148.735 E(15)198.725 E 0 Cg EP
 %%Page: 16 16
 %%BeginPageSetup
 BP
 %%EndPageSetup
 /F0 10/Times-Roman@0 SF -.35(BA)72 48 S(SH_B).35 E(UIL)-.1 E 290.48
 (TINS\(1\) B)-.92 F(ASH_B)-.35 E(UIL)-.1 E(TINS\(1\))-.92 E/F1 10
-/Times-Bold@0 SF(hostcomplete)144 84 Q F0 1.181(If set, and)184 96 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 108 R 1.381(ord containing a)-.1 F F1(@)3.881 E F0
-1.381(is being completed \(see)3.881 F F1(Completing)3.88 E F0(under)
-3.88 E/F2 9/Times-Bold@0 SF(READLINE)3.88 E F0(abo)184 120 Q -.15(ve)
--.15 G 2.5(\). This).15 F(is enabled by def)2.5 E(ault.)-.1 E F1
-(huponexit)144 132 Q F0(If set,)184 144 Q F1(bash)2.5 E F0(will send)2.5
-E F2(SIGHUP)2.5 E F0(to all jobs when an interacti)2.25 E .3 -.15(ve l)
--.25 H(ogin shell e).15 E(xits.)-.15 E F1(interacti)144 156 Q -.1(ve)-.1
-G(_comments).1 E F0 .33(If set, allo)184 168 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 180 R 1.267 -.15(ve s)
--.25 H .967(hell \(see).15 F F2(COMMENTS)3.467 E F0(abo)3.217 E -.15(ve)
--.15 G 3.467(\). This).15 F .967(option is)3.467 F(enabled by def)184
-192 Q(ault.)-.1 E F1(lithist)144 204 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 216 Q
+/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
+(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
+(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.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
+(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
+(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
 (wlines rather than using semicolon separators where possible.)-.25 E F1
-(login_shell)144 228 Q F0 .486
+(login_shell)144 432 Q F0 .486
 (The shell sets this option if it is started as a login shell \(see)184
-240 R F2(INV)2.986 E(OCA)-.405 E(TION)-.855 E F0(abo)2.736 E -.15(ve)
--.15 G 2.986(\). The).15 F -.25(va)184 252 S(lue may not be changed.).25
-E F1(mailwar)144 264 Q(n)-.15 E F0 .814(If set, and a \214le that)184
-276 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 288 S 2.5(sc).1 G(heck)-2.5 E(ed, the message `)-.1 E
+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 300 Q F0 .146(If set, and)184 312 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 324 Q F1
-(nocaseglob)144 336 Q F0 .436(If set,)184 348 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 360 S
+(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
 (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 372 Q F0 1.194(If set,)184
-384 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 396 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 408 Q F0
-.854(If set,)184 420 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 432 S(pand to a null string, rather than themselv)
-.15 E(es.)-.15 E F1(pr)144 444 Q(ogcomp)-.18 E F0 .677
-(If set, the programmable completion f)184 456 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 468 Q
-(This option is enabled by def)5 E(ault.)-.1 E F1(pr)144 480 Q(omptv)
--.18 E(ars)-.1 E F0 1.447(If set, prompt strings under)184 492 R 1.448
-(go parameter e)-.18 F 1.448(xpansion, command substitution, arithmetic)
--.15 F -.15(ex)184 504 S .171(pansion, and quote remo).15 F -.25(va)-.15
+-.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.67 E(OMPTING)-.27 E F0(abo)2.42 E -.15(ve)-.15 G(.).15 E
-(This option is enabled by def)184 516 Q(ault.)-.1 E F1 -.18(re)144 528
-S(stricted_shell).18 E F0 1.069
-(The shell sets this option if it is started in restricted mode \(see)
-184 540 R F2 1.069(RESTRICTED SHELL)3.569 F F0(belo)184 552 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 564 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 576 Q(erbose)-.1 E F0 .501(If set, the)184 588 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 600 Q F1(sour)
-144 612 Q(cepath)-.18 E F0 .771(If set, the)184 624 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 636 Q 2.5(gument. This)-.18 F(option is enabled by def)2.5 E(ault.)
--.1 E F1(xpg_echo)144 648 Q F0(If set, the)184 660 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 672 Q F0([)2.5 E F1<ad66>A F0(])A .492
-(Suspend the e)144 684 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 696 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 708 Q F1<ad66>2.5 E F0
-(is not supplied, or if job control is not enabled.)2.5 E(GNU Bash-3.0)
-72 768 Q(2004 Apr 20)148.735 E(16)198.725 E 0 Cg EP
+-.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.0)72
+768 Q(2004 Apr 20)148.735 E(16)198.725 E 0 Cg EP
 %%Page: 17 17
 %%BeginPageSetup
 BP
 %%EndPageSetup
 /F0 10/Times-Roman@0 SF -.35(BA)72 48 S(SH_B).35 E(UIL)-.1 E 290.48
 (TINS\(1\) B)-.92 F(ASH_B)-.35 E(UIL)-.1 E(TINS\(1\))-.92 E/F1 10
-/Times-Bold@0 SF(test)108 84 Q/F2 10/Times-Italic@0 SF -.2(ex)2.5 G(pr)
-.2 E F1([)108 96 Q F2 -.2(ex)2.5 G(pr).2 E F1(])2.5 E F0 1.15
+/Times-Bold@0 SF -.18(re)144 84 S(stricted_shell).18 E F0 1.069
+(The shell sets this option if it is started in restricted mode \(see)
+184 96 R/F2 9/Times-Bold@0 SF 1.069(RESTRICTED SHELL)3.569 F F0(belo)184
+108 Q 4.178(w\). The)-.25 F -.25(va)4.178 G 1.678
+(lue may not be changed.).25 F 1.678
+(This is not reset when the startup \214les are)6.678 F -.15(exe)184 120
+S(cuted, allo).15 E(wing the startup \214les to disco)-.25 E -.15(ve)
+-.15 G 2.5(rw).15 G(hether or not a shell is restricted.)-2.5 E F1
+(shift_v)144 132 Q(erbose)-.1 E F0 .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
+(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
+(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
+(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 F2 -.2(ex)3.65 G
-(pr).2 E F0 6.15(.E).73 G(ach)-6.15 E 1.188
-(operator and operand must be a separate ar)144 108 R 3.688
-(gument. Expressions)-.18 F 1.187(are composed of the primaries)3.688 F
-1.889(described abo)144 120 R 2.189 -.15(ve u)-.15 H(nder).15 E/F3 9
-/Times-Bold@0 SF(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 132 Q(gument of)-.18 E F1<adad>2.5 E F0
-(as signifying the end of options.)2.5 E .786
-(Expressions may be combined using the follo)144 150 R .785
+(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
+(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
 (wing operators, listed in decreasing order of prece-)-.25 F 2.5
-(dence. The)144 162 R -.25(eva)2.5 G
+(dence. The)144 354 R -.25(eva)2.5 G
 (luation depends on the number of ar).25 E(guments; see belo)-.18 E -.65
-(w.)-.25 G F1(!)144 174 Q F2 -.2(ex)2.5 G(pr).2 E F0 -.35(Tr)12.6 G
-(ue if).35 E F2 -.2(ex)2.5 G(pr).2 E F0(is f)3.23 E(alse.)-.1 E F1(\()
-144 186 Q F2 -.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 F2 -.2(ex)2.76 G(pr).2 E F0 5.26(.T)C .26
+(w.)-.25 G F1(!)144 366 Q F3 -.2(ex)2.5 G(pr).2 E F0 -.35(Tr)12.6 G
+(ue if).35 E F3 -.2(ex)2.5 G(pr).2 E F0(is f)3.23 E(alse.)-.1 E F1(\()
+144 378 Q F3 -.2(ex)2.5 G(pr).2 E F1(\))2.5 E F0 .26(Returns the v)6.77
+F .26(alue of)-.25 F F3 -.2(ex)2.76 G(pr).2 E F0 5.26(.T)C .26
 (his may be used to o)-5.26 F -.15(ve)-.15 G .26
-(rride the normal precedence of opera-).15 F(tors.)180 198 Q F2 -.2(ex)
-144 210 S(pr1).2 E F0<ad>2.5 E F1(a)A F2 -.2(ex)2.5 G(pr2).2 E F0 -.35
-(Tr)180 222 S(ue if both).35 E F2 -.2(ex)2.5 G(pr1).2 E F0(and)2.5 E F2
--.2(ex)2.5 G(pr2).2 E F0(are true.)2.52 E F2 -.2(ex)144 234 S(pr1).2 E
-F0<ad>2.5 E F1(o)A F2 -.2(ex)2.5 G(pr2).2 E F0 -.35(Tr)180 246 S
-(ue if either).35 E F2 -.2(ex)2.5 G(pr1).2 E F0(or)2.5 E F2 -.2(ex)2.5 G
-(pr2).2 E F0(is true.)2.52 E F1(test)144 262.8 Q F0(and)2.5 E F1([)2.5 E
+(rride the normal precedence of opera-).15 F(tors.)180 390 Q F3 -.2(ex)
+144 402 S(pr1).2 E F0<ad>2.5 E F1(a)A F3 -.2(ex)2.5 G(pr2).2 E F0 -.35
+(Tr)180 414 S(ue if both).35 E F3 -.2(ex)2.5 G(pr1).2 E F0(and)2.5 E F3
+-.2(ex)2.5 G(pr2).2 E F0(are true.)2.52 E F3 -.2(ex)144 426 S(pr1).2 E
+F0<ad>2.5 E F1(o)A F3 -.2(ex)2.5 G(pr2).2 E F0 -.35(Tr)180 438 S
+(ue if either).35 E F3 -.2(ex)2.5 G(pr1).2 E F0(or)2.5 E F3 -.2(ex)2.5 G
+(pr2).2 E F0(is true.)2.52 E F1(test)144 454.8 Q F0(and)2.5 E F1([)2.5 E
 F0 -.25(eva)2.5 G(luate conditional e).25 E
 (xpressions using a set of rules based on the number of ar)-.15 E
-(guments.)-.18 E 2.5(0a)144 280.8 S -.18(rg)-2.5 G(uments).18 E(The e)
-180 292.8 Q(xpression is f)-.15 E(alse.)-.1 E 2.5(1a)144 304.8 S -.18
-(rg)-2.5 G(ument).18 E(The e)180 316.8 Q
+(guments.)-.18 E 2.5(0a)144 472.8 S -.18(rg)-2.5 G(uments).18 E(The e)
+180 484.8 Q(xpression is f)-.15 E(alse.)-.1 E 2.5(1a)144 496.8 S -.18
+(rg)-2.5 G(ument).18 E(The e)180 508.8 Q
 (xpression is true if and only if the ar)-.15 E(gument is not null.)-.18
-E 2.5(2a)144 328.8 S -.18(rg)-2.5 G(uments).18 E .37(If the \214rst ar)
-180 340.8 R .37(gument is)-.18 F F1(!)2.87 E F0 2.87(,t)C .37(he e)-2.87
+E 2.5(2a)144 520.8 S -.18(rg)-2.5 G(uments).18 E .37(If the \214rst ar)
+180 532.8 R .37(gument is)-.18 F F1(!)2.87 E F0 2.87(,t)C .37(he e)-2.87
 F .37(xpression is true if and only if the second ar)-.15 F .37
-(gument is null.)-.18 F .379(If the \214rst ar)180 352.8 R .38
-(gument is one of the unary conditional operators listed abo)-.18 F .68
--.15(ve u)-.15 H(nder).15 E F3(CONDI-)2.88 E(TION)180 364.8 Q .553
+(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
 (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 376.8 Q
+(If the \214rst ar)5.552 F(gu-)-.18 E(ment is not a v)180 568.8 Q
 (alid unary conditional operator)-.25 E 2.5(,t)-.4 G(he e)-2.5 E
-(xpression is f)-.15 E(alse.)-.1 E 2.5(3a)144 388.8 S -.18(rg)-2.5 G
-(uments).18 E .023(If the second ar)180 400.8 R .023
+(xpression is f)-.15 E(alse.)-.1 E 2.5(3a)144 580.8 S -.18(rg)-2.5 G
+(uments).18 E .024(If the second ar)180 592.8 R .023
 (gument is one of the binary conditional operators listed abo)-.18 F
-.324 -.15(ve u)-.15 H(nder).15 E F3(CON-)2.524 E(DITION)180 412.8 Q
-1.478(AL EXPRESSIONS)-.18 F F4(,)A F0 1.477(the result of the e)3.727 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 .513
-(using the \214rst and third ar)180 424.8 R .513(guments as operands.)
+(using the \214rst and third ar)180 616.8 R .513(guments as operands.)
 -.18 F(The)5.513 E F1<ad61>3.013 E F0(and)3.013 E F1<ad6f>3.013 E F0
-.513(operators are considered)3.013 F .972
-(binary operators when there are three ar)180 436.8 R 3.472(guments. If)
+.512(operators are considered)3.013 F .972
+(binary operators when there are three ar)180 628.8 R 3.472(guments. If)
 -.18 F .972(the \214rst ar)3.472 F .972(gument is)-.18 F F1(!)3.472 E F0
-3.472(,t)C .972(he v)-3.472 F .972(alue is)-.25 F .883(the ne)180 448.8
-R -.05(ga)-.15 G .883(tion of the tw).05 F(o-ar)-.1 E .884
-(gument test using the second and third ar)-.18 F 3.384(guments. If)-.18
-F .884(the \214rst)3.384 F(ar)180 460.8 Q .875(gument is e)-.18 F
-(xactly)-.15 E F1(\()3.375 E F0 .875(and the third ar)3.375 F .875
-(gument is e)-.18 F(xactly)-.15 E F1(\))3.375 E F0 3.374(,t)C .874
-(he result is the one-ar)-3.374 F(gument)-.18 E(test of the second ar)
-180 472.8 Q 2.5(gument. Otherwise,)-.18 F(the e)2.5 E(xpression is f)
--.15 E(alse.)-.1 E 2.5(4a)144 484.8 S -.18(rg)-2.5 G(uments).18 E .384
-(If the \214rst ar)180 496.8 R .384(gument is)-.18 F F1(!)2.884 E F0
-2.885(,t)C .385(he result is the ne)-2.885 F -.05(ga)-.15 G .385
-(tion of the three-ar).05 F .385(gument e)-.18 F .385(xpression com-)
--.15 F 1.648(posed of the remaining ar)180 508.8 R 4.147
-(guments. Otherwise,)-.18 F 1.647(the e)4.147 F 1.647
+3.472(,t)C .972(he v)-3.472 F .972(alue is)-.25 F .884(the ne)180 640.8
+R -.05(ga)-.15 G .884(tion of the tw).05 F(o-ar)-.1 E .884
+(gument test using the second and third ar)-.18 F 3.383(guments. If)-.18
+F .883(the \214rst)3.383 F(ar)180 652.8 Q .874(gument is e)-.18 F
+(xactly)-.15 E F1(\()3.374 E F0 .875(and the third ar)3.374 F .875
+(gument is e)-.18 F(xactly)-.15 E F1(\))3.375 E F0 3.375(,t)C .875
+(he result is the one-ar)-3.375 F(gument)-.18 E(test of the second ar)
+180 664.8 Q 2.5(gument. Otherwise,)-.18 F(the e)2.5 E(xpression is f)
+-.15 E(alse.)-.1 E 2.5(4a)144 676.8 S -.18(rg)-2.5 G(uments).18 E .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 520.8 Q -.15(ve)
--.15 G(.).15 E 2.5(5o)144 532.8 S 2.5(rm)-2.5 G(ore ar)-2.5 E(guments)
--.18 E 1.635(The e)180 544.8 R 1.635(xpression is parsed and e)-.15 F
--.25(va)-.25 G 1.635
-(luated according to precedence using the rules listed).25 F(abo)180
-556.8 Q -.15(ve)-.15 G(.).15 E F1(times)108 573.6 Q F0 1.229(Print the \
-accumulated user and system times for the shell and for processes run f\
-rom the shell.)13.23 F(The return status is 0.)144 585.6 Q F1(trap)108
-602.4 Q F0([)2.5 E F1(\255lp)A F0 2.5(][)C([)-2.5 E F2(ar)A(g)-.37 E F0
-(])A F2(sigspec)2.5 E F0(...])2.5 E .702(The command)144 614.4 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 626.4 R F2(sigspec)3.108 E F0 3.108(\)o)C(r)-3.108 E F1<ad>3.108 E
+(according to precedence using the rules listed abo)180 712.8 Q -.15(ve)
+-.15 G(.).15 E(GNU Bash-3.0)72 768 Q(2004 Apr 20)148.735 E(17)198.725 E
+0 Cg EP
+%%Page: 18 18
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF -.35(BA)72 48 S(SH_B).35 E(UIL)-.1 E 290.48
+(TINS\(1\) B)-.92 F(ASH_B)-.35 E(UIL)-.1 E(TINS\(1\))-.92 E 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
 F0 3.108(,e)C .608
 (ach speci\214ed signal is reset to its original disposition)-3.108 F
-.658(\(the v)144 638.4 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
+.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
 (is the null string the signal speci\214ed by each)3.378 F F2(sigspec)
-144.34 650.4 Q F0 .581
-(is ignored by the shell and by the commands it in)3.391 F -.2(vo)-.4 G
--.1(ke).2 G 3.08(s. If).1 F 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 662.4 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 674.4 R F1<ad70>3.36
+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
 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 686.4 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 698.4 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 710.4 R 1.045 -.15(ve a)-.25 H .745
+(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
 (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(EXIT)3.245 E F0 .745(\(0\) the command)2.995 F
-F2(ar)144.33 722.4 Q(g)-.37 E F0 1.63(is e)4.35 F -.15(xe)-.15 G 1.63
-(cuted on e).15 F 1.63(xit from the shell.)-.15 F 1.63(If a)6.63 F F2
-(sigspec)4.47 E F0(is)4.44 E F3(DEB)4.13 E(UG)-.09 E F4(,)A F0 1.629
-(the command)3.88 F F2(ar)4.459 E(g)-.37 E F0 1.629(is e)4.349 F -.15
-(xe)-.15 G(cuted).15 E(GNU Bash-3.0)72 768 Q(2004 Apr 20)148.735 E(17)
-198.725 E 0 Cg EP
-%%Page: 18 18
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Roman@0 SF -.35(BA)72 48 S(SH_B).35 E(UIL)-.1 E 290.48
-(TINS\(1\) B)-.92 F(ASH_B)-.35 E(UIL)-.1 E(TINS\(1\))-.92 E 1.206
-(before e)144 84 R -.15(ve)-.25 G(ry).15 E/F1 10/Times-Italic@0 SF 1.206
-(simple command)3.706 F F0(,)A F1(for)3.706 E F0(command,)3.706 E F1
-(case)3.706 E F0(command,)3.706 E F1(select)3.707 E F0 1.207(command, e)
-3.707 F -.15(ve)-.25 G 1.207(ry arithmetic).15 F F1(for)144 96 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/F2 9/Times-Bold@0 SF .412
-(SHELL GRAMMAR)2.912 F F0(abo)144 108 Q -.15(ve)-.15 G 2.665(\). Refer)
-.15 F .166(to the description of the)2.665 F/F3 10/Times-Bold@0 SF
-(extdeb)2.666 E(ug)-.2 E F0 .166(option to the)2.666 F F3(shopt)2.666 E
-F0 -.2(bu)2.666 G .166(iltin for details of its ef).2 F(fect)-.25 E .509
-(on the)144 120 R F3(DEB)3.009 E(UG)-.1 E F0 3.009(trap. If)3.009 F(a)
-3.009 E F1(sigspec)3.348 E F0(is)3.318 E F2(ERR)3.008 E/F4 9
-/Times-Roman@0 SF(,)A F0 .508(the command)2.758 F F1(ar)3.338 E(g)-.37 E
-F0 .508(is e)3.228 F -.15(xe)-.15 G .508(cuted whene).15 F -.15(ve)-.25
-G 3.008(ras).15 G .508(imple com-)-3.008 F 2.506
-(mand has a non\255zero e)144 132 R 2.506
+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.)
+-.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
+(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)
+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
 (xit status, subject to the follo)-.15 F 2.506(wing conditions.)-.25 F
-(The)7.506 E F2(ERR)5.006 E F0 2.506(trap is not)4.756 F -.15(exe)144
-144 S .105(cuted if the f).15 F .105
+(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
 (ailed command is part of the command list immediately follo)-.1 F .105
-(wing a)-.25 F F3(while)2.605 E F0(or)2.605 E F3(until)2.605 E F0 -.1
-(ke)144 156 S(yw)-.05 E .549(ord, part of the test in an)-.1 F F1(if)
+(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 .549(ord, part of the test in an)-.1 F F2(if)
 3.059 E F0 .549(statement, part of a command e)5.009 F -.15(xe)-.15 G
-.549(cuted in a).15 F F3(&&)3.049 E F0(or)3.049 E/F5 10/Symbol SF<efef>
-3.049 E F0 .549(list, or if)3.049 F .578(the command')144 168 R 3.078
-(sr)-.55 G .578(eturn v)-3.078 F .578(alue is being in)-.25 F -.15(ve)
--.4 G .578(rted via).15 F F3(!)3.078 E F0 5.577(.T)C .577
-(hese are the same conditions obe)-5.577 F .577(yed by the)-.15 F F3
-(err)144 180 Q(exit)-.18 E F0 3.03(option. If)3.03 F(a)3.03 E F1
-(sigspec)3.37 E F0(is)3.341 E F2(RETURN)3.031 E F4(,)A F0 .531
-(the command)2.781 F F1(ar)3.361 E(g)-.37 E F0 .531(is e)3.251 F -.15
-(xe)-.15 G .531(cuted each time a shell function).15 F .317
-(or a script e)144 192 R -.15(xe)-.15 G .317(cuted with the).15 F F3(.)
-2.817 E F0(or)2.817 E F3(sour)2.817 E(ce)-.18 E F0 -.2(bu)2.817 G .317
-(iltins \214nishes e).2 F -.15(xe)-.15 G 2.817(cuting. Signals).15 F
-.316(ignored upon entry to)2.817 F .787
-(the shell cannot be trapped or reset.)144 204 R -.35(Tr)5.787 G .787
+.549(cuted in a).15 F F1(&&)3.049 E F0(or)3.049 E/F5 10/Symbol SF<efef>
+3.049 E F0 .549(list, or if)3.049 F .577(the command')144 369.6 R 3.077
+(sr)-.55 G .577(eturn v)-3.077 F .577(alue is being in)-.25 F -.15(ve)
+-.4 G .577(rted via).15 F F1(!)3.077 E F0 5.578(.T)C .578
+(hese are the same conditions obe)-5.578 F .578(yed by the)-.15 F F1
+(err)144 381.6 Q(exit)-.18 E F0 3.031(option. If)3.031 F(a)3.031 E F2
+(sigspec)3.371 E F0(is)3.341 E F3(RETURN)3.031 E F4(,)A F0 .531
+(the command)2.781 F F2(ar)3.361 E(g)-.37 E F0 .531(is e)3.251 F -.15
+(xe)-.15 G .53(cuted each time a shell function).15 F .316
+(or a script e)144 393.6 R -.15(xe)-.15 G .317(cuted with the).15 F F1
+(.)2.817 E F0(or)2.817 E F1(sour)2.817 E(ce)-.18 E F0 -.2(bu)2.817 G
+.317(iltins \214nishes e).2 F -.15(xe)-.15 G 2.817(cuting. Signals).15 F
+.317(ignored upon entry to)2.817 F .787
+(the shell cannot be trapped or reset.)144 405.6 R -.35(Tr)5.787 G .787
 (apped signals that are not being ignored are reset to their).35 F 1.1
-(original v)144 216 R 1.1(alues in a child process when it is created.)
--.25 F 1.1(The return status is f)6.1 F 1.1(alse if an)-.1 F(y)-.15 E F1
-(sigspec)3.94 E F0(is)3.91 E(in)144 228 Q -.25(va)-.4 G(lid; otherwise)
-.25 E F3(trap)2.5 E F0(returns true.)2.5 E F3(type)108 244.8 Q F0([)2.5
-E F3(\255aftpP)A F0(])A F1(name)2.5 E F0([)2.5 E F1(name)A F0(...])2.5 E
--.4(Wi)144 256.8 S .173(th no options, indicate ho).4 F 2.673(we)-.25 G
-(ach)-2.673 E F1(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
-F3<ad74>144 268.8 Q F0 .843(option is used,)3.343 F F3(type)3.343 E F0
-.843(prints a string which is one of)3.343 F F1(alias)3.343 E F0(,).27 E
-F1 -.1(ke)3.343 G(ywor)-.2 E(d)-.37 E F0(,).77 E F1(function)3.343 E F0
-(,).24 E F1 -.2(bu)3.342 G(iltin).2 E F0 3.342(,o).24 G(r)-3.342 E F1
-(\214le)5.252 E F0(if)3.522 E F1(name)144.36 280.8 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 F1
-(name)2.947 E F0 .087(is not)2.767 F .119
-(found, then nothing is printed, and an e)144 292.8 R .118
-(xit status of f)-.15 F .118(alse is returned.)-.1 F .118(If the)5.118 F
-F3<ad70>2.618 E F0 .118(option is used,)2.618 F F3(type)2.618 E F0 .855
-(either returns the name of the disk \214le that w)144 304.8 R .855
-(ould be e)-.1 F -.15(xe)-.15 G .855(cuted if).15 F F1(name)3.715 E F0
-.855(were speci\214ed as a com-)3.535 F .641(mand name, or nothing if)
-144 316.8 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 F1(\214le)3.14 E F0 5.64(.T).18 G(he)-5.64 E
-F3<ad50>3.14 E F0 .64(option forces a)3.14 F F2 -.666(PA)3.14 G(TH)-.189
-E F0 .112(search for each)144 328.8 R F1(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 F1(\214le)2.613 E F0 5.113(.I)
-.18 G 2.613(fac)-5.113 G .113(ommand is hashed,)-2.613 F F3<ad70>2.613 E
-F0(and)144 340.8 Q F3<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 F2
--.666(PA)2.944 G(TH)-.189 E F4(.)A F0 .444(If the)4.944 F F3<ad61>2.944
-E F0(option)2.944 E .265(is used,)144 352.8 R F3(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 F1(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 364.8 R F3<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 376.8 R F3<ad61>3.048 E F0 5.548(.T)C(he)
--5.548 E F3<ad66>3.048 E F0 .549
-(option suppresses shell function lookup, as with the)3.048 F F3
-(command)3.049 E F0 -.2(bu)144 388.8 S(iltin.).2 E F3(type)5 E F0
+(original v)144 417.6 R 1.1
+(alues in a child process when it is created.)-.25 F 1.1
+(The return status is f)6.1 F 1.1(alse if an)-.1 F(y)-.15 E F2(sigspec)
+3.94 E F0(is)3.91 E(in)144 429.6 Q -.25(va)-.4 G(lid; otherwise).25 E F1
+(trap)2.5 E F0(returns true.)2.5 E F1(type)108 446.4 Q F0([)2.5 E F1
+(\255aftpP)A F0(])A F2(name)2.5 E F0([)2.5 E F2(name)A F0(...])2.5 E -.4
+(Wi)144 458.4 S .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 470.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.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 482.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 494.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 506.4 R .855
+(ould be e)-.1 F -.15(xe)-.15 G .855(cuted if).15 F F2(name)3.715 E F0
+.855(were speci\214ed as a com-)3.535 F .64(mand name, or nothing if)144
+518.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 530.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 542.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 554.4 R F1(type)2.765
+E F0 .265(prints all of the places that contain an e)2.765 F -.15(xe)
+-.15 G .265(cutable named).15 F F2(name)2.765 E F0 5.265(.T).18 G .265
+(his includes aliases)-5.265 F .426(and functions, if and only if the)
+144 566.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 578.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 590.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 F3(ulimit)108
-405.6 Q F0([)2.5 E F3(\255SHacde\214lmnpqrstuvx)A F0([)2.5 E F1(limit)A
-F0(]])A(Pro)144 417.6 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
+(guments are found, f)-.18 E(alse if none are found.)-.1 E F1(ulimit)108
+607.2 Q F0([)2.5 E F1(\255HST)A(abcde\214lmnpqrstuvx)-.92 E F0([)2.5 E
+F2(limit)A F0(]])A(Pro)144 619.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 429.6 R 3.443(ws)-.25 G .943(uch control.)-3.443 F
-(The)5.943 E F3<ad48>3.443 E F0(and)3.443 E F3<ad53>3.444 E F0 .944
+.944(that allo)144 631.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(gi)
-144 441.6 Q -.15(ve)-.25 G 2.709(nr).15 G 2.709(esource. A)-2.709 F .208
+144 643.2 Q -.15(ve)-.25 G 2.708(nr).15 G 2.708(esource. A)-2.708 F .208
 (hard limit cannot be increased by a non-root user once it is set; a so\
-ft limit may)2.709 F .425(be increased up to the v)144 453.6 R .425
-(alue of the hard limit.)-.25 F .426(If neither)5.425 F F3<ad48>2.926 E
-F0(nor)2.926 E F3<ad53>2.926 E F0 .426
-(is speci\214ed, both the soft and)2.926 F .139(hard limits are set.)144
-465.6 R .139(The v)5.139 F .139(alue of)-.25 F F1(limit)2.729 E F0 .139
+ft limit may)2.708 F .426(be increased up to the v)144 655.2 R .426
+(alue of the hard limit.)-.25 F .425(If neither)5.426 F F1<ad48>2.925 E
+F0(nor)2.925 E F1<ad53>2.925 E F0 .425
+(is speci\214ed, both the soft and)2.925 F .139(hard limits are set.)144
+667.2 R .139(The v)5.139 F .139(alue of)-.25 F F2(limit)2.729 E F0 .139
 (can be a number in the unit speci\214ed for the resource or one)3.319 F
-.741(of the special v)144 477.6 R(alues)-.25 E F3(hard)3.241 E F0(,)A F3
-(soft)3.241 E F0 3.241(,o)C(r)-3.241 E F3(unlimited)3.241 E F0 3.241(,w)
+.742(of the special v)144 679.2 R(alues)-.25 E F1(hard)3.242 E F0(,)A F1
+(soft)3.241 E F0 3.241(,o)C(r)-3.241 E F1(unlimited)3.241 E F0 3.241(,w)
 C .741(hich stand for the current hard limit, the current)-3.241 F .78
-(soft limit, and no limit, respecti)144 489.6 R -.15(ve)-.25 G(ly).15 E
-5.78(.I)-.65 G(f)-5.78 E F1(limit)3.37 E F0 .78
+(soft limit, and no limit, respecti)144 691.2 R -.15(ve)-.25 G(ly).15 E
+5.78(.I)-.65 G(f)-5.78 E F2(limit)3.37 E F0 .78
 (is omitted, the current v)3.96 F .78(alue of the soft limit of the)-.25
-F .498(resource is printed, unless the)144 501.6 R F3<ad48>2.999 E F0
-.499(option is gi)2.999 F -.15(ve)-.25 G 2.999(n. When).15 F .499
+F .499(resource is printed, unless the)144 703.2 R F1<ad48>2.999 E F0
+.499(option is gi)2.999 F -.15(ve)-.25 G 2.999(n. When).15 F .498
 (more than one resource is speci\214ed, the)2.999 F
-(limit name and unit are printed before the v)144 513.6 Q 2.5
-(alue. Other)-.25 F(options are interpreted as follo)2.5 E(ws:)-.25 E F3
-<ad61>144 525.6 Q F0(All current limits are reported)25.3 E F3<ad63>144
-537.6 Q F0(The maximum size of core \214les created)25.86 E F3<ad64>144
-549.6 Q F0(The maximum size of a process')24.74 E 2.5(sd)-.55 G(ata se)
--2.5 E(gment)-.15 E F3<ad65>144 561.6 Q F0
-(The maximum scheduling priority \("nice"\))25.86 E F3<ad66>144 573.6 Q
-F0(The maximum size of \214les written by the shell and its children)
-26.97 E F3<ad69>144 585.6 Q F0(The maximum number of pending signals)
-27.52 E F3<ad6c>144 597.6 Q F0(The maximum size that may be lock)27.52 E
-(ed into memory)-.1 E F3<ad6d>144 609.6 Q F0
-(The maximum resident set size)21.97 E F3<ad6e>144 621.6 Q F0 .791(The \
-maximum number of open \214le descriptors \(most systems do not allo)
-24.74 F 3.29(wt)-.25 G .79(his v)-3.29 F .79(alue to)-.25 F(be set\))180
-633.6 Q F3<ad70>144 645.6 Q F0
-(The pipe size in 512-byte blocks \(this may not be set\))24.74 E F3
-<ad71>144 657.6 Q F0
-(The maximum number of bytes in POSIX message queues)24.74 E F3<ad72>144
-669.6 Q F0(The maximum real-time scheduling priority)25.86 E F3<ad73>144
-681.6 Q F0(The maximum stack size)26.41 E F3<ad74>144 693.6 Q F0
-(The maximum amount of cpu time in seconds)26.97 E F3<ad75>144 705.6 Q
-F0(The maximum number of processes a)24.74 E -.25(va)-.2 G
-(ilable to a single user).25 E F3<ad76>144 717.6 Q F0
-(The maximum amount of virtual memory a)25.3 E -.25(va)-.2 G
-(ilable to the shell).25 E(GNU Bash-3.0)72 768 Q(2004 Apr 20)148.735 E
-(18)198.725 E 0 Cg EP
+(limit name and unit are printed before the v)144 715.2 Q 2.5
+(alue. Other)-.25 F(options are interpreted as follo)2.5 E(ws:)-.25 E
+(GNU Bash-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<ad78>144 84 Q F0(The maximum number of \214le locks)
-25.3 E(If)144 100.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 112.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 124.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 136.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
-148.8 S .5 -.25(ew l)-2.5 H(imit.).25 E F1(umask)108 165.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 177.6 R F2(mode)2.7 E F0
+/Times-Bold@0 SF<ad61>144 84 Q F0(All current limits are reported)25.3 E
+F1<ad62>144 96 Q F0(The maximum sock)24.74 E(et b)-.1 E(uf)-.2 E
+(fer size)-.25 E F1<ad63>144 108 Q F0
+(The maximum size of core \214les created)25.86 E F1<ad64>144 120 Q F0
+(The maximum size of a process')24.74 E 2.5(sd)-.55 G(ata se)-2.5 E
+(gment)-.15 E F1<ad65>144 132 Q F0
+(The maximum scheduling priority \("nice"\))25.86 E F1<ad66>144 144 Q F0
+(The maximum size of \214les written by the shell and its children)26.97
+E F1<ad69>144 156 Q F0(The maximum number of pending signals)27.52 E F1
+<ad6c>144 168 Q F0(The maximum size that may be lock)27.52 E
+(ed into memory)-.1 E F1<ad6d>144 180 Q F0
+(The maximum resident set size)21.97 E F1<ad6e>144 192 Q F0 .791(The ma\
+ximum 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
+204 Q F1<ad70>144 216 Q F0
+(The pipe size in 512-byte blocks \(this may not be set\))24.74 E F1
+<ad71>144 228 Q F0(The maximum number of bytes in POSIX message queues)
+24.74 E F1<ad72>144 240 Q F0(The maximum real-time scheduling priority)
+25.86 E F1<ad73>144 252 Q F0(The maximum stack size)26.41 E F1<ad74>144
+264 Q F0(The maximum amount of cpu time in seconds)26.97 E F1<ad75>144
+276 Q F0(The maximum number of processes a)24.74 E -.25(va)-.2 G
+(ilable to a single user).25 E F1<ad76>144 288 Q F0
+(The maximum amount of virtual memory a)25.3 E -.25(va)-.2 G
+(ilable to the shell).25 E F1<ad78>144 300 Q F0
+(The maximum number of \214le locks)25.3 E F1<ad54>144 312 Q F0
+(The maximum number of threads)23.63 E(If)144 328.8 Q/F2 10
+/Times-Italic@0 SF(limit)2.933 E F0 .343(is gi)3.523 F -.15(ve)-.25 G
+.343(n, it is the ne).15 F 2.843(wv)-.25 G .343
+(alue of the speci\214ed resource \(the)-3.093 F F1<ad61>2.843 E F0 .343
+(option is display only\).)2.843 F .343(If no)5.343 F .175(option is gi)
+144 340.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 352.8
+Q F1<ad70>2.516 E F0 2.516(,w)C .016
+(hich is in units of 512-byte blocks, and)-2.516 F F1<ad54>2.516 E F0(,)
+A F1<ad62>2.515 E F0(,)A F1<ad6e>2.515 E F0 2.515(,a)C(nd)-2.515 E F1
+<ad75>2.515 E F0 2.515(,w)C .015(hich are unscaled v)-2.515 F(al-)-.25 E
+3.787(ues. The)144 364.8 R 1.287(return status is 0 unless an in)3.787 F
+-.25(va)-.4 G 1.287(lid option or ar).25 F 1.287
+(gument is supplied, or an error occurs)-.18 F(while setting a ne)144
+376.8 Q 2.5(wl)-.25 G(imit.)-2.5 E F1(umask)108 393.6 Q F0([)2.5 E F1
+<ad70>A F0 2.5(][)C F1<ad53>-2.5 E F0 2.5(][)C F2(mode)-2.5 E F0(])A .2
+(The user \214le-creation mask is set to)144 405.6 R F2(mode)2.7 E F0
 5.2(.I).18 G(f)-5.2 E F2(mode)3.08 E F0(be)2.88 E .2
 (gins with a digit, it is interpreted as an octal)-.15 F .066(number; o\
 therwise it is interpreted as a symbolic mode mask similar to that acce\
-pted by)144 189.6 R F2 -.15(ch)2.566 G(mod).15 E F0(\(1\).).77 E(If)144
-201.6 Q F2(mode)3.262 E F0 .382(is omitted, the current v)3.062 F .382
+pted by)144 417.6 R F2 -.15(ch)2.566 G(mod).15 E F0(\(1\).).77 E(If)144
+429.6 Q F2(mode)3.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 213.6 R .547
+(printed in symbolic form; the def)144 441.6 R .547
 (ault output is an octal number)-.1 F 5.547(.I)-.55 G 3.047(ft)-5.547 G
 (he)-3.047 E F1<ad70>3.047 E F0 .547(option is supplied, and)3.047 F F2
-(mode)144.38 225.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 237.6 Q
+(mode)144.38 453.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 465.6 Q
 (as successfully changed or if no)-.1 E F2(mode)2.5 E F0(ar)2.5 E
 (gument w)-.18 E(as supplied, and f)-.1 E(alse otherwise.)-.1 E F1
-(unalias)108 254.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 266.4 Q 1.955 -.15(ve e)-.15 H(ach).15 E F2(name)
+(unalias)108 482.4 Q F0<5bad>2.5 E F1(a)A F0 2.5(][)C F2(name)-2.5 E F0
+(...])2.5 E(Remo)144 494.4 Q 1.955 -.15(ve e)-.15 H(ach).15 E F2(name)
 4.155 E F0 1.655(from the list of de\214ned aliases.)4.155 F(If)6.655 E
 F1<ad61>4.155 E F0 1.655(is supplied, all alias de\214nitions are)4.155
-F(remo)144 278.4 Q -.15(ve)-.15 G 2.5(d. The).15 F(return v)2.5 E
+F(remo)144 506.4 Q -.15(ve)-.15 G 2.5(d. The).15 F(return v)2.5 E
 (alue is true unless a supplied)-.25 E F2(name)2.86 E F0
-(is not a de\214ned alias.)2.68 E F1(unset)108 295.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 307.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 319.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 331.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 343.2 R .903
+(is not a de\214ned alias.)2.68 E F1(unset)108 523.2 Q F0<5bad>2.5 E F1
+(fv)A F0 2.5(][)C F2(name)-2.5 E F0(...])2.5 E -.15(Fo)144 535.2 S 3.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 547.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 559.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 571.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 355.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 583.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
-367.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
+595.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 379.2 Q F2(name)2.86 E F0
-(is readonly)2.68 E(.)-.65 E F1(wait)108 396 Q F0([)2.5 E F2 2.5(n.)C
-(..)-2.5 E F0(])A -.8(Wa)144 408 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 607.2 Q F2(name)2.86 E F0
+(is readonly)2.68 E(.)-.65 E F1(wait)108 624 Q F0([)2.5 E F2 2.5(n.)C
+(..)-2.5 E F0(])A -.8(Wa)144 636 S .288
 (it for each speci\214ed process and return its termination status.).8 F
-(Each)5.288 E F2(n)3.148 E F0 .288(may be a process ID or a)3.028 F .722
-(job speci\214cation; if a job spec is gi)144 420 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 648 R -.15(ve)-.25 G .722
 (n, all processes in that job').15 F 3.222(sp)-.55 G .722(ipeline are w)
--3.222 F .722(aited for)-.1 F 5.722(.I)-.55 G(f)-5.722 E F2(n)3.582 E F0
-(is)3.462 E 1.265(not gi)144 432 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 444 R .457
+-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 660 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 .456
+(speci\214es a non-e)144 672 R .457
 (xistent process or job, the return status is 127.)-.15 F .457
-(Otherwise, the return status is the)5.457 F -.15(ex)144 456 S
+(Otherwise, the return status is the)5.457 F -.15(ex)144 684 S
 (it status of the last process or job w).15 E(aited for)-.1 E(.)-.55 E
-/F5 10.95/Times-Bold@0 SF(SEE ALSO)72 472.8 Q F0(bash\(1\), sh\(1\))108
-484.8 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 700.8 Q F0(bash\(1\), sh\(1\))108
+712.8 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 837c912a34bdc0a090b6fd32d817824ac9fbcd48..e1b70511cb3a80d916b0458fc09389abc85ab0ff 100644 (file)
@@ -1,9 +1,9 @@
 %!PS-Adobe-3.0
-%%Creator: groff version 1.19.1
-%%CreationDate: Tue Mar  4 08:37:56 2008
+%%Creator: groff version 1.19.2
+%%CreationDate: Tue Apr  8 09:14:15 2008
 %%DocumentNeededResources: font Times-Roman
 %%+ font Times-Bold
-%%DocumentSuppliedResources: procset grops 1.19 1
+%%DocumentSuppliedResources: procset grops 1.19 2
 %%Pages: 1
 %%PageOrder: Ascend
 %%DocumentMedia: Default 595 842 0 () ()
@@ -13,7 +13,7 @@
 %%PageMedia: Default
 %%EndDefaults
 %%BeginProlog
-%%BeginResource: procset grops 1.19 1
+%%BeginResource: procset grops 1.19 2
 %!PS-Adobe-3.0 Resource-ProcSet
 /setpacking where{
 pop
@@ -82,7 +82,7 @@ LS{
 /EP{
 level0 restore
 showpage
-}bind def
+}def
 /DA{
 newpath arcn stroke
 }bind def
@@ -176,7 +176,6 @@ userdict begin
 /setpagedevice{}def
 }bind def
 /PEND{
-clear
 countdictstack CNT sub{end}repeat
 level1 restore
 }bind def
index 096faa7a78a6c18223bf124318daa9aa78d44c6d..1e0036862159fbfc39dc45e7835c7b70e2338a4a 100644 (file)
@@ -2,9 +2,9 @@
 Copyright (C) 1988-2008 Free Software Foundation, Inc.
 @end ignore
 
-@set LASTCHANGE Sat Apr  5 22:13:08 EDT 2008
+@set LASTCHANGE Sat Apr 12 17:15:43 EDT 2008
 
 @set EDITION 3.2
 @set VERSION 3.2
-@set UPDATED 5 April 2008
+@set UPDATED 12 April 2008
 @set UPDATED-MONTH April 2008
index 02791e7e0b333c83ea2705e7967aa1f9d12ca420..096faa7a78a6c18223bf124318daa9aa78d44c6d 100644 (file)
@@ -2,9 +2,9 @@
 Copyright (C) 1988-2008 Free Software Foundation, Inc.
 @end ignore
 
-@set LASTCHANGE Thu Mar 27 22:19:20 EDT 2008
+@set LASTCHANGE Sat Apr  5 22:13:08 EDT 2008
 
 @set EDITION 3.2
 @set VERSION 3.2
-@set UPDATED 27 March 2008
-@set UPDATED-MONTH March 2008
+@set UPDATED 5 April 2008
+@set UPDATED-MONTH April 2008
diff --git a/error.c b/error.c
index ceedc2c93a5c79915ef59b80aa3518ba2b3c74d1..8760dd84347931ac63731391cc95c1d382bd3735 100644 (file)
--- a/error.c
+++ b/error.c
@@ -1,5 +1,6 @@
 /* error.c -- Functions for handling errors. */
-/* Copyright (C) 1993-2006 Free Software Foundation, Inc.
+
+/* Copyright (C) 1993-2008 Free Software Foundation, Inc.
 
    This file is part of GNU Bash, the Bourne Again SHell.
 
index c83a9861195561906c2b9bc1a75b8a915c63658f..ceedc2c93a5c79915ef59b80aa3518ba2b3c74d1 100644 (file)
--- a/error.c~
+++ b/error.c~
@@ -108,7 +108,7 @@ get_name_for_error ()
       if (bash_source_v && array_p (bash_source_v) &&
          (bash_source_a = array_cell (bash_source_v)))
        name = array_reference (bash_source_a, 0);
-      if (name == 0)
+      if (name == 0 || *name == '\0')  /* XXX - was just name == 0 */
 #endif
        name = dollar_vars[0];
     }
index bec68a751dbf88fc36982815a287a2081a7de4e9..b5705cb42766f9951f0c6baef01d424a4099cf0b 100644 (file)
@@ -91,6 +91,8 @@ basename_builtin (list)
 }
 
 char *basename_doc[] = {
+       "Return non-directory portion of pathname.",
+       "",
        "The STRING is converted to a filename corresponding to the last",
        "pathname component in STRING.  If the suffix string SUFFIX is",
        "supplied, it is removed.",
index 7f254c7679f59e23f763f12a8c96ba889f708fd1..bec68a751dbf88fc36982815a287a2081a7de4e9 100644 (file)
@@ -11,6 +11,7 @@
 #include <stdio.h>
 #include "builtins.h"
 #include "shell.h"
+#include "common.h"
 
 basename_builtin (list)
      WORD_LIST *list;
index 9dd1d1a743f71d20abe99fc2cc3e73f44d913dca..2a580951059d2f7a8f3fdbaddaef0b5c2d02f037 100644 (file)
@@ -84,6 +84,8 @@ WORD_LIST *list;
 }
 
 char *cat_doc[] = {
+       "Display files.",
+       "",
        "Read each FILE and display it on the standard output.   If any",
        "FILE is `-' or if no FILE argument is given, the standard input",
        "is read.",
diff --git a/examples/loadables/cat.c~ b/examples/loadables/cat.c~
new file mode 100644 (file)
index 0000000..9dd1d1a
--- /dev/null
@@ -0,0 +1,100 @@
+/*
+ * cat replacement
+ *
+ * no options - the way cat was intended
+ */
+
+#include <fcntl.h>
+#include <errno.h>
+
+#include "builtins.h"
+#include "shell.h"
+
+#ifndef errno
+extern int errno;
+#endif
+
+extern char *strerror ();
+extern char **make_builtin_argv ();
+
+static int
+fcopy(fd)
+int    fd;
+{
+       char    buf[1024], *s;
+       int     n, w, e;
+
+       while (n = read(fd, buf, sizeof (buf))) {
+               w = write(1, buf, n);
+               if (w != n) {
+                       e = errno;
+                       write(2, "cat: write error: ", 18);
+                       s = strerror(e);
+                       write(2, s, strlen(s));
+                       write(2, "\n", 1);
+                       return 1;
+               }
+       }
+       return 0;
+}
+
+cat_main (argc, argv)
+int    argc;
+char   **argv;
+{
+       int     i, fd, r;
+       char    *s;
+
+       if (argc == 1)
+               return (fcopy(0));
+
+       for (i = r = 1; i < argc; i++) {
+               if (argv[i][0] == '-' && argv[i][1] == '\0')
+                       fd = 0;
+               else {
+                       fd = open(argv[i], O_RDONLY, 0666);
+                       if (fd < 0) {
+                               s = strerror(errno);
+                               write(2, "cat: cannot open ", 17);
+                               write(2, argv[i], strlen(argv[i]));
+                               write(2, ": ", 2);
+                               write(2, s, strlen(s));
+                               write(2, "\n", 1);
+                               continue;
+                       }
+               }
+               r = fcopy(fd);
+               if (fd != 0)
+                       close(fd);
+       }
+       return (r);
+}
+
+cat_builtin(list)
+WORD_LIST *list;
+{
+       char    **v;
+       int     c, r;
+
+       v = make_builtin_argv(list, &c);
+       r = cat_main(c, v);
+       free(v);
+
+       return r;
+}
+
+char *cat_doc[] = {
+       "Read each FILE and display it on the standard output.   If any",
+       "FILE is `-' or if no FILE argument is given, the standard input",
+       "is read.",
+       (char *)0
+};
+
+struct builtin cat_struct = {
+       "cat",
+       cat_builtin,
+       BUILTIN_ENABLED,
+       cat_doc,
+       "cat [-] [file ...]",
+       0
+};
index f358cba3c565c9e24ad1db34491f410cbc525cef..47d7d3ef4af39fd59b64ebbbcc78b16880236a90 100644 (file)
@@ -360,6 +360,8 @@ _cut_strsep(stringp, delim)
 }
 
 static char *cut_doc[] = {
+       "Select portions of lines.",
+       "",
        "Select portions of each line (as specified by LIST) from each FILE",
        "(by default, the standard input), and write them to the standard output.",
        "Items specified by LIST are either column positions or fields delimited",
index d874034a854aa67fe48ec136a91892ecd2da22a7..f358cba3c565c9e24ad1db34491f410cbc525cef 100644 (file)
@@ -63,6 +63,7 @@ static const char sccsid[] = "@(#)cut.c       8.3 (Berkeley) 5/4/95";
 #include "builtins.h"
 #include "shell.h"
 #include "bashgetopt.h"
+#include "common.h"
 
 #if !defined (errno)
 extern int     errno;
index 129ae7a992d5fafab1ae2940d39b332ccacb91a1..3a7c4b3bf70e89e80bbae5758693c204fd102925 100644 (file)
@@ -79,6 +79,8 @@ dirname_builtin (list)
 }
 
 char *dirname_doc[] = {
+       "Display directory portion of pathname.",
+       "",
        "The STRING is converted to the name of the directory containing",      
        "the filename corresponding to the last pathname component in STRING.",
        (char *)NULL
index 6159560e54f1538fe8b2b730f4cf2280abe613b8..129ae7a992d5fafab1ae2940d39b332ccacb91a1 100644 (file)
@@ -11,6 +11,7 @@
 #include <stdio.h>
 #include "builtins.h"
 #include "shell.h"
+#include "common.h"
 
 dirname_builtin (list)
      WORD_LIST *list;
index 99d73e2770554c6540ca43978cc2e63ea9ee58b8..11b7575f1dd2bd685cbcdf87f9915d13a93ceaa9 100644 (file)
@@ -376,6 +376,8 @@ finfo_builtin(list)
 }
 
 static char *finfo_doc[] = {
+  "Display information about file attributes.",
+  "",
   "Display information about each FILE.  Only single operators should",
   "be supplied.  If no options are supplied, a summary of the info",
   "available about each FILE is printed.  If FILE is of the form",
index c1682eda4756b80826ea70dd1ecf0ab107124e08..99d73e2770554c6540ca43978cc2e63ea9ee58b8 100644 (file)
@@ -12,6 +12,7 @@
 #include <pwd.h>
 #include <grp.h>
 #include <errno.h>
+#include "posixtime.h"
 
 #include "bashansi.h"
 #include "shell.h"
index 0bf20797daf23da9efecc228b890b8bca1524c4f..d3dec415ad22372d4b71050202a047c3138efd10 100644 (file)
@@ -1343,6 +1343,8 @@ getconf_one(list)
 }
 
 static char *getconf_doc[] = {
+       "Display values of system limits and options.",
+       "",
        "getconf writes the current value of a configurable system limit or",
        "option variable to the standard output.",
        (char *)NULL
diff --git a/examples/loadables/getconf.c~ b/examples/loadables/getconf.c~
new file mode 100644 (file)
index 0000000..0bf2079
--- /dev/null
@@ -0,0 +1,1488 @@
+/*
+ * ORIGINAL COPYRIGHT STATEMENT:
+ *
+ * Copyright (c) 1994 Winning Strategies, Inc.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ *    must display the following acknowledgement:
+ *      This product includes software developed by Winning Strategies, Inc.
+ * 4. The name of the author may not be used to endorse or promote products
+ *    derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+/*
+ * POSIX.2 getconf utility
+ *
+ * Originally Written by:
+ *     J.T. Conklin (jtc@wimsey.com), Winning Strategies, Inc.
+ *
+ * Heavily modified for inclusion in bash by
+ *     Chet Ramey <chet@po.cwru.edu>
+ */
+
+#ifdef HAVE_CONFIG_H
+#  include <config.h>
+#endif
+
+#ifdef HAVE_SYS_PARAM_H
+#  include <sys/param.h>
+#endif
+
+#include <stdio.h>
+#ifdef HAVE_LIMITS_H
+#include <limits.h>
+#endif
+#ifdef HAVE_LOCALE_H
+#include <locale.h>
+#endif
+#ifdef HAVE_UNISTD_H
+#include <unistd.h>
+#endif
+#include <errno.h>
+
+#include "typemax.h"
+
+#include "bashansi.h"
+#include "shell.h"
+#include "builtins.h"
+#include "stdc.h"
+#include "common.h"
+#include "bashgetopt.h"
+
+#include "getconf.h"
+
+#ifndef errno
+extern int errno;
+#endif
+
+struct conf_variable
+{
+  const char *name;
+  enum { SYSCONF, CONFSTR, PATHCONF, CONSTANT, LLCONST, G_UNDEF } type;
+  long value;
+};
+
+#ifndef HAVE_CONFSTR
+static size_t confstr __P((int, char *, size_t));
+#endif
+
+#ifndef HAVE_SYSCONF
+static long sysconf __P((int));
+#endif
+
+#ifndef HAVE_PATHCONF
+static long pathconf __P((const char *, int));
+#endif
+
+/* Hack to `encode' values wider than long into a conf_variable */
+#define VAL_LLONG_MIN          -1000
+#define VAL_LLONG_MAX          -1001
+#define VAL_ULLONG_MAX         -1002
+
+static const struct conf_variable conf_table[] =
+{
+  /* POSIX.2 Configurable Variable Values */
+  { "PATH",                    CONFSTR,        _CS_PATH                },
+  { "CS_PATH",                 CONFSTR,        _CS_PATH                },
+
+  /* POSIX.1 Configurable Variable Values (only Solaris?) */
+#if defined (_CS_LFS_CFLAGS)
+  { "LFS_CFLAGS",              CONFSTR,        _CS_LFS_CFLAGS          },
+  { "LFS_LDFLAGS",             CONFSTR,        _CS_LFS_LDFLAGS         },
+  { "LFS_LIBS",                        CONFSTR,        _CS_LFS_LIBS            },
+  { "LFS_LINTFLAGS",           CONFSTR,        _CS_LFS_LINTFLAGS       },
+#endif
+#if defined (_CS_LFS64_CFLAGS)
+  { "LFS64_CFLAGS",            CONFSTR,        _CS_LFS64_CFLAGS        },
+  { "LFS64_LDFLAGS",           CONFSTR,        _CS_LFS64_LDFLAGS       },
+  { "LFS64_LIBS",              CONFSTR,        _CS_LFS64_LIBS          },
+  { "LFS64_LINTFLAGS",         CONFSTR,        _CS_LFS64_LINTFLAGS     },
+#endif
+
+  /* Single UNIX Specification version 2 Configurable Variable Values.  The
+     SYSCONF variables say whether or not the appropriate CONFSTR variables
+     are available. */
+#if defined (_SC_XBS5_ILP32_OFF32)
+  { "XBS5_ILP32_OFF32",                        SYSCONF,        _SC_XBS5_ILP32_OFF32    },
+  { "_XBS5_ILP32_OFF32",               SYSCONF,        _SC_XBS5_ILP32_OFF32    },
+#endif
+#if defined (_CS_XBS5_ILP32_OFF32_CFLAGS)
+  { "XBS5_ILP32_OFF32_CFLAGS",         CONFSTR,        _CS_XBS5_ILP32_OFF32_CFLAGS },
+  { "XBS5_ILP32_OFF32_LDFLAGS",                CONFSTR,        _CS_XBS5_ILP32_OFF32_LDFLAGS },
+  { "XBS5_ILP32_OFF32_LIBS",           CONFSTR,        _CS_XBS5_ILP32_OFF32_LIBS },
+  { "XBS5_ILP32_OFF32_LINTFLAGS",       CONFSTR,       _CS_XBS5_ILP32_OFF32_LINTFLAGS },
+#endif
+#if defined (_SC_XBS5_ILP32_OFFBIG)
+  { "XBS5_ILP32_OFFBIG",               SYSCONF,        _SC_XBS5_ILP32_OFFBIG   },
+  { "_XBS5_ILP32_OFFBIG",              SYSCONF,        _SC_XBS5_ILP32_OFFBIG   },
+#endif
+#if defined (_CS_XBS5_ILP32_OFFBIG_CFLAGS)
+  { "XBS5_ILP32_OFFBIG_CFLAGS",        CONFSTR,        _CS_XBS5_ILP32_OFFBIG_CFLAGS },
+  { "XBS5_ILP32_OFFBIG_LDFLAGS",       CONFSTR,        _CS_XBS5_ILP32_OFFBIG_LDFLAGS },
+  { "XBS5_ILP32_OFFBIG_LIBS",          CONFSTR,        _CS_XBS5_ILP32_OFFBIG_LIBS },
+  { "XBS5_ILP32_OFFBIG_LINTFLAGS",      CONFSTR,       _CS_XBS5_ILP32_OFFBIG_LINTFLAGS },
+#endif
+#if defined (_SC_XBS5_LP64_OFF64)
+  { "XBS5_LP64_OFF64",                 SYSCONF,        _SC_XBS5_LP64_OFF64     },
+  { "_XBS5_LP64_OFF64",                        SYSCONF,        _SC_XBS5_LP64_OFF64     },
+#endif
+#if defined (_CS_XBS5_LP64_OFF64_CFLAGS)
+  { "XBS5_LP64_OFF64_CFLAGS",          CONFSTR,        _CS_XBS5_LP64_OFF64_CFLAGS },
+  { "XBS5_LP64_OFF64_LDFLAGS",         CONFSTR,        _CS_XBS5_LP64_OFF64_LDFLAGS },
+  { "XBS5_LP64_OFF64_LIBS",            CONFSTR,        _CS_XBS5_LP64_OFF64_LIBS },
+  { "XBS5_LP64_OFF64_LINTFLAGS",       CONFSTR,        _CS_XBS5_LP64_OFF64_LINTFLAGS },
+#endif
+#if defined (_SC_XBS5_LPBIG_OFFBIG)
+  { "XBS5_LPBIG_OFFBIG",               SYSCONF,        _SC_XBS5_LPBIG_OFFBIG   },
+  { "_XBS5_LPBIG_OFFBIG",              SYSCONF,        _SC_XBS5_LPBIG_OFFBIG   },
+#endif
+#if defined (_CS_XBS5_LPBIG_OFFBIG_CFLAGS)
+  { "XBS5_LPBIG_OFFBIG_CFLAGS",        CONFSTR,        _CS_XBS5_LPBIG_OFFBIG_CFLAGS },
+  { "XBS5_LPBIG_OFFBIG_LDFLAGS",       CONFSTR,        _CS_XBS5_LPBIG_OFFBIG_LDFLAGS },
+  { "XBS5_LPBIG_OFFBIG_LIBS",          CONFSTR,        _CS_XBS5_LPBIG_OFFBIG_LIBS },
+  { "XBS5_LPBIG_OFFBIG_LINTFLAGS",      CONFSTR,       _CS_XBS5_LPBIG_OFFBIG_LINTFLAGS },
+#endif
+
+  /* Single UNIX Specification version 3 (POSIX.1-200x) Configurable Variable
+     Values.  The SYSCONF variables say whether or not the appropriate CONFSTR
+     variables are available. */
+
+#if defined (_SC_POSIX_V6_ILP32_OFF32)
+  { "_POSIX_V6_ILP32_OFF32",           SYSCONF,        _SC_POSIX_V6_ILP32_OFF32  },
+#endif
+#if defined (_CS_POSIX_V6_ILP32_OFF32_CFLAGS)
+  { "POSIX_V6_ILP32_OFF32_CFLAGS",     CONFSTR,        _CS_POSIX_V6_ILP32_OFF32_CFLAGS },
+  { "POSIX_V6_ILP32_OFF32_LDFLAGS",    CONFSTR,        _CS_POSIX_V6_ILP32_OFF32_LDFLAGS },
+  { "POSIX_V6_ILP32_OFF32_LIBS",       CONFSTR,        _CS_POSIX_V6_ILP32_OFF32_LIBS },
+#endif
+#if defined (_CS_POSIX_V6_ILP32_OFF32_LINTFLAGS)
+  { "POSIX_V6_ILP32_OFF32_LINTFLAGS",  CONFSTR,        _CS_POSIX_V6_ILP32_OFF32_LINTFLAGS },
+#endif
+#if defined (_SC_POSIX_V6_ILP32_OFFBIG)
+  { "_POSIX_V6_ILP32_OFFBIG",          SYSCONF,        _SC_POSIX_V6_ILP32_OFFBIG },
+#endif
+#if defined (_CS_POSIX_V6_ILP32_OFFBIG_CFLAGS)
+  { "POSIX_V6_ILP32_OFFBIG_CFLAGS",    CONFSTR,        _CS_POSIX_V6_ILP32_OFFBIG_CFLAGS },
+  { "POSIX_V6_ILP32_OFFBIG_LDFLAGS",   CONFSTR,        _CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS },
+  { "POSIX_V6_ILP32_OFFBIG_LIBS",      CONFSTR,        _CS_POSIX_V6_ILP32_OFFBIG_LIBS },
+#endif
+#if defined (_CS_POSIX_V6_ILP32_OFFBIG_LINTFLAGS)
+  { "POSIX_V6_ILP32_OFFBIG_LINTFLAGS", CONFSTR,        _CS_POSIX_V6_ILP32_OFFBIG_LINTFLAGS },
+#endif
+#if defined (_SC_POSIX_V6_LP64_OFF64)
+  { "_POSIX_V6_LP64_OFF64",            SYSCONF,        _SC_POSIX_V6_LP64_OFF64   },
+#endif
+#if defined (_CS_POSIX_V6_LP64_OFF64_CFLAGS)
+  { "POSIX_V6_LP64_OFF64_CFLAGS",      CONFSTR,        _CS_POSIX_V6_LP64_OFF64_CFLAGS },
+  { "POSIX_V6_LP64_OFF64_LDFLAGS",     CONFSTR,        _CS_POSIX_V6_LP64_OFF64_LDFLAGS },
+  { "POSIX_V6_LP64_OFF64_LIBS",                CONFSTR,        _CS_POSIX_V6_LP64_OFF64_LIBS },
+#endif
+#if defined (CS_POSIX_V6_LP64_OFF64_LINTFLAGS)
+  { "POSIX_V6_LP64_OFF64_LINTFLAGS",   CONFSTR,        _CS_POSIX_V6_LP64_OFF64_LINTFLAGS },
+#endif
+#if defined (_SC_POSIX_V6_LPBIG_OFFBIG)
+  { "_POSIX_V6_LPBIG_OFFBIG",  SYSCONF,        _SC_POSIX_V6_LPBIG_OFFBIG },
+#endif
+#if defined (_CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS)
+  { "POSIX_V6_LPBIG_OFFBIG_CFLAGS",    CONFSTR,        _CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS },
+  { "POSIX_V6_LPBIG_OFFBIG_LDFLAGS",   CONFSTR,        _CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS },
+  { "POSIX_V6_LPBIG_OFFBIG_LIBS",      CONFSTR,        _CS_POSIX_V6_LPBIG_OFFBIG_LIBS },
+#endif
+#if defined (_CS_POSIX_V6_LPBIG_OFFBIG_LINTFLAGS)
+  { "POSIX_V6_LPBIG_OFFBIG_LINTFLAGS", CONFSTR,        _CS_POSIX_V6_LPBIG_OFFBIG_LINTFLAGS },
+#endif
+
+#if defined (_CS_POSIX_V6_WIDTH_RESTRICTED_ENVS)
+  { "POSIX_6_WIDTH_RESTRICTED_ENVS",   CONFSTR,        _CS_POSIX_V6_WIDTH_RESTRICTED_ENVS },
+#endif
+
+  /* POSIX.2 Utility Limit Minimum Values */
+#ifdef _POSIX2_BC_BASE_MAX
+  { "POSIX2_BC_BASE_MAX",      CONSTANT,       _POSIX2_BC_BASE_MAX     },
+#else
+  { "POSIX2_BC_BASE_MAX",      G_UNDEF,        -1                      },
+#endif
+#ifdef _POSIX2_BC_DIM_MAX
+  { "POSIX2_BC_DIM_MAX",       CONSTANT,       _POSIX2_BC_DIM_MAX      },
+#else
+  { "POSIX2_BC_DIM_MAX",       G_UNDEF,        -1                      },
+#endif
+#ifdef _POSIX2_BC_SCALE_MAX
+  { "POSIX2_BC_SCALE_MAX",     CONSTANT,       _POSIX2_BC_SCALE_MAX    },
+#else
+  { "POSIX2_BC_SCALE_MAX",     G_UNDEF,        -1                      },
+#endif
+#ifdef _POSIX2_BC_STRING_MAX
+  { "POSIX2_BC_STRING_MAX",    CONSTANT,       _POSIX2_BC_STRING_MAX   },
+#else
+  { "POSIX2_BC_STRING_MAX",    G_UNDEF,        -1                      },
+#endif
+#ifdef _POSIX2_CHARCLASS_NAME_MAX
+  { "POSIX2_CHARCLASS_NAME_MAX",       CONSTANT,       _POSIX2_CHARCLASS_NAME_MAX },
+#else
+  { "POSIX2_CHARCLASS_NAME_MAX",       G_UNDEF,        -1                       },
+#endif
+#ifdef _POSIX2_COLL_WEIGHTS_MAX
+  { "POSIX2_COLL_WEIGHTS_MAX", CONSTANT,       _POSIX2_COLL_WEIGHTS_MAX },
+#else
+  { "POSIX2_COLL_WEIGHTS_MAX", G_UNDEF,        -1                       },
+#endif
+#if defined (_POSIX2_EQUIV_CLASS_MAX)
+  { "POSIX2_EQUIV_CLASS_MAX",  CONSTANT,       _POSIX2_EQUIV_CLASS_MAX },
+#endif
+#ifdef _POSIX2_EXPR_NEST_MAX
+  { "POSIX2_EXPR_NEST_MAX",    CONSTANT,       _POSIX2_EXPR_NEST_MAX   },
+#else
+  { "POSIX2_EXPR_NEST_MAX",    G_UNDEF,        -1                      },
+#endif
+#ifdef _POSIX2_LINE_MAX
+  { "POSIX2_LINE_MAX",         CONSTANT,       _POSIX2_LINE_MAX        },
+#else
+  { "POSIX2_LINE_MAX",         G_UNDEF,        -1                      },
+#endif
+#ifdef _POSIX2_RE_DUP_MAX
+  { "POSIX2_RE_DUP_MAX",       CONSTANT,       _POSIX2_RE_DUP_MAX      },
+#else
+  { "POSIX2_RE_DUP_MAX",       G_UNDEF,        -1                      },
+#endif
+#if defined (_POSIX2_VERSION)
+  { "POSIX2_VERSION",          CONSTANT,       _POSIX2_VERSION         },
+#else
+#  if !defined (_SC_2_VERSION)
+  { "POSIX2_VERSION",          G_UNDEF,        -1                      },
+#  endif
+#endif
+
+#ifdef _POSIX2_BC_BASE_MAX
+  { "_POSIX2_BC_BASE_MAX",     CONSTANT,       _POSIX2_BC_BASE_MAX     },
+#else
+  { "_POSIX2_BC_BASE_MAX",     G_UNDEF,        -1                      },
+#endif
+#ifdef _POSIX2_BC_DIM_MAX
+  { "_POSIX2_BC_DIM_MAX",      CONSTANT,       _POSIX2_BC_DIM_MAX      },
+#else
+  { "_POSIX2_BC_DIM_MAX",      G_UNDEF,        -1                      },
+#endif
+#ifdef _POSIX2_BC_SCALE_MAX
+  { "_POSIX2_BC_SCALE_MAX",    CONSTANT,       _POSIX2_BC_SCALE_MAX    },
+#else
+  { "_POSIX2_BC_SCALE_MAX",    G_UNDEF,        -1                      },
+#endif
+#ifdef _POSIX2_BC_STRING_MAX
+  { "_POSIX2_BC_STRING_MAX",   CONSTANT,       _POSIX2_BC_STRING_MAX   },
+#else
+  { "_POSIX2_BC_STRING_MAX",   G_UNDEF,        -1                      },
+#endif
+#ifdef _POSIX2_CHARCLASS_NAME_MAX
+  { "_POSIX2_CHARCLASS_NAME_MAX",      CONSTANT,       _POSIX2_CHARCLASS_NAME_MAX },
+#else
+  { "_POSIX2_CHARCLASS_NAME_MAX",      G_UNDEF,        -1                       },
+#endif
+#ifdef _POSIX2_COLL_WEIGHTS_MAX
+  { "_POSIX2_COLL_WEIGHTS_MAX",        CONSTANT,       _POSIX2_COLL_WEIGHTS_MAX },
+#else
+  { "_POSIX2_COLL_WEIGHTS_MAX",        G_UNDEF,        -1                       },
+#endif
+#if defined (_POSIX2_EQUIV_CLASS_MAX)
+  { "POSIX2_EQUIV_CLASS_MAX",  CONSTANT,       _POSIX2_EQUIV_CLASS_MAX },
+#endif
+#ifdef _POSIX2_EXPR_NEST_MAX
+  { "_POSIX2_EXPR_NEST_MAX",   CONSTANT,       _POSIX2_EXPR_NEST_MAX   },
+#else
+  { "_POSIX2_EXPR_NEST_MAX",   G_UNDEF,        -1                      },
+#endif
+#ifdef _POSIX2_LINE_MAX
+  { "_POSIX2_LINE_MAX",                CONSTANT,       _POSIX2_LINE_MAX        },
+#else
+  { "_POSIX2_LINE_MAX",                G_UNDEF,        -1                      },
+#endif
+#ifdef _POSIX2_RE_DUP_MAX
+  { "_POSIX2_RE_DUP_MAX",      CONSTANT,       _POSIX2_RE_DUP_MAX      },
+#else
+  { "_POSIX2_RE_DUP_MAX",      G_UNDEF,        -1                      },
+#endif
+
+  /* X/OPEN Maxmimum Values */
+#ifdef _XOPEN_IOV_MAX
+  { "_XOPEN_IOV_MAX",          CONSTANT,       _XOPEN_IOV_MAX          },
+#else
+  { "_XOPEN_IOV_MAX",          G_UNDEF,        -1                      },
+#endif
+#ifdef _XOPEN_NAME_MAX
+  { "_XOPEN_NAME_MAX",         CONSTANT,       _XOPEN_NAME_MAX         },
+#else
+  { "_XOPEN_NAME_MAX",         G_UNDEF,        -1                      },
+#endif
+#ifdef _XOPEN_PATH_MAX
+  { "_XOPEN_PATH_MAX",         CONSTANT,       _XOPEN_PATH_MAX         },
+#else
+  { "_XOPEN_PATH_MAX",         G_UNDEF,        -1                      },
+#endif
+
+  /* POSIX.1 Minimum Values */
+#ifdef _POSIX_AIO_LISTIO_MAX
+  { "_POSIX_AIO_LISTIO_MAX",   CONSTANT,       _POSIX_AIO_LISTIO_MAX   },
+#else
+  { "_POSIX_AIO_LISTIO_MAX",   G_UNDEF,        -1                      },
+#endif
+#ifdef _POSIX_AIO_MAX
+  { "_POSIX_AIO_MAX",          CONSTANT,       _POSIX_AIO_MAX          },
+#else
+  { "_POSIX_AIO_MAX",          G_UNDEF,        -1                      },
+#endif
+#ifdef _POSIX_ARG_MAX
+  { "_POSIX_ARG_MAX",          CONSTANT,       _POSIX_ARG_MAX          },
+#else
+  { "_POSIX_ARG_MAX",          G_UNDEF,        -1                      },
+#endif
+#ifdef _POSIX_CHILD_MAX
+  { "_POSIX_CHILD_MAX",                CONSTANT,       _POSIX_CHILD_MAX        },
+#else
+  { "_POSIX_CHILD_MAX",                G_UNDEF,        -1                      },
+#endif  
+#ifdef _POSIX_DELAYTIMER_MAX
+  { "_POSIX_DELAYTIMER_MAX",   CONSTANT,       _POSIX_DELAYTIMER_MAX   },
+#else
+  { "_POSIX_DELAYTIMER_MAX",   G_UNDEF,        -1                      },
+#endif  
+#ifdef _POSIX_HOST_NAME_MAX
+  { "_POSIX_HOST_NAME_MAX",    CONSTANT,       _POSIX_HOST_NAME_MAX    },
+#else
+  { "_POSIX_HOST_NAME_MAX",    G_UNDEF,        -1                      },
+#endif  
+#ifdef _POSIX_LINK_MAX
+  { "_POSIX_LINK_MAX",         CONSTANT,       _POSIX_LINK_MAX         },
+#else
+  { "_POSIX_LINK_MAX",         G_UNDEF,        -1                      },
+#endif  
+#ifdef _POSIX_LOGIN_NAME_MAX
+  { "_POSIX_LOGIN_NAME_MAX",   CONSTANT,       _POSIX_LOGIN_NAME_MAX   },
+#else
+  { "_POSIX_LOGIN_NAME_MAX",   G_UNDEF,        -1                      },
+#endif  
+#ifdef _POSIX_MAX_CANON
+  { "_POSIX_MAX_CANON",                CONSTANT,       _POSIX_MAX_CANON        },
+#else
+  { "_POSIX_MAX_CANON",                G_UNDEF,        -1                      },
+#endif  
+#ifdef _POSIX_MAX_INPUT
+  { "_POSIX_MAX_INPUT",                CONSTANT,       _POSIX_MAX_INPUT        },
+#else
+  { "_POSIX_MAX_INPUT",                G_UNDEF,        -1                      },
+#endif  
+#ifdef _POSIX_MQ_OPEN_MAX
+  { "_POSIX_MQ_OPEN_MAX",      CONSTANT,       _POSIX_MQ_OPEN_MAX      },
+#else
+  { "_POSIX_MQ_OPEN_MAX",      G_UNDEF,        -1                      },
+#endif  
+#ifdef _POSIX_MQ_PRIO_MAX
+  { "_POSIX_MQ_PRIO_MAX",      CONSTANT,       _POSIX_MQ_PRIO_MAX      },
+#else
+  { "_POSIX_MQ_PRIO_MAX",      G_UNDEF,        -1                      },
+#endif  
+#ifdef _POSIX_NAME_MAX
+  { "_POSIX_NAME_MAX",         CONSTANT,       _POSIX_NAME_MAX         },
+#else
+  { "_POSIX_NAME_MAX",         G_UNDEF,        -1                      },
+#endif  
+#ifdef _POSIX_NGROUPS_MAX
+  { "_POSIX_NGROUPS_MAX",      CONSTANT,       _POSIX_NGROUPS_MAX      },
+#else
+  { "_POSIX_NGROUPS_MAX",      G_UNDEF,        -1                      },
+#endif  
+#ifdef _POSIX_OPEN_MAX
+  { "_POSIX_OPEN_MAX",         CONSTANT,       _POSIX_OPEN_MAX         },
+#else
+  { "_POSIX_OPEN_MAX",         G_UNDEF,        -1                      },
+#endif  
+#ifdef _POSIX_PATH_MAX
+  { "_POSIX_PATH_MAX",         CONSTANT,       _POSIX_PATH_MAX         },
+#else
+  { "_POSIX_PATH_MAX",         G_UNDEF,        -1                      },
+#endif  
+#ifdef _POSIX_PIPE_BUF
+  { "_POSIX_PIPE_BUF",         CONSTANT,       _POSIX_PIPE_BUF         },
+#else
+  { "_POSIX_PIPE_BUF",         G_UNDEF,        -1                      },
+#endif  
+#ifdef _POSIX_RE_DUP_MAX
+  { "_POSIX_RE_DUP_MAX",       CONSTANT,       _POSIX_RE_DUP_MAX       },
+#else
+  { "_POSIX_RE_DUP_MAX",       G_UNDEF,        -1                      },
+#endif  
+#ifdef _POSIX_RTSIG_MAX
+  { "_POSIX_RTSIG_MAX",                CONSTANT,       _POSIX_RTSIG_MAX        },
+#else
+  { "_POSIX_RTSIG_MAX",                G_UNDEF,        -1                      },
+#endif  
+#ifdef _POSIX_SEM_NSEMS_MAX
+  { "_POSIX_SEM_NSEMS_MAX",    CONSTANT,       _POSIX_SEM_NSEMS_MAX    },
+#else
+  { "_POSIX_SEM_NSEMS_MAX",    G_UNDEF,        -1                      },
+#endif  
+#ifdef _POSIX_SEM_VALUE_MAX
+  { "_POSIX_SEM_VALUE_MAX",    CONSTANT,       _POSIX_SEM_VALUE_MAX    },
+#else
+  { "_POSIX_SEM_VALUE_MAX",    G_UNDEF,        -1                      },
+#endif  
+#ifdef _POSIX_SIGQUEUE_MAX
+  { "_POSIX_SIGQUEUE_MAX",     CONSTANT,       _POSIX_SIGQUEUE_MAX     },
+#else
+  { "_POSIX_SIGQUEUE_MAX",     G_UNDEF,        -1                      },
+#endif  
+#ifdef _POSIX_SSIZE_MAX
+  { "_POSIX_SSIZE_MAX",                CONSTANT,       _POSIX_SSIZE_MAX        },
+#else
+  { "_POSIX_SSIZE_MAX",                G_UNDEF,        -1                      },
+#endif  
+#ifdef _POSIX_SS_REPL_MAX
+  { "_POSIX_SS_REPL_MAX",      CONSTANT,       _POSIX_SS_REPL_MAX      },
+#else
+  { "_POSIX_SS_REPL_MAX",      G_UNDEF,        -1                      },
+#endif  
+#ifdef _POSIX_STREAM_MAX
+  { "_POSIX_STREAM_MAX",       CONSTANT,       _POSIX_STREAM_MAX       },
+#else
+  { "_POSIX_STREAM_MAX",       G_UNDEF,        -1                      },
+#endif  
+#ifdef _POSIX_SYMLINK_MAX
+  { "_POSIX_SYMLINK_MAX",      CONSTANT,       _POSIX_SYMLINK_MAX      },
+#else
+  { "_POSIX_SYMLINK_MAX",      G_UNDEF,        -1                      },
+#endif  
+#ifdef _POSIX_SYMLOOP_MAX
+  { "_POSIX_SYMLOOP_MAX",      CONSTANT,       _POSIX_SYMLOOP_MAX      },
+#else
+  { "_POSIX_SYMLOOP_MAX",      G_UNDEF,        -1                      },
+#endif  
+#ifdef _POSIX_THREAD_DESTRUCTOR_ITERATIONS
+  { "_POSIX_THREAD_DESTRUCTOR_ITERATIONS",     CONSTANT,       _POSIX_THREAD_DESTRUCTOR_ITERATIONS     },
+#else
+  { "_POSIX_THREAD_DESTRUCTOR_ITERATIONS",     G_UNDEF,        -1      },
+#endif  
+#ifdef _POSIX_THREAD_KEYS_MAX
+  { "_POSIX_THREAD_KEYS_MAX",  CONSTANT,       _POSIX_THREAD_KEYS_MAX  },
+#else
+  { "_POSIX_THREAD_KEYS_MAX",  G_UNDEF,        -1                      },
+#endif  
+#ifdef _POSIX_THREAD_THREADS_MAX
+  { "_POSIX_THREAD_THREADS_MAX",CONSTANT,      _POSIX_THREAD_THREADS_MAX },
+#else
+  { "_POSIX_THREAD_THREADS_MAX",G_UNDEF,       -1                      },
+#endif  
+#ifdef _POSIX_TIMER_MAX
+  { "_POSIX_TIMER_MAX",                CONSTANT,       _POSIX_TIMER_MAX        },
+#else
+  { "_POSIX_TIMER_MAX",                G_UNDEF,        -1                      },
+#endif  
+#ifdef _POSIX_TRACE_EVENT_NAME_MAX
+  { "_POSIX_TRACE_EVENT_NAME_MAX",     CONSTANT,       _POSIX_TRACE_EVENT_NAME_MAX     },
+#else
+  { "_POSIX_TRACE_EVENT_NAME_MAX",     G_UNDEF,        -1              },
+#endif  
+#ifdef _POSIX_TRACE_NAME_MAX
+  { "_POSIX_TRACE_NAME_MAX",   CONSTANT,       _POSIX_TRACE_NAME_MAX   },
+#else
+  { "_POSIX_TRACE_NAME_MAX",   G_UNDEF,        -1                      },
+#endif  
+#ifdef _POSIX_TRACE_SYS_MAX
+  { "_POSIX_TRACE_SYS_MAX",    CONSTANT,       _POSIX_TRACE_SYS_MAX    },
+#else
+  { "_POSIX_TRACE_SYS_MAX",    G_UNDEF,        -1                      },
+#endif  
+#ifdef _POSIX_TRACE_USER_EVENT_MAX
+  { "_POSIX_TRACE_USER_EVENT_MAX",     CONSTANT,       _POSIX_TRACE_USER_EVENT_MAX     },
+#else
+  { "_POSIX_TRACE_USER_EVENT_MAX",     G_UNDEF,        -1              },
+#endif  
+#ifdef _POSIX_TTY_NAME_MAX
+  { "_POSIX_TTY_NAME_MAX",     CONSTANT,       _POSIX_TTY_NAME_MAX     },
+#else
+  { "_POSIX_TTY_NAME_MAX",     G_UNDEF,        -1                      },
+#endif  
+#ifdef _POSIX_TZNAME_MAX
+  { "_POSIX_TZNAME_MAX",       CONSTANT,       _POSIX_TZNAME_MAX       },
+#else
+  { "_POSIX_TZNAME_MAX",       G_UNDEF,        -1                      },
+#endif  
+
+  /* POSIX.1 Maximum Values */
+#ifdef _POSIX_CLOCKRES_MIN
+  { "_POSIX_CLOCKRES_MIN",     CONSTANT,       _POSIX_CLOCKRES_MIN     },
+#else
+  { "_POSIX_CLOCKRES_MIN",     G_UNDEF,        -1                      },
+#endif
+
+  /* POSIX.1-2001/XPG6 (and later) Runtime Invariants from <limits.h> */
+#ifdef _SC_SS_REPL_MAX
+  { "SS_REPL_MAX",             SYSCONF,        _SC_SS_REPL_MAX },
+#endif  
+#ifdef _SC_TRACE_EVENT_NAME_MAX
+  { "TRACE_EVENT_NAME_MAX",    SYSCONF,        _SC_TRACE_EVENT_NAME_MAX        },
+#endif  
+#ifdef _SC_TRACE_NAME_MAX
+  { "TRACE_NAME_MAX",          SYSCONF,        _SC_TRACE_NAME_MAX      },
+#endif  
+#ifdef _SC_TRACE_SYS_MAX
+  { "TRACE_SYS_MAX",           SYSCONF,        _SC_TRACE_SYS_MAX       },
+#endif  
+#ifdef _SC_TRACE_USER_EVENT_MAX
+  { "TRACE_USER_EVENT_MAX",    SYSCONF,        _SC_TRACE_USER_EVENT_MAX        },
+#endif  
+
+  /* POSIX.2/XPG 4.2 (and later) Symbolic Utility Limits */
+#ifdef _SC_BC_BASE_MAX
+  { "BC_BASE_MAX",             SYSCONF,        _SC_BC_BASE_MAX         },
+#endif
+#ifdef _SC_BC_DIM_MAX
+  { "BC_DIM_MAX",              SYSCONF,        _SC_BC_DIM_MAX          },
+#endif
+#ifdef _SC_BC_SCALE_MAX
+  { "BC_SCALE_MAX",            SYSCONF,        _SC_BC_SCALE_MAX        },
+#endif
+#ifdef _SC_BC_STRING_MAX
+  { "BC_STRING_MAX",           SYSCONF,        _SC_BC_STRING_MAX       },
+#endif
+#ifdef CHARCLASS_NAME_MAX
+  { "CHARCLASS_NAME_MAX",      CONSTANT,       CHARCLASS_NAME_MAX      },
+#endif
+#ifdef _SC_COLL_WEIGHTS_MAX
+  { "COLL_WEIGHTS_MAX",                SYSCONF,        _SC_COLL_WEIGHTS_MAX    },
+#endif
+#ifdef _SC_EXPR_NEST_MAX
+  { "EXPR_NEST_MAX",           SYSCONF,        _SC_EXPR_NEST_MAX       },
+#endif
+#ifdef _SC_LINE_MAX
+  { "LINE_MAX",                        SYSCONF,        _SC_LINE_MAX            },
+#endif
+#  ifdef NL_ARGMAX
+  { "NL_ARGMAX",               CONSTANT,       NL_ARGMAX               },
+#endif
+#ifdef NL_LANGMAX
+  { "NL_LANGMAX",              CONSTANT,       NL_LANGMAX              },
+#endif
+#ifdef NL_MSGMAX
+  { "NL_MSGMAX",               CONSTANT,       NL_MSGMAX               },
+#endif
+#ifdef NL_NMAX
+  { "NL_NMAX",                 CONSTANT,       NL_NMAX                 },
+#endif
+#ifdef NL_SETMAX
+  { "NL_SETMAX",               CONSTANT,       NL_SETMAX               },
+#endif
+#ifdef NL_TEXTMAX
+  { "NL_TEXTMAX",              CONSTANT,       NL_TEXTMAX              },
+#endif
+#ifdef _SC_RAW_SOCKET
+  { "RAW_SOCKET",              SYSCONF,        _SC_RAW_SOCKET          },
+#endif
+#ifdef _SC_RE_DUP_MAX
+  { "RE_DUP_MAX",              SYSCONF,        _SC_RE_DUP_MAX          },
+#endif
+
+  /* POSIX.2 Optional Facility Configuration Values */
+#ifdef _SC_2_C_BIND
+  { "POSIX2_C_BIND",           SYSCONF,        _SC_2_C_BIND            },
+#else
+  { "POSIX2_C_BIND",           G_UNDEF,        -1                      },
+#endif
+#ifdef _SC_2_C_DEV
+  { "POSIX2_C_DEV",            SYSCONF,        _SC_2_C_DEV             },
+#else
+  { "POSIX2_C_DEV",            G_UNDEF,        -1                      },
+#endif
+#if defined (_SC_2_C_VERSION)
+  { "POSIX2_C_VERSION",                SYSCONF,        _SC_2_C_VERSION         },
+#else
+  { "POSIX2_C_VERSION",                G_UNDEF,        -1                      },
+#endif
+#if defined (_SC_2_CHAR_TERM)
+  { "POSIX2_CHAR_TERM",                SYSCONF,        _SC_2_CHAR_TERM         },
+#else
+  { "POSIX2_CHAR_TERM",                G_UNDEF,        -1                      },
+#endif
+#ifdef _SC_2_FORT_DEV
+  { "POSIX2_FORT_DEV",         SYSCONF,        _SC_2_FORT_DEV          },
+#else
+  { "POSIX2_FORT_DEV",         G_UNDEF,        -1                      },
+#endif
+#ifdef _SC_2_FORT_RUN
+  { "POSIX2_FORT_RUN",         SYSCONF,        _SC_2_FORT_RUN          },
+#else
+  { "POSIX2_FORT_RUN",         G_UNDEF,        -1                      },
+#endif
+#ifdef _SC_2_LOCALEDEF
+  { "POSIX2_LOCALEDEF",        SYSCONF,        _SC_2_LOCALEDEF         },
+#else
+  { "POSIX2_LOCALEDEF",        G_UNDEF,        -1                      },
+#endif
+#ifdef _SC_2_SW_DEV
+  { "POSIX2_SW_DEV",           SYSCONF,        _SC_2_SW_DEV            },
+#else
+  { "POSIX2_SW_DEV",           G_UNDEF,        -1                      },
+#endif
+#if defined (_SC2_UPE)
+  { "POSIX2_UPE",              SYSCONF,        _SC_2_UPE               },
+#else
+  { "POSIX2_UPE",              G_UNDEF,        -1                      },
+#endif
+#if !defined (_POSIX2_VERSION) && defined (_SC_2_VERSION)
+  { "_POSIX2_VERSION",         SYSCONF,        _SC_2_VERSION           },
+#else
+  { "_POSIX2_VERSION",         G_UNDEF,        -1                      },
+#endif
+#if defined (_SC_REGEX_VERSION)
+  { "REGEX_VERSION",           SYSCONF,        _SC_REGEX_VERSION       },
+  { "_REGEX_VERSION",          SYSCONF,        _SC_REGEX_VERSION       },
+#else
+  { "REGEX_VERSION",           G_UNDEF,        -1                      },
+  { "_REGEX_VERSION",          G_UNDEF,        -1                      },
+#endif
+
+#if defined (_SC_2_PBS)
+  { "_POSIX2_PBS",             SYSCONF,        _SC_2_PBS               },
+  { "_POSIX2_PBS_ACCOUNTING",  SYSCONF,        _SC_2_PBS_ACCOUNTING    },
+#  if defined (_SC_2_PBS_CHECKPOINT)
+  { "_POSIX2_PBS_CHECKPOINT",  SYSCONF,        _SC_2_PBS_CHECKPOINT    },
+#  endif
+  { "_POSIX2_PBS_LOCATE",      SYSCONF,        _SC_2_PBS_LOCATE        },
+  { "_POSIX2_PBS_MESSAGE",     SYSCONF,        _SC_2_PBS_MESSAGE       },
+  { "_POSIX2_PBS_TRACK",       SYSCONF,        _SC_2_PBS_TRACK         },
+#endif
+
+  /* POSIX.1 Configurable System Variables */
+#ifdef _SC_ARG_MAX
+  { "ARG_MAX",                 SYSCONF,        _SC_ARG_MAX             },
+#endif
+#ifdef _SC_CHILD_MAX
+  { "CHILD_MAX",               SYSCONF,        _SC_CHILD_MAX           },
+#endif
+#ifdef _SC_CLK_TCK
+  { "CLK_TCK",                 SYSCONF,        _SC_CLK_TCK             },
+#endif
+#ifdef _SC_DELAYTIMER_MAX
+  { "DELAYTIMER_MAX",          SYSCONF,        _SC_DELAYTIMER_MAX      },
+#endif
+#ifdef _SC_NGROUPS_MAX
+  { "NGROUPS_MAX",             SYSCONF,        _SC_NGROUPS_MAX         },
+#endif
+#ifdef NZERO
+  { "NZERO",                   CONSTANT,       NZERO                   },
+#endif
+#ifdef _SC_OPEN_MAX
+  { "OPEN_MAX",                        SYSCONF,        _SC_OPEN_MAX            },
+#endif
+#ifdef PASS_MAX
+  { "PASS_MAX",                        CONSTANT,       PASS_MAX                },
+#endif
+#ifdef _SC_STREAM_MAX
+  { "STREAM_MAX",              SYSCONF,        _SC_STREAM_MAX          },
+#endif
+#ifdef TMP_MAX
+  { "TMP_MAX",                 CONSTANT,       TMP_MAX                 },
+#endif
+#ifdef _SC_TZNAME_MAX
+  { "TZNAME_MAX",              SYSCONF,        _SC_TZNAME_MAX          },
+#endif
+
+  /* POSIX.1 Optional Facility Configuration Values */
+#if defined (_SC_ADVISORY_INFO)
+  { "_POSIX_ADVISORY_INFO",    SYSCONF,        _SC_ADVISORY_INFO       },
+#endif
+#if defined (_SC_ASYNCHRONOUS_IO)
+  { "_POSIX_ASYNCHRONOUS_IO",  SYSCONF,        _SC_ASYNCHRONOUS_IO     },
+#endif
+#if defined (_SC_BARRIERS)
+  { "_POSIX_BARRIERS",         SYSCONF,        _SC_BARRIERS            },
+#endif
+#if defined (_SC_BASE)
+  { "_POSIX_BASE",             SYSCONF,        _SC_BASE                },
+#endif
+#if defined (_SC_C_LANG_SUPPORT)
+  { "_POSIX_C_LANG_SUPPORT",   SYSCONF,        _SC_C_LANG_SUPPORT      },
+#endif
+#if defined (_SC_C_LANG_SUPPORT_R)
+  { "_POSIX_C_LANG_SUPPORT_R", SYSCONF,        _SC_C_LANG_SUPPORT_R    },
+#endif
+#if defined (_SC_CLOCK_SELECTION)
+  { "_POSIX_CLOCK_SELECTION",  SYSCONF,        _SC_CLOCK_SELECTION     },
+#endif
+#if defined (_SC_CPUTIME)
+  { "_POSIX_CPUTIME",          SYSCONF,        _SC_CPUTIME             },
+#endif
+#if defined (_SC_DEVICE_IO)
+  { "_POSIX_DEVICE_IO",                SYSCONF,        _SC_DEVICE_IO           },
+#endif
+#if defined (_SC_DEVICE_SPECIFIC)
+  { "_POSIX_DEVICE_SPECIFIC",  SYSCONF,        _SC_DEVICE_SPECIFIC     },
+#endif
+#if defined (_SC_DEVICE_SPECIFIC_R)
+  { "_POSIX_DEVICE_SPECIFIC_R",        SYSCONF,        _SC_DEVICE_SPECIFIC_R   },
+#endif
+#if defined (_SC_FD_MGMT)
+  { "_POSIX_FD_MGMT",          SYSCONF,        _SC_FD_MGMT             },
+#endif
+#if defined (_SC_FIFO)
+  { "_POSIX_FIFO",             SYSCONF,        _SC_FIFO                },
+#endif
+#if defined (_SC_FILE_ATTRIBUTES)
+  { "_POSIX_FILE_ATTRIBUTES",  SYSCONF,        _SC_FILE_ATTRIBUTES     },
+#endif
+#if defined (_SC_FILE_LOCKING)
+  { "_POSIX_FILE_LOCKING",     SYSCONF,        _SC_FILE_LOCKING        },
+#endif
+#if defined (_SC_FILE_SYSTEM)
+  { "_POSIX_FILE_SYSTEM",      SYSCONF,        _SC_FILE_SYSTEM         },
+#endif
+#if defined (_SC_FSYNC)
+  { "_POSIX_FSYNC",            SYSCONF,        _SC_FSYNC               },
+#endif
+#if defined (_SC_IPV6)
+  { "_POSIX_IPV6",             SYSCONF,        _SC_IPV6                },
+#endif
+#if defined (_SC_JOB_CONTROL)
+  { "_POSIX_JOB_CONTROL",      SYSCONF,        _SC_JOB_CONTROL         },
+#endif
+#if defined (_SC_MAPPED_FILES)
+  { "_POSIX_MAPPED_FILES",     SYSCONF,        _SC_MAPPED_FILES        },
+#endif
+#if defined (_SC_MEMLOCK)
+  { "_POSIX_MEMLOCK",          SYSCONF,        _SC_MEMLOCK             },
+#endif
+#if defined (_SC_MEMLOCK_RANGE)
+  { "_POSIX_MEMLOCK_RANGE",    SYSCONF,        _SC_MEMLOCK_RANGE       },
+#endif
+#if defined (_SC_MEMORY_PROTECTION)
+  { "_POSIX_MEMORY_PROTECTION",        SYSCONF,        _SC_MEMORY_PROTECTION   },
+#endif
+#if defined (_SC_MESSAGE_PASSING)
+  { "_POSIX_MESSAGE_PASSING",  SYSCONF,        _SC_MESSAGE_PASSING     },
+#endif
+#if defined (_SC_MONOTONIC_CLOCK)
+  { "_POSIX_MONOTONIC_CLOCK",  SYSCONF,        _SC_MONOTONIC_CLOCK     },
+#endif
+#if defined (_SC_MULTI_PROCESS)
+  { "_POSIX_MULTI_PROCESS",    SYSCONF,        _SC_MULTI_PROCESS       },
+#endif
+#if defined (_SC_NETWORKING)
+  { "_POSIX_NETWORKING",       SYSCONF,        _SC_NETWORKING          },
+#endif
+#if defined (_SC_PIPE)
+  { "_POSIX_PIPE",             SYSCONF,        _SC_PIPE                },
+#endif
+#if defined (SC_PRIORITIZED_IO)
+  { "_POSIX_PRIORITIZED_IO",   SYSCONF,        _SC_PRIORITIZED_IO      },
+#endif
+#if defined (_SC_PRIORITY_SCHEDULING)
+  { "_POSIX_PRIORITY_SCHEDULING", SYSCONF,     _SC_PRIORITY_SCHEDULING },
+#endif
+#if defined (_SC_READER_WRITER_LOCKS)
+  { "_POSIX_READER_WRITER_LOCKS", SYSCONF,     _SC_READER_WRITER_LOCKS },
+#endif
+#if defined (_SC_RAW_SOCKETS)
+  { "_POSIX_RAW_SOCKETS",      SYSCONF,        _SC_RAW_SOCKETS },
+#endif
+#if defined (_SC_REALTIME_SIGNALS)
+  { "_POSIX_REALTIME_SIGNALS", SYSCONF,        _SC_REALTIME_SIGNALS    },
+#endif
+#if defined (_SC_REGEXP)
+  { "_POSIX_REGEXP",           SYSCONF,        _SC_REGEXP              },
+#endif
+#if defined (_SC_SAVED_IDS)
+  { "_POSIX_SAVED_IDS",                SYSCONF,        _SC_SAVED_IDS           },
+#endif
+#if defined (_SC_SEMAPHORES)
+  { "_POSIX_SEMAPHORES",       SYSCONF,        _SC_SEMAPHORES          },
+#endif
+#if defined (_SC_SHARED_MEMORY_OBJECTS)
+  { "_POSIX_SHARED_MEMORY_OBJECTS", SYSCONF,   _SC_SHARED_MEMORY_OBJECTS },
+#endif
+  { "_POSIX_SHELL",            CONSTANT,       1                       },
+#if defined (_SC_SIGNALS)
+  { "_POSIX_SIGNALS",          SYSCONF,        _SC_SIGNALS             },
+#endif
+#if defined (_SC_SINGLE_PROCESS)
+  { "_POSIX_SINGLE_PROCESS",   SYSCONF,        _SC_SINGLE_PROCESS      },
+#endif
+#if defined (_SC_SPAWN)
+  { "_POSIX_SPAWN",            SYSCONF,        _SC_SPAWN               },
+#endif
+#if defined (_SC_SPIN_LOCKS)
+  { "_POSIX_SPIN_LOCKS",       SYSCONF,        _SC_SPIN_LOCKS          },
+#endif
+#if defined (_SC_SPORADIC_SERVER)
+  { "_POSIX_SPORADIC_SERVER",  SYSCONF,        _SC_SPORADIC_SERVER     },
+#endif
+#if defined (_SC_SYMLOOP_MAX)
+  { "_POSIX_SYMLOOP_MAX",      SYSCONF,        _SC_SYMLOOP_MAX         },
+#endif
+#if defined (_SC_SYNCHRONIZED_IO)
+  { "_POSIX_SYNCHRONIZED_IO",  SYSCONF,        _SC_SYNCHRONIZED_IO     },
+#endif
+#if defined (_SC_SYSTEM_DATABASE)
+  { "_POSIX_SYSTEM_DATABASE",  SYSCONF,        _SC_SYSTEM_DATABASE     },
+#endif
+#if defined (_SC_SYSTEM_DATABASE_R)
+  { "_POSIX_SYSTEM_DATABASE_R",        SYSCONF,        _SC_SYSTEM_DATABASE_R   },
+#endif
+#if defined (_SC_THREAD_ATTR_STACKADDR)
+  { "_POSIX_THREAD_ATTR_STACKADDR", SYSCONF,   _SC_THREAD_ATTR_STACKADDR },
+#endif
+#if defined (_SC_THREAD_ATTR_STACKSIZE)
+  { "_POSIX_THREAD_ATTR_STACKSIZE", SYSCONF,   _SC_THREAD_ATTR_STACKSIZE },
+#endif
+#if defined (_SC_THREAD_CPUTIME)
+  { "_POSIX_THREAD_CPUTIME",   SYSCONF,        _SC_THREAD_CPUTIME },
+#endif
+#if defined (_SC_THREAD_PRIO_INHERIT)
+  { "_POSIX_THREAD_PRIO_INHERIT", SYSCONF,     _SC_THREAD_PRIO_INHERIT },
+#endif
+#if defined (_SC_THREAD_PRIO_PROTECT)
+  { "_POSIX_THREAD_PRIO_PROTECT", SYSCONF,     _SC_THREAD_PRIO_PROTECT },
+#endif
+#if defined (_SC_THREAD_PRIORITY_SCHEDULING)
+  { "_POSIX_THREAD_PRIORITY_SCHEDULING", SYSCONF, _SC_THREAD_PRIORITY_SCHEDULING },
+#endif
+#if defined (_SC_THREAD_PROCESS_SHARED)
+  { "_POSIX_THREAD_PROCESS_SHARED", SYSCONF,   _SC_THREAD_PROCESS_SHARED },
+#endif
+#if defined (_SC_THREAD_SAFE_FUNCTIONS)
+  { "_POSIX_THREAD_SAFE_FUNCTIONS", SYSCONF,   _SC_THREAD_SAFE_FUNCTIONS },
+#endif
+#if defined (_SC_THREAD_SPORADIC_SERVER)
+  { "_POSIX_THREAD_SPORADIC_SERVER", SYSCONF,  _SC_THREAD_SPORADIC_SERVER },
+#endif
+#if defined (_SC_THREADS)
+  { "_POSIX_THREADS",          SYSCONF,        _SC_THREADS             },
+#endif
+#if defined (_SC_TIMEOUTS)
+  { "_POSIX_TIMEOUTS",         SYSCONF,        _SC_TIMEOUTS            },
+#endif
+#if defined (_SC_TIMERS)
+  { "_POSIX_TIMERS",           SYSCONF,        _SC_TIMERS              },
+#endif
+#if defined (_SC_TRACE)
+  { "_POSIX_TRACE",            SYSCONF,        _SC_TRACE               },
+#endif
+#if defined (_SC_TRACE)
+  { "_POSIX_TRACE_EVENT_FILTER",SYSCONF,       _SC_TRACE_EVENT_FILTER  },
+#endif
+#if defined (_SC_TRACE)
+  { "_POSIX_TRACE_INHERIT",    SYSCONF,        _SC_TRACE_INHERIT       },
+#endif
+#if defined (_SC_TRACE)
+  { "_POSIX_TRACE_LOG",                SYSCONF,        _SC_TRACE_LOG           },
+#endif
+#if defined (_SC_TYPED_MEMORY_OBJECTS)
+  { "_POSIX_TYPED_MEMORY_OBJECTS", SYSCONF,    _SC_TYPED_MEMORY_OBJECTS },
+#endif
+#if defined (_SC_VERSION)
+  { "_POSIX_VERSION",          SYSCONF,        _SC_VERSION             },
+#endif
+
+  /* XPG 4.2 Configurable System Variables. */
+#if defined (_SC_ATEXIT_MAX)
+  { "ATEXIT_MAX",              SYSCONF,        _SC_ATEXIT_MAX          },
+#endif
+#if defined (_SC_GETGR_R_SIZE_MAX)
+  { "GETGR_R_SIZE_MAX",                SYSCONF,        _SC_GETGR_R_SIZE_MAX    },
+#endif
+#if defined (_SC_GETPW_R_SIZE_MAX)
+  { "GETPW_R_SIZE_MAX",                SYSCONF,        _SC_GETPW_R_SIZE_MAX    },
+#endif
+#if defined (_SC_HOST_NAME_MAX)
+  { "HOST_NAME_MAX",           SYSCONF,        _SC_HOST_NAME_MAX       },
+#endif
+#if defined (_SC_IOV_MAX)
+  { "IOV_MAX",                 SYSCONF,        _SC_IOV_MAX             },
+#endif
+#if defined (_SC_LOGIN_NAME_MAX)
+  { "LOGIN_NAME_MAX",          SYSCONF,        _SC_LOGIN_NAME_MAX      },
+#endif
+#if defined (_SC_LOGNAME_MAX)
+  { "LOGNAME_MAX",             SYSCONF,        _SC_LOGNAME_MAX         },
+#endif
+#if defined (_SC_PAGESIZE)
+  { "PAGESIZE",                        SYSCONF,        _SC_PAGESIZE            },
+#endif
+#if defined (_SC_PAGE_SIZE)
+  { "PAGE_SIZE",               SYSCONF,        _SC_PAGE_SIZE           },
+#endif
+#if defined (_SC_SYMLOOP_MAX)
+  { "SYMLOOP_MAX",             SYSCONF,        _SC_SYMLOOP_MAX         },
+#endif
+#if defined (_SC_TTY_NAME_MAX)
+  { "TTY_NAME_MAX",            SYSCONF,        _SC_TTY_NAME_MAX        },
+#endif
+#if defined (_SC_USER_GROUPS)
+  { "_POSIX_USER_GROUPS",      SYSCONF,        _SC_USER_GROUPS         },
+#endif
+#if defined (_SC_USER_GROUPS_R)
+  { "_POSIX_USER_GROUPS_R",    SYSCONF,        _SC_USER_GROUPS_R       },
+#endif
+
+#if defined (_SC_AIO_LISTIO_MAX)
+  { "AIO_LISTIO_MAX",          SYSCONF,        _SC_AIO_LISTIO_MAX      },
+#endif
+#if defined (_SC_AIO_MAX)
+  { "AIO_MAX",                 SYSCONF,        _SC_AIO_MAX             },
+#endif
+#if defined (_SC_AIO_PRIO_DELTA_MAX)
+  { "AIO_PRIO_DELTA_MAX",      SYSCONF,        _SC_AIO_PRIO_DELTA_MAX  },
+#endif
+#if defined (_SC_MQ_OPEN_MAX)
+  { "MQ_OPEN_MAX",             SYSCONF,        _SC_MQ_OPEN_MAX         },
+#endif
+#if defined (_SC_MQ_PRIO_MAX)
+  { "MQ_PRIO_MAX",             SYSCONF,        _SC_MQ_PRIO_MAX         },
+#endif
+#if defined (_SC_RTSIG_MAX)
+  { "RTSIG_MAX",               SYSCONF,        _SC_RTSIG_MAX           },
+#endif
+#if defined (_SC_SEM_NSEMS_MAX)
+  { "SEM_NSEMS_MAX",           SYSCONF,        _SC_SEM_NSEMS_MAX       },
+#endif
+#if defined (_SC_SEM_VALUE_MAX)
+  { "SEM_VALUE_MAX",           SYSCONF,        _SC_SEM_VALUE_MAX       },
+#endif
+#if defined (_SC_SIGQUEUE_MAX)
+  { "SIGQUEUE_MAX",            SYSCONF,        _SC_SIGQUEUE_MAX        },
+#endif
+#if defined (_SC_TIMER_MAX)
+  { "TIMER_MAX",               SYSCONF,        _SC_TIMER_MAX           },
+#endif
+
+#if defined (_SC_THREAD_DESTRUCTOR_ITERATIONS)
+  { "PTHREAD_DESTRUCTOR_ITERATIONS", SYSCONF,  _SC_THREAD_DESTRUCTOR_ITERATIONS },
+#endif
+#if defined (_SC_THREAD_KEYS_MAX)
+  { "PTHREAD_KEYS_MAX",                SYSCONF,        _SC_THREAD_KEYS_MAX },
+#endif
+#if defined (_SC_THREAD_STACK_MIN)
+  { "PTHREAD_STACK_MIN",       SYSCONF,        _SC_THREAD_STACK_MIN },
+#endif
+#if defined (_SC_THREAD_THREADS_MAX)
+  { "PTHREAD_THREADS_MAX",     SYSCONF,        _SC_THREAD_THREADS_MAX },
+#endif
+
+  /* XPG 4.2 (and later) Optional Facility Configuration Values */
+#if defined (_SC_XOPEN_CRYPT)
+  { "_XOPEN_CRYPT",            SYSCONF,        _SC_XOPEN_CRYPT         },
+#endif
+#if defined (_SC_XOPEN_ENH_I18N)
+  { "_XOPEN_ENH_I18N",         SYSCONF,        _SC_XOPEN_ENH_I18N      },
+#endif
+#if defined (_SC_XOPEN_LEGACY)
+  { "_XOPEN_LEGACY",           SYSCONF,        _SC_XOPEN_LEGACY        },
+#endif /* _SC_XOPEN_LEGACY */
+#if defined (_SC_XOPEN_REALTIME)
+  { "_XOPEN_REALTIME",         SYSCONF,        _SC_XOPEN_REALTIME      },
+#endif
+#if defined (_SC_XOPEN_REALTIME_THREADS)
+  { "_XOPEN_REALTIME_THREADS", SYSCONF,        _SC_XOPEN_REALTIME_THREADS },
+#endif
+#if defined (_SC_XOPEN_SHM)
+  { "_XOPEN_SHM",              SYSCONF,        _SC_XOPEN_SHM           },
+#endif
+#if defined (_SC_XOPEN_STREAMS)
+  { "_XOPEN_STREAMS",          SYSCONF,        _SC_XOPEN_STREAMS       },
+#endif
+#if defined (_SC_XOPEN_UNIX)
+  { "_XOPEN_UNIX",             SYSCONF,        _SC_XOPEN_UNIX          },
+#endif
+#if defined (_SC_XOPEN_VERSION)
+  { "_XOPEN_VERSION",          SYSCONF,        _SC_XOPEN_VERSION       },
+#endif
+#if defined (_SC_XOPEN_XCU_VERSION)
+  { "_XOPEN_XCU_VERSION",      SYSCONF,        _SC_XOPEN_XCU_VERSION   },
+#endif
+#if defined (_SC_XOPEN_XPG2)
+  { "_XOPEN_XPG2",             SYSCONF,        _SC_XOPEN_XPG2          },
+#endif
+#if defined (_SC_XOPEN_XPG3)
+  { "_XOPEN_XPG3",             SYSCONF,        _SC_XOPEN_XPG3          },
+#endif
+#if defined (_SC_XOPEN_XPG4)
+  { "_XOPEN_XPG4",             SYSCONF,        _SC_XOPEN_XPG4          },
+#endif
+#if defined (_SC_XOPEN_XPG5)
+  { "_XOPEN_XPG5",             SYSCONF,        _SC_XOPEN_XPG5          },
+#endif
+
+  /* POSIX.1 Configurable Pathname Values */
+#ifdef _PC_LINK_MAX
+  { "LINK_MAX",                        PATHCONF,       _PC_LINK_MAX            },
+#endif
+#ifdef _PC_MAX_CANON
+  { "MAX_CANON",               PATHCONF,       _PC_MAX_CANON           },
+#endif
+#ifdef _PC_MAX_INPUT
+  { "MAX_INPUT",               PATHCONF,       _PC_MAX_INPUT           },
+#endif
+#ifdef _PC_NAME_MAX
+  { "NAME_MAX",                        PATHCONF,       _PC_NAME_MAX            },
+#endif
+#ifdef _PC_PATH_MAX
+  { "PATH_MAX",                        PATHCONF,       _PC_PATH_MAX            },
+#endif
+#ifdef _PC_PIPE_BUF
+  { "PIPE_BUF",                        PATHCONF,       _PC_PIPE_BUF            },
+#endif
+#ifdef _PC_SYMLINK_MAX
+  { "SYMLINK_MAX",             PATHCONF,       _PC_SYMLINK_MAX         },
+#endif
+#ifdef _PC_CHOWN_RESTRICTED
+  { "_POSIX_CHOWN_RESTRICTED", PATHCONF,       _PC_CHOWN_RESTRICTED    },
+#endif
+#ifdef _PC_NO_TRUNC
+  { "_POSIX_NO_TRUNC",         PATHCONF,       _PC_NO_TRUNC            },
+#endif
+#ifdef _PC_VDISABLE
+  { "_POSIX_VDISABLE",         PATHCONF,       _PC_VDISABLE            },
+#endif
+
+  /* XPG 4.2 Configurable Pathname Values */
+#if defined (_PC_FILESIZEBITS)
+  { "FILESIZEBITS",            PATHCONF,       _PC_FILESIZEBITS },
+#endif
+#if defined (_PC_ASYNC_IO)
+  { "_POSIX_ASYNC_IO",         PATHCONF,       _PC_ASYNC_IO },
+#endif
+#if defined (_PC_PRIO_IO)
+  { "_POSIX_PRIO_IO",          PATHCONF,       _PC_PRIO_IO },
+#endif
+#if defined (_PC_SYNC_IO)
+  { "_POSIX_SYNC_IO",          PATHCONF,       _PC_SYNC_IO },
+#endif
+
+  /* POSIX.1-200x configurable pathname values */
+#if defined (_PC_ALLOC_SIZE_MIN)
+  { "POSIX_ALLOC_SIZE_MIN",    PATHCONF,       _PC_ALLOC_SIZE_MIN },
+  { "POSIX_REC_INCR_XFER_SIZE",        PATHCONF,       _PC_REC_INCR_XFER_SIZE },
+  { "POSIX_REC_MAX_XFER_SIZE", PATHCONF,       _PC_REC_MAX_XFER_SIZE },
+  { "POSIX_REC_MIN_XFER_SIZE", PATHCONF,       _PC_REC_MIN_XFER_SIZE },
+  { "POSIX_REC_XFER_ALIGN",    PATHCONF,       _PC_REC_XFER_ALIGN },
+#endif
+
+  /* ANSI/ISO C, POSIX.1-200x, XPG 4.2 (and later) C language type limits. */
+  { "CHAR_BIT",                        CONSTANT,       CHAR_BIT        },
+  { "CHAR_MAX",                        CONSTANT,       CHAR_MAX        },
+  { "CHAR_MIN",                        CONSTANT,       CHAR_MIN        },
+  { "INT_BIT",                 CONSTANT,       INT_BIT         },
+  { "INT_MAX",                 CONSTANT,       INT_MAX         },
+  { "INT_MIN",                 CONSTANT,       INT_MIN         },
+#ifdef LLONG_MAX
+  { "LLONG_MAX",               LLCONST,        VAL_LLONG_MAX   },
+  { "LLONG_MIN",               LLCONST,        VAL_LLONG_MIN   },
+#endif
+  { "LONG_BIT",                        CONSTANT,       LONG_BIT        },
+  { "LONG_MAX",                        CONSTANT,       LONG_MAX        },
+  { "LONG_MIN",                        CONSTANT,       LONG_MIN        },
+#ifdef MB_LEN_MAX
+  { "MB_LEN_MAX",              CONSTANT,       MB_LEN_MAX      },
+#endif
+  { "SCHAR_MAX",               CONSTANT,       SCHAR_MAX       },
+  { "SCHAR_MIN",               CONSTANT,       SCHAR_MIN       },
+  { "SHRT_MAX",                        CONSTANT,       SHRT_MAX        },
+  { "SHRT_MIN",                        CONSTANT,       SHRT_MIN        },
+  { "SIZE_MAX",                        CONSTANT,       SIZE_MAX        },
+  { "SSIZE_MAX",               CONSTANT,       SSIZE_MAX       },
+  { "UCHAR_MAX",               CONSTANT,       UCHAR_MAX       },
+  { "UINT_MAX",                        CONSTANT,       UINT_MAX        },
+#ifdef ULLONG_MAX
+  { "ULLONG_MAX",              LLCONST,        VAL_ULLONG_MAX  },
+#endif
+  { "ULONG_MAX",               CONSTANT,       ULONG_MAX       },
+  { "USHRT_MAX",               CONSTANT,       USHRT_MAX       },
+  { "WORD_BIT",                        CONSTANT,       WORD_BIT        },
+
+  { NULL }
+};
+
+static int num_getconf_variables = sizeof(conf_table) / sizeof(struct conf_variable) - 1;
+
+extern char *this_command_name;
+extern char **make_builtin_argv ();
+
+static void getconf_help ();
+static int getconf_print ();
+static int getconf_one ();
+static int getconf_all ();
+
+int
+getconf_builtin (list)
+     WORD_LIST *list;
+{
+  int c, r, opt, aflag;
+  char **v;
+
+  aflag = 0;
+  reset_internal_getopt();
+  while ((opt = internal_getopt (list, "ahv:")) != -1) {
+       switch (opt) {
+       case 'a':
+               aflag = 1;
+               break;
+       case 'h':
+               getconf_help();
+               return(EXECUTION_SUCCESS);
+       case 'v':
+               break;          /* ignored */
+       default:
+               builtin_usage();
+               return(EX_USAGE);
+       }
+  }
+  list = loptend;
+  if ((aflag == 0 && list == 0) || (aflag && list) || list_length(list) > 2) {
+       builtin_usage();
+       return(EX_USAGE);
+  }
+
+  r = aflag ? getconf_all() : getconf_one(list);
+
+  return r;
+}
+
+static void
+getconf_help()
+{
+       const struct conf_variable *cp;
+       register int i, column;
+
+       builtin_usage();
+       printf("Acceptable variable names are:\n");
+       for (cp = conf_table; cp->name != NULL; cp++) {
+               if (cp->type == PATHCONF)
+                       printf("%s pathname\n", cp->name);
+               else
+                       printf("%s\n", cp->name);
+       }
+}
+
+static int
+getconf_print(cp, vpath, all)
+struct conf_variable *cp;
+char *vpath;
+int all;
+{
+       long val;
+       char *sval;
+       size_t slen;
+
+       switch (cp->type) {
+       case G_UNDEF:
+               printf("undefined\n");
+               break;
+
+#ifdef LLONG_MAX
+       case LLCONST:
+               switch (cp->value) {
+                       default:
+                       case VAL_LLONG_MIN:
+                               printf ("%lld\n", LLONG_MIN);
+                               break;
+                       case VAL_LLONG_MAX:
+                               printf ("%lld\n", LLONG_MAX);
+                               break;
+#  if (ULLONG_MAX != LLONG_MAX)
+                       case VAL_ULLONG_MAX:
+                               printf ("%llu\n", ULLONG_MAX);
+                               break;
+#  endif
+               }
+               break;
+#endif
+       case CONSTANT:
+               switch (cp->value) {
+                       case UCHAR_MAX:
+                       case USHRT_MAX:
+                       case UINT_MAX:
+#if (ULONG_MAX != UINT_MAX)                    
+                       case ULONG_MAX:
+#endif
+#if (SIZE_MAX != UINT_MAX) && (SIZE_MAX != ULONG_MAX)
+                       case SIZE_MAX:
+#endif
+
+                               printf("%lu\n", cp->value);
+                               break;
+                       default:
+                               printf("%ld\n", cp->value);
+                               break;
+               }
+               break;
+
+       case CONFSTR:
+               errno = 0;
+               slen = confstr (cp->value, (char *) 0, (size_t) 0);
+               if (slen == 0) {
+                       if (errno != 0) {
+                               if (all)
+                                       printf ("getconf: %s\n", strerror(errno));
+                               else
+                                       builtin_error ("%s", strerror(errno));
+                       } else
+                               printf ("undefined\n");
+                       return (EXECUTION_FAILURE);
+               }
+               sval = xmalloc(slen);
+
+               confstr(cp->value, sval, slen);
+               printf("%s\n", sval);
+               free(sval);
+               break;
+
+       case SYSCONF:
+               errno = 0;
+               if ((val = sysconf(cp->value)) == -1) {
+                       if (errno != 0) {
+                               if (all)
+                                       printf("getconf: %s\n", strerror (errno));
+                               else
+                                       builtin_error ("%s", strerror (errno));
+                               return (EXECUTION_FAILURE);
+                       }
+
+                       printf ("undefined\n");
+               } else {
+                       printf("%ld\n", val);
+               }
+               break;
+
+       case PATHCONF:
+               errno = 0;
+               if ((val = pathconf(vpath, cp->value)) == -1) {
+                       if (errno != 0) {
+                               if (all)
+                                       printf("getconf: %s: %s\n", vpath, strerror (errno));
+                               else
+                                       builtin_error ("%s: %s", vpath, strerror (errno));
+                               return (EXECUTION_FAILURE);
+                       }
+
+                       printf ("undefined\n");
+               } else {
+                       printf ("%ld\n", val);
+               }
+               break;
+       }
+
+       return (ferror(stdout) ? EXECUTION_FAILURE : EXECUTION_SUCCESS);
+}
+
+static int
+getconf_all()
+{
+       const struct conf_variable *cp;
+       int ret;
+
+       ret = EXECUTION_SUCCESS;
+       for (cp = conf_table; cp->name != NULL; cp++) {
+               printf("%-35s", cp->name);
+               if (getconf_print(cp, "/", 1) == EXECUTION_FAILURE)
+                       ret = EXECUTION_FAILURE;
+       }
+       return ret;
+}
+
+static int
+getconf_one(list)
+       WORD_LIST *list;
+{
+       const struct conf_variable *cp;
+       char *vname, *vpath;
+
+       vname = list->word->word;
+       vpath = (list->next && list->next->word) ? list->next->word->word
+                                                : (char *)NULL;
+
+       for (cp = conf_table; cp->name != NULL; cp++) {
+               if (strcmp(vname, cp->name) == 0)
+                       break;
+       }
+       if (cp->name == NULL) {
+               builtin_error ("%s: unknown variable", vname);
+               return (EXECUTION_FAILURE);
+       }
+
+       if (cp->type == PATHCONF) {
+               if (list->next == 0) {
+                       builtin_usage();
+                       return(EX_USAGE);
+               }
+       } else {
+               if (list->next) {
+                       builtin_usage();
+                       return(EX_USAGE);
+               }
+       }
+
+       return (getconf_print(cp, vpath, 0));
+}
+
+static char *getconf_doc[] = {
+       "getconf writes the current value of a configurable system limit or",
+       "option variable to the standard output.",
+       (char *)NULL
+};
+
+struct builtin getconf_struct = {
+       "getconf",
+       getconf_builtin,
+       BUILTIN_ENABLED,
+       getconf_doc,
+       "getconf -[ah] or getconf [-v spec] sysvar or getconf [-v spec] pathvar pathname",
+       0
+};
+
+#ifndef HAVE_CONFSTR
+static size_t
+confstr (name, buf, len)
+     int name;
+     char *buf;
+     size_t len;
+{
+  switch (name)
+    {
+    case _CS_PATH:
+      if (len > 0 && buf)
+       {
+          strncpy (buf, STANDARD_UTILS_PATH, len - 1);
+          buf[len - 1] = '\0';
+       }
+      return (sizeof (STANDARD_UTILS_PATH) + 1);
+    default:
+      errno = EINVAL;
+      return 0;
+    }
+}
+#endif
+
+#ifndef HAVE_SYSCONF
+extern long get_clk_tck __P((void));
+
+static long
+sysconf (name)
+     int name;
+{
+#  if defined (_POSIX_VERSION)
+  switch (name)
+    {
+    case _SC_ARG_MAX:
+      return _POSIX_ARG_MAX;
+    case _SC_CHILD_MAX:
+      return _POSIX_CHILD_MAX;
+    case _SC_CLK_TCK:
+      return get_clk_tck();
+    case _SC_NGROUPS_MAX:
+      return _POSIX_NGROUPS_MAX;
+    case _SC_OPEN_MAX:
+      return _POSIX_OPEN_MAX;
+    case _SC_JOB_CONTROL:
+      return _POSIX_JOB_CONTROL;
+    case _SC_SAVED_IDS:
+      return _POSIX_SAVED_IDS;
+    case _SC_VERSION:
+      return _POSIX_VERSION;
+    case _SC_BC_BASE_MAX:
+      return _POSIX2_BC_BASE_MAX;
+    case _SC_BC_DIM_MAX:
+      return _POSIX2_BC_DIM_MAX;
+    case _SC_BC_SCALE_MAX:
+      return  _POSIX2_BC_SCALE_MAX;
+    case _SC_BC_STRING_MAX:
+      return _POSIX2_BC_STRING_MAX;
+    case _SC_COLL_WEIGHTS_MAX:
+      return  -1;
+    case _SC_EXPR_NEST_MAX:
+      return _POSIX2_EXPR_NEST_MAX;
+    case _SC_LINE_MAX:
+      return _POSIX2_LINE_MAX;
+    case _SC_RE_DUP_MAX:
+      return _POSIX2_RE_DUP_MAX;
+    case _SC_STREAM_MAX:
+      return _POSIX_STREAM_MAX;
+    case _SC_TZNAME_MAX:
+      return _POSIX_TZNAME_MAX;
+    default:
+      errno = EINVAL;
+      return -1;
+    }
+#else
+  errno = EINVAL;
+  return -1;
+#endif
+}
+#endif
+
+#ifndef HAVE_PATHCONF
+static long
+pathconf (path, name)
+     const char *path;
+     int name;
+{
+#if defined (_POSIX_VERSION)
+  switch (name)
+    {
+    case _PC_LINK_MAX:
+      return _POSIX_LINK_MAX;
+    case _PC_MAX_CANON:
+      return _POSIX_MAX_CANON;
+    case _PC_MAX_INPUT:
+      return _POSIX_MAX_INPUT;
+    case _PC_NAME_MAX:
+      return _POSIX_NAME_MAX;
+    case _PC_PATH_MAX:
+      return _POSIX_PATH_MAX;
+    case _PC_PIPE_BUF:
+      return _POSIX_PIPE_BUF;
+    case _PC_CHOWN_RESTRICTED:
+#ifdef _POSIX_CHOWN_RESTRICTED
+      return _POSIX_CHOWN_RESTRICTED;
+#else
+      return -1;
+#endif
+    case _PC_NO_TRUNC:
+#ifdef _POSIX_NO_TRUNC
+      return _POSIX_NO_TRUNC;
+#else
+      return -1;
+#endif
+    case _PC_VDISABLE:
+#ifdef _POSIX_VDISABLE
+      return _POSIX_VDISABLE;
+#else
+      return -1;
+#endif
+    default:
+      errno = EINVAL;
+      return -1;
+    }
+#else
+  errno = EINVAL;
+  return -1;
+#endif
+}
+#endif
index 5dc5d70d0ddb2d9edada52ba3a641a4785605f2a..1eb28ee3c5c24fb192225aca0b80b872e0ddea7d 100644 (file)
@@ -128,6 +128,8 @@ head_builtin (list)
 }
 
 char *head_doc[] = {
+       "Display lines from beginning of file.",
+       "",
        "Copy the first N lines from the input files to the standard output.",
        "N is supplied as an argument to the `-n' option.  If N is not given,",
        "the first ten lines are copied.",
index 90526895534f1ee6b3b398ec863110bf836a0212..5dc5d70d0ddb2d9edada52ba3a641a4785605f2a 100644 (file)
@@ -21,6 +21,7 @@
 #include "builtins.h"
 #include "shell.h"
 #include "bashgetopt.h"
+#include "common.h"
 
 #if !defined (errno)
 extern int errno;
index 1d68c6fc8ae890b8c58c239784721ff395fda1c0..bff6e76c5f0223c366305d4c0a41305b31a7031a 100644 (file)
@@ -41,8 +41,11 @@ hello_builtin (list)
 }
 
 /* An array of strings forming the `long' documentation for a builtin xxx,
-   which is printed by `help xxx'.  It must end with a NULL. */
+   which is printed by `help xxx'.  It must end with a NULL.  By convention,
+   the first line is a short description. */
 char *hello_doc[] = {
+       "Sample builtin.",
+       "",
        "this is the long doc for the sample hello builtin",
        (char *)NULL
 };
diff --git a/examples/loadables/hello.c~ b/examples/loadables/hello.c~
new file mode 100644 (file)
index 0000000..1d68c6f
--- /dev/null
@@ -0,0 +1,61 @@
+/* Sample builtin to be dynamically loaded with enable -f and create a new
+   builtin. */
+
+/* See Makefile for compilation details. */
+
+#include <config.h>
+
+#if defined (HAVE_UNISTD_H)
+#  include <unistd.h>
+#endif
+
+#include <stdio.h>
+
+#include "builtins.h"
+#include "shell.h"
+#include "bashgetopt.h"
+
+/* A builtin `xxx' is normally implemented with an `xxx_builtin' function.
+   If you're converting a command that uses the normal Unix argc/argv
+   calling convention, use argv = make_builtin_argv (list, &argc) and call
+   the original `main' something like `xxx_main'.  Look at cat.c for an
+   example.
+
+   Builtins should use internal_getopt to parse options.  It is the same as
+   getopt(3), but it takes a WORD_LIST *.  Look at print.c for an example
+   of its use.
+
+   If the builtin takes no options, call no_options(list) before doing
+   anything else.  If it returns a non-zero value, your builtin should
+   immediately return EX_USAGE.  Look at logname.c for an example.
+
+   A builtin command returns EXECUTION_SUCCESS for success and
+   EXECUTION_FAILURE to indicate failure. */
+int
+hello_builtin (list)
+     WORD_LIST *list;
+{
+  printf("hello world\n");
+  fflush (stdout);
+  return (EXECUTION_SUCCESS);
+}
+
+/* An array of strings forming the `long' documentation for a builtin xxx,
+   which is printed by `help xxx'.  It must end with a NULL. */
+char *hello_doc[] = {
+       "this is the long doc for the sample hello builtin",
+       (char *)NULL
+};
+
+/* The standard structure describing a builtin command.  bash keeps an array
+   of these structures.  The flags must include BUILTIN_ENABLED so the
+   builtin can be used. */
+struct builtin hello_struct = {
+       "hello",                /* builtin name */
+       hello_builtin,          /* function implementing the builtin */
+       BUILTIN_ENABLED,        /* initial flags for builtin */
+       hello_doc,              /* array of long documentation strings. */
+       "hello",                /* usage synopsis; becomes short_doc */
+       0                       /* reserved for internal use */
+};
+       
index 945190d7c1c17a212a34e597ad4225abb06ac515..2d958a79c7418b0dfee8046ff60551018b9ea1e5 100644 (file)
@@ -294,7 +294,9 @@ id_prall (uname)
 }
 
 char *id_doc[] = {
-       "return information about user identity",
+       "Display information about user."
+       "",
+       "Return information about user identity",
        (char *)NULL
 };
 
diff --git a/examples/loadables/id.c~ b/examples/loadables/id.c~
new file mode 100644 (file)
index 0000000..945190d
--- /dev/null
@@ -0,0 +1,308 @@
+/*
+ * id - POSIX.2 user identity
+ *
+ * (INCOMPLETE -- supplementary groups for other users not yet done)
+ *
+ * usage: id [-Ggu] [-nr] [user]
+ *
+ * The default output format looks something like:
+ *     uid=xxx(chet) gid=xx groups=aa(aname), bb(bname), cc(cname)
+ */
+
+#include <config.h>
+#include <stdio.h>
+#include "bashtypes.h"
+#include <pwd.h>
+#include <grp.h>
+#include "bashansi.h"
+
+#ifdef HAVE_LIMITS_H
+#  include <limits.h>
+#else
+#  include <sys/param.h>
+#endif
+
+#if !defined (HAVE_GETPW_DECLS)
+extern struct passwd *getpwuid ();
+#endif
+extern struct group *getgrgid ();
+
+#include "shell.h"
+#include "builtins.h"
+#include "stdc.h"
+#include "common.h"
+#include "bashgetopt.h"
+
+#define ID_ALLGROUPS   0x001           /* -G */
+#define ID_GIDONLY     0x002           /* -g */
+#define ID_USENAME     0x004           /* -n */
+#define ID_USEREAL     0x008           /* -r */
+#define ID_USERONLY    0x010           /* -u */
+
+#define ID_FLAGSET(s)  ((id_flags & (s)) != 0)
+
+static int id_flags;
+
+static uid_t ruid, euid;
+static gid_t rgid, egid;
+
+static char *id_user;
+
+static int inituser ();
+
+static int id_pruser ();
+static int id_prgrp ();
+static int id_prgroups ();
+static int id_prall ();
+
+int
+id_builtin (list)
+     WORD_LIST *list;
+{
+  int opt;
+  char *user;
+
+  id_flags = 0;
+  reset_internal_getopt ();
+  while ((opt = internal_getopt (list, "Ggnru")) != -1)
+    {
+      switch (opt)
+       {
+       case 'G': id_flags |= ID_ALLGROUPS; break;
+       case 'g': id_flags |= ID_GIDONLY; break;
+       case 'n': id_flags |= ID_USENAME; break;
+       case 'r': id_flags |= ID_USEREAL; break;
+       case 'u': id_flags |= ID_USERONLY; break;
+       default:
+         builtin_usage ();
+         return (EX_USAGE);
+       }
+    }
+  list = loptend;
+
+  user = list ? list->word->word : (char *)NULL;
+
+  /* Check for some invalid option combinations */
+  opt = ID_FLAGSET (ID_ALLGROUPS) + ID_FLAGSET (ID_GIDONLY) + ID_FLAGSET (ID_USERONLY);
+  if (opt > 1 || (opt == 0 && ((id_flags & (ID_USEREAL|ID_USENAME)) != 0)))
+    {
+      builtin_usage ();
+      return (EX_USAGE);
+    }
+
+  if (list && list->next)
+    {
+      builtin_usage ();
+      return (EX_USAGE);
+    }
+
+  if (inituser (user) < 0)
+    return (EXECUTION_FAILURE);
+
+  opt = 0;
+  if (id_flags & ID_USERONLY)
+    opt += id_pruser ((id_flags & ID_USEREAL) ? ruid : euid);
+  else if (id_flags & ID_GIDONLY)
+    opt += id_prgrp ((id_flags & ID_USEREAL) ? rgid : egid);
+  else if (id_flags & ID_ALLGROUPS)
+    opt += id_prgroups (user);
+  else
+    opt += id_prall (user);
+  putchar ('\n');
+  fflush (stdout);
+
+  return (opt == 0 ? EXECUTION_SUCCESS : EXECUTION_FAILURE);
+}
+
+static int
+inituser (uname)
+     char *uname;
+{
+  struct passwd *pwd;
+
+  if (uname)
+    {
+      pwd = getpwnam (uname);
+      if (pwd == 0)
+       {
+         builtin_error ("%s: no such user", uname);
+         return -1;
+       }
+      ruid = euid = pwd->pw_uid;
+      rgid = egid = pwd->pw_gid;
+    }
+  else
+    {
+      ruid = current_user.uid;
+      euid = current_user.euid;
+      rgid = current_user.gid;
+      egid = current_user.egid;
+    }
+  return 0;
+}
+
+/* Print the name or value of user ID UID. */
+static int
+id_pruser (uid)
+     int uid;
+{
+  struct passwd *pwd = NULL;
+  int r;
+
+  r = 0;
+  if (id_flags & ID_USENAME)
+    {
+      pwd = getpwuid (uid);
+      if (pwd == NULL)
+        r = 1;
+    }
+  if (pwd)
+    printf ("%s", pwd->pw_name);
+  else
+    printf ("%u", (unsigned) uid);
+      
+  return r;
+}
+
+/* Print the name or value of group ID GID. */
+
+static int
+id_prgrp (gid)
+     int gid;
+{
+  struct group *grp = NULL;
+  int r;
+
+  r = 0;
+  if (id_flags & ID_USENAME)
+    {
+      grp = getgrgid (gid);
+      if (grp == NULL)
+       r = 1;
+    }
+
+  if (grp)
+    printf ("%s", grp->gr_name);
+  else
+    printf ("%u", (unsigned) gid);
+
+  return r;
+}
+
+static int
+id_prgroups (uname)
+     char *uname;
+{
+  int *glist, ng, i, r;
+
+  r = 0;
+  id_prgrp (rgid);
+  if (egid != rgid)
+    {
+      putchar (' ');
+      id_prgrp (egid);
+    }
+
+  if (uname)
+    {
+      builtin_error ("supplementary groups for other users not yet implemented");
+      glist = (int *)NULL;
+      ng = 0;
+      r = 1;
+    }
+  else
+    glist = get_group_array (&ng);
+
+  for (i = 0; i < ng; i++)
+    if (glist[i] != rgid && glist[i] != egid)
+      {
+       putchar (' ');
+       id_prgrp (glist[i]);
+      }
+  
+  return r;
+}
+
+static int
+id_prall (uname)
+     char *uname;
+{
+  int r, i, ng, *glist;
+  struct passwd *pwd;
+  struct group *grp;
+
+  r = 0;
+  printf ("uid=%u", (unsigned) ruid);
+  pwd = getpwuid (ruid);
+  if (pwd == NULL)
+    r = 1;
+  else
+    printf ("(%s)", pwd->pw_name);
+
+  printf (" gid=%u", (unsigned) rgid);
+  grp = getgrgid (rgid);
+  if (grp == NULL)
+    r = 1;
+  else
+    printf ("(%s)", grp->gr_name);
+
+  if (euid != ruid)
+    { 
+      printf (" euid=%u", (unsigned) euid);
+      pwd = getpwuid (euid);
+      if (pwd == NULL)
+       r = 1;
+      else 
+       printf ("(%s)", pwd->pw_name);
+    }
+
+  if (egid != rgid) 
+    {
+      printf (" egid=%u", (unsigned) egid);
+      grp = getgrgid (egid);
+      if (grp == NULL)
+       r = 1;
+      else
+       printf ("(%s)", grp->gr_name);
+    }
+
+  if (uname)
+    {
+      builtin_error ("supplementary groups for other users not yet implemented");
+      glist = (int *)NULL;
+      ng = 0;
+      r = 1;
+    }
+  else
+    glist = get_group_array (&ng);
+
+  if (ng > 0)
+    printf (" groups=");
+  for (i = 0; i < ng; i++)
+    {
+      if (i > 0)
+       printf (", ");
+      printf ("%u", (unsigned) glist[i]);
+      grp = getgrgid (glist[i]);
+      if (grp == NULL)
+       r = 1;
+      else
+       printf ("(%s)", grp->gr_name);
+    }
+
+  return r;
+}
+
+char *id_doc[] = {
+       "return information about user identity",
+       (char *)NULL
+};
+
+struct builtin id_struct = {
+       "id",
+       id_builtin,
+       BUILTIN_ENABLED,
+       id_doc,
+       "id [user]\n\tid -G [-n] [user]\n\tid -g [-nr] [user]\n\tid -u [-nr] [user]",
+       0
+};
index 80adf5fb3c9a5ae206465d9b066366140c4d3104..b6293749fbe51500f4eeb2856a1a880fcf844edd 100644 (file)
@@ -187,6 +187,8 @@ dolink (src, dst, flags)
 }
 
 char *ln_doc[] = {
+       "Link files.",
+       "",
        "Create a new directory entry with the same modes as the original",
        "file.  The -f option means to unlink any existing file, permitting",
        "the link to occur.  The -s option means to create a symbolic link.",
index e3234e3c9f4ee8c3886a649590aba84be01d17e7..80adf5fb3c9a5ae206465d9b066366140c4d3104 100644 (file)
@@ -18,6 +18,7 @@
 #include "builtins.h"
 #include "shell.h"
 #include "bashgetopt.h"
+#include "common.h"
 
 #if !defined (errno)
 extern int errno;
index 3baecb24ff29268b04f9d4cc122862c472f98b6d..c3cfbbe09103ddb83faed8cd3bc99833f64d7fea 100644 (file)
@@ -36,7 +36,9 @@ logname_builtin (list)
 }
 
 char *logname_doc[] = {
-       "write the current user's login name to the standard output",
+       "Display user login name.",
+       "",
+       "Write the current user's login name to the standard output",
        "and exit.  logname ignores the LOGNAME and USER variables.",
        "logname ignores any non-option arguments.",
        (char *)NULL
index 00cfd19a9f7012f0e7a01647735145c4658dce67..3baecb24ff29268b04f9d4cc122862c472f98b6d 100644 (file)
@@ -11,6 +11,7 @@
 
 #include "builtins.h"
 #include "shell.h"
+#include "common.h"
 
 #if !defined (errno)
 extern int errno;
index 6ccffdbe0718cd8f083094925e4eda3951e00950..5518fb9a07bc6dc0079dfa4c9e198fbb4cc234d8 100644 (file)
@@ -192,6 +192,8 @@ make_path (path, nmode, parent_mode)
 }
 
 char *mkdir_doc[] = {
+       "Create directories.",
+       "",
        "Make directories.  Create the directories named as arguments, in",
        "the order specified, using mode rwxrwxrwx as modified by the current",
        "umask (see `help umask').  The -m option causes the file permission",
index cd6e5f96db2d2fd83b0455489571b6e5c9a6be1f..6ccffdbe0718cd8f083094925e4eda3951e00950 100644 (file)
@@ -16,6 +16,7 @@
 #include "builtins.h"
 #include "shell.h"
 #include "bashgetopt.h"
+#include "common.h"
 
 #if !defined (errno)
 extern int errno;
index abdce0092b6542c50de5955bce244536e973a7cf..03cad226ed316366e3c85b508e429fe56f84589d 100644 (file)
@@ -56,6 +56,8 @@ enable_mypid_builtin(WORD_LIST *list)
 }
 
 char const *enable_mypid_doc[] = {
+  "Enable $MYPID.",
+  "",
   "Enables use of the ${MYPID} dynamic variable.  ",
   "It will yield the current pid of a subshell.",
   (char *)0
diff --git a/examples/loadables/mypid.c~ b/examples/loadables/mypid.c~
new file mode 100644 (file)
index 0000000..abdce00
--- /dev/null
@@ -0,0 +1,71 @@
+/* This module should be dynamically loaded with enable -f
+ * which would create a new builtin named mypid. You'll need
+ * the source code for GNU bash to recompile this module.
+ *
+ * Then, from within bash, enable -f ./mypid enable_mypid, where ./mypid
+ * is the binary obtained from running make. Hereafter, `${MYPID}'
+ * is a shell builtin variable.
+ */
+
+#include <stdio.h>
+#include <errno.h>
+#include <string.h>
+
+#include "builtins.h"
+#include "shell.h"
+
+#define INIT_DYNAMIC_VAR(var, val, gfunc, afunc) \
+  do \
+    { SHELL_VAR *v = bind_variable (var, (val), 0); \
+      v->dynamic_value = gfunc; \
+      v->assign_func = afunc; \
+    } \
+  while (0)
+
+static SHELL_VAR *
+assign_mypid (
+     SHELL_VAR *self,
+     char *value,
+     arrayind_t unused )
+{
+  return (self);
+}
+
+static SHELL_VAR *
+get_mypid (SHELL_VAR *var)
+{
+  int rv;
+  char *p;
+
+  rv = getpid();
+  p = itos (rv);
+
+  FREE (value_cell (var));
+
+  VSETATTR (var, att_integer);
+  var_setvalue (var, p);
+  return (var);
+}
+
+int
+enable_mypid_builtin(WORD_LIST *list)
+{
+  INIT_DYNAMIC_VAR ("MYPID", (char *)NULL, get_mypid, assign_mypid);
+
+  return 0;
+}
+
+char const *enable_mypid_doc[] = {
+  "Enables use of the ${MYPID} dynamic variable.  ",
+  "It will yield the current pid of a subshell.",
+  (char *)0
+};
+
+struct builtin enable_mypid_struct = {
+  "enable_mypid",
+  enable_mypid_builtin,
+  BUILTIN_ENABLED,
+  (char**)(void*)enable_mypid_doc,
+  "enable_mypid N",
+  0
+};
index 521ee2c6df950f845e7c798db1b969cacfce3d15..4bd9009755b19cb25ec54f6c606789211252368f 100644 (file)
@@ -17,6 +17,8 @@ WORD_LIST *list;
 }
 
 char *necho_doc[] = {
+       "Display arguments.",
+       "",
        "Print the arguments to the standard ouput separated",
        "by space characters and terminated with a newline.",
        (char *)NULL
diff --git a/examples/loadables/necho.c~ b/examples/loadables/necho.c~
new file mode 100644 (file)
index 0000000..521ee2c
--- /dev/null
@@ -0,0 +1,33 @@
+/* necho - echo without options or argument interpretation */
+
+/* Sample builtin to be dynamically loaded with enable -f and replace an
+   existing builtin. */
+
+#include <stdio.h>
+#include "builtins.h"
+#include "shell.h"
+
+necho_builtin (list)
+WORD_LIST *list;
+{
+       print_word_list (list, " ");
+       printf("\n");
+       fflush (stdout);
+       return (EXECUTION_SUCCESS);
+}
+
+char *necho_doc[] = {
+       "Print the arguments to the standard ouput separated",
+       "by space characters and terminated with a newline.",
+       (char *)NULL
+};
+       
+struct builtin necho_struct = {
+       "echo",
+       necho_builtin,
+       BUILTIN_ENABLED,
+       necho_doc,
+       "echo [args]",
+       0
+};
+       
index 5b29c35af7b315be2a4eb5f7acc6cfe4463c0565..68534e9dcd0779355d27b443944f5d54d0969a3b 100644 (file)
@@ -113,6 +113,8 @@ pathchk_builtin (list)
 }
 
 char *pathchk_doc[] = {
+       "Check pathnames for validity.",
+       "",
        "Check each pathname argument for validity (i.e., it may be used to",
        "create or access a file without casuing syntax errors) and portability",
        "(i.e., no filename truncation will result).  If the `-p' option is",
index 2e36f8f6b69b3e3fd661a93cd5a9515deb2cfe32..5b29c35af7b315be2a4eb5f7acc6cfe4463c0565 100644 (file)
@@ -45,6 +45,7 @@
 #include "stdc.h"
 #include "bashgetopt.h"
 #include "maxpath.h"
+#include "common.h"
 
 #if !defined (errno)
 extern int errno;
index 02d3c92a72d0199ff28cb701a9f1b600c1f2093a..0e48230ccbe85ba4721aebcccf37d87f4a8c6bd4 100644 (file)
@@ -32,6 +32,8 @@ static FILE *ofp;
 extern char *this_command_name;
 
 static char *print_doc[] = {
+  "Display arguments.",
+  "",
   "Output the arguments.  The -f option means to use the argument as a",
   "format string as would be supplied to printf(1).  The rest of the",
   "options are as in ksh.",
index ad658a7f861af4381c91c8299ca5db2d1f8878e7..02d3c92a72d0199ff28cb701a9f1b600c1f2093a 100644 (file)
@@ -17,6 +17,8 @@
 #include "builtins.h"
 #include "stdc.h"
 #include "bashgetopt.h"
+#include "builtext.h"
+#include "common.h"
 
 #if !defined (errno)
 extern int errno;
index 29a82dc09da969891e8c095fbbad8e73977baed0..d9567e14f7d9dda332847fdb80f84e096ea908b8 100644 (file)
@@ -58,7 +58,9 @@ printenv_builtin (list)
 }
 
 char *printenv_doc[] = {
-       "print values of environment variables",
+       "Display environment.",
+       "",
+       "Print names and values of environment variables",
        (char *)NULL
 };
 
index 16f398fc82a7ab8b3286476a304448ff913ff810..29a82dc09da969891e8c095fbbad8e73977baed0 100644 (file)
@@ -11,6 +11,7 @@
 #include "builtins.h"
 #include "shell.h"
 #include "bashgetopt.h"
+#include "common.h"
 
 extern char **export_env;
 
index fea4b008451f11f4a733c45aa9a2c513d7459a6c..f7aa86624a38e737deee18343d7249f7ad4edbb4 100644 (file)
@@ -79,6 +79,8 @@ push_builtin (list)
 }
 
 char *push_doc[] = {
+       "Create child shell.",
+       "",
        "Create a child that is an exact duplicate of the running shell",
        "and wait for it to exit.  The $SHLVL, $!, $$, and $PPID variables",
        "are adjusted in the child.  The return value is the exit status",
index 497ecd0e7e0da8a9641630e7241e62394f1c7d6d..fea4b008451f11f4a733c45aa9a2c513d7459a6c 100644 (file)
@@ -11,6 +11,7 @@
 #include "shell.h"
 #include "jobs.h"
 #include "bashgetopt.h"
+#include "common.h"
 
 #ifndef errno
 extern int errno;
index d9454402512e2c651bf562bfa72716c2768d74a3..3a4e30d8ac9ea8ab69bee4a6103caba15e59f4ac 100644 (file)
@@ -102,6 +102,8 @@ WORD_LIST   *list;
 }
 
 char *realpath_doc[] = {
+       "Display pathname in canonical form.",
+       "",
        "Display the canonicalized version of each PATHNAME argument, resolving",
        "symbolic links.  The -c option checks whether or not each resolved name",
        "exists.  The -s option produces no output; the exit status determines the",
index 16478b79fe3cd1a8181bc8775d56720a4664bb30..d9454402512e2c651bf562bfa72716c2768d74a3 100644 (file)
@@ -34,6 +34,7 @@
 #include "builtins.h"
 #include "shell.h"
 #include "bashgetopt.h"
+#include "common.h"
 
 #ifndef errno
 extern int     errno;
@@ -67,14 +68,14 @@ WORD_LIST   *list;
                        vflag = 1;
                        break;
                default:
-                       usage();
+                       builtin_usage();
                }
        }
 
        list = loptend;
 
        if (list == 0)
-               usage();
+               builtin_usage();
 
        for (es = EXECUTION_SUCCESS; list; list = list->next) {
                p = list->word->word;
index e52247c3bbd9c371ab41d71cab516de6eb7d71a0..5ffc46841e32c96bede756d75f86fd977f5bb874 100644 (file)
@@ -34,6 +34,8 @@ rmdir_builtin (list)
 }
 
 char *rmdir_doc[] = {
+       "Remove directory.",
+       "",
        "rmdir removes the directory entry specified by each argument,",
        "provided the directory is empty.",
        (char *)NULL
index 8d0f06ac6f5a18cfa18a4d225d0f50062d059110..e52247c3bbd9c371ab41d71cab516de6eb7d71a0 100644 (file)
@@ -8,6 +8,7 @@
 #include <errno.h>
 #include "builtins.h"
 #include "shell.h"
+#include "common.h"
 
 #if !defined (errno)
 extern int errno;
index 427298026153007a963bb3064c647dd987bb9d01..5839cdffd54e5ee897ca8a1ee1ac2b4dfe74ff9c 100644 (file)
@@ -133,6 +133,8 @@ WORD_LIST   *list;
 }
 
 static char *sleep_doc[] = {
+       "Suspend execution for specified period.",
+       ""
        "sleep suspends execution for a minimum of SECONDS[.FRACTION] seconds.",
        (char *)NULL
 };
index 10a62cf14ddc17f0ccf25b2d375ab77493d967f3..427298026153007a963bb3064c647dd987bb9d01 100644 (file)
@@ -27,6 +27,7 @@
 
 #include "shell.h"
 #include "builtins.h"
+#include "common.h"
 
 #define RETURN(x) \
        do { \
index a56a49b3c8bb6d6a7fdbcfe771f76aa880157d50..3940cd1064a01471c86be76d637d69475768bd01 100644 (file)
@@ -102,6 +102,8 @@ extern char *single_quote ();
 extern char **make_builtin_argv ();
 
 static char *sprintf_doc[] = {
+  "Format arguments and assign result to variable.",
+  "",
   "sprintf formats and outputs its arguments, after the second, under control",
   "of the format and assigns the result to the variable named by its first",
   "argument. The format is a character string which contains three types",
diff --git a/examples/loadables/sprintf.c~ b/examples/loadables/sprintf.c~
new file mode 100644 (file)
index 0000000..a56a49b
--- /dev/null
@@ -0,0 +1,514 @@
+/*
+ * Copyright (c) 1989, 1993
+ *     The Regents of the University of California.  All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ *    must display the following acknowledgement:
+ *     This product includes software developed by the University of
+ *     California, Berkeley and its contributors.
+ * 4. Neither the name of the University nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+#if !defined(BUILTIN) && !defined(SHELL)
+#ifndef lint
+static char copyright[] =
+"@(#) Copyright (c) 1989, 1993\n\
+       The Regents of the University of California.  All rights reserved.\n";
+#endif /* not lint */
+#endif
+
+#ifndef lint
+static char sccsid[] = "@(#)printf.c   8.1 (Berkeley) 7/20/93";
+#endif /* not lint */
+
+#include <sys/types.h>
+
+#include <errno.h>
+#include <limits.h>
+#include <stdio.h>
+
+#include "bashansi.h"
+#include "shell.h"
+#include "builtins.h"
+#include "stdc.h"
+
+#if !defined (errno)
+extern int errno;
+#endif
+
+static char    sbuf[1024];
+static int     sblen;
+
+/* Gee, I wish sprintf could be reliably counted upon to return the
+   number of characters written :-( */
+#define PF(f, func) \
+do { \
+       if (fieldwidth) \
+               if (precision) \
+                       sprintf(sbuf, f, fieldwidth, precision, func); \
+               else \
+                       sprintf(sbuf, f, fieldwidth, func); \
+       else if (precision) \
+               sprintf(sbuf, f, precision, func); \
+       else \
+               sprintf(sbuf, f, func); \
+       spaddstr (sbuf, strlen (sbuf)); \
+} while (0)
+
+static int      asciicode __P((void));
+static void     escape __P((char *));
+static int      getchr __P((void));
+static double   getdouble __P((void));
+static int      getint __P((int *));
+static int      getlong __P((long *));
+static char    *getstr __P((void));
+static char    *mklong __P((char *, int));
+static void     usage __P((void));
+
+static char **gargv;
+
+static char *outstr;
+static int outsize;
+static int outind;
+
+int sprintf_builtin ();
+static int sprintf_main ();
+static void spaddstr ();
+
+extern char *this_command_name;
+extern char *single_quote ();
+extern char **make_builtin_argv ();
+
+static char *sprintf_doc[] = {
+  "sprintf formats and outputs its arguments, after the second, under control",
+  "of the format and assigns the result to the variable named by its first",
+  "argument. The format is a character string which contains three types",
+  "of objects: plain characters, which are simply copied to the output string,",
+  "character escape sequences which are converted and copied to the output",
+  "string, and format specifications, each of which causes printing of the",
+  "next successive argument.  In addition to the standard sprintf(3) formats,",
+  "%b means to expand escapes in the corresponding argument, and %q means",
+  "to quote the argument in a way that can be reused as shell input.  Each",
+  "one of the format specifications must not expand to more than 1024",
+  "characters, though there is no limit on the total size of the output",
+  "string.",
+  (char *)NULL
+};
+
+struct builtin sprintf_struct = {
+       "sprintf",
+       sprintf_builtin,
+       BUILTIN_ENABLED,
+       sprintf_doc,
+       "sprintf var format [arguments]",
+       (char *)0
+};
+
+int
+sprintf_builtin (list)
+     WORD_LIST *list;
+{
+  int c, r;
+  char **v, *varname;
+  WORD_LIST *l;
+  SHELL_VAR *var;
+
+  if (list == 0)
+    {
+      builtin_usage ();
+      return (EXECUTION_FAILURE);
+    }
+
+  varname = list->word->word;
+  list = list->next;
+
+  if (legal_identifier (varname) == 0)
+    {
+      builtin_error ("%s: not a legal variable name", varname);
+      return (EXECUTION_FAILURE);
+    }
+
+  outind = 0;
+  if (outstr == 0)
+    outstr = xmalloc (outsize = 64);
+  outstr[0] = '\0';
+
+  v = make_builtin_argv (list, &c);
+  r = sprintf_main (c, v);
+  free (v);
+
+  var = bind_variable (varname, outstr, 0);
+  if (readonly_p (var))
+    {
+      builtin_error ("%s: readonly variable", varname);
+      return (EXECUTION_FAILURE);
+    }
+
+  return r;
+}
+
+static void
+spaddstr(str, len)
+     char *str;
+     int len;
+{
+  RESIZE_MALLOCED_BUFFER (outstr, outind, len, outsize, 64);
+  strcpy (outstr + outind, str);
+  outind += len;
+}
+
+static int
+sprintf_main(argc, argv)
+       int argc;
+       char *argv[];
+{
+       extern int optind;
+       static char *skip1, *skip2;
+       int ch, end, fieldwidth, precision;
+       char convch, nextch, *format, *fmt, *start;
+
+       while ((ch = getopt(argc, argv, "")) != EOF)
+               switch (ch) {
+               case '?':
+               default:
+                       usage();
+                       return (1);
+               }
+       argc -= optind;
+       argv += optind;
+
+       if (argc < 1) {
+               usage();
+               return (1);
+       }
+
+       /*
+        * Basic algorithm is to scan the format string for conversion
+        * specifications -- once one is found, find out if the field
+        * width or precision is a '*'; if it is, gather up value.  Note,
+        * format strings are reused as necessary to use up the provided
+        * arguments, arguments of zero/null string are provided to use
+        * up the format string.
+        */
+       skip1 = "#-+ 0";
+       skip2 = "*0123456789";
+
+       escape(fmt = format = *argv);           /* backslash interpretation */
+       gargv = ++argv;
+       for (;;) {
+               end = 0;
+               /* find next format specification */
+next:          for (start = fmt;; ++fmt) {
+                       if (!*fmt) {
+                               /* avoid infinite loop */
+                               if (end == 1) {
+                                       warnx("missing format character",
+                                           NULL, NULL);
+                                       return (1);
+                               }
+                               end = 1;
+                               if (fmt > start)
+                                       (void)printf("%s", start);
+                               if (!*gargv)
+                                       return (0);
+                               fmt = format;
+                               goto next;
+                       }
+                       /* %% prints a % */
+                       if (*fmt == '%') {
+                               if (*++fmt != '%')
+                                       break;
+                               *fmt++ = '\0';
+                               (void)printf("%s", start);
+                               goto next;
+                       }
+               }
+
+               /* skip to field width */
+               for (; strchr(skip1, *fmt); ++fmt);
+               if (*fmt == '*') {
+                       if (getint(&fieldwidth))
+                               return (1);
+               } else
+                       fieldwidth = 0;
+
+               /* skip to possible '.', get following precision */
+               for (; strchr(skip2, *fmt); ++fmt);
+               if (*fmt == '.')
+                       ++fmt;
+               if (*fmt == '*') {
+                       if (getint(&precision))
+                               return (1);
+               } else
+                       precision = 0;
+
+               /* skip to conversion char */
+               for (; strchr(skip2, *fmt); ++fmt);
+               if (!*fmt) {
+                       warnx("missing format character", NULL, NULL);
+                       return (1);
+               }
+
+               convch = *fmt;
+               nextch = *++fmt;
+               *fmt = '\0';
+               switch(convch) {
+               case 'c': {
+                       char p;
+
+                       p = getchr();
+                       PF(start, p);
+                       break;
+               }
+               case 's': {
+                       char *p;
+
+                       p = getstr();
+                       PF(start, p);
+                       break;
+               }
+               case 'b': {             /* expand escapes in argument */
+                       char *p;
+
+                       p = getstr();
+                       escape(p);
+                       PF("%s", p);
+                       break;
+               }
+               case 'q': {             /* print with shell single quoting */
+                       char *p, *p2;
+
+                       p = getstr();
+                       p2 = single_quote(p);
+                       PF("%s", p2);
+                       free(p2);
+                       break;
+               }
+               case 'd': case 'i': case 'o': case 'u': case 'x': case 'X': {
+                       long p;
+                       char *f;
+                       
+                       if ((f = mklong(start, convch)) == NULL)
+                               return (1);
+                       if (getlong(&p))
+                               return (1);
+                       PF(f, p);
+                       break;
+               }
+               case 'e': case 'E': case 'f': case 'g': case 'G': {
+                       double p;
+
+                       p = getdouble();
+                       PF(start, p);
+                       break;
+               }
+               default:
+                       warnx("illegal format character", NULL, NULL);
+                       return (1);
+               }
+               *fmt = nextch;
+       }
+       /* NOTREACHED */
+}
+
+static char *
+mklong(str, ch)
+       char *str;
+       int ch;
+{
+       static char copy[64];
+       int len;
+
+       len = strlen(str) + 2;
+       memmove(copy, str, len - 3);
+       copy[len - 3] = 'l';
+       copy[len - 2] = ch;
+       copy[len - 1] = '\0';
+       return (copy);
+}
+
+static void
+escape(fmt)
+       register char *fmt;
+{
+       register char *store;
+       register int value, c;
+
+       for (store = fmt; c = *fmt; ++fmt, ++store) {
+               if (c != '\\') {
+                       *store = c;
+                       continue;
+               }
+               switch (*++fmt) {
+               case '\0':              /* EOS, user error */
+                       *store = '\\';
+                       *++store = '\0';
+                       return;
+               case '\\':              /* backslash */
+               case '\'':              /* single quote */
+                       *store = *fmt;
+                       break;
+               case 'a':               /* bell/alert */
+                       *store = '\7';
+                       break;
+               case 'b':               /* backspace */
+                       *store = '\b';
+                       break;
+               case 'c':
+                       return;
+               case 'e':
+               case 'E':
+                       *store = '\033';
+                       break;
+               case 'f':               /* form-feed */
+                       *store = '\f';
+                       break;
+               case 'n':               /* newline */
+                       *store = '\n';
+                       break;
+               case 'r':               /* carriage-return */
+                       *store = '\r';
+                       break;
+               case 't':               /* horizontal tab */
+                       *store = '\t';
+                       break;
+               case 'v':               /* vertical tab */
+                       *store = '\13';
+                       break;
+                                       /* octal constant */
+               case '0': case '1': case '2': case '3':
+               case '4': case '5': case '6': case '7':
+                       for (c = 3, value = 0;
+                           c-- && *fmt >= '0' && *fmt <= '7'; ++fmt) {
+                               value <<= 3;
+                               value += *fmt - '0';
+                       }
+                       --fmt;
+                       *store = value;
+                       break;
+               default:
+                       *store = *fmt;
+                       break;
+               }
+       }
+       *store = '\0';
+}
+
+static int
+getchr()
+{
+       if (!*gargv)
+               return ('\0');
+       return ((int)**gargv++);
+}
+
+static char *
+getstr()
+{
+       if (!*gargv)
+               return ("");
+       return (*gargv++);
+}
+
+static char *Number = "+-.0123456789";
+static int
+getint(ip)
+       int *ip;
+{
+       long val;
+
+       if (getlong(&val))
+               return (1);
+       if (val > INT_MAX) {
+               warnx("%s: %s", *gargv, strerror(ERANGE));
+               return (1);
+       }
+       *ip = val;
+       return (0);
+}
+
+static int
+getlong(lp)
+       long *lp;
+{
+       long val;
+       char *ep;
+
+       if (!*gargv) {
+               *lp = 0;
+               return (0);
+       }
+       if (strchr(Number, **gargv)) {
+               errno = 0;
+               val = strtol(*gargv, &ep, 0);
+               if (*ep != '\0') {
+                       warnx("%s: illegal number", *gargv, NULL);
+                       return (1);
+               }
+               if (errno == ERANGE)
+                       if (val == LONG_MAX) {
+                               warnx("%s: %s", *gargv, strerror(ERANGE));
+                               return (1);
+                       }
+                       if (val == LONG_MIN) {
+                               warnx("%s: %s", *gargv, strerror(ERANGE));
+                               return (1);
+                       }
+                       
+               *lp = val;
+               ++gargv;
+               return (0);
+       }
+       *lp =  (long)asciicode();
+       return (0);
+}
+
+static double
+getdouble()
+{
+       if (!*gargv)
+               return ((double)0);
+       if (strchr(Number, **gargv))
+               return (atof(*gargv++));
+       return ((double)asciicode());
+}
+
+static int
+asciicode()
+{
+       register int ch;
+
+       ch = **gargv;
+       if (ch == '\'' || ch == '"')
+               ch = (*gargv)[1];
+       ++gargv;
+       return (ch);
+}
+
+static void
+usage()
+{
+       (void)fprintf(stderr, "usage: printf format [arg ...]\n");
+}
index 92f489e38b4ec445f67142f90ecac14222db333a..576d4bb33bf4580c3d25018bef7de848bb2b0b26 100644 (file)
@@ -85,6 +85,8 @@ strftime_builtin (list)
 /* An array of strings forming the `long' documentation for a builtin xxx,
    which is printed by `help xxx'.  It must end with a NULL. */
 char *strftime_doc[] = {
+       "Display formatted time.",
+       "",
        "Converts date and time format to a string and displays it on the",
        "standard output.  If the optional second argument is supplied, it",
        "is used as the number of seconds since the epoch to use in the",
diff --git a/examples/loadables/strftime.c~ b/examples/loadables/strftime.c~
new file mode 100644 (file)
index 0000000..92f489e
--- /dev/null
@@ -0,0 +1,105 @@
+/* strftime - loadable builtin interface to strftime(3) */
+
+/* See Makefile for compilation details. */
+
+#include <config.h>
+
+#if defined (HAVE_UNISTD_H)
+#  include <unistd.h>
+#endif
+
+#include "bashtypes.h"
+#include "posixtime.h"
+
+#include <stdio.h>
+
+#include "builtins.h"
+#include "shell.h"
+#include "common.h"
+
+int
+strftime_builtin (list)
+     WORD_LIST *list;
+{
+  char *format, *tbuf;
+  size_t tbsize, tsize;
+  time_t secs;
+  struct tm *t;
+  int n;
+  intmax_t i;
+
+  if (list == 0)
+    {
+      builtin_usage ();
+      return (EX_USAGE);
+    }
+
+  if (no_options (list))
+    return (EX_USAGE);
+
+  format = list->word->word;
+  if (format == 0 || *format == 0)
+    {
+      printf ("\n");
+      return (EXECUTION_SUCCESS);
+    }
+
+  list = list->next;
+
+  if (list && list->word->word)
+    {
+      n = legal_number (list->word->word, &i);
+      if (n == 0 || i < 0 || i != (time_t)i)
+       {
+         sh_invalidnum (list->word->word);
+         return (EXECUTION_FAILURE);
+       }
+      else
+        secs = i;
+    }
+  else
+    secs = NOW;
+
+  t = localtime (&secs);
+
+  tbsize = strlen (format) * 4;
+  tbuf = 0;
+
+  /* Now try to figure out how big the buffer should really be.  strftime(3)
+     will return the number of bytes placed in the buffer unless it's greater
+     than MAXSIZE, in which case it returns 0. */
+  for (n = 1; n < 4; n++)
+    {
+      tbuf = xrealloc (tbuf, tbsize * n);
+      tsize = strftime (tbuf, tbsize * n, format, t);
+      if (tsize)
+        break;
+    }
+
+  printf ("%s\n", tbuf);
+  free (tbuf);
+
+  return (EXECUTION_SUCCESS);
+}
+
+/* An array of strings forming the `long' documentation for a builtin xxx,
+   which is printed by `help xxx'.  It must end with a NULL. */
+char *strftime_doc[] = {
+       "Converts date and time format to a string and displays it on the",
+       "standard output.  If the optional second argument is supplied, it",
+       "is used as the number of seconds since the epoch to use in the",
+       "conversion, otherwise the current time is used.",
+       (char *)NULL
+};
+
+/* The standard structure describing a builtin command.  bash keeps an array
+   of these structures.  The flags must include BUILTIN_ENABLED so the
+   builtin can be used. */
+struct builtin strftime_struct = {
+       "strftime",             /* builtin name */
+       strftime_builtin,       /* function implementing the builtin */
+       BUILTIN_ENABLED,        /* initial flags for builtin */
+       strftime_doc,           /* array of long documentation strings. */
+       "strftime format [seconds]",    /* usage synopsis; becomes short_doc */
+       0                       /* reserved for internal use */
+};
index 44d4e095ee295040e9bb5000e1f03971fe7244d6..1231e7adab92bc32a8914f957e91b23f5936cf94 100644 (file)
@@ -18,7 +18,9 @@ sync_builtin (list)
 }
 
 char *sync_doc[] = {
-       "force completion of pending disk writes",
+       "Sync disks.",
+       ""
+       "Force completion of pending disk writes",
        (char *)NULL
 };
 
diff --git a/examples/loadables/sync.c~ b/examples/loadables/sync.c~
new file mode 100644 (file)
index 0000000..44d4e09
--- /dev/null
@@ -0,0 +1,32 @@
+/* sync - sync the disks by forcing pending filesystem writes to complete */
+
+#include <config.h>
+
+#ifdef HAVE_UNISTD_H
+#include <unistd.h>
+#endif
+
+#include "builtins.h"
+#include "shell.h"
+#include "bashgetopt.h"
+
+sync_builtin (list)
+     WORD_LIST *list;
+{
+  sync();
+  return (EXECUTION_SUCCESS);
+}
+
+char *sync_doc[] = {
+       "force completion of pending disk writes",
+       (char *)NULL
+};
+
+struct builtin sync_struct = {
+       "sync",                 /* builtin name */
+       sync_builtin,           /* function implementing the builtin */
+       BUILTIN_ENABLED,        /* initial flags for builtin */
+       sync_doc,               /* array of long documentation strings. */
+       "sync",                 /* usage synopsis; becomes short_doc */
+       0                       /* reserved for internal use */
+};
index 6e2ea355d2fdf2b02eb92f6c36bb1b7fb1fab120..1ea0a571735d8031f1f2365e8a30b88d357f9652 100644 (file)
@@ -141,6 +141,8 @@ tee_builtin (list)
 }
 
 char *tee_doc[] = {
+       "Duplicate standard output.",
+       "",
        "Copy standard input to standard output, making a copy in each",
        "filename argument.  If the `-a' option is gived, the specified",
        "files are appended to, otherwise they are overwritten.  If the",
index 934abdab1682f70ea3d25feeb832b6b93b7dceea..6e2ea355d2fdf2b02eb92f6c36bb1b7fb1fab120 100644 (file)
@@ -22,6 +22,7 @@
 #include "builtins.h"
 #include "shell.h"
 #include "bashgetopt.h"
+#include "common.h"
 
 #if !defined (errno)
 extern int errno;
index 7bb3f9f3592bd9819f7e11828f9a749bd369b7f8..3a5814f334455e5026a7f0d4b1feea8beb52d459 100644 (file)
@@ -43,6 +43,9 @@ template_builtin (list)
 }
 
 char *template_doc[] = {
+       "Short description.",
+       ""
+       "Longer description of builtin and usage.",
        (char *)NULL
 };
 
diff --git a/examples/loadables/template.c~ b/examples/loadables/template.c~
new file mode 100644 (file)
index 0000000..7bb3f9f
--- /dev/null
@@ -0,0 +1,56 @@
+/* template - example template for loadable builtin */
+
+/* See Makefile for compilation details. */
+
+#include <config.h>
+
+#if defined (HAVE_UNISTD_H)
+#  include <unistd.h>
+#endif
+#include "bashansi.h"
+#include <stdio.h>
+#include <errno.h>
+
+#include "builtins.h"
+#include "shell.h"
+#include "bashgetopt.h"
+
+#if !defined (errno)
+extern int errno;
+#endif
+
+extern char *strerror ();
+
+template_builtin (list)
+     WORD_LIST *list;
+{
+  int opt, rval;
+
+  rval = EXECUTION_SUCCESS;
+  reset_internal_getopt ();
+  while ((opt = internal_getopt (list, "")) != -1)
+    {
+      switch (opt)
+       {
+       default:
+         builtin_usage ();
+         return (EX_USAGE);
+       }
+    }
+  list = loptend;
+
+  return (rval);
+}
+
+char *template_doc[] = {
+       (char *)NULL
+};
+
+struct builtin template_struct = {
+       "template",                     /* builtin name */
+       template_builtin,               /* function implementing the builtin */
+       BUILTIN_ENABLED,                /* initial flags for builtin */
+       template_doc,                   /* array of long documentation strings. */
+       "template",                     /* usage synopsis; becomes short_doc */
+       0                               /* reserved for internal use */
+};
index a6ae7aa8d90758aea23829ff36d6482f9ae69535..9ba482a4f5c66f413ad05e1c7115fa30d6a2b57c 100644 (file)
@@ -19,11 +19,15 @@ false_builtin (list)
 }
 
 static char *true_doc[] = {
+       "Exit successfully.",
+       "",
        "Return a successful result.",
        (char *)NULL
 };
 
 static char *false_doc[] = {
+       "Exit unsuccessfully.",
+       "",
        "Return an unsuccessful result.",
        (char *)NULL
 };
index 4b31decbbb5629dd3229e16bc39fc26090c779c6..a6ae7aa8d90758aea23829ff36d6482f9ae69535 100644 (file)
@@ -4,6 +4,7 @@
 #include "bashtypes.h"
 #include "shell.h"
 #include "builtins.h"
+#include "common.h"
 
 true_builtin (list)
      WORD_LIST *list;
index 1ce7afebcf1c4d3f431caf0e2fb6ae554e94a5a4..7f1360655b5503349496f685775baeebcb49ce40 100644 (file)
@@ -41,6 +41,8 @@ tty_builtin (list)
 }
 
 char *tty_doc[] = {
+       "Display terminal name.",
+       "",
        "tty writes the name of the terminal that is opened for standard",
        "input to standard output.  If the `-s' option is supplied, nothing",
        "is written; the exit status determines whether or not the standard",
index 2183123f2f6820e63b8f123956c08307181d2bf8..1ce7afebcf1c4d3f431caf0e2fb6ae554e94a5a4 100644 (file)
@@ -8,6 +8,7 @@
 #include "builtins.h"
 #include "shell.h"
 #include "bashgetopt.h"
+#include "common.h"
 
 extern char *ttyname ();
 
index 25ad497efdc981a2ab3a04978bad2104a233a668..2b817f5ca258f1783da408345ac181171fe929ba 100644 (file)
@@ -126,7 +126,9 @@ uprint (flag, info)
 }
 
 char *uname_doc[] = {
-       "display information about the system",
+       "Display system information.",
+       "",
+       "Display information about the system hardware and OS.",
        (char *)NULL
 };
 
index 9f450cdad1c39d2ff683db9bb97f59175192dd11..25ad497efdc981a2ab3a04978bad2104a233a668 100644 (file)
@@ -27,6 +27,7 @@ struct utsname {
 #include "builtins.h"
 #include "shell.h"
 #include "bashgetopt.h"
+#include "common.h"
 
 #define FLAG_SYSNAME   0x01    /* -s */
 #define FLAG_NODENAME  0x02    /* -n */
index 3b5aafba31532c8bdfff0e8c46bb139bb56fd2dd..2180049ad546170a86fd1607227c390fc4104591 100644 (file)
@@ -40,6 +40,8 @@ unlink_builtin (list)
 
 char *unlink_doc[] = {
        "Remove a directory entry.",
+       "",
+       "Forcibly remove a directory entry, even if it's a directory.",
        (char *)NULL
 };
 
index 8c81ad02d596fcefd107db253ccaef12b32314b8..3b5aafba31532c8bdfff0e8c46bb139bb56fd2dd 100644 (file)
@@ -14,6 +14,7 @@
 
 #include "builtins.h"
 #include "shell.h"
+#include "common.h"
 
 #ifndef errno
 extern int errno;
index e89d872f9c4be48b7c140fe9155d4b590ce6e6b4..4c9d5bb50f0aadf8ab8bee8e49dcc4d0f19dfff5 100644 (file)
@@ -39,7 +39,9 @@ whoami_builtin (list)
 }
 
 char *whoami_doc[] = {
-       "display name of current user",
+       "Print user name",
+       "",
+       "Display name of current user.",
        (char *)NULL
 };
 
index 41fd5c4878be1a9be63532fa5a4b1cc425cc0a06..e89d872f9c4be48b7c140fe9155d4b590ce6e6b4 100644 (file)
@@ -8,6 +8,7 @@
 #include "builtins.h"
 #include "shell.h"
 #include "bashgetopt.h"
+#include "common.h"
 
 whoami_builtin (list)
      WORD_LIST *list;
index 244c8fa91c98903722e409d2af24e3e47e2f20c3..69dbc8d9de56a2fb73b4d5ef298240495ab81cbb 100644 (file)
@@ -164,6 +164,8 @@ int main(int argc, char *argv[])
 #ifdef BASH_BUILTIN
 
 static char *xtitle_doc[] = {
+  "Set xterm window title.",
+  "",
   "Either set or read the title of the current xterm window.  With the",
   "-q option, writes the current xterm title to standard output.  Without",
   "the -q option, sets the xterm title to be the arguments given,",
diff --git a/examples/loadables/xtitle.c~ b/examples/loadables/xtitle.c~
new file mode 100644 (file)
index 0000000..244c8fa
--- /dev/null
@@ -0,0 +1,183 @@
+/*
+ * Originally from
+ *     http://www.excessus.demon.co.uk/misc-hacks/index.html#xtitle
+ */
+
+/*
+ * Made into a loadable builtin by chet@po.cwru.edu.
+ */
+
+#if defined (HAVE_CONFIG_H)
+#  include <config.h>
+#endif
+
+#include <stdio.h>
+#ifdef HAVE_UNISTD_H
+#  include <unistd.h>
+#endif
+#include <stdlib.h>
+#include <string.h>
+#include <fcntl.h>
+#include <errno.h>
+
+#include <termios.h>
+
+#ifdef BASH_BUILTIN
+#include "shell.h"
+#include "builtins.h"
+#include "bashgetopt.h"
+#endif
+
+#ifdef BASH_BUILTIN
+int xtitle_builtin(WORD_LIST *list)
+#else
+int main(int argc, char *argv[])
+#endif
+{
+  int query = 0;
+  int fd;
+  int openned = 0;
+
+#ifdef BASH_BUILTIN
+  reset_internal_getopt();
+#endif
+  for (;;) {
+#ifdef BASH_BUILTIN
+    int i;
+    i = internal_getopt(list, "q");
+#else
+    int i = getopt(argc, argv, "q");
+#endif
+    if (i < 0)
+      break;
+    switch (i) {
+      case 'q':
+       query = 1;
+       break;
+      default:
+#ifdef BASH_BUILTIN
+       builtin_usage();
+#else
+       fprintf(stderr, "usage: xtitle [-q] [string]\n");
+#endif
+       return (1);
+    }
+  }
+
+#ifdef BASH_BUILTIN
+  if (!query && loptend == 0) {
+#else
+  if (!query && optind == argc) {
+#endif
+    fprintf(stderr, "xtitle: no string to set\n");
+    return (1);
+  }
+
+  {
+    char *t = getenv("TERM");
+    if (!t || strncmp(t, "xterm", 5))
+      return (0);
+  }
+
+  if (isatty(0))
+    fd = 0;
+  else {
+    fd = open("/dev/tty", O_RDWR);
+    if (fd < 0) {
+      fprintf(stderr, "xtitle: couldn't open terminal: %s", strerror(errno));
+      return (1);
+    }
+    openned = 1;
+  }
+
+  if (!query) {
+#ifdef BASH_BUILTIN
+    WORD_LIST *l = loptend;
+    char sp = ' ';
+    write(fd, "\33]0;", 4);
+    while (l) {
+      write(fd, l->word->word, strlen(l->word->word));
+      if (l->next)
+       write(fd, &sp, 1);
+      l = l->next;
+    }
+    write(fd, "\33\\", 2);
+#else
+    int i;
+    char sp = ' ';
+    write(fd, "\33]0;", 4);
+    for (i = optind; i < argc; i++) {
+      write(fd, argv[i], strlen(argv[i]));
+      if (i < argc - 1)
+       write(fd, &sp, 1);
+    }
+    write(fd, "\33\\", 2);
+#endif
+  } else {
+    struct termios o, n;
+    char hack;
+    int state = 0;
+
+    tcgetattr(fd, &o);
+    n = o;
+    n.c_iflag &= ~(IGNBRK|BRKINT|PARMRK|ISTRIP
+                  |INLCR|IGNCR|ICRNL|IXON);
+    n.c_lflag &= ~(ECHO|ECHONL|ICANON|ISIG|IEXTEN);
+    n.c_cflag &= ~(CSIZE|PARENB);
+    n.c_cflag |= CS8;
+    tcsetattr(fd, TCSAFLUSH, &n);
+    write(fd, "\33[21t", 5);
+
+    while (state != -1) {
+      if (read(fd, &hack, 1) < 1)
+       break;
+      switch (state) {
+       case 0:
+         if (hack == '\33') state = 1;
+         break;
+       case 1:
+         if (hack == ']') state = 2; else state = 0;
+         break;
+       case 2:
+         if (hack == 'l') state = 3; else state = 0;
+         break;
+       case 3:
+         if (hack == '\33') state = 4; else putchar(hack);
+         break;
+       case 4:
+         if (hack == '\\') { state = -1; putchar('\n'); }
+         else { putchar('\33'); putchar(hack); state = 3; }
+         break;
+      }
+    }
+
+    tcsetattr(fd, TCSAFLUSH, &o);
+  }
+
+  if (openned)
+    close(fd);
+
+  return (0);
+}
+
+
+#ifdef BASH_BUILTIN
+
+static char *xtitle_doc[] = {
+  "Either set or read the title of the current xterm window.  With the",
+  "-q option, writes the current xterm title to standard output.  Without",
+  "the -q option, sets the xterm title to be the arguments given,",
+  "separated by space characters.  [By Mark Wooding, mdw@nsict.org]",
+  0
+};
+
+struct builtin xtitle_struct = {
+  "xtitle",
+  xtitle_builtin,
+  BUILTIN_ENABLED,
+  xtitle_doc,
+  "xtitle [-q] [arguments]",
+  0
+};
+
+#endif
diff --git a/flags.c b/flags.c
index c80aa03f3a0086fe16a68f2f6b0ca528d275250a..5ad35a7ea360c4b509a0a63589655297fce3b64b 100644 (file)
--- a/flags.c
+++ b/flags.c
@@ -47,7 +47,7 @@ extern int want_pending_command, read_from_stdin;
 
 /* **************************************************************** */
 /*                                                                 */
-/*                     The Standard Sh Flags.                      */
+/*                     The Standard sh Flags.                      */
 /*                                                                 */
 /* **************************************************************** */
 
index 28dee36999be08975e5006fe49ac180a96049d22..784064158fb3614bd207aa92f859a210d3381125 100644 (file)
@@ -1666,10 +1666,10 @@ matches were generated.
 @item complete
 @btindex complete
 @example
-@code{complete [-abcdefgjksuv] [-o @var{comp-option}] [-A @var{action}] [-G @var{globpat}] [-W @var{wordlist}]
+@code{complete [-abcdefgjksuv] [-o @var{comp-option}] [-E] [-A @var{action}] [-G @var{globpat}] [-W @var{wordlist}]
 [-F @var{function}] [-C @var{command}] [-X @var{filterpat}]
 [-P @var{prefix}] [-S @var{suffix}] @var{name} [@var{name} @dots{}]}
-@code{complete -pr [@var{name} @dots{}]}
+@code{complete -pr [-E] [@var{name} @dots{}]}
 @end example
 
 Specify how arguments to each @var{name} should be completed.
@@ -1679,6 +1679,9 @@ reused as input.
 The @option{-r} option removes a completion specification for
 each @var{name}, or, if no @var{name}s are supplied, all
 completion specifications.
+The @option{-E} option indicates that the remaining options and actions should
+apply to ``empty'' command completion; that is, completion attempted on a 
+blank line.
 
 The process of applying these completion specifications when word completion
 is attempted is described above (@pxref{Programmable Completion}).
@@ -1851,8 +1854,6 @@ argument, an attempt is made to remove a completion specification for
 a @var{name} for which no specification exists, or
 an error occurs adding a completion specification.
 
-@end table
-
 @item compopt
 @btindex compopt
 @example
@@ -1870,4 +1871,6 @@ The return value is true unless an invalid option is supplied, an attempt
 is made to modify the options for a @var{name} for which no completion
 specification exists, or an output error occurs.
 
+@end table
+
 @end ifset
index 08eed18a895b79303b4520bb8ce70216e475be28..48dba0887aea426aa184c6ca1772de97e93a5f57 100644 (file)
@@ -685,7 +685,7 @@ make_redirection (source, instruction, dest_and_filename)
 
     case r_output_direction:           /* >foo */
     case r_output_force:               /* >| foo */
-    case r_err_and_out:                        /* command &>filename */
+    case r_err_and_out:                        /* &>filename */
       temp->flags = O_TRUNC | O_WRONLY | O_CREAT;
       break;
 
index a5909319c585c583501042a9b18b41ba81ef978f..08eed18a895b79303b4520bb8ce70216e475be28 100644 (file)
@@ -1,7 +1,7 @@
 /* make_cmd.c -- Functions for making instances of the various
    parser constructs. */
 
-/* Copyright (C) 1989-2005 Free Software Foundation, Inc.
+/* Copyright (C) 1989-2007 Free Software Foundation, Inc.
 
 This file is part of GNU Bash, the Bourne Again SHell.
 
diff --git a/parse.y b/parse.y
index e1796bd85631d7e05de0b1f30af850bc8e3ddaf6..2b710a6de3165d2a0a8707673bcd9e6e764a7ad2 100644 (file)
--- a/parse.y
+++ b/parse.y
@@ -2616,9 +2616,9 @@ read_token (command)
              /* If '<' then we could be at "<<" or at "<<-".  We have to
                 look ahead one more character. */
              peek_char = shell_getc (1);
-             if (peek_char == '-')
+             if MBTEST(peek_char == '-')
                return (LESS_LESS_MINUS);
-             else if (peek_char == '<')
+             else if MBTEST(peek_char == '<')
                return (LESS_LESS_LESS);
              else
                {
index 6f5caac4899014354bcaed7a2e90079e964ea0a1..e1796bd85631d7e05de0b1f30af850bc8e3ddaf6 100644 (file)
--- a/parse.y~
+++ b/parse.y~
@@ -4366,7 +4366,7 @@ not_escape:
   if (promptvars || posixly_correct)
     {
       last_exit_value = last_command_exit_value;
-      list = expand_prompt_string (result, Q_DOUBLE_QUOTES);
+      list = expand_prompt_string (result, Q_DOUBLE_QUOTES, 0);
       free (result);
       result = string_list (list);
       dispose_words (list);
index 0386a78a32348a78674d3278578d2d891177e80a..d3cf08098740937e09d3716ce183b46fde68f38a 100644 (file)
@@ -969,7 +969,7 @@ print_redirection (redirect)
       break;
 
     case r_err_and_out:
-      cprintf (">&%s", redirectee->word);
+      cprintf ("&>%s", redirectee->word);
       break;
 
     case r_input_output:
index fe76e0b079af53c2de24e301327422841a4824d2..0386a78a32348a78674d3278578d2d891177e80a 100644 (file)
@@ -1124,7 +1124,7 @@ named_function_string (name, command, flags)
   dispose_command (cmdcopy);
 
   if (flags & FUNC_EXTERNAL)
-    remove_quoted_escapes (result);
+    result = remove_quoted_escapes (result);
 
   return (result);
 }
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/tests/mapfile.data b/tests/mapfile.data
new file mode 100644 (file)
index 0000000..4f1d3ce
--- /dev/null
@@ -0,0 +1,17 @@
+[0] Abcdefghijklmnop
+[1] aBcdefghijklmnop
+[2] abCdefghijklmnop
+[3] abcDefghijklmnop
+[4] abcdEfghijklmnop
+[5] abcdeFghijklmnop
+[6] abcdefGhijklmnop
+[7] abcdefgHijklmnop
+[8] abcdefghIjklmnop
+[9] abcdefghiJklmnop
+[a] abcdefghijKlmnop
+[b] abcdefghijkLmnop
+[c] abcdefghijklMnop
+[d] abcdefghijklmNop
+[e] abcdefghijklmnOp
+[f] abcdefghijklmnoP
+a
\ No newline at end of file
diff --git a/tests/mapfile.right b/tests/mapfile.right
new file mode 100644 (file)
index 0000000..ae8fafc
--- /dev/null
@@ -0,0 +1,131 @@
+[0] Abcdefghijklmnop
+[1] aBcdefghijklmnop
+[2] abCdefghijklmnop
+[3] abcDefghijklmnop
+[4] abcdEfghijklmnop
+[5] abcdeFghijklmnop
+[6] abcdefGhijklmnop
+[7] abcdefgHijklmnop
+[8] abcdefghIjklmnop
+[9] abcdefghiJklmnop
+[a] abcdefghijKlmnop
+[b] abcdefghijkLmnop
+[c] abcdefghijklMnop
+[d] abcdefghijklmNop
+[e] abcdefghijklmnOp
+[f] abcdefghijklmnoP
+a[0] Abcdefghijklmnop
+[1] aBcdefghijklmnop
+[2] abCdefghijklmnop
+[3] abcDefghijklmnop
+[4] abcdEfghijklmnop
+[5] abcdeFghijklmnop
+[6] abcdefGhijklmnop
+[7] abcdefgHijklmnop
+[8] abcdefghIjklmnop
+[9] abcdefghiJklmnop
+[a] abcdefghijKlmnop
+[b] abcdefghijkLmnop
+[c] abcdefghijklMnop
+[d] abcdefghijklmNop
+[e] abcdefghijklmnOp
+[f] abcdefghijklmnoP
+a
+1
+2
+3
+4
+5
+6
+7
+8
+9
+10
+11
+12
+13
+14
+15
+16
+3
+6
+9
+12
+15
+[0] Abcdefghijklmnop
+[1] aBcdefghijklmnop
+[2] abCdefghijklmnop
+[3] abcDefghijklmnop
+[4] abcdEfghijklmnop
+[5] abcdeFghijklmnop
+[6] abcdefGhijklmnop
+[7] abcdefgHijklmnop
+[8] abcdefghIjklmnop
+[9] abcdefghiJklmnop
+[a] abcdefghijKlmnop
+[b] abcdefghijkLmnop
+[c] abcdefghijklMnop
+[d] abcdefghijklmNop
+[e] abcdefghijklmnOp
+[f] abcdefghijklmnoP
+a
+[0] aaa
+[1] aaa
+[2] aaa
+[3] aaa
+[4] aaa
+[5] aaa
+[6] aaa
+[7] aaa
+[8] aaa
+[9] aaa
+[0] Abcdefghijklmnop
+[1] aBcdefghijklmnop
+[2] abCdefghijklmnop
+[3] abcDefghijklmnop
+[4] abcdEfghijklmnop
+[5] abcdeFghijklmnop
+[6] abcdefGhijklmnop
+[7] abcdefgHijklmnop
+[8] abcdefghIjklmnop
+[9] abcdefghiJklmnop
+[a] abcdefghijKlmnop
+[b] abcdefghijkLmnop
+[c] abcdefghijklMnop
+[d] abcdefghijklmNop
+[e] abcdefghijklmnOp
+[f] abcdefghijklmnoP
+a
+[27] aaa
+[28] aaa
+[29] aaa
+[0] aaa
+[1] aaa
+[2] aaa
+[3] aaa
+[4] aaa
+[5] aaa
+[6] aaa
+[7] aaa
+[8] aaa
+[9] aaa
+[0] Abcdefghijklmnop
+[1] aBcdefghijklmnop
+[2] abCdefghijklmnop
+[3] abcDefghijklmnop
+[4] abcdEfghijklmnop
+[15] aaa
+[16] aaa
+[17] aaa
+[18] aaa
+[19] aaa
+[20] aaa
+[21] aaa
+[22] aaa
+[23] aaa
+[24] aaa
+[25] aaa
+[26] aaa
+[27] aaa
+[28] aaa
+[29] aaa
diff --git a/tests/mapfile.tests b/tests/mapfile.tests
new file mode 100644 (file)
index 0000000..6f26c38
--- /dev/null
@@ -0,0 +1,40 @@
+declare -a A
+mapfile A < mapfile.data
+for (( i = 0 ; i < ${#A[@]} ; i++ )); do
+    echo -n "${A[${i}]}"
+done
+
+declare -a B
+mapfile -t B < mapfile.data
+for (( i = 0 ; i < ${#B[@]} ; i++ )); do
+    echo "${B[${i}]}"
+done
+
+mapfile -C "echo" -c 1 A < mapfile.data
+mapfile -C "echo" -c 3 A < mapfile.data
+mapfile -C "echo" -c 19 A < mapfile.data
+
+declare -a C
+mapfile -t -u 3 C 3< mapfile.data < mapfile.tests
+for (( i = 0 ; i < ${#C[@]} ; i++ )); do
+    echo "${C[${i}]}"
+done
+
+
+declare -a D
+for (( i = 0 ; i < 30; i++ )); do
+    D[${i}]="[$i] aaa"
+done
+mapfile -O 10 -t D < mapfile.data
+for (( i = 0 ; i < ${#D[@]} ; i++ )); do
+    echo "${D[${i}]}"
+done
+
+declare -a E
+for (( i = 0 ; i < 30; i++ )); do
+    E[${i}]="[$i] aaa"
+done
+mapfile -O 10 -n 5 -t E < mapfile.data
+for (( i = 0 ; i < ${#E[@]} ; i++ )); do
+    echo "${E[${i}]}"
+done
diff --git a/tests/run-mapfile b/tests/run-mapfile
new file mode 100644 (file)
index 0000000..a207f09
--- /dev/null
@@ -0,0 +1,2 @@
+${THIS_SH} ./mapfile.tests > /tmp/xx 2>&1
+diff /tmp/xx mapfile.right && rm -f /tmp/xx
index 11f074daec81fe197405db397c66c37b3e240b3f..1a9b55a6548618efe7eacecb0287073651791890 100644 (file)
@@ -1329,7 +1329,6 @@ get_bash_command (var)
      SHELL_VAR *var;
 {
   char *p;
-
   
   if (the_printed_command_except_trap)
     p = savestring (the_printed_command_except_trap);
index 9cc4730ccde5da0f752bf15689e3fe40005f390f..e8e6d29955b68de8658cd33a181d0420bb582454 100644 (file)
--- a/version.c
+++ b/version.c
@@ -1,6 +1,6 @@
 /* version.c -- distribution and version numbers. */
 
-/* Copyright (C) 1989-2005 Free Software Foundation, Inc.
+/* Copyright (C) 1989-2008 Free Software Foundation, Inc.
 
    This file is part of GNU Bash, the Bourne Again SHell.