]> git.ipfire.org Git - thirdparty/bash.git/commitdiff
bash-5.0-beta release bash-5.0-beta
authorChet Ramey <chet.ramey@case.edu>
Mon, 17 Sep 2018 19:10:56 +0000 (15:10 -0400)
committerChet Ramey <chet.ramey@case.edu>
Mon, 17 Sep 2018 19:10:56 +0000 (15:10 -0400)
144 files changed:
ABOUT-NLS
CHANGES
COMPAT
CWRU/changelog
INSTALL
MANIFEST
Makefile.in
NEWS
POSIX
aclocal.m4
array.c
arrayfunc.c
assoc.c
bashhist.c
bashline.c
braces.c
builtins/common.c
builtins/complete.def
builtins/declare.def
builtins/printf.def
builtins/read.def
builtins/setattr.def
builtins/shopt.def
command.h
config-top.h
config.h.in
configure
configure.ac
doc/bash.0
doc/bash.1
doc/bash.html
doc/bash.info
doc/bash.pdf
doc/bash.ps
doc/bashref.dvi
doc/bashref.html
doc/bashref.info
doc/bashref.pdf
doc/bashref.ps
doc/bashref.texi
doc/builtins.0
doc/builtins.ps
doc/rbash.ps
doc/version.texi
eval.c
examples/loadables/sleep.c
execute_cmd.c
externs.h
general.h
include/shmbutil.h
jobs.c
jobs.h
lib/malloc/malloc.c
lib/malloc/mstats.h
lib/malloc/stats.c
lib/readline/display.c
lib/readline/doc/hstech.texi
lib/readline/doc/hsuser.texi
lib/readline/doc/rltech.texi
lib/readline/doc/rluser.texi
lib/readline/doc/version.texi
lib/readline/histexpand.c
lib/readline/histfile.c
lib/readline/history.h
lib/readline/kill.c
lib/readline/mbutil.c
lib/readline/readline.c
lib/readline/readline.h
lib/readline/rlmbutil.h
lib/readline/rlprivate.h
lib/readline/rltty.c
lib/readline/text.c
lib/readline/vi_mode.c
lib/sh/Makefile.in
lib/sh/getenv.c
lib/sh/mbschr.c
lib/sh/mbscmp.c
lib/sh/shmbchar.c
lib/sh/snprintf.c
lib/sh/utf8.c [new file with mode: 0644]
locale.c
nojobs.c
parse.y
parser-built
pcomplete.c
pcomplete.h
po/Makefile.in.in
po/bash.pot
po/de.po
po/es.po
po/ga.po
po/hr.po
po/pt.po
po/pt_BR.po
po/ru.po
po/zh_TW.po
shell.c
sig.c
subst.c
support/Makefile.in
support/config.guess [changed mode: 0644->0755]
support/config.rpath
support/config.sub [changed mode: 0644->0755]
support/man2html.c
test.c
tests/array.right
tests/array.tests
tests/array26.sub [new file with mode: 0644]
tests/assoc.right
tests/assoc.tests
tests/assoc10.sub [new file with mode: 0644]
tests/histexp.right
tests/histexp.tests
tests/histexp5.sub [new file with mode: 0644]
tests/histexp6.sub [new file with mode: 0644]
tests/intl.right
tests/nameref.right
tests/nameref20.sub [new file with mode: 0644]
tests/nameref21.sub [new file with mode: 0644]
tests/nquote1.right
tests/nquote1.tests
tests/posixexp.right
tests/posixexp.tests
tests/posixexp5.sub
tests/posixexp7.sub [new file with mode: 0644]
tests/quote.right
tests/quote.tests
tests/quote2.sub [new file with mode: 0644]
tests/redir.right
tests/redir.tests
tests/run-varenv
tests/shopt.right
tests/test-glue-functions
tests/unicode3.sub
tests/varenv.right
tests/varenv.tests [new file with mode: 0644]
tests/varenv12.sub
tests/varenv13.sub [new file with mode: 0644]
tests/varenv14.sub [new file with mode: 0644]
tests/varenv15.in [new file with mode: 0644]
tests/varenv15.sub [new file with mode: 0644]
variables.c
variables.h
y.tab.c

index 47d5e39f0e1a0e94d55613496dc65eb016be95cf..3cc828658cb4e15936879ef318fb7b9150b9be3e 100644 (file)
--- a/ABOUT-NLS
+++ b/ABOUT-NLS
-Notes on the Free Translation Project
-*************************************
+Notes on the Free Translation Project
+***************************************
 
-   Free software is going international!  The Free Translation Project
-is a way to get maintainers of free software, translators, and users all
-together, so that will gradually become able to speak many languages.
-A few packages already provide translations for their messages.
+Free software is going international!  The Free Translation Project is a
+way to get maintainers of free software, translators, and users all
+together, so that free software will gradually become able to speak many
+languages.  A few packages already provide translations for their
+messages.
 
-   If you found this `ABOUT-NLS' file inside a distribution, you may
-assume that the distributed package does use GNU `gettext' internally,
+   If you found this 'ABOUT-NLS' file inside a distribution, you may
+assume that the distributed package does use GNU 'gettext' internally,
 itself available at your nearest GNU archive site.  But you do _not_
-need to install GNU `gettext' prior to configuring, installing or using
+need to install GNU 'gettext' prior to configuring, installing or using
 this package with messages translated.
 
    Installers will find here some useful hints.  These notes also
 explain how users should proceed for getting the programs to use the
 available translations.  They tell how people wanting to contribute and
-work at translations should contact the appropriate team.
+work on translations can contact the appropriate team.
 
-   When reporting bugs in the `intl/' directory or bugs which may be
-related to internationalization, you should tell about the version of
-`gettext' which is used.  The information can be found in the
-`intl/VERSION' file, in internationalized packages.
+1.1 INSTALL Matters
+===================
 
-Quick configuration advice
-==========================
-
-   If you want to exploit the full power of internationalization, you
-should configure it using
-
-     ./configure --with-included-gettext
-
-to force usage of internationalizing routines provided within this
-package, despite the existence of internationalizing capabilities in the
-operating system where this package is being installed.  So far, only
-the `gettext' implementation in the GNU C library version 2 provides as
-many features (such as locale alias, message inheritance, automatic
-charset conversion or plural form handling) as the implementation here.
-It is also not possible to offer this additional functionality on top
-of a `catgets' implementation.  Future versions of GNU `gettext' will
-very likely convey even more functionality.  So it might be a good idea
-to change to GNU `gettext' as soon as possible.
-
-   So you need _not_ provide this option if you are using GNU libc 2 or
-you have installed a recent copy of the GNU gettext package with the
-included `libintl'.
-
-INSTALL Matters
-===============
-
-   Some packages are "localizable" when properly installed; the
-programs they contain can be made to speak your own native language.
-Most such packages use GNU `gettext'.  Other packages have their own
-ways to internationalization, predating GNU `gettext'.
+Some packages are "localizable" when properly installed; the programs
+they contain can be made to speak your own native language.  Most such
+packages use GNU 'gettext'.  Other packages have their own ways to
+internationalization, predating GNU 'gettext'.
 
    By default, this package will be installed to allow translation of
 messages.  It will automatically detect whether the system already
-provides the GNU `gettext' functions.  If not, the GNU `gettext' own
-library will be used.  This library is wholly contained within this
-package, usually in the `intl/' subdirectory, so prior installation of
-the GNU `gettext' package is _not_ required.  Installers may use
-special options at configuration time for changing the default
-behaviour.  The commands:
-
-     ./configure --with-included-gettext
-     ./configure --disable-nls
-
-will respectively bypass any pre-existing `gettext' to use the
-internationalizing routines provided within this package, or else,
-_totally_ disable translation of messages.
-
-   When you already have GNU `gettext' installed on your system and run
-configure without an option for your new package, `configure' will
-probably detect the previously built and installed `libintl.a' file and
-will decide to use this.  This might be not what is desirable.  You
-should use the more recent version of the GNU `gettext' library.  I.e.
-if the file `intl/VERSION' shows that the library which comes with this
-package is more recent, you should use
+provides the GNU 'gettext' functions.  Installers may use special
+options at configuration time for changing the default behaviour.  The
+command:
 
-     ./configure --with-included-gettext
+     ./configure --disable-nls
 
-to prevent auto-detection.
+will _totally_ disable translation of messages.
 
-   The configuration process will not test for the `catgets' function
-and therefore it will not be used.  The reason is that even an
-emulation of `gettext' on top of `catgets' could not provide all the
-extensions of the GNU `gettext' library.
+   When you already have GNU 'gettext' installed on your system and run
+configure without an option for your new package, 'configure' will
+probably detect the previously built and installed 'libintl' library and
+will decide to use it.  If not, you may have to to use the
+'--with-libintl-prefix' option to tell 'configure' where to look for it.
 
-   Internationalized packages have usually many `po/LL.po' files, where
+   Internationalized packages usually have many 'po/LL.po' files, where
 LL gives an ISO 639 two-letter code identifying the language.  Unless
-translations have been forbidden at `configure' time by using the
-`--disable-nls' switch, all available translations are installed
-together with the package.  However, the environment variable `LINGUAS'
+translations have been forbidden at 'configure' time by using the
+'--disable-nls' switch, all available translations are installed
+together with the package.  However, the environment variable 'LINGUAS'
 may be set, prior to configuration, to limit the installed set.
-`LINGUAS' should then contain a space separated list of two-letter
+'LINGUAS' should then contain a space separated list of two-letter
 codes, stating which languages are allowed.
 
-Using This Package
-==================
+1.2 Using This Package
+======================
 
-   As a user, if your language has been installed for this package, you
-only have to set the `LANG' environment variable to the appropriate
-`LL_CC' combination.  Here `LL' is an ISO 639 two-letter language code,
-and `CC' is an ISO 3166 two-letter country code.  For example, let's
-suppose that you speak German and live in Germany.  At the shell
-prompt, merely execute `setenv LANG de_DE' (in `csh'),
-`export LANG; LANG=de_DE' (in `sh') or `export LANG=de_DE' (in `bash').
-This can be done from your `.login' or `.profile' file, once and for
-all.
+As a user, if your language has been installed for this package, you
+only have to set the 'LANG' environment variable to the appropriate
+'LL_CC' combination.  If you happen to have the 'LC_ALL' or some other
+'LC_xxx' environment variables set, you should unset them before setting
+'LANG', otherwise the setting of 'LANG' will not have the desired
+effect.  Here 'LL' is an ISO 639 two-letter language code, and 'CC' is
+an ISO 3166 two-letter country code.  For example, let's suppose that
+you speak German and live in Germany.  At the shell prompt, merely
+execute 'setenv LANG de_DE' (in 'csh'), 'export LANG; LANG=de_DE' (in
+'sh') or 'export LANG=de_DE' (in 'bash').  This can be done from your
+'.login' or '.profile' file, once and for all.
 
    You might think that the country code specification is redundant.
 But in fact, some languages have dialects in different countries.  For
-example, `de_AT' is used for Austria, and `pt_BR' for Brazil.  The
+example, 'de_AT' is used for Austria, and 'pt_BR' for Brazil.  The
 country code serves to distinguish the dialects.
 
-   The locale naming convention of `LL_CC', with `LL' denoting the
-language and `CC' denoting the country, is the one use on systems based
-on GNU libc.  On other systems, some variations of this scheme are
-used, such as `LL' or `LL_CC.ENCODING'.  You can get the list of
-locales supported by your system for your country by running the command
-`locale -a | grep '^LL''.
+   The locale naming convention of 'LL_CC', with 'LL' denoting the
+language and 'CC' denoting the country, is the one use on systems based
+on GNU libc.  On other systems, some variations of this scheme are used,
+such as 'LL' or 'LL_CC.ENCODING'.  You can get the list of locales
+supported by your system for your language by running the command
+'locale -a | grep '^LL''.
 
    Not all programs have translations for all languages.  By default, an
 English message is shown in place of a nonexistent translation.  If you
 understand other languages, you can set up a priority list of languages.
 This is done through a different environment variable, called
-`LANGUAGE'.  GNU `gettext' gives preference to `LANGUAGE' over `LANG'
-for the purpose of message handling, but you still need to have `LANG'
+'LANGUAGE'.  GNU 'gettext' gives preference to 'LANGUAGE' over 'LANG'
+for the purpose of message handling, but you still need to have 'LANG'
 set to the primary language; this is required by other parts of the
-system libraries.  For example, some Swedish users who would rather
-read translations in German than English for when Swedish is not
-available, set `LANGUAGE' to `sv:de' while leaving `LANG' to `sv_SE'.
+system libraries.  For example, some Swedish users who would rather read
+translations in German than English for when Swedish is not available,
+set 'LANGUAGE' to 'sv:de' while leaving 'LANG' to 'sv_SE'.
+
+   Special advice for Norwegian users: The language code for Norwegian
+bokma*l changed from 'no' to 'nb' recently (in 2003).  During the
+transition period, while some message catalogs for this language are
+installed under 'nb' and some older ones under 'no', it's recommended
+for Norwegian users to set 'LANGUAGE' to 'nb:no' so that both newer and
+older translations are used.
 
-   In the `LANGUAGE' environment variable, but not in the `LANG'
-environment variable, `LL_CC' combinations can be abbreviated as `LL'
-to denote the language's main dialect.  For example, `de' is equivalent
-to `de_DE' (German as spoken in Germany), and `pt' to `pt_PT'
-(Portuguese as spoken in Portugal) in this context.
+   In the 'LANGUAGE' environment variable, but not in the 'LANG'
+environment variable, 'LL_CC' combinations can be abbreviated as 'LL' to
+denote the language's main dialect.  For example, 'de' is equivalent to
+'de_DE' (German as spoken in Germany), and 'pt' to 'pt_PT' (Portuguese
+as spoken in Portugal) in this context.
 
-Translating Teams
-=================
+1.3 Translating Teams
+=====================
 
-   For the Free Translation Project to be a success, we need interested
+For the Free Translation Project to be a success, we need interested
 people who like their own language and write it well, and who are also
 able to synergize with other translators speaking the same language.
 Each translation team has its own mailing list.  The up-to-date list of
 teams can be found at the Free Translation Project's homepage,
-`http://www.iro.umontreal.ca/contrib/po/HTML/', in the "National teams"
-area.
+'http://translationproject.org/', in the "Teams" area.
 
    If you'd like to volunteer to _work_ at translating messages, you
 should become a member of the translating team for your own language.
 The subscribing address is _not_ the same as the list itself, it has
-`-request' appended.  For example, speakers of Swedish can send a
-message to `sv-request@li.org', having this message body:
+'-request' appended.  For example, speakers of Swedish can send a
+message to 'sv-request@li.org', having this message body:
 
      subscribe
 
-   Keep in mind that team members are expected to participate
-_actively_ in translations, or at solving translational difficulties,
-rather than merely lurking around.  If your team does not exist yet and
-you want to start one, or if you are unsure about what to do or how to
-get started, please write to `translation@iro.umontreal.ca' to reach the
+   Keep in mind that team members are expected to participate _actively_
+in translations, or at solving translational difficulties, rather than
+merely lurking around.  If your team does not exist yet and you want to
+start one, or if you are unsure about what to do or how to get started,
+please write to 'coordinator@translationproject.org' to reach the
 coordinator for all translator teams.
 
    The English team is special.  It works at improving and uniformizing
-the terminology in use.  Proven linguistic skill are praised more than
-programming skill, here.
+the terminology in use.  Proven linguistic skills are praised more than
+programming skills, here.
 
-Available Packages
-==================
+1.4 Available Packages
+======================
 
-   Languages are not equally supported in all packages.  The following
-matrix shows the current state of internationalization, as of May 2003.
+Languages are not equally supported in all packages.  The following
+matrix shows the current state of internationalization, as of Jun 2014.
 The matrix shows, in regard of each package, for which languages PO
 files have been submitted to translation coordination, with a
 translation percentage of at least 50%.
 
-     Ready PO files       am az be bg ca cs da de el en en_GB eo es
-                        +-------------------------------------------+
-     a2ps               |       []          [] [] []                |
-     aegis              |                      ()                   |
-     anubis             |                                           |
-     ap-utils           |                                           |
-     bash               |                      []             [] [] |
-     batchelor          |                                           |
-     bfd                |                   []                   [] |
-     binutils           |                   []                   [] |
-     bison              |                   [] []                [] |
-     bluez-pin          |                []                   []    |
-     clisp              |                                           |
-     clisp              |                      []    []          [] |
-     coreutils          |             []    [] []                [] |
-     cpio               |                   [] []                [] |
-     darkstat           |                   ()                   [] |
-     diffutils          |             [] [] [] [] []          [] [] |
-     e2fsprogs          |                []    []                   |
-     enscript           |             []    [] []        []         |
-     error              |             []    [] []        []      [] |
-     fetchmail          |             [] () [] [] []             [] |
-     fileutils          |                   [] []                [] |
-     findutils          |             []    [] [] []          [] [] |
-     flex               |             []    [] []                [] |
-     gas                |                                        [] |
-     gawk               |             []    [] []                [] |
-     gcal               |             []                            |
-     gcc                |                   []                   [] |
-     gettext            |       []    []    [] []                [] |
-     gettext-runtime    |       []    []    [] []                [] |
-     gettext-tools      |                      []                [] |
-     gimp-print         |                [] [] []        []      [] |
-     gliv               |                                           |
-     glunarclock        |    []             [] []                   |
-     gnucash            |                      ()        []         |
-     gnucash-glossary   |                   [] ()                [] |
-     gnupg              |             [] ()    [] []          [] [] |
-     gpe-calendar       |                      []                   |
-     gpe-conf           |                      []                   |
-     gpe-contacts       |                      []                   |
-     gpe-edit           |                                           |
-     gpe-login          |                      []                   |
-     gpe-ownerinfo      |                      []                   |
-     gpe-sketchbook     |                      []                   |
-     gpe-timesheet      |                                           |
-     gpe-today          |                      []                   |
-     gpe-todo           |                      []                   |
-     gphoto2            |                [] [] []                [] |
-     gprof              |                   []                   [] |
-     gpsdrive           |                      ()    ()          () |
-     grep               |          [] []       [] []             [] |
-     gretl              |                                        [] |
-     hello              |             []    [] [] []          [] [] |
-     id-utils           |                   [] []                   |
-     indent             |             []       []             [] [] |
-     jpilot             |                [] [] []                [] |
-     jwhois             |                                        [] |
-     kbd                |                [] [] [] []             [] |
-     ld                 |                   []                   [] |
-     libc               |             [] [] [] [] []             [] |
-     libgpewidget       |                      []                   |
-     libiconv           |             []    [] []             [] [] |
-     lifelines          |                   [] ()                   |
-     lilypond           |                   []                      |
-     lingoteach         |                                           |
-     lingoteach_lessons |                      ()                () |
-     lynx               |             [] [] [] []                   |
-     m4                 |                [] [] [] []                |
-     mailutils          |             []                         [] |
-     make               |                   [] []                [] |
-     man-db             |             [] () [] []                () |
-     mysecretdiary      |                   [] []                [] |
-     nano               |             [] () [] []                [] |
-     nano_1_0           |             [] () [] []                [] |
-     opcodes            |                   []                   [] |
-     parted             |             [] [] [] []                [] |
-     ptx                |             []    [] []             [] [] |
-     python             |                                           |
-     radius             |                                           |
-     recode             |       []          [] [] []          [] [] |
-     screem             |                                           |
-     sed                |             []    [] []             [] [] |
-     sh-utils           |                   [] []                [] |
-     sharutils          |             [] [] [] [] []             [] |
-     sketch             |                   [] ()                [] |
-     soundtracker       |                   [] []                [] |
-     sp                 |                      []                   |
-     tar                |                [] [] []                [] |
-     texinfo            |                [] [] []             []    |
-     textutils          |             []    [] []                [] |
-     tin                |                      ()        ()         |
-     util-linux         |             [] [] [] []                [] |
-     vorbis-tools       |                [] []                   [] |
-     wastesedge         |                      ()                   |
-     wdiff              |             []    [] []                [] |
-     wget               |          [] [] [] [] [] []             [] |
-     xchat              |             []          []             [] |
-     xpad               |                                           |
-                        +-------------------------------------------+
-                          am az be bg ca cs da de el en en_GB eo es
-                           0  1  4  2 31 17 54 60 14  1   4   12 56
-     
-                          et fa fi fr ga gl he hr hu id it ja ko
-                        +----------------------------------------+
-     a2ps               | []    [] []                   ()    () |
-     aegis              |                                        |
-     anubis             |          []                            |
-     ap-utils           |          []                            |
-     bash               |          []             []             |
-     batchelor          |             []                         |
-     bfd                |          []                      []    |
-     binutils           |          []                      []    |
-     bison              | []       []                [] []       |
-     bluez-pin          |          [] []          [] []          |
-     clisp              |                                        |
-     clisp              |          []                            |
-     coreutils          | []       []                   [] []    |
-     cpio               |          []    []       []          [] |
-     darkstat           |          () []          [] []          |
-     diffutils          |       [] []    [] []    [] []    []    |
-     e2fsprogs          |                                        |
-     enscript           |          []          []                |
-     error              |       [] [] []          []             |
-     fetchmail          |                                  []    |
-     fileutils          | []       []             []    [] []    |
-     findutils          | []    [] [] [] []    [] [] [] [] [] [] |
-     flex               |          []                         [] |
-     gas                |          []                            |
-     gawk               |          []       []                   |
-     gcal               |          []                            |
-     gcc                |          []                            |
-     gettext            |          []                      [] [] |
-     gettext-runtime    |          []                []    [] [] |
-     gettext-tools      |                                  []    |
-     gimp-print         |          []                      []    |
-     gliv               |          ()                            |
-     glunarclock        |             [] []       []       []    |
-     gnucash            |                               []       |
-     gnucash-glossary   |                               []       |
-     gnupg              | []    [] []    []          [] [] []    |
-     gpe-calendar       |                            []          |
-     gpe-conf           |                                        |
-     gpe-contacts       |          []                            |
-     gpe-edit           |          []                []          |
-     gpe-login          |          []                            |
-     gpe-ownerinfo      |          []             [] []          |
-     gpe-sketchbook     |          []                            |
-     gpe-timesheet      |          [] []             []          |
-     gpe-today          |          [] []                         |
-     gpe-todo           |          []                []          |
-     gphoto2            |          []             []       []    |
-     gprof              |          []                []          |
-     gpsdrive           |          ()             []    () ()    |
-     grep               | []    [] [] [] [] [] [] [] [] [] []    |
-     gretl              |          []                            |
-     hello              | [] [] [] [] [] [] [] [] [] [] [] [] [] |
-     id-utils           |          []             [] []          |
-     indent             | []    [] []    []       [] [] [] []    |
-     jpilot             |          []                      ()    |
-     jwhois             |          []             [] [] []       |
-     kbd                |          []                            |
-     ld                 |          []                            |
-     libc               |       [] []    []       []       [] [] |
-     libgpewidget       |          [] []             []          |
-     libiconv           |       [] [] [] []    [] [] [] []       |
-     lifelines          |          ()                            |
-     lilypond           |          []                            |
-     lingoteach         |          []                []          |
-     lingoteach_lessons |                                        |
-     lynx               | []                      []    [] []    |
-     m4                 |          []    []          []    []    |
-     mailutils          |                                        |
-     make               |          []    [] [] []          [] [] |
-     man-db             |          []                   () ()    |
-     mysecretdiary      |          []                []          |
-     nano               |          []    []          [] []       |
-     nano_1_0           |          []    []          [] []       |
-     opcodes            |          []                []          |
-     parted             |          []    []                []    |
-     ptx                | []    [] [] [] []       [] []          |
-     python             |                                        |
-     radius             |                                        |
-     recode             |          []    [] []    [] [] []       |
-     screem             |                                        |
-     sed                | []       [] [] []       [] [] [] []    |
-     sh-utils           | []    [] []             []    [] []    |
-     sharutils          | []       []    []       []       []    |
-     sketch             |          []                            |
-     soundtracker       |          []    []    []                |
-     sp                 |          []                      ()    |
-     tar                | []    [] []    []    [] [] [] [] []    |
-     texinfo            |          []       [] []          []    |
-     textutils          |          []    []       []       [] [] |
-     tin                | []       ()                            |
-     util-linux         | []    [] []             []    () []    |
-     vorbis-tools       |          []                            |
-     wastesedge         |          ()                            |
-     wdiff              | []       []    []       [] []          |
-     wget               | []    [] []    [] [] [] []       []    |
-     xchat              | []       []                      []    |
-     xpad               |                                        |
-                        +----------------------------------------+
-                          et fa fi fr ga gl he hr hu id it ja ko
-                          20  1 15 73 14 24  8 10 30 31 19 31  9
-     
-                          lg lt lv ms nb nl nn no pl pt pt_BR ro
-                        +----------------------------------------+
-     a2ps               |          []    []    () () ()  []   [] |
-     aegis              |                ()                      |
-     anubis             |          []                         [] |
-     ap-utils           |                         ()             |
-     bash               |                                []      |
-     batchelor          |                                        |
-     bfd                |                                        |
-     binutils           |                                        |
-     bison              |          []    []              []   [] |
-     bluez-pin          |                                     [] |
-     clisp              |                                        |
-     clisp              |                []                      |
-     coreutils          |                         []             |
-     cpio               |                []       []     []      |
-     darkstat           |          []    []              []   [] |
-     diffutils          |          []             []     []      |
-     e2fsprogs          |                                        |
-     enscript           |                []              []      |
-     error              |                []              []      |
-     fetchmail          |                         ()     ()      |
-     fileutils          |                         []             |
-     findutils          |                []       []     []   [] |
-     flex               |                                []      |
-     gas                |                                        |
-     gawk               |                                []      |
-     gcal               |                                        |
-     gcc                |                                        |
-     gettext            |                         []             |
-     gettext-runtime    |                         []             |
-     gettext-tools      |                                        |
-     gimp-print         |                []                      |
-     gliv               |                                []      |
-     glunarclock        |          []                            |
-     gnucash            |                                        |
-     gnucash-glossary   |                []          []          |
-     gnupg              |                                        |
-     gpe-calendar       |                            []       [] |
-     gpe-conf           |                            []       [] |
-     gpe-contacts       |                            []          |
-     gpe-edit           |                            []       [] |
-     gpe-login          |                            []       [] |
-     gpe-ownerinfo      |                            []       [] |
-     gpe-sketchbook     |                            []       [] |
-     gpe-timesheet      |                            []       [] |
-     gpe-today          |                            []       [] |
-     gpe-todo           |                            []       [] |
-     gphoto2            |                                        |
-     gprof              |                                []      |
-     gpsdrive           |                ()    ()        ()      |
-     grep               |                         [] []  []   [] |
-     gretl              |                                        |
-     hello              |       [] [] [] [] [] [] []     []   [] |
-     id-utils           |                []              []   [] |
-     indent             |                []              []   [] |
-     jpilot             |                ()    ()                |
-     jwhois             |                []              []   [] |
-     kbd                |                                        |
-     ld                 |                                        |
-     libc               |             []       [] []     []      |
-     libgpewidget       |                            []       [] |
-     libiconv           |                                []   [] |
-     lifelines          |                                        |
-     lilypond           |                []                      |
-     lingoteach         |                                        |
-     lingoteach_lessons |                                        |
-     lynx               |                []              []      |
-     m4                 |                []       []     []   [] |
-     mailutils          |                                        |
-     make               |                []              []      |
-     man-db             |                                []      |
-     mysecretdiary      |                                []      |
-     nano               |          []    []       []          [] |
-     nano_1_0           |          [] []    []    []             |
-     opcodes            |                []              []   [] |
-     parted             |                   []       []  []      |
-     ptx                |             [] []    [] [] []  []   [] |
-     python             |                                        |
-     radius             |                                        |
-     recode             |                         []     []   [] |
-     screem             |                                        |
-     sed                |                                []   [] |
-     sh-utils           |             []                         |
-     sharutils          |                []                      |
-     sketch             |                                []      |
-     soundtracker       |                                        |
-     sp                 |                                        |
-     tar                |          [] []       [] []     []   [] |
-     texinfo            |                                     [] |
-     textutils          |             []                         |
-     tin                |                                        |
-     util-linux         |                []              []      |
-     vorbis-tools       |                []                   [] |
-     wastesedge         |                                        |
-     wdiff              |          []             []     []   [] |
-     wget               |                []       []          [] |
-     xchat              |       []       []                      |
-     xpad               |                                     [] |
-                        +----------------------------------------+
-                          lg lt lv ms nb nl nn no pl pt pt_BR ro
-                           0  0  2 11  7 26  3  4 18 15  34   34
-     
-                          ru sk sl sr sv ta tr uk vi wa zh_CN zh_TW
-                        +-------------------------------------------+
-     a2ps               | []    []    []    [] []                   | 16
-     aegis              | ()                                        |  0
-     anubis             |                   [] []                   |  5
-     ap-utils           |                      ()                   |  1
-     bash               | []                                        |  7
-     batchelor          |                                           |  1
-     bfd                |             []    []           []         |  7
-     binutils           |             []    []           []         |  7
-     bison              | []          []                            | 13
-     bluez-pin          |                                           |  7
-     clisp              |                                           |  0
-     clisp              |                                           |  5
-     coreutils          | []    []    []    []                 []   | 14
-     cpio               | []          []                 []         | 13
-     darkstat           |             []                 ()    ()   |  9
-     diffutils          | []          []    []                 []   | 21
-     e2fsprogs          |                   []                      |  3
-     enscript           | []          []    []                      | 11
-     error              |    []             []                 []   | 14
-     fetchmail          |                   []                      |  7
-     fileutils          | []    []    []    []           []    []   | 15
-     findutils          | [] [] []    []    []           []         | 27
-     flex               | []          []    []                      | 10
-     gas                |                   []                      |  3
-     gawk               |             []    []                      |  9
-     gcal               |             []    []                      |  4
-     gcc                |                   []                      |  4
-     gettext            | [] [] []    []    []                 []   | 15
-     gettext-runtime    | [] [] []    []    []                 []   | 16
-     gettext-tools      |    [] []                                  |  5
-     gimp-print         |    []       []                            | 10
-     gliv               |                                           |  1
-     glunarclock        | []          []             []             | 11
-     gnucash            |    []                                []   |  4
-     gnucash-glossary   |    []       []                       []   |  8
-     gnupg              |    []       []    []                 []   | 16
-     gpe-calendar       |                                      []   |  5
-     gpe-conf           |                                           |  3
-     gpe-contacts       |                                      []   |  4
-     gpe-edit           |                                      []   |  5
-     gpe-login          |                                      []   |  5
-     gpe-ownerinfo      |                                      []   |  7
-     gpe-sketchbook     |                                      []   |  5
-     gpe-timesheet      |                                      []   |  6
-     gpe-today          |                                      []   |  6
-     gpe-todo           |                                      []   |  6
-     gphoto2            |             []                 []         |  9
-     gprof              |             []    []                      |  7
-     gpsdrive           |    []       []                            |  3
-     grep               | []    []          [] []                   | 24
-     gretl              |                                           |  2
-     hello              | [] []       []    [] []                   | 33
-     id-utils           | []          []    []                      | 11
-     indent             | [] []       []    []                      | 19
-     jpilot             |             []    []    []     []    []   | 10
-     jwhois             | ()          ()    []                 []   | 10
-     kbd                |             []    []                      |  8
-     ld                 |             []    []                      |  5
-     libc               |    []       []    []           []         | 20
-     libgpewidget       |                                           |  6
-     libiconv           | [] [] []    []    [] []                   | 21
-     lifelines          |             []                            |  2
-     lilypond           |             []                            |  4
-     lingoteach         |                                           |  2
-     lingoteach_lessons |                                ()         |  0
-     lynx               | []          []    [] []                   | 14
-     m4                 | []          []                 []         | 15
-     mailutils          |                                           |  2
-     make               | []          []    []           []         | 15
-     man-db             |             []                            |  6
-     mysecretdiary      |             []    []                      |  8
-     nano               | []          []       []                   | 15
-     nano_1_0           | []          []       []                   | 15
-     opcodes            |             []    []                      |  9
-     parted             |             []    []                      | 13
-     ptx                | []          []    []                      | 22
-     python             |                                           |  0
-     radius             |                                           |  0
-     recode             | []    []    []    []                      | 19
-     screem             |             []                            |  1
-     sed                |    [] []    []    [] []                   | 20
-     sh-utils           | []    []          []                      | 13
-     sharutils          | []          []    []                 []   | 16
-     sketch             |             []                            |  5
-     soundtracker       |             []                            |  7
-     sp                 |                   []                      |  3
-     tar                |    [] []    []    []           []         | 24
-     texinfo            | []          []    []           []         | 13
-     textutils          | []    []    []    []                 []   | 15
-     tin                |                                           |  1
-     util-linux         |             []    []                      | 14
-     vorbis-tools       | []                                        |  7
-     wastesedge         |                                           |  0
-     wdiff              | [] []       []    []                      | 17
-     wget               | [] [] []    []    [] []              []   | 25
-     xchat              |    [] []    []                            | 11
-     xpad               |                                           |  1
-                        +-------------------------------------------+
-       50 teams           ru sk sl sr sv ta tr uk vi wa zh_CN zh_TW
-       97 domains         32 19 16  0 56  0 48 10  1  1  12    23    913
+     Ready PO files       af am an ar as ast az be bg bn bn_IN bs ca crh cs
+                        +---------------------------------------------------+
+     a2ps               |                       []                []     [] |
+     aegis              |                                                   |
+     anubis             |                                                   |
+     aspell             |                []                       []     [] |
+     bash               |                          []             []     [] |
+     bfd                |                                                   |
+     binutils           |                                         []        |
+     bison              |                                                   |
+     bison-runtime      |                []                                 |
+     buzztrax           |                                                [] |
+     ccd2cue            |                                                   |
+     ccide              |                                                   |
+     cflow              |                                                   |
+     clisp              |                                                   |
+     coreutils          |                                         []     [] |
+     cpio               |                                                   |
+     cppi               |                                                   |
+     cpplib             |                                         []        |
+     cryptsetup         |                                                [] |
+     datamash           |                                                   |
+     denemo             |                                         []     [] |
+     dfarc              |                                         []        |
+     dialog             |       []                                []     [] |
+     dico               |                                                   |
+     diffutils          |                                                [] |
+     dink               |                                         []        |
+     direvent           |                                                   |
+     doodle             |                                                [] |
+     dos2unix           |                                                   |
+     dos2unix-man       |                                                   |
+     e2fsprogs          |                                         []     [] |
+     enscript           |                                         []        |
+     exif               |                                                [] |
+     fetchmail          |                                         []     [] |
+     findutils          |                                                [] |
+     flex               |                                         []        |
+     freedink           |                                         []     [] |
+     fusionforge        |                                                   |
+     gas                |                                                   |
+     gawk               |                                         []        |
+     gcal               |                                         []        |
+     gcc                |                                                   |
+     gdbm               |                                                   |
+     gettext-examples   | []             []        []             []     [] |
+     gettext-runtime    |                          []             []     [] |
+     gettext-tools      |                          []             []        |
+     gjay               |                                                   |
+     glunarclock        |                []        []                    [] |
+     gnubiff            |                                                [] |
+     gnubik             |          []                                       |
+     gnucash            |          ()              ()             []        |
+     gnuchess           |                                                   |
+     gnulib             |                                                [] |
+     gnunet             |                                                   |
+     gnunet-gtk         |                                                   |
+     gold               |                                                   |
+     gphoto2            |                                                [] |
+     gprof              |                          []                       |
+     gramadoir          |                                                   |
+     grep               |                          []             []     [] |
+     grub               |                                         []        |
+     gsasl              |                                                   |
+     gss                |                                                   |
+     gst-plugins-bad    |                          []                    [] |
+     gst-plugins-base   |                          []             []     [] |
+     gst-plugins-good   |                          []             []     [] |
+     gst-plugins-ugly   |                          []             []     [] |
+     gstreamer          |                []        []             []     [] |
+     gtick              |                                                [] |
+     gtkam              |                       []                       [] |
+     gtkspell           | []             []     []                []     [] |
+     guix               |                                                   |
+     guix-packages      |                                                   |
+     gutenprint         |                                         []        |
+     hello              |                                         []        |
+     help2man           |                                                   |
+     help2man-texi      |                                                   |
+     hylafax            |                                                   |
+     idutils            |                                                   |
+     iso_15924          |                                                [] |
+     iso_3166           | []          []        [] [] []  []   [] [] []  [] |
+     iso_3166_2         |                                                   |
+     iso_4217           |                                                [] |
+     iso_639            |             [] []     [] [] []  []      [] []  [] |
+     iso_639_3          |                []                          []     |
+     iso_639_5          |                                                   |
+     jwhois             |                                                   |
+     kbd                |                                                [] |
+     klavaro            |          []              [] []          []     [] |
+     ld                 |                          []                       |
+     leafpad            |                       [] []             []     [] |
+     libc               |                          []             []     [] |
+     libexif            |                       ()                          |
+     libextractor       |                                                   |
+     libgnutls          |                                                [] |
+     libgphoto2         |                                                [] |
+     libgphoto2_port    |                                                [] |
+     libgsasl           |                                                   |
+     libiconv           |                          []                    [] |
+     libidn             |                                                [] |
+     liferea            |          []    []                       []     [] |
+     lilypond           |                                         []     [] |
+     lordsawar          |                                         []        |
+     lprng              |                                                   |
+     lynx               |                                         []     [] |
+     m4                 |                                                [] |
+     mailfromd          |                                                   |
+     mailutils          |                                                   |
+     make               |                                                [] |
+     man-db             |                                         []     [] |
+     man-db-manpages    |                                                   |
+     midi-instruments   |          []                             []     [] |
+     minicom            |                                                [] |
+     mkisofs            |                                                [] |
+     myserver           |                                                [] |
+     nano               |                          []             []     [] |
+     opcodes            |                                                   |
+     parted             |                                                [] |
+     pies               |                                                   |
+     pnmixer            |                                                   |
+     popt               |                                                [] |
+     procps-ng          |                                                   |
+     procps-ng-man      |                                                   |
+     psmisc             |                                                [] |
+     pspp               |                                         []        |
+     pushover           |                                                [] |
+     pwdutils           |                                                   |
+     pyspread           |                                                   |
+     radius             |                                         []        |
+     recode             |                       []                []     [] |
+     recutils           |                                                   |
+     rpm                |                                                   |
+     rush               |                                                   |
+     sarg               |                                                   |
+     sed                |                []        []             []     [] |
+     sharutils          |                                                [] |
+     shishi             |                                                   |
+     skribilo           |                                                   |
+     solfege            |                                         []     [] |
+     solfege-manual     |                                                   |
+     spotmachine        |                                                   |
+     sudo               |                                         []     [] |
+     sudoers            |                                         []     [] |
+     sysstat            |                                                [] |
+     tar                |                          []             []     [] |
+     texinfo            |                                         []     [] |
+     texinfo_document   |                                         []     [] |
+     tigervnc           |                          []                       |
+     tin                |                                                   |
+     tin-man            |                                                   |
+     tracgoogleappsa... |                                                   |
+     trader             |                                                   |
+     util-linux         |                                                [] |
+     ve                 |                                                   |
+     vice               |                                                   |
+     vmm                |                                                   |
+     vorbis-tools       |                                                [] |
+     wastesedge         |                                                   |
+     wcd                |                                                   |
+     wcd-man            |                                                   |
+     wdiff              |                                         []     [] |
+     wget               |                                                [] |
+     wyslij-po          |                                                   |
+     xboard             |                                                   |
+     xdg-user-dirs      | []    []    [] []     [] []     []      [] []  [] |
+     xkeyboard-config   |                          []             []     [] |
+                        +---------------------------------------------------+
+                          af am an ar as ast az be bg bn bn_IN bs ca crh cs
+                           4  0  2  5  3 11   0  8 25  3   3    1 55  4  74
+
+                          da  de  el en en_GB en_ZA eo es et eu fa fi  fr 
+                        +--------------------------------------------------+
+     a2ps               | []  []  []     []         [] [] []       []  []  |
+     aegis              | []  []                       []              []  |
+     anubis             | []  []                       []          []  []  |
+     aspell             | []  []         []         [] []          []  []  |
+     bash               |                           [] []              []  |
+     bfd                | []                           []          []  []  |
+     binutils           |                              []          []  []  |
+     bison              | []  []  []                [] [] []       []  []  |
+     bison-runtime      | []  []  []                [] [] []       []  []  |
+     buzztrax           | []  []                                   []  []  |
+     ccd2cue            | []  []                    []                 []  |
+     ccide              | []  []                    [] []          []  []  |
+     cflow              | []  []                    []             []  []  |
+     clisp              | []  []     []                []              []  |
+     coreutils          | []  []                       [] []           []  |
+     cpio               | []  []                       []          []  []  |
+     cppi               | []  []                    []             []  []  |
+     cpplib             | []  []                    [] []          []  []  |
+     cryptsetup         | []  []                       []          []  []  |
+     datamash           | []  []                    []                 []  |
+     denemo             | []                                               |
+     dfarc              | []  []                    [] []          []  []  |
+     dialog             | []  []  []                [] []    [] [] []  []  |
+     dico               | []  []                                   []  []  |
+     diffutils          | []  []  []                [] []              []  |
+     dink               | []  []                    [] []          []  []  |
+     direvent           | []  []                    []                 []  |
+     doodle             | []  []                    []             []      |
+     dos2unix           | []  []                    [] []              []  |
+     dos2unix-man       |     []                       []              []  |
+     e2fsprogs          | []  []                    [] []              []  |
+     enscript           | []  []         []         []             []  []  |
+     exif               | []  []                    [] []          []  []  |
+     fetchmail          | []  ()  []     []         [] []              []  |
+     findutils          | []  []  []                [] [] []       []  []  |
+     flex               | []  []                    [] []          []  []  |
+     freedink           | []  []  []                [] []    []    []  []  |
+     fusionforge        |     []                       []              []  |
+     gas                |                              []          []  []  |
+     gawk               | []  []                       []          []  []  |
+     gcal               | []  []                       []              []  |
+     gcc                |     []                                           |
+     gdbm               | []  []                    []             []  []  |
+     gettext-examples   | []  []  []                [] []          []  []  |
+     gettext-runtime    | []  []                    [] []          []  []  |
+     gettext-tools      | []  []                       []          []  []  |
+     gjay               |     []                    []             []  []  |
+     glunarclock        | []  []                    []             []  []  |
+     gnubiff            |     ()                    []             []  ()  |
+     gnubik             | []  []                    []             []  []  |
+     gnucash            | []  ()  ()     ()            ()          ()  ()  |
+     gnuchess           |     []                    [] []              []  |
+     gnulib             | []  []                    [] [] []       []  []  |
+     gnunet             |                              []                  |
+     gnunet-gtk         |     []                                           |
+     gold               |                              []          []  []  |
+     gphoto2            | []  ()                    []                 []  |
+     gprof              | []  []                    [] []          []  []  |
+     gramadoir          | []  []                    []             []  []  |
+     grep               | []  []                    [] [] []       []  []  |
+     grub               | []  []                       []          []  []  |
+     gsasl              | []  []                    []             []  []  |
+     gss                | []  []                    []             []  []  |
+     gst-plugins-bad    | []  []                                       []  |
+     gst-plugins-base   | []  []  []                   []          []  []  |
+     gst-plugins-good   | []  []  []                   []    []    []  []  |
+     gst-plugins-ugly   | []  []  []                [] []    []    []  []  |
+     gstreamer          | []  []  []                   []    []    []  []  |
+     gtick              | []  ()                    []             []  []  |
+     gtkam              | []  ()                    [] []          []  []  |
+     gtkspell           | []  []  []                [] []    []    []  []  |
+     guix               | []                        []                     |
+     guix-packages      |                                                  |
+     gutenprint         | []  []                                   []  []  |
+     hello              | []  []  []                [] [] []       []  []  |
+     help2man           | []  []  []                [] []          []  []  |
+     help2man-texi      |     []                       []              []  |
+     hylafax            |     []                       []                  |
+     idutils            | []  []                    []             []  []  |
+     iso_15924          | []  ()                    [] []    ()    []  ()  |
+     iso_3166           | []  ()  []                [] [] [] ()    []  ()  |
+     iso_3166_2         | []  ()                             ()        ()  |
+     iso_4217           | []  ()  []                   [] [] ()    []  ()  |
+     iso_639            | []  ()                    [] []    ()    []  ()  |
+     iso_639_3          |     ()                             ()        ()  |
+     iso_639_5          |     ()                             ()        ()  |
+     jwhois             |     []                    [] []          []  []  |
+     kbd                | []  []  []                [] []              []  |
+     klavaro            | []  []  []                [] []    []        []  |
+     ld                 | []                           []          []  []  |
+     leafpad            | []  []  []                [] []    []    []  []  |
+     libc               | []  []                       []          []  []  |
+     libexif            | []  []         ()            []              []  |
+     libextractor       |     []                                           |
+     libgnutls          |     []                    []             []  []  |
+     libgphoto2         | []  ()                                       []  |
+     libgphoto2_port    | []  ()                       []    []    []  []  |
+     libgsasl           | []  []                    []             []  []  |
+     libiconv           | []  []                    [] [] []       []  []  |
+     libidn             | []  []                    []             []  []  |
+     liferea            | []  ()  []                   []    []    []  []  |
+     lilypond           | []  []  []                [] []              []  |
+     lordsawar          | []  []                                           |
+     lprng              |                                                  |
+     lynx               | []  []                    []    []       []  []  |
+     m4                 | []  []  []                []             []  []  |
+     mailfromd          |                                              []  |
+     mailutils          |     []                       []          []  []  |
+     make               | []  []                       []          []  []  |
+     man-db             | []  []                    []                 []  |
+     man-db-manpages    |     []                                       []  |
+     midi-instruments   | []  []  []                [] [] []    [] []  []  |
+     minicom            | []  []                       []          []  []  |
+     mkisofs            |                           []             []  []  |
+     myserver           |     []                    []             []  []  |
+     nano               | []  []                    [] []    []    []  []  |
+     opcodes            | []  []                       []          []  []  |
+     parted             | []  []                                       []  |
+     pies               |     []                                           |
+     pnmixer            |     []                                       []  |
+     popt               | []  []                    [] []          []  []  |
+     procps-ng          |     []                                       []  |
+     procps-ng-man      |     []                                       []  |
+     psmisc             | []  []  []                []       []    []  []  |
+     pspp               |     []                       []              []  |
+     pushover           |     ()                    [] []              []  |
+     pwdutils           | []  []                                       []  |
+     pyspread           | []  []                                       []  |
+     radius             |                              []              []  |
+     recode             | []  []  []                [] []          []  []  |
+     recutils           |     []                       []          []  []  |
+     rpm                | []  []                    []             []  []  |
+     rush               |     []                                   []  []  |
+     sarg               | []                                           []  |
+     sed                | []  []  []                [] [] []       []  []  |
+     sharutils          |     []                    []    []           []  |
+     shishi             |     []                                   []  []  |
+     skribilo           | []                           []              []  |
+     solfege            | []  []                    [] [] []    [] []  []  |
+     solfege-manual     |     []                    [] [] []           []  |
+     spotmachine        | []  []                    []             []  []  |
+     sudo               | []  []                    [] []          []  []  |
+     sudoers            | []  []  []                []             []  []  |
+     sysstat            | []  []                    [] []          []  []  |
+     tar                | []  []                    [] [] []       []  []  |
+     texinfo            | []  []                    [] []              []  |
+     texinfo_document   |     []                    [] []              []  |
+     tigervnc           | []  []  []                []             []  []  |
+     tin                | []  []                          []           []  |
+     tin-man            |                []                                |
+     tracgoogleappsa... | []  []                    []             []  []  |
+     trader             | []  []         []         []             []  []  |
+     util-linux         | []  []                       []              []  |
+     ve                 |     []                    [] []          []  []  |
+     vice               | ()  ()                                       ()  |
+     vmm                |     []                                   []      |
+     vorbis-tools       | []  []                    []                 []  |
+     wastesedge         | []                                               |
+     wcd                |     []                    [] []          []      |
+     wcd-man            |     []                                           |
+     wdiff              | []  []                    [] [] []       []  []  |
+     wget               |     []                    [] [] []       []  []  |
+     wyslij-po          |     []                    []             []  []  |
+     xboard             | []  []                       []              []  |
+     xdg-user-dirs      | []  []  []                [] [] [] [] [] []  []  |
+     xkeyboard-config   | []  []  []                [] []          []  []  |
+                        +--------------------------------------------------+
+                          da  de  el en en_GB en_ZA eo es et eu fa fi  fr 
+                          119 131 32  1   6     0   94 95 22 13  4 102 139
+
+                          ga gd gl gu he hi hr hu hy ia id is it ja ka kk
+                        +-------------------------------------------------+
+     a2ps               |                   []          []    [] []       |
+     aegis              |                                     []          |
+     anubis             |                   [] []       []    []          |
+     aspell             | []                []          []    [] []       |
+     bash               |                      []       []    [] []       |
+     bfd                |                               []       []       |
+     binutils           |                               []    [] []       |
+     bison              |                   []                            |
+     bison-runtime      | []    []          [] []    [] []    [] []       |
+     buzztrax           |                                                 |
+     ccd2cue            |                      []                         |
+     ccide              |                   [] []                         |
+     cflow              | []                []          []                |
+     clisp              |                                                 |
+     coreutils          |                      []                []       |
+     cpio               | []                [] []       []    [] []       |
+     cppi               |       []          [] []             [] []       |
+     cpplib             |                               []       []       |
+     cryptsetup         |                                     []          |
+     datamash           |                                                 |
+     denemo             |                                     []          |
+     dfarc              |                   [] []             []          |
+     dialog             | [] [] []          [] []    [] [] [] [] []       |
+     dico               |                                                 |
+     diffutils          |                      []       []    [] []       |
+     dink               |                      []                         |
+     direvent           |                      []                         |
+     doodle             | []                                  []          |
+     dos2unix           |                      []                []       |
+     dos2unix-man       |                                                 |
+     e2fsprogs          |                      []       []                |
+     enscript           | []                []          []                |
+     exif               |       []          []          [] [] [] []       |
+     fetchmail          |                               []    [] []       |
+     findutils          | []    []          [] []       []    [] []       |
+     flex               | []                                              |
+     freedink           |                   [] []       []    []          |
+     fusionforge        |                                                 |
+     gas                |                               []                |
+     gawk               |                               []    () []       |
+     gcal               |                                                 |
+     gcc                |                                                 |
+     gdbm               |                                                 |
+     gettext-examples   | []    []          [] []       []    [] []       |
+     gettext-runtime    | []    []          [] []       []    [] []       |
+     gettext-tools      |                               []    [] []       |
+     gjay               |       []                                        |
+     glunarclock        | []    []          [] []       []    []          |
+     gnubiff            |                      []       []    ()          |
+     gnubik             |       []          []                []          |
+     gnucash            |          () () ()    ()             ()          |
+     gnuchess           |                                                 |
+     gnulib             | []    []             []             [] []       |
+     gnunet             |                                                 |
+     gnunet-gtk         |                                                 |
+     gold               |                               []    []          |
+     gphoto2            |                      []       []    [] []       |
+     gprof              | []                   []       []    []          |
+     gramadoir          | []                   []       []                |
+     grep               | []    []          [] []       []    [] []       |
+     grub               |       []             []             []          |
+     gsasl              | []                [] []       []    []          |
+     gss                | []                [] []       []    []          |
+     gst-plugins-bad    |                   [] []       []                |
+     gst-plugins-base   |       []          [] []       []                |
+     gst-plugins-good   |       []          [] []       []    [] []       |
+     gst-plugins-ugly   |       []          [] []       []    [] []       |
+     gstreamer          |       []          [] []       []    []          |
+     gtick              | []    []             []       []    []          |
+     gtkam              |                      []       [] [] [] []       |
+     gtkspell           | []    []    []    [] [] []    [] [] [] []       |
+     guix               |                                                 |
+     guix-packages      |                                                 |
+     gutenprint         |       []             []             []          |
+     hello              | []    []          [] []       []                |
+     help2man           |                   []                [] []       |
+     help2man-texi      |                                                 |
+     hylafax            |                               []                |
+     idutils            |                      []       []                |
+     iso_15924          |       []             []    [] [] [] []          |
+     iso_3166           | []    [] [] [] [] [] []    [] [] [] [] []    [] |
+     iso_3166_2         |                               []    []          |
+     iso_4217           |                   [] []       [] [] [] []       |
+     iso_639            | []    [] []       [] []       [] [] [] []       |
+     iso_639_3          |       []                            []          |
+     iso_639_5          |                                                 |
+     jwhois             |       []             []       []    []          |
+     kbd                |                      []       []    []          |
+     klavaro            |       []          [] []             []       [] |
+     ld                 | []                            []    [] []       |
+     leafpad            | []    []    []    [] []       []    [] ()       |
+     libc               |       []          []          []    [] []       |
+     libexif            |                                     []          |
+     libextractor       |                                                 |
+     libgnutls          |                                     []          |
+     libgphoto2         |                                     [] []       |
+     libgphoto2_port    |                                     [] []       |
+     libgsasl           | []                   []       []    []          |
+     libiconv           | []    []          [] []       []    [] []       |
+     libidn             |                   [] []       []    []          |
+     liferea            |       []    []       []             [] []       |
+     lilypond           |                                     []          |
+     lordsawar          |                                                 |
+     lprng              |                               []                |
+     lynx               |                      []       []    [] []       |
+     m4                 | []    []          []          []       []       |
+     mailfromd          |                                                 |
+     mailutils          |                                                 |
+     make               |                   []          []    [] []       |
+     man-db             |                               []       []       |
+     man-db-manpages    |                               []       []       |
+     midi-instruments   |       []    []    [] [] []    [] [] [] []       |
+     minicom            |                      []       []       []       |
+     mkisofs            |                               []    []          |
+     myserver           |                                     []          |
+     nano               | []    []          [] []             [] []       |
+     opcodes            | []                            []    []          |
+     parted             |       []             []       []    [] []       |
+     pies               |                                                 |
+     pnmixer            |                   []                []          |
+     popt               | []    [] []       [] []    [] [] [] [] []       |
+     procps-ng          |                                                 |
+     procps-ng-man      |                                                 |
+     psmisc             |                   [] []       []    []          |
+     pspp               |       []                               []       |
+     pushover           |                                     []          |
+     pwdutils           |                               []                |
+     pyspread           |                                                 |
+     radius             |                               []                |
+     recode             | []    []    []    [] []       []    []          |
+     recutils           |                                                 |
+     rpm                |                               []                |
+     rush               |       []                                        |
+     sarg               |                                                 |
+     sed                | []    []          [] []       []    [] []       |
+     sharutils          |                                                 |
+     shishi             |                                                 |
+     skribilo           |                      []                         |
+     solfege            |       []                            []          |
+     solfege-manual     |                                                 |
+     spotmachine        |                                                 |
+     sudo               |       []          []                [] []       |
+     sudoers            |                   []                [] []       |
+     sysstat            |                   [] []       []       []       |
+     tar                | []                [] []       []    [] []       |
+     texinfo            |                   []          []    []          |
+     texinfo_document   |                   [] []             []          |
+     tigervnc           |                                                 |
+     tin                |                                                 |
+     tin-man            |                                                 |
+     tracgoogleappsa... |       []    []    [] []                         |
+     trader             |                   [] []                         |
+     util-linux         |                                        []       |
+     ve                 |                                     []          |
+     vice               |                      ()             ()          |
+     vmm                |                                                 |
+     vorbis-tools       |                   []          []                |
+     wastesedge         |                                     []          |
+     wcd                |                                                 |
+     wcd-man            |                                                 |
+     wdiff              |       []             []             []          |
+     wget               |                   [] []             [] []       |
+     wyslij-po          |       []          []          []                |
+     xboard             |                                                 |
+     xdg-user-dirs      | [] [] [] [] [] [] [] []    [] [] [] [] []    [] |
+     xkeyboard-config   |       []          [] []       []    [] []       |
+                        +-------------------------------------------------+
+                          ga gd gl gu he hi hr hu hy ia id is it ja ka kk
+                          35  2 47  4  8  2 60 71  2  6 81 11 87 57  0  3
+
+                          kn ko ku ky lg lt lv mk ml mn mr ms mt nb ne nl 
+                        +--------------------------------------------------+
+     a2ps               |                                  []          []  |
+     aegis              |                                              []  |
+     anubis             |                                  []    []    []  |
+     aspell             |                            []                []  |
+     bash               |                                        []    []  |
+     bfd                |                                                  |
+     binutils           |                                                  |
+     bison              |                                              []  |
+     bison-runtime      |          []    [] []             []    []    []  |
+     buzztrax           |                                                  |
+     ccd2cue            |                                                  |
+     ccide              |                   []                         []  |
+     cflow              |                                              []  |
+     clisp              |                                              []  |
+     coreutils          |                                        []    []  |
+     cpio               |                                              []  |
+     cppi               |                                                  |
+     cpplib             |                                              []  |
+     cryptsetup         |                                              []  |
+     datamash           |                                        []    []  |
+     denemo             |                                                  |
+     dfarc              |                      []                      []  |
+     dialog             |       []       [] []             []    []    []  |
+     dico               |                                                  |
+     diffutils          |                   []                   []    []  |
+     dink               |                                              []  |
+     direvent           |                                              []  |
+     doodle             |                                              []  |
+     dos2unix           |                                        []    []  |
+     dos2unix-man       |                                              []  |
+     e2fsprogs          |                                              []  |
+     enscript           |                                              []  |
+     exif               |    []             []                         []  |
+     fetchmail          |                                              []  |
+     findutils          |                                        []    []  |
+     flex               |                                              []  |
+     freedink           |                                        []    []  |
+     fusionforge        |                                                  |
+     gas                |                                                  |
+     gawk               |                                              []  |
+     gcal               |                                                  |
+     gcc                |                                                  |
+     gdbm               |                                                  |
+     gettext-examples   |          []       []             [] [] []    []  |
+     gettext-runtime    |    []                                  []    []  |
+     gettext-tools      |    []                                            |
+     gjay               |                                                  |
+     glunarclock        |                   []                         []  |
+     gnubiff            |                                              []  |
+     gnubik             |                                        []    []  |
+     gnucash            | () ()          () ()          ()       () () []  |
+     gnuchess           |                                        []    []  |
+     gnulib             |                                              []  |
+     gnunet             |                                                  |
+     gnunet-gtk         |                                                  |
+     gold               |                                                  |
+     gphoto2            |                                              []  |
+     gprof              |                                  []          []  |
+     gramadoir          |                                              []  |
+     grep               |                                        []    []  |
+     grub               |                []                      []    []  |
+     gsasl              |                                              []  |
+     gss                |                                                  |
+     gst-plugins-bad    |                   []                   []    []  |
+     gst-plugins-base   |                   []                   []    []  |
+     gst-plugins-good   |                [] []                   []    []  |
+     gst-plugins-ugly   |                   []             [] [] []    []  |
+     gstreamer          |                []                      []    []  |
+     gtick              |                                              []  |
+     gtkam              |                                        []    []  |
+     gtkspell           |          []    [] []       []    []    []    []  |
+     guix               |                                                  |
+     guix-packages      |                                                  |
+     gutenprint         |                                              []  |
+     hello              |                   []                   []    []  |
+     help2man           |                                        []        |
+     help2man-texi      |                                                  |
+     hylafax            |                                              []  |
+     idutils            |                                              []  |
+     iso_15924          |                () []                         []  |
+     iso_3166           | [] [] []       () [] [] []    []       []    []  |
+     iso_3166_2         |                ()                            []  |
+     iso_4217           |                () []                   []    []  |
+     iso_639            | [] []          () []    []    []             []  |
+     iso_639_3          | []             ()             []                 |
+     iso_639_5          |                ()                                |
+     jwhois             |                   []                         []  |
+     kbd                |                                              []  |
+     klavaro            |                                        []    []  |
+     ld                 |                                                  |
+     leafpad            |    []    []    [] []                         []  |
+     libc               |    []                                        []  |
+     libexif            |                                              []  |
+     libextractor       |                                              []  |
+     libgnutls          |                                  []          []  |
+     libgphoto2         |                                              []  |
+     libgphoto2_port    |                                              []  |
+     libgsasl           |                                              []  |
+     libiconv           |                []                            []  |
+     libidn             |                                              []  |
+     liferea            |                [] []                         []  |
+     lilypond           |                                              []  |
+     lordsawar          |                                                  |
+     lprng              |                                                  |
+     lynx               |                                              []  |
+     m4                 |                                              []  |
+     mailfromd          |                                                  |
+     mailutils          |                                                  |
+     make               |    []                                        []  |
+     man-db             |                                              []  |
+     man-db-manpages    |                                              []  |
+     midi-instruments   |    [] []       []          []    []       [] []  |
+     minicom            |                                        []        |
+     mkisofs            |                                              []  |
+     myserver           |                                                  |
+     nano               |                                  []    []    []  |
+     opcodes            |                                              []  |
+     parted             |    []                                        []  |
+     pies               |                                                  |
+     pnmixer            |                                              []  |
+     popt               | [] []             []                   []    []  |
+     procps-ng          |                                                  |
+     procps-ng-man      |                                                  |
+     psmisc             |                                              []  |
+     pspp               |                []                            []  |
+     pushover           |                                                  |
+     pwdutils           |                                              []  |
+     pyspread           |                                                  |
+     radius             |                                              []  |
+     recode             |                                        []    []  |
+     recutils           |                                              []  |
+     rpm                |                                              []  |
+     rush               |                                              []  |
+     sarg               |                                                  |
+     sed                |                                        []    []  |
+     sharutils          |                                              []  |
+     shishi             |                                                  |
+     skribilo           |                                                  |
+     solfege            |                                        []    []  |
+     solfege-manual     |                                              []  |
+     spotmachine        |                                              []  |
+     sudo               |    []                                  []    []  |
+     sudoers            |    []                                  []    []  |
+     sysstat            |                                        []    []  |
+     tar                |          []                            []    []  |
+     texinfo            |                                              []  |
+     texinfo_document   |                                              []  |
+     tigervnc           |                                              []  |
+     tin                |                                                  |
+     tin-man            |                                                  |
+     tracgoogleappsa... |                   []                   []    []  |
+     trader             |                                        []        |
+     util-linux         |                                              []  |
+     ve                 |                                              []  |
+     vice               |                                              []  |
+     vmm                |                                              []  |
+     vorbis-tools       |                                              []  |
+     wastesedge         |                                              []  |
+     wcd                |                                              []  |
+     wcd-man            |                                              []  |
+     wdiff              |                                              []  |
+     wget               |                                        []    []  |
+     wyslij-po          |                                              []  |
+     xboard             |                                              []  |
+     xdg-user-dirs      | [] [] [] []    [] [] [] []    []       []    []  |
+     xkeyboard-config   |    []          []                            []  |
+                        +--------------------------------------------------+
+                          kn ko ku ky lg lt lv mk ml mn mr ms mt nb ne nl 
+                           5 15  4  6  0 13 23  3  3  3  4 11  2 42  1 125
+
+                          nn or pa pl  ps pt pt_BR ro ru rw sk sl sq sr 
+                        +------------------------------------------------+
+     a2ps               |          []     []  []   [] []       []    []  |
+     aegis              |                     []      []                 |
+     anubis             |          []                 []             []  |
+     aspell             |          []         []   [] []    [] []    []  |
+     bash               |          []         []      []    [] []    []  |
+     bfd                |                             []             []  |
+     binutils           |                             []             []  |
+     bison              |          []         []                     []  |
+     bison-runtime      |          []     []  []   [] []       [] [] []  |
+     buzztrax           |                     []                         |
+     ccd2cue            |                     []                     []  |
+     ccide              |          []                 []             []  |
+     cflow              |          []         []                     []  |
+     clisp              |                             []                 |
+     coreutils          |          []                 []       []    []  |
+     cpio               |          []                 []             []  |
+     cppi               |          []         []                     []  |
+     cpplib             |                     []      []             []  |
+     cryptsetup         |          []         []                     []  |
+     datamash           |                     []                     []  |
+     denemo             |                                                |
+     dfarc              |          []         []                     []  |
+     dialog             |          []         []   [] []    [] []    []  |
+     dico               |          []                                    |
+     diffutils          |          []         []                     []  |
+     dink               |                                                |
+     direvent           |          []         []                     []  |
+     doodle             |                                         [] []  |
+     dos2unix           |          []         []      []             []  |
+     dos2unix-man       |          []         []                         |
+     e2fsprogs          |          []                                    |
+     enscript           |          []         []   [] []       []    []  |
+     exif               |          []         []   [] []    []       []  |
+     fetchmail          |          []                 []          []     |
+     findutils          |          []         []      []    [] []    []  |
+     flex               |          []         []   [] []             []  |
+     freedink           |          []         []      []       []    []  |
+     fusionforge        |                                                |
+     gas                |                                                |
+     gawk               |          []                                    |
+     gcal               |                                                |
+     gcc                |                                                |
+     gdbm               |          []         []                     []  |
+     gettext-examples   |          []     []  []   [] []    [] []    []  |
+     gettext-runtime    | []       []     []  []   [] []    [] []    []  |
+     gettext-tools      |          []         []   [] []    [] []    []  |
+     gjay               |                                            []  |
+     glunarclock        |          []         []   []       [] []    []  |
+     gnubiff            |                                            []  |
+     gnubik             |          []         []               []    []  |
+     gnucash            |          ()     ()  ()   () ()             []  |
+     gnuchess           |                     []                     []  |
+     gnulib             |          []         []      []       []    []  |
+     gnunet             |                                                |
+     gnunet-gtk         |                                                |
+     gold               |                                                |
+     gphoto2            |          []         []   [] []             []  |
+     gprof              |                     []   [] []             []  |
+     gramadoir          |                                   []       []  |
+     grep               |          []         []      []    [] []    []  |
+     grub               |          []         []      []       []    []  |
+     gsasl              |          []                       []       []  |
+     gss                |          []              []       []       []  |
+     gst-plugins-bad    |          []         []      []    []       []  |
+     gst-plugins-base   |          []         []      []    [] []    []  |
+     gst-plugins-good   |          []         []   [] []    [] []    []  |
+     gst-plugins-ugly   |          []         []   [] []    [] []    []  |
+     gstreamer          |          []         []   [] []    [] []    []  |
+     gtick              |          []         []      []    []       []  |
+     gtkam              |       [] []         []      []    []       []  |
+     gtkspell           |          []     []  []   [] []    [] [] [] []  |
+     guix               |                                                |
+     guix-packages      |                                                |
+     gutenprint         |                                   [] []        |
+     hello              |          []         []      []    [] []    []  |
+     help2man           |          []         []      []             []  |
+     help2man-texi      |          []                                    |
+     hylafax            |                                                |
+     idutils            |          []                 []             []  |
+     iso_15924          |          []     ()       [] []       []    []  |
+     iso_3166           | [] [] [] []     ()  []   [] [] [] [] [] [] []  |
+     iso_3166_2         |          []     ()                         []  |
+     iso_4217           | []       []     ()       [] [] []    []    []  |
+     iso_639            |    [] [] []     ()       [] [] [] [] []    []  |
+     iso_639_3          |       []        ()                             |
+     iso_639_5          |                 ()                         []  |
+     jwhois             |          []         []   []                []  |
+     kbd                |          []                 []                 |
+     klavaro            |       [] []         []      []       []        |
+     ld                 |                                                |
+     leafpad            | []       []     []  []      []    [] []    []  |
+     libc               |          []                 []    []           |
+     libexif            |          []         ()            []           |
+     libextractor       |          []                                    |
+     libgnutls          |          []                                    |
+     libgphoto2         |          []                                    |
+     libgphoto2_port    |          []         []      []    []       []  |
+     libgsasl           |          []              []       []       []  |
+     libiconv           |          []         []            [] []    []  |
+     libidn             |          []         []                     []  |
+     liferea            |          []     []  []   [] ()    []    []     |
+     lilypond           |                                                |
+     lordsawar          |                                                |
+     lprng              |          []                                    |
+     lynx               |                     []      []                 |
+     m4                 |          []         []   [] []             []  |
+     mailfromd          |          []                                    |
+     mailutils          |          []                                    |
+     make               |          []         []      []                 |
+     man-db             |          []                 []             []  |
+     man-db-manpages    |          []                 []             []  |
+     midi-instruments   |          []     []  []   [] []    [] []    []  |
+     minicom            |          []         []   [] []                 |
+     mkisofs            |          []                 []             []  |
+     myserver           |                                      []    []  |
+     nano               |          []         []   [] []       []    []  |
+     opcodes            |                                                |
+     parted             |          []         []      []    [] []    []  |
+     pies               |          []                                    |
+     pnmixer            |                             []                 |
+     popt               |          []     []  []      []       []    []  |
+     procps-ng          |          []                                    |
+     procps-ng-man      |          []                                    |
+     psmisc             |          []         []      []             []  |
+     pspp               |          []                 []                 |
+     pushover           |                                                |
+     pwdutils           |          []                                    |
+     pyspread           | []                  []                         |
+     radius             |          []                 []                 |
+     recode             |          []     []  []   [] []    [] []    []  |
+     recutils           |                     []                     []  |
+     rpm                |          []                                    |
+     rush               |          []         []                     []  |
+     sarg               |                     []      []                 |
+     sed                |          []     []  []   [] []    [] []    []  |
+     sharutils          |          []         []                     []  |
+     shishi             |          []                                []  |
+     skribilo           |                                            []  |
+     solfege            |          []         []      []                 |
+     solfege-manual     |          []         []                         |
+     spotmachine        |                     []                     []  |
+     sudo               |          []         []      []    [] []    []  |
+     sudoers            |          []         []               []    []  |
+     sysstat            |          []         []      []    []       []  |
+     tar                |          []         []      []       []    []  |
+     texinfo            |          []         []      []                 |
+     texinfo_document   |          []         []                         |
+     tigervnc           |                     []      []             []  |
+     tin                |                             []                 |
+     tin-man            |                                                |
+     tracgoogleappsa... |          []         []      []             []  |
+     trader             |                             []             []  |
+     util-linux         |          []         []                         |
+     ve                 |          []         []                     []  |
+     vice               |                                                |
+     vmm                |                                                |
+     vorbis-tools       |          []                          []    []  |
+     wastesedge         |                                                |
+     wcd                |                                                |
+     wcd-man            |                                                |
+     wdiff              |          []         []      []       []    []  |
+     wget               |          []         []      []    []       []  |
+     wyslij-po          | []       []         []                     []  |
+     xboard             |          []                 []             []  |
+     xdg-user-dirs      | [] [] [] []  [] []  []   [] []    [] [] [] []  |
+     xkeyboard-config   |          []         []      []       []        |
+                        +------------------------------------------------+
+                          nn or pa pl  ps pt pt_BR ro ru rw sk sl sq sr 
+                           7  3  6 114  1 12  88   32 82  3 40 45  7 101
+
+                          sv  sw ta te tg th tr uk  ur vi  wa wo zh_CN
+                        +----------------------------------------------+
+     a2ps               | []              [] [] []     []              |
+     aegis              |                              []              |
+     anubis             | []                 [] []     []              |
+     aspell             | []                    []     []  []     []   |
+     bash               | []                    []     []         []   |
+     bfd                | []                    []     []              |
+     binutils           | []                    []     []              |
+     bison              | []                    []     []         []   |
+     bison-runtime      | []              [] [] []     []         []   |
+     buzztrax           | []                           []         []   |
+     ccd2cue            |                       []     []         []   |
+     ccide              | []                    []     []         []   |
+     cflow              | []                    []     []         []   |
+     clisp              |                                              |
+     coreutils          | []                    []     []              |
+     cpio               | []                 [] []     []         []   |
+     cppi               | []                    []     []         []   |
+     cpplib             | []                 [] []     []         []   |
+     cryptsetup         |                       []     []         []   |
+     datamash           | []                    []     []              |
+     denemo             |                                         []   |
+     dfarc              | []                           []              |
+     dialog             | []  []          []           []  []     []   |
+     dico               |                       []                     |
+     diffutils          | []                 [] []     []         []   |
+     dink               | []                                           |
+     direvent           |                       []     []              |
+     doodle             | []                           []              |
+     dos2unix           | []                    []     []         []   |
+     dos2unix-man       | []                    []                []   |
+     e2fsprogs          | []                    []     []         []   |
+     enscript           | []                 [] []     []              |
+     exif               | []                 [] []     []         []   |
+     fetchmail          | []                 []        []         []   |
+     findutils          | []                 [] []     []         []   |
+     flex               | []                 []        []         []   |
+     freedink           | []              []           []              |
+     fusionforge        |                                              |
+     gas                |                       []                     |
+     gawk               | []                           []         []   |
+     gcal               | []                 []                   []   |
+     gcc                | []                                           |
+     gdbm               |                       []     []              |
+     gettext-examples   | []                 [] []     []         []   |
+     gettext-runtime    | []                 [] []     []         []   |
+     gettext-tools      | []                 [] []     []         []   |
+     gjay               |                 []           []         []   |
+     glunarclock        | []                           []  []     []   |
+     gnubiff            | []                           []              |
+     gnubik             | []                    []     []         []   |
+     gnucash            |        () ()              () ()         []   |
+     gnuchess           |                       []     []         []   |
+     gnulib             | []                    []     []         []   |
+     gnunet             |                                              |
+     gnunet-gtk         |                                              |
+     gold               |                       []     []              |
+     gphoto2            | []                    []     []         []   |
+     gprof              | []                 [] []     []              |
+     gramadoir          | []                           []         []   |
+     grep               | []              []    []     []         []   |
+     grub               | []                 [] []     []              |
+     gsasl              | []                    []     []         []   |
+     gss                | []                           []         []   |
+     gst-plugins-bad    | []                 [] []     []         []   |
+     gst-plugins-base   | []                 [] []     []         []   |
+     gst-plugins-good   | []                 [] []     []         []   |
+     gst-plugins-ugly   | []                 [] []     []         []   |
+     gstreamer          | []                 [] []     []         []   |
+     gtick              |                       []     []         []   |
+     gtkam              | []                    []     []         []   |
+     gtkspell           | []              [] [] []     []  []     []   |
+     guix               |                                              |
+     guix-packages      |                                              |
+     gutenprint         |                    [] []     []         []   |
+     hello              | []              [] [] []     []         []   |
+     help2man           |                       []     []         []   |
+     help2man-texi      |                       []                     |
+     hylafax            |                              []              |
+     idutils            |                       []     []         []   |
+     iso_15924          | []              () [] []     ()         []   |
+     iso_3166           | []        []    () [] []     ()  []     []   |
+     iso_3166_2         |                 () [] []     ()         []   |
+     iso_4217           | []              () [] []     ()         []   |
+     iso_639            | []     [] []    () [] []     ()  []     []   |
+     iso_639_3          |        []       () [] []     ()              |
+     iso_639_5          |                 ()    []     ()              |
+     jwhois             | []                 []        []         []   |
+     kbd                | []                    []     []         []   |
+     klavaro            | []                    []  [] []     []  []   |
+     ld                 | []                 [] []     []         []   |
+     leafpad            | []              [] [] []     []         []   |
+     libc               | []                 [] []     []         []   |
+     libexif            | []                           []         ()   |
+     libextractor       |                       []     []              |
+     libgnutls          | []                    []     []         []   |
+     libgphoto2         | []                    []     []              |
+     libgphoto2_port    | []                    []     []         []   |
+     libgsasl           | []                    []     []         []   |
+     libiconv           | []                    []     []  []     []   |
+     libidn             | ()                    []     []         []   |
+     liferea            | []                 [] []     []         []   |
+     lilypond           |                              []              |
+     lordsawar          |                                              |
+     lprng              |                              []              |
+     lynx               | []                 [] []     []              |
+     m4                 | []                           []         []   |
+     mailfromd          |                       []     []              |
+     mailutils          |                              []              |
+     make               | []                    []     []         []   |
+     man-db             | []                           []         []   |
+     man-db-manpages    | []                                      []   |
+     midi-instruments   | []              [] [] []     []         []   |
+     minicom            | []                           []              |
+     mkisofs            |                       []     []         []   |
+     myserver           |                              []              |
+     nano               | []                    []     []         []   |
+     opcodes            |                       []     []         []   |
+     parted             | []                 [] []     []         []   |
+     pies               |                       []     []              |
+     pnmixer            |                       []     []         []   |
+     popt               | []     []       [] [] []     []         []   |
+     procps-ng          |                       []     []              |
+     procps-ng-man      |                       []                     |
+     psmisc             | []                    []     []         []   |
+     pspp               |                    [] []                []   |
+     pushover           | []                                           |
+     pwdutils           | []                           []              |
+     pyspread           |                       []                     |
+     radius             |                       []     []              |
+     recode             | []                 []        []         []   |
+     recutils           | []                    []     []              |
+     rpm                | []                    []     []         []   |
+     rush               |                       []     []              |
+     sarg               |                                              |
+     sed                | []                 [] []     []         []   |
+     sharutils          | []                    []     []         []   |
+     shishi             |                              []         []   |
+     skribilo           | []                    []                     |
+     solfege            | []                 []        []         []   |
+     solfege-manual     |                    []                        |
+     spotmachine        | []                    []     []              |
+     sudo               | []                 [] []     []         []   |
+     sudoers            | []                    []     []         []   |
+     sysstat            | []                 [] []     []         []   |
+     tar                | []                 [] []     []         []   |
+     texinfo            |                    [] []     []              |
+     texinfo_document   |                       []                     |
+     tigervnc           | []                    []                []   |
+     tin                |                                         []   |
+     tin-man            |                                              |
+     tracgoogleappsa... | []              []    []     []         []   |
+     trader             | []                                           |
+     util-linux         | []                    []     []         []   |
+     ve                 | []                    []     []         []   |
+     vice               | ()                 ()                        |
+     vmm                |                                              |
+     vorbis-tools       | []                           []              |
+     wastesedge         |                                              |
+     wcd                |                       []     []         []   |
+     wcd-man            |                       []                     |
+     wdiff              | []                    []     []         []   |
+     wget               |                       []     []         []   |
+     wyslij-po          |                       []     []              |
+     xboard             |                       []                []   |
+     xdg-user-dirs      | []     [] []    [] [] []     []         []   |
+     xkeyboard-config   | []                 [] []     []              |
+                        +----------------------------------------------+
+                          sv  sw ta te tg th tr uk  ur vi  wa wo zh_CN
+                          106  1  4  3  0 13 51 115  1 125  7  1  100 
+
+                          zh_HK zh_TW
+                        +-------------+
+     a2ps               |             | 30
+     aegis              |             |  9
+     anubis             |             | 19
+     aspell             |             | 29
+     bash               |        []   | 23
+     bfd                |             | 11
+     binutils           |             | 12
+     bison              |        []   | 18
+     bison-runtime      |        []   | 38
+     buzztrax           |             |  9
+     ccd2cue            |             | 10
+     ccide              |             | 17
+     cflow              |             | 16
+     clisp              |             | 10
+     coreutils          |             | 18
+     cpio               |             | 20
+     cppi               |             | 17
+     cpplib             |        []   | 19
+     cryptsetup         |             | 14
+     datamash           |             | 11
+     denemo             |             |  5
+     dfarc              |             | 17
+     dialog             |        []   | 42
+     dico               |             |  6
+     diffutils          |             | 22
+     dink               |             | 10
+     direvent           |             | 11
+     doodle             |             | 12
+     dos2unix           |        []   | 18
+     dos2unix-man       |             |  9
+     e2fsprogs          |             | 15
+     enscript           |             | 21
+     exif               |             | 27
+     fetchmail          |             | 19
+     findutils          |             | 29
+     flex               |        []   | 19
+     freedink           |             | 24
+     fusionforge        |             |  3
+     gas                |             |  5
+     gawk               |             | 13
+     gcal               |             |  8
+     gcc                |             |  2
+     gdbm               |             | 10
+     gettext-examples   |  []    []   | 40
+     gettext-runtime    |  []    []   | 35
+     gettext-tools      |        []   | 24
+     gjay               |             |  9
+     glunarclock        |        []   | 27
+     gnubiff            |             |  9
+     gnubik             |             | 19
+     gnucash            |        ()   |  6
+     gnuchess           |             | 11
+     gnulib             |             | 23
+     gnunet             |             |  1
+     gnunet-gtk         |             |  1
+     gold               |             |  7
+     gphoto2            |        []   | 19
+     gprof              |             | 21
+     gramadoir          |             | 14
+     grep               |        []   | 31
+     grub               |             | 21
+     gsasl              |        []   | 19
+     gss                |             | 17
+     gst-plugins-bad    |             | 21
+     gst-plugins-base   |             | 27
+     gst-plugins-good   |             | 32
+     gst-plugins-ugly   |             | 34
+     gstreamer          |        []   | 32
+     gtick              |             | 19
+     gtkam              |             | 24
+     gtkspell           |  []    []   | 48
+     guix               |             |  2
+     guix-packages      |             |  0
+     gutenprint         |             | 15
+     hello              |        []   | 30
+     help2man           |             | 18
+     help2man-texi      |             |  5
+     hylafax            |             |  5
+     idutils            |             | 14
+     iso_15924          |        []   | 23
+     iso_3166           |  []    []   | 58
+     iso_3166_2         |             |  9
+     iso_4217           |  []    []   | 28
+     iso_639            |  []    []   | 46
+     iso_639_3          |             | 10
+     iso_639_5          |             |  2
+     jwhois             |        []   | 20
+     kbd                |             | 17
+     klavaro            |             | 30
+     ld                 |        []   | 15
+     leafpad            |        []   | 39
+     libc               |        []   | 24
+     libexif            |             | 10
+     libextractor       |             |  5
+     libgnutls          |             | 13
+     libgphoto2         |             | 10
+     libgphoto2_port    |        []   | 19
+     libgsasl           |             | 18
+     libiconv           |        []   | 29
+     libidn             |             | 17
+     liferea            |             | 29
+     lilypond           |             | 11
+     lordsawar          |             |  3
+     lprng              |             |  3
+     lynx               |             | 19
+     m4                 |        []   | 22
+     mailfromd          |             |  4
+     mailutils          |             |  6
+     make               |             | 19
+     man-db             |             | 15
+     man-db-manpages    |             | 10
+     midi-instruments   |        []   | 43
+     minicom            |        []   | 17
+     mkisofs            |             | 13
+     myserver           |             |  9
+     nano               |        []   | 30
+     opcodes            |             | 12
+     parted             |        []   | 23
+     pies               |             |  4
+     pnmixer            |             |  9
+     popt               |        []   | 36
+     procps-ng          |             |  5
+     procps-ng-man      |             |  4
+     psmisc             |        []   | 22
+     pspp               |             | 13
+     pushover           |             |  6
+     pwdutils           |             |  8
+     pyspread           |             |  6
+     radius             |             |  9
+     recode             |             | 31
+     recutils           |             | 10
+     rpm                |        []   | 13
+     rush               |             | 10
+     sarg               |             |  4
+     sed                |        []   | 35
+     sharutils          |             | 13
+     shishi             |             |  7
+     skribilo           |             |  7
+     solfege            |             | 21
+     solfege-manual     |             |  9
+     spotmachine        |             | 11
+     sudo               |             | 26
+     sudoers            |             | 22
+     sysstat            |             | 23
+     tar                |        []   | 30
+     texinfo            |             | 17
+     texinfo_document   |             | 13
+     tigervnc           |             | 14
+     tin                |        []   |  7
+     tin-man            |             |  1
+     tracgoogleappsa... |        []   | 22
+     trader             |             | 12
+     util-linux         |             | 13
+     ve                 |             | 14
+     vice               |             |  1
+     vmm                |             |  3
+     vorbis-tools       |             | 13
+     wastesedge         |             |  3
+     wcd                |             |  8
+     wcd-man            |             |  3
+     wdiff              |        []   | 23
+     wget               |             | 21
+     wyslij-po          |             | 14
+     xboard             |             | 10
+     xdg-user-dirs      |  []    []   | 68
+     xkeyboard-config   |        []   | 28
+                        +-------------+
+       89 teams           zh_HK zh_TW
+      166 domains           7    42    2809
 
    Some counters in the preceding matrix are higher than the number of
 visible blocks let us expect.  This is because a few extra PO files are
@@ -594,32 +1350,30 @@ used for implementing regional variants of languages, or language
 dialects.
 
    For a PO file in the matrix above to be effective, the package to
-which it applies should also have been internationalized and
-distributed as such by its maintainer.  There might be an observable
-lag between the mere existence a PO file and its wide availability in a
-distribution.
-
-   If May 2003 seems to be old, you may fetch a more recent copy of
-this `ABOUT-NLS' file on most GNU archive sites.  The most up-to-date
-matrix with full percentage details can be found at
-`http://www.iro.umontreal.ca/contrib/po/HTML/matrix.html'.
-
-Using `gettext' in new packages
-===============================
-
-   If you are writing a freely available program and want to
-internationalize it you are welcome to use GNU `gettext' in your
-package.  Of course you have to respect the GNU Library General Public
-License which covers the use of the GNU `gettext' library.  This means
-in particular that even non-free programs can use `libintl' as a shared
-library, whereas only free software can use `libintl' as a static
-library or use modified versions of `libintl'.
+which it applies should also have been internationalized and distributed
+as such by its maintainer.  There might be an observable lag between the
+mere existence a PO file and its wide availability in a distribution.
+
+   If Jun 2014 seems to be old, you may fetch a more recent copy of this
+'ABOUT-NLS' file on most GNU archive sites.  The most up-to-date matrix
+with full percentage details can be found at
+'http://translationproject.org/extra/matrix.html'.
+
+1.5 Using 'gettext' in new packages
+===================================
+
+If you are writing a freely available program and want to
+internationalize it you are welcome to use GNU 'gettext' in your
+package.  Of course you have to respect the GNU Lesser General Public
+License which covers the use of the GNU 'gettext' library.  This means
+in particular that even non-free programs can use 'libintl' as a shared
+library, whereas only free software can use 'libintl' as a static
+library or use modified versions of 'libintl'.
 
    Once the sources are changed appropriately and the setup can handle
-the use of `gettext' the only thing missing are the translations.  The
+the use of 'gettext' the only thing missing are the translations.  The
 Free Translation Project is also available for packages which are not
 developed inside the GNU project.  Therefore the information given above
 applies also for every other Free Software Project.  Contact
-`translation@iro.umontreal.ca' to make the `.pot' files available to
-the translation teams.
-
+'coordinator@translationproject.org' to make the '.pot' files available
+to the translation teams.
diff --git a/CHANGES b/CHANGES
index 4eb96c0e9ab2601dc4ffc401196741d7f4fd591c..bce097c405d3c0938e4b08dceb2adb8768ad569e 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -1,3 +1,124 @@
+This document details the changes between this version, bash-5.0-beta, and
+the previous version, bash-5.0-alpha.
+
+1.  Changes to Bash
+
+a. Fixed a bug that allowed subshells to "inherit" enclosing loops -- this
+   is where POSIX says the subshell is not "enclosed" by the loop.
+
+b. Added more UTF-8-specific versions of multibyte functions, and optimized
+   existing functions if the current locale uses UTF-8 encoding.
+
+c. In POSIX mode, assignments preceding regular builtins should not persist
+   when the builtin completes.
+
+d. Added additional checks to special array assignment (e.g., BASH_ALIASES)
+   so it can't be used to bypass validity checks performed in other places.
+
+e. The `!!' history expansion now refers to the previous history entry as
+   expected, even if used on the second or subsequent line of a multi-line
+   history entry.
+
+f. Fixed a bug that could cause the shell to dereference a NULL pointer if
+   the environment (`environ') is set to NULL.
+
+g. Bash uses slightly better integer overflow handling for brace sequence
+   expansion on systems where ints are 32 bits and intmax_t is 64 bits.
+
+h. Fixed a bug setting attributes for a variable named as an argument to
+   `declare' that also appears as a nameref in the temporary environment.
+
+i. Fixed several bugs that could cause assignments to namerefs to create
+   variables with invalid names.
+
+j. Fixed a bug that could result in the SIGINT handler being set incorrectly
+   in asynchronous subshells.
+
+k. Fixed a bug that could cause `bash -t' to not execute the specified command.
+
+l. Fixed several bugs that caused the shell to operate on the wrong variable
+   when using namerefs with the same name as a global variable in shell
+   functions.
+
+m. Internal changes to how the shell handles variables with invalid names in
+   the initial environment and to prevent variables with invalid names from
+   being added to the environment instead of passing them on to children.
+
+n. Changes to make sure that an expansion that results in a quoted null string
+   is reflected in the expansion, even if the word expands to nothing.
+
+o. Changes to make sure that $* and ${array[*]} (and $@/${array[@]}) expand
+   the same way after the recent changes for POSIX interpretation 888.
+
+p. Saving and restoring the positional parameters at function entry and exit
+   is considerably more efficient; noticeably so when there are large numbers
+   of positional parameters.
+
+q. Fixed a bug that caused `lastpipe' and `pipefail' to return an incorrect
+   status for the pipeline if there was more than one external command in a
+   loop body appearing in the last pipeline element.
+
+r. Fixed a bug that caused value conversion errors with the printf builtin's
+   %u and %f conversion specifications and invalid constants.
+
+2.  Changes to Readline
+
+a. Added more UTF-8-specific versions of multibyte functions, and optimized
+   existing functions if the current locale uses UTF-8 encoding.
+
+b. Fixed a problem with bracketed-paste inserting more than one character and
+   interacting with other readline functions.
+
+c. Fixed a bug that caused the history library to attempt to append a history
+   line to a non-existent history entry.
+
+d. If using bracketed paste mode, output a newline after the \r that is the
+   last character of the mode disable string to avoid overwriting output.
+
+e. Fixes to the vi-mode `b', `B', `w', `W', `e', and `E' commands to better
+   handle multibyte characters.
+
+f. Fixed a redisplay problem that caused an extra newline to be generated on
+   accept-line when the line length is exactly the screenwidth.
+
+3.  New Features in Bash
+
+a. Bash no longer allows variable assignments preceding a special builtin that
+   changes variable attributes to propagate back to the calling environment
+   unless the compatibility level is 44 or lower.
+
+b. You can set the default value for $HISTSIZE at build time in config-top.h.
+
+c. The `complete' builtin now accepts a -I option that applies the completion
+   to the initial word on the line.
+
+d. The internal bash malloc now uses mmap (if available) to satisfy requests
+   greater than 128K bytes, so free can use mfree to return the pages to the
+   kernel.
+
+e. The shell doesn't automatically set BASH_ARGC and BASH_ARGV at startup
+   unless it's in debugging mode, as the documentation has always said, but
+   will dynamically create them if a script references them at the top level
+   without having enabled debugging mode.
+
+f. The localvar_inherit option will not attempt to inherit a value from a
+   variable of an incompatible type (indexed vs. associative arrays, for
+   example).
+
+g. The `globasciiranges' option is now enabled by default; it can be set to
+   off by default at configuration time.
+
+4.  New Features in Readline
+
+a. The history expansion library now understands command and process
+   substitution and extended globbing and allows them to appear anywhere in a
+   word.
+
+b. The history library has a new variable that allows applications to set the
+   initial quoting state, so quoting state can be inherited from a previous
+   line.
+
+------------------------------------------------------------------------------
 This document details the changes between this version, bash-5.0-alpha, and
 the previous version, bash-4.4-release.
 
@@ -195,11 +316,11 @@ kkk. Fixed a problem with arithmetic expressions containing array references
 lll. The `select' command and help builtin will use $COLUMNS before the window
      size returned from the kernel as the terminal width.
 
-mmm. `read -n 0' and `read -N 0' now try a zero-length read to attempt to
+mmm. `read -n 0' and `read -N 0' now try a zero-length read in an attempt to
      detect file descriptor errors.
 
 nnn. The `read' builtin now does a better job of acting on signals that don't
-     interrrupt read(2).
+     interrupt read(2).
 
 ooo. Fixed some cases where `printf -v' did not return failure status on a
      variable assignment error.
@@ -208,7 +329,7 @@ ppp. Fixed temporary environment propagation back to the current environment
      so that it doesn't happen for special builtins run by the `command'
      builtin.
 
-qqq. Fixed a bug when searhing for the end of a here-document delimiter in a
+qqq. Fixed a bug when searching for the end of a here-document delimiter in a
      command substitution.
 
 rrr. Fixed a bug that could cause `cd ${DIRSTACK[0]}' to fail.
@@ -359,7 +480,7 @@ d. Added support for keyboard timeouts when an ESC character is the last
 
 e. There are several performance improvements when in a UTF-8 locale.
 
-f. Readline does a better job of preserving the original set of blocked =
+f. Readline does a better job of preserving the original set of blocked
    signals when using pselect() to wait for input.
 
 g. Fixed a bug that caused multibyte characters in macros to be mishandled.
diff --git a/COMPAT b/COMPAT
index aa0019fa73b51f611233da4ba75fcdaff710d26a..ce6a791cbecca5451e04a07cfec3301d760a6071 100644 (file)
--- a/COMPAT
+++ b/COMPAT
@@ -396,6 +396,15 @@ above.
     BASH_ARGC and BASH_ARGV is available at compatibility levels less than
     or equal to 44.
 
+61. Bash-5.0 doesn't allow a `break' or `continue' in a subshell to attempt
+    to break or continue loop execution inherited from the calling context.
+
+62. Bash-5.0 doesn't allow variable assignments preceding builtins like
+    export and readonly to modify variables with the same name in preceding
+    contexts (including the global context) unless the shell is in posix
+    mode, since export and readonly are special builtins.
+
+
 Shell Compatibility Level
 =========================
 
@@ -451,15 +460,22 @@ compat43 set
          (declare -a foo='(1 2)')
        - word expansion errors are considered non-fatal errors that cause the
          current command to fail, even in Posix mode
-       - when executing a shell function, the loop state (while/until/etc.) is
-         not reset, so `break' or `continue' in a shell function will break or
-         continue loops in the calling context.  Bash-4.4 and later reset the
-         loop state to prevent this.
+       - when executing a shell function, the loop state (while/until/etc.)
+         is not reset, so `break' or `continue' in that function will break
+         or continue loops in the calling context. Bash-4.4 and later reset
+         the loop state to prevent this.
 
 compat44 set
        - the shell sets up the values used by BASH_ARGV and BASH_ARGC so
          they can expand to the shell's positional parameters even if extended
          debug mode is not enabled
+       - a subshell inherits loops from its parent contenxt, so `break'
+         or `continue' will cause the subshell to exit
+       - variable assignments preceding builtins like export and readonly
+         that set attributes continue to affect variables with the same
+         name in the calling environment even if the shell is not in posix
+         mode
+
 
 -------------------------------------------------------------------------------
 
index 61e07c0dc8814bab1cbda852fab8a08f5f1cb97c..9f00b946effb9c33e6bf24efcba75802935f0052 100644 (file)
-                                2/14/2011
+                                9/15/2016
                                 ---------
-[bash-4.2 released]
+[bash-4.4 released]
 
-                                  2/15
+                                  9/17
                                   ----
-lib/glob/gmisc.c
-       - fix wmatchlen and umatchlen to avoid going past the end of the
-         string on an incomplete bracket expression that ends with a
-         NUL.  Partial fix for bug reported by Clark Wang <dearvoid@gmail.com>
+builtins/common.c
+       - display_signal_list: if 0 is supplied as an argument to kill -l,
+         display a signal-out-of-range error.  Fixes bug reported by
+         Martijn Dekker <martijn@inlv.org>
 
-                                  2/16
+                                  9/18
                                   ----
-subst.h
-       - new string extract flag value: SX_WORD.  Used when calling
-         extract_dollar_brace_string to skip over the word in
-         ${param op word} from parameter_brace_expand
-
-subst.c
-       - change parameter_brace_expand to add SX_WORD to flags passed to
-         extract_dollar_brace_string
-       - change parameter_brace_expand to use SX_POSIXEXP for all non-posix
-         word expansion operators that treat single quotes as special, not
-         just % and #
-       - change extract_dollar_brace_string to initialize dolbrace_state to
-         DOLBRACE_WORD if SX_WORD flag supplied and we shouldn't use
-         DOLBRACE_QUOTE.  Fixes bug reported by Juergen Daubert <jue@jue.li>
-
-doc/{bash.1,bashref.texi}
-       - document the exact expansions here strings undergo
+print_cmd.c
+       - print_heredoc_bodies: take a list of redirections, all here documents,
+         and print the here-document bodies including the ending delimiter,
+         followed by a newline
+       - print_redirection_list: print the heredoc headers the first time
+         through the list of redirections so we print them in the same left-
+         to-right order they're supplied; print the bodies and delimiters with
+         print_heredoc_bodies after we print all the redirections if we're
+         not printing a list of commands (printing_connection == 0).  Fix for
+         problem reported by Isabella Parakiss <izaberina@gmail.com>
+       - print_deferred_heredocs: don't print heredoc headers, since they're
+         now printed in print_redirection_list
+       - print_deferred_heredocs: use print_heredoc_bodies
 
-                                  2/17
+                                  9/20
                                   ----
-lib/readline/vi_mode.c
-       - make sure that `dd', `cc', and `yy' call vidomove_dispatch from
-         rl_domove_read_callback.  Fixes bug reported by Clark Wang
-         <dearvoid@gmail.com>
+builtins/mapfile.def
+       - readarray: update usage synopsis to include -d delim.  Report and
+         fix from jhankins@homewood.k12.al.us
 
-lib/readline/callback.c
-       - make sure _rl_internal_char_cleanup is called after the
-         vi-motion callbacks (rl_vi_domove_callback) in rl_callback_read_char.
-         Companion to above fix
+test.c
+       - test_binop: if op[0] == '-', make sure op[1] != 0 before checking
+         op[2] or op[3].  Fixes out-of-bounds read reported by Franco
+         Costantini <franco.costantini.20@gmail.com>
 
-doc/{bash.1,bashref.texi}
-       - make sure that the text describing the rhs of the == and =~
-         operators to [[ states that only the quoted portion of the pattern
-         is matched as a string
+parse.y
+       - cond_term: if yylval.word->word[0] == '-' make sure word[1] != 0
+         before checking word[2] and calling test_unop.  Fixes out-of-bounds
+         read reported by Franco Costantini <franco.costantini.20@gmail.com>
+       - make sure to check all instances of the return value of the
+         simple_command production before trying to hook redirections onto it,
+         since it can potentially return NULL.
+         Reported by Franco Costantini <franco.costantini.20@gmail.com>
 
-                                  2/18
+                                  9/21
                                   ----
-lib/glob/gmisc.c
-       - better fix for umatchlen/wmatchlen: keep track of the number of
-         characters in a bracket expression as the value to increase
-         matchlen by if the bracket expression is not well-formed.  Fixes
-         bug reported by Clark Wang <dearvoid@gmail.com>
+parse.y
+       - token_is_assignment: make sure to check that the return value from
+         assignment() finds the `=' we just added at index I to avoid false
+         positives from g=g=g=g=g=g=().  Reported by Franco Costantini
+         <franco.costantini.20@gmail.com>
 
-subst.c
-       - change expand_string_for_rhs so that it sets the W_NOSPLIT2 flag
-         in the word flags.  We will not perform word splitting or quote
-         removal on the result, so we do not want to add quoted nulls if
-         we see "" or ''.  Fixes bug reported by Mike Frysinger
-         <vapier@gentoo.org>
+                                  9/22
+                                  ----
+parse.y
+       - token_is_assignment: if we're not using the bash malloc (which has
+         guard bytes after the requested allocation size), use a new
+         buffer so we can make sure it's big enough to hold the current
+         token and at least two additional characters.  Reported by
+         Franco Costantini <franco.costantini.20@gmail.com>
 
-                                  2/19
+                                  9/23
                                   ----
-variables.c
-       - new function, int chkexport(name), checks whether variable NAME is
-         exported and remakes the export environment if necessary.  Returns
-         1 if NAME is exported and 0 if not
-       - call chkexport(name) to get tzset to look at the right variable in
-         the environment when modifying TZ in sv_tz.  Don't call tzset if
-         chkexport doesn't indicate that the variable is exported
+execute_command.c
+       - execute_in_subshell: call without_job_control for both job control
+         and non-job-control builds to avoid waiting for last_made_pid
+         inherited from parent shell.  Related to fix from 8/4 to
+         initialize_subshell.  Fixes bug reported by Martijn Dekker
+         <martijn@inlv.org>
 
-variables.h
-       - new extern declaration for chkexport
+builtins/declare.def
+       - local_builtin: allow `local --help' to work even when not executing
+         a function. Suggestion from Norm Abramovitz <norm@starkandwayne.com>
 
+                                  9/25
+                                  ----
+builtins/printf.def
+       - bexpand: if passed a null or empty string, return a newly-allocated
+         empty string (so the return value can always be freed) instead of
+         NULL.
+       - printstr: if passed a null string, treat it as if it were an empty
+         string so any precision or fieldwidth arguments are handled
+         correctly.  Report from isabella parakiss <izaberina@gmail.com>
 
-{parse.y,builtins/printf.def}
-       - call sv_tz before calling localtime() when formatting time strings
-         in prompt strings or using printf.  Fixes bug reported by
-         Dennis Williamson <dennistwilliamson@gmail.com>
+subst.c
+       - skip_matched_pair: make the flags argument of 1 affect whether or
+         not backslash can quote characters in the string, so it affects
+         all quoting mechanisms
 
-execute_cmd.c
-       - modify fix of 2/9 to add casts when those variables are passed to
-         functions; some compilers throw errors instead of warnings.  Report
-         and fix from Joachim Schmitz <jojo@schmitz-digital.de>
+arrayfunc.c
+       - unbind_array_element: now takes a third (flags) argument; flags&1
+         means to not expand an associative array index. This is only called
+         from a shell builtin context, which means the argument should have
+         already undergone word expansion, so it should be ok.  Will still
+         be a problem for uses like "unset -v 'var[$ind]'", quoted to avoid
+         globbing
+       - valid_array_reference: pass second flags argument to skipsubscript;
+         still set to 0 by all callers
 
-support/shobj-conf
-       - add a stanza for nsk on the Tandem from Joachim Schmitz
-         <jojo@schmitz-digital.de>
+arrayfunc.h
+       - unbind_array_element: updated prototype
 
-{shell,lib/readline/shell}.c
-       - Tandem systems should use getpwnam (getlogin()); for some reason
-         they don't do well with using getuid().  Fix from Joachim Schmitz
-         <jojo@schmitz-digital.de>
+builtins/set.def
+       - unset_builtin: add third argument of 1 to unbind_array_element calls
+         [TEMPORARILY DISABLED]
+       - unset_builtin: call valid_array_reference with second arg of 1 to
+         handle unmatched pairs of quotes and [/]
 
-                                   3/1
-                                   ---
-variables.c
-       - make sure that the return value from find_variable is non-null
-         before trying to use it in chkexport.  Fixes bug reported by
-         Evangelos Foutras <foutrelis@gmail.com>
+array.c
+       - array_reference: optimize access locality as well as sequential
+         access by adding ability to start from last-accessed element and move
+         backwards or forwards depending on the desired index.  Inspired by
+         report from Tom McCurdy <tom.j.mccurdy@gmail.com> and followup from
+         Christian Franke <Christian.Franke@t-online.de>
 
-                                   3/3
-                                   ---
-parse.y
-       - when adding $$ to the current token buffer in read_token_word(),
-         don't xmalloc a buffer for two characters and then strcpy it, just
-         copy the characters directly into the token buffer.  Fix from
-         Michael Whitten <mfwitten@gmail.com>
+variables.c
+       - all_array_variables: include associative arrays, not just indexed
+         arrays.  Reported by Grisha Levit <grishalevit@gmail.com>
 
 execute_cmd.c
-       - fix expand_word_unsplit to add the W_NOSPLIT2 flag to the word to
-         be expanded, so "" doesn't add CTLNUL.  Similar to fix of 2/18 to
-         expand_string_for_rhs.  Fixes bug reported by Nathanael D. Noblet
-         <nathanael@gnat.ca> and Matthias Klose <doko@debian.org>
-
-parse.y
-       - fix extended_glob case of read_token_word to allocate an extra
-         space in the buffer for the next character read after the extended
-         glob specification if it's a CTLESC or CTLNUL.  Report and fix from
-         Michael Witten <mfwitten@gmail.com>
-       - fix shell expansions case of read_token_word to allocate an extra
-         space in the buffer for the next character read after the shell
-         expansion if it's a CTLESC or CTLNUL.  Report and fix from
-         Michael Witten <mfwitten@gmail.com>
-       - TENTATIVE: fix read_token_word to reduce the amount of buffer space
-         required to hold the translated and double-quoted value of $"..."
-         strings.  Report and fix from Michael Witten <mfwitten@gmail.com>
-       - change code around got_character and got_escaped_character labels to
-         make sure that we call RESIZE_MALLOCED_BUFFER before adding the
-         CTLESC before a CTLESC or CTLNUL, and before adding the character if
-         we're not adding a CTLESC.  Report and fix from
-         Michael Witten <mfwitten@gmail.com>
-
-subst.c
-       - new param flags value, PF_ASSIGNRHS, mirrors W_ASSIGNRHS, noting that
-         parameter expansion is on rhs of assignment statement.  That inhibits
-         word splitting
-       - change param_expand to call string_list_dollar_at with quoted == 1
-         if PF_ASSIGNRHS is set, so it will quote IFS characters in the
-         positional parameter before separating them with the first char of
-         $IFS.  This keeps the rhs from being split inappropriately.  Fixes
-         bug reported by Andres Perera <andres.p@zoho.com>
+       - execute_disk_command: if we're optimizing out the fork (CMD_NO_FORK),
+         decrement the shell level so we don't end up incrementing it twice.
+         We should decrement the shell level for an implicit exec like an
+         explicit one.  Reported by Stephane Chazelas
+         <stephane.chazelas@gmail.com>
 
-                                   3/4
-                                   ---
-lib/readline/bind.c
-       - add a missing free of `names' in rl_function_dumper.  Bug report
-         and fix from Michael Snyder <msnyder@vmware.com>
+builtins/exec.def
+       - exec_builtin: don't bother to decrement the shell level if we are
+         already in a `(command)' subshell.  Reported by Stephane Chazelas
+         <stephane.chazelas@gmail.com>
 
-                                   3/5
-                                   ---
-lib/readline/rltty.c
-       - change rl_deprep_terminal so it uses fileno (stdin) for the tty fd
-         if rl_instream is not set, like rl_prep_terminal
+lib/readline/macro.c
+       - macro_level: count of macro nesting level, maintained by
+         _rl_push_executing_macro and _rl_pop_executing macro
+       - _rl_with_macro_input: if current nesting level exceeds
+         MAX_MACRO_LEVEL, abort the current command line with _rl_abort_internal
+         and return to the top level.  Reported by Christian Klomp
+         <christianklomp@gmail.com>
 
-                                   3/6
-                                   ---
-lib/readline/display.c
-       - fix rl_message to use a dynamically-allocated buffer instead of a
-         fixed-size buffer of 128 chars for the `local message prompt'.  Bug
-         report and fix from Micah Cowan <micah@cowan.name>
+lib/readine/history.c
+       - add_history: if allocating the history list for the first time,
+         make sure the max history list size isn't so large that it will
+         cause allocation errors.  Cap it at MAX_HISTORY_INITIAL_SIZE
+         (8192).  Reported by Sean Zha <freeman_cha@hotmail.com>
 
-                                   3/7
-                                   ---
 jobs.c
-       - add sentinel to wait_sigint_handler so it only sets wait_sigint_received
-         if waiting_for_child is non-zero; otherwise, it restores the old
-         SIGINT handler and sends itself the SIGINT
-       - set waiting_for_child around the calls to waitchld that use it to
-         synchronously wait for a process
-       - change logic that decides whether or not the child process blocked
-         or handled SIGINT based on whether or not waitpid returns -1/EINTR
-         and the shell receives a SIGINT and the child does not exit.  If
-         the child later exits due to SIGINT, cancel the assumoption that it
-         was handled
-       - instead of testing whether or not the child exited due to SIGINT
-         when deciding whether the shell should act on a SIGINT it received
-         while waiting, test whether or not we think the child caught
-         SIGINT.  If it did, we let it go (unless the shell has it trapped);
-         if it did not catch it, the shell acts on the SIGINT.  Fix from
-         Linus Torvalds <torvalds@linux-foundation.org>, bug report originally
-         from Oleg Nesterov <oleg@redhat.com>
-
-                                   3/8
-                                   ---
-shell.c
-       - initialize no_line_editing to 1 if READLINE is not defined -- we
-         can't have line editing without readline
+       - wait_for: if a foreground job with job control enabled is killed by a
+         SIGINT and sourcelevel != 0, act as if we received the SIGINT so the
+         file sourcing can be terminated.  Reported by PePa
+         <peterkelly@passchier.net>
 
-                                  3/12
+                                  9/26
                                   ----
-lib/readline/signals.c
-       - add SIGHUP to the set of signals readline handles
-
-lib/readline/doc/rltech.texi
-       - document that SIGHUP is now part of the set of signals readline
-         handles
-
-lib/readline/input.c
-       - if _rl_caught_signal indicates that read() was interrupted by a
-         SIGHUP or SIGTERM, return READERR or EOF as appropriate
-       - call rl_event_hook, if it's set, if call to read in rl_getc
-         returns -1/EINTR.  If rl_event_hook doesn't do anything, this
-         continues the loop as before.  This handles the other fatal
-         signals
-
-execute_cmd.c
-       - add a couple of QUIT; calls to execute_disk_command and
-         execute_simple_command to improve responsiveness to interrupts
-         and fatal signals
-
-input.c
-       - rearrange getc_with_restart so that the return values from read()
-         are handled right
-
-parse.y
-       - don't need to set terminate_immediately in yy_stream_get, since
-         getc_with_restart checks for terminating signals itself
-       - since readline returns READERR on SIGHUP or SIGTERM, don't need
-         to set terminate_immediately.  Still doesn't handle other
-         signals well -- will have to check that some more
-
-bashline.c
-       - new function, bash_event_hook, for rl_event_hook.  Just checks for
-         terminating signals and acts on them using CHECK_TERMSIG.
-       - set rl_event_hook to bash_event_hook
-
-builtins/read.def
-       - take out setting terminate_immediately; add calls to CHECK_TERMSIG
-         after read calls
+subst.c
+       - read_comsub: only warn once for null bytes in command substitution
+         output, instead of once for every null byte
 
-doc/{bash.1,bashref.texi}
-       - move the text describing the effect of negative subscripts used to
-         reference indexed array elements to the paragraphs describing
-         ${parameter[subscript]}, since that's where they are implemented.
-         Pointed out by Christopher F. A. Johnson <cfajohnson@gmail.com>
+arrayfunc.c
+       - array_variable_part: now takes a `flags' argument; changed all callers
+         to initially pass 0
+       - array_variable_name: now takes a `flags' argument; changed all callers
+         to initially pass 0
+       - array_variable_name: pass `flags' argument to skipsubscript instead
+         of just passing 0
 
-arrayfunc.[ch],subst.c
-       - array_expand_index now takes a new first argument: a SHELL_VAR *
-         of the array variable being subscripted.  Can be used later to fully
-         implement negative subscripts
+arrayfunc.h
+       - array_variable_{name,part}: added new argument to prototypes
 
-                                  3/14
+                                  9/29
                                   ----
-lib/glob/glob.c
-       - fix mbskipname to not turn the directory entry name into a wide char
-         string if the conversion of the pattern to a wide char string fails
-       - fix mbskipname to call skipname if either the pattern or the filename
-         can't be converted into a wide-char string
+bashline.c
+       - bash_directory_completion_hook: don't bother to try and expand a
+         ${ or $( that isn't complete; expand_prompt_string will complain.
+         Fixes reports from John Passaro <john.a.passaro@gmail.com> and
+         Valentin Bajrami <valentin.bajrami@gmail.com>
 
-lib/glob/xmbsrtowcs.c
-       - fix xdupmbstowcs2 to handle return value of 0 from mbsnrtowcs and
-         short-circuit with failure in that case.  Fixes bug reported by
-         Roman Rakus <rrakus@redhat.com>
+lib/readline/history.c
+       - _hs_append_history_line: use a strategy that attempts to avoid
+         realloc copying memory to a newly-allocated block if the history
+         line we're appending to gets `too long' (currently 256 bytes).
+         We reallocate in powers of 2 starting at 512, and rely on realloc
+         not allocating a new block and copying into it if the size is the
+         same as the last call to realloc.  Addresses issue raised by
+         Hubert Schmid <h.schmid@gmx.de>
 
-                                  3/15
-                                  ----
-bashline.c
-       - new variable, bash_filename_quote_characters to store the value
-         assigned to rl_filename_quote_characters so it can be restored
-         if changed.
-       - change bashline_reset and attempt_shell_completion to restore
-         rl_filename_quote_characters if not set to default
+trap.h
+       - check_signals: new extern declaration
+       - trapped_signal_received: new extern declaration
 
-                                  3/22
-                                  ----
-lib/glob/glob.c
-       - wdequote_pathname falls back to udequote_pathname if xdupmbstowcs
-         fails to convert the pathname to a wide-character string
+builtins/read.def
+       - read_builtin: if one of the zread* functions returns < 0 (which
+         usually only happens in Posix mode), make sure we call check_signals()
+         before eventually calling run_pending_traps() because zread() isn't
+         going to call it
+       - include trap.h for correct extern functions and variable declarations
 
-lib/glob/xmbsrtowcs.c
-       - xdupmbstowcs2: change to fix problem with leading '\\' (results in
-         nms == 0, which causes it to short-circuit with failure right
-         away).  Fixes bug pointed out by Werner Fink <werner@suse.de>
-       - xdupmbstowcs2: compensate for mbsnrtowcs returning 0 by taking the
-         next single-byte character and going on
-       - xdupmbstowcs2: change memory allocation to increase by WSBUF_INC
-         bytes; try to avoid calls to realloc (even if they don't actually
-         result in more memory being allocated)
+lib/sh/zread.c
+       - zread: if executing a builtin, call check_signals_and_traps() for
+         backwards compatibility.  If not, call check_signals() only, because
+         we don't want to run traps during, for instance, reading command
+         substitution output.  Fixes race condition bug reported by Luiz Angelo
+         Daros de Luca <luizluca@gmail.com>
 
-                                  3/24
+                                  9/30
                                   ----
-doc/{bash.1,bashref.texi}
-       - slightly modify BASH_SUBSHELL description based on complaint from
-         Sam Liddicott <sam@liddicott.com>
+subst.c
+       - command_substitute: reset parse_and_execute_level to 0 in the child
+         process, since it's independent of the other parse_and_execute
+         calls.  Adds command substitution inside other parse_and_execute
+         calls optimizations to suppress forks, as suggested by
+         Martijn Dekker <martijn@inlv.org>
 
-                                  3/25
+                                  10/3
                                   ----
-trap.c
-       - change free_trap_strings to not call free_trap_string for signals
-         that are being ignored, like reset_or_restore_signal_handlers.
-         Fixes bug reported by Satoshi Takahashi <blue3waters@gmail.com>
+configure.ac
+       - SHOBJ_STATUS: make sure it defaults to unsupported and is substituted
+         if the shobj-conf script isn't run.  Fixes `make install' bug with
+         a minimal config reported by Andrew Tomazos <andrewtomazos@gmail.com>
 
-                                  3/26
+                                  10/5
                                   ----
-lib/readline/rltypedefs.h
-       - remove old Function/VFunction/CPFunction/CPPFunction typedefs as
-         suggested by Tom Tromey <tromey@redhat.com>
-
-lib/readline/rlstdc.h
-       - move defines for USE_VARARGS/PREFER_STDARG/PREFER_VARARGS from
-         config.h.in to here because declaration of rl_message in
-         readline.h uses the defines.  This makes it hard for another packages
-         to use after the header files are installed, since config.h is not
-         one of the installed files.  Suggested by Tom Tromey
-         <tromey@redhat.com>
+support/shobj-conf
+       - darwin: set compatibility_version for a shared build of the readline
+         library (the standalone readline distribution shares this file) to
+         $(SHLIB_MAJOR)$(SHLIB_MINOR).  Recommendation from Max Horn
+         <max@quendi.de>
 
-                                  3/27
+                                  10/6
                                   ----
-print_cmd.c
-       - change indirection_string from a static buffer to a dynamic one
-         managed by indirection_level_string(), so we don't end up truncating
-         PS4.  Suggested by Dennis Williamson <dennistwilliamson@gmail.com>
-
-lib/readline/shell.c
-       - change sh_set_lines_and_columns to use static buffers instead of
-         allocating the buffers to pass to setenv/putenv
-
-lib/readline/terminal.c
-       - change _rl_get_screen_size to not call sh_set_lines_and_columns if
-         ignore_env == 0
-       - _rl_sigwinch_resize_terminal: new function to just retrieve terminal
-         size, ignoring environment
+array.h
+       - array_first_index: new convenience define
 
-lib/readline/rlprivate.h
-       - new external declaration for _rl_sigwinch_resize_terminal() (currently
-         unused)
-
-lib/readline/signals.c
-       - rl_sigwinch_handler: set _rl_caught_signal to SIGWINCH
-       - rl_sigwinch_handler: don't immediately call rl_resize_terminal; just
-         leave _rl_caught_signal set for RL_CHECK_SIGNALS to handle
-       - _rl_signal_handler: call rl_resize_terminal if sig == SIGWINCH.
-         Should fix hang when sending multiple repeated SIGWINCH reported by
-         Henning Bekel <h.bekel@googlemail.com>
+array.c
+       - ADD_AFTER: new define, complement of ADD_BEFORE
+       - UNSET_LASTREF: now takes an array as an argument, prepping for move
+         of lastref pointer into the array struct
+       - array_insert: check whether we are adding at the beginning of the
+         array and take a fast path if so
+       - array_insert: use same strategy as array_reference to find the place
+         to insert, starting from the last-referenced element and moving
+         forward or back from there; use ADD_AFTER if moving backward
+       - array_insert: if replacing an existing element, just replace the
+         value with new->value instead of the entire element
+       - array_reference: short-circuit quickly if looking for an element
+         before the first assigned index
+       - array_reference: if we don't find the element, leave lastref pointing
+         to the closest element under the assumption we will be assigning or
+         looking for something close
+       - array_reference: take advantage of ordered indexes to short-circuit
+         when looking for element that is not set
 
-                                  3/29
+                                  10/7
                                   ----
-lib/sh/snprintf.c
-       - include math.h for any defines for isinf/isnan
-       - use code from gnulib documentation to implement isinf/isnan if they
-         are not defined
+array.c
+       - array_remove: short-circuit if asked to remove index after max
+         index or before first index
 
-configure.in
-       - don't check for isinf or isnan; c99 says they're macros anyway
+                                  10/10
+                                  -----
+lib/malloc/malloc.c
+       - internal_realloc: if we are requesting reallocation to the same size
+         as the block's current size, short-circuit and return `mem' right
+         after doing bounds check
+       - internal_realloc: if we are reducing the size of an allocation, and
+         the new size fits in the next lower bin, just keep the same block
+         and adjust the size, so we can avoid some copies
 
-config.h.in
-       - remove defines for ISINF_IN_LIBC and ISNAN_IN_LIBC, no longer used
-         by snprintf.c
+parse.y
+       - set_line_mbstate: keep track of the allocated size of
+         shell_input_line_property, only request reallocation if the size
+         increases, but don't let it get too big
 
-                                   4/2
-                                   ---
-braces.c
-       - brace_gobbler: fix to understand double-quoted command substitution,
-         since the shell understands unquoted comsubs.  Fixes bug reported
-         by Michael Whitten <mfwitten@gmail.com>
+                                  10/11
+                                  -----
+jobs.c
+       - wait_for_background_pids: make sure we wait for pid in
+         last_procsub_child since it's not found in any job -- still needs
+         more work to wait for multiple process substitutions
 
-lib/readline/display.c
-       - include <pc.h> on MDOS
-       - get and set screen size using DJGPP-specific calls on MSDOS
-       - move cursor up clear screen using DJGPP-specific calls
-       - don't call tputs on DJGPP; there is no good terminfo support
+subst.c
+       - process_substitute: if make_child fails, make sure we call
+         restore_pipeline to undo the previous save_pipeline()
 
-lib/readline/terminal.c
-       - include <pc.h> on MDOS
-       - get and set screen size using DJGPP-specific calls on MSDOS
-       - use DJGPP-specific initialization on MSDOS, zeroing all the
-         _rl_term_* variables
-       - don't call tputs on DJGPP; there is no good terminfo support
-         DJGPP support from Eli Zaretskii  <eliz@gnu.org>
+                                  10/15
+                                  -----
+subst.c
+       - process_substitute,command_substitute: leave subshell_level (reflected
+         as $BASH_SUBSHELL) intact for any exit trap instead of decrementing
+         it.  Suggested by Martijn Dekker <martijn@inlv.org>
 
-                                   4/6
-                                   ---
+builtins/evalstring.c
+       - optimize_subshell_command: new function, framework for optimizing
+         out forks for command that have already forked and are executing
+         in a subshell. Not used yet
 
-config-top.h
-       - change DEFAULT_PATH_VALUE to something more useful and modern
+expr.c
+       - readtok: if we have a post-increment or post-decrement, and the
+         previous token is not a string, check whether the previous token is
+         a number that results from a pre-increment or pre-decrement, and
+         make that an error.  Report from Conrad Hoffmann <ch@bitfehler.net>
 
-                                   4/8
-                                   ---
-tests/printf2.sub
-       - make sure LC_ALL and LC_CTYPE are set so LANG assignment takes effect.
-         Reported by Cedric Arbogast <arbogast.cedric@gmail.com>
+                                  10/16
+                                  -----
+aclocal.m4
+       - BASH_JOB_CONTROL_MISSING: convert from AC_TRY_RUN to AC_TRY_COMPILE
+         with existing set of preprocessor defines, so it can work when
+         cross-compiling.  Suggested by Felix Janda <felix.janda@posteo.de>
 
-                                  4/11
-                                  ----
-include/chartypes.h
-       - fix a couple of dicey defines (though ones that don't cause any
-         compiler warnings) in IN_CTYPE_DOMAIN
+                                  10/19
+                                  -----
+variables.c
+       - get_bashpid: BASHPID is no longer readonly; assignments to it are
+         just ignored.
 
-doc/{bashref.texi,bash.1}
-       - add note referring to duplicating file descriptors in sections
-         describing redirecting stdout and stderr and appending to stdout
-         and stderr.  Suggested by Matthew Dinger <mdinger.bugzilla@gmail.com>
+doc/{bash.1,bashref.texi}
+       - BASHPID: note that assignments are ignored and unsetting BASHPID
+         causes it to lose its special properties
 
-pcomplete.c
-       - it_init_helptopics: new function to support completing on help topics,
-         not just builtins
-       - it_helptopics: new programmable completion list of help topics
-       - build list of helptopic completions in gen_action_completions on
-         demand
+                                  10/28
+                                  -----
+builtins/pushd.def
+       - popd_builtin: make sure to check the normalized stack offset
+         (i.e., negatives counting back from the end of the stack) is within
+         bounds before trying to free that stack entry.  Report from
+         Fernando Muñoz <fernando@null-life.com>
 
-pcomplete.h
-       - new extern declaration for it_helptopics
+lib/readline/histfile.c
+       - chown: protect calls with HAVE_CHOWN.  Fixes for MinGW{64,32} from
+         J. Peter Mugaas <jpmugaas@suddenlink.net>
 
-builtins/complete.def
-       - the `helptopic' action now maps to CA_HELPTOPIC intead of CA_BUILTIN,
-         since there are more help topics than just builtins.  Suggested by
-         Clark Wang <dearvoid@gmail.com>
+lib/readline/colors.c
+       - S_ISDIR: add define if missing
+       - S_ISUID, S_ISGID, S_ISLNK, S_ISSOCK: don't use unless defined.
+         Fixes for MinGW{64,32} from J. Peter Mugaas <jpmugaas@suddenlink.net>
 
-                                  4/12
-                                  ----
-print_cmd.c
-       - fix print_arith_for_command to add a call to PRINT_DEFERRED_HEREDOCS
-         before ending the body of the command, so heredocs get attached to
-         the right command instead of to the loop.  From gentoo bug 363371
-         http://bugs.gentoo.org/show_bug.cgi?id=363371
+bashhist.c
+       - current_command_line_comment: set to the most recent line in a
+         possibly multi-line command that contains a shell comment; set in
+         maybe_add_history and bash_add_history to either the current
+         command number or -2
+       - maybe_add_history: set current_command_line_comment for first line
+         of command
+       - bash_add_history: chars_to_add set to "\n" if the current command line
+         is one greater than the previous line containing a comment
+         (current_command_line_comment).  Fixes complaint from back in
+         January, 2016 from Dave Rutherford <dave@evilpettingzoo.com>
 
-execute_cmd.c
-       - change coproc_pidchk to unset the appropriate shell variables when
-         the (currently single) known coproc pid terminates
-       - cleanup and new functions to fully support multiple coprocesses when
-         and if I decide to go there
+array.h
+       - lastref: move last-referenced pointer into each array struct, so all
+         arrays can have reference locality
 
-                                  4/13
-                                  ----
-print_cmd.c
-       - fix print_group_command to add a call to PRINT_DEFERRED_HEREDOCS
-         after call to make_command_string_internal before printing closing
-         `}'
-       - fix make_command_string_internal to add a call to
-         PRINT_DEFERRED_HEREDOCS after recursive call to
-         make_command_string_internal in case cm_subshell before printing
-         closing `)'
+array.c
+       - array_create: set lastref element to 0
+       - array_copy: if copying the lastref in array a, set the new lastref
+         in the copy to the same element
+       - IS_LASTREF, LASTREF_START, LASTREF, INVALIDATE_LASTREF, SET_LASTREF,
+         UNSET_LASTREF: change to use new array `lastref' member
 
-                                  4/14
-                                  ----
-print_cmd.c
-       - change overlapping strcpy in named_function_string to memmove
+pathexp.c
+       - quote_string_for_globbing: if quoting for a regexp, make sure to
+         skip and copy a leading `^' in a bracket expression, and skip and
+         copy a subsequent `]' (after an optional `^'), so that leading
+         bracket doesn't close the bracket expression.  Report from
+         Stephane Chazelas <stephane.chazelas@gmail.com>
 
-sig.h
-       - UNBLOCK_SIGNAL: convenience define, same as UNBLOCK_CHILD, just
-         restores an old signal mask
+                                  10/29
+                                  -----
+subst.c
+       - extract_delimited_string: add calls to CHECK_STRING_OVERRUN for
+         $( inside $((, nested OPENERs, nested ALT_OPENERs, and backquotes
+       - skip_to_delim: add calls to CHECK_STRING_OVERRUN for $(, ${,
+         process substitution
+       - extract_dollar_brace_string: add calls to CHECK_STRING_OVERRUN for
+         $(
+       - extract_dollar_brace_string: use skipsubscript to skip over the
+         array subscript in ${var[sub]} (non-quoted case uses string_extract,
+         which already uses skipsubscript).  Tagged for bash-5.0
 
-trap.c
-       - set_signal: instead of setting the signal handler to SIG_IGN while
-         installing the new trap handler, block the signal and unblock it
-         after the new handler is installed.  Fixes bug reported by Roman
-         Rakus <rrakus@redhat.com>
+                                  10/30
+                                  -----
+variables.c
+       - EPOCHSECONDS: new dynamic variable, time in seconds since Unix
+         epoch; assignments are ignored.  Can be used on systems where
+         strftime() doesn't support '%s'
+       - EPOCHREALTIME: new dynamic variable, time in seconds since Unix
+         epoch with microsecond granularity
 
-                                  4/15
-                                  ----
 doc/{bash.1,bashref.texi}
-       - make it clear that enabling monitor mode means that all jobs run in
-         separate process groups
+       - EPOCHSECONDS documentation
+       - EPOCHREALTIME documentation
 
-                                  4/18
-                                  ----
-builtins/fc.def
-       - update fix of 4/15/2010 to not take saved_command_line_count into
-         account when stepping down the history list to make sure that
-         last_hist indexes something that is valid.  Fixes bug reported by
-         <piuma@piumalab.org>
+execute_cmd.c
+       - decpoint: moved to locale.c, renamed locale_decpoint; changed callers
 
-                                  4/19
-                                  ----
-builtins/fc.def
-       - fc_gethnum: make sure the calculation to decide the last history
-         entry is exactly the same as fc_builtin.  Fixes bug uncovered by
-         fix of 4/18 to stop seg fault
+{bashintl,externs}.h
+       - locale_decpoint: extern declaration or #define if support for
+         localeconv() not there
 
-                                  4/22
-                                  ----
-lib/readline/terminal.c
-       - change _rl_enable_meta_key to set a flag indicating that it sent the
-         enable-meta sequence
-       - _rl_disable_meta_key: new function to turn off meta mode after we
-         turned it on with _rl_enable_meta_key
+                                  10/31
+                                  -----
+lib/malloc/malloc.c
+       - posix_memalign: add new posix-mandated interface
 
-lib/readline/rlprivate.h
-       - extern declaration for _rl_disable_meta_key
+examples/loadables/rm.c
+       - rm: minimal loadable builtin, removes files and directories, only
+         handles -r and -f options.  Original from Tim Ruehsen
+         <tim.ruehsen@gmx.de>, heavily rewritten for inclusion as loadable
 
-configure.in
-       - if not cross-compiling, set CFLAGS_FOR_BUILD from any CFLAGS inherited
-         from the environment.  Fixes HP/UX build problem reported by
-         "Daniel Richard G." <skunk@iSKUNK.ORG>
+examples/loadables/Makefile.in
+       - rm: add rules to build rm as one of the `other' targets
 
-                                  4/26
-                                  ----
-config-top.h
-       - define MULTIPLE_COPROCS to 0 so the code is still disabled but easy
-         to enable via configure option or editing this file
+examples/loadables/stat.c
+       - stat: new loadable builtin that takes a filename and loads the info
+         returned by stat(2) into an associative array specified by the -A
+         argument (default STAT)
 
-                                  4/29
+                                  11/1
                                   ----
-lib/sh/eaccess.c
-       - freebsd provides faccessat, with the same misfeature as their eaccess
-         and access implementations (X_OK returns true for uid==0 regardless
-         of the actual file permissions), so reorganize code to check the
-         file permissions as with eaccess.  Report and fix from Johan Hattne
-         <johan.hattne@utsouthwestern.edu>
+variables.c
+       - BASH_ARGV0: new dynamic variable, returns $0 on reference and sets
+         $0 on assignment.  From a suggestion from  Rocky Bernstein <rocky@gnu.org>
+         a few years ago
 
-                                   5/2
-                                   ---
 doc/{bash.1,bashref.texi}
-       - add forward reference to `Pattern Matching' from `Pathname
-         Expansion', suggested by Greg Wooledge <wooledg@eeg.ccf.org>
-
-                                   5/5
-                                   ---
-pcomplib.c
-       - the bash_completion project now distributes over 200 completions
-         for various programs, with no end in sight, so increase the value
-         of COMPLETE_HASH_BUCKETS from 32 to 128
-
-pathexp.c
-       - quote_string_for_globbing: make sure CTLESC quoting CTLESC is
-         translated into \<CTLESC> even if the flags include QGLOB_REGEXP.
-         We don't want to process the second CTLESC as a quote character.
-         Fixes bug reported by Shawn Bohrer <sbohrer@rgmadvisors.com>
+       - BASH_ARGV0: document
 
-                                   5/6
-                                   ---
-builtins/printf.def
-       - change PRETURN to not call fflush if ferror(stdout) is true
-       - if a call to one of the stdio functions or printstr leaves
-         ferror(stdout) true, and PRETURN is going to be called, let PRETURN
-         print the error message rather than doubling up the messages.  Fixes
-         problem reported by Roman Rakus <rrakus@redhat.com>
+                                  11/2
+                                  ----
+lib/glob/sm_loop.c
+       - parse_collsym: make sure to not return an out-of-bounds read if a
+         collating symbol is unterminated.  Fixes OOB read reported by
+         Jerzy Kramarz <op7ica@gmail.com>
+       - brackmatch: after incrementing p, before checking whether it's a
+         character range, check whether *p was NULL before the increment
+         and short-circuit the bracket expression if it is
 
-                                   5/9
-                                   ---
-doc/{bash.1,bashref.texi}
-       - add note to the effect that lists inside compound command can be
-         terminated by newlines as well as semicolons.  Suggested by
-         Roman Byshko <rbyshko@gmail.com>
+jobs.c
+       - discard_last_procsub_child: new function, safely discards
+         last_procsub_child and sets it to NULL
 
-                                  5/10
-                                  ----
 subst.c
-       - remove_quoted_nulls: fix problem that caused it to skip over the
-         character after a CTLNUL, which had the effect of skipping every
-         other of a series of CTLNULs.  Fixes bug reported by
-         Marten Wikstrom <marten.wikstrom@keystream.se>
+       - process_substitute: call discard_last_procsub_child instead of
+         calling discard_pipeline directly.  Fixes bug reported by
+         Christian Weisgerber <naddy@mips.inka.de>
 
-                                  5/11
+                                  11/3
                                   ----
-subst.c
-       - extract_process_subst: add SX_COMMAND flag to call to
-         extract_delimited_string, since we're expanding the same sort of
-         command as command substitution.  Fixes bug reported in Ubuntu
-         bug 779848
+shell.h
+       - EX_DISKFALLBACK: new special return status available to builtins;
+         means to attempt to execute a disk command with the same name as
+         the builtin
 
-                                  5/12
-                                  ----
-configure.in
-       - set the prefer_shared and prefer_static variables appropriately
-         depending on the value of $opt_static_link
+examples/loadables/rm.c
+       - if we see the -i option, return EX_DISKFALLBACK
 
-aclocal.m4
-       - AC_LIB_LINKFLAGS_BODY: change to not prefer shared versions of the
-         libraries it's searching for if the prefer_shared variable is "no".
-         Fixes problem reported by Cedric Arbogast <arbogast.cedric@gmail.com>
+execute_cmd.c
+       - execute_simple_command: if executing a builtin returns EX_DISKFALLBACK,
+         try running execute_disk_command instead 
 
-                                  5/13
-                                  ----
-lib/readline/readline.c
-       - _rl_internal_teardown: add call to _rl_disable_meta_key to make the
-         meta key active only for the duration of the call to readline()
-       - _rl_internal_setup: move call to _rl_enable_meta_key here from
-         readline_initialize_everything so the meta key is active only for
-         the duration of the call to readline().  Suggestion from Miroslav
-         Lichvar <mlichvar@redhat.com>
+bashline.c
+       - shell_expand_line: use expand_word to expand the readline line
+         buffer, which allows us to pass flags with the word. If a numeric
+         argument is supplied, do not perform quote removal (pass
+         Q_HERE_DOCUMENT since here-doc quoting does the right thing) and
+         do not perform command or process subsitution.  From a suggestion
+         by Dabrien 'Dabe' Murphy <dabe@dabe.com> based on an old bug-bash
+         discussion
 
-builtins/help.def
-       - help_builtin: change strncmp to strcmp so that `help read' no longer
-         matches `readonly'.  Suggested by Clark Wang <dearvoid@gmail.com>
-
-config.h.in
-       - add define for GLIBC21, checked using jm_GLIBC21 as part of the tests
-         for libintl
-
-lib/malloc/malloc.c
-       - internal_free: don't use the cached value of memtop when deciding
-         whether or not to adjust the break and give memory back to the kernel
-         when using the GNU C library, since glibc uses sbrk for its own
-         internal purposes.  From Debian bug 614815, reported by Samuel
-         Thibault <samuel.thibault@gnu.org>
-
-aclocal.m4
-       - BASH_STRUCT_WEXITSTATUS_OFFSET: change AC_RUN_IFELSE to AC_TRY_RUN
-         to avoid warning about not using AC_LANG_SOURCE
+subst.c
+       - expand_word_internal: note that we have added a quoted IFS char to
+         istring by setting sentinel has_quoted_ifs.  Usually we only add
+         one if we are not going to be performing word splitting, but we
+         will not perform word splitting if there's no expansion, so we need
+         to take care of that case
+       - expand_word_internal: when performing final word split, if there are
+         no expansions but has_quoted_ifs is non-zero, call remove_quoted_ifs()
+         to remove any quoted ifs characters we added while processing
+       - remove_quoted_ifs: new function, removes CTLESC chars preceding
+         (single-byte) chars in IFS. Used when we are not performing word
+         splitting.  Fixes bug reported by Martijn Dekker <martijn@inlv.org>
 
-                                  5/14
+                                  11/4
                                   ----
-bashline.[ch]
-       - two new functions, bashline_set_event_hook and bashline_reset_event_hook,
-         to set rl_event_hook to bash_event_hook and back to NULL, respectively
-       - don't set rl_event_hook unconditionally
-
-sig.c
-       - termsig_sighandler: if the shell is currently interactive and
-         readline is active, call bashline_set_event_hook to cause
-         termsig_handler to be called via bash_event_hook when the shell
-         returns from the signal handler
+lib/readline/macro.c
+       - _rl_peek_macro_key: return the next character from the current
+         keyboard macro; the next character from the `next' keyboard macro,
+         if there is one, if at the end of the current macro; or 0 to
+         indicate that we are at the end of a keyboard macro sequence
 
-                                  5/15
-                                  ----
-lib/readline/display.c
-       - _rl_col_width: Mac OS X has a bug in wcwidth: it does not return 0
-         for UTF-8 combining characters.  Added workaround dependent on
-         MACOSX.  Fixes problem pointed out by Thomas De Contes
-         <d.l.tDecontes@free.fr>
+lib/readline/rlprivate.h
+       - _rl_peek_macro_key: extern declaration
 
-                                  5/16
-                                  ----
-lib/readline/rlmbutil.h
-       - WCWIDTH: wrapper for wcwidth that returns 0 for Unicode combining
-         characters on systems where wcwidth is broken (e.g., Mac OS X).
+lib/readline/readline.c
+       - _rl_dispatch_subseq: add test for ESC at the end of a keyboard macro,
+         which should cause the keyboard timeout for ESC to kick in.  The
+         previous test didn't run the timeout code if executing from a macro,
+         even if we had read the last character of the macro.  Fixes bug
+         reported by Clark Wang <clarkw@vmware.com>
 
-lib/readline/{complete,display,mbutil}.c
-       - use WCWIDTH instead of wcwidth
+lib/glob/sm_loop.c
+       - GMATCH: allow trailing backslash in pattern to explicitly match a
+         backslash that is the last character in the string.  Bug report from
+         Stephane Chazelas <stephane.chazelas@gmail.com>
 
-                                  5/17
+                                  11/5
                                   ----
-lib/readline/display.c
-       - update_line: after computing ofd and nfd, see whether the next
-         character in ofd is a zero-width combining character.  If it is,
-         back ofd and nfd up one, so the base characters no longer compare
-         as equivalent.  Fixes problem reported by Keith Winstein
-         <keithw@mit.edu>
+builtins/common.c
+       - display_signal_list: if displaying a signal name corresponding to an
+         exit status > 128, don't display the SIG prefix at all.  Old code
+         made displaying the SIG prefix dependent on JOB_CONTROL define.
+         Report and fix from Martijn Dekker <martijn@inlv.org>
 
-lib/readline/nls.c
-       - _rl_utf8locale: new flag variable, set to non-zero if the current
-         locale is UTF-8
-       - utf8locale(): new function, returns 1 if the passed lspec (or the
-         current locale) indicates that the locale is UTF-8.  Called from
-         _rl_init_eightbit
+execute_cmd.c
+       - execute_subshell_builtin_or_function: call without_job_control even
+         if JOB_CONTROL is not defined. Similar to fix from 9/23.
+         Report from Martijn Dekker <martijn@inlv.org>
 
-lib/readline/rlprivate.h
-       - extern declaration for _rl_utf8locale
+execute_cmd.c
+       - execute_simple_command: free memory allocated and passed to
+         make_child in the child process if JOB_CONTROL is defined
+       - execute_command_internal: free memory allocated and passed to
+         make_child in the child process created to run a () subshell or a
+         compound command within a pipeline if JOB_CONTROL is defined
+       - execute_coproc: free memory allocated and passed to make_child in
+         the child process if JOB_CONTROL is defined
+       - execute_disk_command: free memory allocated and passed to
+         make_child in the child process if JOB_CONTROL is defined.  This
+         series of fixes is the result of reports from
+         Eduardo A. Bustamante López <dualbus@gmail.com>
 
-locale.c
-       - locale_utf8locale: new flag variable, set to non-zero if the current
-         locale is UTF-8 (currently unused)
-       - locale_isutf8(): new function, returns 1 if the passed lspec (or the
-         current locale) indicates that the locale is UTF-8.  Should be called
-         whenever the locale or LC_CTYPE value is modified
+                                  11/6
+                                  ----
+lib/sh/unicode.c
+       - u32toutf16: fix to prevent outputting broken surrogate pairs for
+         Japanese locales (ja_JP.UTF-8) on cygwin (which uses UTF-16 natively).
+         Report and fix from Koichi MURASE <myoga.murase@gmail.com>
 
-aclocal.m4
-       - BASH_WCWIDTH_BROKEN: new test for whether or not wcwidth returns
-         zero-width characters like unicode combining characters as having
-         display length 1; define WCWIDTH_BROKEN in this case
+builtins/trap.def
+       - trap_builtin: if OP is `-' (revert), set the SIGINT signal handler
+         to sigint_sighandler if the shell is interactive and sourcing a
+         file (interactive_shell && sourcelevel) or running a trap
+         (interactive_shell && running_trap) even if it's not currently
+         interactive.  Report from Martijn Dekker <martijn@inlv.org>
 
-config.h.in
-       - WCWIDTH_BROKEN: new define
+builtins/read.def
+       - check for and read multibyte characters in all cases, not just when
+         we are reading a specific number of characters, as long as
+         mb_cur_max > 1
 
-lib/readline/rlmbutil.h
-       - change WCWIDTH macro to use _rl_utf8locale and the full range of
-         Unicode combining characters (U+0300-U+036F)
+subst.c
+       - expand_word_internal: some improvements to code that converts istring
+         into a WORD_LIST * to avoid multiple allocations and copies of
+         istring, which is already malloc'ed memory -- reduce number of malloc
+         and free calls
 
-                                  5/19
-                                  ----
-lib/readline/rlprivate.h
-       - _rl_search_context: new member, prevc, will hold character read
-         prior to lastc
+test.c
+       - unary_test: make sure if we test -v array[@] or array[*] that we
+         free the return value from array_value
 
-lib/readline/isearch.c
-       - _rl_isearch_dispatch: if the character causes us to index into
-         another keymap, save that character in cxt->prevc
-       - _rl_isearch_dispatch: if we index into another keymap, but don't
-         find a function that's special to i-search, and the character that
-         caused us to index into that keymap would have terminated the
-         search, push back cxt->prevc and cxt->lastc to make it appear as
-         if `prevc' terminated the search, and execute lastc as a command.
-         We have to push prevc back so we index into the same keymap before
-         we read lastc.  Fixes bug report from Davor Cubranic
-         <cubranic@stat.ubc.ca>
-
-                                  5/20
+                                  11/8
                                   ----
 expr.c
-       - expr_bind_variable: pay attention to the return value from
-         bind_variable and check whether or not we should error out due to
-         a readonly or noassign variable.  Fixes bug reported by Eric
-         Blake <eblake@redhat.com>
-
-                                  5/26
-                                  ----
-
-lib/readline/search.c
-       - include histlib.h for ANCHORED_SEARCH defines
-       - rl_history_search_flags: new variable, holds ANCHORED_SEARCH flag for
-         the duration of a history search
-       - rl_history_search_reinit: takes a new flags variable, defines whether
-         or not the search is anchored; assigned to rl_history_search_flags
-       - rl_history_serarch_reinit: if ANCHORED_SEARCH flag passed, add ^ to
-         beginning of search string; otherwise search string is unmodified
-       - rl_history_search_internal: set rl_point appropriately based on
-         whether or not rl_history_search_flags includes ANCHORED_SEARCH
-       - rl_history_substr_search_forward: new function, for non-anchored
-         substring search forward through history for string of characters
-         preceding rl_point
-       - rl_history_substr_search_backward: new function, for non-anchored
-         substring search backward through history for string of characters
-         preceding rl_point.  Original code from Niraj Kulkarni
-         <kulkarniniraj14@gmail.com>
-
-lib/readline/readline.h
-       - extern declarations for rl_history_substr_search_{for,back}ward
-
-lib/readline/funmap.c
-       - history-substring-search-forward: new bindable command, invokes
-         rl_history_substr_search_forward
-       - history-substring-search-backward: new bindable command, invokes
-         rl_history_substr_search_backward
+       - expcond: make sure to set `noeval' before reading tokens depending on
+         the result of the conditional test, since readtok() can evaluate
+         identifiers (and recursively those containing expressions).  Report
+         and fix from Koichi MURASE <myoga.murase@gmail.com>
 
-lib/readline/doc/{rluser.texi,readline.3}
-       - document history-substring-search-forward and
-         history-substring-search-backward
+builtins/evalstring.c
+       - should_suppress_fork: make sure to check for traps on EXIT and
+         ERR, since any_signals_trapped() only checks for `real' signals,
+         not the fake shell ones.  Fixes bug reported by Werner Fink
+         <werner@suse.de>
+       - optimize_subshell_command: ditto
 
-                                  5/27
+                                  11/9
                                   ----
-{nojobs,jobs}.c
-       - add support for DONT_REPORT_SIGTERM so that the shell doesn't print
-         a message when a job exits due to SIGTERM since that's the default
-         signal sent by the kill builtin.  Suggested by Marc Herbert
-         <mark.herbert@gmail.com>
+eval.c
+       - reader_loop: change so that we don't reset the SIGINT handler every
+         time through the command loop in an interactive shell if the signal
+         is trapped (as the comment noted).  Reported by Report from Martijn
+         Dekker <martijn@inlv.org>
 
-config-top.h
-       - DONT_REPORT_SIGTERM: new user-modifiable setting.  Commented out
-         by default
+subst.c
+       - parameter_brace_{patsub,remove_pattern,transform,casemod}: save and
+         restore this_command_name while temporarily setting it for use in
+         error messages.  Fixes use-after-free error reported by
+         Jerzy Kramarz <op7ica@gmail.com>
+       - string_extract_verbatim: make sure when we increment i by 2 due to
+         a CTLESC or CTLESC-CTLNUL that we don't read past the end of the
+         string. This can happen if the string ends with an odd number of
+         CTLESC chars. Fixes oob-read error reported by
+         Jerzy Kramarz <op7ica@gmail.com>
 
-                                  5/28
-                                  ----
-lib/readline/bind.c
-       - _rl_skip_to_delim: skip to a closing double quote or other delimiter,
-         allowing backslash to quote any character, including the delimiter
-       - rl_parse_and_bind: call _rl_skip_to_delim instead of using inline
-         code
-       - rl_parse_and_bind: allow quoted strings as the values of string
-         variables.  Variable values without double quotes have trailing
-         whitespace removed (which still allows embedded whitespace, for
-         better or worse).  Fixes problem with string variables not matching
-         in `set' command if values happen to have trailing spaces or tabs
-         (debian bash bug #602762), but introduces slight incompatibility.
+                                  11/11
+                                  -----
+configure.ac,aclocal.m4
+       - BASH_FUNC_SBRK: make sure sbrk actually works, instead of being just
+         a stub function like on several Linux distributions
 
-                                  5/29
-                                  ----
-doc/{bash.1,bashref.texi}
-       - clarify unset description to specify that without options, a
-         variable, then a shell function if there is no variable by that
-         name, is unset.  Fixes discrepancy reported by Mu Qiao
-         <qiaomuf@gentoo.org>
+lib/malloc/malloc.c
+       - malloc_usable_size: return the maximum number of bytes available for
+         a particular memory allocation (size of block allocated for it)
 
-                                  6/4
-                                  ----
-doc/{bash.1,bashref.texi}
-       - clarify description of LINES and COLUMNS (and checkwinsize shopt
-         option) to make it clear that only interactive shells set a
-         handler for SIGWINCH and update LINES and COLUMNS.  Original
-         report submitted by Jonathan Nieder <jrnieder@gmail.com>
+                                  11/12
+                                  -----
+configure.ac
+       - changes to make --enable-profiling work on Linux (-pg, no static link,
+         no -static in LDFLAGS)
 
-arrayfunc.c
-       - expand_compound_array_assignment: defer expansion of words between
-         parens when performing compound assignmnt to an associative array
-         variable
-       - assign_compound_array_list: perform the same expansions when doing
-         a compound array assignment to an associative array variable as
-         when doing a straight array index assignment.  The idea is that
-               foo=( [ind1]=bar [ind2]=quux)
-         is the same as
-               foo[ind1]=bar ; foo[ind2]=quux
+Makefile.in
+       - changes to make --enable-profiling work on Linux (take
+         ${PROFILE_FLAGS} out of  BASE_CCFLAGS, add to CCFLAGS instead; add
+         BASE_LDFLAGS define that doesn't include -pg or -static; use
+         BASE_LDFLAGS in LDFLAGS; move ${PROFILE_FLAGS} and ${STATIC_LD} to
+         LDFLAGS)
 
-         This fixes problems with double-expansion and quote removal being
-         performed on the array indices
+tests/run-gprof
+       - changes to make profiling test suite with gprof work on Linux (set
+         GMON_OUT_PREFIX to handle multiple profiled processes per test;
+         change default filename to gmon.out from bash.gmon; look for
+         gprof output files in ${TMPDIR} instead of /tmp; handle multiple
+         profiling files starting with $GMON_OUT_PREFIX)
 
-                                  6/13
-                                  ----
-doc/{bash.1,bashref.texi}
-       - Add a little text to make it clear that the locale determines how
-         range expressions in glob patterns are handled.
+locale.c
+       - locale_isutf8: use locale_charset() if it's available and nl_langinfo
+         isn't
+       - locale_isutf8: add code to parse a locale specification and determine
+         whether the encoding is UTF-8 (or utf8) in the absence of
+         nl_langinfo and locale_charset
+       - set_default_locale: make sure to set locale_utf8locale early on
+       - locale_utf8locale: set via call to locale_isutf8 wherever LANG,
+         LC_ALL, or LC_CTYPE is set
 
+                                  11/13
+                                  -----
+lib/readline/display.c
+       - rl_redisplay: handle report of potential integer overflow in
+         horizontal display mode from Mateusz Lenik <mlen@mlen.pl>
 
-                                  6/21
-                                  ----
-builtins/read.def
-       - display a message and return error status if -a is used with an
-         existing associative array.  Fixes bug reported by Curtis Doty
-         <curtis@greenkey.net>
+lib/sh/mbschr.c
+       - mbschr: if in a UTF-8 locale (locale_utf8locale) and we are looking
+         for an ASCII character, use (essentially) strchr as a shortcut
 
-                                  6/24
-                                  ----
-{jobs,nojobs}.c
-       - non-interactive shells now react to the setting of checkwinsize
-         and set LINES and COLUMNS after a foreground job exits.  From a
-         suggestion by Leslie Rhorer <lrhorer@satx.rr.com>
+lib/sh/shmbchar.c
+       - utf8_{mbstrlen,mblen,mbsmbchar,mbsnlen}: UTF-8-specific replacement
+         functions (should also be able to use utf8_mblen in subst.c:
+         string_extract_verbatim)
+       - mbsmbchar: if locale_utf8locale is true, call utf8_mbsmbchar
+       - mbsmbchar: in UTF-8 locale, use utf8_mblen instead of mbrlen (not
+         used if earlier shortcut taken)
 
-doc/{bash.1,bashref.texi}
-       - checkwinsize: remove language saying that only interactive shells
-         check the window size after each command
+lib/sh/unicode.c
+       - u32cconv: don't use nl_langinfo early to call u32toutf8()
+       - u32cconv: use locale_utf8locale to set utf8locale
+       - u32cconv: when initializing (u32init == 0), use locale_charset, then
+         nl_langinfo, then stub_charset to determine the charset
+       - u32cconv: even if we don't have iconv, if locale_utf8locale is non-
+         zero, return u32toutf8
 
-lib/readline/histfile.c
-       - history_backupfile: new file, creates a backup history file name
-         given a filename (appending `-')
-       - history_do_write: when overwriting the history file, back it up
-         before writing.  Restore backup file on a write error.  Suggested
-         by chkno@chkno.net
+                                  11/15
+                                  -----
+lib/readline/nls.c
+       - _rl_init_locale: new function, split off code that determines current
+         locale from _rl_init_eightbit, use it to set _rl_utf8locale
 
-bashline.c
-       - find_cmd_name: two new arguments, return the start and end of the
-         actual text string used to find the command name, without taking
-         whitespace into account
-       - attempt_shell_completion: small changes to make sure that completion
-         attempted at the beginning of a non-empty line does not find a
-         programmable completion, even if the command name starts at point
-       - attempt_shell_completion: small change to make sure that completion
-         does not find a progcomp when in whitespace before the command
-         name
-       - attempt_shell_completion: small change to make sure that completion
-         does not find a progcomp when point is at the first character of a
-         command name, even when there is leading whitespace (similar to
-         above).  Fixes problems noted by Ville Skytta <ville.skytta@iki.fi>
+lib/readiline/rlprivate.h
+       - _rl_init_locale: new extern declaration
 
-subst.c
-       - brace_expand_word_list: since the individual strings in the strvec
-         returned by brace_expand are already allocated, don't copy them to
-         newly-allocated memory when building the WORD_LIST, just use them
-         intact
+lib/readline/readline.c
+       - rl_initialize: if not initializing everything the first time, call
+         _rl_init_locale to check current locale and set _rl_utf8locale
 
-locale.c
-       - locale_mb_cur_max: cache value of MB_CUR_MAX when we set or change
-         the locale to avoid a function call every time we need to read it
+lib/readline/text.c
+       - _rl_insert_char: optimize cases where we are inserting a single-byte
+         character in a locale with multibyte characters
+       - _rl_insert_char: check whether character is single byte if we know
+         we are in a UTF-8 locale, optimize single-byte case to avoid calls
+         to mbrtowc and memmove/memcpy
 
-shell.h
-       - new struct to save shell_input_line and associated variables:
-         shell_input_line_state_t
-       - add members of sh_parser_state_t to save and restore token and the
-         size of the token buffer
+lib/readline/mbutil.c
+       - _rl_char_value: if we are in a UTF-8 locale (_rl_utf8locale) and the
+         current character does not have the eighth bit set ((c & 0x80) == 0),
+         return that char without bothering to call mbrtowc
+       - _rl_adjust_point: don't bother calling mbrlen if we are in a UTF-8
+         locale and the current character is not a multibyte character
+       - _rl_find_next_mbchar_internal: if we are in a UTF-8 locale, use that
+         to avoid calls to mbrtowc
 
-parse.y
-       - {save,restore}_input_line_state: new functions to save and restore
-         shell_input_line and associated variables
-       - {save,restore}_parser_state: add code to save and restore the token
-         and token buffer size
-       - xparse_dolparen: call save_ and restore_input_line_state to avoid
-         problems with overwriting shell_input_line when we recursively
-         call the parser to parse a command substitution.  Fixes bug
-         reported by Rui Santos <rsantos@grupopie.com>
+lib/readline/display.c
+       - _rl_col_width: if in a UTF-8 locale, take advantage of that to avoid
+         calls to mbrlen and mbrtowc
+       - rl_redisplay: if in a UTF-8 locale, take advantage of that to avoid
+         calls to mbrtowc
 
-include/shmbutil.h
-       - use locale_mb_cur_max instead of MB_CUR_MAX in ADVANCE_CHAR and
-         similar macros
+                                  11/17
+                                  -----
+lib/readline/histlib.h
+       - PATTERN_SEARCH: new flag for history search interfaces, means to
+         search for a pattern as Posix specifies
 
-lib/glob/smatch.c
-       - rangecmp,rangecmp_wc: change to take an additional argument, which
-         forces the use of strcoll/wscoll when non-zero.  If it's 0, a new
-         variable `glob_asciirange' controls whether or not we use strcoll/
-         wscoll.  If glob_asciirange is non-zero, we use straight
-         C-locale-like ordering. Suggested by  Aharon Robbins
-         <arnold@skeeve.com>
-
-                                  6/30
-                                  ----
-execute_cmd.c
-       - execute_pipeline: make sure the lastpipe code is protected by
-         #ifdef JOB_CONTROL.  Fixes problem reported by Thomas Cort
-         <tcort@minix3.org>
+lib/readline/histsearch.c
+       - history_search_internal: now takes a `flags' argument instead of just
+         an `anchored' argument to accommodate PATTERN_SEARCH
+       - _hs_history_patsearch: new internal interface to use when flags
+         specify PATTERN_SEARCH
 
-                                   7/2
-                                   ---
-lib/readline/complete.c
-       - EXPERIMENTAL: remove setting of _rl_interrupt_immediately around
-         completion functions that touch the file system.  Idea from Jan
-         Kratochvil <jan.ktratochvil@redhat.com> and the GDB development
-         team
+lib/readline/rlprivate.h
+       - SF_PATTERN: new flag for non-incremental search contexts, means to
+         treat search string as a pattern (maps to PATTERN_SEARCH)
 
-lib/readline/signals.c
-       - rl_signal_handler: if we're in callback mode, don't interrupt
-         immediately on a SIGWINCH
+lib/readline/search.c
+       - noninc_dosearch: takes an additional `flags' argument for SF_PATTERN
+       - noninc_search_from_pos: takes an additional `flags' argument for
+         SF_PATTERN
+       - noninc_dosearch: pass flags argument through to noninc_search_from_pos
+       - _rl_nsearch_init: if we are in vi command mode, and `pchar' (key used
+         to invoke the search) is `?' or `/', add SF_PATTERN to the flags
+         to conform to Posix spec for vi-mode editing
+       - _rl_nsearch_dosearch: if cxt->sflags indicates that we should do a
+         pattern search, pass SF_PATTERN to noninc_search_from_pos
+       - rl_noninc_forward_search_again: if in vi command mode and key == `N',
+         make sure flags arg passed to noninc_dosearch includes SF_PATTERN
+       - rl_noninc_reverse_search_again: if in vi command mode and key == `n',
+         make sure flags arg passed to noninc_dosearch includes SF_PATTERN
+       - rl_history_search_internal: pass extra flags arg to noninc_search_from_pos
 
-                                   7/3
-                                   ---
-bashline.c
-       - set_directory_hook: and its siblings are a new set of functions to
-         set, save, and restore the appropriate directory completion hook
-       - change callers to use {set,save,restore}_directory_hook instead of
-         manipulating rl_directory_rewrite_hook directly
-       - dircomplete_expand: new variable, defaults to 0, if non-zero causes
-         directory names to be word-expanded during word and filename
-         completion
-       - change {set,save,restore}_directory_hook to look at dircomplete_expand
-         and change rl_directory_completion_hook or rl_directory_rewrite_hook
-         appropriately
-
-bashline.h
-       - extern declaration for set_directory_hook so shopt code can use it
+                                  11/18
+                                  -----
+lib/readline/search.c
+       - noninc_search_from_pos: takes a new argument, a pointer to int where
+         it stores the offset of the match in the history line (if non-NULL),
+         modified callers
+       - rl_history_search_internal: pass newcol pointer to
+         noninc_search_from_pos to avoid having to recompute the match offset
+         in the matching history entry
 
-                                   7/6
-                                   ---
-builtins/shopt.def
-       - globasciiranges: new settable shopt option, makes glob ranges act
-         as if in the C locale (so b no longer comes between A and B).
-         Suggested by Aharon Robbins <arnold@skeeve.com>
+config.h.in
+       - define HAVE_FNMATCH if we have the fnmatch function (configure was
+         already checking for it)
 
-                                   7/7
-                                   ---
-doc/{bash.1,bashref.texi}
-       - document new `globasciiranges' shopt option
+lib/readline/histsearch.c
+       - _hs_history_patsearch: transform the pattern into one ending in a
+         `*' to avoid having to perform multiple match attempts from each
+         index in the history line
+       - history_search_internal: changes to handle pattern matching if
+         PATTERN_SEARCH is in the flags and HAVE_FNMATCH is defined.  This
+         makes vi-mode history searching treat the user-specified search
+         string as an fnmatch pattern, as Posix requires.  Fixes issue
+         reported by <jwdevel@gmail.com>
 
-                                   7/8
-                                   ---
+                                  11/19
+                                  -----
 builtins/shopt.def
-       - direxpand: new settable option, makes filename completion expand
-         variables in directory names like bash-4.1 did.
-       - shopt_set_complete_direxpand: new function, does the work for the
-         above by calling set_directory_hook
-
-doc/{bash.1,bashref.texi}
-       - document new `direxpand' shopt option
-
-                                  7/15
-                                  ----
-lib/readline/isearch.c
-       - _rl_isearch_dispatch: when adding character to search string, use
-         cxt->lastc (which we use in the switch statement) instead of c,
-         since lastc can be modified earlier in the function
+       - shopt_enable_hostname_completion: only declare this if READLINE
+         defined, since that's the only time it's used.  Reported by
+         isabella parakiss <izaberina@gmail.com>
 
-                                  7/18
-                                  ----
-lib/readline/rlprivate.h
-       - _rl_search_context: add another member to save previous value of
-         (multibyte) lastc: pmb is to mb as prevc is to lastc
-
-lib/readline/isearch.c:
-       - _rl_isearch_dispatch: if a key sequence indexes into a new keymap,
-         but doesn't find any bound function (k[ind].function == 0) or is
-         bound to self-insert (k[ind].function == rl_insert), back up and
-         insert the previous character (the one that caused the index into a
-         new keymap) and arrange things so the current character is the next
-         one read, so both of them end up in the search string.  Fixes bug
-         reported by Clark Wang <dearvoid@gmail.com>
-       - _rl_isearch_dispatch: a couple of efficiency improvements when adding
-         characters to the isearch string
-
-                                  7/24
-                                  ----
-lib/readline/isearch.c
-       - _rl_isearch_dispatch: save and restore cxt->mb and cxt->pmb
-         appropriately when in a multibyte locale
+                                  11/20
+                                  -----
+builtins/common.c
+       - display_signal_list: make `kill -l 0' print `EXIT', modifying change
+         from 9/17
 
-doc/{bash.1,bashref.texi}
-       - correct description of {x}>file (and other redirection operators
-         that allocate a file descriptor) to note the the fd range is
-         greater than or equal to 10.  Fixes problem reported by
-         Christian Ullrich 
+                                  11/21
+                                  -----
+subst.c
+       - expand_word_internal: when the shell encounters a backslash as the
+         last character of the string, don't try to add a '\'0' to the end
+         of the string if the string is quoted, just add a <CTLESC><\> and
+         skip to the end of string processing.  Fixes oob-read error
+         reported by Jerzy Kramarz <op7ica@gmail.com>
 
-lib/readline/signals.c
-       - rl_signal_handler: don't interrupt immediately if in callback mode
-
-lib/readline/callback.c
-       - rl_callback_read_char: install signal handlers only when readline
-         has control in callback mode, so readline's signal handlers aren't
-         called when the application is active (e.g., between the calls to
-         rl_callback_handler_install and rl_callback_read_char).  If the
-         readline signal handlers only set a flag, which the application
-         doesn't know about, the signals will effectively be ignored until
-         the next time the application calls into the readline callback
-         interface.  Fixes problem of calling unsafe functions from signal
-         handlers when in callback mode reported by Jan Kratochvil
-         <jan.kratochvil@redhat.com>
+test.c
+       - two_arguments: check argv[pos][1] before checking argv[pos][2] when
+         looking for a unary argument.  Fixes oob-read error on single `-'
+         in unary operator position reported by Jerzy Kramarz
+         <op7ica@gmail.com>
+       - ANDOR: check s[1] before checking s[2] in case s[1] == end of string.
+         Fixes oob-read error reported by Jerzy Kramarz <op7ica@gmail.com>
 
-execute_cmd.c
-       - fix_assignment_words: when in Posix mode, the `command' builtin
-         doesn't change whether or not the command name it protects is an
-         assignment builtin.  One or more instances of `command'
-         preceding `export', for instance, doesn't make `export' treat its
-         assignment statement arguments differently.  Posix interpretation
-         #351
+subst.c
+       - command_substitute: now takes additional flags argument, changed one
+         caller (param_expand) to pass through PF_ASSIGNRHS flag; other callers
+         pass 0
+       - command_substitute: pass through flags argument to read_comsub
+       - read_comsub: now takes additional new flags argument to indicate
+         whether or not the word is in a context where word splitting will
+         eventually be performed
+       - read_comsub: if we are running in a context where word splitting
+         will not take place (PF_ASSIGNRHS), we read a CTLESC, and CTLESC is
+         in $IFS, add a CTLESC to make sure it gets through a round of
+         dequoting
 
-doc/{bash.1,bashref.texi}
-       - document new Posix-mode behavior of `command' when preceding builtins
-         that take assignment statements as arguments
+                                  11/23
+                                  -----
+parse.y
+       - xparse_dolparen: since reset_parser frees the pushed string list,
+         and this is supposed to be a separate parsing context, we need to
+         save and restore pushed_string_list around the call to parse_string
+         and reset_parser.  Fixes bug reported by Dan Douglas
+         <ormaaj@gmail.com>
 
-builtins/printf.def
-       - printstr: if fieldwidth or precision are < 0 or > INT_MAX when
-         supplied explicitly (since we take care of the `-' separately),
-         clamp at INT_MAX like when using getint().  Fixes issue reported
-         by Ralph Coredroy <ralph@inputplus.co.uk>
+bashhist.h
+       - HISTEXPAND_DEFAULT: default value of history_expansion, moved here
+         from flags.c
 
-                                  7/25
-                                  ----
-lib/readline/chardefs.h
-       - isxdigit: don't define if compiling with c++; declared as a c++
-         template function.  Fixes bug reported by Miroslav Lichvar
-         <mlichvar@redhat.com>
+flags.[ch]
+       - histexp_flag: new variable, this is what set -H/set -o histexpand
+         sets; history_expansion set to value of this variable; defaults to 0
+       - history_expansion: now set to HISTEXPAND_DEFAULT
 
-builtins/printf.def
-       - getint: if garglist == 0, return whatever getintmax returns (0).
-         Fixes bug reported  by Ralph Coredroy <ralph@inputplus.co.uk>
+bashhist.c
+       - bash_history_reinit: if interact == 0, set history_expansion to the
+         value of histexp_flag, to allow -H option to enable history
+         expansion
+       - bash_history_reinit: if interact == 0, make sure
+         history_expansion_inhibited is set opposite of histexp_flag, so
+         enabling history expansion with -H invocation option turns off
+         inhibited expansion. If interactive shell, we turn it off so
+         history_expansion controls whether or not history expansion takes
+         place. In practice, this function is always called with interact == 0,
+         and -c command still doesn't perform history expansion
 
-                                  7/28
-                                  ----
-doc/{bash.1,bashref.texi}
-       - minor changes to the descriptions of the cd and pushd builtins
+shell.c
+       - init_interactive: make sure histexp_flag and history_expansion are
+         identical in an interactive shell; allows both -H/+H option and
+         default compilation options (HISTEXPAND_DEFAULT) to work
 
-lib/sh/zread.c
-       - zsyncfd: change variable holding return value from lseek to
-         off_t.  Bug report and fix from Gregory Margo <gmargo@pacbell.net>
+                                  11/24
+                                  -----
+subst.c
+       - get_word_from_string: take advantage of the fact that SEPARATORS is
+         always a (possibly local) copy of IFS, so build a local charmap of
+         separators and use it instead of the (cached and possibly stale)
+         ifs_cmap map and isifs macro.  Fixes bug with -N stripping leading
+         whitespace reported by Clark Wang <clarkw@vmware.com>
 
-                                   8/1
-                                   ---
-expr.c
-       - don't check for division by 0 when in a context where no evaluation
-         is taking place.  Fixes bug reported by dnade.ext@orange-ftgroup.com
+                                  11/25
+                                  -----
+builtins/read.def
+       - read_builtin: make `i' volatile, since auto variables are technically
+         undefined after a longjmp, and a timeout on SIGALRM causes one.
+         Fix suggested by Dmitry Goncharov <dgoncharov@users.sf.net>
 
-                                   8/6
-                                   ---
-execute_cmd.c
-       - execute_command_internal: the parent branch of the subshell code
-         (where the child calls execute_in_subshell) should not close all
-         open FIFOs with unlink_fifo_list if it's part of a shell function
-         that's still executing.  Fixes bug reported by Maarten Billemont
-         <lhunath@lyndir.com>
+                                  11/27
+                                  -----
+parse.y
+       - shell_getc: if we are reading input from a string, and we get the
+         ending '\0', and we are not expanding an alias, return EOF right
+         away.  It might be an eval'ed string that has a syntax error.
+         Fixes bug reported by Dan Douglas <ormaaj@gmail.com>
 
-                                   8/9
-                                   ---
-builtins/common.c
-       - get_exitstat: return EX_BADUSAGE (2) on a non-numeric argument
+                                  11/28
+                                  -----
+subst.c
+       - expand_word_internal: if we're expanding a quoted string containing
+         a tilde as the first character of a word, only expand the tilde if
+         we're expanding an array subscript (Q_ARRAYSUB), not if we're
+         expanding any arithmetic expression (Q_ARITH).  This fixes a
+         backwards compatibility issue with expressions like ~0 reported by
+         Bize Ma <binaryzebra@gmail.com>
 
-builtins/return.def
-       - return_builtin: just call get_exitstat to get the return status,
-         let it handle proper parsing and handling of arguments.  Fixes
-         issue most recently raised by Linda Walsh <bash@tlinx.org>.
-         Reverses change from 9/11/2008 (see above)
+subst.c
+       - parameter_brace_expand_indir: if the variable is not special and
+         the indirect variable is unset (!variable where variable is unset),
+         report an error.  This is a slight incompatibility with previous
+         versions, which did not differentiate between indirecting an unset
+         variable and an indirect expansion resulting in an unset variable.
+         Fixes omission reported by otenba@protonmail.com
 
-                                  8/16
-                                  ----
-doc/{bash.1,bashref.texi}
-       - clean up `set -e' language to make it clearer that any failure of
-         a compound command will cause the shell to exit, not just subshells
-         and brace commands
+                                  11/30
+                                  -----
+lib/readline/doc/{rluser.texi,readline.3},doc/bash.1
+       - do-uppercase-version: since this doesn't actually exist, replace it
+         with do-lowercase-version, with the caveat that do-lowercase-version
+         results in undefined behavior if bound to a character that's
+         already lowercase.  Suggested by Branden Robinson
+         <g.branden.robinson@gmail.com>
 
-                                  8/17
-                                  ----
-configure.in
-       - make the various XXX_FOR_BUILD variables `precious' to autoconf to
-         avoid stale data
-       - change how CC_FOR_BUILD is initialized when cross-compiling and not,
-         but do not change behavior
-       - initialize CFLAGS_FOR_BUILD to -g when cross-compiling
-       - initialize LIBS_FOR_BUILD to $(LIBS) when not cross-compiling, empty
-         when cross-compiling
-       - create AUTO_CFLAGS variable to hold basic CFLAGS defaults; used when
-         CFLAGS not inherited from environment (like effect of old
-         auto_cflags variable)
-       - substitute LIBS_FOR_BUILD into output Makefiles
-         [changes inspired by bug report from Nathan Phillip Brink
-         <ohnobinki@ohnopublishing.net> -- gentoo bug 378941]
-
-builtins/Makefile.in   
-       - substitute LIBS_FOR_BUILD from configure, not strictly initialized
-         to $(LIBS)
-
-                                  8/27
-                                  ----
-doc/{bash.1,bashref.texi}
-       - minor changes to the here string description to clarify the
-         expansions performed on the word
+lib/readline/doc/rluser.texi
+       - history-substring-search-forward: was misspelled as "substr-search";
+         ditto for search-backward
 
-support/shobj-conf
-       - handle compilation on Lion (Mac OS X 10.7/darwin11) with changes
-         to darwin stanzas.  Fixes readline bug reported by Vincent
-         Sheffer <vince.sheffer@apisphere.com>
+doc/bash.1
+       - history-substring-search-{backward,forward}: add documentation, text
+         straight from readline.3
 
-lib/sh/strtrans.c
-       - ansic_wshouldquote: check a string with multi-byte characters for
-         characters that needs to be backslash-octal escaped for $'...'
-       - ansic_shouldquote: if is_basic fails for one character, let
-         ansic_wshouldquote examine the rest of the string and return what
-         it returns.  From a patch sent by Roman Rakus <rrakus@redhat.com>
+jobs.c
+       - initialize_job_control: if the terminal's process group is valid,
+         but the shell is not the foreground process, check for terminating
+         signals (like SIGHUP, which the kernel would send if the process
+         group were orphaned) during the loop where we try to stop the shell
+         if it's not in the foreground.  Not a perfect solution; the kernel
+         might not send SIGHUP
 
-                                  8/30
+                                  12/1
                                   ----
-lib/sh/strtrans.c
-       - ansic_quote: changes to quote (or not) multibyte characters.  New
-         code converts them to wide characters and uses iswprint to check
-         valid wide chars.  From a patch sent by Roman Rakus
-         <rrakus@redhat.com>
-
-                                   9/7
-                                   ---
-lib/sh/shquote.c
-       - sh_backslash_quote: change to be table-driven so we can use a
-         different table if we want to
-       - sh_backslash_quote: takes a second char table[256] argument;
-
-externs.h
-       - sh_backslash_quote: add second argument to function prototype
+jobs.c
+       - initialize_job_control: only go through the SIGTTIN loop 16 times at
+         most before deciding we're in the background and probably a member of
+         an orphaned process group; set original_pgrp to the terminal's pgrp
+         (so the eventual give_terminal_to doesn't leave the terminal in the
+         wrong pgrp); and bail on job control initialization
 
-bashline.c,braces.c,parse.y,builtins/printf.def
-       - change callers of sh_backslash_quote to add second argument
+tests/run-all
+       - unset SHELLOPTS to avoid its options `polluting' the test
+         environment.  Suggestion from Vladimir Marek
+         <Vladimir.Marek@oracle.com>
 
-bashline.c
-       - filename_bstab: table of characters to pass to sh_backslash_quote;
-         characters with value 1 will be backslash-quoted
-       - set_filename_bstab: turn on characters in filename backslash-quote
-         table according to passed string argument
-       - call set_filename_bstab every time rl_filename_quote_characters is
-         assigned a value
-       - bash_quote_filename: call sh_backslash_quote with filename_bstab
-         as second argument.  This allows other characters in filenames to
-         be quoted without quoting, for instance, a dollar sign in a shell
-         variable reference
-
-                                   9/8
-                                   ---
-bashline.c
-       - complete_fullquote: new variable, controls table passed to
-         sh_backslash_quote.  If non-zero (the default), the standard set
-         of shell metacharacters -- as in bash versions up to and including
-         bash-4.2 -- gets backslash-quoted by the completion code.  If zero,
-         sh_backslash_quote gets the table with the characters in the
-         variable reference removed, which means they are removed from the
-         set of characters to be quoted in filenames
+tests/execscript
+       - use $PWD/exec8.sub to protect against someone who has a cd command
+         in his bashrc.  Report from  Vladimir Marek
+         <Vladimir.Marek@oracle.com> 
 
-                                  9/10
+                                  12/2
                                   ----
-bashline.c
-       - bash_filename_stat_hook: new function, designed to expand variable
-         references in filenames before readline passes them to stat(2)
-         to determine whether or not they are a directory
+shell.c
+       - open_shell_script: call end_job_control before exiting the shell in
+         case we were run as `bash -i script' and there is a problem with
+         executing `script'.  If we don't, the terminal ends up in the wrong
+         process group.  Fix from Clark Wang <clarkw@vmware.com>
 
-                                  9/15
+                                  12/3
                                   ----
-builtins/declare.def
-       - if assign_array_element fails due to a bad (or empty) subscript, mark
-         it as an assignment error and don't attempt any further processing
-         of that declaration.  Fixes segfault bug reported by Diego Augusto
-         Molina <diegoaugustomolina@gmail.com>
-
-                                  9/19
-                                  ----
-expr.c
-       - exppower: replace the simple exponentiation algorithm with an
-         implementation of exponentiation by squaring.  Inspired by report
-         from Nicolas ARGYROU <nargy@yahoo.com>
+parse.y
+       - read_comsub: if we look for a character following a `<' and it's
+         not `<' (indicating that we don't have to read a here-document),
+         make sure we push that character back and go through the loop again
+         so we note the right word start location.  Fixes bug reported by
+         parasite parasite <42parasite@gmail.com>
 
-bashline.c
-       - bash_quote_filename: check for rtext being non-null before
-         dereferencing it
-       - set_saved_history: operate_and_get_next assumes that the previous
-         line was added to the history, even when the history is stifled and
-         at the max number of entries.  If it wasn't, make sure the history
-         number is incremented properly.  Partial fix for bug reported by
-         gregrwm <backuppc-users@whitleymott.net>
-
-doc/{bash.1,bashref.texi},lib/readline/doc/{hsuser,rluser}.texi
-       - minor editorial changes inspired by suggestions from
-         Roger Zauner <rogerx.oss@gmail.com>
+subst.c
+       - parameter_brace_expand_indir: clean up checks for unset variables to
+         minimize incompatibilities with previous versions
 
-                                  9/20
+                                  12/5
                                   ----
-lib/intl/localealias.c
-       - read_alias_file: close resource leak (fp) when returning on error
+lib/readline/history.c
+       - add_history: don't update history_length until all of the updates to
+         the_history are complete, so history_length is always consistent.
+         Report and fix from Hong Cho <hong.cho@citrix.com>
 
-                                  9/22
-                                  ----
-execute_command.c
-       - execute_intern_function: implement Posix interpretation 383 by making
-         it an error to define a function with the same name as a special
-         builtin when in Posix mode.
-         http://austingroupbugs.net/view.php?id=383#c692
+bashline.c
+       - bash_backward_shellword: fix to work better at the end of the line,
+         with multiple trailing whitespace characters.  Inspired by report
+         from Kirill Timofeev <kt97679@gmail.com>
 
-                                  9/25
-                                  ----
-doc/{bash.1,bashref.texi}
-       - formatting and some content changes from Benno Schulenberg
-         <bensberg@justemail.net>
-       - document new posix-mode behavior from interp 383 change of 9/22
+Makefile.in
+       - bashbug: use `^' as the sed delimiter instead of `%'; some compilers
+         use `%' in CFLAGS.  Report from  Vladimir Marek
+         <Vladimir.Marek@oracle.com> 
 
-                                  9/30
+                                  12/6
                                   ----
-execute_cmd.c
-       - shell_execve: add strerror to error message about executable file
-         that shell can't execute as a shell script.  From suggestion by
-         daysleeper <daysleeper@centrum.cz>
+test.c
+       - test_unop: make sure op[1] != 0 before testing op[2]
+       - term: make sure argv[pos][1] != 0 before testing argv[pos][2].  Fixes
+         oob-read reported by Jerzy Kramarz <op7ica@gmail.com>
 
-                                  10/1
+                                  12/7
                                   ----
-bashhist.c
-       - maybe_add_history: act as if literal_history is set when parser_state
-         includes PST_HEREDOC, so we save the bodies of here-documents just
-         as they were entered.  Fixes bug reported by Jonathan Wakely
-         <bugs@kayari.org>
-       - bash_add_history: make sure that the second and subsequent lines of
-         a here document don't have extra newlines or other delimiting
-         chars added, since they have the trailing newline preserved, when
-         `lithist' is set and history_delimiting_chars isn't called
+lib/glob/glob.c
+       - glob_filename: assign the return value of realloc (results, ...) to
+         a temp pointer, so if realloc returns NULL, we make sure we free
+         results.  Report from Kirill Timofeev <kt97679@gmail.com>
 
-execute_cmd.c
-       - execute_command_internal: avoid fd exhaustion caused by using
-         process substitution in loops inside shell functions by using
-         copy_fifo_list and close_new_fifos ().  Fixes debian bash bug
-         642504
+                                  12/12
+                                  -----
+lib/sh/shquote.c
+       - sh_backslash_quote: if FLAGS&2, backslash-quote other single-byte
+         characters that are in the current locale's <blank> character class
 
-lib/readline/complete.c
-       - new variable, rl_filename_stat_hook, used by append_to_match.  If
-         filename completion is desired, and rl_filename_stat_hook points
-         to a function, call that function to expand the filename in an
-         application-specific way before calling stat.
+builtins/printf.def
+       - printf_builtin: when processing the `%q' format, make sure to
+         backslash quote all <blank> characters by making sure that FLAGS
+         passed to sh_backslash_quote includes 2.  Fixes issue for certain
+         iso-8859-1 locales where character 160 (octal 240, hex 0xa0) is a
+         non-breaking space. Report from Stephane Chazelas
+         <stephane.chazelas@gmail.com>
 
-bashline.c
-       - bash_default_completion: if variable completion returns a single
-         match, use bash_filename_stat_hook and file_isdir to determine
-         whether or not the variable name expands to a directory.  If it
-         does, set the filename_append_character to `/'.  This is not
-         perfect, so we will see how it works out.  Adds functionality
-         requested by Peter Toft <pto@linuxbog.dk> and Patrick Pfeifer
-         <patrick@pfeifer.de>
-       - rl_filename_stat_hook: assigned bash_filename_stat_hook, so things
-         like $HOME/Downloads (after completion) have a slash appended.
-         In general, this causes the stat hook to be called whenever
-         filename completion is appended.  Adds functionality requested by
-         Patrick Pfeifer <patrick@pfeifer.de>
+lib/sh/eaccess.c
+       - sh_stat: if DEV_FD_STAT_BROKEN is defined, take /dev/fd/N and turn
+         it into a stat on file descriptor N, as if /dev/fd were not
+         available.  This is the case on some old versions of SunOS.  Report
+         and patch from Dmitry Goncharov <dgoncharov@users.sf.net>
 
-lib/readline/readline.h
-       - new extern declaration for rl_filename_stat_hook
+config.h.in
+       - DEV_FD_STAT_BROKEN: add define
 
-lib/readline/doc/rltech.texi
-       - rl_directory_rewrite_hook: now documented
-       - rl_filename_stat_hook: document
+configure.ac
+       - --enable-dev-fd-stat-broken: new command-line option, defines
+         DEV_FD_STAT_BROKEN if supplied at configure time
 
-pcomplete.c
-       - gen_action_completions: in the CA_DIRECTORY case, turn off
-         rl_filename_completion_desired if it was off before we called
-         rl_filename_completion_function and we didn't get any matches.
-         Having it on causes readline to quote the matches as if they
-         were filenames.  Adds functionality requested by many,
-         including Clark Wang <dearvoid@gmail.com>
-
-assoc.[ch]
-       - assoc_replace: new function, takes the same arguments as
-         assoc_insert, but returns the old data instead of freeing it
-       - assoc_insert: if the object returned by hash_insert doesn't have
-         the same value for its key as the key passed as an argument, we
-         are overwriting an existing value.  In this case, we can free the
-         key.  Fixes bug reported by David Parks <davidparks21@yahoo.com>
+doc/bashref.texi
+       - --enable-dev-fd-stat-broken: document new command-line option for
+         configure
 
-                                  10/5
-                                  ----
-print_cmd.c
-       - indirection_level_string: small change to only re-enable `x'
-         option after calling decode_prompt_string if it was on before.  In
-         normal mode, it will be, but John Reiser <jreiser@bitwagon.com>
-         has a novel use for that code in conjunction with a pre-loaded
-         shared library that traces system call usage in shell scripts
+arrayfunc.c
+       - assoc_expand_once: new variable, declared here just because
 
-                                  10/10
-                                  -----
-Makefile.in
-       - Fix from Mike Frysinger <vapier@gentoo.org> to avoid trying to
-         build y.tab.c and y.tab.h with two separate runs of yacc if
-         parse.y changes.  Problem with parallel makes
-       - Fix from Mike Frysinger <vapier@gentoo.org> to avoid subdirectory
-         builds each trying to make version.h (and all its dependencies)
+arrayfunc.h
+       - assoc_expand_once: extern declaration
+       - AV_NOEXPAND: new flag value for the array_value family of functions:
+         means to not run associative array subscripts through word expansion
 
-lib/sh/Makefile.in
-       - remove some dependencies on version.h where it doesn't make sense
+builtins/set.def
+       - unset_builtin: call unbind_array_element with assoc_expand_once as
+         third arg, controls whether we expand associative array subscripts
+         (if 1, we suppress the usual expansion).  With accompanying shopt,
+         provides backwards compatible option to solve problem with quotes
+         and other characters in associative array subscripts pointed out
+         most recently by Mingye Wang (Arthur2e5) <arthur200126@gmail.com>
 
-variables.c
-       - initialize_shell_variables: while reading the environment, a shell
-         running in posix mode now checks for SHELLOPTS being readonly (it
-         gets set early on in main()) before trying to assign to it.  It
-         saves an error message and the variable gets parsed as it should.
-         Fixes bug reported by Len Giambrone <Len.Giambrone@intersystems.com>
+builtins/shopt.def
+       - assoc_expand_once: new option, controls value of internal variable
+         with the same name. Currently undocumented because I'm not completely
+         sold on the name
 
-                                  10/14
-                                  -----
-doc/{bash.1,bashref.texi}
-       - add to the "duplicating file descriptors" description that >&word
-         doesn't redirect stdout and stderr if word expands to `-'
-       - add to the "appending standard output and standard error"
-         description a note that >&word, where word is a number or `-',
-         causes other redirection operators to apply for sh and Posix
-         compatibility reasons.  Suggested by Greg Wooledge
-         <wooledg@eeg.ccf.org>
+expr.c
+       - evalexp: now takes a second argument, flags. Changed all callers in
+         multiple other files (builtins/let.def,execute_cmd.c,arrayfunc.c,
+         subst.c,test.c,variables.c)
 
-                                  10/15
-                                  -----
-pcomplete.c
-       - change pcomp_filename_completion_function to only run the filename
-         dequoting function in the cases (as best as it can figure) where
-         readline won't do it via rl_filename_completion_function.  Based
-         on reports from <lolilolicon@gmail.com>
+externs.h
+       - EXP_EXPANDED, new flag for second argument to evalexp
 
-                                  10/19
-                                  -----
-bashline.c
-       - attempt_shell_completion: add call to set_directory_hook() to make
-         sure the rewrite functions are correct.  It's cheap and doesn't
-         hurt
-       - command_word_completion_function: if completing a command name that
-         starts with `.' or `..', temporarily suppress the effects of the
-         `direxpand' option and restore the correct value after calling
-         rl_filename_completion_function.  If it's enabled, the directory
-         name will be rewritten and no longer match `./' or `../'.  Fixes
-         problem reported by Michael Kalisz <michael@kalisz.homelinux.net>
-
-                                  10/22
-                                  -----
-builtins/history.def
-       - push_history: make sure remember_on_history is enabled before we
-         try to delete the last history entry -- the `history -s' command
-         might not have been saved.  Fixes bug reported by
-         lester@vmw-les.eng.vmware.com
+builtins/let.def
+       - let_builtin: add EXP_EXPANDED to flags passed to evalexp
 
-lib/readline/complete.c
-       - rl_callback_read_char: add calls to a macro CALLBACK_READ_RETURN
-         instead of straight return; add same call at end of function.
-         Placeholder for future work in deinstalling signal handlers when
-         readline is not active
+execute_cmd.c
+       - execute_arith_command: add EXP_EXPANDED to flags passed to evalexp,
+         since the command string is run through expand_words_no_vars before
+         being evaluated
 
-                                  10/25
-                                  -----
 expr.c
-       - exp2: catch arithmetic overflow when val1 == INTMAX_MIN and val2 == -1
-         for DIV and MOD and avoid SIGFPE.  Bug report and pointer to fix
-         from Jaak Ristioja <jaak.ristioja@cyber.ee>
-       - expassign: same changes for arithmetic overflow for DIV and MOD
-
-                                  10/28
-                                  -----
-subst.c
-       - parameter_brace_expand: allow pattern substitution when there is an
-         expansion of the form ${var/} as a no-op: replacing nothing with
-         nothing
-       - parameter_brace_patsub: don't need to check for PATSUB being NULL;
-         it never is
-
-flags.c
-       - if STRICT_POSIX is defined, initialize history_expansion to 0, since
-         history expansion (and its treatment of ! within double quotes) is
-         not a conforming posix environment.  From austin-group issue 500
+       - set expression-global variable already_expanded if flags arg to
+         evalexp contains EXP_EXPANDED
+       - if assoc_expand_once option set and already_expanded flag set, pass
+         1 in flags to array_variable_part to skip over quotes and expansions
+         in the subscript
+       - if those two variables set, pass AV_NOEXPAND as flag to
+         get_array_value to prevent word expansions on the subscript
 
-lib/readline/histexpand.c
-       - history_expand: when processing a string within double quotes
-         (DQUOTE == 1), make the closing double quote inhibit history
-         expansion, as if the word were outside double quotes.  In effect,
-         we assume that the double quote is followed by a character in
-         history_no_expand_chars.  tcsh and csh seem to do this.  This
-         answers a persistent complaint about history expansion
+arrayfunc.c
+       - if flags passed to unbind_array_element includes 1, pass flag on to
+         skipsubscript so we don't expect matched quotes or process
+         expansions in the subscript
+       - if flags to array_value_internal include AV_NOEXPAND, pass 1 as flag
+         to array_variable_part to pass along to skipsubscript
+       - if flags to array_value_internal include AV_NOEXPAND, don't call
+         expand_assignment_string_to_string; just use the unexpanded subscript
+         to produce the key [THIS IS A WORK IN PROGRESS]
 
-                                  10/29
+                                  12/14
                                   -----
-make_cmd.c
-       - make_arith_for_command: use skip_to_delim to find the next `;'
-         when breaking the string between the double parens into three
-         separate components instead of a simple character loop.  Fixes
-         bug reported by Dan Douglas <ormaaj@gmail.com>
-
-                                  11/2
-                                  ----
-Makefile.in
-       - make libbuiltins.a depend on builtext.h to serialize its creation
-         and avoid conflict between multiple invocations of mkbuiltins.
-         Fix from Mike Frysinger <vapier@gentoo.org>
-
-                                  11/5
-                                  ----
-findcmd.c
-       - user_command_matches: if stat(".", ...) returns -1, set st_dev
-         and st_ino fields in dotinfo to 0 to avoid same_file matches
-       - find_user_command_in_path: check stat(2) return the same way
-
-lib/glob/glob.c
-       - glob_vector: don't call strlen(pat) without checking pat == 0
-       - glob_dir_to_array: make sure to free `result' and all allocated
-         members before returning error due to malloc failure
-       - glob_vector: make sure to free `nextname' and `npat' on errors
-         (mostly when setting lose = 1)
-       - glob_vector: if flags & GX_MATCHDIRS but not GX_ALLDIRS, make
-         sure we free `subdir'
-       - glob_filename: when expanding ** (GX_ALLDIRS), make sure we
-         free temp_results (return value from glob_vector)
-
-lib/glob/xmbsrtowcs.c
-       - xdupmbstowcs: fix call to realloc to use sizeof (char *) instead
-         of sizeof (char **) when assigning idxtmp
-
-execute_cmd.c
-       - print_index_and_element: return 0 right away if L == 0
-       - is_dirname: fix memory leak by freeing `temp'
-       - time_command: don't try to deref NULL `command' when assigning
-         to `posix_time'
-       - shell_execve: null-terminate `sample' after READ_SAMPLE_BUF so it's
-         terminated for functions that expect that
+subst.h
+       - ASS_NOEXPAND: assignment flag that inhibits expansion of associative
+         array subscripts
 
-builtins/read.def
-       - read_builtin: don't call bind_read_variable with a potentially-null
-         string
+variables.c
+       - bind_int_variable: takes new flags arg; flags are taken from the
+         ASS_ set of assignment flags, changed callers (bashline.c, expr.c,
+         pcomplete.c)
+       - bind_int_variable: if flags includes ASS_NOEXPAND, pass 1 as flag to
+         valid_array_reference and array_variable_part to pass along to
+         skipsubscript, so we don't try to skip over quoted strings in the
+         subscript
+       - bind_int_variable: pass flags along to assign_array_element
 
-pcomplete.c
-       - gen_command_matches: don't call dispose_word_desc with a NULL arg
-       - gen_compspec_completions: fix memory leak by freeing `ret' before
-         calling gen_action_completions (tcs, ...).  happens when
-         performing directory completion as default and no completions
-         have been generated
-       - gen_progcomp_completions: make sure to set foundp to 0 whenever
-         returning NULL
-       - it_init_aliases: fix memory leak by freeing alias_list before
-         returning
+variables.h
+       - bind_int_variable: updated extern declaration with new flags arg
 
-bashline.c
-       - command_word_completion_function: don't call restore_tilde with a
-         NULL directory_part argument
-       - bash_directory_expansion: bugfix: don't throw away results of
-         rl_directory_rewrite_hook if it's set and returns non-zero
-       - bind_keyseq_to_unix_command: free `kseq' before returning error
+expr.c
+       - expr_bind_variable: if the assoc_expand_once option is enabled, and
+         the flags to evalexp indicate that we have already run the expression
+         through word expansion, pass ASS_NOEXPAND as flag to bind_int_variable
 
 arrayfunc.c
-       - assign_array_element_internal: make sure `akey' is freed if non-null
-         before returning error
-       - assign_compound_array_list: free `akey' before returning error
-       - array_value_internal: free `akey' before returning error
-       - unbind_array_element: free `akey' before returning error
+       - assign_array_element: if flags includes ASS_NOEXPAND, pass 1 as flag
+         to array_variable_name to pass along to skipsubscript
+       - assign_array_element: if flags includes ASS_NOEXPAND, don't run an
+         associative array subscript through word expansion, just use as-is
 
 subst.c
-       - array_length_reference: free `akey' before returning error in case
-         of expand_assignment_string_to_string error
-       - array_length_reference: free `akey' after call to assoc_reference
-       - skip_to_delim: if skipping process and command substitution, free
-         return value from extract_process_subst
-       - parameter_brace_substring: free `val' (vtype == VT_VARIABLE) before
-         returning if verify_substring_values fails
-       - parameter_brace_expand: remove two duplicate lines that allocate
-         ret in parameter_brace_substring case
-       - parameter_brace_expand: convert `free (name); name = xmalloc (...)'
-         to use `xrealloc (name, ...)'
-       - parameter_brace_expand: free `name' before returning when handling
-         ${!PREFIX*} expansion
-       - split_at_delims: fix memory leak by freeing `d2' before returning
-
-redir.c
-       - redirection_error: free `filename' if the redirection operator is
-         REDIR_VARASSIGN by assigning allocname
-
-eval.c
-       - send_pwd_to_eterm: fix memory leak by freeing value returned by
-         get_working_directory()
-
-builtins/cd.def
-       - change_to_directory: fix memory leak by freeing return value from
-         resetpwd()
-       - cd_builtin: fix memory leak by freeing value returned by dirspell()
-       - cd_builtin: fix memory leak by freeing `directory' if appropriate
-         before overwriting with return value from resetpwd()
-
-builtins/type.def
-       - describe_command: free `full_path' before overwriting it with return
-         value from sh_makepath
+       - param_expand: call evalexp with EXP_EXPANDED flag for arithmetic
+         substitution because the string has already been expanded with
+         expand_arith_string
 
-builtins/complete.def
-       - compgen_builtin: fix memory leak by calling strlist_dispose (sl)
-         before overwriting sl with return value from completions_to_stringlist
+                                  12/15
+                                  -----
+builtins/read.def
+       - read_builtin: use value of assoc_expand_once for valid_array_reference
+         as with other uses
+       - bind_read_variable: if assoc_expand_once is set, pass ASS_NOEXPAND
+         to assign_array_element
 
-builtins/hash.def
-       - list_hashed_filename_targets: fix memory leak by freeing `target'
+general.c
+       - assignment: instead of checking whether flags == 0 to allow a `[',
+         explicitly check for (flags&1) to disallow it.  This leaves the door
+         open for additional flag values
 
-make_cmd.c
-       - make_arith_for_command: free `init', `test', and `step' before
-         returning error on parse error
+builtins/printf.def
+       - printf_builtin: use value of assoc_expand_once for
+         valid_array_reference as with other uses
+       - bind_printf_variable: if assoc_expand_once is set, pass ASS_NOEXPAND
+         to assign_array_element
 
-jobs.c
-       - initialize_job_control: don't call move_to_high_fd if shell_tty == -1
+                                  12/16
+                                  -----
+builtins/history.def
+       - change history -d option to handle negative arguments; negative
+         arguments offset from the end of the history list (last_position + 1
+         so history -d -1 deletes the history -d command that just got
+         added).  Original patch from Piotr Grzybowski <narsil.pl@gmail.com>
 
-general.c
-       - check_dev_tty: don't call close with an fd < 0
-       - legal_number: deal with NULL `string' argument, return invalid
+doc/bash.1,lib/readline/doc/hsuser.texi
+       - documented new behavior of negative offsets for `history -d'
 
-lib/sh/fmtulong.c
-       - fmtulong: if the `base' argument is invalid, make sure we index
-         buf by `len-1' at maximum
+                                  12/17
+                                  -----
+lib/readline/history.c
+       - remove_history: use memmove to move the history list around instead
+         of a loop that copies pointers one at a time, similar to add_history
 
-print_cmd.c
-       - print_deferred_heredocs: don't try to dereference a NULL `cstring'
-       - cprintf: make sure to call va_end (args)
+                                  12/19
+                                  -----
+configure.ac
+       - linux: make sure PGRP_PIPE is defined unconditionally for all kernel
+         versions greater than 2.3.*
 
-variables.c
-       - push_dollar_vars: fix call to xrealloc to use sizeof (WORD_LIST *)
-         instead of sizeof (WORD_LIST **)
+lib/readline/history.c
+       - clear_history: when clearing the history, reset history_base to 1
+         (its default)
+       - remove_history_range: new function, removes a set of history entries
+         and returns them all for deallocation
 
-lib/sh/zmapfd.c
-       - zmapfd: if read returns error, free result and return -1 immediately
-         instead of trying to reallocate it
+lib/readline/history.h
+       - remove_history_range: extern declaration
 
-                                  11/6
-                                  ----
+                                  12/20
+                                  -----
 execute_cmd.c
-       - cpl_reap: rewrote to avoid using pointer after freeing it; now builds
-         new coproc list on the fly while traversing the old one and sets the
-         right values for coproc_list when done
+       - eval_arith_for_expr: pass EXP_EXPANDED to evalexp, since we run the
+         expression through expand_words_no_vars
 
-                                  11/12
+                                  12/21
                                   -----
-builtins/set.def
-       - if neither -f nor -v supplied, don't allow a readonly function to
-         be implicitly unset.  Fixes bug reported by Jens Schmidt
-         <jens.schmidt35@arcor.de>
-
-lib/readline/callback.c
-       - change CALLBACK_READ_RETURN to clear signal handlers before returning
-         from rl_callback_read_char so readline's signal handlers aren't
-         installed when readline doesn't have control.  Idea from Jan
-         Kratochvil <jan.ktratochvil@redhat.com> and the GDB development
-         team
+input.c
+       - b_fill_buffer: when read returns EOF or error, and we reset the
+         buffer and pointers, reset the input pointer to 0.  Fixes issue
+         reported by Stephane Chazelas <stephane.chazelas@gmail.com>
 
-pcomplete.h
-       - COPT_NOQUOTE: new complete/compgen option value
+                                  12/22
+                                  -----
+arrayfunc.[ch],subst.c
+       - array_expand_index: added new FLAGS argument, reserved for future use,
+         changed callers
 
-builtins/complete.def
-       - noquote: new complete/compgen option; will be used to disable
-         filename completion quoting
 
-pcomplete.c
-       - pcomp_set_readline_variables: pay attention to COPT_NOQUOTE; turns
-         of rl_filename_quoting_desired if set; turns it on if unset (value
-         is inverted, since default is on)
+                                  12/24
+                                  -----
+variables.c
+       - can_optimize_assignment,optimized_assignment: see if we can detect
+         whether or not we're trying to append a string to a string variable,
+         and optimize that using realloc/strcpy.  Based on a log-ago
+         suggestion from Aharon Robbins <arnold@skeeve.com>
 
-doc/bash.1,lib/readline/doc/rluser.texi
-       - document new -o noquote option to complete/compgen/compopt
+                                  12/27
+                                  -----
+builtins/help.def
+       - help_builtin: don't pass return value from ngettext() directly to
+         printf
 
-pathexp.c
-       - quote_string_for_globbing: if QGLOB_REGEXP, make sure characters
-         between brackets in an ERE bracket expression are not inappropriately
-         quoted with backslashes.  This is a pretty substantial change,
-         should be stressed when opening bash up for alpha and beta tests.
-         Fixes bug pointed out by Stephane Chazleas
-         <stephane_chazelas@yahoo.fr>
+                                  12/28
+                                  -----
+sig.c
+       - set_signal_handler: set SA_RESTART for SIGWINCH, so window size
+         changes don't interrupt open/read/write.  Suggested by
+         Andriy Prystupa <andriy.prystupa@globallogic.com> back in 10/2016
 
-doc/{bash.1,bashref.texi}
-       - document that regexp matches can be inconsistent when quoting
-         characters in bracket expressions, since usual quoting characters
-         lose their meaning within brackets
-       - note that regular expression matching when the pattern is stored
-         in a shell variable which is quoted for expansion causes string
-         matching
+                                  12/30
+                                  -----
+execute_cmd.c
+       - coproc_pidchk: if MULTIPLE_COPROCS, call cpl_search to find coproc
+         associated with pid, don't remove it from the list with cpl_delete.
+         Just mark as dead and wait for coproc_reap/cpl_reap to take care
+         of disposing it
+       - execute_coproc: NEW FEATURE: run the coproc name through word
+         expansion before creating the coproc; this allows unique coprocs
+         to be created in loops. Originally requested way back in 2012 by
+         Erik Brandsberg <ebrandsberg@juniper.net>
 
-redir.h
-       - RX_SAVEFD: new flag value; notes that a redirection denotes an
-         fd used to save another even if it's not >= SHELL_FD_BASE
+command.h
+       - subshell_com: now has a line number member: line
 
-redir.c
-       - do_redirection_internal: when deciding whether or not to reset the
-         close-on-exec flag on a restored file descriptor, trust the value
-         of redirect->flags & RX_SAVCLEXEC even if the fd is < SHELL_FD_BASE
-         if the RX_SAVEFD flag is set
-       - add_undo_redirect: set the RX_SAVEFD flag if the file descriptor
-         limit is such that the shell can't duplicate to a file descriptor
-         >= 10.  Fixes a limitation that tripped a coreutils test reported
-         by Paul Eggert <eggert@cs.ucla.edu>
+make_cmd.c
+       - make_subshell_command: assign current line number (line number of the
+         ending right paren) to `line' member
 
-                                  11/19
-                                  -----
-doc/{bash.1,bashref.texi},lib/readline/doc/hsuser.texi
-       - make it clear that bash runs HISTFILESIZE=$HISTSIZE after reading
-         the startup files
-       - make it clear that bash runs HISTSIZE=500 after reading the
-         startup files
-       - make it clear that setting HISTSIZE=0 causes commands to not be
-         saved in the history list
-       - make it clear that setting HISTFILESIZE=0 causes the history file
-         to be truncated to zero size
+copy_cmd.c
+       - copy_subshell_command: copy the `line' member
+
+execute_command.c
+       - execute_command_internal: when executing a user subshell (`(command)'),
+         set the line number and line number for the ERR trap from the line
+         number saved in the subshell command struct.  Fix from
+         Eduardo A. Bustamante López <dualbus@gmail.com>
+       - execute_arith_command: set line number for ERR trap from line number
+         saved in the arith command struct.  Fix from
+         Eduardo A. Bustamante López <dualbus@gmail.com>
+       - execute_cond_command: set line number for ERR trap from line number
+         saved in the cond command struct.  Fix from
+         Eduardo A. Bustamante López <dualbus@gmail.com>
 
 variables.c
-       - sv_histsize: change so setting HISTSIZE to a value less than 0
-         causes the history to be `unstifled'
-       - sv_histsize: change so setting HISTFILESIZE to a value less than 0
-         results in no file truncation
-       - make it clear that numeric values less than 0 for HISTFILESIZE or
-         HISTSIZE inhibit the usual functions
+       - bind_variable_internal: move can_optimize_assignment call to the
+         right place
 
-                                  11/23
+                                  12/31
                                   -----
-parse.y
-       - save_input_line_state: add missing `return ls' at the end, since the
-         function is supposed to return its argument.  Pointed out by
-         Andreas Schwab <schwab@linux-m68k.org>
+variables.c
+       - find_variable_nameref: treat a circular variable reference as
+         referring to a variable of that name in the global scope (for now),
+         if one exists.  PROVISIONAL change: inspired by suggestion back in
+         6/2016 by Grisha Levit <grishalevit@gmail.com>
 
-builtins/read.def
-       - skip over NUL bytes in input, as most modern shells seem to.  Bug
-         report by Matthew Story <matt@tablethotels.com>
+                                1/2/2017
+                                --------
+{expr,general,hashcmd}.c
+       - include flags.h for flag values
 
-lib/readline/vi_mode.c
-       - rl_vi_replace: set _rl_vi_last_key_before_insert to invoking key
+make_cmd.c
+       - include shell.h instead of the files it includes
 
-                                  11/25
-                                  -----
-builtins/read.def
-       - read_builtin: if xrealloc returns same pointer as first argument,
-         don't bother with the remove_unwind_protect/add_unwind_protect pair
-       - read_builtin: set a flag (`reading') around calls to zread/zreadc
-         and readline()
-       - sigalrm: change to set flag (`sigalrm_seen') and only longjmp if
-         currently in read(2) (reading != 0)
-       - CHECK_ALRM: new macro, checks sigalrm_seen and longjmps if non-zero,
-         behavior of old SIGALRM catching function
-       - read_builtin: call CHECK_ALRM in appropriate places while reading
-         line of input.  Fixes bug reported by Pierre Gaston
-         <pierre.gaston@gmail.com>
+flags.h
+       - new extern declarations for want_pending_command, read_from_stdin
 
-lib/readline/vi_mode.c
-       - rl_vi_replace: initialize characters before printing characters in
-         vi_replace_keymap to their default values in vi_insertion_keymap,
-         since we're supposed to be in insert mode replacing characters
-       - rl_vi_replace: call rl_vi_start_inserting to set last command to
-         `R' for undo
-       - rl_vi_replace: set _rl_vi_last_key_before_insert to `R' for future
-         use by _rl_vi_done_inserting
-       - vi_save_insert_buffer: new function, broke out code that copies text
-         into vi_insert_buffer from _rl_vi_save_insert
-       - _rl_vi_save_replace: new function, saves text modified by
-         rl_vi_replace (using current point and vi_replace_count to figure
-         it out) to vi_replace_buffer
-       - _rl_vi_save_insert: call vi_save_insert_buffer
-       - _rl_vi_done_inserting: if _rl_vi_last_key_before_insert == 'R', call
-         _rl_vi_save_replace to save text modified in replace mode (uses
-         vi_save_insert_buffer)
-       - _rl_vi_replace_insert: new function, replaces the number of chars
-         in vi_insert_buffer after rl_point with contents ov vi_insert_buffer
-       - rl_vi_redo: call _rl_vi_replace_insert if last command == 'R' and
-         there's something in vi_insert_buffer.  Fixes bug with `.' not
-         redoing the most recent `R' command, reported by Geoff Clare
-         <g.clare@opengroup.org> in readline area on savannah
-
-                                  11/26
-                                  -----
-lib/readline/rlprivate.h
-       - RL_SIG_RECEIVED(): evaluate to non-zero if there is a pending signal
-         to be handled
-       - RL_SIGINT_RECEIVED(): evaluate to non-zero if there is a pending
-         SIGINT to be handled
+subst.h
+       - add extern declaration for expanding_redir, assigning_in_environment
 
-lib/readline/complete.c
-       - remove all mention of _rl_interrupt_immediately
-       - rl_completion_matches: check RL_SIG_RECEIVED after each call to
-         the entry function, call RL_CHECK_SIGNALS if true to handle the
-         signal
-       - rl_completion_matches: if RL_SIG_RECEIVED evaluates to true, free
-         and zero out the match_list this function allocated
-       - rl_completion_matches: if the completion entry function is
-         rl_filename_completion_function, free the contents of match_list,
-         because that function does not keep state and will not free the
-         entries; avoids possible memory leak pointed out by
-         Garrett Cooper <yanegomi@gmail.com>
-       - gen_completion_matches: if RL_SIG_RECEIVED evalutes to true after
-         calling rl_attempted_completion_function, free the returned match
-         list and handle the signal with RL_CHECK_SIGNALS; avoids
-         possible memory leak pointed out by Garrett Cooper
-         <yanegomi@gmail.com>
-       - gen_completion_matches: if RL_SIG_RECEIVED evaluates to true after
-         calling rl_completion_matches, free the returned match list and
-         handle the signal with RL_CHECK_SIGNALS
+trap.h
+       - add extern declaration for running_trap
 
-lib/readline/util.c
-       - rl_settracefp: new utility function to set the tracing FILE *
+execute_cmd.h
+       - added extern declarations for variables declared in execute_cmd.c,
+         changed files that declare lots of extern variables
 
-lib/readline/signals.c
-       - _rl_sigcleanup: pointer to a function that will be called with the
-         signal and a void * argument from _rl_handle_signal
-       - _rl_sigcleanarg: void * that the rest of the code can set to have
-         passed to the signal cleanup function
-       - _rl_handle_signal: if _rl_sigcleanup set, call as
-               (*_rl_sigcleanup) (sig, _rl_sigcleanarg)
+shell.h
+       - added extern declarations for variables declared in shell.c,
+         changed files that declare lots of extern variables 
 
-lib/readline/rlprivate.h
-       - extern declarations for _rl_sigcleanup and _rl_sigcleanarg
+parser.h
+       - added extern declarations for variables declared in parse.y,
+         changed files that declare lots of extern variables 
 
-lib/readline/complete.c
-       - _rl_complete_sigcleanup: signal cleanup function for completion code;
-         calls _rl_free_match_list on _rl_sigcleanarg if signal == SIGINT
-       - rl_complete_internal: before calling display_matches if what_to_do
-         == `?', set _rl_sigcleanup to _rl_complete_sigcleanup so the match
-         list gets freed on SIGINT; avoids possible memory leak pointed out
-         by Garrett Cooper <yanegomi@gmail.com>
-       - rl_complete_internal: in default switch case, call _rl_free_match_list
-         before returning to avoid memory leak
+[lots of changes to reduce the number of extern declarations in C and DEF files]
 
-doc/bashref.texi
-       - start at a set of examples for the =~ regular expression matching
-         operator, touching on keeping the pattern in a shell variable and
-         quoting portions of the pattern to remove their special meaning
+parse.y
+       - xparse_dolparen: need ALIAS or DPAREN_ARITHMETIC to be defined to
+         use STRING_SAVER
 
-                                  12/1
-                                  ----
-lib/glob/gmisc.c
-       - extglob_pattern: new function, returns 1 if pattern passed as an
-         argument looks like an extended globbing pattern
+                                   1/3
+                                   ---
+sig.c
+       - termsig_handler: don't call end_job_control if subshell_environment
+         indicates that we're in a command or process substitution.
+         Provisional fix for bug reported by Russell King <rmk@armlinux.org.uk>
 
-lib/glob/glob.c
-       - skipname: return 0 immediately if extglob_pattern returns non-zero,
-         let the extended globbing code do the right thing with skipping
-         names beginning with a `.'
-       - mbskipname: return 0 immediately if extglob_pattern returns non-zero,
-         let the extended globbing code do the right thing with skipping
-         names beginning with a `.'.  Fixes bug reported by Yongzhi Pan
-         <panyongzhi@gmail.com>
+jobs.c
+       - end_job_control: only attempt to give the terminal back to
+         original_pgrp if job_control != 0; don't test interactive_shell
 
-                                  12/2
-                                  ----
-lib/glob/smatch.c
-       - patscan, patscan_wc: no longer static so other parts of the glob
-         library can use them, renamed to glob_patscan, glob_patscan_wc
+execute_cmd.c
+       - execute_disk_command: call QUIT after search_for_command, since
+         the only time QUIT gets called is when the path is actually
+         searched.  It doesn't happen for an absolute pathname.  Fix for
+         bug reported by Russell King <rmk@armlinux.org.uk>
 
+                                  1/16
+                                  ----
 lib/glob/glob.c
-       - extern declarations for glob_patscan, glob_patscan_wc
-       - wchkname: new function, does skipname on wchar_t pattern and dname,
-         old body of mbskipname after converting to wide chars
-       - extglob_skipname: new function, checks all subpatterns in an extglob
-         pattern to determine whether or not a filename should be skipped.
-         Calls skipname for each subpattern.  Dname is only skipped if all
-         subpatterns indicate it should be.  Better fix for bug reported by
-         Yongzhi Pan <panyongzhi@gmail.com>
-       - wextglob_skipname: wide-char version of extglob_skipname, calls
-         wchkname instead of calling back into mbskipname for each
-         subpattern to avoid problems with char/wchar_t mismatch
-       - skipname: call extglob_skipname if extglob_pattern returns non-zero
-       - mbskipname: call wextglob_skipname if extglob_pattern returns non-zero
-       - mbskipname: short-circuit immediately if no multibyte chars in
-         pattern or filename
+       - extglob_skipname,wextglob_skipname: if we don't find a reason to
+         not skip the name in any subpattern (r returns 0 for any subpattern),
+         return 1 because we should skip the name
+       - extglob_skipname,wextglob_skipname: if we don't find a reason to
+         not skip the name in any subpattern, but the first part of the extglob
+         pattern is a wildcard (`*(pat)'), check the rest of the pattern, if
+         any, to decide whether or not to skip the name. Fixes bug reported
+         by Grisha Levit <grishalevit@gmail.com>
 
-execute_cmd.c
-       - execute_cond_node: added parens to patmatch assignment statement to
-         make intent clearer
+lib/glob/glob_loop.c
+       - CHAR -> GCHAR (unsigned char); change uses of CHAR to GCHAR
 
-                                  12/3
-                                  ----
-configure.in,config.h.in
-       - check for imaxdiv, define HAVE_IMAXDIV if present
+lib/glob/glob.c
+       - wchkname -> wskipname
+       - wskipname: now takes a third `flags' argument, like the other variants
+         of skipname
 
-expr.c
-       - expassign, exp2: use imaxdiv if available.  Doesn't help with checks
-         for overflow from 10/25
+                                  1/17
+                                  ----
+redir.c
+       - here_document_to_fd: set the file descriptor open for writing to the
+         here document to be close-on-exec.  Fixes bug reported by
+         Siteshwar Vashisht <svashisht@redhat.com>
 
-                                  12/6
+                                  1/18
                                   ----
-lib/readline/complete.c
-       - compute_lcd_of_matches: if we're ignoring case in the matches, only
-         use what the user typed as the lcd if it matches the first match
-         (after sorting) up to the length of what was typed (if what the
-         user typed is longer than the shortest of the possible matches, use
-         the shortest common length of the matches instead).  If it doesn't
-         match, use the first of the list of matches, as if case were not
-         being ignored.  Fixes bug reported by Clark Wang
-         <dearvoid@gmail.com>
+{gmisc,gm_loop}.c
+       - match_pattern_char,match_pattern_wchar: moved to gm_loop.c (new file),
+         compile twice for single and wide characters as with the rest of
+         the functions
+       - umatchlen,wmatchlen: ditto
+       - extglob_pattern_p: move to gm_loop.c, generalize for regular and
+         wide-char versions
 
-                                  12/7
+                                  1/19
                                   ----
-builtins/cd.def
-       - cd_builtin: add code to return error in case cd has more than one
-         non-option argument, conditional on CD_COMPLAINS define (which is
-         not defined anywhere)
+lib/readline/complete.c
+       - stat_char: fix small memory leak if stat/lstat returns -1
 
-doc/{bash.1,bashref.texi}
-       - note that additional arguments to cd following the directory name
-         are ignored.  Suggested by Vaclav Hanzl <hanzl@noel.feld.cvut.cz>
+bashline.c
+       - bash_filename_stat_hook,bash_directory_completion_hook: make sure
+         expand_prompt_string is caled wth W_NOPROCSUB flag
+       - directory_exists: don't dequote the filename passed as an argument;
+         this function should never get quoted pathnames
 
-                                  12/10
-                                  -----
-lib/readline/input.c
-       - rl_read_key: don't need to increment key sequence length here; doing
-         it leads to an off-by-one error
+subst.c
+       - expand_word_internal: when calling expand_word_internal recursively
+         after reading a double-quoted string, make sure the W_NOCOMSUB and
+         W_NOPROCSUB flags make it to the recursive invocation.  Fixes bug
+         reported by Jens Heyens <jens.heyens@cispa.saarland>
 
-lib/readline/macro.c
-       - rl_end_kbd_macro: after off-by-one error with rl_key_sequence_length
-         fixed, can decrement current_macro_index by rl_key_sequence_length
-         (length of key sequence that closes keyboard macro)
+                                  1/23
+                                  ----
+lib/readline/signals.c
+       - _rl_orig_sigset: original signal mask, set and restored by
+         rl_set_signals (rl_clear_signals doesn't block signals).  If we
+         are not installing signal handlers, just save signal mask each
+         time rl_set_signals is called
 
-lib/readline/readline.c
-       - _rl_dispatch_subseq: fix extra increment of rl_key_sequence_length
-         when ESC maps to a new keymap and we're converting meta characters
-         to ESC+key
-       - _rl_dispatch_subseq: better increment of rl_key_sequence_length
-         before we dispatch to a function in the ISFUNC case (where the
-         second increment above should have happened)
-       - rl_executing_keyseq: the full key sequence that ended up executing
-         a readline command.  Available to the calling application, maintained
-         by _rl_dispatch_subseq, indexed by rl_key_sequence_length
-       - rl_executing_key: the key that was bound to the currently-executing
-         readline command.  Same as the `key' argument to the function
+lib/readline/input.c
+       - rl_getc: use _rl_orig_sigmask in the call to pselect(), so we block
+         the set of signals originally blocked by the calling application.
+         Fixes bug reported by Frédéric Brière <fbriere@fbriere.net>
 
-lib/readline/readline.h
-       - rl_executing_keyseq: extern declaration
-       - rl_executing_key: extern declaration
-       - rl_key_sequence_length: declaration moved here from rlprivate.h,
-         now part of public interface
+parse.y
+       - yy_readline_get: try to unset NONBLOCK mode on readline's input
+         file descriptor before calling readline(). Inspired by report from
+         Siteshwar Vashisht <svashisht@redhat.com>
 
-lib/readline/rlprivate.h
-       - new extern declaration for _rl_executing_keyseq_size, buffer size
-         for rl_executing_keyseq
+                                  1/30
+                                  ----
+parse.y
+       - parse_comsub: don't unconditionally set the LEX_WASDOL flag when we
+         see a `$'; we should toggle it to accommodate things like $$.
+         Fixes bug reported by Christian Weisgerber <naddy@mips.inka.de>
+       - parse_matched_pair: do the same thing with LEX_WASDOL
 
-lib/readline/doc/rltech.texi
-       - documented new variables: rl_executing_key, rl_executing_keyseq,
-         rl_key_sequence_length
+                                   2/1
+                                   ---
+jobs.h
+       - JWAIT_PERROR,JWAIT_FORCE: new defines for the wait_for_ family of
+         functions
 
-                                  12/13
-                                  -----
-bashline.c
-       - bash_execute_unix_command: replace ad-hoc code that searches
-         cmd_xmap for correct command with call to rl_function_of_keyseq
-         using rl_executing_keyseq; now supports key sequences longer
-         than two characters.  Fixes bug reported by Michael Kazior
-         <kazikcz@gmail.com>
+jobs.c
+       - wait_for_job, wait_for_any_job: take new flags argument for use by
+         the wait builtin
+       - wait_for_job: if JWAIT_FORCE flag supplied, loop waiting for job to
+         terminate instead of change state
+       - wait_for_single_pid: if JWAIT_FORCE flag supplied, loop waiting for
+         child process to terminate instead of change state
 
-                                  12/15
-                                  -----
-make_cmd.c
-       - make_function_def: don't null out source_file before calling
-         make_command so it can be used later on when the function definition
-         is executed
+builtins/wait.def
+       - takes a new `-f' option, signifying to wait until the specified job 
+         or process terminates, instead of changes state
 
-execute_cmd.c
-       - execute_intern_function: second argument is now FUNCTION_DEF *
-         instead of COMMAND *
-       - execute_command_internal: call execute_intern_function with the
-         new second argument (the entire FUNCTION_DEF instead of just the
-         command member)
-       - execute_intern_function: if DEBUGGER is defined, call
-         bind_function_def before calling bind_function, just like
-         make_function_def does (might be able to take out the call in
-         make_function_def depending on what the debugger does with it).
-         Fixes bug reported by <dethrophes@motd005>
+doc/{bash.1,bashref.texi}
+       - wait: document the new -f option and its behavior when job control
+         is enabled
+       - job control: add a paragraph describing how the wait builtin changes
+         behavior when job control is enabled: it returns when a job changes
+         state
 
-expr.c
-       - more minor changes to cases of INTMAX_MIN % -1 and INTMAX_MIN / 1;
-         fix typos and logic errors
+                                   2/2
+                                   ---
+examples/loadables/fdflags.c
+       - fdflags: new loadable builtin to set and unset file descriptor flags
+         (such as non-blocking, though bash undoes that) for descriptors bash
+         has open. Developed in consultation with Christos Zoulas
+         <christos@zoulas.com>
 
-                                  12/16
-                                  -----
-bashline.c
-       - find_cmd_start: change flags to remove SD_NOSKIPCMD so it skips over
-         command substitutions and doesn't treat them as command separators
-       - attempt_shell_completion: instead of taking first return from
-         find_cmd_name as command name to use for programmable completion,
-         use loop to skip over assignment statements.  Fixes problem reported
-         by Raphael Droz <raphael.droz+floss@gmail.com>
-       - attempt_shell_completion: if we don't find a command name but the
-         command line is non-empty, assume the other words are all assignment
-         statements and flag that point is in a command position so we can
-         do command name completion
-       - attempt_shell_completion: if the word being completed is the first
-         word following a series of assignment statements, and the
-         command line is non-empty, flag that point is in a command position
-         so we can do command name completion
-
-lib/readline/history.c
-       - history_get_time: atol -> strtol
-
-                                  12/18
-                                  -----
-parse.y
-       - parser_in_command_position: external interface to the
-         command_token_position macro for use by other parts of the shell,
-         like the completion mechanism
-
-externs.h
-       - extern declaration for parser_in_command_position
-
-                                  12/19
-                                  -----
-
-builtins/read.def
-       - read_builtin: make sure all calls to bind_read_variable are passed
-         a non-null string.  Fixes bug reported by Dan Douglas
-         <ormaaj@gmail.com>
-
-bashline.c
-       - attempt_shell_completion: mark that we're in a command position if
-         we're at the start of the line and the parser is ready to accept
-         a reserved word or command name.  Feature most recently suggested
-         by Peng Yu <pengyu.ut@gmail.com>
-
-                                  12/21
-                                  -----
-lib/readline/bind.c
-       - _rl_escchar: return the character that would be backslash-escaped
-         to denote the control character passed as an argument ('\n' -> 'n')
-       - _rl_isescape: return 1 if character passed is one that has a
-         backslash escape
-       - _rl_untranslate_macro_value: new second argument: use_escapes, if
-         non-zero translate to backslash escapes where possible instead of
-         using straight \C-x for control character `x'.  Change callers
-       - _rl_untranslate_macro_value: now global
-
-lib/readline/rlprivate.h
-       - _rl_untranslate_macro_value: extern declaration
-
-lib/readline/{macro.c,readline.h}
-       - rl_print_last_kbd_macro: new bindable function, inspired by patch
-         from Mitchel Humpherys
-
-lib/readline/funmap.c
-       - print-last-kbd-macro: new bindable command, bound to
-         rl_print_last_kbd_macro
-
-lib/readline/doc/{rluser.texi,readline.3},doc/bash.1
-       - print-last-kbd-macro: document.
+                                   2/3
+                                   ---
 
 lib/readline/text.c
-       - _rl_insert_next: if we're defining a macro, make sure the key gets
-         added to the macro text (should really audit calls to rl_read_key()
-         and make sure the right thing is happening for all of them)
-
-bashline.[ch]
-       - print_unix_command_map: new function, prints all bound commands in
-         cmd_xmap using rl_macro_dumper in a reusable format
+       - rl_previous_screen_line: attempt to move to the same column on the
+         previous screen line of the current readline buffer by moving back
+         a number of characters equal to the screen width
+       - rl_next_screen_line: attempt to move to the same column on the
+         next screen line of the current readline buffer by moving forward
+         a number of characters equal to the screen width. Both originally
+         suggested by Hans Ginzel <hans@matfyz.cz>
 
-builtins/bind.def
-       - new -X option: print all keysequences bound to Unix commands using
-         print_unix_command_map.  Feature suggested by Dennis Williamson
-         (2/2011)
+lib/readline/readline.h
+       - rl_{next,previous}_screen_line: extern declarations
 
-doc/{bash.1,bashref.texi}
-       - document new `bind -X' option
+lib/readline/funmap.c
+       - {next,previous}-screen-line: new bindable command names
 
-                                  12/24
-                                  -----
+lib/readline/doc/{rluser.texi,readline.3}
+       - {next,previous}-screen-line: document behavior, including limitations
 
-doc/{bash.1,bashref.texi}
-       - add a couple of sentences to the description of the case modification
-         operators making it clearer that each character of parameter is
-         tested against the pattern, and that the pattern should only attempt
-         to match a single character.  Suggested by Bill Gradwohl
-         <bill@ycc.com>
+                                   2/5
+                                   ---
+lib/readline/input.c
+       - rl_read_key: when reading input from a macro, make sure to return
+         the next character as an unsigned char, so we handle multibyte
+         character sequences correctly.  Report and fix from Grisha Levit
+         <grishalevit@gmail.com>
 
-                                  12/28
-                                  -----
+                                   2/6
+                                   ---
 shell.c
-       - init_noninteractive: instead of calling set_job_control(0) to
-         unconditionally turn off job control, turn on job control if
-         forced_interactive or jobs_m_flag is set
-       - shell_initialize: call initialize_job_control with jobs_m_flag as
-         argument so `bash -m script' enables job control while running the
-         script
-
-jobs.c
-       - initialize_job_control: if the `force' argument is non-zero, turn on
-         job control even if the shell is not currently interactive
-         (interactive == 0)
-
-                                  12/29
-                                  -----
-
-flags.h
-       - new extern declaration for jobs_m_flag
+       - --pretty-print: new invocation option, currently undocumented, dumps
+         a pretty-printed version of a shell script given as an argument to
+         stdout
+       - main: call pretty_print_loop() if we're in pretty-printing mode in
+         a non-interactive shell
 
-builtins/{cd,set}.def,doc/{bash.1,bashref.texi}
-       - added text clarifying the descriptions of cd -L and -P, suggested by
-         Padraig Brady <p@draigbrady.com>
-       - slight change to the description of `set -P' about resolving symbolic
-         links
+eval.c
+       - pretty_print_loop: new function, similar to reader_loop, reads
+         commands and prints them by displaying the result from
+         make_command_string()
 
-lib/readline/doc/rluser.texi
-       - Added an example to the programmable completion section: _comp_cd,
-         a completion function for cd, with additional verbiage.  Text
-         includes a reference to the bash_completion project
+externs.h
+       - pretty_print_loop: new extern declaration
 
-                                1/1/2012
-                                --------
-jobs.c
-       - set_job_status_and_cleanup: note that a job is stopped due to
-         SIGTSTP (any_tstped) if job_control is set; there's no need to
-         test interactive
+                                   2/9
+                                   ---
+doc/{bash.1,bashref.texi}
+       - here strings: correct documentation to note they do not undergo
+         brace expansion. Report from Conor McCarthy <mr.spuratic@gmail.com>
 
-                                   1/5
+                                   2/9
                                    ---
-quit.h
-       - LASTSIG(): new macro, expands to signal number of last terminating
-         signal received (terminating_signal or SIGINT)
+lib/readline/display.c
+       - expand_prompt: instead of recomputing the line break offsets for
+         prompts that span multiple screen lines on every call to rl_redisplay,
+         do it here. Manage a local array local_prompt_newlines; set an offset
+         every time `physchars' hits a multiple of the screen width.  Inspired
+         by https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=843819
+       - rl_redisplay: don't calculate multi-line prompt line break indices
+         here; use the values calculated by expand_prompt
+       - rl_{save,restore}_prompt: save and restore local_prompt_newlines
 
-trap.c
-       - first_pending_trap: returns lowest signal number with a trap pending
-       - trapped_signal_received: set to the last trapped signal the shell
-         received in trap_handler(); reset to 0 in run_pending_traps
+                                  2/11
+                                  ----
+lib/readline/mbutil.c
+       - _rl_find_prev_mbchar_internal: since we're traversing the string
+         from the beginning, shortcut non-multibyte characters in a UTF-8
+         locale
 
-builtins/read.def
-       - read_builtin: changes to posix-mode (posixly_correct != 0) to make
-         `read' interruptible by a trapped signal.  After the trap runs,
-         read returns 128+sig and does not assign the partially-read line
-         to the named variable(s).  From an austin-group discussion started
-         by David Korn
+parse.y
+       - parse_comsub: if we are parsing a here document with a quoted
+         delimiter (LEX_QUOTEDDOC), we should not remove <backslash><newline>
+         pairs from the body of the here document.  Need to add LEX_QUOTEDDOC
+         to the values in tflags when calling shell_getc.  Fixes bug reported
+         by Michael Homer <michael.homer@ecs.vuw.ac.nz>, patch was originally
+         contributed by Geir Hauge <geir.hauge@gmail.com>
 
-                                  1/11
+                                  2/15
                                   ----
-doc/{bash.1,bashref.texi}
-       - slight changes to the descriptions of the compat32 and compat40 shell
-         options to clarify their meaning
+jobs.c
+       - bgp_add: if hashed pid collides with bgpids.head index, print a
+         warning and move to the next index.  Attempt to avoid collision
+         problem reported by Graham Northup <northug@clarkson.edu>
 
-                                  1/12
+                                  2/17
                                   ----
-lib/readline/{colors.[ch],parse-colors.[ch]}
-       - new files, part of color infrastructure support
+subst.c
+       - process_substitute: call remove_quoted_escapes on the command string
+         like command substitution does, since the string will be run through
+         the parser again.  Fixes bug reported by David Simmons
+         <bug-bash@tmp.davidsimmons.com>
 
-Makefile.in,lib/readline/Makefile.in
-       - arrange to have colors.o and parse-colors.o added to readline
-         library
+config-top.h
+       - STATIC_PATH_VALUE: new config variable, undefined by default
 
-{configure,config.h}.in
-       - check for stdbool.h, define HAVE_STDBOOL_H if found
+variables.c
+       - shell_initialize: if STATIC_PATH_VALUE is defined, use it to set the
+         PATH variable at shell startup, overriding the environment and any
+         value for DEFAULT_PATH_VALUE.  Based on a suggestion from
+         Lonnie Abelbeck <lonnie@abelbeck.com>
 
-                                  1/14
+                                  2/18
                                   ----
-lib/readline/bind.c
-       - colored_stats: new bindable variable, enables using colors to
-         indicate file type when listing completions
-
-lib/readline/complete.c
-       - _rl_colored_stats: new variable, controlled by colored-stats bindable
-         variable
-       - colored_stat_start, colored_stat_end: new functions to set and reset
-         the terminal color appropriately depending on the type of the
-         filename to be printed
-       - print_filename: changes to print colors if `colored-stats' variable
-         set.  Changes contributed by Raphael Droz
-         <raphael.droz+floss@gmail.com>
-
-lib/readline/readline.c
-       - rl_initialize_everything: add call to _rl_parse_colors to parse
-         color values out of $LS_COLORS.  May have to add to rl_initialize
-         to make more dynamic if LS_COLORS changes (which doesn't happen
-         very often, if at all)
-
-lib/readline/rlprivate.h
-       - _rl_colored_stats: new extern declaration
-
-lib/readline/doc/{readline.3,rluser.texi},doc/bash.1
-       - colored-stats: document new bindable readline variable
-
-lib/readline/colors.c
-       - _rl_print_color_indicator: call rl_filename_stat_hook before calling
-         lstat/stat so we can get color indicators for stuff like
-         $HOME/Applications
-
-lib/readline/complete.c
-       - stat_char: call rl_filename_stat_hook before calling lstat/stat
-
-findcmd.[ch],execute_cmd.c
-       - search_for_command: now takes a second `flags' argument; changed
-         header function prototype and callers
-       - search_for_command: if (flags & 1), put the command found in $PATH
-         into the command hash table (previous default behavior)
-
-execute_cmd.c
-       - is_dirname: call search_for_command with flags argument of 0 so it
-         doesn't try to put something in the command hash table
+shell.c
+       - maybe_make_restricted: clear the hash table before making the PATH
+         variable read-only by calling stupidly_hack_special_variables.
+         Suggestion from Lonnie Abelbeck <lonnie@abelbeck.com>
 
-bashline.c
-       - bash_command_name_stat_hook: a hook function for readline's
-         filename_stat_hook that does $PATH searching the same way that
-         execute_cmd.c:execute_disk_command() does it, and rewrites the
-         passed filename if found.  Does not put names into command hash
-         table.  This allows command name completion to take advantage
-         of `visible-stats' and `colored-stats' settings.
-       - executable_completion: new function, calls the directory completion
-         hook to expand the filename before calling executable_file or
-         executable_or_directory; change command_word_completion_function to
-         call executable_completion.  This allows $HOME/bin/[TAB] to do
-         command completion and display alternatives
+subst.c
+       - expand_string_for_pat: change expansion of WORD in ${param[%[%]][#[#]]word}
+         to use this new function, initially identical to
+         expand_string_for_rhs
+       - getpattern: use expand_string_for_pat to expand the pattern
 
-                                  1/17
+                                  2/19
                                   ----
-pcomplete.c
-       - gen_command_matches: now takes a new second argument: the command
-         name as deciphered by the programmable completion code and used
-         to look up the compspec; changed callers (gen_compspec_completions)
-       - gen_shell_function_matches: now takes a new second argument: the
-         command that originally caused the completion function to be
-         invoked; changed callers (gen_compspec_completions))
-       - build_arg_list: now takes a new second argument: the command name
-         corresponding to the current compspec; changed callers
-         (gen_command_matches, gen_shell_function_matches)
-       - build_arg_list: now uses `cmd' argument to create $1 passed to
-         invoked command or shell function
-       - gen_compspec_completions: if we skipped a null command at the
-         beginning of the line (e.g., for completing `>'), add a new word for
-         it at the beginning of the word list and increment nw and cw
-         appropriately.  This is all a partial fix for the shortcoming
-         pointed out by Sung Pae <sungpae@gmail.com>
+subst.c
+       - expand_string_for_rhs: now that this is only used to expand the RHS
+         of the various non-pattern ${paramOPword} expansions, set
+         expand_no_split_dollar_star depending on whether or not the entire
+         brace expansion is going to be subjected to word splitting: if it's
+         quoted or if IFS is set but null, we will not be splitting so we set
+         this to 1 and let $* expand to separate fields separated by a space.
+         This was heavily debated back in October 2014 and resulted in Posix
+         interp 888. Reported by Martijn Dekker <martijn@inlv.org>
 
-                                  1/18
+                                  2/20
                                   ----
+subst.c
+       - expand_string_for_rhs: now takes `op' (brace expansion operator) as
+         an additional argument; changed call in parameter_brace_expand_rhs
+       - expand_string_for_rhs: make sure to set expand_no_split_dollar_star
+         if `op' is `=', since we are supposed to preserve the assignment
+         statement expansion semantics on the RHS of ${param=word}
 
-{configure,config.h}.in
-       - new check: check for AUDIT_USER_TTY defined in <linux/audit.h>,
-         define HAVE_DECL_AUDIT_USER_TTY if both are found
-
-lib/readline/rlconf.h
-       - ENABLE_TTY_AUDIT_SUPPORT: new define, allows use of the Linux kernel
-         tty auditing system if it's available and enabled
+jobs.c
+       - bgp_delindex: make sure to set ps->pid to NO_PID so we more
+         effectively remove it from the hash table. It shouldn't matter as
+         long as nothing in pidstat_table points to it, but better to be safe
+       - bgp_delete,bgp_search: generalize previous collision detection to
+         loop detection: abort search if we are going to go back to the
+         first index we tried
 
-lib/readline/util.c
-       - _rl_audit_tty: new function, send a string to the kernel tty audit
-         system
+                                  2/21
+                                  ----
+lib/readline/vi_mode.c
+       - rl_vi_bword: if we're trying to move backward to non-whitespace
+         in a line that begins with whitespace, make sure we don't move
+         point to 0 and test memory locations before the start of the
+         buffer. Report and fix from Jason Hood <jadoxa@yahoo.com.au>
 
-lib/readline/rlprivate.h
-       - _rl_audit_tty: new extern declaration
+lib/readline/display.c
+       - expand_prompt: if _rl_screenwith == 0, call rl_reset_screen_size to
+         initialize it. If it's still 0 after that, guess that the screen
+         width is 80 and use that to guess how many screen lines the prompt
+         consumes
 
 lib/readline/readline.c
-       - readline: call _rl_audit_tty with line to be returned before returning
-         it if the Linux tty audit system is available and it's been enabled
-         in rlconf.h  Original patch from Miroslav Trmac; recent request
-         from Miroslav Lichvar <mlichvar@redhat.com>
+       - readline_internal_setup: if in emacs editing mode, and we are
+         showing the editing mode in the prompt, call _rl_reset_prompt() to
+         make sure that the updated setting of _rl_show_mode_in_prompt
+         (presumably set in an inputrc file) is reflected in the redisplay
+         performed by rl_callback_newline via readline_internal_setup.
+         Fix from Jason Hood <jadoxa@yahoo.com.au>
 
-                                  1/21
+                                  2/22
                                   ----
+builtins/complete.def
+       - print_one_completion,print_compopts: make sure to display the
+         `nosort' and `noquote' options if they've been set for a particular
+         compspec.  Fix from Grisha Levit <grishalevit@gmail.com>
 
-lib/readline/readline.c:
-       - _rl_dispatch_subseq: add an inter-character timeout for multi-char
-         key sequences.  Suggested by <rogerx.oss@gmail.com>.  Still needs
-         work to make a user-settable variable
-
-parse.y
-       - shell_getc: make code that uses the pop_alias dependent on ALIAS
-         define
-
-variables.h
-       - sv_tz: extern define should only depend on HAVE_TZSET
-
-expr.c
-       - expr_streval: if ARRAY_VARS is not defined, set lvalue->ind to -1;
-         move assignment to `ind' inside define
-       - expr_bind_array_element: declaration and uses need to be #ifdef
-         ARRAY_VARS
-
-arrayfunc.h
-       - AV_ALLOWALL, AV_QUOTED, AV_USEIND: define to 0 if ARRAY_VARS not
-         defined; used in subst.c unconditionally
-
-sig.h
-       - make the signal blocking functions not dependent on JOB_CONTROL
-
-sig.c
-       - sigprocmask: make the replacement definition not dependent on
-         JOB_CONTROL
+builtins/read.def
+       - read_builtin: if -e is supplied, read needs to free rlbuf before
+         returning, since it uses discard_unwind_frame at that point. Bug
+         and fix from ZhangXiao <xiao.zhang@windriver.com>
 
-trap.c
-       - use BLOCK_SIGNAL/UNBLOCK_SIGNAL instead of code dependent on
-         HAVE_POSIX_SIGNALS and BSD signals
+execute_cmd.c
+       - execute_for_command: when using a nameref as the for loop control
+         variable, make sure we check for readonly namerefs and make sure
+         that we force bind_variable to enforce restrictions on nameref
+         assignments. Fix from Grisha Levit <grishalevit@gmail.com>
 
-                                  1/24
+                                  2/23
                                   ----
+general.c
+       - make_absolute: convert deprecated cygwin_conv_to_full_posix_path
+         to cygwin_conv_path (CCP_WIN_A_TO_POSIX, ...)
 
-print_cmd.c
-       - print_redirection_list: change the conditions under which
-         r_duplicating_output_word is mapped to r_err_and_out to more or
-         less match those used in redir.c.  Fixes bug pointed out by
-         Dan Douglas <ormaaj@gmail.com>
-
+{shell,variables}.c,config-top.h
+       - modify change from 2/17: rename STATIC_PATH_VALUE to RBASH_STATIC_PATH_VALUE;
+         don't use it in shell_initialize; set PATH to it just before
+         imposing restricted shell restrictions
 
-                                  1/29
+                                  2/24
                                   ----
-lib/readline/signals.c
-       - _rl_block_sigwinch,_rl_release_sigwinch: don't compile in bodies
-         unless SIGWINCH is defined.  Fixes bug reported by Pierre Muller
-         <pierre.muller@ics-cnrs.unistra.fr>
+subst.c
+       - expand_string_for_rhs: revert change from 2/19 concerning setting
+         expand_no_split_dollar_star so we are consistent with the Posix
+         examples. This anticipates Martijn Dekker initiating an austin
+         group discussion about this case
 
-doc/{bash.1,bashref.texi}
-       - small modifications to the introduction to the REDIRECTION section
-         to describe how redirections can modify file handles
-       - small modification to the section describing base#n to make it
-         clearer that n can be denoted using non-numerics.  From a posting
-         by Linda Walsh <bash@tlinx.org>
+                                  2/25
+                                  ----
+pcomplete.c
+       - gen_shell_function_matches: if COMPREPLY is an associative array,
+         don't coerce it to an indexed array, which will fail to produce any
+         matches anyway.  Report from Grisha Levit <grishalevit@gmail.com>
+       - bind_comp_words: if COMP_WORDS exists as a nameref variable, ignore
+         the nameref attribute. Report from Grisha Levit
+         <grishalevit@gmail.com>
 
-                                   2/2
-                                   ---
-builtins/printf.def
-       - printf_builtin: make sure vbuf is intialized and non-null when -v
-         is supplied, since other parts of the code assume that it's not
-         null (e.g., bind_printf_variable()).  Fixes bug reported by Jim
-         Avera <james_avera@yahoo.com>
+subst.c
+       - parameter_brace_expand: if expand_no_split_dollar_star is set, make
+         sure chk_atstar treats ${var[*]} as quoted by passing Q_DOUBLE_QUOTES
+         as the second argument.  Fixes differing treatment of $* and ${v[*]}
+         reported by Grisha Levit <grishalevit@gmail.com>, because otherwise
+         *contains_dollar_at gets set to 1 and the word is inappropriately
+         split
 
-                                   2/4
+                                   3/1
                                    ---
-lib/readline/undo.c
-       - _rl_free_undo_list: new function, old body of rl_free_undo_list,
-         frees undo entries in UNDO_LIST * passed as argument
-       - rl_free_undo_list: call _rl_free_undo_list
-
-lib/readline/rlprivate.h
-       - _rl_free_undo_list: new extern declaration
-       - _rl_keyseq_timeout: new extern declaration (see below)
-
-lib/readline/misc.c
-       - rl_clear_history: new function.  Clears the history list and frees
-         all associated data similar to history.c:clear_history(), but
-         takes rl_undo_list into account and frees and UNDO_LISTs saved as
-         `data' members of a history list entry
-
-lib/readline/doc/rltech.texi
-       - rl_clear_history: documented
-
-lib/readline/readline.c
-       - _rl_keyseq_timeout: new variable to hold intra-key timeout value
-         from 1/21 fix; specified in milliseconds.  Default value is 500
-       - _rl_dispatch_subseq: change to use _rl_keyseq_timeout as intra-key
-         timeout if it's greater than 0; no timeout if <= 0
-       - _rl_dispatch_subseq: don't check for queued keyboard input if we have
-         pushed or pending input, or if we're reading input from a macro
+subst.c
+       - expand_word_list_internal: if a variable assignment fails (e.g., due
+         to a readonly variable) in a non-interactive posix mode shell, don't
+         abort the shell if the assignment is being performed by the command
+         builtin, even if it's something like `command eval v=1'.  Fixes
+         RedHat bug https://bugzilla.redhat.com/show_bug.cgi?id=1389838
+         (reported by Denys Vlasenko)
 
-lib/readline/bind.c
-       - keyseq-timeout: new bindable variable, shadows _rl_keyseq_timeout
-       - string_varlist: add keyseq-timeout
-       - sv_seqtimeout: new function to modify value of _rl_keyseq_timeout;
-         clamps negative values at 0 for now
-       - _rl_get_string_variable_value: return value for keyseq-timeout
+                                   3/3
+                                   ---
+builtins/shopt.def
+       - set_compatibility_level: make sure that changing the compatibility
+         level sets or modifies BASH_COMPAT. Fixes bug reported by
+         Stephane Chazelas <stephane.chazelas@gmail.com>
 
-doc/bash.1,lib/readline/doc/{rluser.texi,readline.3}
-       - keyseq-timeout: documented
+lib/glob/smatch.c
+       - is_cclass: broke into two functions: is_valid_cclass and cclass_test,
+         for future expansion. No functionality change
 
-lib/readline/isearch.c
-       - _rl_isearch_dispatch: modification to fix from 7/18 to not use
-         cxt->keymap and cxt->okeymap, since by the time this code is
-         executed, they are equal.  Use `f' to check for rl_insert or
-         unbound func
-       - _rl_isearch_dispatch: if we're switching keymaps, not in
-         callback mode, and don't have pending or pushed input, use
-         _rl_input_queued to resolve a potentially ambiguous key sequence.
-         Suggested by Roger Zauner <rogerx.oss@gmail.com>
-       - _rl_isearch_dispatch: if we have changed keymaps and resolved to
-         an editing function (not self-insert), make sure we stuff the
-         right characters back onto the input after changing the keymap
-         back so the right editing function is executed after the search
-         is terminated.  Rest of fix for bug reported by Roger Zauner
-         <rogerx.oss@gmail.com>
+lib/glob/sm_loop.c
+       - BRACKMATCH: when testing a character against a character class name,
+         use the unfolded (original) character, since we're not performing a
+         comparison. This is what glibc does.  Fixes bug reported by
+         Lukáš BaÅinka <lukas.barinka@boxtrap.net>
 
-                                   2/5
+                                   3/4
                                    ---
-builtins/gen-helpfiles.c
-       - new file: reads struct builtin and writes the long docs to files
-         in the `helpdirs' subdirectory.  The filename is given in the
-         previously-unused `handle' member of the struct builtin.  Links
-         with `tmpbuiltins.o', which is created by Makefile to have the
-         right long documentation.  When not cross-compiling, gets the
-         right #defines based on configuration options from config.h instead
-         of trying to parse conditional parts of def files.  Fixes
-         shortcoming pointed out by Andreas Schwab <schwab@linux-m68k.org>
-
-builtins/Makefile.in
-       - tmpbuiltins.c: new generated file, created to enable creation of
-         separate helpfiles based on correct #defines instead of trying to
-         parse conditional parts of def files
-       - gen-helpfiles: new program to generate helpfiles, links with
-         tmpbuiltins.o
-       - HELPFILES_TARGET: new target, substituted by configure to `helpdoc'
-         if separate helpfiles requested
-       - targets: new target, libbuiltins.a and $(HELPFILES_TARGET)
-       - CREATED_OBJECTS: new variable, holds created object files for
-         make clean; changed make clean to remove created objects
-       - helpdoc: changed to call gen-helpfiles instead of mkbuiltins
-
-Makefile.in
-       - when building libbuiltins.a, recursively call make with `targets'
-         argument to make sure separate helpfiles get built
-
-configure.in
-       - substitute `helpdoc' as value of HELPFILES_TARGET if
-         --enable-separate-helpfiles supplied as configure argument
+doc/{bash.1,bashref.texi}
+       - note that the arguments to -eq and the rest of the arithmetic
+         operators are evaluated as expressions when using [[.  Report from
+         Rob la Lau <rob@ohreally.nl>
 
-builtins/mkbuiltins.c
-       - `-nofunctions': new argument, causes mkbuiltins to not write value
-         for function implementing a particular builtin to struct builtin
-         and to write document file name to `handle' member of struct builtin
-       - no longer writes separate helpfiles; that is left to gen-helpfiles
 
-                                   2/8
+                                   3/7
                                    ---
-subst.c
-       - make sure last_command_exit_value is set to a non-zero value before
-         any calls to report_error, since `-e' set will short-circuit
-         report_error.  Fixes bug reported by Ewan Mellor
-         <Ewan.Mellor@eu.citrix.com>
-
-variables.c
-       - make_local_array_variable: added second argument; if non-zero,
-         function will return an existing local associative array variable
-         instead of insisting on an indexed array
+lib/readline/display.c
+       - update_line: completely rewrote the code that handles line wrapping
+         in the presence of multibyte/double-width characters; punts to a
+         dumb update in cases where the number of screen positions doesn't
+         match
+       - update_line: in one case, where we are deleting characters from the
+         line, if we are writing a non-space into the last screen character
+         position, note that we are no longer using a space as a placeholder
+         for a line wrap where there is a multi-width character that won't
+         fit on the screen line (wrapped_line[current_line+1] = 0)
 
-variable.h,subst.c
-       - make_local_array_variable: changed prototype and caller
+                                  3/10
+                                  ----
+lib/readline/readline.c
+       - bind_arrow_keys_internal: add default key bindings for control-
+         arrow keys, suggested by Per Bothner <per@bothner.com>
 
-builtins/declare.def
-       - declare_internal: add second arg to call to make_local_array_variable;
-         making_array_special, which indicates we're processing an
-         assignment like declare a[b]=c.  Fixes seg fault resulting from
-         a being an already-declared local associative array variable in a
-         function.  Ubuntu bash bug 928900.
+                                  3/13
+                                  ----
+doc/{bash.1,bashref.texi}
+       - clarify the prompt strings the undergo expansion (PS0, PS1, PS2, and
+         PS4) before being displayed.  Based on a report from Grisha Levit
+         <grishalevit@gmail.com>
 
-                                  2/14
+                                  3/14
                                   ----
+input.c
+       - bufstream_ungetc: return EOF if being asked to unget a character to
+         a NULL buffer
+       - buffered_getchar: check buffered_fd is valid and buffers[buffered_fd]
+         is non-NULL before trying to dereference. Fixes bug reported by
+         floyd <floyd@floyd.ch>
 
 execute_cmd.c
-       - execute_command_internal: if redirections into or out of a loop fail,
-         don't try to free ofifo_list unless saved_fifo is non-zero.  It's
-         only valid if saved_fifo is set
+       - execute_null_command: if we fork to execute the command, the subshell
+         is not interactive
+       - execute_null_command: for safety's sake, if a redirection attached
+         to a null command affects fd 0 or the fd the shell is reading for
+         input, and the redirection can potentially change or close that file
+         descriptor, force a fork so the redirection is done in a subshell
 
-                                  2/15
+                                  3/15
                                   ----
-{arrayfunc,braces,variables}.c
-       - last_command_exit_value: make sure it's set before any calls to
-         report_error, since -e will cause that to exit the shell
+lib/readline/display.c
+       - update_line: if we have to output some bytes, and we are outputting
+         the prompt string, make sure we correct _rl_last_c_pos if we are
+         at the wrap offset -- what if all of the characters in the prompt
+         are invisible, so the visible length is 0?  Fixes display bug
+         reported by Grisha Levit <grishalevit@gmail.com>
 
-builtins/common.c
-       - get_job_by_name: call internal_error instead of report_error so this
-         doesn't exit the shell
+execute_cmd.c
+       - undo_partial_redirects: new function, performs redirections specified
+         in redirection_undo_list and disposes of them. Intended to be used
+         to unwind redirections performed before a redirection error
+       - dispose_partial_redirects: new function, disposes of
+         redirection_undo_list and nulls the list
+       - execute_command_internal: use undo_partial_redirects
 
-                                  2/18
-                                  ----
-builtins/evalstring.c
-       - parse_and_execute: make sure the file descriptor to be redirected to
-         is 1 before calling cat_file.  One fix for bug reported by Dan Douglas
-         <ormaaj@gmail.com>
+execute_cmd.h
+       - undo_partial_redirects: extern declaration
+       - dispose_partial_redirects: extern declaration
 
-parse.y
-       - read_token_word: don't return NUMBER if a string of all digits
-         resolves to a number that overflows the bounds of an intmax_t.
-         Other fix for bug reported by Dan Douglas <ormaaj@gmail.com>
+subst.c
+       - exp_jump_to_top_level: if we are throwing an expansion error while
+         expanding a redirection (expanding_redir != 0), undo any undoable
+         redirections by calling undo_partial_redirects() so we don't leave
+         any in place
 
-                                  2/19
+variables.c
+       - initialize_shell_variables: if SHELLOPTS is in the environment,
+         unset the readonly attribute on any existing variable with that
+         name. It may have been created by processing a -o option on the
+         command line.  Fixes issue reported by Stephane Chazelas
+         <stephane.chazelas@gmail.com>
+
+                                  3/16
                                   ----
-lib/sh/strtrans.c
-       - ansicstr: use 0x7f as the boundary for characters that translate
-         directly from ASCII to unicode (\u and \U escapes) instead of
-         UCHAR_MAX, since everything >= 0x80 requires more than one byte.
-         Bug and fix from John Kearney <dethrophes@web.de>
+lib/readline/histfile.c
+       - read_history_range: short-circuit and do nothing if the history file
+         is of 0 size
+       - read_history_range: make sure the buffer is zero-terminated so the
+         timestamp tests work right for history files of 1 character.  Report
+         and recommended fix from Denis Martinez <denis.martinez@gmx.com>
 
-builtins/printf.def
-       - tescape: ditto for printf \u and \U escape sequences
+lib/readline/complete.c
+       - compute_lcd_of_matches: when trying to compute the common prefix
+         of a set of matches while performing case-insensitive completion
+         matching, don't sort the match list unless rl_sort_completion_matches
+         is non-zero.  Fixes problem reported by Roee Bar <roee@arista.com>
 
-                                  2/20
+                                  3/18
                                   ----
-lib/sh/unicode.c
-       - u32toutf8: fix to handle encodings up to six bytes long correctly
-         (though technically UTF-8 only has characters up to 4 bytes long).
-         Report and fix from John Kearney <dethrophes@web.de>
-       - u32toutf8: first argument is now an unsigned 32-bit quantity,
-         changed callers (u32cconv) to pass c instead of wc
-       - u32reset: new function, resets local static state to uninitialized
-         (locale information, currently)
+subst.c
+       - extract_dollar_brace_string: handle process substitution embedded in
+         a ${...} expansion in the same way as command substitution.  Reported
+         by D630 <d630@posteo.net>
 
-locale.c
-       - call u32reset whenever LC_CTYPE/LC_ALL/LANG is changed to reset the
-         cached locale information used by u32cconv.  From a report from
-         John Kearney <dethrophes@web.de>
+parse.y
+       - LEX_GTLT: new flag, set by parse_matched_pair when a `<' or '>' is
+         read
+       - parse_matched_pair: handle an embedded process substitution like an
+         embedded command substitution if we are parsing an array index or
+         a dollar-brace expansion.  Reported by D630 <d630@posteo.net>
 
-                                  2/21
+                                  3/21
                                   ----
-doc/{bash,builtins}.1
-       - minor changes from Bjarni Ingi Gislason <bjarniig@rhi.hi.is>
-
-lib/sh/unicode.c
-       - u32cconv: only assume you can directly call wctomb on the passed
-         value if __STDC_ISO_10646__ is defined and the value is <=
-         0x7fffffff
-       - stub_charset: return locale as default instead of "ASCII", let
-         rest of code decide what to do with it
+subst.h
+       - ASS_NOEVAL, ASS_NOLONGJMP: new values for assignments, used by
+         make_variable_value
 
-lib/readline/parens.c
-       - _rl_enable_paren_matching: make paren matching work in vi insert
-         mode.  Bug report from <derflob@derflob.de>
+variables.c
+       - make_variable_value: ASS_NOEVAL: if this is set, don't attempt
+         arithmetic evaluation or case modification, just produce the value
+         (still honor ASS_APPEND)
+       - make_variable_value: ASS_NOLONGJMP: don't longjmp back to top_level
+         if arithmetic evaluation fails due to a syntax error
+       - bind_variable_internal: make sure aflags is passed to all calls to
+         make_variable_value
+       - push_temp_var: add ASS_NOLONGJMP to the flags passed to
+         bind_variable_internal.  Fixes bug reported by D630 <d630@posteo.net>
 
-                                  2/22
-                                  ----
-lib/sh/shquote.c
-       - sh_backslash_quote: quote tilde in places where it would be
-         expanded.  From a report from John Kearney <dethrophes@web.de>
+bashline.c
+       - bash_execute_unix_command: don't bother to attempt optimization by
+         checking whether the call to parse_and_execute changes $READLINE_LINE;
+         it can be defeated by the new code that optimizes appends to string
+         variables. Bug reported by Grisha Levit <grishalevit@gmail.com>
 
-                                  2/23
+                                  3/22
                                   ----
-execute_cmd.c
-       - execute_pipeline: wrap the discard_unwind_frame call in #ifdef
-         JOB_CONTROL, since the frame is only created if JOB_CONTROL is
-         defined.  Bug and fix from Doug Kehn <rdkehn@yahoo.com>
+subst.c
+       - expand_string_for_rhs: re-apply change from 2/19 based on discussion
+         on the austin-group mailing list about how unquoted ${var-$*}
+         expands when IFS is null.  Originally reported by Martijn Dekker
+         <martijn@inlv.org>
 
-                                  2/25
+                                  3/25
                                   ----
-error.c
-       - report_error: make sure last_command_exit_value is non-zero before
-         we call exit_shell, since the exit trap may reference it.  Call
-         exit_shell with last_command_exit_value to allow exit statuses
-         other than 1
-
-unicode.c
-       - stub_charset: use local static buffer to hold charset, don't change
-         value returned by get_locale_var.  Based on idea and code from
-         John Kearney <dethrophes@web.de>
-       - u32toutf16: function to convert unsigned 32-bit value (unicode) to
-         UTF-16.  From John Kearney <dethrophes@web.de>
-       - u32cconv: call u32toutf16 if __STDC_ISO_10646__ defined and wchar_t
-         is two bytes, send result to wcstombs, return if not encoding error.
-         From John Kearney <dethrophes@web.de>
-       - u32cconv: return UTF-8 conversion if iconv conversion to local
-         charset is unsupported
-
-                                   3/2
-                                   ---
-lib/readline/complete.c
-       - print_filename: if there is no directory hook, but there is a stat
-         hook, and we want to append a slash to directories, call the stat
-         hook before calling path_isdir on the expanded directory name.
-         Report and pointer to fix from Steve Rago <sar@nec-labs.com>
+parse.y
+       - read_token_word: if we read a WORD immediately after a CASE, FOR, or
+         SELECT, increment `expecting_in_token' to note that we're going to
+         be reading IN as the next non-newline token
+       - special_case_tokens: if we're expecting an IN (expecting_in_token > 0)
+         and we have an "in", return IN and decrement expecting_in_token. This
+         is a better implementation of Posix grammar rule 6 than the previous
+         code in that function (which is still there for posterity, but should
+         eventually be removed).  Fixes bug reported by Torka Noda
+         <kanito.tasoga@gmail.com>
 
-                                   3/3
-                                   ---
-builtins/evalstring.c
-       - parse_and_execute: fix to change of 2/18: make sure the file
-         descriptor being redirected to is 0 before calling cat_file when
-         we see something like $(< file).  Real fix for bug reported by
-         Dan Douglas <ormaaj@gmail.com>
+subst.c
+       - string_list_pos_params: if the expansion is not quoted, and IFS is
+         null, return a string containing the quoted positional parameters
+         separated by spaces.  Callers know what to do with the string
+       - parameter_brace_substring,parameter_brace_remove_pattern,
+         parameter_brace_transform,parameter_brace_patsub,parameter_brace_casemod:
+         for the VT_POSPARMS case, after calling the operator-specific
+         expansion function, which eventually calls string_list_pos_params,
+         leave the returned string alone, since it's already quoted properly
+       - parameter_brace_expand: after calling the above functions to perform
+         expansions, if the expansion is being performed on an unquoted $*
+         when IFS is null, set the W_SPLITSPACE flag in the return WORD_DESC
+         so that splitting on spaces is performed on the already-quoted word.
+         Fixes bug reported by Grisha Levit <grishalevit@gmail.com>
 
+                                  3/28
+                                  ----
 subst.c
-       - parameter_brace_patsub: run the replacement string through quote
-         removal even if the expansion is within double quotes, because
-         the parser and string extract functions treat the quotes and
-         backslashes as special.  If they're treated as special, quote
-         removal should remove them (this is the Posix position and
-         compatible with ksh93).  THIS IS NOT BACKWARDS COMPATIBLE.
+       - process_substitute: change so the subshell doesn't inherit the 'v'
+         option, like command substitution now does (as of bash-4.4).
+         Suggested by Grisha Levit <grishalevit@gmail.com>
 
-                                   3/4
-                                   ---
-lib/readline/complete.c
-       - rl_menu_complete: fix to make show-all-if-ambiguous and
-         menu-complete-display-prefix work together if both are set.  Fix
-         from Sami Pietila <sami.pietila@gmail.com>
+                                  3/30
+                                  ----
+subst.c
+       - parameter_brace_casemod: now takes a pflags parameter, like
+         parameter_brace_patsub; changed callers
+       - parameter_brace_transform: now takes a pflags parameter, like
+         parameter_brace_patsub; changed callers
+       - pos_params_pat_subst,pos_params_modcase: if mflags indicates we're
+         on the rhs of an assignment statement and not going to perform
+         word splitting, we're expanding $*, and $IFS is null, make sure
+         string_list_pos_params treats the expansion as double-quoted, so
+         the positional parameters will be concatenated.  Fixes bug reported
+         by Grisha Levit <grishalevit@gmail.com>
 
-                                   3/5
-                                   ---
-bashline.c
-       - dircomplete_expand_relpath: new variable, if non-zero, means that
-         `shopt -s direxpand' should expand relative pathnames.  Zero by
-         default, not user-settable yet
-       - bash_directory_completion_hook: if we have a relative pathname that
-         isn't changed by canonicalization or spell checking after being
-         appended to $PWD, then don't change what the user typed.  Controlled
-         by dircomplete_expand_relpath
+                                  3/31
+                                  ----
+doc/{bash.1,bashref.texi}
+       - add notes to the description of pipelines emphasizing that each
+         element of a pipeline is executed in a subshell, referring to the
+         description of a command execution environment, and that the
+         lastpipe option can modify that behavior. From a discussion with
+         Jean Delvare <jdelvare@suse.de>
 
-                                   3/7
+                                   4/1
                                    ---
-m4/timespec.m4
-       - new macros, cribbed from gnulib and coreutils: find out whether we
-         have `struct timespec' and what file includes it
-
-m4/stat-time.m4
-       - new macros, cribbed from gnulib and coreutils: find out whether the
-         mtime/atime/ctime/etctime fields of struct stat are of type
-         struct timespec, and what the name is
-
-include/stat-time.h
-       - new file, cribbed from gnulib, with additions from coreutils: include
-         the right file to get the struct timespec define, or provide our own
-         replacement.  Provides a bunch of inline functions to turn the
-         appropriate members of struct stat into `struct timespec' values,
-         zeroing out the tv_nsec field if necessary
-
-test.c
-       - include "stat-time.h" for the nanosecond timestamp resolution stuff
-       - stat_mtime: new function, returns struct stat and the mod time
-         normalized into a `struct timespec' for the filename passed as the
-         first argument
-       - filecomp: call stat_mtime instead of sh_stat for each filename
-         argument to get the mtime as a struct timespec
-       - filecomp: call timespec_cmp instead of using a straight arithmetic
-         comparison for the -nt and -ot operators, using timespec returned by
-         stat_mtime.  Added functionality requested by by Werner Fink
-         <werner@suse.de> for systems that can support it
-
-                                  3/10
-                                  ----
-include/posixdir.h
-       - REAL_DIR_ENTRY: remove dependency on _POSIX_SOURCE, only use feature
-         test macros to decide whether dirent.d_ino is present and usable;
-         define D_INO_AVAILABLE.  Report and fix from Fabrizion Gennari
-         <fabrizio.ge@tiscali.it>
-       - D_FILENO_AVAILABLE: define if we can use dirent.d_fileno
-
-lib/sh/getcwd.c
-       - use D_FILENO_AVAILABLE to decide whether or not to compile in
-         _path_checkino and whether or not to call it.  Report and initial
-         fix from Fabrizion Gennari <fabrizio.ge@tiscali.it>
-
-lib/readline/signals.c
-       - make sure all occurrences of SIGWINCH are protected by #ifdef
-
-sig.c
-       - make sure all occurrences of SIGCHLD are protected by #ifdef
-
-nojobs.c
-       - make sure SA_RESTART is defined to 0 if the OS doesn't define it
-
-version.c
-       - show_shell_version: don't use string literals in printf, use %s.
-         Has added benefit of removing newline from string to be translated
-
-trap.c
-       - queue_sigchld_trap: new function, increments the number of pending
-         SIGCHLD signals by the argument, which is by convention the number
-         of children reaped in a call to waitchld()
-
-trap.h
-       - queue_sigchld_trap: new extern declaration
-
-jobs.c
-       - waitchld: if called from the SIGCHLD signal handler (sigchld > 0),
-         then call queue_sigchld_trap to avoid running the trap in a signal
-         handler context.  Report and original fix from Siddhesh Poyarekar
-         <siddhesh@redhat.com>
-
-lib/sh/unicode.c
-       - u32tocesc: take an unsigned 32-bit quantity and encode it using
-         ISO C99 string notation (\u/\U)
-       - u32cconv: call u32tocesc as a fallback instead of u32cchar
-       - u32cconv: call u32tocesc if iconv cannot convert the character.
-         Maybe do the same thing if iconv_open fails
-       - u32reset: call iconv_close on localconv if u32init == 1
-
-                                  3/11
-                                  ----
-config-top.h
-       - CHECKWINSIZE_DEFAULT: new define, set to initial value of
-         check_window_size (shopt checkwinsize): 0 for off, 1 for on.
-         Default is 0
-
-{jobs,nojobs}.c
-       - check_window_size: default initial value to CHECKWINSIZE_DEFAULT
-
-                                  3/13
-                                  ----
-doc/bashref.texi
-       - change text referring to the copying restrictions to that
-         recommended by the FSF (no Front-Cover Texts and no Back-Cover
-         Texts)
-
-lib/readline/doc/{history,rlman,rluserman}.texi
-       - change text referring to the copying restrictions to that
-         recommended by the FSF (no Front-Cover Texts and no Back-Cover
-         Texts)
-
-                                  3/15
-                                  ----
-array.c
-       - LASTREF_START: new macro to set the starting position for an array
-         traversal to `lastref' if that's valid, and to the start of the array
-         if not.  Used in array_reference, array_insert, array_remove
-       - array_remove: try to be a little smarter with lastref instead of
-         unconditionally invalidating it
+subst.c
+       - expand_word_internal: set had_quoted_null to note for later if we
+         expand '', "", or "$x" when x is unset
+       - expand_word_internal: if we expand "$param" (or "${param}") and we
+         come back with a single word with the W_HAVEQUOTEDNULL flag set,
+         make sure we set had_quoted_null to remember it for later. In this
+         case, if we already have seen a quoted null and we expanded $@ in
+         this (sub)string expansion, we don't want to do any of the special
+         $@ handling. In particular, we don't want to set *expanded_something,
+         because that will result in word splitting and quoted null removal.
+         Fixes bug reported by Grisha Levit <grishalevit@gmail.com>
+       - parameter_brace_patsub: when expanding ${*/pat/sub} in the case
+         where ifs_is_null != 0 and (pflags & PF_NOSPLIT2) (meaning we aren't
+         going to be doing word splitting), pass MATCH_ASSIGNRHS so we do
+         the right thing in this case. Part of a set of cases inspired by
+         Grisha Levit <grishalevit@gmail.com>
+       - param_expand: case '*': if we are on the rhs of an assignment
+         (PF_ASSIGNRHS) and ifs is unset, and $1 == " ", we need to make sure
+         string_list_dollar_at gets called with Q_DOUBLE_QUOTES so it quotes
+         the positional parameters before joining them into a string with
+         string_list_internal.  Otherwise, that first space gets removed by
+         the implicit word splitting that gets performed.  Reported by
+         Grisha Levit <grishalevit@gmail.com>
 
-                                  3/16
-                                  ----
 array.c
-       - array_insert: fix memory leak by deleting element to be added in the
-         case of an error
+       - array_patsub,array_modcase: handle ${A[*]} identically to $* when
+         not quoted and IFS is null (separate with spaces).  Makes things
+         like ${A[*]/x/y} behave the same as ${*/x/y} when IFS is null
 
-                                  3/18
-                                  ----
-lib/sh/mbschr.c
-       - mbschr: don't call mbrlen unless is_basic is false; devolves to a
-         straight character-by-character run through the string
+subst.c
+       - parameter_brace_patsub,parameter_brace_casemod: if expanding ${A[*]}
+         when the match is on the rhs of an assignment statement (PF_ASSIGNRHS)
+         and ifs is null, make sure the match is performed as if it were
+         quoted
+       - parameter_brace_substring: now takes a PFLAGS argument
+       - parameter_brace_substring: if expanding $* in a context where we
+         don't want to do word splitting (expand_no_split_dollar_star &&
+         PF_NOSPLIT2), make sure we expand $* as if it were quoted
+       - parameter_brace_substring: if expanding an unquoted $* on the rhs of
+         an assignment statement when IFS is null, make sure we expand the $*
+         as if it were quoted
 
-                                  3/19
-                                  ----
-stringlib.c
-       - substring: use memcpy instead of strncpy, since we know the length
-         and are going to add our own NUL terminator
+                                   4/4
+                                   ---
+doc/{bash.1,bashref.texi}
+       - read: document that a delim argument of '' terminates each line when
+         a NUL character appears
 
-                                  3/20
-                                  ----
+                                   4/5
+                                   ---
 subst.c
-       - parameter_brace_expand_rhs: if expand_string_for_rhs returns a quoted
-         null string (a list with one element for which
-         QUOTED_NULL(list->word->word) returns true), return the quoted null
-         and set the flags in the returned word to indicate it.  Fixes bug
-         reported by Mark Edgar <medgar123@gmail.com>
-
-lib/sh/tmpfile.c
-       - use random(3) instead of get_random_number to avoid perturbing the
-         random sequence you get using $RANDOM.  Bug report and fix from
-         Jurij Mihelic <jurij.mihelic@fri.uni-lj.si>
+       - parameter_brace_expand_word: handle case where unquoted $@ is
+         expanded in a context where word splitting is not performed (PF_NOSPLIT2)
+         and IFS is not equal to the standard value
+       - param_expand: handle case where unquoted $@ is expanded in a context
+         where word splitting is not performed (PF_NOSPLIT2) and IFS is not
+         equal to the standard value.  Fixes bug with IFS == $1 when expanding
+         unquoted $@ reported by Grisha Levit <grishalevit@gmail.com>
 
-                                  3/21
-                                  ----
-config-top.h
-       - OPTIMIZE_SEQUENTIAL_ARRAY_ASSIGNMENT: define to 1 to optimize
-         sequential indexed array assignment patterns.  Defined to 1 by
-         default
+                                   4/7
+                                   ---
+subst.c
+       - pos_params_pat_subst: if MATCH_ASSIGNRHS is set, don't expand $*
+         as quoted unless expand_no_split_dollar_star is also set. Fixes
+         expansion bug reported on 4/4 by Grisha Levit <grishalevit@gmail.com>
+       - parameter_brace_transform: if we transform unquoted A[@] or A[*]
+         when IFS is null, don't quote the result of array_transform in the
+         same way we don't quote the result of parameter_list_transform,
+         since it will come back quoted.  Fixes bug reported by
+         Grisha Levit <grishalevit@gmail.com>
+       - list_transform: if we transform unquoted $* or ${a[*]} when IFS is
+         null and expand_no_split_dollar_star is non-zero, call
+         string_list_pos_params with Q_DOUBLE_QUOTES to inhibit splitting.
+         We do this in all cases except @Q, which is inconsistent but more
+         intuitive.
+         Fixes bug reported by Grisha Levit <grishalevit@gmail.com>
 
-array.c
-       - array_insert: if OPTIMIZE_SEQUENTIAL_ARRAY_ASSIGNMENT is defined,
-         start the search at lastref (see change from 3/15)
+                                   4/8
+                                   ---
+builtins/read.def
+       - read_mbchar: if unbuffered == 2, we are running read -N and need to
+         use zreadn to read the rest of the multibyte char, since the
+         previous call to zreadn may have buffered characters.  Fixes bug
+         reported by Stephane Chazelas <stephane.chazelas@gmail.com>
 
-                                  3/27
-                                  ----
-print_cmd.c
-       - debug_print_word_list: new debugging function, prints a word list
-         preceded by an optional string and using a caller-specified
-         separator
+pathexp.h
+       - QGLOB_CTLESC: new flag for quote_string_for_globbing: means to turn
+         CTLESC CTLESC (quoted CTLESC that's usually removed as part of
+         word splitting or quote removal) into CTLESC
 
-                                   4/1
-                                   ---
-command.h
-       - W_ASSNGLOBAL: new flag, set to indicate declare -g
+pathexp.c
+       - quote_string_for_globbing: if QGLOB_CTLESC is present in flags,
+         turn CTLESC CTLESC into CTLESC, even if the first CTLESC is preceded
+         by a backslash. Callers can't do this because the remaining CTLESC
+         will be treated as a quoting character and turned into a backslash
 
 execute_cmd.c
-       - fix_assignment_words: note that we have a -g argument to an assignment
-         builtin and set the W_ASSNGLOBAL flag in the variable word
+       - execute_case_command: if the pattern is not quoted, make sure to tell
+         quote_string_for_globbing to turn CTLESC CTLESC into CTLESC by
+         passing QGLOB_CTLESC.  Fixes bug reported 4/2 by Martijn Dekker
+         <martijn@inlv.org>
 
+                                   4/9
+                                   ---
 subst.c
-       - dump_word_flags: print out W_ASSNGLOBAL if present
-       - do_assignment_internal: only set ASS_MKLOCAL if W_ASSIGNARG is set
-         and W_ASSNGLOBAL is not.  Don't want to create a local variable even
-         if variable_context is non-zero if ASSNGLOBAL is set.  Fixes bug
-         reported by Bill Gradwohl <bill@ycc.com>
+       - string_transform: after calling ansiexpand for the `E' transformation,
+         need to call dequote_escapes because ansiexpand assumes it is being
+         called by the parser and arranges for ansicstr to quote CTLESC and
+         CTLNUL with CTLESC.  Reported by Grisha Levit <grishalevit@gmail.com>
 
-                                   4/7
-                                   ---
-lib/readline/readline.c
-       - _rl_dispatch_subseq: make the `keyseq-timeout' variable apply to
-         ESC processing when in vi mode.  After hitting ESC, readline will
-         wait up to _rl_keyseq_timeout*1000 microseconds (if set) for
-         additional input before dispatching on the ESC and switching to
-         command/movement mode.  Completes timeout work suggested by
-         <rogerx.oss@gmail.com>; this prompted by report from Barry Downes
-         <barry.downes@gmail.com>
+variables.c
+       - mk_env_string: when exporting functions, run them through
+         dequote_escapes because any strings containing CTLESC or CTLNUL are
+         still quoted with CTLESC.  Reported by Grisha Levit
+         <grishalevit@gmail.com>
 
-lib/sh/shmbchar.c
-       - sh_mbsnlen: new function, returns the number of (possibly multibyte)
-         characters in a passed string with a passed length, examining at most
-         maxlen (third argument) bytes
+subst.[ch]
+       - quote_escapes,dequote_escapes: now take const char * argument
 
-externs.h
-       - sh_mbsnlen: extern declaration for new function
+execute_cmd.c
+       - execute_intern_function: if the function name contains CTLESC, run
+         it through dequote_escapes just in case it got CTLESC quoting
+         CTLESC or CTLNUL from the parser
 
-shell.c
-       - exit_shell: call maybe_save_shell_history if remember_on_history is
-         set, not just in interactive shells.  That means the history is
-         saved if history is enabled, regardless of whether or not the shell
-         is interactive
+                                  4/11
+                                  ----
+eval.c
+       - reader_loop: make sure PS0 is expanded and displayed before
+         incrementing the command number
 
-doc/{bash.1,bashref.texi}
-       - TMOUT: fix description to make it explicit that TMOUT is the timeout
-         period for a complete line of input, not just any input.  Fixes
-         problem reported in Ubuntu bug 957303:
-         https://bugs.launchpad.net/ubuntu/+source/bash/+bug/957303
-       - HISTFILE: document change to write history list to history file in
-         any shell with history enabled, not just interactive shells.  This
-         seems to be more logical behavior.  Suggested by Greg Wooledge
-         <wooledg@eeg.ccf.org>
+parse.y
+       - prompt_history_number:  function to make history number as reported
+         by \!, or posix mode !!, be the same index that the (possibly multi-
+         line) command will be stored with. The history library increments
+         history_offset as soon as a new line is entered, and it's up to the
+         history code to store the second and subsequent lines of a command
+         in the same history entry.  If we are expanding PS0 or PS4, or
+         a ${var@P} expansion, we're already past the history entry no
+         matter what.  Inspired by patch from Grisha Levit
+         <grishalevit@gmail.com>
+       - decode_prompt_string: call prompt_history_number
+       - decode_prompt_string: if expanding PS4 or ${var@P}, make the
+         command number the same as reported by PS0/PS1/PS2
 
                                   4/12
                                   ----
-lib/readline/colors.h
-       - only include stdbool.h if HAVE_STDBOOL_H is defined
-       - if HAVE_STDBOOL_H is not defined, provide enough definition for the
-         library to use `bool', `true', and `false'
-
-lib/readline/parse-colors.[ch]
-       - don't try to include <stdbool.h> at all; rely on colors.h to do it
-
-lib/sh/snprintf.c
-       - vsnprintf_internal: only treat '0' as a flag to indicate zero padding
-         if `.' hasn't been encountered ((flags&PF_DOT) == 0); otherwise treat
-         it as the first digit of a precision specifier.  Fixes bug reported
-         by Petr Sumbera <petr.sumbera@sun.com>
-
-                                  4/15
-                                  ----
-lib/sh/snprintf.c
-       - vsnprintf_internal: if the '0' and '-' flags both occur, the '0'
-         flag is ignored -- Posix.  Start of a series of fixes based on
-         tests and patches from Petr Sumbera <petr.sumbera@sun.com>
-       - PUT_PLUS: make sure PF_PLUS flag is specified before putting the `+'
-       - vsnprintf_internal: when '+' is read as a flag, don't set right-
-         justify flag if the LADJUST (`-') flag has already been supplied
-       - floating: make sure to output space padding before the `+', zero
-         padding after
-       - exponent: make sure to output space padding before the `+', zero
-         padding after
-       - exponent: only subtract one from the width for the decimal point
-         if we're really going to print one
-       - floating: use presence of PF_PLUS flag to decide whether to account
-         for the `+' in the padded field width.  Ditto for exponent()
-
-                                  4/16
-                                  ----
-lib/sh/snprintf.c
-       - vsnprint_internal: only reduce precision by 1 when processing the `g'
-         format if it's > 0.  A precision of 0 should stay 0; otherwise it
-         gets set to -1 (NOT_FOUND) and converted to the default
-       - number, lnumber: if an explicit precision is supplied, turn off the
-         zero-padding flag and set the pad character back to space
-       - number, lnumber: only account for a `+' when performing the field
-         width calculation if the coversion is base 10; we don't add a `+'
-         for other bases
+support/Makefile.in
+       - clean: remove man2html.o as part of this production instead of
+         waiting until `distclean'. Reported by chrlis <chrlis@sbrella.com>
 
-                                  4/18
-                                  ----
-tests/printf3.sub
-       - try using "perl -e 'print time'" to get the current time in seconds
-         since the epoch if "date +%s" is not available (solaris 8-10)
+subst.c
+       - string_list_pos_params: if we are expanding $* in a context where
+         IFS is null and expand_no_split_dollar_star is set (no word
+         splitting), use string_list_dollar_star to force the positional
+         parameters to be joined without first separating them into a list
+         and attempting to join them later.  Fixes problem with constructs
+         like ${var=${*:1}}, pointed out by Grisha Levit
+         <grishalevit@gmail.com>. This undoes change to @Q from 4/7, so
+         list_transform change reverted
 
                                   4/19
                                   ----
-tests/run-printf
-       - use cat -v instead of relying on diff -a being available to convert
-         control characters to ascii and avoid the dreaded "Binary files
-         /tmp/xx and printf.right differ"
+builtins.h
+       - added BUILTINS_H include guard
 
-                                  4/20
-                                  ----
-lib/sh/strftime.c
-       - incoporated new version from Aharon Robbins <arnold@skeeve.com>
+examples/loadables/Makefile.in
+       - install loadables.h as sample include file, along with Makefile.inc
 
-                                  4/22
+                                  4/23
                                   ----
-doc/{bash.1,bashref.texi}
-       - slight change to the description of /dev/tcp and /dev/udp
-
-subst.c
-       - match_wpattern: logic fix to the calculation of `simple' (was |=,
-         needs to be &=).  Bug report from Mike Frysinger <vapier@gentoo.org>,
-         fix from Andreas Schwab <schwab@linux-m68k.org>
-
 bashline.c
-       - bash_filename_stat_hook: add code from bash_directory_completion_hook
-         that performs pathname canonicalization in the same way that cd and
-         other builtins will do
+       - maybe_make_readline_line: don't try to do anything if the passed
+         NEW_LINE is NULL.  Report from Jaren Stangret <sirjaren@gmail.com>,
+         fix from Eduardo Bustamante <dualbus@gmail.com>
 
-                                  4/25
+                                  4/24
                                   ----
-execute_cmd.c
-       - execute_pipeline: change the call to move_to_high_fd to make it use
-         getdtablesize() and to not stomp on existing open file descriptors,
-         like the fd the shell is using to read a script.  Bug report from
-         Greg Wooledge <wooledg@eeg.ccf.org>
-
-                                   5/6
-                                   ---
-subst.c
-       - expand_word_internal: case '$': after calling param_expand and
-         setting had_quoted_null, set TEMP to null.  The code that builds the
-         returned string at the end of the function will take care of making
-         and returning a quoted null string if there's nothing else in
-         ISTRING.  If there is, the quoted null should just go away.  Part of
-         fix for bug reported by Ruediger Kuhlmann <RKuhlmann@orga-systems.com>
-       - expand_word_internal: when processing ISTRING to build return value,
-         only set W_HASQUOTEDNULL in the returned word flags if the word is
-         a quoted null string AND had_quoted_null is set.  Rest of fix
-
-                                   5/9
-                                   ---
-variables.c
-       - bind_variable_internal: if we get an array variable here (implicit
-         assignment to index 0), call make_array_variable_value, which
-         dummies up a fake SHELL_VAR * from array[0].  This matters when
-         we're appending and have to use the current value
-       - bind_variable_internal: after computing the new value, treat assoc
-         variables with higher precedence than simple array variables; it
-         might be that a variable has both attributes set
-
-arrayfunc.c
-       - bind_array_var_internal: break code out that handles creating the
-         new value to be assigned to an array variable index into a new
-         function, make_array_variable_value.  This handles creating a
-         dummy SHELL_VAR * for implicit array[0] assignment.  Fixes bug
-         reported by Dan Douglas <ormaaj@gmail.com>
-
-arrayfunc.h
-       - make_array_variable_value: new extern declaration
+parse.y
+       - xparse_dolparen: if the current token (the last thing read_token
+         returned to yylex) is shell_eof_token, assume that it is the new
+         bison lookahead token and clear it. Fixes bug reported by
+         Werner Fink <werner@suse.de>
 
-                                  5/19
+                                  4/25
                                   ----
-variables.c
-       - bind_int_variable: if an assignment statement like x=y comes in
-         from the expression evaluator, and x is an array, handle it like
-         x[0]=y.  Fixes bug reported by Dan Douglas <ormaaj@gmail.com>
+doc/{bash.1,bashref.texi}
+       - cmdhist: clarify that this option only has an effect if history is
+         enabled. Suggested by Matthew Braun <matthew@powerplug.com>
 
-                                  5/24
+                                  4/26
                                   ----
+jobs.c
+       - wait_for: if a non-interactive shell with job control enabled (set -m)
+         detects that a foreground job died due to SIGINT, act as if the shell
+         also received the SIGINT. Prompted by an austin-group-l discussion
+       - waitchld: run SIGCHLD trap for each child exited even if job control
+         is not enabled when in Posix mode. Prompted by an austin-group-l
+         discussion
 
-braces.c
-       - mkseq: handle possible overflow and break the sequence generating
-         loop if it occurs.  Fixes OpenSUSE bug 763591:
-         https://bugzilla.novell.com/show_bug.cgi?id=763591
-
-                                  5/25
+                                  4/27
                                   ----
-Makefile.in
-       - LDFLAGS_FOR_BUILD: add to compilation recipes for build tools
-         buildversion, mksignames, mksyntax
-       - LDFLAGS_FOR_BUILD: add to compilation recipes for test tools
-         recho, zecho, printenv, xcase
-
-builtins/Makefile.in
-       - LDFLAGS_FOR_BUILD: add to compilation recipes for build tools
-         gen-helpfiles, psize.aux
+lib/readline/histfile.c
+       - read_history_range: if the history file is empty, free the history
+         filename before returning. Report and fix from Eduardo Bustamante
+         <dualbus@gmail.com>
 
-variables.c
-       - bind_int_variable: if LHS is a simple variable name without an array
-         reference, but resolves to an array variable, call
-         bind_array_variable with index 0 to make x=1 equivalent to x[0]=1.
-         Fixes bug reported by Dan Douglas <ormaaj@gmail.com>
+lib/readline/bind.c
+       - rl_parse_and_bind: make sure there is something, even if it's a
+         quoted empty string, before the `:' in a key binding.  Report from
+         Eduardo Bustamante <dualbus@gmail.com>
+       - rl_parse_and_bind: if the right side of a key binding starts with a
+         quote, make sure there's a matching close quote before treating it
+         as a macro definition
+       - rl_translate_keyseq: if a key sequence ends with \C- or \M- (or
+         \C-\M-) make sure we break out of the loop if moving to the character
+         to be translated is a NUL. Old code did this only in the \C-\M-
+         case. Report from Eduardo Bustamante <dualbus@gmail.com>
 
-                                  5/27
+                                  4/28
                                   ----
-subst.c
-       - expand_word_internal: make sure has_dollar_at doesn't get reset before
-         recursive calls to param_expand or expand_word_internal, since it has
-         to save state of what came before.  Use temp variable and make sure
-         has_dollar_at is incremented if recursive call processes "$@".
-         Fixes bug reported by gregrwm <backuppc-users@whitleymott.net> and
-         supplemented by Dan Douglas <ormaaj@gmail.com>
-
-doc/{bash.1,bashref.texi}
-       - changes to the description of substring expansion inspired by
-         suggestions from Bill Gradwohl <bill@ycc.com>
-
-doc/bashref.texi
-       - added substring expansion examples inspired by suggestions from
-         Bill Gradwohl <bill@ycc.com>
-
-variables.c
-       - find_shell_variable: search for a variable in the list of shell
-         contexts, ignore the temporary environment
-       - find_variable_tempenv: search for a variable in the list of shell
-         contexts, force search of the temporary environment
-       - find_variable_notempenv: search for a variable in the list of shell
-         contexts, don't force search of the temporary environment
-
-variables.h
-       - find_shell_variable: extern declaration
-       - find_variable_tempenv: extern declaration
-       - find_variable_notempenv: extern declaration
-
-arrayfunc.c
-       - bind_array_variable: call find_shell_variable instead of calling
-         var_lookup directly
-
-findcmd.c
-       - search_for_command: call find_variable_tempenv instead of
-         find_variable_internal directly
-       - _find_user_command_internal: call find_variable_tempenv instead of
-         find_variable_internal directly
-
-builtins/setattr.def
-       - set_var_attribute: call find_variable_notempenv instead of
-         find_variable_internal directly
-       - show_name_attributes:  call find_variable_tempenv instead of
-         find_variable_internal directly
+lib/glob/sm_loop.c
+       - GMATCH: implement a clever technique from glibc that avoids
+         backtracking past a `*' if we've already chosen to use it and need
+         matches beyond it.  Look at https://research.swtch.com/glob for a
+         longer explanation. This results in a significant speedup for globs
+         with multiple instances of `*', especially with more than 4.
 
-                                   6/1
+                                   5/2
                                    ---
-sig.c
-       - termsig_handler: don't try to save the shell history on a terminating
-         signal any more, since it just causes too many problems on Linux
-         systems using glibc and glibc malloc
-
-lib/readline/vi_mode.c
-       - rl_vi_change_to: change to correctly redo `cc', since `c' is not a vi
-         motion character.  From Red Hat bug 813289
-       - rl_vi_delete_to: change to correctly redo `dd', since `d' is not a vi
-         motion character
-       - rl_vi_yank_to: change to correctly redo `yy', since `y' is not a vi
-         motion character
+lib/readline/bind.c
+       - rl_translate_keyseq: make sure a trailing backslash in the key
+         sequence is preserved. Report from Eduardo Bustamante
+         <dualbus@gmail.com>
 
-                                   6/4
+                                   5/3
                                    ---
-lib/sh/mktime.c
-       - current versions of VMS do not need to include <stddef.h>.  Fix from
-         John E. Malmberg <wb8tyw@qsl.net>
+builtins/builtin.def
+       - builtin_builtin: make sure to set  this_shell_builtin to the builtin
+         command being executed, overwriting `builtin'. Leave
+         last_shell_builtin alone.  Fixes bug reported by Luiz Angelo Daros
+         de Luca <luizluca@gmail.com>
 
-                                   6/5
-                                   ---
-lib/sh/eaccess.c
-       - sh_stat: instead of using a static buffer to do the DEV_FD_PREFIX
-         translation, use a dynamically-allocated buffer that we keep
-         resizing.  Fixes potential security hole reported by David Leverton
-         <levertond@googlemail.com>
+jobs.c
+       - waitchld: modify change of 4/26 to run SIGCHLD traps even if job
+         control is not enabled
 
-                                   6/5
-                                   ---
-braces.c
-       - expand_seqterm: check errno == ERANGE after calling strtoimax for
-         rhs and incr.  Part of a set of fixes from Scott McMillan
-         <scotty.mcmillan@gmail.com>
-       - expand_seqterm: incr now of type `intmax_t', which changes
-         arguments to mkseq
-       - mkseq: a better fix for detecting overflow and underflow since it's
-         undefined in C and compilers `optimize' out overflow checks.  Uses
-         ADDOVERFLOW and SUBOVERFLOW macros
-       - mkseq: use sh_imaxabs (new macro) instead of abs() for intmax_t
-         variables
-       - mkseq: don't allow incr to be converted to -INTMAX_MIN
-       - mkseq: make sure that strvec_create isn't called with a size argument
-         greater than INT_MAX, since it only takes an int
+lib/readline/misc.c
+       - rl_get_previous_history: if we didn't find a previous history entry
+         to use, call rl_maybe_unsave_line before returning because we
+         aren't going to use the saved line, and it has the same undo list
+         as rl_undo_list.  Fixes fuzzing bug reported by Eduardo Bustamante
+         <dualbus@gmail.com>
+       - rl_get_{next,previous}_history: if there is no history list, don't
+         bother doing anything
 
-                                   6/6
+                                   5/4
                                    ---
-braces.c
-       - mkseq: try and be smarter about not overallocating elements in
-         the return array if the increment is not 1 or -1
+expr.c
+       - popexp: if we error out due to stack underflow, make sure to zero out
+         expression and lasttp; they may contain undefined values we don't
+         want evalerror to print
+       - expr_unwind: handle expr_depth decrementing below zero
+       - evalexp: restore the old value of evalbuf even if we error and
+         longjmp; we may have called evalexp recursively
+       - evalerror: make sure expression is non-NULL before trying to print it.
+         These fix fuzzing bug reported by Eduardo Bustamante
+         <dualbus@gmail.com>, happens only in cases where we don't longjmp on
+         a fatal expansion error
 
-                                   6/7
+                                   5/5
                                    ---
 parse.y
-       - history_delimiting_chars: if the parser says we're in the middle of
-         a compound assignment (PST_COMPASSIGN), just return a space to avoid
-         adding a stray semicolon to the history entry.  Fixes bug reported
-         by "Davide Brini" <dave_br@gmx.com>
+       - read_token_word: when checking for a word that's a target of a
+         redirection, we can potentially call valid_array_reference, which
+         can end up calling the parser recursively. If it does that, we
+         need to make sure that yylval.word doesn't change, so we set it back
+         to the_word. Fixes another fuzzing bug
 
-                                   6/8
+parse.y
+       - arith_for_command: make syntax errors in the arithmetic for command
+         (signaled by make_arith_for_command returning NULL) more like
+         language syntax errors by calling YYERROR. Avoids complicated
+         attempts at error recovery and dealing with NULL returns from
+         command productions. Pointed out by Eduardo Bustamante
+         <dualbus@gmail.com>
+
+lib/readline/kill.c
+       - _rl_copy_to_kill_ring: make sure the current slot in the kill ring
+         has something in it, even if the last command was a kill, before
+         trying to modify it. Another fuzzing bug
+
+                                   5/6
                                    ---
-bashline.c
-       - bash_directory_completion_hook: don't attempt spelling correction
-         on the directory name unless the direxpand option is set and we are
-         going to replace the directory name with the corrected one in the
-         readline line.  Suggested by Linda Walsh <bash@tlinx.org>
+builtins/read.def
+       - read_builtin: if we see a backslash when not in raw mode (not -r),
+         only back up `i' when we read the next character if we know we added
+         a CTLESC the last time through the loop (skip_ctlesc == 0),
+         especially if i == 0. Another fuzzing bug from Eduardo Bustamante
+         <dualbus@gmail.com>
 
-lib/sh/shquote.c
-       - sh_backslash_quote: now takes a third argument: flags.  If non-zero,
-         tildes are not backslash-escaped.  Have to handle both printf %q,
-         where they should be escaped, and filename completion, where they
-         should not when used as usernames
+                                   5/8
+                                   ---
+builtins/read.def
+       - read_mbchar: handle zreadn/zreadc/zread returning EOF in the middle
+         of an incomplete multibyte sequence.  Fixes another fuzzing bug
+       - read_builtin: use mb_cur_max instead of constant 4 when deciding
+         whether the next character can exceed the number of bytes available
+         in input_string
 
-externs.h
-       - sh_backslash_quote: declaration now takes a third argument
+lib/readline/input.c
+       - MinGW: include <conio.h> before <io.h>. Fix from Eli Zaretskii
+         <eliz@gnu.org>
 
-builtins/printf.def
-       - printf_builtin: call sh_backslash_quote with 1 as third argument
-         so tildes get escaped
+builtins/read.def
+       - read_builtin: if we get input from readline, we need to get the
+         remainder of a multibyte character from rlbuf instead of calling
+         read_mbchar. Bug reported by Eduardo Bustamante <dualbus@gmail.com>
 
-{bashline,bracecomp}.c
-       - call sh_backslash_quote with 0 as third argument so tildes are not
-         escaped in completed words
+                                   5/9
+                                   ---
+parse.y
+       - token_is_assignment: use the allocated buffer approach in all cases,
+         not just if we're not using bash malloc. This avoids the assignment
+         to t[i+1] writing beyond the end of the allocated token if
+         i == token_buffer_size - 1. Another fuzzing bug
+       - xparse_dolparen: if parse_string returns < 0, we clear out the
+         current shell_input_line before performing a longjmp, since we're
+         abandoning parsing of this command.  This is consistent with how
+         the parser resynchronizes after other syntax errors
+       - GRAMMAR: add 'error yacc_EOF' production to handle a syntax error
+         that's immediately followed by an EOF after resynchronization.
+         Fixes another fuzzing bug
 
-doc/bash.1
-       - add `coproc' to the list of reserved words.  From a report by
-         Jens Schweikhardt <schweikh@schweikhardt.net>
+                                  5/10
+                                  ----
+lib/readline/text.c
+       - _rl_set_mark_at_pos: don't let the mark be set to a position < 0.
+         Fixes a fuzzing bug
+       - rl_exchange_point_and_mark: don't do anything if the mark is already
+         less than 0
 
-                                  6/10
+                                  5/12
                                   ----
-execute_cmd.c
-       - line_number_for_err_trap: now global, so parse_and_execute can save
-         and restore it with unwind-protect
+lib/readline/rlmbutil.h
+       - wchar_t: make sure this is defined as int if multibyte characters
+         aren't supported
 
-builtins/evalstring.c
-       - parse_prologue: save and restore line_number_for_err_trap along
-         with line_number
-       - restore_lastcom: new function, unwind-protect to restore
-         the_printed_command_except_trap
-       - parse_prologue: use restore_lastcom to save and restore the value
-         of the_printed_command_except_trap around calls to parse_and_execute
-         (eval/source/.)
+lib/readline/text.c
+       - _rl_change_case: don't force use of ascii toupper and tolower if
+         isascii returns true; it's not defined to work on characters outside
+         the 0..255 (really 0..127) range.  Bug reported by
+         Eduardo Bustamante <dualbus@gmail.com>
 
-                                  6/15
+                                  5/14
                                   ----
-lib/readline/complete.c
-       - complete_fncmp: change filename comparison code to understand
-         multibyte characters, even when doing case-sensitive or case-mapping
-         comparisons.  Fixes problem reported by Nikolay Shirokovskiy
-         <nshyrokovskiy@gmail.com>
+lib/readline/text.c
+       - rl_change_case: handle case where the old and new characters (after
+         the case change) are not the same number of bytes. Pointed out in
+         http://lists.gnu.org/archive/html/bug-bash/2015-01/msg00091.html
 
-                                  6/20
-                                  ----
-builtins/mapfile.def
-       - mapfile: move the line count increment and check for having read
-         the specified number of lines to the end of the loop to avoid
-         reading an additional line with zgetline.  Fixes bug reported by
-         Dan Douglas <ormaaj@gmail.com>
+lib/readline/display.c
+       - expand_prompt: use `ret' as first parameter to _rl_find_prev_mbchar
+         since that needs the base of the array. Bug from fuzzing reported by
+         Eduardo Bustamante <dualbus@gmail.com>
 
-                                  6/21
+                                  5/15
                                   ----
-
 execute_cmd.c
-       - execute_pipeline: make sure `lastpipe_flag' is initialized to 0 on
-         all systems, since it's tested later in the function.  Fixes bug
-         reported by John E. Malmberg <wb8tyw@qsl.net>
+       - execute_simple_command, execute_arith_command, execute_cond_command,
+         execute_arith_for_command: adjust the line number when executing a
+         function interactively so that the first command in the function is
+         line 1, not line 0, as Posix requires.  Reported by Robert Elz
+         <kre@bmunnari.OZ.AU>
+       - execute_simple_command, execute_arith_command, execute_cond_command,
+         execute_arith_for_command: ony adjust the line number when executing
+         a function interactively if we are not sourcing a file
+         (sourcelevel == 0), so this is consistent everywhere we adjust the
+         line number
 
-                                  6/22
+                                  5/16
                                   ----
-mailcheck.c
-       - file_mod_date_changed: return 0 right away if mailstat() does not
-         return success.  Fixes bug with using uninitialized values reported
-         by szymon.kalasz@uj.edu.pl
-
-builtins/set.def
-       - the `monitor' option is not available when the shell is compiled
-         without job control, since the underlying `m' flag is not available
-
-nojobs.c
-       - job_control: now declared as int variable, initialized to 0, never
-         modified
+bashline.c
+       - bash_directory_completion_hook: when calling split_at_delims to see
+         whether a ${ or $( is closed, use the right value for `start' relative
+         to the substring beginning at `$'.  Bug from fuzzing reported by
+         Eduardo Bustamante <dualbus@gmail.com>
 
-jobs.h
-       - job_control: extern declaration no longer dependent on JOB_CONTROL
+expr.c
+       - expassign: if the call to expcond generates a syntax error in a
+         context when the shell won't longjmp (like when evaluating $PS1),
+         it will end up NULL and we need to catch it before calling strlen.
+         Bug from fuzzing reported by Eduardo Bustamante <dualbus@gmail.com>
 
-execute_cmd.c
-       - execute_pipeline: made necessary changes so `lastpipe' shell option
-         is now available in all shells, even those compiled without
-         JOB_CONTROL defined
+examples/bash-completion/
+       - new place to include a current or recent version of the
+         bash-completion package
 
-                                  6/23
+                                  5/19
                                   ----
-lib/glob/glob.c
-       - glob_filename: check for interrupts before returning if glob_vector
-         returns NULL or an error.  Bug reported by Serge van den Boom
-         <svdb@stack.nl>, fix from Andreas Schwab <schwab@linux-m68k.org>
-       - call run_pending_traps after each call to QUIT or test of
-         interrupt_state, like we do in mainline shell code
-       - glob_vector: don't call QUIT; in `if (lose)' code block; just free
-         memory, return NULL, and let callers deal with interrupt_state or
-         other signals and traps
+lib/readline/display.c
+       - CHECK_INV_LBREAKS: new versions for multibyte and single-byte chars,
+         so the multibyte version can check and increase the size of
+         line_state_invisible->wbsize and line_state_invisible->wrapped_line,
+         callers who call CHECK_INV_LBREAKS must update
+         wrapped_line[newlines] when in HANDLE_MULTIBYTE mode. Fuzzing bug
+         reported by Eduardo Bustamante <dualbus@gmail.com>
 
-                                  6/25
+                                  5/24
                                   ----
-lib/readline/input.c
-       - rl_read_key: restructure the loop that calls the event hook a little,
-         so that the hook is called only after rl_gather_tyi returns no input,
-         and any pending input is returned first.  This results in better
-         efficiency for processing pending input without calling the hook
-         on every input character as bash-4.1 did.  From a report from
-         Max Horn <max@quendi.de>
+lib/readline/search.c
+       - _rl_nsearch_callback,noninc_search: handle _rl_search_getchar
+         returning -1 (EOF or read error) by aborting the search.
+         Fuzzing bug reported by Eduardo Bustamante <dualbus@gmail.com>
 
-                                  6/26
+                                  5/25
                                   ----
-trap.c
-       - signal_is_pending: return TRUE if SIG argument has been received and
-         a trap is waiting to execute
-
-trap.h
-       - signal_is_pending: extern declaration
+variables.c
+       - localvar_inherit: new variable, controlled by shopt localvar_inherit
+         option
+       - make_local_variable: if localvar_inherit is set, the new local
+         variable inherits a previous scope's variable's value, attributes
+         (except nameref), and dynamic variable information. If a local
+         variable inherits a value, the local is not invisible
 
-lib/glob/glob.c
-       - glob_vector: check for pending SIGINT trap each time through the loop,
-         just like we check for interrupt_state or terminating_signal, and
-         set `lose = 1' so we clean up after ourselves and interrupt the
-         operation before running the trap.  This may require a change later,
-         maybe call run_pending_traps and do that if run_pending_traps returns?
+builtins/shopt.def
+       - localvar_inherit: new option
 
-variables.c
-       - sv_histtimefmt: set history_comment_character to default (`#') if
-         it's 0 when we're turning on history timestamps.  The history code
-         uses the history comment character to prefix timestamps, and
-         leaving it at 0 effectively removes them from the history.  From a
-         report to help-bash by Dennis Williamson <dennistwilliamson@gmail.com>
+doc/{bash.1,bashref.texi}
+       - localvar_inherit: document new shopt option
 
-                                  6/27
+                                  5/29
                                   ----
-lib/readline/signals.c
-       - rl_maybe_restore_sighandler: new function, sets handler for SIG to
-         HANDLER->sa_handler only if it's not SIG_IGN.  Needs to be called
-         on same signals set using rl_maybe_set_sighandler, which does not
-         override an existing SIG_IGN handler (SIGALRM is ok since it does
-         the check inline; doesn't mess with SIGWINCH)
+lib/readline/readline.c
+       - _rl_subseq_result: only return -1 and back up the chain if we are
+         dealing with a result (r) that's already < 0 and we are at the end
+         of a multi-key sequence. Otherwise, a failing readline command (e.g.,
+         delete-char at the end of a line) could cause this code to be
+         executed.  Report from Nuzhna Pomoshch <nuzhna_pomoshch@yahoo.com>
 
-                                  6/30
-                                  ----
-variables.h
-       - additional defines for the new `nameref' variable attribute
-         (att_nameref): nameref_p, nameref_cell, var_setref
+lib/readline/histfile.c
+       - read_history_range: if the file isn't a regular file, return an
+         error. Bug report from Eduardo Bustamante <dualbus@gmail.com>,
+         relaying from IRC
 
-variables.c
-       - find_variable_nameref: resolve SHELL_VAR V through chain of namerefs
-       - find_variable_last_nameref: resolve variable NAME until last in a
-         chain of possibly more than one nameref starting at shell_variables
-       - find_global_variable_last_nameref: resolve variable NAME until last
-         in a chain of possibly more than one nameref starting at
-         global_variables
-       - find_nameref_at_context: resolve SHELL_VAR V through chain of namerefs        
-         in a specific variable context (usually a local variable hash table)
-       - find_variable_nameref_context: resolve SHELL_VAR V through chain of
-         namerefs following a chain of varible contexts
-       - find_variable_last_nameref_context: resolve SHELL_VAR V as in
-         find_variable_last_context, but return the final nameref instead of
-         what the final nameref resolves to
-       - find_variable_tempenv, find_variable_notempenv, find_global_variable,
-         find_shell_variable, find_variable: modified to follow namerefs
-       - find_global_variable_noref: look up a global variable without following
-         any namerefs
-       - find_variable_noref: look up a shell variable without following any
-         namerefs
-       - bind_variable_internal: modify to follow a chain of namerefs in the
-         global variables table; change to handle assignments to a nameref by
-         following nameref chain
-       - bind_variable: modify to follow chain of namerefs when binding to a
-         local variable
-       - unbind_variable: changes to unset nameref variables (unsets both
-         nameref and variable it resolves to)
+                                  5/30
+                                  ----
+variables.c
+       - set_pwd: if in Posix mode, and PWD appears in initial environment as
+         an absolute pathname to the current directory, set PWD to the result
+         of canonicalizing the environment value, or to the physical path if
+         canonicalization fails. From a suggestion by Eduardo Bustamante
+         <dualbus@gmail.com>
 
-subst.c
-       - parameter_brace_expand_word: change to handle expanding nameref whose
-         value is x[n]
-       - parameter_brace_expand_indir: change to expand in ksh93-compatible
-         way if variable to be indirected is nameref and a simple (non-array)
-         expansion
-       - param_expand: change to expand $foo where foo is a nameref whose value
-         is x[n]
+                                  5/31
+                                  ----
+builtins/read.def
+       - read_builtin: if -n or -N option is supplied with a 0 argument,
+         don't attempt to read any characters; bail out right away. Reported
+         by Eduardo Bustamante <dualbus@gmail.com>, relaying from IRC
 
-execute_cmd.c
-       - execute_for_command: changes to implement ksh93 semantics when index
-         variable is a nameref
+                                   6/3
+                                   ---
+config.h.in
+       - HAVE_STRUCT_STAT_ST_ATIM_TV_NSEC: add define, used by stat-time.h
+         to construct a timespec from struct stat. Report and fix from
+         Siteshwar Vashisht <svashisht@redhat.com>
 
-builtins/setattr.def
-       - show_var_attributes: change to add `n' to flags list if att_nameref
-         is set
+variables.h
+       - att_regenerate: new internal variable attribute: if set, regenerate
+         dynamic variable's value when it's exported and we are creating the
+         export environment
 
-builtins/set.def
-       - unset_builtin: changes to error messages to follow nameref variables
+variables.c
+       - init_dynamic_variables: LINENO, EPOCHSECONDS, EPOCHREALTIME: set
+         internal regenerate attribute for these dynamic variables
+       - make_env_array_from_var_list: if a dynamic variable has the
+         regenerate attribute set, call the dynamic value function to generate
+         an updated value before placing it in the environment.  From a report
+         about exporting LINENO from Robert Elz <kre@bmunnari.OZ.AU>
 
-builtins/declare.def
-       - document new -n option
-       - declare_internal: new `-n' and `+n' options
-       - declare_internal: handle declare -n var[=value] and
-         declare +n var[=value] for existing and non-existant variables.
-         Enforce restriction that nameref variables cannot be arrays.
-         Implement semi-peculiar ksh93 semantics for typeset +n ref=value
-
-                                   7/5
+                                   6/4
                                    ---
-variables.c
-       - unbind_variable: unset whatever a nameref resolves to, leaving the
-         nameref variable itself alone
-       - unbind_nameref: new function, unsets a nameref variable, not the
-         variable it references
+lib/glob/sm_loop.c
+       - BRACKMATCH: at the matched: label, make sure we get the bracket
+         character we're looking for (char class, collating symbol. etc.)
+         before we decrement the count of braces we're looking for. Eventually
+         we could do something about badly-formed bracket expressions
 
-variables.h
-       - unbind_nameref: extern declaration
+                                   6/7
+                                   ---
+lib/readline/histlib.h
+       - strchr: only declare if  __STDC__ is not defined, since we already
+         include <string.h>.  Report from Chi-Hsuan Yen <yan12125@gmail.com>
 
-builtins/set.def
-       - unset_builtin: modify to add -n option, which calls unbind_nameref
-         leaving unbind_variable for the usual case.  This required slight
-         changes and additions to the test suite
+                                   6/9
+                                   ---
+lib/readline/display.c
+       - update_line: when wrapping lines with multibyte chars at the end of
+         the new line being wrapped, make sure we copy the NULL byte in old
+         when moving the contents of old around. Fuzzing bug reported by
+         Eduardo Bustamante <dualbus@gmail.com>
 
-doc/{bash.1,bashref.texi}
-       - document namerefs and typeset/declare/local/unset -n
+lib/readline/mbutil.c
+       - _rl_get_char_len: use MB_CUR_MAX in the call to mbrlen; there's no
+         need to look at the rest of the string when we're just interested in
+         the length of a single character
 
-                                  7/13
+                                  6/12
                                   ----
-lib/sh/casemod.c
-       - include shmbchar.h for is_basic and supporting pieces
-       - sh_casemod: use _to_wupper and _to_wlower to convert wide character
-         case instead of TOUPPER and TOLOWER.  Fixes bug reported by
-         Dennis Williamson <dennistwilliamson@gmail.com>, fix from
-         Andreas Schwab <schwab@linux-m68k.org>
-       - cval: short-circuit and return ascii value if is_basic tests true
-       - sh_casemod: short-circuit and use non-multibyte case modification
-         and toggling code if is_basic tests true
+jobs.c
+       - wait_for: when waiting for the next child to exit (ANY_PID), make
+         sure to restore the old SIGINT handler before returning.  Fixes
+         https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=864649
 
-lib/readline/signals.c
-       - _rl_{block,release}_sigint: remove the code that actually blocks and
-         releases the signals, since we defer signal handling until calls to
-         RL_CHECK_SIGNALS()
+                                  6/14
+                                  ----
+lib/readline/display.c
+       - expand_prompt: make sure `ret' is NULL-terminated before calling
+         _rl_prev_mbchar_internal, since that calls strlen, which requires
+         the passed string to be NULL-terminated. Another fuzzing bug.
 
-lib/readline/{callback,readline,util}.c
-       - if HAVE_POSIX_SIGSETJMP is defined, use sigsetjmp/siglongjmp without
-         saving and restoring the signal mask instead of setjmp/longjmp
+                                  6/15
+                                  ----
+lib/readline/isearch.c
+       - _rl_isearch_fini: use rl_replace_line instead of strcpy so rl_end
+         gets set right
+       - _rl_isearch_fini: after restoring rl_point, call _rl_fix_point so
+         we don't set rl_point > rl_end. Fixes a fuzzing bug
 
-lib/readline/rltty.c
-       - prepare_terminal_settings: don't mess with IXOFF setting if
-         USE_XON_XOFF defined
+lib/readline/mbutil.c
+       - _rl_find_next_mbchar_internal: if _rl_adjust_point returns < 0,
+         just punt, treat the value as a byte, and advance point by 1
 
-doc/{bash.1,bashref.texi}
-       - add some text to the description of set -e clarifying its effect
-         on shell functions and shell function execution.  Suggested by
-         Rainer Blome <rainer.blome@gmx.de>
+lib/readline/util.c
+       - rl_tilde_expand: rearrange code in the whitespace loop so that
+         `start' gets tested first and we don't try to dereference
+         rl_line_buffer[-1]. Another fuzzing bug from dualbus@gmail.com
 
 bashline.c
-       - edit_and_execute_command: increment current_command_line_count before
-         adding partial line to command history (for command-oriented-history
-         because of rl_newline at beginning of function), then reset it to 0
-         before adding the dummy history entry to make sure the dummy entry
-         doesn't get added to previous incomplete command.  Partial fix for
-         problem reported by Peng Yu <pengyu.ut@gmail.com>
-
-                                  7/24
-                                  ----
-configure.in
-       - interix: define RECYCLES_PIDS.  Based on a report from Michael
-         Haubenwallner <michael.haubenwallner@salomon.at>
+       - bash_dequote_filename: make sure that pointers that are used as
+         indices into sh_syntaxtab are cast to unsigned char first, to
+         avoid problems with signed chars > 128. Fixes a fuzzing bug.
 
-                                  7/26
-                                  ----
-jobs.c
-       - make_child: call bgp_delete on the newly-created pid unconditionally.
-         Some systems reuse pids before cycling through an entire set of
-         CHILD_MAX/_SC_CHILD_MAX unique pids.  This is no longer dependent
-         on RECYCLES_PIDS.  Based on a report from Michael Haubenwallner
-         <michael.haubenwallner@salomon.at>
+lib/readline/kill.c
+       - _rl_copy_to_kill_ring: when reallocating the kill ring, make sure to
+         allocate one more than the max number of kills so the loop that
+         copies the kill ring entries down runs right (and to mirror the
+         initial allocation). Fixes a fuzzing bug.
 
-support/shobj-conf
-       - Mac OS X: drop MACOSX_DEPLOYMENT_TARGET=10.3 from the LDFLAGS. We
-         can finally kill Panther
+lib/readline/isearch.c
+       - _rl_isearch_dispatch: make sure that cxt->sline_index never goes < 0
+         even when searching a line in reverse. Fixes a fuzzing bug
 
-                                  7/28
+                                  6/16
                                   ----
-subst.c
-       - command_substitute: make sure last_made_pid gets reset if make_child
-         fails
-
-execute_cmd.c
-       - execute_command_internal: case cm_simple: decide whether or not to
-         wait_for a child if already_making_children is non-zero, indicates
-         that there is an unwaited-for child.  More of fix for bug report
-         from Michael Haubenwallner <michael.haubenwallner@salomon.at>
+parse.y
+       - xparse_dolparen: short-circuit immediately if passed a empty string
 
-jobs.c
-       - make_child: call delete_old_job (new_pid) unconditionally, don't
-         bother to check whether or not pid wrap occurred.  Rest of fix for
-         bug report from Michael Haubenwallner
-         <michael.haubenwallner@salomon.at>
+lib/readline/display.c
+       - update_line: when wrapping multibyte characters, make sure we deal
+         with WCWIDTH returning -1. Fixes a fuzzing bug
 
-                                  7/29
+                                  6/17
                                   ----
-shell.c
-       - subshell_exit: new function, exits the shell (via call to sh_exit())
-         after calling any defined exit trap
-
-externs.h
-       - subshell_exit: new extern declaration
-
 execute_cmd.c
-       - execute_command_internal: make sure to call subshell_exit for
-         {} group commands executed asynchronously (&).  Part of fix for
-         EXIT trap bug reported by Maarten Billemont <lhunath@lyndir.com>
-
-sig.c
-       - reset_terminating_signals: make sure to set termsigs_initialized back
-         to 0, so a subsequent call to initialize_terminating_signals works
-         right.  Rest of fix for bug reported by Maarten Billemont
-         <lhunath@lyndir.com>
-
-{execute_cmd,general,jobs,mailcheck,mksyntax,test}.c
-builtins/{cd,fc,pushd,ulimit}.def
-lib/malloc/getpagesize.h
-lib/sh/{clktck,fpurge,inet_aton,mailstat,oslib,pathcanon,pathphys,spell,strerror}.c
-       - make inclusion of <sys/param.h> dependent on HAVE_SYS_PARAM_H
-         consistently
+       - execute_coproc: make sure `invert' is set before trying to use it
+         when returning failure on invalid coproc name.  Report and fix from
+         Eduardo Bustamante <dualbus@gmail.com>
+       - execute_command_internal: make sure execute_coproc sets
+         last_command_exit_value if it returns failure, so an invalid name
+         can set $? = 1.  Report and fix from Eduardo Bustamante
+         <dualbus@gmail.com>
 
-                                   8/6
-                                   ---
-lib/readline/histexpand.c
-       - history_expand_internal: now takes an additional argument saying
-         whether the history expansion occurs within a quoted string, set to
-         the open quote character
-       - history_expand_internal: use new argument instead of checking prev
-         char and initializing quoted_search_delimiter, pass qc directly to
-         get_history_event, where it allows a matching quote to terminate a
-         string defining an event
-       - history_expand: change single-quote handling code so that if
-         history_quotes_inhibit_expansion is 0, single quotes are treated
-         like double quotes
-       - history_expand: change call to history_expand_internal to pass new
-         argument of `"' if double-quoted string, `'' if single-quoted string;
-         this lets history_expand decide what is a quoted string and what
-         is not
-
-                                   8/7
-                                   ---
-configure.in
-       - AC_CANONICAL_BUILD: invoke for later use
+lib/readline/display.c
+       - update_line: make sure all references to `wrapped_line' are wrapped
+         with #ifdef HANDLE_MULTIBYTE.  Report and fix from Eduardo Bustamante
+         <dualbus@gmail.com>
 
-lib/readline/macro.c
-       - _rl_prev_macro_key: new function, inverse of _rl_next_macro_key:
-         backs up the index into the current macro by 1
+lib/readline/vi_mode.c
+       - _rl_vi_change_char: don't use rl_point++ when you mean to move
+         forward a character; use _rl_vi_append_forward to account for
+         multibyte characters and take vi end of line handling into account
+       - _rl_vi_last_replacement: now an array of chars whether we are
+         using multibyte chars or not. If we're not, the character we read
+         to use as the replacement is saved as the first element of the array
+       - rl_vi_change_char,_rl_vi_callback_change_char: changes to deal with
+         _rl_vi_last_replacement being an array.  Fixes bug reported by
+         Eduardo Bustamante <dualbus@gmail.com>
 
-lib/readline/rlprivate.h
-       - _rl_prev_macro_key: extern declaration
+lib/readline/mbutil.c
+       - _rl_get_char_len: look at at most MB_CUR_MAX characters, but maybe
+         fewer if the length of the string is less
 
+builtins/bind.def
+       - unbind_keyseq: new function for the -r option; checks whether the
+         key sequence is actually bound before trying to bind it to NULL.
+         Partial fix for https://savannah.gnu.org/support/?109329
 
-lib/readline/readline.c
-       - _rl_dispatch_subseq, _rl_subseq_result: don't call _rl_unget_char
-         if we're currently reading from a macro; call _rl_prev_macro_key
-         instead.  Fixes bug reported by Clark Wang <clark.wang@oracle.com>
+parse.y
+       - augment `error yacc_EOF' production to call YYABORT in non-interactive
+         shells or calls to parse_and_execute (eval, command substitution,
+         etc.) Fixes bug reported by Martijn Dekker <martijn@inlv.org>
 
-                                  8/13
+                                  6/19
                                   ----
-builtins/evalstring.c
-       - evalstring(): new function, wrapper around parse_and_execute.
-         make sure we handle cases where parse_and_execute can call `return'
-         and short-circuit without cleaning up properly.  We call
-         parse_and_execute_cleanup() then jump to the previous-saved return
-         location
+bashline.c
+       - edit_and_execute_command: don't add rl_line_buffer to the history
+         list if it's empty; consistent with how other code treats an empty
+         line
 
-builtins/common.h
-       - extern declaration for evalstring()
+execute_cmd.c
+       - execute_builtin: make sure to preserve the temporary env across the
+         execution of the `read' builtin or `fc' builtin if HISTORY is
+         defined, in case `read -e' calls edit-and-execute-command.  Should
+         have no side effects. Reported by Eduardo Bustamante
+         <dualbus@gmail.com>
 
-builtins/eval.def
-       - eval_builtin: make sure we handle `eval " ... return"' in contexts
-         where `return' is valid by calling evalstring().  Fixes bug with
-         `eval return' in sourced files reported by Clark Wang
-         <dearvoid@gmail.com>
+general.c
+       - line_isblank: new function: returns true if passed string is composed
+         entirely of blanks
 
-trap.c
-       - run_pending_traps: call evalstring instead of parse_and_execute.
-         XXX - still needs to handle saving and restoring token state in the
-         presence of `return'; could use unwind_protects for that
+general.h
+       - line_isblank: new extern declaration
 
-builtins/mapfile.def
-       - run_callback: call evalstring instead of parse_and_execute
+parse.y
+       - history_delimiting_chars: return "" for a blank line, since there's
+         nothing to delimit with `;'
 
-                                  8/15
+                                  6/21
                                   ----
-bashline.c
-       - bash_filename_stat_hook: make sure we don't free local_dirname
-         before using it to canonicalize any expanded filename.  Make sure
-         it always points to *dirname and only free it if we're replacing
-         it.
+jobs.c
+       - wait_for: make sure to call restore_sigint_handler before returning
+         if we return out of the loop due to no children. Report from
+         Eduardo Bustamante <dualbus@gmail.com>
 
-lib/readline/complete.c
-       - append_to_match: make sure we call rl_filename_stat_hook with
-         newly-allocated memory to avoid problems with freeing it twice
+subst.c
+       - expand_word_internal: if split_on_spaces is set, and the word is
+         unquoted, and IFS is null, split the results of the previous steps
+         on $' \t\n' instead of just ' '. This relies on the previous steps
+         quoting the portions of the word that should not be split.  Fixes
+         bug reported by Kevin Brodsky <corax26@gmail.com>
 
-                                  8/17
-                                  ----
-variables.c,config-top.h
-       - if ARRAY_EXPORT is defined to 1 when variables.c is compiled, the
-         code that allows indexed arrays to be exported is enabled and
-         included
+expr.c
+       - evalexp: after running expr_unwind, make sure we reset expr_depth
+         to 0 for the next call
+       - expr_streval: if after a call to get_array_value (which can call
+         the expression evaluator recursively) we discover that expr_depth
+         is less than it was before we called it, we assume there has been
+         some kind of error and an expr_unwind, so we treat it as an
+         error and either longjmp back to the expression top level or return
+         0 immediately. Fixes bug reported by Eduardo Bustamante
+         <dualbus@gmail.com>
 
-                                  8/19
+                                  6/23
                                   ----
-shell.c
-       - call start_debugger from main() only if dollar_vars[1] != 0 (close
-         enough to a non-interactive shell, since we can be interactive with
-         -i while running a shell script).  Fixes oddity reported by
-         Techlive Zheng <techlivezheng@gmail.com>
+doc/{bash.1,bashref.texi}
+       - add text noting that $* and ${array[*]} (unquoted) can also expand
+         to multiple words
 
-                                  8/20
+                                  6/29
                                   ----
-arrayfunc.c
-       - quote_array_assignment_chars: don't bother quoting if the word has
-         not been marked as an assignment (W_ASSIGNMENT)
-       - quote_array_assignment_chars: turn on W_NOGLOB in the word flags
-         so assignment statements don't undergo globbing.  Partial fix for
-         problems reported by Dan Douglas <ormaaj@gmail.com>
+general.[ch]
+       - default_columns: new function, returns the value of COLUMNS, or
+         refreshes it if check_window_size is set and COLUMNS is unset. By
+         default, it returns 80
 
-                                  8/21
-                                  ----
-command.h
-       - W_NOBRACE: new word flag that means to inhibit brace expansion
+execute_cmd.c
+       - select_query: use default_columns() instead of fetching value of
+         COLUMNS directly
 
-subst.c
-       - brace_expand_word_list: suppress brace expansion for words with
-         W_NOBRACE flag
+builtins/help.def
+       - show_builtin_command_help: use default_columns() instead of fetching
+         value of COLUMNS directly
 
-                                  8/22
+                                  6/30
                                   ----
 builtins/read.def
-       - read_builtin: don't call dequote_string on what we've read, even if
-         we saw an escape character, unless (input_string && *input_string).
-         We may have escaped an IFS whitespace character.  Fixes seg fault
-         reported by <armandsl@gmail.com>
+       - read_builtin: call QUIT during the read loop, just in case we get a
+         signal we should act on that didn't cause read to be interrupted.
+         Fixes https://bugzilla.redhat.com/show_bug.cgi?id=1466737
+       - read_builtin: if -n or -N is supplied with a 0 argument, try a zero-
+         length read to detect errors and return failure if that read returns
+         a value < 0. Suggested by dualbus@gmail.com
 
-execute_cmd.c
-       - execute_command_internal: set the_printed_command_except trap when
-         about to execute a ( ... ) user subshell.  For now, set it only if
-         ERR is trapped; can relax that later.  Fixes bug reported by
-         Mike Frysinger <vapier@gentoo.org>
+                                   7/4
+                                   ---
+bashhist.c
+       - maybe_add_history: keep track of whether the current line is a shell
+         comment, even if we're not adding it because it's in a multi-line
+         command, so we use appropriate delimiters between it and any
+         subsequent lines. Fixes bug reported by Grisha Levit
+         <grishalevit@gmail.com> back on 2/28/2017
 
-                                  8/23
-                                  ----
-jobs.c
-       - remove references to first_pid and pid_wrap, since we're not using
-         them for anything anymore
+bashline.c
+       - operate_and_get_next: if given an explicit argument, use that to
+         choose which line in the history to use.
 
-                                  8/24
-                                  ----
-subst.c
-       - changes for W_NOBRACE everywhere appropriate: so it can be displayed
-         for debugging, and passed out of expand_word_internal
-
-doc/{bash.1,bashref.texi}
-       - small changes to make it clearer that the = and == operators are
-         equivalent, and will cause pattern matching when used with [[.
-         From a question from Michal Soltys <soltys@ziu.info>
-
-doc/bashref.texi
-       - some small formatting changes from Karl Berry <karl@freefriends.org>
-
-                                  8/27
-                                  ----
-lib/readline/doc/{history,rlman,rluserman}.texi
-       - some small formatting changes from Karl Berry <karl@freefriends.org>
-
-arrayfunc.c
-       - assign_array_element_internal, assign_compound_array_list,
-         unbind_array_element, array_value_internal: changes to make
-         assignment statements to negative indices (a[-1]=2) and unsetting
-         array elements using negative indices (unset 'a[-1]') work.
-         From suggestions by Dennis Williamson <dennistwilliamson@gmail.com>
-         and Chris F. A. Johnson <chris@cfajohnson.com>
-
-subst.c
-       - array_length_reference: changes to make length references to array
-         elements using negative indices (${#a[-1]}) work
-
-                                  8/28
-                                  ----
-doc/{bash.1,bashref.texi}
-       - document new treatment of negative indices to indexed arrays when
-         assigning, referencing, calculating length, and unsetting
-
-                                  8/29
-                                  ----
-shell.c
-       - show_shell_usage: add -l to list of shell invocation options (short
-         for --login).  From Red Hat bug 852469
-
-configure.ac
-       - renamed from configure.in, as latest autoconf versions want.  Patches
-         Stefano Lattarini <stefano.lattarini@gmail.com>
-
-MANIFEST,Makefile.in,doc/bashref.texi,support/mkconffiles
-       - configure.in -> configure.ac
-
-                                   9/1
-                                   ---
-
-parse.y
-       - read_token_word: allow words like {array[ind]} to be valid redirection
-         words for constructs like {x}<file
-
-redir.c
-       - redir_varassign: bind_var_to_int already handles array assignments,
-         so don't need to do anything more for things like {a[i]}<file
-       - redir_varvalue: changes to allow references to {a[i]} when
-         performing redirections using valid_array_reference and
-         get_array_value.  Adds functionality requested most recently by
-         <unknown@vmw-les.eng.vmware.com>
-
-lib/readline/display.c
-       - update_line: if the first difference between the old and new lines
-         is completely before any invisible characters in the prompt, we
-         should not adjust _rl_last_c_pos, since it's before any invisible
-         characters.  Fixed in two places
-       - prompt_modechar: return a character indicating the editing mode:
-         emacs (@), vi command (:), or vi insert (+)
-       - _rl_reset_prompt: new function, just calls rl_expand_prompt.  Will be
-         inlined, placeholder for more changes
-       - expand_prompt: if show-mode-in-prompt is enabled, add a character to
-         the front of the prompt indicating the editing mode, adjusting the
-         various variables as appropriate to keep track of the number of
-         visible characters and number of screen positions
-
-lib/readline/bind.c
-       - show-mode-in-prompt: new bindable boolean variable, shadowed by
-         _rl_show_mode_in_prompt variable
-       - hack_special_boolean_var: call _rl_reset_prompt when toggling or
-         setting show-mode-in-prompt
-
-lib/readline/readline.c
-       - readline_internal_setup: make sure the correct vi mode keymap is set
-         before expanding the prompt string for the first time
-
-lib/readline/misc.c
-       - rl_emacs_editing_mode: make sure to call _rl_reset_prompt if we're
-         showing the editing mode in the prompt
-
-lib/readline/rlprivate.h
-       - _rl_reset_prompt, _rl_show_mode_in_prompt: extern declarations
-
-lib/readline/vi_mode.c
-       - rl_vi_insertion_mode: call _rl_reset_prompt
-       - rl_vi_movement_mode: call _rl_reset_prompt.  Finishes changes for
-         showing mode in prompt string, originally requested by Miroslav
-         Koskar <mkoskar@gmail.com> and most recently by Jordan Michael
-         Ziegler <jziegler@bnl.gov>
+lib/readline/doc/rluser.texi,doc/bash.1
+       - operate-and-get-next: document new effect of explicit numeric arg
 
-doc/bash.1,lib/readline/doc/{readline.3,rluser.texi}
-       - document new show-mode-in-prompt variable, off by default
+lib/readline/complete.c
+       - fnprint: make sure print_len is initialized before using it on
+         systems without multibyte character support.  Report and fix from
+         Juan Manuel Guerrero <juan.guerrero@gmx.de>
 
-                                   9/3
+                                   7/6
                                    ---
+builtins/printf.def
+       - PRETURN,printf_builtin: check variable returned by bind_printf_variable,
+         return failure if that indicates we can't perform an assignment
+         because the variable is marked readonly or noassign. Fixes bug
+         reported by Arnaud Gaillard <arnaud.mgaillard@gmail.com>
 
-jobs.c
-       - set_childmax: new function, external mechanism for other parts of
-         the shell to set js.c_childmax, the number of saved exited child
-         statuses to remember
-jobs.h
-       - set_childmax: extern declaration
-
-variables.c
-       - CHILD_MAX: new special variable, with sv_childmax function to
-         run when it changes.  Setting CHILD_MAX to a value greater than
-         zero but less than some maximum (currently 8192) sets the number of
-         exited child statuses to remember.  set_childmax (jobs.c) ensures
-         that the number does not drop below the posix-mandated minimum
-         (CHILD_MAX)
-
-doc/{bash.1,bashref.texi}
-       - CHILD_MAX: document new meaning and action when variable is set
-
-                                   9/5
+                                   7/7
                                    ---
-redir.c
-       - redir_varassign: call stupidly_hack_special_variables after
-         assigning fd number to specified variable, so we can use constructs
-         like {BASH_XTRACEFD}>foo.  Suggested by Pierre Gaston
-         <pierre.gaston@gmail.com>
+lib/readline/text.c
+       - rl_quoted_insert: new feature: a negative argument means to insert
+         the next -COUNT characters using quoted-insert. Original feature
+         from Jason Hood <jadoxa@yahoo.com.au>. Still needs work on
+         redisplay
+       - _rl_insert_next_callback: implement support for negative arguments
+         similar to rl_quoted_insert: we just insert one at a time and keep
+         increasing the count until it hits 0
 
-                                   9/8
-                                   ---
-expr.c
-       - readtok: invalidate previous contents of `curlval' before freeing
-         and reallocating tokstr (which, chances are, will get the same
-         pointer as before and render curlval inconsistent).  Fixes other
-         bug reported by Dan Douglas <ormaaj@gmail.com>
+lib/readline/misc.c
+       - _rl_arg_callback: if the return value from _rl_arg_dispatch indicates
+         we should keep reading a numeric argument, update the message with
+         the new arg value
 
-                                   9/9
+                                   7/8
                                    ---
-lib/readline/complete.c
-       - rl_username_completion_function: protect call to setpwent() with
-         #ifdef (HAVE_GETPWENT)/#endif.  Fixes bug reported by
-         Gerd Hofmann <gerd.hofmann.nbg@googlemail.com>
-
-lib/readline/display.c
-       - rl_message: second and subsequent calls to rl_message can result in
-         local_prompt being overwritten with new values (e.g., from the
-         successive calls displaying the incremental search string).  Need
-         to free before overwriting if it's not the same as the value saved
-         in saved_local_prompt.  Fixes memory leak reported by
-         Wouter Vermaelen <vermaelen.wouter@gmail.com>
-
-lib/readline/{terminal.c,rlprivate.h}
-       - move CUSTOM_REDISPLAY_FUNC and CUSTOM_INPUT_FUNC defines from
-         terminal.c to rlprivate.h so other files can use them
-
-expr.c
-       - expr_streval: if noeval is non-zero, just return 0 right away,
-         short-circuiting evaluation completely.  readtok will leave curtok
-         set correctly without re-entering the evaluator at all.  Rest of
-         fix for bug reported by Dan Douglas <ormaaj@gmail.com>
-
-                                  9/11
-                                  ----
-
-parse.y
-       - parse_comsub: make sure the `reserved word ok in this context' flag
-         is preserved after we read `do' followed by whitespace.  Fixes bug
-         reported by Benoit Vaugon <benoit.vaugon@gmail.com>
+lib/readline/signals.c
+       - _rl_handle_signal: make sure all uses of any of the job control
+         signals are protected by a check for SIGTSTP being defined.  Report
+         from Juan Manuel Guerrero <juan.guerrero@gmx.de>
 
-                                  9/13
+                                  7/11
                                   ----
-configure.ac,config.h.in
-       - enable-direxpand-default: new configure option, turns the `direxpand'
-         shell option on by default
-
-bashline.c
-       - dircomplete_expand, dircomplete_expand_relpath: initialize to 1 if
-         DIRCOMPLETE_EXPAND_DEFAULT is defined and non-zero
-
-doc/bashref.texi
-       - enable-direxpand-default: document new configure option
+lib/readline/vi_mode.c
+       - rl_vi_replace: when making the new keymap for vi replacement mode,
+         make sure that ANYOTHERKEY is set correctly, otherwise some input
+         will cause _rl_dispatch to return -2 to the top level.  Fixes fuzzing
+         bug reported by Ben Wong <benjamin.a.wong@gmail.com>
 
-                                  9/14
+                                  7/19
                                   ----
-shell.c
-       - --protected: make option valid only when wordexp is compiled into
-         the shell.  Fix from Roman Rakus <rrakus@redhat.com>
-
-configure.ac
-       - HP NonStop (*-nsk*): compile --without-bash-malloc. Change from
-         Joachim Schmitz <jojo@schmitz-digital.de>
+builtins/read.def
+       - struct ttsave: make the attrs member a struct, not a pointer, to force
+         a structure copy that will survive a longjmp to another context.
+         Leaving it as a pointer to a local struct is not portable
 
-                                  9/16
+                                  9/10
                                   ----
-subst.c,execute_cmd.c,lib/glob/sm_loop.c,lib/sh/shquote.c
-       - minor code cleanups from Joachim Schmitz <jojo@schmitz-digital.de>
-
-lib/readline/colors.h
-       - workaround for HP NonStop compiler issue with <stdbool.h> from
-         Joachim Schmitz <jojo@schmitz-digital.de>
+execute_cmd.c
+       - execute_builtin: make sure that we set up the unwind-protect for
+         pop_scope (temporary_env is non-zero) so that the temporary env
+         is propagated to the current environment only for special builtins
+         (source/eval/unset) not run by the command builtin
+         (flags & CMD_COMMAND_BUILTIN == 0).  Fixes bug reported by
+         Martijn Dekker <martijn@inlv.org>
 
                                   9/17
                                   ----
 builtins/printf.def
-       - printf_builtin: handle localtime returning NULL, as can happen when
-         encountering overflow.  Bug report and initial fix from
-         Eduardo A. Bustamante López <dualbus@gmail.com>
-
-doc/{bash.1,bashref.texi}
-       - emphasize that brace expansion using character ranges ({a..c}) acts
-         as if the C locale were in use.  Prompted by message from
-         Marcel Giannelia <info@skeena.net>
-
-                                  9/20
-                                  ----
-lib/sh/wcsnwidth.c
-       - wcsnwidth: new function, variant of wcwidth, returns the number of
-         wide characters from a string that will be displayed to not exceed
-         a specified max column position
+       - asciicode: don't use mblen to check whether or not a character is a
+         valid multibyte character; use mbtowc right away and then inspect
+         the return value.  Fixes bug reported by Stephane Chazelas
+         <stephane.chazelas@gmail.com>
 
-                                  9/21
+                                  9/27
                                   ----
-builtins/help.def
-       - show_builtin_command_help: break code that displays the short-doc
-         for each builtin in two columns into a new function: dispcolumn
-       - wdispcolumn: multibyte-char version of dispcolumn; uses wide
-         chars and printf "%ls" format.  Fixes problem reported by
-         Nguyá»n Thái Ngá»c Duy <pclouds@gmail.com>
+{jobs,subst}.h
+       - move declaration of last_command_subst_pid to subst.h, since it's
+         declared in subst.c and doesn't depend on job control. Reported by
+         Martijn Dekker <martijn@inlv.org>
 
-                                  9/22
-                                  ----
-execute_cmd.c
-       - execute_disk_command: before running the command-not-found hook,
-         call kill_current_pipeline() to make sure we don't add processes
-         to an existing pipeline or wait for processes erroneously
+builtins/read.def,variables.c
+       - fixed a couple of problems (READLINE, ARRAY_VARS) that prevented
+         the minimal config from building
 
-                                  9/23
+                                  10/1
                                   ----
-lib/readline/input.c
-       - rl_input_available_hook: new hook function, called from
-         _rl_input_available (or _rl_input_queued) to return whether or not
-         input is available wherever the input source is
-
-lib/readline/doc/rltech.texi
-       - rl_input_available_hook: document
+parse.y
+       - special_case_tokens: if we are returning DO in a case where the last
+         two tokens read are `FOR' and `WORD' make sure we decrement
+         expecting_in_token.  Fixes bug reported by Martijn Dekker
+         <martijn@inlv.org>
 
-                                  9/27
+                                  10/4
                                   ----
-lib/glob/sm_loop.c:
-       - GMATCH: after one or more `*', an instance of ?(x) can match zero or
-         1 times (unlike ?, which has to match one character).  The old code
-         failed if it didn't match at least once.  Fixes `a*?(x)' bug.
-       - GMATCH: if we hit the end of the search string, but not the end of
-         the pattern, and the rest of the pattern is something that can
-         match the NUL at the end of the search string, we should successfully
-         match.  Fixes `a*!(x)' bug reported by <hans1worst@gmail.com>
+subst.c
+       - expand_string_for_rhs: now takes an additional PFLAGS argument from
+         its caller (one so far); passes that through to call_expand_word_internal
+         as W_ASSIGNRHS. Fixes bug reported by Martijn Dekker
+         <martijn@inlv.org>
+       - expand_string_for_rhs: expanding b in ${a[:]=b} is now done as if
+         b were the rhs of an assignment statement. This means that splitting
+         isn't done, but tilde expansion is performed as if the statement
+         were `a=b'. Fixes splitting bug with $* reported by Martijn Dekker
+         <martijn@inlv.org>
 
-                                  10/2
-                                  ----
 command.h
-       - add c_lock member to coproc structure for future use to tell who is
-         manipulating it
+       - W_NOASSNTILDE: new word flag, means to not perform tilde expansion
+         following a `:' even if the word has the W_ASSIGNRHS flag enabled
 
-execute_cmd.c
-       - execute_coproc: block SIGCHLD while parent is forking coproc
-         process and adding pid to sh_coproc struct to avoid race condition
-         where child is reaped before the pid is assigned and the coproc is
-         never marked as having died.  Fixes race condition identified by
-         Davide Baldini <baldiniebaldini@gmail.com>
-       - add assignments to c_lock member of struct coproc in various
-         functions that manipulate it; was used to identify race condition
-       - coproc_pidchk: don't call coproc_dispose to avoid using malloc and
-         other functions in a signal handler context
-       - coproc_dispose: call BLOCK_SIGNAL/UNBLOCK_SIGNAL for SIGCHLD while
-         manipulating the sh_coproc struct
+subst.c
+       - expand_word_internal: if we see a `:' with the W_NOASSNTILDE flag
+         set, just add the character and inhibit any subsequent tilde
+         expansion. Currently not set anywhere, but it could be set in
+         expand_string_for_rhs to satisfy its peculiar semantics
 
                                   10/6
                                   ----
-lib/readline/complete.c
-       - rl_display_match_list: if printing completions horizontally, don't
-         bother with spacing calculations if limit == 1, which means we are
-         printing one completion per line no matter what.  Fixes bug
-         reported by David Kaasen <kaasen@nvg.ntnu.no>
+lib/sh/casemod.c
+       - sh_modcase: convert even single-byte wide characters to wide upper
+         or lowercase equivalents to accommodate locales where single-byte
+         characters have multibyte upper and lower case conversions. Bug
+         reported by Stephane Chazelas <stephane.chazelas@gmail.com>
 
                                   10/7
                                   ----
-builtins/declare.def
-       - declare_internal: add error checking for nameref attribute and
-         variable assignments: self-references, attempts to make an array
-         variable a nameref
-
-subst.c
-       - parameter_brace_expand: handle parameter_brace_expand_word returning
-         &expand_param_fatal or &expand_param_error and return the appropriate
-         error value
-       - parameter_brace_expand_word: if a nameref variable's value is not a
-         valid identifier, return an error
-       - param_expand: if a nameref variable's value is not a valid identifier,
-         return an error
-
-test.c
-       - unary_operator: add new -R variable, returns true if variable is set
-         and has the nameref attribute. From ksh93
-
-builtins/test.def
-       - add -R to description of conditional commands for help test
-
 doc/{bash.1,bashref.texi}
-       - document new -R unary conditional operator
-
-                                  10/13
-                                  -----
-trap.c
-       - check_signals_and_traps: new function, convenience function for the
-         rest of the shell to check for pending terminating and interrupt
-         signals, and to check for and process any pending traps
-       - any_signals_trapped: new function, returns non-zero if any signals
-         are trapped and -1 if not
+       - slight changes to the description of command_not_found_handle to
+         clarify that it's executed in a separate execution environment,
+         just like if the command was found. Reported by Martijn Dekker
+         <martijn@inlv.org>
 
-trap.h
-       - extern declaration for check_signals_and_traps
+                                  10/8
+                                  ----
+lib/readline/doc/{history.3,hstech.texi}
+       - history_get: clarify the range of valid values for the OFFSET
+         argument. From a report by Kevin Ryde <user42_kevin@yahoo.com.au>
 
-bashline.c
-       - bashline_reset: make sure we reset the event hook
-       - bash_event_hook: call check_signals_and_traps instead of just
-         checking for terminating signals so we can run pending traps and
-         react to interrupts, and reset the event hook when we're done
+                                  10/21
+                                  -----
+subst.c
+       - expand_string_for_rhs: set W_NOASSNTILDE if the operator is `='
+         for backwards compatibility with bash-4.4
 
+shell.c
+       - main: set positional parameters before running the startup files,
+         so the startup files can inspect $@.  Often-requested feature,
+         most recently from Stephane Chazelas <stephane.chazelas@gmail.com>
 
-                                  10/14
+                                  10/27
                                   -----
-trap.c
-       - trap_handler: if executing in a readline signal handler context,
-         call bashline_set_event_hook to install bash_event_hook to process
-         the signal (if bash cares about it)
+doc/{bash.1,bashref.texi}
+       - Arrays: add some clarifying language to make it clear that array
+         references that don't use the ${a[s]} syntax are subject to
+         globbing when passed as arguments to commands such as unset, and
+         should be quoted for safety. Change prompted by a report from
+         Eli Barzilay <eli@barzilay.org>
 
-sig.c
-       - sigint_sighandler: call bashline_set_event_hook to set the event
-         hook if we're executing in a readline signal handler context
+parse.y
+       - parse_comsub: make sure we don't run off the end of the `ret'
+         buffer when checking for the here doc delimiter.  Report from
+         Jakub Wilk <jwilk@jwilk.net>, the result of a fuzzing test. Pointer
+         to place for the fix from Eduardo Bustamante <dualbus@gmail.com>
 
-lib/readline/input.c
-       - rl_getc: call RL_CHECK_SIGNALS if read returns -1/EINTR and the caught
-         signal is SIGINT or SIGQUIT rather than waiting until the next time
-         around the loop
-       - rl_getc: call rl_event_hook after calling RL_CHECK_SIGNALS to allow
-         an application signal handler to set the event hook in its own
-         signal handler (e.g., like bash trap_handler or sigint_sighandler)
+                                  10/30
+                                  -----
+builtins/pushd.def
+       - get_directory_stack: make sure the current directory (element 0 of
+         the stack) is passed to polite_directory_format under the same
+         conditions as the rest of the stack entries (flags & 1). Otherwise
+         something like `cd ${DIRSTACK[0]}' will fail. Fixes bug reported
+         by Steve Jones <sjml@slohj.org>
 
+builtins/declare.def
+       - declare_internal: when checking for a `[' to see whether or not this
+         is an array variable declaration (declare -a foo[12]), make sure
+         we don't do the check if we're just dealing with shell functions.
+         Bug and pointer to fix from PJ Eby <pje@telecommunity.com>
 
+                                  11/1
+                                  ----
 parse.y
-       - yy_readline_get: don't set interrupt_immediately before we call
-         readline().  Inspired by report from lanshun zhou
-         <zls.sogou@gmail.com>
-
-input.c
-       - getc_with_restart: add call to run_pending_traps after call to
-         CHECK_TERMSIG
+       - parse_comsub: if we read a four-character word followed by a break
+         character, and that word is not one of the reserved words, set
+         lex_rwlen to 0 since we are no longer in a reserved word. It only
+         hurts if another break character immediately follows, so that test
+         succeeds again. Turn off the RESWDOK flag only if it's not a shell
+         metacharacter, too. Fixes bug reported by Kjetil Torgrim Homme
+         <kjetilho@scribus.ms.redpill-linpro.com>
 
-lib/sh/zread.c
-       - zread: call check_signals_and_traps if read() returns -1/EINTR
-         instead of just ignoring the EINTR and deferring handling any
-         signal that generated it
+                                  11/3
+                                  ----
+lib/readline/isearch.c
+       - _rl_isearch_dispatch: if we are searching in reverse order, let
+         sline_index go to -1 to avoid searching the same line twice. It
+         gets reset right after that, so there's no danger of indexing into
+         the history line with a negative index.
 
-builtins/mapfile.def
-       - mapfile: don't set interrupt_immediately before calling zgetline()
-         (which uses zread internally)
-
-builtins/read.def
-       - read_builtin: don't set interrupt_immediately before calling zread
-         (moved code around so that it was only being set right around calls
-         to zread to avoid signal handler conflicts).  Inspired by report
-         from lanshun zhou <zls.sogou@gmail.com>
-       - edit_line: don't set interrupt_immediately around call to readline()
-       - include shmbutil.h
-       - read_builtin: don't call read_mbchar unless is_basic(c) returns
-         false for the character we just read
+                                  11/7
+                                  ----
+execute_cmd.c
+       - time_command: only restore command->flags if CODE indicates we didn't
+         perform a longjmp back to top_level. If we did, `command' has already
+         been freed. Fixes bug reported on savannah by 
+         ukuvbu oibws <xyzdr4gon333@googlemail.com>
+         https://savannah.gnu.org/support/?109403
 
-                                  10/15
+                                  11/10
                                   -----
-sig.c
-       - throw_to_top_level: if interrupt_state is non-zero, make sure that
-         last_command_exit_value reflects 128+SIGINT if it's not already
-         greater than 128
+lib/sh/unicode.c
+       - u32cconv: make sure to initialize localconv to -1 (error) in case
+         we switch from a utf-8 locale to something else and call
+         iconv_close. Report from Egmont Koblinger <egmont@gmail.com>; fix
+         from Eduardo Bustamante <dualbus@gmail.com>
 
-                                  10/20
+                                  11/16
                                   -----
-builtins/wait.def
-       - WAIT_RETURN: set wait_signal_received back to 0 for the potential
-         next call to wait
+subst.c
+       - parse_comsub: istring_index should be a size_t to avoid integer
+         overflow when allocating large pieces of memory. Report and fix
+         from Siteshwar Vashisht <svashisht@redhat.com>, originally based on
+         http://lists.gnu.org/archive/html/bug-bash/2017-11/msg00047.html
 
-quit.h
-       - CHECK_WAIT_INTR: macro to check whether trap_handler handled a
-         signal and set wait_signal_received; longjmp to wait_intr_buf in
-         that case
+                                  11/24
+                                  -----
+lib/readline/bind.c
+       - rl_empty_keymap: new public function, returns non-zero if there are
+         no keys bound in the keymap passed as an argument
 
-jobs.c
-       - wait_for, waitchld: call CHECK_WAIT_INTR at the same places we call
-         CHECK_TERMSIG to check for terminating signals
-       - wait_sigint_handler: don't longjmp out of the wait builtin unless
-         interrupt_immediately is set; otherwise just SIGRETURN from the
-         handler
-       - wait_sigint_handler: if interrupt_immediately not set, but we are
-         executing in the wait builtin and SIGINT is not trapped, treat it
-         as a `normally received' SIGINT: restore the signal handler and
-         send SIGINT to ourselves
-       - waitchld: when in posix mode and running SIGCHLD traps, don't longjmp
-         to wait_intr_buf (and let wait be interrupted) if we're running from
-         a signal handler.  Wait for CHECK_WAIT_INTR to do the longjmp.
-         run_pending_traps will run the SIGCHLD trap later
+lib/readline/readline.h
+       - rl_empty_keymap: new public extern declaration
 
-nojobs.c
-       - reap_zombie_children, wait_for_single_pid, wait_for: call
-         CHECK_WAIT_INTR where we call CHECK_TERMSIG
-       - wait_sigint_handler: don't longjmp out of the wait builtin unless
-         interrupt_immediately is set; otherwise just SIGRETURN from the
-         handler
-
-trap.c
-       - trap_handler: make sure wait_signal_received is set if the wait
-         builtin is executing, and only longjmp if interrupt_immediately is
-         set.  This whole set of fixes was prompted by report from
-         lanshun zhou <zls.sogou@gmail.com>
-
-                                  10/24
-                                  -----
-lib/glob/glob.c
-       - glob_filename: only check directory_name for globbing chars if
-         it's of non-zero length
+lib/readline/doc/rltech.texi
+       - rl_empty_keymap: document new function
 
-lib/sh/strchrnul.c
-       - new simpler implementation
+lib/readline/bind.c
+       - rl_generic_bind: keep track of the previous keymap and previous
+         index in a multi-key key sequence so we can remove an empty terminal
+         keymap and remove a previous override to ANYOTHERKEY. Right now,
+         this only works for one previous keymap level. Inspired by a report
+         from Clark Wang <dearvoid@gmail.com>
 
-subst.c
-       - command_substitute: call set_shellopts after turning off errexit
-         in subshells so it's reflected in $SHELLOPTS
+                                  11/25
+                                  -----
+lib/readline/display.c
+       - _rl_update_final: make sure that computing the length of the visible
+         bottom line (botline_length) takes any invisible characters in the
+         prompt into account (woff). This value is used as part of the check
+         whether or not we want to remove the line-wrapping indicator on
+         terminals like xterm
+       - _rl_update_final: when removing the line-wrapping indicator on xterm,
+         make sure we take invisible characters in the prompt (woff) into
+         account when computing the character in the rightmost physical
+         screen position. Fixes cosmetic line-wrapping issue reported by
+         Egmont Koblinger <egmont@gmail.com>
 
-                                  11/7
-                                  ----
-builtins/evalstring.c
-       - parse_and_execute: treat ERREXIT case like reader_loop does: set
-         variable_context to 0 before longjmping back to top_level. Don't
-         run the unwind-protect context to avoid side effects from popping
-         function contexts.  Part of fix for problem reported by Nikolai
-         Kondrashov <nikolai.kondrashov@redhat.com>
+                                  11/27
+                                  -----
+lib/sh/ufuncs.c
+       - fsleep: if using select to implement sleep, use restart after
+         a signal interrupts the select and handle pending signals. If
+         pselect is available, use that instead and block SIGCHLD while
+         pselect is executing.
+         Fixes report from Thiruvadi Rajaraman <trajaraman@mvista.com>
 
-execute_cmd.c
-       - execute_simple_command: call unlink_fifo_list only if this is the
-         last element of a pipeline (or not in a pipeline), rather than for
-         every child.  Fixes difference in behavior between /dev/fd and
-         FIFOs reported by Zev Weiss <zev@bewilderbeest.net>
-       - execute_null_command: do the same thing in the parent branch after
-         make_child
-
-                                  11/14
+                                  11/28
                                   -----
-subst.c
-       - parameter_brace_expand: a variable is null if it's special ($@, $*),
-         the expansion occurs within double quotes, and the expansion turns
-         into a quoted null.  Fixes debian bug 692447 reported by
-         Matrosov Dmitriy <sgf.dma@gmail.com>
+lib/readline/signals.c
+       - rl_check_signals: new public function: a wrapper for RL_CHECK_SIGNALS
+         that can be used by applications that install a wrapper for
+         rl_getc (rl_getc_function) so they can respond to signals that
+         arrive while waiting for input in the same way as rl_getc. The app
+         can use rl_pending_signal() to get the most recently-received
+         signal. From a discussion about Gnuplot initiated by
+         Rin Okuyama <rokuyama@rk.phys.keio.ac.jp>
 
-jobs.c
-       - run_sigchld_trap: make sure `running_trap' sentinel is set
-         appropriately
-       - waitchld: only run the sigchld trap if we're not in a signal
-         handler, not running a trap, and executing the wait builtin.
-         Otherwise, queue for later handling.  We still run one instance
-         of the trap handler per exited child.  Bulk of fix for bug
-         reported by Elliott Forney <idfah@cs.colostate.edu>
-
-trap.c
-       - queue_sigchld_trap: set catch_flag so run_pending_traps notices,
-         and set trapped_signal_received for completeness.  Rest of fix
-         for bug reported by Elliott Forney <idfah@cs.colostate.edu>
+lib/readline/readline.h
+       - rl_check_signals: new extern declaration
 
-lib/malloc/malloc.c
-       - block_signals: renamed to _malloc_block_signals, made public
-       - unblock_signals: renamed to _malloc_unblock_signals, made public
+lib/readline/doc/rltech.texi
+       - rl_check_signals: document new public function
 
-lib/malloc/imalloc.h
-       - extern declarations for _malloc_{un,}block_signals
+variables.c
+       - set_pwd: test for and force an inherited OLDPWD to be a directory
+         if OLDPWD_CHECK_DIRECTORY is defined in config-top.h (it is by
+         default). Issue raised by Mikulas Patocka <mikulas@twibright.com>
 
-lib/malloc/table.c
-       - mregister_alloc, mregister_free: block signals around table
-         manipulation
+config-top.h
+       - OLDPWD_CHECK_DIRECTORY: new define, defined to 1 by default
 
-                                  11/15
+                                  11/29
                                   -----
-trap.c
-       - run_pending_traps: set SIG_INPROGRESS flag around calls to
-         run_sigchld_handler so other parts of the shell know that the
-         SIGCHLD trap handler is executing
-       - run_pending_traps: if we get a situation where we are looking at
-         running a SIGCHLD trap but the trap string is IMPOSSIBLE_TRAP_HANDLER
-         and the SIG_INPROGRESS flag is set, just skip it.  This is possible
-         if run_pending_traps is called from a SIGCHLD trap handler run by
-         run_sigchld_trap
+Makefile.in
+       - pathexp.o: add dependencies on libintl.h.  Reported by
+         Ross Burton <ross@burtonini.com>
 
-doc/bash.1,lib/readline/doc/{rluser.texi,readline.3}
-       - corrected description of the effect of `set history-size 0'.  Report
-         from Vesa-Matti J Kari <vmkari@cc.helsinki.fi>
+                                  12/1
+                                  ----
+lib/sh/ufuncs.c
+       - fsleep: add blocking and releasing SIGCHLD using sigprocmask
+         around call to select(2) even if pselect(2) is not available
 
-include/stdc.h
-       - CPP_STRING: new define, replaces __STRING
+                                  12/3
+                                  ----
+execute_cmd.c
+       - coproc_setstatus: new utility function, take a pointer to a coproc
+         and a status and mark the coproc as dead and having been reaped
+         with that status. Used by child processes who want to invalidate
+         the coproc's pid
 
-lib/malloc/{malloc.c,imalloc.h}
-       - replace __STRING with CPP_STRING
+                                  12/5
+                                  ----
+subst.c
+       - process_substitute: instead of just having a flag to denote that a
+         file descriptor is connected to a process substitution, store the
+         pid of the child process (still needs work)
+       - find_procsub_child,set_procsub_status,reap_procsubs: utility
+         functions to allow the job control code to detect that a process
+         substitution child has died and deallocate the file descriptors
+         or pathname
 
-                                  11/16
-                                  -----
-lib/readline/bind.c
-       - sv_histsize: if argument evaluates to a value < 0, unstifle the
-         history
+subst.h
+       - find_procsub_child,set_procsub_status,reap_procsubs: extern
+         declarations
 
-                                  11/22
-                                  -----
-redir.c
-       - do_redirection_internal: if we have REDIR_VARASSIGN set in the
-         redirection flags and we set up `redirector' using fcntl or dup2,
-         don't add a redirect to make sure it stays open.  Let the
-         script programmer manage the file handle.  Fixes bug reported by
-         Sam Liddicott <sam@liddicott.com>
+nojobs.c
+       - set_pid_status: if we are reaping a process substitution, call
+         set_procsub_status to record the fact
 
-                                  11/24
-                                  -----
 jobs.c
-       - wait_for_any_job: new function, waits for an unspecified background
-         job to exit and returns its exit status.  Returns -1 on no background
-         jobs or no children or other errors.  Calls wait_for with new
-         sentinel value ANY_PID
-       - wait_for: changes to handle argument of ANY_PID: don't look up or
-         try to modify the child struct, only go through the wait loop once.
-         Return -1 if waitpid returns no children
-
-jobs.h
-       - ANY_PID: new define
+       - waitchld: if we are reaping a process substitution, call
+         set_procsub_status to record the fact. Doesn't really do anything
+         yet
 
-builtins/wait.def
-       - new option: -n. Means to wait for the next job and return its exit
-         status.  Returns 127 if there are no background jobs (or no
-         children).  Feature most recently requested by Elliott Forney
-         <idfah@cs.colostate.edu>
+                                  12/6
+                                  ----
+execute_cmd.c
+       - execute_command: don't call unlink_fifo_list if we're in the
+         middle of executing a list of commands (executing_list != 0).
+         Partial fix for bug reported by Stephane Chazelas
+         <stephane.chazelas@gmail.com>
+       - execute_simple_command: don't close process substitution file
+         descriptors in the parent after forking children in a pipeline;
+         defer until pipeline completes, since parent may have inherited
+         fds from a calling scope (e.g., via `.'). EXPERIMENTAL
+       - execute_disk_command: don't close process substitution file
+         descriptors in the parent after forking the child. EXPERIMENTAL
 
-doc/{bash.1,bashref.texi}
-       - document new `wait -n' option
+                                  12/7
+                                  ----
+doc/bash.1,lib/readline/doc/{readline.3,rluser.texi}
+       - show-mode-in-prompt: clarify that this must be enabled before the
+         vi and emacs mode strings are prefixed to the prompt.  Report from
+         Rob Foehl <rwf@loonybin.net>
 
+                                  12/8
+                                  ----
 execute_cmd.c
-       - execute_command_internal: save make_command_string () result in a
-         temp variable before calling savestring() on it; avoids evaluating
-         make_command_string() result twice.  Fix from John E. Malmberg
-         <wb8tyw@qsl.net>
-
-                                  11/28
-                                  -----
+       - execute_coproc: don't warn about an existing coproc if the write and
+         read file descriptors are unusable (-1), as they will be after a
+         call to coproc_closeall in a subshell. Fixes spurious warning
+         reported by Tobias Hoffmann <lfile-list@thax.hardliners.org>
 
-builtins/declare.def
-       - declare_internal: if an array variable is declared using `declare -a'
-         or `declare -A', but not assigned a value, set the `invisible'
-         attribute so the variable does not show up as set.  Fix for bug
-         about variable initialization reported by Tim Friske <me@timfriske.com>
+jobs.c
+       - bgp_resize: avoid overflow when calculating the new size if the
+         child process limit is something ridiculously large. Report and
+         fix from Natanael Copa <ncopa@alpinelinux.org>
 
-builtins/{mapfile,read}.def
-       - after calling find_or_make_array_variable, make sure the invisible
-         flag is turned off, in case the variable was declared previously
-         using `declare -a' or `declare -A'.  Side effect of above change to
-         declare_internal
+execute_cmd.c
+       - execute_builtin_or_function: if we return via the return builtin, we
+         don't get a chance to free the saved fifo list, so add an unwind-
+         protect to make sure it happens. Part of fix for leak reported by
+         Oyvind Hvidsten <oyvind.hvidsten@dhampir.no>
+       - execute_command_internal: if we unwind via the return builtin (e.g.,
+         we execute a function which then returns via the return builtin to
+         a previous function), we don't free the saved fifo list, so add an
+         unwind-protect to make sure the free happens. Rest of fix for leak
+         reported by Oyvind Hvidsten <oyvind.hvidsten@dhampir.no>
 
 subst.c
-       - shell_expand_word_list: handle the W_ASSNGLOBAL flag and put -g into
-         the list of options passed to make_internal_declare as appropriate.
-         Fix for bug reported by Tim Friske <me@timfriske.com>
-
-                                  11/30
-                                  -----
-test.c
-       - unary_op: make sure -v and -n check that the variable is not marked
-         as invisible before calling var_isset.  Fix for bug reported by Tim
-         Friske <me@timfriske.com>
+       - add_fifo_list: for the FIFO case (no /dev/fd), make sure we
+         initialize the new members of the fifo list after xrealloc
 
-                                  12/2
+                                  12/9
                                   ----
 subst.c
-       - process_substitute: turn off the `expanding_redir' flag, which
-         controls whether or not variables.c:find_variable_internal uses the
-         temporary environment to find variables.  We want to use the
-         temp environment, since we don't have to worry about order of
-         evaluation in a subshell.  Fixes bug reported by Andrey Borzenkov
-         <arvidjaar@gmail.com>
+       - dev_fd_list: now a list of type `pid_t' so we can store process
+         associated with the pipe fd into the right element; change all
+         necessary functions (copy_fifo_list, add_fifo_list)
+       - process_substitute: store pid of child process into the right
+         index in dev_fd_list after opening the pipe. Process ID of -1 means
+         process has been reaped and fd needs to be closed (or FIFO needs to
+         be unlinked); value of 0 means slot is unused
 
-                                  12/4
-                                  ----
-lib/glob/glob.c
-       - glob_filename: changes to avoid null filenames and multiple entries
-         returned for patterns like **/** (globstar enabled).  Fixes bug
-         reported by Ulf Magnusson <ulfalizer@gmail.com>
+jobs.c
+       - wait_for_background_pids: call reap_procsubs to make sure we clean
+         up all reaped process substitutions before trying to wait for
+         everything (still needs work)
+
+tests/{run-procsub,procsub.{tests,right}}
+       - new file, tests of process substitution that have failed in the past
 
                                   12/10
                                   -----
-lib/glob/glob.c
-       - glob_filename: finish up a series of changes to make globstar-style   
-         globbing more efficient, avoid more duplicate filenames, and be more
-         compatible with other shells that implement it
-               o collapse a sequence of **/**/** to one **
-               o note when the directory name is all ** or ends in ** so we
-                 can treat it specially when the filename is **
-         All inspired by report from Andrey Borzenkov <arvidjaar@gmail.com>
+jobs.c
+       - wait_for_background_pids: warn if one of the jobs is stopped
 
-lib/sh/zread.c
-       - zreadn: new function, like zread, but takes an additional argument
-         saying how many bytes to read into the local buffer.  Can be used to
-         implement `read -N' without so many one-byte calls to zreadc.  Code
-         from Mike Frysinger <vapier@gentoo.org>
+subst.c
+       - wait_procsubs: new function, call wait_for for every "live" process
+         substitution
 
-                                  12/12
-                                  -----
-lib/glob/sm_loop.c
-       - PATSCAN (glob_patscan): if passed string already points to end of
-         pattern, return NULL immediately.  Fixes problem with
-         extglob_skipname reported by Raphaël Droz <raphael.droz@gmail.com>
+jobs.c
+       - wait_for_background_pids: call wait_procsubs to reap any living
+         process subsitutions
 
                                   12/13
                                   -----
-execute_cmd.c
-       - execute_coproc: handle the command's exit status being inverted
-         (an oversight).  Fixes bug reported by DJ Mills
-         <danielmills1@gmail.com> and Andreas Schwab <schwab@linux-m68k.org>
+lib/readline/bind.c
+       - parser_if: add support for testing the readline version, using the
+         full set of arithmetic comparison operators (and supporting both
+         = and ==), using version numbers of the form major[.[minor]]
 
                                   12/14
                                   -----
-lib/readline/readline.c
-       - bind_arrow_keys_internal: add MINGW key bindings for Home, End,
-         Delete, and Insert keys.  Fix from Pierre Muller
-         <pierre.muller@ics-cnrs.unistra.fr>
-
-builtins/printf.def
-       - printf_builtin: '%()T' conversion: if there is no argument supplied,
-         behave as if -1 had been supplied (current time).  ksh93-like feature
-         suggested by Clark Wang <dearvoid@gmail.com>
-
-doc/{bash.1,bashref.texi}
-       - document new printf %()T default argument behavior
+subst.[ch]
+       - string_list_dollar_star: now takes QUOTED and PFLAGS arguments like
+         string_list_dollar_at, changed all callers. Not used yet.
 
-                                  12/15
+                                  12/16
                                   -----
-lib/readline/display.c
-       - displaying_prompt_first_line: new variable, indicates whether or
-         not the first line of output is displaying the prompt.  Always true
-         in normal mode, sometimes false in horizontal scrolling mode
-       - rl_redisplay: set displaying_prompt_first_line to true unless we
-         are in horizontal mode; set to false in horizontal mode if the left
-         margin of the displayed line is greater than the end of the prompt
-         string
-       - rl_redisplay: when in horizontal scroll mode, don't adjust
-         _rl_last_c_pos by the wrap offset unless the line is displaying
-         a prompt containing invisible chars
-       - update line: don't adjust _rl_last_c_pos by the wrap offset unless
-         the line is displaying a prompt containing invisible chars
-       - update_line: if shrinking the line by reducing the number of
-         displayed characters, but we have already moved the cursor to the
-         beginning of the line where the first difference starts, don't
-         try to delete characters
-
-builtins/read.def
-       - unbuffered_read: set to 2 if invoked as `read -N'
-       - if unbuffered_read is set to 2, compute the number of chars we
-         need to read and read that many with zreadn.  Posix mode still
-         uses zreadintr.  Code from Mike Frysinger <vapier@gentoo.org>
-
-doc/{bash.1,bashref.texi}
-       - read: make it clear that if read times out, it saves any input
-         read to that point into the variable arguments.  Report from
-         Fiedler Roman <Roman.Fiedler@ait.ac.at>
-
 subst.c
-       - command_substitute: change direct assignment of exit_immediately_on_error
-         to use change_flag ('e', FLAG_OFF) instead
-
-flags.c
-       - use errexit_flag as the variable modified by changes to the -e
-         option, reflect those changes to exit_immediately_on_error
+       - param_expand: broke out cases of expanding unquoted (quoted == 0)
+         $* on the rhs of an assignment statement (pflags & PF_ASSIGNRHS)
+         with various values of IFS (unset, null, set to non-null value) to
+         capture the expansion subtleties. From a report back on 11/24 by
+         Martijn Dekker <martijn@inlv.org>
 
-execute_cmd.c
-       - execute_builtin: new global variable, builtin_ignoring_errexit, set
-         to 0 by default and set to 1 if eval/source/command executing in a
-         context where -e should be ignored
-       - execute_builtin: set exit_immediately_on_error to errextit_flag
-         after executing eval/source/command in a context where -e should
-         be ignored
-
-flags.c
-       - if builtin_ignoring_errexit is set, changes to errexit_flag are
-         not reflected in the setting of exit_immediately_on_error.  Fixes
-         bug reported by Robert Schiele <rschiele@gmail.com>
-
-                                  12/23
+                                  12/17
                                   -----
-include/posixjmp.h
-       - setjmp_nosigs: new define, call setjmp in such a way that it will
-         not manipulate the signal mask
-
-{expr,test,trap}.c
-       - setjmp_nosigs: call instead of setjmp; don't need to manipulate
-         signal mask
-
-builtins/read.def
-       - read_builtin: setjmp_nosigs: call instead of setjmp; don't need
-         to manipulate signal mask
+array.h
+       - set_element_value: new define, sets array element AE to VALUE
 
-builtins/evalstring.c:
-       - parse_and_execute: setjmp_nosigs: call instead of setjmp; don't need
-         to manipulate signal mask
-       - parse_string: setjmp_nosigs: call instead of setjmp; don't need
-         to manipulate signal mask
-       - parse_and_execute: save and restore the signal mask if we get a
-         longjmp that doesn't cause us to return or exit (case DISCARD)
+variables.c
+       - set_pipestatus_array: use set_element_value where appropriate
 
-                                  12/24
-                                  -----
-general.c
-       - bash_tilde_expand: only set interrupt_immediately if there are no
-         signals trapped; we want to jump to top level if interrupted but
-         not run any trap commands
-
-                                  12/25
+                                  12/18
                                   -----
-jobs.c
-       - run_sigchld_trap: no longer set interrupt_immediately before calling
-         parse_and_execute, even if this is no longer run in a signal handler
-         context
-
-input.c
-       - getc_with_restart: add call to QUIT instead of CHECK_TERMSIG
-
-parse.y
-       - yy_stream_get: now that getc_with_restart calls QUIT, don't need to
-         set interrupt_immediately (already had call to run_pending_traps)
-
-execute_cmd.c
-       - execute_subshell_builtin_or_function,execute_function,execute_in_subshell:
-         setjmp_nosigs: call instead of setjmp when saving return_catch; don't
-         need to manipulate signal mask
-       - execute_subshell_builtin_or_function,execute_in_subshell:
-         setjmp_nosigs: call instead of setjmp where appropriate when saving
-         top_level; don't need to manipulate signal mask if we're going to
-         exit right away
-
 subst.c
-       - command_substitute: setjmp_nosigs: call instead of setjmp when saving
-         return_catch; don't need to manipulate signal mask
-       - command_substitute: setjmp_nosigs: call instead of setjmp where
-         appropriate when saving top_level; don't need to manipulate signal
-         mask if we're going to exit right away
-
-trap.c
-       - run_exit_trap: setjmp_nosigs: call instead of setjmp when saving
-         return_catch; don't need to manipulate signal mask
-       - run_exit_trap: setjmp_nosigs: call instead of setjmp where
-         appropriate when saving top_level; don't need to manipulate signal
-         mask if we're going to exit right away
-       - _run_trap_internal: setjmp_nosigs: call instead of setjmp when saving
-         return_catch; don't need to manipulate signal mask
-
-builtins/evalfile.c
-       - _evalfile: setjmp_nosigs: call instead of setjmp when saving
-         return_catch; don't need to manipulate signal mask
-
-builtins/evalstring.c
-       - evalstring: setjmp_nosigs: call instead of setjmp when saving
-         return_catch; don't need to manipulate signal mask
-
-shell.c
-       - main: setjmp_nosigs: call instead of setjmp where appropriate when
-         saving top_level; don't need to manipulate signal mask if we're
-         going to exit right away
-       - run_one_command: setjmp_nosigs: call instead of setjmp where
-         appropriate when saving top_level; don't need to manipulate signal
-         mask if we're going to exit right away
-       - run_wordexp: setjmp_nosigs: call instead of setjmp where
-         appropriate when saving top_level; don't need to manipulate signal
-         mask if we're going to exit right away
+       - parameter_brace_find_indir: when expanding the indirect parameter
+         to find the eventual variable name, we don't perform word splitting.
+         Make sure this does the right thing for * and @.  Fixes bug
+         reported by isabella parakiss <izaberina@gmail.com>
 
-eval.c
-       - reader_loop: save and restore the signal mask if we get a longjmp
-         that doesn't cause us to return or exit (case DISCARD)
+                                  12/19
+                                  -----
+doc/{bash.1,bashref.texi}
+       - indirect expansion: make sure to note that the value of the indirect
+         variable does not undergo word splitting as one of its expansions,
+         as in fix from 12/18
 
-                                  12/26
+                                  12/22
                                   -----
-parse.y
-       - shell_input_line_{index,size,len}: now of type size_t; in some cases
-         the unsigned property makes a difference
-       - STRING_SAVER: saved_line_{size,index} now of type size_t
-       - shell_getc: don't allow shell_input_line to grow larger than SIZE_MAX;
-         lines longer than that are truncated until read sees a newline;
-         addresses theoretical buffer overflow described by Paul Eggert
-         <eggert@cs.ucla.edu>
-       - set_line_mbstate: size_t changes like shell_getc
-       - shell_getc: if shell_input_line is larger than 32K, free it and
-         start over to avoid large memory allocations sticking around
+subst.c
+       - parameter_brace_expand_rhs: make sure the value this function returns
+         when OP is `=' is quoted appropriately, as the callers expect. More
+         changes from Posix interp 221. Fixes report from Martijn Dekker
+         <martijn@inlv.org>
 
 variables.c
-       - bind_global_variable: new function, binds value to a variable in
-         the global shell_variables table
-
-variables.h
-       - bind_global_variable: new extern declaration
-
-builtins/declare.def
-       - declare_internal: if -g given with name=value, but variable is not
-         found in the global variable table, make sure to call
-         bind_global_variable so the variable is created and modified at
-         global scope.  Fixes a bug where declare -g x=y could modify `x'
-         at a previous function scope
-
-command.h
-       - W_ASSIGNARRAY: new word flag, compound indexed array assignment
-
-subst.h
-       - ASS_MKGLOBAL: new assignment flag, forcing global assignment even in
-         a function context, used by declare -g
-
-execute_cmd.c
-       - fix_assignment_words: set W_ASSIGNARRAY flag if -a option given to
-         declaration builtin
+       - assign_hashcmd: if running in a restricted shell, make sure the
+         target of the hash assignment can be found via a $PATH search, to
+         prevent users assigning commands to the hash table they would not
+         ordinarily have access to. Fixes issue raised by Drew Parker
+         <andrew.s.parker2@gmail.com>
 
-subst.c
-       - do_assignment_internal: explicitly handle case where we are
-         executing in a function and we want to create a global array or
-         assoc variable
-       - shell_expand_word_list: call make_internal_declare if -a option
-         given to declaration builtin (W_ASSIGNARRAY); handle -g option with
-         it (W_ASSNGLOBAL).  Fixes inconsistency noticed by Vicente Couce
-         Diaz <vituko@gmail.com>, where declare -ag foo=(bar) could modify
-         array variable foo at previous function scope, not global scope
+builtins/hash.def
+       - hash_builtin: if running in a restricted shell, make sure the
+         pathname target of `hash -p' can be found via a $PATH search, to
+         prevent users assigning commands to the hash table they would not
+         ordinarily have access to.
 
                                   12/27
                                   -----
-bashline.c
-       - Minix needs the third argument to tputs to be a void funtion taking
-         an int argument, not an int-returning function.  Fix from
-         John E. Malmberg <wb8tyw@qsl.net> as part of VMS bash port
+array.c,arrayfunc.c,...
+       - many changes to clean up unused variables and functions. From a
+         report from Siteshwar Vashisht <svashisht@redhat.com>
 
-                                  12/29
+                                  12/28
                                   -----
-configure.ac,version.c,patchlevel.h
-       - bash-4.3-devel: new version, new shell compatibility level (43)
-
-subst.c
-       - parameter_brace_patsub: put the bash-4.2 code back in from the
-         change of 3/3 that runs the replacement string through quote
-         removal, make it dependent on shell_compatibility_level <= 42
-
-builtins/shopt.def
-       - compat42: new shopt option
-       - set_compatibility_level: change logic to set and unset various
-         compat variables and shell_compatibility_level
-
-COMPAT
-       - new documentation for bash-4.3 compatibility changes
-
-doc/{bash.1,bashref.texi}
-       - compat42: document new shopt option
-
-builtins/shopt.def
-       - set_compatibility_opts: new function, sets the various shopt
-         compat variables based on the value of shell_compatibility_level
-
-builtins/common.h
-       - set_compatibility_opts: new extern declaration
-
-variables.c
-       - BASH_COMPAT: new special variable; sets the shell compatibility
-         level.  Accepts values in decimal (4.2) or integer (42) form;
-         Unsetting variable, setting it to empty string, or setting it to
-         out-of-range value sets the shell's compatibility level to the
-         default for the current version.  Valid values are 3.1/31 through
-         the current version
-       - sv_shcompat: new function implementing logic for BASH_COMPAT
+lib/readline/terminal.c
+       - _rl_term_clrscroll: save the `E3' termcap capability, which clears
+         the scrollback buffer where supported. Unused right now
 
-variables.h
-       - sv_shcompat: new extern declaration
+lib/readline/rlprivate.h
+       - _rl_term_clrscroll: extern declaration
 
-doc/{bash.1,bashref.texi}
-       - BASH_COMPAT: description of new variable
+lib/readline/bind.c
+       - parser_if: added simple variable comparison capability. Allowable
+         operators are `=', `==', and `!='; boolean variables must be
+         compared to either `on' or `off'; variable names must be separated
+         from the operator by whitespace
 
-lib/readline/complete.c
-       - _rl_colored_stats: default back to 0 for 4.3 release branch
+doc/bash.1,lib/readline/doc/{rluser.texi,readline.3}
+       - document new `if variable comparison value' construct
 
-                                1/5/2013
+                                1/2/2018
                                 --------
-quit.h
-       - remove spurious call to itrace in CHECK_WAIT_INTR
-
-bashline.c
-       - bash_event_hook: if we're going to jump to top_level, make sure we
-         clean up after readline() by calling rl_cleanup_after_signal().
-         Fixes bug reported against devel branch by Raphaël Droz
-         <raphael.droz@gmail.com>
-       - bash_event_hook: reset the event hook before checking for signals
-         or traps in case we longjmp
-
-doc/{bash.1,bashref.texi}
-       - small additions to the set -e section to make it more clear that
-         contexts where -e is ignored extend to compound commands as well
-         as shell functions
+lib/glob/sm_loop.c
+       - EXTMATCH: when matching against !(patlist), if a filename beginning
+         with a `.' does not match any of the patterns in patlist, don't
+         return it as a match if leading dots need to be matched explicitly
+         (flags & FNM_PERIOD). Report from Eric Cook <llua@gmx.com>
 
-lib/readline/readline.h
-       - rl_signal_event_hook: new extern declaration
+                                   1/3
+                                   ---
+variables.[ch]
+       - bind_function_def: takes an additional flags argument. If FLAGS&1,
+         overwrite any existing function_def hash table entry; if FLAGS==0,
+         leave any existing function_def alone.
 
-lib/readline/input.c
-       - rl_signal_event_hook: new variable, hook function to call when a
-         function (currently just read(2)) is interrupted by a signal and
-         not restarted
-       - rl_getc: call rl_signal_event_hook instead of rl_event_hook
+make_cmd.c
+       - make_function_def: call bind_function_def with flags == 0
 
-lib/readline/doc/rltech.texi
-       - rl_signal_event_hook: document new function
+execute_cmd.c
+       - execute_intern_function: call bind_function_def with flags == 1 so
+         we have function_def information that's correct for where the
+         function is defined, not just where it's last parsed. Fixes report
+         from Bruno Vasselle <bruno.vasselle@laposte.net>; final piece of
+         fix from 12/15/2011
 
-bashline.c
-       - changes to set rl_signal_event_hook instead of rl_event_hook
+                                   1/4
+                                   ---
+subst.c
+       - param_expand: deal with string_list_dollar_star returning NULL.
+         Fixes bug reported by Martijn Dekker <martijn@inlv.org>
 
-lib/readline/readline.h
-       - change readline version numbers to 6.3
+builtins/history.def
+       - history_builtin: enabled code that performs range deletion
 
-                                   1/6
+                                   1/5
                                    ---
-doc/{bash.1,bashref.texi}
-       - a couple of changes to the descriptions of the ERR trap and its
-         effects based on a message from Rob Nagler <nagler@bivio.biz>
+subst.c
+       - do_assignment_internal: if performing a compound assignment, make
+         sure to pass ASS_CHKLOCAL flag to do_compound_assignment if the
+         assignment word has the W_CHKLOCAL flag set
+       - do_compound_assignment: honor ASS_CHKLOCAL flag and check for an
+         existing local variable before creating or modifying a global
+         variable
 
-                                   1/9
-                                   ---
-expr.c
-       - expassign: invalidate curlval before freeing and NULLing tokstr to
-         avoid aliasing issues.  Fixes bug reported by Eduardo A. Bustamante
-         López<dualbus@gmail.com>  and Dan Douglas <ormaaj@gmail.com>
+builtins/declare.def
+       - declare_internal: new (undocumented so far) option: -G. Means to
+         act on global variables (create, modify) if no local variable is
+         found with the specified name
+       - declare_find_variable: new declare-specific wrapper functon for
+         declare builtin; obeys -g and -G options in one place
+       - declare_internal: if no variable is found after following any nameref
+         chain, look up the variable using declare_find_variable to honor the
+         -G option. XXX - so far, this is the only place that function is used
 
-braces.c
-       - array_concat: don't be so aggressive in trying to short-circuit. We
-         can only short-circuit if we have a single-element array where the
-         element is an empty string (array[0] == "" array[1] = 0x0).  Existing
-         practice requires us to replicate arrays and prefix or append empty
-         strings.  Fixes bug reported by Eduardo A. Bustamante López
-         <dualbus@gmail.com>
+subst.c
+       - shell_expand_word_list: before calling make_internal_declare, add
+         'G' to the options list if W_CHKLOCAL is set in the word's flags.
+         This makes builtins like `readonly' that modify local variables in
+         a function behave the same for scalar and array variables
 
                                   1/11
                                   ----
-execute_cmd.c
-       - execute_builtin: since mapfile uses evalstring() to run its callbacks
-         internally, just like eval, so it needs to handle the case where the
-         temp environment given to mapfile persists throughout the entire
-         set of callback commands.  This might be a problem with trap also, but
-         trap isn't run in the same way.  Fixes bug reported by Dan Douglas
-         <ormaaj@gmail.com>
+parse.y
+       - shell_getc: move code that decides whether to append a space to an
+         alias expansion here from mk_alexpansion, so we can inhibit adding
+         a space if we're currently parsing a single or double quoted string
 
-                                  1/13
+                                  1/12
                                   ----
-redir.c
-       - redirection_error: before expanding the redirection word (if
-         expandable_redirection_filename returns true), disable command
-         substitution during expansion.  Fixes bug reported by Dan Douglas
-         <ormaaj@gmail.com>
 
-subst.c
-       - expand_word_internal: case '\\': if the next character is an IFS
-         character, and the expansion occurs within double quotes, and the
-         character is not one for which backslash retains its meaning, add
-         the (escaped) '\' and the (escaped) character.  Fixes bug reported
-         by Dan Douglas <ormaaj@gmail.com>
+parse.y
+       - clear_string_list_expander: take a pointer to an alias that's about
+         to be freed and make sure there aren't any pointers to it in the
+         list of pushed strings. If there are, zero it out in the pushed
+         string list to avoid referencing freed memory in pop_string()
 
-                                  1/15
-                                  ----
-builtins/cd.def
-       - cd_builtin: make sure call to internal_getopt handles -e option.
-         Fixes bug reported by <mashimiao.fnst@cn.fujitsu.com>
+alias.c
+       - free_alias_data: if an alias being freed is currently being expanded,
+         call clear_string_list_expander to remove references to it from the
+         list of pushed strings
 
-                                  1/17
+                                  1/14
                                   ----
-subst.c
-       - expand_word_list_internal: make sure tempenv_assign_error is
-         initialized to 0
+pcomplib.c
+       - progcomp_search: add code to look up an alias for the CMD argument
+         and return the completions for the first word of that alias if one
+         is found. Just a start at completing aliases, a much-requested
+         feature
 
-execute_cmd.c
-       - execute_simple_command: make sure tempenv_assign_error is reset to 0
-         after it's tested to see if an error should force the shell to exit.
-         Fixes problem where a the failure of a tempenv assignment preceding
-         a non-special builtin `sticks' and causes the next special builtin
-         to exit the shell.  From a discussion on bug-bash started by
-         douxin <wq-doux@cn.fujitsu.com>
+pcomplete.h
+       - COPT_LASTUSER: last flag value used by user-settable completion
+         options
+       - PCOMP_RETRYFAIL, PCOMP_NOTFOUND: new #defines, possible return values
+         from programmable_completions in FOUNDP argument. Moved RETRYFAIL
+         define here from pcomplete.c to avoid collisions with user-settable
+         option values (COPT_*)
 
-                                  1/20
+                                  1/15
                                   ----
-subst.c
-       - parameter_brace_expand_rhs: call stupidly_hack_special_variables
-         after assigning with ${param[:]=word} even if IFS is changing.
-         Suggested by Dan Douglas <ormaaj@gmail.com> [TENTATIVE, needs work
-         on IFS side effects]
-
-command.h
-       - W_GLOBEXP (which was unused) is now W_SPLITSPACE (which isn't used
-         yet)
-
-{execute_cmd,subst,variables}.c
-       - removed all code that mentioned W_GLOBEXP
-       - removed mention of gnu_argv_flags and code that set it
+pcomplete.c
+       - programmable_completions: if we don't find any completions for a
+         command, and RETRY is 0, see if the command is a defined alias,
+         expand it, and try to expand the first word of the value as a
+         command, and find any programmable completions for it. Here right
+         now, could be moved to attempt_shell_completion later if we need
+         to do more analysis of the expanded line. We'll see how it works
+         in practice. (Disabled for now.)
 
-                                  1/22
+                                  1/16
                                   ----
-subst.c
-       - param_expand: set W_SPLITSPACE if we expand (unquoted) $* and
-         IFS is unset or null so we can be sure to split this on spaces
-         no matter what happens with IFS later
-       - expand_word_internal: note that param_expand returns W_SPLITSPACE
-         in the returned word flags and keep track of that state with
-         `split_on_spaces'
+parse.y
+       - grammar: when timing the null command, make sure to turn off the
+         flags in parser_state (PST_REDIRLIST) that make_simple_command sets
+         when given a NULL second argument, since it assumes that it's going
+         to turn those off when it gets the next word of the simple command
+         (which it never gets in this case).  Fixes bug reported by
+         Anti Räis <antirais@gmail.com>
 
-                                  1/23
+                                  1/19
                                   ----
-subst.c
-       - expand_word_internal: if split_on_spaces is non-zero, make sure
-         we split `istring' on spaces and return the resultant word.  The
-         previous expansions should have quoted spaces in the positional
-         parameters where necessary.  Suggested by Dan Douglas
-         <ormaaj@gmail.com>
-
-execute_cmd.c
-       - execute_command_internal: make sure any subshell forked to run a
-         group command or user subshell at the end of a pipeline runs any
-         EXIT trap it sets.  Fixes debian bash bug 698411
-         http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=698411
-
-subst.c
-       - shell_expand_word_list: fix code that creates args for and calls
-         make_internal_declare to avoid calling it twice (missing `else'
-         in 12/26 change)
-       - do_assignment_internal: fix code from 12/26 change to fix problem
-         where an existing assoc variable could be converted to an array
-         without checking `mkassoc'
+lib/readline/rltty.c
+       - prepare_terminal_settings (termios/termio): if there is a function
+         bound to the VDISCARD character in the current keymap, set VDISCARD
+         to _POSIX_VDISABLE while readline is active. From a report from
+         Rhialto <rhialto@falu.nl>
 
-                                  1/24
+                                  1/22
                                   ----
-builtins/evalfile.c
-       - _evalfile: add missing `close (fd)' calls before returning to
-         avoid fd leaks.  Bug and fix from Roman Rakus <rrakus@redhat.com>
+builtins/history.def
+       - histtime: check whether or not localtime() returns NULL, and make
+         sure we only call strftime() with a valid struct tm. This can happen
+         when the timestamps in the history file overflow a time_t. Fixes bug
+         reported by Luke Dashjr <luke@dashjr.org>
 
-                                  1/25
-                                  ----
-builtins/read.def
-       - read_builtin: don't try to play tricks with the top of the unwind-
-         protect stack after read gets a SIGALRM; save input_string to new
-         memory, run the stack, then restore input_string and assign the
-         variables.  Part of fix for bug reported by konsolebox
-         <konsolebox@gmail.com>; the rest of the fix is with the changes in
-         trap and signal handling and doing away with interrupt_immediately
+bashline.c
+       - edit_and_execute_command: if we're in vi editing mode, make sure
+         we end up in insert mode after executing the commands from the
+         edited file. This seems to be what other shells do. Report from
+         Stan Marsh <gazelle@xmission.com>
 
                                   1/26
                                   ----
-redir.c
-       - redirection_expand, write_here_string, write_here_document: before
-         calling any of the word expansion functions, after setting
-         expanding_redir to 1 (which bypasses the temp environment in the
-         variable lookup functions), call sv_ifs to reset the cached IFS-
-         related variables set by subst.c:setifs().  This ensures that
-         redirections will not get any IFS values that are set in the
-         temporary environment, as Posix specifies.  Then, after the word
-         expansions, after resetting expanding_redir to 0, call sv_ifs
-         again to make sure the cached IFS values are set from any
-         assignments in the temporary environment.  We force executing_builtin
-         to 1 to `fool' the variable lookup functions into using any temp
-         environment, then reset it to its old value after sv_ifs returns.
-         This is what allows read() to use the (cached) IFS variables set
-         in the temp environment. Fixes inconsistency reported by Dan Douglas
-         <ormaaj@gmail.com>
+bashline.c
+       - command_word_completion_function: match alias and shell function
+         names case-insensitively if the readline completion-ignore-case
+         variable is set. Inspired by report from <odnehel@gmail.com>
 
-                                  1/29
-                                  ----
 lib/readline/display.c
-       - update_line: fix off-by-one error when updating vis_lbreaks array
-         in a multibyte locale that occurs when moving multibyte chars from
-         one line down to another.  Bug report and fix from Egmont
-         Koblinger <egmont@gmail.com>
+       - update_line: when performing a dumb update after wrapping the line
+         (usually due to printing the prompt), make sure we adjust
+         _rl_last_c_pos if there are invisible characters in prompt lines
+         other than the first (we assume those invisible characters are in
+         the last line, which is nearly always the case). We adjust by the
+         total number of invisible chars less the number of invisible chars
+         in the first prompt line. From a report in
+         https://bugs.launchpad.net/ubuntu/+source/bash/+bug/1745273
+
+execute_cmd.c
+       - execute_command_internal: if redirections attached to a compound
+         command fail, make sure we discard the `internal_fifos' unwind-
+         protect frame after freeing the copied fifo_list and before returning
 
                                   1/30
                                   ----
-configure.ac
-       - changed version to 4.3-alpha
-
-redir.c
-       - redir_open: handle open returning -1/EINTR, which seems to happen
-         a lot with FIFOs and SIGCHLD, and call QUIT to handle other
-         signals that can interrupt open(2).  Bug report and initial fix
-         from Mike Frysinger <vapier@gentoo.org>
+lib/readline/rlprivate.h
+       - BRACK_PASTE_FINI: add \r to the end of the string to avoid problems
+         with the tty driver thinking the cursor was in the wrong position.
+         Fixes issue reported by Egmont Koblinger <egmont@gmail.com>
 
                                   1/31
                                   ----
-subst.c
-       - parameter_brace_expand: make sure to propagate the PF_ASSIGNRHS flag
-         to parameter_brace_expand_word
-       - parameter_brace_expand_word: make sure that if the PF_ASSIGNRHS flag
-         is set and we are expanding ${a[@]} or ${a[*]} we set quoted to
-         include Q_DOUBLE_QUOTES before calling array_value_internal, mirroring
-         what we do for $@ and $*.  Fixes inconsistency reported by Dan
-         Douglas <ormaaj@gmail.com>
-
-configure.ac
-       - use AC_CHECK_TOOL instead of AC_CHECK_PROG to check for ar, since it
-         will find $host-prefixed versions of utilities.  Report and fix from
-         Mike Frysinger <vapier@gentoo.org>
+lib/sh/zread.c
+       - zread,zreadintr: call check_signals() before calling read() to
+         minimize the race window between signal delivery, signal handling,
+         and a blocking read(2). Partial fix for FIFO read issue reported by
+         Oyvind Hvidsten <oyvind.hvidsten@dhampir.no>
 
-builtins/setattr.def
-       - set_var_attribute: check whether bind_variable (called when the
-         variable whose attributes are being modified is found in the temp
-         environment) just modified a read-only global variable, and don't
-         bother marking the temporary variable for propagation if so.  The
-         propagation is superfluous and will result in a strange error
-         message
+doc/{bash.1,bashref.texi}
+       - shopt: document `assoc_expand_once' shell option
 
-                                   2/2
+                                   2/1
                                    ---
-variables.c
-       - initialize_shell_variables: don't try to import function definitions
-         with invalid names from the environment if already in posix mode,
-         but create them as (invisible) exported variables so they pass
-         through the environment.  Print an error message so user knows
-         what's wrong.  Fixes bug reported by Tomas Trnka <ttrnka@mail.muni.cz>
+config-top.h
+       - DONT_REPORT_SIGTERM: define, so non-interactive shells will no
+         longer print termination messages for child processes killed by
+         SIGTERM
 
-                                   2/9
+                                   2/6
                                    ---
+lib/readline/text.c
+       - rl_insert: don't attempt to optimize typeahead if we are only reading
+         a fixed number of characters (rl_num_chars_to_read > 0)
 
-builtins/read.def
-       - sigalrm_seen, alrmbuf: now global so the rest of the shell (trap.c)
-         can use them
-       - sigalrm: just sets flag, no longer longjmps to alrmbuf; problem was
-         longjmp without manipulating signal mask, leaving SIGALRM blocked
-
-quit.h
-       - move CHECK_ALRM macro here from builtins/read.def so trap.c:
-         check_signals() can call it
-
-trap.c
-       - check_signals: add call to CHECK_ALRM before QUIT
-       - check_signals_and_traps: call check_signals() instead of including
-         CHECK_ALRM and QUIT inline.  Integrating check for read builtin's
-         SIGALRM (where zread call to check_signals_and_traps can see it)
-         fixes problem reported by Mike Frysinger <vapier@gentoo.org>
+redir.c
+       - redir_special_open: if the shell is restricted, return a
+         RESTRICTED_REDIRECT error for attempts to open /dev/tcp and /dev/udp
+         sockets.  Inspired by report from Blake Burkhart <bburky@bburky.com>
+       - do_redirection_internal: if redir_open returns RESTRICTED_REDIRECT,
+         return that right away (instead of errno) so we can print a better
+         error message
 
-                                  2/12
+                                  2/11
                                   ----
-lib/glob/xmbsrtowcs.c
-       - xdupmbstowcs2: fixed but where end of string was not handled
-         correctly, causing loop to go past end of string in a bunch of cases.
-         Fixes bug reported by "Dashing" <dashing@hushmail.com>
-
+jobs.c
+       - bgp_resize: fix problems with (pid_t) overflow when calculating new
+         size for table when js.c_childmax is near the limit of a pid_t
+         (e.g., 2**31 - 1 on a 32-bit system, or 2**63-1 on a system with
+         32-bit pid_t). Fixes hang reported by Natanael Copa
+         <ncopa@alpinelinux.org> based on his patch from 12/8.
+       - bgp_resize: cap max table size for bgpids at MAX_CHILD_MAX (32768)
 
-                                  2/13
-                                  ----
-builtins/pushd.def
-       - popd_builtin: treat any argument that isn't -n or of the form
-         [-+][[:digit:]]* as an error.  Fixes problem reported by Bruce
-         Korb <bruce.korb@gmail.com>
+include/typemax.h
+       - TYPE_MINIMUM, TYPE_MAXIMUM: updated definitions from coreutils-8.29,
+         silences some compiler warnings
 
                                   2/14
                                   ----
-configure.ac
-       - add check for sig_atomic_t; already a placeholder for it in
-         config.h.in
+Makefile.in
+       - maybe-clean: use cd and pwd -P to test whether or not two directory
+         names identical, since topdir = '.' and BUILD_DIR = full pathname
+         when you use something like `bash ./configure'. Problem reported by
+         Michael Felt <aixtools@gmail.com>
 
-                                  2/15
-                                  ----
 subst.c
-       - do_compound_assignment: don't call assign_compound_array_list with
-         a NULL variable in case make_local_xxx_variable returns NULL
-         (it will if you try to shadow a readonly or noassign variable).
-         Fixes bug reported by Richard Tollerton <rich.tollerton@ni.com>
+       - split_at_delims: if SD_NOQUOTEDELIM is in the flags argument, don't
+         treat `'' and `"' as candidates for possible sequences of delimiters,
+         even if they're part of the delimiter set (the delims argument).
+         Fixes problem with completing lines like `foo --bar='quux baz' xx'
+         reported by Nick Patavalis <npat@efault.net>
 
-                                  2/16
+                                  2/15
                                   ----
-variables.c
-       - make_local_variable: print error messager if an attempt is made to
-         create a local variable shadowing a `noassign' variable.  Previously
-         we just silently refused to do it
+copy_cmd.c
+       - copy_word_list: build the list in the right order, avoiding having
+         to reverse it at the end. Helps with long argument lists
 
-trap.[ch]
-       - get_original_signal: now global so rest of the shell can use it
+shell.c
+       - bind_args: build the argument list in the right order, avoiding
+         having to reverse it at the end.
+       - bind_args: only call push_args to save argc and argv as BASH_ARGC
+         and BASH_ARGV if debugging mode is enabled (debugging_mode != 0).
+         Inspired by report from Ambrose Feinstein <ambrose@google.com>
+       - bind_args: note that we've saved BASH_ARGC and BASH_ARGV by setting
+         bash_argv_initialized
+       - shell_reinitialize: reset bash_argv_initialized back to 0 so
+         BASH_ARGV and BASH_ARGC will be recreated if we're in debugging mode
 
-sig.c
-       - initialize_shell_signals: install a signal handler for SIGTERM
-         that does nothing except set a sigterm_received flag instead of
-         ignoring it with SIG_IGN, as long as SIGTERM is not ignored when
-         the shell is started.  Use get_original_signal early to get the
-         original handler, since we will do that later anyway
-       - set_signal_handler: if installing sigterm_sighandler as the SIGTERM
-         handler, make sure to add SA_RESTART flag to make it as close to
-         SIG_IGN as possible
-
-sig.h
-       - sigterm_sighandler: new extern declaration
-
-quit.h
-       - RESET_SIGTERM: set sigterm_receved to 0
-       - CHECK_SIGTERM: check sigterm_received; if it's non-zero, treat it
-         as a fatal signal and call termsig_handler to exit the shell
+variables.c
+       - save_bash_argv: new function, initializes BASH_ARGV and BASH_ARGC
+         from the saved positional parameters
+       - init_bash_argv: initialize BASH_ARGV and BASH_ARGC if
+         bash_argv_initialized == 0
 
-jobs.c
-       - make_child: call RESET_SIGTERM just before fork() so we can detect
-         if the child process received a SIGTERM before it's able to change
-         the signal handler back to what it was when the shell started
-         (presumably SIG_DFL).  Only has effect if the shell installed
-         sigterm_sighandler for SIGTERM, interactive shells that were not
-         started with SIG_IGN as the SIGTERM handler
-       - make_child: call RESET_SIGTERM in the parent after fork() so the
-         rest of the shell won't react to it
+builtins/shopt.def
+       - shopt_set_debug_mode: if we're turning on debug mode, initialize
+         BASH_ARGC and BASH_ARGV if bash_argv_initialized == 0
 
+                                  2/16
+                                  ----
 execute_cmd.c
-       - execute_simple_command: call CHECK_SIGTERM after make_child in child
-         to catch SIGTERM received after fork() and before restoring old
-         signal handlers
-       - execute_disk_command: call CHECK_SIGTERM after make_child in child
-         process after restoring old signal handlers and again just before
-         calling shell_execve.  Fixes race condition observed by
-         Padraig Brady <p@draigbrady.com> when testing with his `timeout'
-         program
+       - execute_function: make sure BASH_ARGV and BASH_ARGC are initialized
+         before calling push_args (and before calling remember_args)
 
-lib/readline/display.c
-       - open_some_spaces: new function, subset of insert_some_chars that just
-         opens up a specified number of spaces to be overwritten
-       - insert_some_spaces: now just calls to open_some_spaces followed by
-         _rl_output_some_chars
-       - update_line: use col_temp instead of recalculating it using
-         _rl_col_width in the case where we use more columns with fewer bytes
-       - update_line: use open_some_spaces and then output the right number
-         of chars instead of trying to print new characters then overwrite
-         existing characters in two separate calls.  This includes removing
-         some dodgy code and making things simpler.  Fix from Egmont
-         Koblinger <egmont@gmail.com>
-       - use new variable `bytes_to_insert' instead of overloading temp in
-         some code blocks (nls - nfd, bytes that comprise the characters
-         different in the new line from the old)
+builtins/source.def
+       - source_builtin: make sure BASH_ARGV and BASH_ARGC are initialized
+         before calling push_args (and before calling remember_args)
 
-                                  2/18
-                                  ----
-redir.c
-       - do_redirection_internal: add undoable redirection for the implicit
-         close performed by the <&n- and >&n- redirections.  Fixes bug
-         reported by Stephane Chazelas <stephane.chazelas@gmail.com>
+builtins/evalfile.c
+       - _evalfile: if the shell compatibility level is 44 or lower, make
+         sure BASH_ARGV and BASH_ARGC are initialized before calling
+         array_push
 
-                                  2/19
-                                  ----
-sig.c
-       - termsig_handler: an interactive shell killed by SIGHUP and keeping
-         command history will try to save the shell history before exiting.
-         This is an attempt to preserve the save-history-when-the-terminal-
-         window-is-closed behavior
+builtins/shopt.def
+       - compat44: new shell option. This will be the last compatXX option
+
+doc/{bash.1,bashref.texi}
+       - compat44: document new shell option
 
                                   2/21
                                   ----
-braces.c
-       - brace_expand: if a sequence expansion fails (e.g. because the
-         integers overflow), treat that expansion as a simple string, including
-         the braces, and try to process any remainder of the string.  The
-         remainder may include brace expansions.  Derived from SuSE bug
-         804551 example (https://bugzilla.novell.com/show_bug.cgi?id=804551)
+builtins/common.h
+       - ISOPTION: check s[1] before s[2] to avoid out of bound reads. Fixes
+         bug reported by jeremy@feusi.co
 
-                                  2/23
-                                  ----
-{quit,sig}.h,sig.c
-       - sigterm_received declaration now in sig.h; type is sig_atomic_t
-       - sigwinch_received type now sig_atomic_t
-       - sig.h includes bashtypes.h and <signal.h> if SIG_DFL not defined
-         (same logic as trap.h) to pick up sig_atomic_t
+input.h
+       - B_SHAREDBUF: new flag for buffered input fds, indicates that this
+         fd shares its b_buffer with another fd
 
-unwind_prot.c
-       - include sig.h before quit.h (reverse order)
+input.c
+       - duplicate_buffered_stream: when duplicating *from* the buffer
+         corresponding to bash input, make sure the new buffer has B_SHAREDBUF
+         in the flags, because copy_buffered_stream copies pointers
+       - duplicate_buffered_stream: if the buffer being copied to has the
+         B_SHAREDBUF flag set, make sure the b_buffer doesn't get freed.
+         Fixes use-after-free bug reported by jeremy@feusi.co
+       - save_bash_input,close_buffered_stream: make sure a buffer with
+         B_SHAREDBUF set has its b_buffer set to NULL before calling
+         free_buffered_stream
 
-                                  2/27
+                                  2/24
                                   ----
-builtins/shopt.def
-       - reset_shopt_options: make sure check_window_size is reset to the
-         default from config.h, not unconditionally to 0
-
-jobs.[ch]
-       - last_made_pid, last_asynchronous_pid: now volatile.  Change from SuSE
-
-jobs.c
-       - wait_for: if we're using sigaction to install a handler for SIGCHLD,
-         make sure we specify SA_RESTART
-
-lib/{tilde,readline}/shell.c
-       - get_home_dir: instead of looking in the password file every time,
-         look once and cache the result
-
-sig.[ch]
-       - sigwinch_received, sigterm_received: now `volatile' qualified
-
-sig.c,quit.h
-       - interrupt_state,terminating_signal: now sig_atomic_t
-
-                                   3/1
-                                   ---
-MANIFEST,examples/*
-       - removed around 120 files without FSF copyrights; requested by
-         Karl Berry in early January
-
-                                   3/2
-                                   ---
-lib/malloc/malloc.c
-       - morecore: only check whether SIGCHLD is trapped if SIGCHLD is defined
-
-doc/bashref.texi
-       - Fixed most of the examples in the GNU Parallel section to use better
-         shell idioms following complaints on bug-bash; added a couple of
-         examples and smoothed out the text
-
-quit.h
-       - include "sig.h" for sig_atomic_t
-
-lib/readline/display.c
-       - update_line: when inserting one or more characters at the end of
-         the display line in a non-multibyte environment, just write from the
-         first difference to the end of the line and return. We don't have
-         to adjust _rl_last_c_pos.  This is needed to adjust from the old
-         two-part copy to a single call to _rl_output_some_chars (change of
-         2/16)
-
-                                   3/4
-                                   ---
-Makefile.in,doc/Makefile.in
-       - PACKAGE_TARNAME, docdir: new variables substituted by autoconf
-       - OTHER_DOCS,OTHER_INSTALLED_DOCS: new variables with auxiliary
-         documentation files to be installed into $(docdir)
-       - install: add new rule to install $(OTHER_DOCS)
-       - uninstall: add new rule to uninstall $(docdir)/$(OTHER_INSTALLED_DOCS)
-
-doc/bash.1
-       - add URL to `POSIX' file in `SEE ALSO' section; put pointer to that
-         section in --posix and set -o posix descriptions
-
-examples/
-       - removed around 110 examples at the request of the FSF due to copyright
-         issues
+subst.c
+       - parameter_brace_expand_error: add parameter saying whether or not
+         we are checking whether value is null, so we can have different
+         error messages for ${x:?} and ${x?}. Report and fix from
+         don fong <dfong@dfong.com>
 
                                    3/5
                                    ---
-builtins/setattr.def
-       - readonly: modified help text slightly to make it clearer that
-         functions aren't changed or displayed unless the -f option is given.
-         Report from <gotmynick@gmail.com>
-
-                                   3/9
-                                   ---
-include/typemax.h
-       - SIZE_MAX: define to 65535 (Posix minimum maximum) if not defined
-
-parse.y
-       - include "typemax.h" for possible SIZE_MAX definition, make sure we
-         include it after shell.h
-
-{braces,expr}.c
-       - include "typemax.h" for possible INTMAX_MIN and INTMAX_MAX definitions
+lib/readline/bind.c
+       - _rl_read_file: instead of calling stat/open on the passed filename,
+         use open/fstat to avoid one possible filename translation and close
+         a small (benign) race condition. Report and fix from Roy Ivy
+         <roy.ivy.iii@gmail.com>
 
-                                  3/10
+                                  3/11
                                   ----
-bashline.c
-       - bash_default_completion: make sure completion type of `!' (same as
-         TAB but with show-all-if-ambiguous set) and glob-word-completion
-         sets rl_filename_completion_desired to 0 so extra backslashes don't
-         get inserted by `quoting' the completion.  We can't kill all the
-         matches because show-all-if-ambiguous needs them.   Bug report from
-         Marcel (Felix) Giannelia <info@skeena.net>
-
-[bash-4.3-alpha frozen]
+variables.c
+       - makunbound: if new variable localvar_unset is non-zero, mark local
+         vars in previous scopes as invisible and unset so they will show
+         up as unset until that previous scope returns (similar to how local
+         variables in the current local scope are handled). localvar_unset
+         is currently set to 0 with no way for a script to change its value.
+         Eventually there will be an option to modify it.  From a bug-bash
+         discussion started by Nikolai Kondrashov <spbnick@gmail.com> back
+         on 2/11/2018
 
-                                  3/14
+                                  3/13
                                   ----
-general.c
-       - trim_pathname: use memmove instead of memcpy since the source and
-         destination pathnames may overlap.  Report and fix from Matthew
-         Riley <mattdr@google.com>
+subst.c
+       - expand_word_list_internal: short-circuit and exit right away if a
+         variable assignment preceding a special builtin fails in posix mode
+       - expand_word_list_internal: if a variable assignment precedes an
+         empty command name (after expansion), fix to exit right away when
+         the shell is in posix mode
 
-                                  3/18
+                                  3/15
                                   ----
-configure.ac
-       - socklen_t is defined as `unsigned int' if configure can't find it
+doc/{bash.1,bashref.texi}
+       - Add text to Pathname Expansion clarifying that a slash must be
+         matched by a slash in the pattern when matching pathnames, but
+         not in other matching contexts. Suggested by <stormy1777@yahoo.com>
 
-                                  3/20
-                                  ----
-lib/readline/complete.c
-       - S_ISVTX: since it's not defined on all platforms (Minix), make sure
-         its use is protected with #ifdef
+builtins/common.c
+       - read_octal: allow octal numbers greater than 777 to accommodate
+         modes and umasks that include sticky/setuid/setgid bits. Report
+         and fix from Martijn Dekker <martijn@inlv.org>
 
-                                  3/21
+                                  3/19
                                   ----
-doc/{bash.1,bashref.texi}
-       - Added mention of ${!name[@]} and ${!name[*]} expansions to get all
-         indices of an array.  Suggested by Jonathan Leffler
-         <jonathan.leffler@gmail.com>
+lib/readline/bind.c
+       - rl_generic_bind: make sure we only assign to prevkey in the loop
+         if the key sequence index is > 0, so ic is valid. Fixes bug
+         reported by Koichi Murase <myoga.murase@gmail.com>
 
-                                  3/24
-                                  ----
-subst.h
-       - SD_IGNOREQUOTE: new define for skip_to_delim; if set, means that
-         single quotes (for now) will be treated as ordinary characters
+builtins/read.def
+       - read_builtin: be slightly less aggressive checking for timeouts and
+         SIGALRM: if we successfully read a character, don't check for a
+         timeout until we store or process it. Fixes timing problem
+         reported by Rob Foehl <rwf@loonybin.net>
 
-subst.c
-       - skip_to_delim: handle SD_IGNOREQUOTE. no callers use it for now
+                                  3/22
+                                  ----
+sig.c
+       - termsig_handler: add a call to exit(1) after the kill, just in case
+         there are circumstances where the SIG_DFL signal handler is
+         ignored.  Report from Andrei Vagin <avagin@gmail.com>
 
                                   3/25
                                   ----
-support/config.{guess,sub}
-       - updated to versions from autoconf-2.69
+lib/readline/bind.c
+       - _rl_function_of_keyseq_internal: new internal function thta takes a
+         length parameter to accommodate NUL in the key sequence. Patch from
+         Koichi Murase <myoga.murase@gmail.com>
+       - rl_function_of_keyseq_len: new application-callable function that
+         takes a length parameter; otherwise equivalent to rl_function_of_keyseq.
 
-                                  3/31
-                                  ----
-lib/sh/shquote.c
-       - sh_single_quote: short-circuit quoting a single "'" instead of
-         creating a long string with empty single-quoted strings
+lib/readline/readline.h
+       - rl_function_of_keyseq_len: add extern declaration for new function
 
-parser.h
-       - DOLBRACE_QUOTE2: new define, like DOLBRACE_QUOTE, but need to single-
-         quote results of $'...' expansion because quote removal will be
-         done later.  Right now this is only done for ${word/pat/rep}
+lib/readline/doc/rltech.texi
+       - rl_function_of_keyseq_len: document new function interface
 
-parse.y
-       - parse_matched_pair: set state to DOLBRACE_QUOTE2 for pattern
-         substitution word expansion so we don't treat single quote specially
-         in the pattern or replacement string
-       - parse_matched_pair: if we're parsing a dollar-brace word expansion
-         (${...}) and we're not treating single quote specially within
-         double quotes, single-quote the translation of $'...' ansi-c
-         escaped strings.  Original report and fix from Eduardo A.
-         Bustamante López <dualbus@gmail.com>
+bashline.c
+       - bash_execute_unix_command: use rl_function_of_keyseq_len to handle
+         key sequences with embedded NULs (\C-@). Fix from Koichi Murase
+         <myoga.murase@gmail.com>
 
-subst.c
-       - extract_dollar_brace_string: ${word/pat/rep} scanning now sets the
-         DOLBRACE_QUOTE2 flag instead of DOLBRACE_QUOTE so we don't treat
-         single quotes specially within a double-quoted string
+lib/readline/bind.c
+       - rl_bind_key_if_unbound,rl_bind_key_if_unbound_in_map: run the KEY
+         argument through rl_untranslate_keyseq to produce a symbolic sequence
+         that can encode \C-@.
+       - rl_bind_keyseq_if_unbound_in_map: translate the key sequence in order
+         to accommodate symbolic key sequences; should be a no-op for `raw'
+         key sequences such as the arrow key seqeunces from terminfo. Change
+         from Koichi Murase <myoga.murase@gmail.com>
+
+                                   4/2
+                                   ---
+jobs.c
+       - wait_for: when setting the SIGINT signal handler to wait_sigint_handler
+         make sure we're not setting old_sigint_handler recursively, as we
+         can when running an external command in a trap we took after a
+         command exited due to SIGINT. We don't want to overwrite
+         old_sigint_handler here. Fixes bug reported by Dr. Werner Fink
+         <werner@suse.de>
 
 execute_cmd.c
-       - fix_assignment_words: skip over assignment statements preceding a
-         command word before trying to figure out whether or not assignment
-         statements following a possible declaration command should be 
-         treated specially.  Fixes bug reported by Dan Douglas
-         <ormaaj@gmail.com>
+       - execute_disk_command: when there is a command_not_found_hook, make
+         sure the subshell turns off job control before running it, in case
+         it runs processes. We don't want it to manipulate process groups.
+         Fixes bug reported by ÐиÑиллов Ðима <dk.1997-fast@yandex.ru>
+       - execute_command_internal: make sure the command run by the `command'
+         builtin doesn't cause the ERR trap to be executed; wait for the
+         status to be returned by the command builtin. Fixes bug reported by
+         Martijn Dekker <martijn@inlv.org>
 
                                    4/4
                                    ---
-lib/readline/readline.c
-       - _rl_dispatch_subseq: only call _rl_vi_set_last (and check whether
-         the key is a text modification command) if the key sequence length
-         is 1.  That keeps the arrow keys from setting the last command
-         when called in vi command mode.  Fixes bug reported by Ian A.
-         Watson <watson_ian_a@lilly.com>
+subst.c
+       - process_substitute: handle longjmp back to top_level and function
+         returns (return_catch) in the child process, like command
+         substitution, so we don't longjmp back to some arbitrary spot from
+         the `exit' or `return' builtins, or on an expansion error, like
+         the command timing code. Fixes bug reported by Basin Ilya
+         <basinilya@gmail.com>
 
                                    4/6
                                    ---
-lib/readline/bind.c
-       - rl_parse_and_bind: when parsing a double-quoted string as the value
-         of a variable, make sure we skip past the leading double quote.
-         Fix from Andreas Schwab <schwab@linux-m68k.org>
+parse.y
+       - read_token_word: when reading a matched pair of backquotes as part
+         of a word, treat it as quoted so the characters are read as a single
+         word, but do not let the presence of the backquote mark the word as
+         quoted. Fixes here-document delimiter bug reported by Denys Vlasenko
+         <dvlasenk@redhat.com>
 
-variables.c
-       - hash_lookup: set new local variable last_table_searched to the table
-         a successful lookup appears in; tested in make_local_variable to
-         solve the problem below
-       - make_local_variable: if we find a variable with the tempenv flag
-         set at the same `level' as variable_context', but not found in the
-         temporary_env (temp environment preceding the builtin), return it.
-         The temp environment preceding the function call has already been
-         merged (in execute_function) into the list of variable contexts the
-         function sees as shell_variables by the time this is called.  Fixes
-         inconsistency pointed out by Dan Douglas <ormaaj@gmail.com>
+                                   4/7
+                                   ---
+execute_cmd.c
+       - execute_case_command: call quote_string_for_globbing with the
+         QGLOB_CTLESC flag for both quoted and unquoted words, so it will
+         remove CTLESC/CTLESC in all cases while converting other quoted
+         characters to use a preceding backslash. Bug reported by
+         Martijn Dekker <martijn@inlv.org>
 
-subst.c
-       - expand_arith_string: expanded out contents of expand_string,
-         expand_string_internal, expand_string_if_necessary to create a
-         WORD_DESC and call call_expand_word_internal() on it directly.
-         We don't want process substitution to be performed ( 1<(2) ) should
-         mean something different in an arithmetic expression context.
-         It doesn't work to just turn on the DQUOTE flag, since that means
-         that things like ${x["expression"]} are not expanded correctly.
-         Fixes problem pointed out by Dan Douglas <ormaaj@gmail.com>
+                                   4/9
+                                   ---
+smatch.c
+       - posix_cclass_only: helper function that checks whether a pattern has
+         only posix single-byte character classes ([:alpha:], etc.) or has
+         none at all
+       - xstrmatch: if running in a multibyte locale, make sure to short-
+         circuit to the single-byte matching code only if there are no
+         unrecognized character class names, since the wide character ctype
+         functions allow locales to define their own character class names
+         (e.g., "hyphen"). Fixes issue reported by yangyajing <yyj_cqu@163.com>
 
-                                  4/13
+                                  4/10
                                   ----
-subst.c
-       - process_substitute: run the EXIT trap before exiting, as other
-         shells seem to.  Fixes problem pointed out by Dan Douglas
-         <ormaaj@gmail.com>
+configure.ac,cross-build/qnx.cache
+       - qnx: add a configure cache file for cross-building, treat qnx 7 like
+         qnx 6 in terms of cpp options. Fix from Brian Carnes
+         <bcarnes@google.com>
+
+aclocal.m4
+       - BASH_CHECK_DEV_STDIN: experimental change to test for /dev/stdin
+         independently of /dev/fd or /proc/self/fd. Suggested for QNX by
+         Brian Carnes <bcarnes@google.com>
 
-lib/readline/readline.c
-       - readline_internal_setup: call rl_vi_insertion_mode to enter vi
-         mode instead of rl_vi_insert_mode to avoid resetting the saved last
-         command information.  Posix says that `.' can repeat a command
-         that was entered on a previous line so we need to save the info.
-         Fixes bug reported by Ian A. Watson <watson_ian_a@lilly.com>
 
-                                  4/14
+                                  4/11
                                   ----
-lib/readline/complete.c
-       - rl_completion_matches: make sure xrealloc returns something non-null
-         (can happen when interrupted by a signal) before trying to add
-         matches to match_list
+lib/glob/glob.c
+       - glob_testdir: return -2 if DIR is a symlink, to differentiate it from
+         any other kind of non-directory file
+       - glob_vector: if we have GX_ALLDIRS (globstar), we want to skip over
+         symlinks to directories, since we will pick up the real directory
+         later. Fixes incompatibility reported by Murukesh Mohanan
+         <murukesh.mohanan@gmail.com>
 
-subst.c
-       - array_remove_pattern: return NULL right away if array_variable_part
-         returns an invisible variable
-       - array_length_reference: handle array_variable_part returning an
-         invisible variable
-       - get_var_and_type: handle array_variable_part returning an invisible
-         variable
+bashline.c
+       - bash_execute_unix_command: changes to make READLINE_POINT apply to
+         characters instead of bytes when in a multibyte locale. Report and
+         fix from Koichi Murase <myoga.murase@gmail.com>
 
-                                  4/15
+                                  4/12
                                   ----
-execute_cmd.c
-       - execute_command_internal: make sure to run the EXIT trap for group
-         commands anywhere in pipelines, not just at the end.  From a point
-         raised by Andreas Schwab <schwab@linux-m68k.org>
-
-variables.c
-       - bind_int_variable: make sure invisible flag is unset.  Fixes problems
-         like "declare -ai a; : $(( a[4]=4 ));"
+builtins/evalstring.c
+       - parse_and_execute_cleanup: now takes an argument which is the value
+         of running_trap at some point before parse_and_execute was called;
+         changed callers in sig.c, builtins/evalfile.c
 
-arrayfunc.c
-       - array_variable_part: return variable even if invisible flag set,
-         callers must handle invisible vars
+builtins/common.h
+       - parse_and_execute_cleanup: changed prototype
 
-                                  4/18
+                                  4/13
                                   ----
-builtins/set.def
-       - unset_builtin: if -n flag given, call unset_nameref instead of
-         unset_variable
-
-variables.c
-       - find_variable_nameref: print warning message if nameref circular
-         reference detected, return NULL and let caller deal with it
+builtins/evalstring.c
+       - parse_and_execute_cleanup: if the argument holding the previous state
+         of running_trap is the same value as the current running_trap state,
+         don't call run_trap_cleanup: assume that there is a caller who will
+         take care of the cleanup after this returns. Fixes recursive trap
+         call on "eval return" reported by Martijn Dekker <martijn@inlv.org>
 
-builtins/declare.def
-       - declare_builtin: only disallow global references at this point if
-         we are at the global scope
+parse.y
+       - read_a_line: if remove_quoted_newline is non-zero, indicating the
+         here-document delimiter is unquoted, we will be running the contents
+         of the here-document through word expansion and need to quote CTLESC
+         and CTLNUL in the input. Fixes bug with ^A in here document reported
+         by Jorge Alberto Baca Garcia <bacagarcia@me.com>
 
-                                  5/16
+                                  4/18
                                   ----
-configure.ac
-       - update release status to beta
+pathexp.c
+       - quote_string_for_globbing: make sure the QGLOB_CTLESC code handles
+         both CTLESC CTLESC and CTLESC CTLNUL in the same way. Fixes bug
+         reported by Martijn Dekker <martijn@inlv.org>
 
-                                  5/23
+                                  4/19
                                   ----
-trap.c
-       - run_pending_traps: save and restore pipeline around calls to
-         evalstring() in case we get a trap while running a trap. Have to
-         figure out the recursive running traps issue elsewhere.  Fixes
-         bug reported by Roman Rakus <rrakus@redhat.com>
-       - run_pending_traps: make sure to set running_trap to the appropriate
-         signal value when running a trap command
-       - run_pending_traps: short-circuit immediately if running_trap set
-         when invoked.  Could change this later to only skip if it would
-         run the same trap as currently being run (running_trap == sig + 1)
-
-configure.ac
-       - add warning if bison not found
+execute_cmd.c
+       - execute_command_internal: before executing any command in the current
+         shell, and before copying any existing FIFO list, call
+         reap_procsubs to unlink or close any process substitution pipes
+         associated with processes that have exited. Fixes hang in test suite
+         when trying to open a FIFO with no process having it open for
+         reading
 
-lib/readline/doc/rltech.texi
-       - new section with an example program illustrating the callback
-         interface. Suggested by Peng Yu <pengyu.ut@gmail.com>
+                                  4/26
+                                  ----
+parse.y
+       - read_token_word: if returning REDIR_WORD for a {id}>foo construct,
+         for example, make sure to assign the_word to yylval.word before
+         returning, in case a recursive call to the parser overwrites it
+         (e.g., when evaluating array indexes). From a message to
+         austin-group-l from Stephane Chazelas <stephane.chazelas@gmail.com>
 
-examples/loadables/Makefile.in
-       - remove references to `cut' and `getconf', which were removed in
-         early March
+lib/glob/sm_loop.c
+       - BRACKMATCH: if we have an invalid character class in an otherwise
+         well-formed bracket expression, don't try to match each character
+         of the (invalid) class individually; just skip over the class and
+         move on.  From a message on the austin-group list from
+         Stephane Chazelas <stephane.chazelas@gmail.com>
 
-                                  5/28
+                                  4/27
                                   ----
-lib/sh/pathphys.c
-       - sh_realpath: correct inverted two arguments to call to sh_makepath.
-         Report and fix from Julien Thomas <jthomas@exosec.fr>
+variables.c
+       - push_exported_var,push_func_var,push_temp_var: make sure to set the
+         context correctly in the variable we bind in the previous (non-temp)
+         scope. Report from Martijn Dekker <martijn@inlv.org>
 
-                                   6/7
-                                   ---
-execute_cmd.c
-       - executing_line_number: the else clauses that are conditional on
-         various options being defined can simply be if clauses -- they are
-         mutually exclusive and all have `return' in the body.  Fixes bug
-         reported by Flavio Medeiros <flaviomotamedeiros@gmail.com>
+pathexp.c
+       - unquoted_glob_pattern_p: a pattern that contains a backslash can
+         have it removed by the matching engine (since backslash is special
+         in pattern matching), so if the pattern contains a backslash, and
+         does not end in a backslash, we need to return true. Fixes bug
+         reported by Robert Elz <kre@bmunnari.OZ.AU>
 
-                                  6/25
-                                  ----
-lib/readline/readline.c
-       - readline_internal_setup: only sent the meta-key enable string to the
-         terminal if we've been told to use one and the terminal has been
-         successfully initialized (RL_ISSTATE (RL_STATE_TERMPREPPED) != 0).
-         Suggested by Dan Mick <dan.mick@inktank.com>
+lib/glob/gm_loop.c
+       - INTERNAL_GLOB_PATTERN_P: same change to return TRUE for a backslash
+         that doesn't end the pattern
 
-lib/readline/signals.c
-       - _rl_signal_handler: call any defined signal hook after calling
-         rl_resize_terminal when handling a SIGWINCH.  We already have called
-         the original SIGWINCH handler but will not be resending the signal
-         to ourselves
+lib/sh/timeval.c
+       - print_timeval: use locale_decpoint() instead of fixed `.' to print
+         decimal point. Bug report in austin-group email from Joerg Schilling
+         <Joerg.Schilling@fokus.fraunhofer.de>
 
-                                  6/27
-                                  ----
-lib/readline/doc/history.3, doc/bash.1
-       - fix description of the `$' modifier to note that it expands to the
-         last *word*, which is not always the last argument.  Report from
-         ariyetz@gmail.com via gnu.org RT
+lib/sh/clock.c
+       - print_clock_t: use locale_depoint() in the same way as print_timeval
 
-                                  6/29
+                                  4/29
                                   ----
-lib/glob/smatch.c
-       - glob_asciiranges: initialize to value of GLOBASCII_DEFAULT instead
-         of 0 (0 if not defined)
-
-configure.ac,config.h.in
-       - --enable-glob-asciiranges-default: new option, controls the value of
-         GLOBASCII_DEFAULT; use it to turn globasciiranges shopt option on
-         by default
+subst.c
+       - expand_cond_node: if special != 0, make sure to add QGLOB_CTLESC
+         to the flags passed to quote_string_for_globbing. Same issue as the
+         one with `case' fixed on 4/7, report from Martijn Dekker
+         <martijn@inlv.org>
 
-doc/bashref.texi
-       - document new --enable-glob-asciiranges-default configure option
+                                  4/30
+                                  ----
+redir.c
+       - do_redirection_internal: r_close_this: if the file descriptor is
+         already closed before the shell is asked to close it, make sure to
+         add an undo list redirect to make sure it stays closed. Report from
+         Martijn Dekker <martijn@inlv.org>
 
+                                   5/2
+                                   ---
 variables.c
-       - assign_in_env: implement += value appending semantics for assignments
-         preceding command names
+       - push_posix_temp_var: new function, takes the SHELL_VAR * passed as
+         an argument and uses the name and value to create a global variable
+       - merge_temporary_env: if posixly_correct is set, call
+         push_posix_temp_var to create global variables, otherwise call
+         push_temp_var to preserve the old behavior. Right now, it's only
+         called when in posix mode, but that might change. This undoes the
+         change from 4/27 when in posix mode
 
-                                   7/4
+                                   5/3
                                    ---
-expr.c
-       - set lasttok = NUM in all of the functions that result in a number,
-         even if it's a boolean, to avoid errors with constructs like
-         1 * x = 1, which should be an asignment error.  Fixes problem
-         pointed out by Dan Douglas <ormaaj@gmail.com>
-
-parse.y
-       - decode_prompt_string: don't bother to call strcpy if
-         polite_directory_format returns its argument unchanged.  It's not
-         necessary and Mac OS X 10.9 aborts because of a supposed overlapping
-         string copy.  Bug and fix from simon@hitzemann.org
-
-subst.c
-       - parameter_brace_find_indir: new function, code from
-         parameter_brace_expand_indir that looks up the indirectly-referenced
-         variable, but does not expand it
-       - parameter_brace_expand_indir: call parameter_brace_find_indir to
-         look up indirected variable reference
-       - get_var_and_type: call parameter_brace_find_indir if it looks like we
-         are trying to manipulate an indirect variable reference like
-         ${!b%%foo}.  This makes a difference if !b references an array
-         variable.  Bug report from Dan Douglas <ormaaj@gmail.com>
+sig.c
+       - struct that holds the terminating signal information has a new
+         field: whether that signal is expected to cause a core dump
+       - termsig_handler: if the call to kill(2) doesn't kill the process,
+         we have a problem. If our pid is not 1, we just exit with status
+         128+sig (fake the sig exit status). If the pid is 1, we assume
+         we're in a Linux pid namespace and aren't allowed to send a signal
+         to ourselves. If we need to generate a core dump, we try to get
+         the kernel to SIGSEGV us by dereferencing location 0. If not, we
+         just exit with 128+sig. From a report and patch from Andrei Vagin
+         <avagin@virtuozzo.com>
 
-                                   7/6
+                                   5/4
                                    ---
-lib/sh/casemod.c
-       - sh_modcase: make sure argument passed to is_basic is <= UCHAR_MAX,
-         since cval can convert something to a wchar_t greater than UCHAR_MAX.
-         Fixes bug reported by Tomasz Tomasik <scx.mail@gmail.com>
+bashline.c
+       - bash_execute_unix_command: make sure that parse_and_execute is called
+         with newly-allocated memory to avoid prematurely freeing the
+         command. Report and fix from Koichi Murase <myoga.murase@gmail.com>
 
-                                   7/8
+                                   5/7
                                    ---
-lib/readline/history.c
-       - add_history_time: if history_length == 0, referencing history_length
-         - 1 will result in an array bounds error, so make history_length be
-         at least 1 before going on.  Fixes bug reported by Geng Sheng Liu
-         <gsliu.tju@gmail.com>
-
-builtins/setattr.def
-       - show_func_attributes: display definition (if NODEFS argument is 0) and
-         attributes for a particular function; used by `declare -fp name'
-
-builtins/declare.def
-       - declare_internal: call show_func_attributes if -f supplied with -p.
-         Fixes inconsistency observed by Linda Walsh <bash@tlinx.org>
-
-builtins/common.h
-       - new extern declaration for show_func_attributes
-
-builtins/read.def
-       - read_builtin: check the first supplied variable name for validity
-         before attempting to read any input, since we know we will have to
-         at least use that one.  Don't check any other names yet.  Suggested
-         by jidanni@jidanni.org
+builtins/shopt.def
+       - syslog_history: a shell option to control whether history is logged
+         to syslog; can be modified at runtime. Original patch from
+         Siteshwar Vashisht <svashisht@redhat.com>
 
-                                  7/10
-                                  ----
-redir.c
-       - do_redirection_internal: when closing a file descriptor with
-         r_close_this ([n]<&-) count close errors as redirection errors if
-         errno ends up as EIO or ENOSPC.  Originally reported back in April
-         2012 by Andrey Zaitsev <jstcdr@gmail.com>
+config-top.h
+       - SYSLOG_SHOPT: new configurable option, determines whether there is a
+         shell option to control syslogging history lines at runtime and sets
+         the default value of the option
 
-                                  7/11
-                                  ----
-redir.c
-       - do_redirection_internal: before calling check_bash_input, make sure
-         that we don't call check_bash_input for an asynchronous process that
-         is replacing stdin with something else. The seek backwards affects
-         the parent process as well, since parents and children share the
-         file pointer. Fixes problem originally reported in March 2013 by
-         Martin Jackson <mjackson220.list@gmail.com>
-
-                                  7/13
-                                  ----
-doc/{bash.1,bashref.texi}
-       - slight change to add a description of `shopt -o' suggested by Bruce
-         Korb <bruce.korb@gmail.com>
-
-                                  7/19
-                                  ----
-lib/readline/histfile.c
-       - history_do_write: if close returns < 0, make sure we restore the
-         backup history file and return a non-zero value
-       - history_truncate_file: if write or close return < 0, make sure we
-         return a non-zero value
-
-[bash-4.3-beta frozen]
-
-                                  7/21
-                                  ----
-lib/readline/isearch.c
-       - rl_display_search: now takes an entire search context flags word as
-         the second argument, instead of just reverse flag; changed callers
-       - rl_display_search: if the search has failed, add `failed ' to the
-         beginning of the search prompt
-       - _rl_isearch_dispatch: if the search has failed, display the entire
-         search string with an indication that the search failed but with the
-         last matching line.  Suggested by jidanni@jidanni.org
-
-command.h
-       - W_ASSIGNINT: new word flag; used internally for make_internal_declare
-         and set by fix_assignment_words
-
-execute_cmd.c
-       - fix_assignment_words: set W_ASSIGNINT if compound assignment and -i
-         given as option.  We don't do anything with the value yet
-
-subst.c
-       - shell_expand_word_list: rework the way the option list that is
-         passed to make_internal_declare is created
-
-                                   8/1
-                                   ---
-doc/{bash.1,bashref.texi}
-       - minor changes to description of $! based on a report from Chris
-         Down <chris@chrisdown.name>
-
-arrayfunc.c
-       - assign_array_element_internal: before trying to get an array's max
-         index to process a negative subscript, make sure the array exists.
-         Bug report from Geir Hauge <geir.hauge@gmail.com>
-
-                                   8/2
-                                   ---
-arrayfunc.c
-       - assign_array_element_internal: before using array_max_index() when
-         processing a negative subscript, make sure the variable is an array.
-         if it's not, use 0 as array_max_index assuming it's a string.
-         Fixes bug report from Geir Hauge <geir.hauge@gmail.com>
-
-                                   8/3
-                                   ---
-Makefile.in
-       - pcomplete.o: add dependency on $(DEFDIR)/builtext.h. Suggested by
-         Curtis Doty <curtis@greenkey.net>
-
-                                   8/5
-                                   ---
-lib/glob/sm_loop.c
-       - strcompare: short-circuit and return FNM_NOMATCH if the lengths of the
-         pattern and string (pe - p  and se - s, respectively) are not equal
-       - strcompare: don't bother trying to set *pe or *se to '\0' if that's
-         what they already are.  Fixes bug reported by Geir Hauge
-         <geir.hauge@gmail.com>
-
-                                   8/6
-                                   ---
-doc/{bash.1,bashref.texi},builtins/hash.def,lib/readline/doc/rluser.texi
-       - minor typo changes from Geir Hauge <geir.hauge@gmail.com>
-
-bultins/help.def
-       - show_longdoc: avoid trying to translate the empty string because it
-         often translates to some boilerplate about the project and
-         translation.  Report and fix from Geir Hauge <geir.hauge@gmail.com>
-
-                                   8/8
-                                   ---
-builtins/help.def
-       - help_builtin: try two passes through the list of help topics for each
-         argument: one doing exact string matching and one, if the first pass
-         fails to find a match, doing string prefix matching like previous
-         versions.  This prevents `help read' from matching both `read' and
-         `readonly', but allows `help r' to match everything beginning with
-         `r'.  Inspired by report from Geir Hauge <geir.hauge@gmail.com>
-
-                                  8/13
-                                  ----
-builtins/fc.def
-       - fc_builtin,fc_gethnum: calculate `real' end of the history list and
-         use it if -0 is specified as the beginning or end of the history
-         range to list.  Doesn't work for fc -e or fc -s by design.  Feature
-         requested by Mike Fied <micfied@gmail.com>
-
-                                  8/16
-                                  ----
-trap.c
-       - _run_trap_internal: use {save,restore}_parser_state instead of
-         {save,restore}_token_state. It's more comprehensive
-
-                                  8/23
-                                  ----
-doc/bash.1
-       - disown: remove repeated text.  Report and fix from Thomas Hood
-         <jdthood@gmail.com>
-
-                                  8/25
-                                  ----
-lib/readline/rltty.c
-       - set_special_char: fix prototype (last arg is rl_command_func_t *)
-
-sig.c
-       - set_signal_handler: return oact.sa_handler only if sigaction
-         succeeds; if it doesn't, return SIG_DFL (reasonable default).  From
-         https://bugzilla.redhat.com/show_bug.cgi?id=911404
-
-bashline.c
-       - attempt_shell_completion: fix to skip assignment statements preceding
-         command name even if there are no programmable completions defined.
-         From https://bugzilla.redhat.com/show_bug.cgi?id=994659
-       - attempt_shell_completion: if still completing command word following
-         assignment statements, do command completion even if programmable
-         completion defined for partial command name entered so far
-
-                                  8/26
-                                  ----
-pcomplete.c
-       - pcomp_filename_completion_function: make sure rl_filename_dequoting_function
-         is non-NULL before trying to call it.  Bug and fix from
-         Andreas Schwab <schwab@linux-m68k.org>
-
-bashline.c
-       - bash_command_name_stat_hook: if *name is not something we're going
-         to look up in $PATH (absolute_program(*name) != 0), just call the
-         usual bash_filename_stat_hook and return those results.  This makes
-         completions like $PWD/exam[TAB] add a trailing slash
-
-                                   9/2
-                                   ---
-builtins/read.def
-       - read_builtin: before comparing what we read to the delim, make sure
-         we are not supposed to be ignoring the delimiter (read -N).  We
-         set the delim to -1, but it's possible to read a character whose
-         int value ends up being between -1 and -128.  Fixes bug
-         reported by Stephane Chazelas <stephane.chazelas@gmail.com>
-
-doc/{bash.1,bashref.texi}
-       - word splitting: crib some language from Posix to make it clear that
-         characters in IFS are treated as field *terminators*, not field
-         *separators*.  Addresses issue raised by DJ Mills
-         <danielmills1@gmail.com>
-
-lib/readline/{util.c,rldefs.h}
-       - _rl_stricmp,_rl_strnicmp: now take const char * string arguments;
-         changed prototype declarations
-
-                                   9/5
-                                   ---
-doc/{bash.1,bashref.texi}
-       - [[: modify description of pattern matching to make it clear that the
-         match is performed as if the extglob option were enabled.  From Red
-         Hat bug https://bugzilla.redhat.com/show_bug.cgi?id=1002078
-
-                                  9/12
-                                  ----
-lib/readline/isearch.c
-       - _rl_isearch_dispatch: if we read an ESC and it's supposed to
-         terminate the search, make sure we check for typeahead with
-         _rl_pushed_input_available, since installing a hook function causes
-         typeahead to be collected in `ibuffer' (input.c).  If there is any,
-         make sure we still use the ESC as a prefix character.  Bug and fix
-         from Mike Miller <mtmiller@ieee.org>
-
-                                  9/16
-                                  ----
-builtins/{caller,cd,kill,pushd,wait}.def
-       - builtin_usage(): make sure call to this sets return status to
-         EX_USAGE
-
-                                  9/18
-                                  ----
-terminal.c
-       - rl_change_environment: new application-settable variable; if non-
-         zero (the default), readline will modify LINES and COLUMNS in the
-         environment when it handles SIGWINCH
-       - _rl_get_screen_size: if rl_change_environment is non-zero, use setenv
-         to modify LINES and COLUMNS environment variables
-
-readline.h
-       - rl_change_environment: new extern declaration for applications
-
-                                  9/22
-                                  ----
-configure.ac
-       - relstatus: bumped version to bash-4.3-beta2
-
-                                  9/24
-                                  ----
-
-lib/readline/readline.c
-       - bind_arrow_keys_internal: added more key bindings for the numeric key
-         pad arrow keys on mingw32.  Patch from Pierre Muller
-         <pierre.muller@ics-cnrs.unistra.fr>
-
-                                  10/19
-                                  -----
-
-bashline.c
-       - maybe_restore_tilde: version of restore_tilde that honors `direxpand';
-         calls restore_tilde after saving directory expansion hook if
-         necessary.  Report from Andreas Schwab <schwab@linux-m68k.org>
-
-builtins/cd.def
-       - -@: new option, allows cd to use `extended attributes' present in
-         NFSv4, ZFS; idea taken from ksh93.  Attributes associated with a
-         file are presented as a directory containing the attributes as
-         individual files.  Original patch contributed by Cedric Blancher
-         <cedric.blancher@gmail.com>
-
-                                  10/20
-                                  -----
-aclocal.m4
-       - BASH_CHECK_MULTIBYTE: check for wcwidth being broken with unicode
-         combining characters needs a value to use when cross-compiling.
-         Bug report from Bert Sutherland <bertsutherland@gmail.com>
-
-doc/{bash.1,bashref.texi}
-       - document new -@ option to cd builtin
-
-                                  10/28
-                                  -----
-lib/glob/{{gmisc,glob}.c,glob.h}
-       - extglob_pattern renamed to extglob_pattern_p, declared in glob.h
-
-subst.c
-       - expand_word_internal: typo fix: case to fix " $@\ " bug in bash-4.2
-         had a typo (& isexp instead of &&)
-
-                                  10/29
-                                  -----
-input.c
-       - getc_with_restart: make sure local_index and local_bufused are
-         reset to 0 before returning EOF, in case we are running an interactive
-         shell without line editing and ignoreeof is set.  Report and fix
-         from Yong Zhang <yong.zhang@windriver.com>
-
-lib/readline/search.c
-       - _rl_nsearch_init: take out extra third argument to rl_message; it
-         only matches prototype (and maybe format) in cases where
-         PREFER_STDARG and USE_VARARGS are both undefined, which is rare
-
-                                  10/31
-                                  -----
-subst.c
-       - process_substitute: when opening the named pipe in the child, open
-         without O_NONBLOCK to avoid race conditions.  Happens often on AIX.
-         Bug report and fix from Michael Haubenwallner
-         <michael.haubenwallner@salomon.at>
-
-builtins/ulimit.def
-       - RLIMIT_NTHR: if RLIMIT_PTHREAD is not defined, but RLIMIT_NTHR is,
-         use RLIMIT_NTHR (NetBSD)
-
-                                  11/5
-                                  ----
-locale.c
-       - set_default_locale_vars,set_locale_var: if TEXTDOMAINDIR has been
-         set, and default_dir has a non-null value, call bindtextdomain(3)
-         when TEXTDOMAIN is assigned a value.  Fixes problem reported by
-         Michael Arlt <qwertologe@googlemail.com>
-
-                                  11/6
-                                  ----
-builtins/cd.def
-       - cdxattr: only create synthetic pathname in `buf' if NDIRP argument
-         is non-null
-       - change_to_directory: if we have specified -@ and cdxattr returns
-         failure, fail immediately.  Fixes bug reported by Joshuah Hurst
-         <joshhurst@gmail.com>
-
-                                  11/12
-                                  -----
-redir.c
-       - print_redirection: change r_err_and_out (&>) and its append form,
-         r_append_err_and_out (&>>) cases to separate redirection operator
-         from filename by a space, in case we have a process substitution.
-         Fixes bug reported by admn ombres <admn.ombres@gmail.com>
-
-                                  11/15
-                                  -----
-execute_cmd.c
-       - execute_simple_command: don't close process substitution fds until
-         we are finished executing any current shell function.  Partial fix
-         for bug reported by John Dawson <john.dawson@gmail.com>
-
-support/shobj-conf
-       - add support for Darwin 13 (Mac OS X 10.9, Mavericks).  Based on a
-         report by Ludwig Schwardt <ludwig.schwardt@gmail.com>
-
-                                  11/20
-                                  -----
-[bash-4.3-rc1 frozen]
-
-                                  11/24
-                                  -----
-builtins/printf.def
-       - bind_printf_variable: make sure that the variable assigned to is
-         no longer marked as invisible. Fixes bug reported by NBaH
-         <nbah@sfr.fr>
-
-                                  11/28
-                                  -----
-jobs.c
-       - delete_old_job: fix off-by-one error in job index in call to
-         internal_warning. Bug report from Peter Cordes <peter@cordes.ca>
-
-                                  11/30
-                                  -----
-doc/bashref.texi
-       - add string to description of special parameters with name of
-         special parameter prefixed by a $, so you can search for $#,
-         for instance
-
-                                  12/2
-                                  ----
-lib/readline/{histexpand.c
-       - get_history_event: account for current_history() possibly returning
-         NULL. Report and fix from Pankaj Sharma <pankaj.s01@samsung.com>
-
-
-                                  12/11
-                                  -----
-
-lib/readline/parse-colors.c
-       - get_funky_string: don't call abort if we see something we can't
-         parse; just return an error
-       - _rl_parse_colors: if we encounter an error while parsing $LS_COLORS
-         we need to leave _rl_color_ext_list as NULL after freeing its
-         elements, then turn off _rl_colored_stats. Report and fix from Martin
-         Wesdorp <mwesdorp@casema.nl>
-
-                                  12/13
-                                  -----
-
-lib/readline/parse-colors.c
-       - _rl_parse_colors: if we encounter an unrecognized prefix, throw an
-         error but try to recover and go on to the next specification
-
-variables.c
-       - make_local_variable: for new variables this function creates, set
-         the att_invisible attribute.  All callers from declare_internal.
-         Indirectly, this is a fix for bug with `declare -n var; var=foo;'
-         reported by Pierre Gaston <pierre.gaston@gmail.com>
-       - bind_variable: if assigning to nameref variable that doesn't have
-         a value yet (e.g., with `declare -n var; var=foo'), don't try to
-         use the unset name. Fixes a segfault reported by Pierre Gaston
-         <pierre.gaston@gmail.com>
-
-execute_cmd.c
-       - execute_command_internal: make sure last_command_exit_value is set
-         to 0 after any command executed in the background.  Fixes bug
-         reported by Martin Kealey <martin@kurahaupo.gen.nz>
-
-                                  12/17
-                                  -----
-support/config.{guess,sub}
-       - updated to latest versions from git
-
-                                  12/19
-                                  -----
-parse.y
-       - struct STRING_SAVER: now has a new `flags' element, to identify the
-         caller: alias expansion, double-paren parsing, or parse_and_execute
-       - push_string: now sets flags to PSH_ALIAS if `ap' argument is non-NULL
-       - push_string: now doesn't attempt to call strlen on a NULL string to
-         set shell_input_line_size
-       - parser_expanding_alias, parser_save_alias, parser_restore_alias: new
-         functions to provide an external interface to push_string and
-         pop_string; parser_save_alias sets flags element to PSH_SOURCE (could
-         be renamed PSH_EXTERN someday)
-       - shell_getc: when yy_getc returns '\0', instead of just testing
-         whether the pushed_string_list is not-empty before popping it, don't
-         pop if if the saved string has flags PSH_SOURCE, indicating that
-         parse_and_execute set it before setting bash_input to the string.
-         We should continue reading to the end of that string before popping
-         back to a potential alias. Partial solution for the problem of aliases
-         with embedded newlines containing `.' commands being executed out of
-         order reported by Andrew Martin <andrew.martin@gmail.com>
-       - shell_getc: when yy_getc returns '\0' and there is a saved string of
-         type PSH_SOURCE, restart the read without popping the string stack
-         if we have not read to the end of bash_input.location.string.  Rest
-         of fix for out-of-order execution problem
-
-externs.h
-       - parser_expanding_alias, parser_save_alias, parser_restore_alias: new
-         extern function declarations
-
-builtins/evalstring.c
-       - pe_prologue: if the parser is expanding an alias, make sure to add
-         an unwind-protect to restore the alias; undoes the work that will be
-         performed by parse_and_execute/parse_string
-       - parse_and_execute,parse_string: after calling push_stream to save
-         bash_input, check whether or not the parser is currently expanding
-         an alias (parser_expanding_alias() != 0). If it is, we want to save
-         that string in the pushed_string_list, which we do with
-         parser_save_alias.
-
-                                  12/23
-                                  -----
-execute_cmd.c
-       - execute_for_command: make sure to set line_number before expanding
-         the word list, so expansion errors have the right line number.
-         From a report from Ben Okopnik <ben@okopnik.com>
-
-expr.c
-       - exp2: save token pointer before calling readtok(), arrange to use
-         saved token pointer when printing error token on a division by 0
-         error
-
-                                  12/27
-                                  -----
-lib/readline/display.c
-       - rl_redisplay: when calculating effects of invisible characters in a
-         prompt that is split across physical screen lines to set the indices
-         of linebreaks, don't bother testing local_prompt_prefix (line 751).
-         That prefix doesn't matter when calculating prompt visible and
-         invisible characters.  Fixes problem reported by Jinesh Choksi
-         <jinesh@onelittlehope.com>
-
-Makefile.in
-       - install: make sure to use $(DESTDIR) when installing OTHER_DOCS.
-         Report and fix from Matthias Klose <doko@debian.org>
-
-doc/texinfo.tex
-       - updated to version of 2013-09-11
-
-                                  12/28
-                                  -----
-lib/readline/undo.c
-       - rl_do_undo: if we are undoing from a history entry (rl_undo_list ==
-         current_history()->data), make sure the change to rl_line_buffer is
-         reflected in the history entry. We use the guts of
-         rl_maybe_replace_line to do the work.  Fixes problem reported by
-         gregrwm <backuppc-users@whitleymott.net>
-
-                                  12/30
-                                  -----
-sig.c
-       - sigint_sighandler: if we get a SIGINT (and this signal handler is
-         installed) while the wait builtin is running, note that we received
-         it in the same way as jobs.c:wait_sigint_handler and return.  The
-         various wait_for functions will look for that with CHECK_WAIT_INTR.
-         This fixes the wait builtin not being interruptible in an interactive
-         job control shell
-
-                                  12/31
-                                  -----
-trap.c
-       - set_signal_hard_ignored: rename set_signal_ignored to this, since it
-         both sets original_signals[sig] and sets the HARD_IGNORE flag
-       - set_signal_ignored: new function, now just sets original_signals[sig]
-
-trap.h
-       - set_signal_hard_ignored: new external declaration
-
-sig.c
-       - initialize_terminating_signals: call set_signal_hard_ignored instead
-         of set_signal_ignored for signals with disposition SIG_IGN when the
-         shell starts
-
-execute_cmd.c
-       - setup_async_signals: make sure we get the original dispositions for
-         SIGINT and SIGQUIT before starting the subshell, and don't call
-         set_signal_ignored  because that sets original_signals[sig].  If we
-         don't, subsequent attempts to reset handling using trap will fail
-         because it thinks the original dispositions were SIG_IGN. Posix
-         interpretation 751 (http://austingroupbugs.net/view.php?id=751)
-
-                                1/2/2014
-                                --------
-lib/sh/stringvec.c
-       - strvec_mcreate, strvec_mresize: versions of create and resize that
-         use malloc and realloc, respectively, instead of xmalloc/xrealloc
-
-braces.c
-       - expand_amble,mkseq: use strvec_mcreate/strvec_mresize so we can
-         catch and handle memory allocation failures instead of aborting
-         with the xmalloc/xrealloc interface
-
-lib/sh/strdup.c
-       - strdup replacement function for ancient systems that don't have it
-
-lib/sh/itos.c
-       - mitos: new function, itos that uses strdup instead of savestring
-
-externs.h
-       - strvec_mcreate/strvec_mresize: new extern declarations
-       - mitos: new extern declaration
-
-configure.ac
-       - bash version moved to 4.3-rc2
-
-                                   1/6
-                                   ---
-doc/bash.1,lib/readline/doc/{rluser.texi,readline.3}
-       - separate the description of what happens when readline reads the
-         tty EOF character from the description of delete-char, leaving a
-         note in the delete-char description about common binding for ^D.
-         From suggestion by Parke <parke.nexus@gmail.com>
-
-lib/readline/doc/{version.texi,history.3,*.texi}
-       - updated email addresses and copyright dates
-
-                                   1/7
-                                   ---
-variables.c
-       - delete_var: new function, just removes a variable from a hash table
-         and frees it, without doing anything else
-       - make_variable_value: if we are trying to assign to a nameref variable,
-         return NULL if the value is null or the empty string or not a valid
-         identifier
-
-variables.h
-       - delete_var: new extern declaration
-
-subst.h
-       - ASS_NAMEREF: new define for assignments, means assigning to a nameref
-         variable
-
-builtins/declare.def
-       - declare_internal: if we are creating and assigning to a nameref
-         variable, make sure the value is a valid variable name (checks done
-         by make_variable_value via bind_variable_value) and display an
-         error message, deleting the variable we just created, if it is not.
-         Fixes bug reported by Peggy Russell <prusselltechgroup@gmail.com>
-
-                                   1/9
-                                   ---
-builtins/declare.def
-       - declare_internal: turning on nameref attribute for an existing
-         variable turns off -i/-l/-u/-c attributes (essentially the ones
-         that cause evaluation at assignment time) for ksh93 compat
-
-builtins/setattr.def
-       - show_name_attributes: if asked to display attributes and values for
-         a nameref variable, don't follow the nameref chain to the end. More
-         ksh93 compat
-
-                                  1/10
-                                  ----
-trap.c
-       - _run_trap_internal: use {save,restore}_parser_state instead of
-         {save,restore}_token_state, like in run_pending_traps(); don't
-         need to save and restore last_command_exit_value as a result
-       - _run_trap_internal: call {save,restore}_pipeline like in
-         run_pending_traps()
-       - run_pending_traps: since we no longer run traps in a signal handler
-         context, do not block and unblock the trapped signal while the
-         trap is executing
-       - run_pending_traps: allow recursive invocations (basically, running
-         traps from a trap handler) with only a warning if the shell is
-         compiled in debug mode.  If a caller doesn't want this to happen,
-         it should test running_trap > 0. signal_in_progress (sig) only works
-         for the signals the shell handles specially
-
-bashline.c
-       - bash_event_hook: make sure we clean up readline if interrupt_state
-         is set, not only when SIGINT is not trapped.  check_signals_and_traps
-         will call check_signals, which calls QUIT, which will longjmp back
-         to top_level, running the interrupt trap along the way.  Fixes the
-         problem of signal handlers being reset out from under readline, and
-         not being set properly the next time readline is called, because
-         signals_set_flag is still set to 1.  XXX - might need to do this
-         for other signals too?
-
-                                  1/11
-                                  ----
-subst.h
-       - SD_GLOB: new define for skip_to_delim; means we are scanning a
-         glob pattern.
-
-subst.c
-       - skip_to_delim: if flags include SD_GLOB, assume we are scanning a
-         glob pattern.  Currently only used to skip bracket expressions
-         which may contain one of the delimiters
-
-                                  1/12
-                                  ----
-subst.c
-       - parameter_brace_expand: when expanding $@ as part of substring
-         expansion, pattern substitution, or case modification, don't turn
-         on the QUOTED_NULL flag.  The code that constructs the word to be
-         returned from expand_word_internal expects a different code path
-         when $@ is being expanded.  Fixes bug reported by Theodoros
-         V. Kalamatianos <thkala@gmail.com>
-
-                                  1/19
-                                  ----
-subst.c
-       - list_dequote_escapes: new function; analogue of list_quote_escapes
-
-pathexp.c
-       - quote_string_for_globbing: fix case where unescaped ^A is last char
-         in string; need to pass it through unaltered instead of turning it
-         into a bare backslash
-       - quote_string_for_globbing: when quoting for regexp matching in [[,
-         don't treat backslash as a quote character; quote the backslash as
-         any other character.  Part of investigation into reports from
-         Eduardo A. Bustamante López <dualbus@gmail.com>
-
-                                  1/25
-                                  ----
-builtins/gen-helpfiles.c
-       - write_helpfiles: add prototype
-       - make sure to #undef xmalloc/xfree/xrealloc/free if USING_BASH_MALLOC
-         is defined. the code does not use them, and we don't link against
-         xmalloc.o. Report from Linda Walsh <bash@tlinx.org>
-
-Makefile.in
-       - variables.o: add dependency on builtins/builtext.h; helps with
-         parallel builds.  Report from Linda Walsh <bash@tlinx.org>
-
-support/shobj-conf
-       - darwin: combine the stanzas into one that will not require them to
-         be updated on each Mac OS X release.  Report and fix from Max Horn
-         <max@quendi.de>
-
-                                  1/27
-                                  ----
-support/shobj-conf
-       - darwin: changed the install_name embedded into the shared library
-         to contain only the major version number, not the minor one. The
-         idea is that the minor versions should all be API/ABI compatible,
-         and it is better to link automatically with the latest one.  Idea
-         from Max Horn <max@quendi.de>
-
-                                  1/29
-                                  ----
-[bash-4.3-rc2 released]
-
-                                  1/30
-                                  ----
-lib/readline/readline.h
-       - rl_clear_history, rl_free_keymap: add extern declarations.  Report
-         from Hiroo Hayashi <hiroo.hayashi@computer.org>
-
-general.c
-       - include trap.h for any_signals_trapped() prototype
-
-lib/sh/unicode.c
-       - include <stdio.h> for sprintf prototype
-
-                                  1/31
-                                  ----
-execute_cmd.c
-       - execute_simple_command: only posix-mode shells should exit on an
-         assignment failure in the temporary environment preceding a special
-         builtin. This is what the documentation and code comments have
-         always said
-       - execute_simple_command: make sure redirection errors, word expansion
-         errors, and assignment errors to Posix special builtins cause a
-         non-interactive posix mode shell to exit.  Previously the shell
-         would not exit if the failed special builtin was on the LHS of ||
-         or &&
-
-pathexp.c
-       - quote_string_for_globbing: when quoting a regular expression
-         (QGLOB_REGEXP), allow an unquoted backslash to pass through
-         unaltered. Don't use it as a quote character or quote it.  More
-         investigation from 1/24 and report by Mike Frysinger
-         <vapier@gentoo.org>
-       - quote_string_for_globbing: when quoting a regular expression
-         (QGLOB_REGEXP), turn CTLESC CTLESC into CTLESC without adding a
-         backslash to quote it. We should not have to quote it because it is
-         not a character special to EREs. More investigation from 1/24
-
-lib/glob/glob.c
-       - glob_testdir: now takes a second flags argument (currently unused);
-         changed prototype and callers
-
-                                   2/1
-                                   ---
-lib/glob/glob.c
-       - glob_testdir: if flags argument includes GX_ALLDIRS (globstar), use
-         lstat so we skip symlinks when traversing the directory tree.
-         Originally reported by Chris Down <chris@chrisdown.name>
-
-                                   2/2
-                                   ---
-lib/readline/undo.c
-       - rl_do_undo: make sure CUR is non-zero before dereferencing it to
-         check cur->data against rl_undo_list.  Report and fix from
-         Andreas Schwab <schwab@linux-m68k.org>
-
-doc/{bash.1,bashref.texi}
-       - added slight clarifying language to the description of $*,
-         describing what happens when the expansion is not within double
-         quotes
-
-                                   2/4
-                                   ---
-test.c
-       - unary_test: add code to -v case so that it interprets `bare' array
-         references (foo[1]) and returns true if that index has a value
-
-                                   2/5
-                                   ---
-trap.c
-       - restore_default_signal: fix SIGCHLD special case for SIG_TRAPPED flag
-         off but SIG_INPROGRESS mode set and handler IMPOSSIBLE_TRAP_HANDLER;
-         continue with resetting handler in this case. maybe_set_sigchld_trap
-         will check these things before resetting sigchld trap from
-         run_sigchld_trap.  Fixes (apparently long-standing?) problem reported
-         by Alexandru Damian <alexandru.damian@intel.com>
-
-                                   2/6
-                                   ---
-lib/sh/strtrans.c
-       - ansic_quote: fixed a bug when copying a printable character that
-         consumes more than one byte; byte counter was not being incremented.
-         Bug report from jidanni@jidanni.org
-
-                                   2/7
-                                   ---
-input.c
-       - getc_with_restart: if read(2) returns -1/EINTR and interrupt_state or
-         terminating_signal is set (which means QUIT; will longjmp out of this
-         function), make sure the local buffer variables are zeroed out to
-         avoid reading past the end of the buffer on the next call.  Bug report
-         from Dan Jacobson <jidanni@jidanni.org>
-
-                                   2/9
-                                   ---
-bashline.c
-       - command_word_completion_function: if a directory in $PATH contains
-         quote characters, we need to quote them before passing the candidate
-         path to rl_filename_completion_function, which performs dequoting on
-         the pathname it's passed.  Fixes bug reported by Ilyushkin Nikita
-         <ilyushkeane@gmail.com>
-
-                                  2/11
-                                  ----
-parse.y
-       - xparse_dolparen: save and restore shell_eof_token around call to
-         parse_string, intead of just leaving it set to ')'
-       - shell_getc: when -v is set, only print the command line when
-         shell_eof_token is 0, so we don't print it multiple times when
-         recursively entering the parser to parse $(...) commands.  Fixes
-         bug reported by Greg Wooledge <wooledg@eeg.ccf.org>
-
-[changed release status to 4.3-release]
-
-                                  2/13
-                                  ----
-lib/sh/strtrans.c
-       - ansic_quote: handle case where mbrtowc reports that the multibyte
-         sequence is incomplete or invalid.  Fixes bug reported by
-         Eduardo A. Bustamante López <dualbus@gmail.com>
-
-                                  2/14
-                                  ----
-variables.c
-       - find_variable_nameref_context: fix a problem that caused the loop
-         to go one context too close to the global context.  In some cases,
-         simple variable assignment would set a variable in the global
-         context instead of a local context.  Bug report from
-         Geir Hauge <geir.hauge@gmail.com>
-
-                                  2/26
-                                  ----
-[bash-4.3 released]
-
-                                  2/27
-                                  ----
-aclocal.m4
-       - broken wcwidth check: fix typo reported by David Michael
-         <fedora.dm0@gmail.com>
-
-                                  2/28
-                                  ----
-support/bashbug.sh
-       - add ${BUGADDR} to error message printed if sending mail fails
-
-trap.c
-       - _run_trap_internal: don't call {save,restore}_pipeline if running
-         DEBUG trap; run_debug_trap calls them itself.  Fixes bug reported
-         by Moe Tunes <moetunes42@gmail.com>
-
-test.c
-       - unary_test: fix 'R' case by using find_variable_noref instead of
-         find_variable
-       - test_unop: add back missing 'R' case.  Fixes bug reported by
-         NBaH <nbah@sfr.fr>
-
-                                   3/2
-                                   ---
-jobs.c
-       - end_job_control: if job control is active, we changed the terminal's
-         process group, so make sure we restore it.  Fixes bug reported by
-         Eduardo A. Bustamante López <dualbus@gmail.com>
-
-                                   3/7
-                                   ---
-pcomplete.c
-       - pcomp_curtxt: new variable, holds the original text to be completed
-         as passed to the programmable completion code
-       - pcomp_filename_completion_function: if we are running compgen
-         (presumably in a shell function completion) and performing readline
-         completion, check the word being completed.  If it's not empty, but
-         the original word passed to the programmable completion code is an
-         empty string (""), call a dequoting function if one is available.
-         This compensates for an assumption in bash-completion.  Reported by
-         Albert Shih <Albert.Shih@obspm.fr>
-
-lib/readline/readline.c
-       - _rl_dispatch_subseq: when deciding whether or not to set vi mode's
-         idea of the last command, use whether or not the dispatching keymap
-         is vi_movement_keymap instead of the key sequence length.  The `c',
-         `d', and `y' commands all take motion commands as `arguments' and
-         will produce key sequences longer than 1 character.  The arrow keys
-         will end up dispatching out of a different keymap, so the test will
-         prevent arrow keys from setting the last command (the problem in
-         bash-4.2). Bug report from Daan van Rossum <daan@flash.uchicago.edu>
-
-lib/readline/vi_mode.c
-       - _rl_vi_motion_command: convenience function to test whether a key is
-         a vi-mode motion command
-
-lib/readline/rlprivate.h
-       - _rl_vi_motion_command: extern declaration
-
-parse.y
-       - parse_matched_pair: we should not skip processing single quotes in
-         posix mode if dolbrace_state == DOLBRACE_QUOTE2 (pattern
-         substitution).  Fixes bug reported by David Sines
-         <dave.gma@googlemail.com>
-
-                                  3/10
-                                  ----
-lib/readline/readline.c
-       - _rl_dispatch_callback: treat a return value of -1 as the end of
-         a command dispatch sequence if the current context doesn't
-         indicate that we're reading a multi-key sequence
-         ((cxt->flags & KSEQ_SUBSEQ) == 0).  Turn off the multikey flag
-         and free the context chain in this case.  Fixes one bug reported
-         by Felix Yan <felixonmars@gmail.com> to bug-readline list
-       - _rl_dispatch_callback: treat a return value of > 0 the same as 0
-         and return from the function, since only values < 0 cause us to
-         simulate recursion.  Rest of fix for bug tracked down by
-         Anatol Pomozov <anatol.pomozov@gmail.com>
-
-                                  3/11
-                                  ----
-
-execute_cmd.c
-       - execute_in_subshell: if a longjmp occurs, set result to
-         EXECUTION_FAILURE only if last_command_exit_value == EXECUTION_SUCCESS;
-         use value of last_command_exit_value otherwise.  Fixes cosmetic
-         issue reported by Dennis Lambe Jr. <malsyned@malsyned.net>
-
-doc/bash.1
-       - shell-kill-word and shell-backward-kill-word should be documented
-         as unbound by default.  Report from Oliver Hartley
-         <ohartley@talktalk.net>
-
-trap.c
-       - run_pending_traps: save value of $? before running trap commands in
-         trap_saved_exit_value, like run_exit_trap
-       - _run_trap_internal: save value of $? before running trap commands in
-         trap_saved_exit_value, like run_exit_trap
-
-builtins/common.c
-       - get_exitstat: when running `return' in a trap action, and it is not
-         supplied an argument, use the saved exit status in
-         trap_saved_exit_value.  Fixes Posix problem reported by
-         Eduardo A. Bustamante López <dualbus@gmail.com>
-
-                                  3/13
-                                  ----
-lib/sh/shquote.c
-       - sh_contains_quotes: new function, returns true if a given string
-         contains any of the shell quote characters (single quote, double
-         quote, or backslash)
-
-externs.h
-       - sh_contains_quotes: new extern declaration
-
-pcomplete.c
-       - pcomp_filename_completion_function: more changes for the benefit of
-         bash-completion: if the argument is not the same as the original
-         argument passed to the programmable completion code (pcomp_curtxt),
-         and we are being run by compgen as part of a completion, dequote the
-         argument as bash-completion expects.  Fix for the complete-word-
-         with-quoted-special-chars problem with bash-completion
-
-                                  3/17
-                                  ----
-execute_cmd.c
-       - execute_intern_function: when in posix mode, make defining a function
-         with the same name as a special builtin a fatal error only when the
-         shell is not interactive. Interactive shells display an error
-         message and go on.  From a discussion with Doug McIlroy
-         <doug@cs.dartmouth.edu>
-
-                                  3/18
-                                  ----
-arrayfunc.c
-       - assign_compound_array_list: when using expand_assignment_string_to_string
-         to expand the value in a ( [x]=y ) compound assignment, make sure
-         that we convert 0x0 to "" when expanding [x]= so it doesn't appear as
-         if the index is unset.  Fixes bug reported by Geir Hauge
-         <geir.hauge@gmail.com>
-
-builtins/common.c
-       - get_exitstat: update fix of 3/11 to allow the DEBUG trap to use the
-         current value of $? instead of the value it had before the trap
-         action was run.  This is one reason the DEBUG trap exists, and
-         extended debug mode uses it.  Might want to do this only in Posix
-         mode
-
-doc/{bash.1,bashref.texi}
-       - return: add language cribbed from Posix saying what happens when
-         return is run without an argument from a trap, including the DEBUG
-         trap exception
-
-                                  3/19
-                                  ----
-lib/glob/gmisc.c
-       - extglob_pattern_p: make sure ?(patlist) is flagged as an extglob
-         pattern
-
-lib/glob/glob.c
-       - extglob_skipname: rewrite to handle patterns that begin but do not
-         end with an extglob pattern; change test for easy case and loop
-         through patterns accordingly.  Fixes problem with matching filenames
-         with a leading dot reported by Stephane Chazelas
-         <stephane.chazelas@gmail.com>
-       - wextglob_skipname: make analogous changes
-
-                                  3/20
-                                  ----
-Makefile.in
-       - pass -DDEBUG down to builds in readline and history directories
-
-lib/readline/util.c
-       - _rl_trace and related functions are now only compiled in if DEBUG
-         is defined
-
-lib/readline/Makefile.in
-       - substitute @DEBUG@ and pass -DDEBUG, if necessary, to compilation
-         in LOCAL_CFLAGS
-
-                                  3/21
-                                  ----
-parse.y
-       - shell_getc: when checking whether or not to reallocate
-         shell_input_line to add trailing newline, don't try to subtract from
-         shell_input_line_size.  size_t is unsigned, so if its value is less
-         than 3 (like, say, 2), size-3 is a very large number and the string
-         will not be reallocated.  Use len+3 > size instead of len > size-3.
-         Fixes bug reported in
-         https://bugs.launchpad.net/ubuntu/+source/bash/+bug/1295467
-
-                                  3/27
-                                  ----
-lib/readline/display.c
-       - _rl_clean_up_for_exit: don't bother to call _rl_move_vert to whatever
-         readline thinks the last displayed line is if it's 0.  Two reasons: a
-         minor optimization, and it protects against unwanted moving if this
-         function is called twice, as it is when ^C is pressed.  Fixes bug
-         reported by Egmont Koblinger <egmont@gmail.com>
-
-                                  3/28
-                                  ----
-bashline.c
-       - invalid_completion: new function, used to identify attempts to
-         complete words that are syntax errors
-       - attempt_shell_completion: if invalid_completion returns true for a
-         word in a command position, punt on all completions.  Fixes cosmetic
-         issue reported by Uwe Storbeck <uwe@ibr.ch>
-       - attempt_shell_completion: add clause so that in_command_position
-         remains set to 1 for an empty word following a command separator like
-         (, &, or |
-
-lib/readline/kill.c
-       - rl_yank, rl_yank_nth_arg_internal: don't return -1 from bindable
-         functions, return 1 instead
-
-lib/readline/text.c
-       - rl_rubout, _rl_rubout_char, rl_delete, rl_change_case,
-         rl_transpose_chars, rl_transpose_words, _rl_set_mark_at_pos,
-         rl_exchange_point_and_mark, _rl_insert_next, _rl_char_search,
-         _rl_char_search_internal:
-         don't return -1 from bindable functions, return 1 instead
-
-lib/readline/vi_mode.c
-       - rl_vi_end_word, rl_vi_rubout, rl_vi_delete, rl_vi_char_search,
-         rl_vi_match, _rl_vi_set_mark, _rl_vi_goto_mark:
-         don't return -1 from bindable functions, return 1 instead
-
-lib/readline/macro.c
-       - rl_start_kbd_macro, rl_end_kbd_macro:
-         don't return -1 from bindable functions, return 1 instead
-
-builtins/setattr.def
-       - set_var_attribute: honor setting of no_invisible_vars when setting
-         att_invisible on a variable
-       - include "../flags.h" for no_invisible_vars
-
-builtins/declare.def
-       - declare_internal: honor setting of no_invisible_vars when setting
-         att_invisible on a variable
-       - include "../flags.h" for no_invisible_vars
-
-Makefile.in,builtins/Makefile.in
-       - make sure declare.o and setattr.o depend on flags.h
-
-execute_cmd.c
-       - decpoint: new function, returns locale's decimal point or `.' default
-       - mkfmt: use decpoint() to get decimal point instead of unconditionally
-         using `.'.  Fixes bug reported by Andrey Tataranovich
-         <tataranovich@gmail.com> in debian bug 741669
-
-                                  4/10
-                                  ----
-lib/readline/rltypedefs.h
-       - add back old Function/VFunction/etc typedefs, since other packages
-         (python, samba) use them. Mark as deprecated using gcc and clang
-         attributes.  Report and fix from Max Horn <max@quendi.de>
-
-                                  4/14
-                                  ----
-jobs.c
-       - run_sigchld_trap: unwind-protect value of this_shell_builtin, since
-         it matters in some cases whether or not we are running `wait' or
-         `eval'.  Fixes bug reported by Eduardo A. Bustamante López
-         <dualbus@gmail.com>
-
-                                  4/18
-                                  ----
-shell.h
-       - sh_parser_state_t: add `need_here_doc' flags member, since
-         xparse_dolparen (via parse_command) sets it to 0
-
-parse.y
-       - gather_here_documents: make sure need_here_doc is > 0, since we
-         don't want to just decrement it forever if it ends up < 0. Partial
-         fix for bug reported by Jared Yanovich <slovichon@gmail.com>
-       - {save,restore}_parser_state: save and restore need_here_doc flag.
-         Rest of fix for bug reported by Jared Yanovich <slovichon@gmail.com>
-
-                                  4/19
-                                  ----
-subst.c
-       - cond_expand_word: since we are not supposed to be performing word
-         splitting here, set expand_no_split_dollar_star to 1 in addition to
-         setting W_NOSPLIT2
-       - expand_word_internal: if we have a case where we have an unquoted
-         $@ but we are in a case where we don't want to split (W_NOSPLIT2),
-         make sure we return a list consisting of a single word with the
-         arguments separated by spaces and don't do word splitting.  Fixes
-         bug reported by Greg Wooledge <wooledg@eeg.ccf.org> from an IRC
-         discussion
-
-builtins/hash.def
-       - print_portable_hash_info: single-quote pathnames and hashed filenames
-         that contain shell metacharacters.  Fixes bug reported by
-         <g1pi@libero.it> in debian bash bug #739853
-
-                                  4/20
-                                  ----
-lib/readline/display.c
-       - When using horizontal scrolling, the redisplay code erases too much
-         of the line containing successful results, so make sure we only
-         erase to the end of the line after making sure we move the cursor
-         to the end.  Fixes bug reported by <Trond.Endrestol@ximalas.info>
-
-                                  4/23
-                                  ----
-{bashhist,bashline}.c
-builtins{bind,help,type}.def
-lib/glob/glob.c, lib/intl/{loadmsgcat,localealias}.c,lib/sh/mktime.c
-       - fixes to memory leaks uncovered by coverity scan
-
-                                  4/24
-                                  ----
-{bashhist,subst,redir,assoc,jobs,array,trap}.c
-lib/intl/l10flist.c
-builtins/complete.def
-       - fixes to memory leaks and other resource usage problems uncovered by
-         coverity scan
-
-redir.c
-       - do_redirection_internal: if dup2 fails (presumably because of a
-         resource limit), close the file descriptor we opened before returning
-         error
-
-                                  4/25
-                                  ----
-config-top.h
-       - DEFAULT_BASHRC: new define with the name of the default shell
-         startup file
-
-bashline.c
-       - bash_directory_completion_matches: don't dequote the directory name.
-         If rl_completion_found_quote is non-zero, readline will dequote the
-         filename itself.  Fixes bug reported by Clark Wang
-         <dearvoid@gmail.com>
-
-                                  4/27
-                                  ----
-subst.c
-       - parameter_brace_expand_rhs: if parameter_brace_find_indir returns
-         NULL or "", or if it returns something that is not a valid identifier,
-         report an error and return &expand_wdesc_error so the error can
-         propagate up.  Fixes bug reported by Andre Holzhey
-         <andre.holzhey@gmx.de>
-
-                                  4/29
-                                  ----
-subst.c
-       - parameter_brace_substring: don't short-circuit right away if the
-         value is NULL but we are looking at the positional parameters.  Part
-         of fix for bug reported by Pierre Gaston <pierre.gaston@gmail.com>
-       - pos_params: if there are no positional parameters, only short-circuit
-         if we are looking for $1 and above.  Rest of fix for bug reported
-         by Pierre Gaston <pierre.gaston@gmail.com>
-
-subst.h
-       - SD_NOPROCSUB: new flag for skip_to_delim, means to not allow any
-         process subsitutions (should not have overloaded SD_NOSKIPCMD)
-
-subst.c
-       - skip_to_delim: honor SD_NOPROCSUB flag
-
-make_cmd.c
-       - make_arith_for_expr: set W_NOPROCSUB flag in the created word
-       - make_arith_for_command: set SD_NOPROCSUB in the flags argument to
-         skip_to_delim so we don't treat <( or >( as a process substitution
-         (we won't evaluate them in eval_arith_for_expr anyway).  Fixes
-         bug reported by Pierre Gaston <pierre.gaston@gmail.com>
-
-                                   5/1
-                                   ---
-lib/glob/gmisc.c
-       - glob_dirscan: new function, takes a pattern and a directory separator
-         argument and advances the pattern to the last occurrence of the
-         separator. Like strrchr, but understands extended glob patterns and
-         uses glob_patscan to skip over them
-
-lib/glob/glob.c
-       - extglob_skipname: if the extended globbing pattern is invalid, don't
-         skip the name
-       - glob_filename: if there is a slash in the pattern to be matched, and
-         extglob is enabled, use glob_dirscan to find the real last occurrence
-         of `/' to avoid being confused by slashes in extglob patterns.  Fix
-         for bug reported by Pierre Gaston <pierre.gaston@gmail.com>
-
-                                   5/6
-                                   ---
-variables.c
-       - make_local_variable: only set the att_invisible attribute if
-         no_invisible_vars isn't set
-       - find_variable_for_assignment: new function, intended to be called by
-         code that eventually wants to assign a value to the variable; will not
-         skip invisible variables; currently identical to find_variable
-       - find_variable_no_invisible: new function, finds the first visible
-         instance of variable with a given name in the variable context chain;
-         eventually will be used to replace find_variable; separate right now
-         for testing
-
-variables.h
-       - find_variable_for_assignment: extern declaration
-       - find_variable_no_invisible: extern declaration
-
-                                   5/7
-                                   ---
-variables.c
-       - make_local_variable: don't clear `invisible' attribute if we are
-         returning an existing local variable at the right context.  Let the
-         upper layers do that. Fixes bug reported by Dan Douglas
-         <ormaaj@gmail.com>
-
-                                   5/8
-                                   ---
-lib/readline/input.c
-       - rl_getc: call RL_CHECK_SIGNALS if a read(2) is interrupted (-1/EINTR)
-         by SIGALRM or SIGVTALRM (placeholder for non-keyboard-generated
-         signals of interest)
-
-builtins/read.def
-       - edit_line: call bashline_set_event_hook and
-         bashline_reset_event_hook around call to readline(), so the right
-         signal handling happens
-       - read_builtin: make sure we add an unwind_protect call to
-         bashline_reset_event_hook.  These changes fix bug reported in
-         https://bugs.launchpad.net/ubuntu/+source/bash/+bug/1317476
-
-bashline.c
-       - bash_event_hook: make sure we clean up the readline state by calling
-         rl_cleanup_after_signal if sigalrm_seen is non-zero.  The read builtin
-         sets this when it times out
-
-                                  5/12
-                                  ----
-doc/{bash.1,bashref.texi}
-       - clarify language to make it clear that changing attributes of a
-         nameref variable (e.g., export), actually changes the attributes of
-         the referenced variable.  Fixes omission noted by Jeff Haemer
-         <jeffrey.haemer@gmail.com>
-
-arrayfunc.c
-       - bind_array_var_internal: make sure ENTRY no longer has invisible
-         attribute before returning.  Fixes bug reported by Geir Hauge
-         <geir.hauge@gmail.com>
-
-                                  5/22
-                                  ----
-execute_cmd.c
-       - shell_execve: if execve fails and we return 127 or 126, make sure to
-         set last_command_exit_value if a call to file_error or report_error
-         causes the shell to exit.  This ensures that the shell exits with
-         the right value.
-
-                                   6/6
-                                   ---
-shell.c
-       - drop_priv_mode: print an error message on setuid() failure, optionally
-         exit if errno == EAGAIN, as it can be on Linux when RLIMIT_NPROC for
-         the target user is exceeded.
-
-config-top.h
-       - EXIT_ON_SETUID_FAILURE: new settable define, will cause the shell to
-         exit if setuid fails with errno == EAGAIN
-
-                                  6/10
-                                  ----
-parse.y
-       - time_command_acceptable: fix so time is accepted everywhere the
-         grammar is looking for a `compound_list'.  Fixes bug reported by
-         Dale Worley <worley@alum.mit.edu>
-
-                                  6/12
-                                  ----
-subst.c
-       - clear_fifo_list: new function, clears FDs associated with open pipes
-         in current FIFO list without closing the file descriptors.  Can
-         possibly be used when shell_execve fails and the shell jumps back
-         to top_level and we don't want the shell to close the open FIFOs
-         each time through the read-execute loop.  Bug reported by Harald
-         Koenig <koenig@tat.physik.uni-tuebingen.de>
-
-
-                                  6/16
-                                  ----
-builtins/shopt.def
-       - compat42: make sure the `compat42' option sets the correct variable
-         for compatibility level.  Fixes bug reported by Ondrej Oprala
-         <ooprala@redhat.com>
-
-support/bashbug.sh
-       - fix typo when echoing $USAGE.  Report from Shantanu Kulkarni
-         <djbware@shantanukulkarni.org>
-
-execute_cmd.c
-       - shell_execve: before longjmp back to subshell_top_level, clear out the
-         FIFO fd list by calling clear_fifo_list so the FDs (which we inherited
-         from our parent) aren't closed every time through the read-eval loop.
-         Fix for bug reported by Harald Koenig <koenig@tat.physik.uni-tuebingen.de>
-
-                                  6/18
-                                  ----
-subst.c
-       - extract_process_subst: add additional argument: xflags, allow callers to
-         pass flags like extract_command_subst
-       - extract_process_subst: call xparse_dolparen like command substitution
-         to avoid problems when parsing commands constructs with embedded open
-         parens.  Fixes bug reported by Tim Friske <me@timfriske.com>
-
-subst.h
-       - extract_process_subst: modified prototype for extern declaration
-
-                                  6/19
-                                  ----
-execute_cmd.c
-       - execute_pipeline: if running with lastpipe enabled, make sure that we
-         check whether or not the job id is valid using INVALID_JOB before
-         calling job_exit_status. the jobs list can get frozen and unfrozen in
-         the presence of nested pipelines and loops and wait_for can clear a
-         job table entry.  Fixes bug reported by <scorp.dev.null@gmail.com>
-
-jobs.c
-       - freeze_jobs_list: now returns old value of jobs_list_frozen; unused at
-         current time
-
-jobs.h
-       - freeze_jobs_list: change return value
-
-                                  6/20
-                                  ----
-lib/glob/smatch.c
-       - MEMCHR: single-byte and wide character defines (memchr/wmemchr)
-
-lib/glob/sm_loop.c
-       - GMATCH: when the wildcards are the last element of the pattern, make
-         sure they do not match a string containing a `/' if FNM_PATHNAME is
-         set in FLAGS
-       - GMATCH: when recursively calling GMATCH after we see a `*', don't
-         try to consume the rest of the pattern with `*' if FNM_PATHNAME is
-         set in FLAGS, just consume up to the next slash and then see whether
-         or not the rest of the pattern matches.  Fixes bug reported by Ian
-         Kelling <ian@iankelling.org>
-       - GMATCH: when processing `*' in the pattern, after skipping consecutive
-         wildcards, if we hit a literal `/' in the pattern and we're looking
-         for a pathname, skip characters in the string until we find a `/'
-         (no slash means the match fails), and try to match the rest of the
-         pattern against the portion of the string after the next `/'.  Picked
-         up from gnulib/glibc
-
-pathexp.c
-       - split_ignorespec: since split_ignorespec gets globbing patterns,
-         make sure we call skip_to_delim with the SD_GLOB flag so delimiters
-         that occur within bracket expressions don't delimit the pattern.
-         Fixes problem with [[:digit:]] in GLOBIGNORE reported by Ian Kelling
-         <ian@iankelling.org>
-
-unwind_prot.c
-       - unwind_protect_tag_on_stack: new function, returns 1 if unwind-protect
-         frame corresponding to `tag' argument is on unwind-protect stack
-
-unwind_prot.h
-       - unwind_protect_tag_on_stack: extern declaration
-
-                                  6/30
-                                  ----
-lib/readline/misc.c
-       - _rl_revert_all_lines: set entry->data to 0 after assigning it to
-         rl_undo_list to avoid pointer aliasing problems that would result
-         in entry->line being freed by an undo.  The subsequent free would
-         be a double free.  Report and fix from Jared Yanovich
-         <slovichon@gmail.com>
-
-subst.c
-       - command_substitute: other shells do not appear to inherit the -v
-         option when reading and executing command substitutions.  Reported
-         by Ondrej Oprala <ooprala@redhat.com>
-
-                                   7/1
-                                   ---
-config-top.h
-       - CHECKHASH_DEFAULT: new define that supplies the default value for
-         check_hashed_filenames (`checkhash' shopt option); still 0 by default
-
-findcmd.c
-       - check_hashed_filenames: initialize using CHECKHASH_DEFAULT
-
-lib/readline/histexpand.c
-       - history_expand: double quotes can inhibit recognition of the history
-         comment character if history_quotes_inhibit_expansion is non-zero
-
-lib/readline/doc/{history.3,hstech.texi}
-       - history_quotes_inhibit_expansion: expand definition to note that it
-         inhibits scanning for the history comment character as well; correct
-         typo to make it clear that it only works on double-quoted strings
-
-lib/sh/zgetline.c
-       - add new fourth argument: DELIM, allows delimiter to be something
-         other than newline (if DELIM != '\n', UNBUFFERED_READ should be
-         non-zero)
-       - UNBUFFERED_READ is now fifth argument
-       - check character against DELIM rather than strictly newline
-
-externs.h
-       - zgetline: change function prototype for extern declaration
-
-builtins/mapfile.def
-       - mapfile: change calling sequence for zgetline calls
-       - mapfile_builtin: new -d option: DELIM, like in read builtin
-       - mapfile_builtin: pass `delim' to mapfile() as new argument; default
-         to '\n' unless -d option supplied
-       - mapfile: take new DELIM argument, pass to zgetline
-       - mapfile: if DELIM != '\n', set unbuffered_read to 1
-
-doc/{bash.1,bashref.texi}
-       - mapfile: document new `-d DELIM' option
-
-                                   7/5
-                                   ---
-lib/readline/histfile.c
-       - history_truncate_file: if there is an error writing the truncated
-         history list back to the history file, use the same strategy as
-         history_do_write: create a backup file, rename the history file to
-         the backup file, and restore the original history file from the
-         backup file name if the write or the close fails.  Suggestion from
-         Chen Gang <gang.chen.5i5j@gmail.com> to bug-readline
-
-execute_cmd.c
-       - evalnest, evalnest_max: new variables establishing maximum number of
-         recursive `eval' calls; current max is 4096
-       - execute_builtin: unwind-protect value of evalnest around calls to
-         eval builtin. Suggested by Oliver Morais <oliver.morais@gmail.com>
-       - {initialize_subshell,execute_subshell_builtin_or_function}: reset
-         evalnest to 0 in a subshell
-
-builtins/setattr.def
-       - show_name_attributes: show a variable's attributes even if it's
-         invisible (don't show any value since it has none). This means that
-         declare -p var will display VAR's attributes even when var marked
-         as invisible.  Feature request from Peggy Russell
-         <prusselltechgroup@gmail.com>
-       - show_var_attributes: don't print assignment if array or assoc
-         attribute is set but variable marked as invisible
-
-tests/array.right
-       - special note: changed all declare -a output tests because the shell
-         will no longer print out values for invisible array variables. This
-         is a change, but one for correctness:
-
-               declare -a foo='()'
-         and
-               declare -a foo
-         are not equivalent
-
-                                  7/22
-                                  ----
-subst.c
-       - parameter_brace_expand: after calling parameter_brace_expand_indir,
-         turn off the W_ARRAYIND flag in the word it returns, because there
-         is no way for it to return the index that should be used, and the
-         rest of the function assumes that IND is valid if W_ARRAYIND is set.
-         Fixes bug reported by Corentin Peuvrel <cpeuvrel@pom-monitoring.com>
-
-                                   8/2
-                                   ---
-parse.y
-       - read_token_word: if we read a character that will end a command
-         substitution, don't skip over quoted newlines when we read an
-         additional character to figure out whether it's a two-character
-         token. This lets the higher layers deal with quoted newlines after
-         the command substitution. Fixes bug reported by EmanueL Czirai
-         <amanual@riseup.net>
-
-                                  8/11
-                                  ----
-execute_cmd.c
-       - execute_pipeline: check whether lastpipe_jid corresponds to a valid
-         job before calling append_process, for the same reason as fix from
-         6/19.  Fixes bug reported by <lolilolicon@gmail.com>
-
-                                  8/12
-                                  ----
-lib/sh/unicode.c
-       - stub_charset: use strncpy instead of strcpy because we are copying
-         into a local fixed-length buffer.  Fixes vulnerability reported by
-         <romerox.adrian@gmail.com>
-
-execute_cmd.c
-       - execute_pipeline: if we don't call append_process, call
-         wait_for_single_pid to get the status of `lastpid', since that will
-         check the status of already-reaped processes.  Fixes spurious error
-         message about non-existent process from fix of 8/11
-
-                                  8/15
-                                  ----
-jobs.c
-       - running_in_background: new variable, keeps track of whether or not we
-         are running in the background (not perfect yet)
-       - initialize_job_control: even if we are not turning on job control,
-         get the terminal pgrp so we can use it later
-       - {set_job_control,initialize_job_control}: set running_in_background
-         to 1 if terminal pgrp != shell pgrp
-       - {stop_pipeline,make_child,wait_for}: if we are running in the
-         background, don't mess with the terminal's process group; assume that
-         the parent shell will do that.  Fixes bug reported by Greg Wooledge
-         <wooledg@eeg.ccf.org>
-
-shell.c
-       - shell_reinitialize: reset running_in_background back to 0
-
-                                  8/24
-                                  ----
-execute_cmd.c
-       - {execute_connection,execute_command_internal}: make sure that
-         asynchronous commands always set $? to 0 and are not affected by the
-         command's exit status being inverted using `!'.  Fixes bug reported
-         by Vincent Lefevre <vincent@vinc17.net>
-
-lib/readline/display.c
-       - rl_message: call vsnprintf with full msg_bufsiz, since it counts 
-         one fewer than the buffer length passed as an argument.  Bug report
-         and fix from Dylan Cali <calid1984@gmail.com>
-
-                                  8/26
-                                  ----
-builtins/evalstring.c
-       - evalstring: if CURRENT_TOKEN == yacc_EOF, reset it to newline.  This
-         is instead of calling reset_parser(); that might still be needed.
-         Fixes bug with eval and a subsequent statement ending with EOF
-         reported by <jim.avera@gmail.org>
-
-pcomplete.c
-       - filter_stringlist: when extglob is on, a leading ! in the filter
-         pattern should be left alone when it introduces a !(pat) pattern;
-         otherwise it messes up the pattern.  Fixes bug reported by David
-         Korn <dgkorn@gmail.com>
-
-                                  8/27
-                                  ----
-doc/{bash.1,bashref.texi}
-       - clarify the behavior of bash when given the -c option, since $0 is
-         technically not a positional parameter.  Bug reported by Stephane
-         Chazelas <stephane.chazelas@gmail.com>
-
-                                  8/28
-                                  ----
-lib/readline/history.c
-       - add_history: use history_max_entries (if history is stifled) or
-         DEFAULT_HISTORY_INITIAL_SIZE if not (new define, defaults to 502)
-         to size the initial allocation of the history array.  Assumption
-         is that this will reduce the number of allocations
-
-                                  8/29
-                                  ----
-execute_command.c:
-       - sourcenest, sourcenest_max: new variables used to track level of
-         sourced files and (maybe) one day catch infinite source recursion
-       - execute_builtin: if current source level exceeds sourcenest_max,
-         trigger an error and jump back to the top level
-       - {initialize_subshell,execute_subshell_builtin_or_function}: reset
-         sourcenest to 0 in a subshell
-
-                                   9/2
-                                   ---
-variables.c
-       - bind_variable: if a nameref expands to an array reference, make
-         sure that assign_array_element gets called (maybe even
-         recursively) instead of bind_variable_internal, so invalid variable
-         names (like arr[0]) don't get created.  Fixes bug reported by
-         <lolilolicon@gmail.com>
-
-                                   9/3
-                                   ---
-execute_cmd.c
-       - evalnest_max,sourcenest_max: initialize from EVALNEST_MAX and
-         SOURCENEST_MAX, respectively.  Feature suggested by
-         <bogun.dmitriy@gmail.com>
-
-config-top.h
-       - define EVALNEST_MAX and SOURCENEST_MAX to 0
-
-                                   9/6
-                                   ---
-bashline.c
-       - find_cmd_start: fix to (crudely) deal with >| token; even though
-         skip_to_delim finds `|' as a delimiter, we call it again and use
-         what the second call finds.  Fixes bug reported by Dan Jacobson
-         <jidanni@jidanni.org>
-
-findcmd.c
-       - find_in_path_element: if in posix mode, do not expand a literal
-         tilde in a $PATH element
-
-doc/bashref.texi
-       - add change to tilde expansion in $PATH elements to posix mode
-         description
-
-builtins/common.h
-       - ISHELP: new define for builtins that do their own option parsing
-         and don't use internal_getopt(); checks whether argument is --help
-       - CHECK_HELPOPT: convenience define to help builtins that do their
-         own option parsing to check for --help with one line of code
-       - CASE_HELPOPT: convenience define to help builtins that use
-         internal_getopt() check for --help with one line of code
-
-builtins/help.def
-       - builtin_help: new function, prints out --help output for current
-         builtin
-
-builtins/{kill,let,pushd}.def
-       - add CHECK_HELPOPT to builtins that use ISOPTION; call builtin_help
-         and return EX_USAGE (kill/let/pushd/popd/dirs)
-
-builtins/{caller,fg_bg}.def
-       - use CHECK_HELPOPT to recognize --help, since these builtins perform
-         checks that can cause them to return before calling no_options
-         (caller/fg/bg)
-
-builtins/{exit,return}.def
-       - use CHECK_HELPOPT to recognize --help before calling get_exitstat()
-         (return/exit/logout)
-
-builtins/{break,shift}.def
-       - use CHECK_HELPOPT to recognize --help before any other checks
-         (break/continue/shift)
-
-builtins/bashgetopt.h
-       - GETOPT_EOF: convenience define
-       - GETOPT_HELP: new define, to indicate internal_getopt saw --help
-
-builtins/bashgetopt.c
-       - internal_getopt: return GETOPT_HELP for --help
-
-builtins/common.c
-       - no_options: recognize --help, call builtin_help and return 2
-         (builtin/eval/source/./times)
-
-builtins/command.def
-       - use CASE_HELPOPT() to handle --help after calling internal_getopt()
-         (command)
-
-builtins/{colon,echo,test}.def
-       - do not recognize --help (:/true/false/echo/test)
-
-                                   9/8
-                                   ---
-sig.c
-       - termsig_sighandler: if readline is active now, set the bashline event
-         hook. Old code just set it for interactive shells.  Part of fix for
-         bug reported by <mickael9@gmail.com>
-
-bashline.c
-       - bash_event_hook: call rl_cleanup_after_signal if terminating_signal
-         is non-zero, since check_signals_and_traps() will cause the shell to
-         exit if it is and we want to clean up the readline state first.  Rest
-         of fix for bug reported by <mickael9@gmail.com>
-
-                                   9/9
-                                   ---
-jobs.c
-       - waitchld: when running the wait builtin in posix mode, with a trap set
-         on SIGCHLD, use queue_sigchld_trap instead of trap_handler (SIGCHLD),
-         otherwise you will lose SIGCHLDs when children_exited > 1.  Fixes bug
-         reported by <crispusfairbairn@gmail.com>
-
-builtins/read.def
-       - read_builtin: if we are changing the tty settings, call
-         initialize_terminating_signals so we have a chance to catch all
-         terminating signals and potentially clean up the terminal before
-         exiting
-       - read_builtin: tty_modified: new variable, set to 1 if we change the
-         terminal attributes and have to call ttyrestore() to restore them
-       - if one of the `reads' returns -1/EINTR due to a terminating signal,
-         and we have modified the terminal, call ttyrestore before calling
-         CHECK_TERMSIG
-       - ttyrestore: set tty_modified to 0 when called
-
-                                  9/10
-                                  ----
-builtins/read.def
-       - termsave: now global to file so other functions can use it
-       - read_tty_cleanup: if tty_modified is non-zero, call ttycleanup to
-         restore old terminal settings and turn off tty_modified
-
-sig.c
-       - termsig_handler: call read_tty_cleanup if currently executing read
-         builtin; it does the right thing.  Final piece of fix for bug reported
-         by Jan Rome <jan.rome@gmail.com>
-
-                                  9/11
-                                  ----
-general.c
-       - printable_filename: general function to return a printable
-         representation of a string (presumed to be a filename)
-
-general.h
-       - extern declaration for printable_filename
-
-execute_cmd.c
-       - execute_disk_command: use printable_filename
-
-builtins/{bind,cd,enable,hash,source}.def
-       - use printable_filename as appropriate when printing error messages.
-         From a suggestion by Vincent Lefevre <vincent@vinc17.net>
-
-builtins/bind.def
-       - use CASE_HELPOPT() to handle --help after calling internal_getopt()
-         (bind)
-
-                                  9/12
-                                  ----
-builtins/common.h
-       - SEVAL_FUNCDEF: new flag for parse_and_execute; it means that we only
-         accept a single function definition command, as when we are importing
-         functions from the environment
-       - SEVAL_ONECMD: new flag for parse_and_execute; for future use
-
-builtins/evalstring.c
-       - parse_and_execute: if the SEVAL_FUNCDEF flag is set, disallow anything
-         but a function definition command
-
-variables.c
-       - initialize_shell_variables: don't allow functions with invalid names
-         to be imported from the environment, even though we still allow them
-         to be defined
-       - initialize_shell_variables: when importing function definitions from
-         the environment, call parse_and_execute with the SEVAL_FUNCDEF flag
-         to force the command to be just a function definition
-
-subst.c
-       - param_expand: when expanding a $name variable expansion, make sure that
-         the variable is visible and set before following the nameref chain
-       - param_expand: when expanding a $name variable expansion and following the
-         nameref chain, make sure the resulting variable is visible and set
-         before using it
-
-                                  9/13
-                                  ----
-variables.c
-       - initialize_shell_variables: when importing function definitions from
-         environment, use SEVAL_ONECMD flag for parse_and_execute.  Part of
-         CVE-2014-6271
-
-builtins/evalstring.c
-       - parse_and_execute: if SEVAL_ONECMD flag set, return immediately after
-         calling execute_command_internal.  Final piece for fix for bug
-         reported by Stephane Chazelas <stephane.chazelas@gmail.com>.  Part of
-         CVE-2014-6271
-
-                                  9/24
-                                  ----
-parse.y
-       - reset_parser: reset eol_ungetc_lookahead to 0 here, since we don't want
-         shell_getc returning it on the next call.  Fixes problem reported by
-         Tavis Ormandy <taviso@cmpxchg8b.com> and Michal Zalewski
-         <lcamtuf@coredump.cx>.  Potentially part of CVE-2014-6271; fix for
-         CVE-2014-7169
-
-                                  9/25
-                                  ----
-parse.y
-       - push_heredoc: new function, pushes a here-doc redirection onto
-         redir_stack handling overflow of redir_stack. Exits on overflow.
-         Original fix from Florian Weimer <fweimer@redhat.com>.  Fix for
-         CVE-2014-7186
-       - change straight assignments to redir_stack to call push_redir
-       - add one to size of word_lineno stack to avoid off-by-one error
-         below in read_token_word. Overflow just results in line numbers
-         being wrong.  Fix for CVE-2014-7187
-
-                                  9/27
-                                  ----
-{execute_cmd,trap}.c
-       - changes to make minimal-config builds work again, mostly missing
-         #ifdefs for optional features
-
-builtins/common.c
-       - builtin_help: dummy version to be included if HELP_BUILTIN not
-         defined, for minimal-config builds
-
-variables.c
-       - initialize_shell_variables: incorporated patches from Florian
-         Weimer <fweimer@redhat.com> to change the strings bash looks
-         for when importing shell functions from the environment.  It
-         adds a prefix (BASH_FUNC_) and a suffix (%%) to the name to
-         mark it as having been created by bash as an exported function.
-         Fix for remote attacks part of CVE-2014-6271 and CVE-2014-7169
-       - mk_env_string: takes new argument, indicating whether we are
-         constructing a function
-       - mk_env_string: encodes function names as described above, so
-         initialize_shell_variables can find them
-
-                                  9/28
-                                  ----
-copy_cmd.c
-       - copy_redirects: before calling savestring on here_doc_eof, make
-         sure it's not NULL (it could have been the result of a here
-         document delimited by EOF or EOS).  Fixes bug reported by
-         Michal Zalewski <lcamtuf@coredump.cx>.  Fix for CVE-2014-6277
-
-make_cmd.c
-       - make_redirection: initialize here_doc_eof member to NULL.  Rest of
-         fix for CVE-2014-6277
-
-                                  9/29
-                                  ----
-parse.y
-       - current_input_line_state: return a sh_input_line_state_t containing
-         the current shell_input_line and its index and size variables
-
-shell.h
-       - current_input_line_state: extern declaration
-
-builtins/evalstring.c
-       - parse_and_execute: call reset_parser() before returning if
-         SEVAL_ONECMD set.  Fixes bug reported by Michal Zalewski
-         <lcamtuf@coredump.cx> and designated CVE-2014-6278
-       - parse_and_execute: if we parse a function definition when
-         SEVAL_FUNCDEF is set, but don't consume the entire passed string,
-         throw an error, reset the parser, and return.  Part of fix for
-         CVE-2014-6278
-       - parse_and_execute: if parsing the shell function definition when
-         SEVAL_FUNCDEF is set transforms the function name (e.g., if it
-         begins with a newline or begins or ends with whitespace), throw
-         an error, reset the parser, and return.  Fixes bug reported by
-         Eric Kobrin <ekobrin@akamai.com>
-
-                                  10/2
-                                  ----
-jobs.c
-       - bgp_prune: don't do anything if bgpids.npid == 0 or
-         bgpids.list == NULL.  This can happen if something gets run before
-         the job control framework is initialized.  Bug report from
-         <mancha1@zoho.com>
-
-                                  10/3
-                                  ----
-parse.y
-       - xparse_dolparen: don't set token_to_read to newline after calling
-         parse_string() and cleaning up when the shell is not interactive.  This
-         makes the parser think it's ok to read new commands even if it's not in
-         a state where that should be possible.  Underlying fix for bug reported
-         by Michal Zalewski <lcamtuf@coredump.cx> and designated CVE-6278
-       - parser_remaining_input: new function, returns the portion of
-         shell_input_line that hasn't yet been read
-       - current_input_line_state: removed
-
-shell.h
-       - parser_remaining_input: extern declaration
-       - current_input_line_state: removed
-
-builtins/evalstring.c
-       - parse_and_execute: change code that checks whether parse_command has
-         consumed the entire passed string when SEVAL_FUNCDEF is used to use
-         parser_remaining_input instead of messing around with (new)
-         current_input_line_state.  Part of fix for CVE-2014-6278
-
-variables.c
-       - initialize_shell_variables: if we don't call parse_and_execute, free
-         the temporary string, since parse_and_execute won't.  Report and fix
-         from Eric Kobrin <ekobrin@akamai.com>
-
-                                  10/4
-                                  ----
-print_cmd.c
-       - print_function_def: when in posix mode, print shell function
-         definitions as posix specifies them, without the leading
-         `function' keyword
-
-general.c
-       - exportable_function_name: return 1 if the passed string can be
-         added to the environment as an exported function name.  Currently
-         prohibits function names containing  `/' and `=' from being
-         exported
-
-general.h
-       - exportable_function_name: extern declaration
-
-builtins/setattr.def
-       - set_or_show_attributes: if exporting a function with export -f,
-         call exportable_function_name to determine whether the function
-         should be exported; don't export function if it returns 0
-
-                                  10/7
-                                  ----
-builtins/setattr.def
-       - set_or_show_attributes: don't show identifiers that are invisible
-         and imported from the environment, since that combination of
-         attributes means that the imported variable is not a valid shell
-         identifier.  Report from Stephane Chazelas
-         <stephane.chazelas@gmail.com>
-
-                                  10/8
-                                  ----
-shell.c
-       - shell_initialize: set new variable should_be_restricted, which
-         says whether or not the shell will be a restricted one based on the
-         shell name; use in calls to initialize_shell_variables (to inhibit
-         importing shell functions) and initialize_shell_options (to inhibit
-         parsing $SHELLOPTS) and initialize_bashopts (to inhibit parsing
-         $BASHOPTS).  Report from <paulfm@umn.edu>
-
-                                  10/12
-                                  -----
-execute_cmd.c
-       - execute_function: unwind-protect loop_level, set loop_level to 0
-         when entering a function so break and continue in functions don't
-         break loops running outside of the function. Fix picked up from
-         dash via Herbert Xu <herbert@gnodor.apana.org.au>
-
-                                  10/13
-                                  -----
-doc/Makefile.in
-       - bashref.pdf: create using texi2dvi --pdf rather than postprocessing
-         the dvi file, so we have PDF bookmarks and links.  Fix from
-         Siep Kroonenberg <siepo@cybercomm.nl>
-
-                                  10/14
-                                  -----
-subst.h
-       - Q_ARITH: new quoting flag. Semantics are per Posix's spec for
-         arithmetic expansion: act as if string is quoted, but don't treat
-         double quotes specially (in this case, they will be removed by quote
-         removal)
-       - Q_ARRAYSUB: new quoting flag, indicates we are expanding an indexed
-         array subscript
-
-subst.c
-       - expand_arith_string: if we are not expanding the string, but we saw
-         a quote with Q_ARITH specified as one of quoting flags, perform
-         quote removal even if Q_DOUBLE_QUOTES is specified
-       - param_expand: change calls to expand_arith_string for $[ and $((
-         cases to specify Q_ARITH.  Now $(( "$x" )) and $(( "x" )) work if x
-         has a value that evaluates to a valid number, as Posix specifies
-       - expand_word_internal: add test for quoted&Q_ARITH to the tilde case,
-         so we continue to perform tilde expansion in arithmetic contexts
-       - expand_word_internal: if quoted&Q_ARITH, continue processing when we
-         see a `"', acting as if the double quote isn't present (already
-         Q_DOUBLE_QUOTED)
-
-arrayfunc.c
-       - array_expand_index: pass Q_DOUBLE_QUOTED|Q_ARITH|Q_ARRAYSUB as quoted
-         argument in call to expand_arith_string.  This inhibits word
-         splitting (Q_DOUBLE_QUOTED) while discarding double quotes (Q_ARITH),
-         identical to the quote flags passed while expanding $(( )) and $[ ].
-         Q_ARRAYSUB reserved for future use.  Fixes problem reported by
-         Stephane Chazelas <stephane.chazelas@gmail.com>
-
-                                  10/16
-                                  -----
-subst.c
-       - parameter_brace_expand_word: if the PF_ASSIGNRHS flag is set and we
-         are expanding what looks like an array subscripted with @ or *,
-         make sure the variable we're expanding is actually an array before
-         we add Q_DOUBLE_QUOTES to the flags.  If we don't, things like
-         scalar[@] will remain quoted.  Fixes ubuntu bug 1381567
-         https://bugs.launchpad.net/ubuntu/+source/bash/+bug/1381567
-
-                                  10/17
-                                  -----
-{jobs,nojobs}.c
-       - get_original_tty_job_signals: get original signal dispostions for
-         SIGTSTP, SIGTTIN, SIGTTOU before we start manipulating them in
-         make_child
-       - default_tty_job_signals: make sure we set SIGTSTP, SIGTTIN, or
-         SIGTTOU to SIG_IGN if they were ignored at shell startup instead of
-         unconditionally setting them to SIG_DFL.  Fixes bug reported by
-         idallen@idallen.ca
-
-jobs.h
-       - get_original_tty_job_signals: extern declaration
-
-trap.c
-       - initialize_traps: add call to get_original_tty_job_signals
-
-                                  10/22
-                                  -----
-subst.c
-       - expand_string_for_rhs: when expanding in this context (rhs of a word
-         expansion or pattern removal), we don't perform word splitting, so
-         we don't want to split $* if IFS is empty.  Fixes bug reported by
-         Stephane Chazelas <stephane.chazelas@gmail.com>
-
-                                  10/23
-                                  -----
-subst.c
-       - param_expand: when expanding $* in a pattern context where the
-         expansion is quoted (Q_PATQUOTE), don't quote the expansion --
-         the outer quotes don't make the characters in the expansion of
-         $* special.  Posix interp 221.  Reported by Stephane Chazelas
-         <stephane.chazelas@gmail.com>
-
-                                  10/28
-                                  -----
-lib/readline/bind.c
-       - enable-bracketed-paste: new bindable variable, enables support for
-         a terminal's `bracketed paste mode'.  Code contributed by
-         Daniel Colascione <dancol@dancol.org>
-
-doc/bash.1,lib/readline/doc/{readline.3,rluser.texi}
-       - enable-bracketed-paste: add description
-
-lib/readline/{readline.c,rlprivate.h}
-       - _rl_enable_bracketed_paste: declarations
-       - #defines for use by bracketed paste implementation
-
-lib/readline/rltty.c
-       - rl_prep_terminal: send BRACK_PASTE_INIT string to terminal if we
-         are supposed to enable bracketed-paste mode; change terminal_prepped
-         to indicate we sent that string and need to clean up
-       - rl_deprep_terminal: if terminal_prepped indicates we sent the
-         bracketed-paste mode init string to the terminal, send the cleanup
-         string before restoring the terminal modes
-
-lib/readline/kill.c
-       - rl_bracketed_paste_begin: function to read bracketed paste until
-         BRACK_PASTE_SUFF; discard the suffix, and insert the rest of the
-         paste as a single (undoable) object.  Bound to BRACK_PASTE_PREF
-
-lib/readline/funmap.c
-       - bracketed-paste-begin: new bindable command, executes
-         rl_bracketed_paste_begin
-
-lib/readline/readline.c
-       - bind_bracketed_paste_prefix: new function, sets up to recognize
-         the bracketed paste prefix sequence (BRACK_PASTE_PREF) in emacs
-         keymap and vi insertion keymap
-       - readline_initialize_everything: call bind_bracketed_paste_prefix
-
-                                  11/1
-                                  ----
-builtins/ulimit.def
-       - RLIMIT_POSIXLOCKS: now synonym for RLIMIT_LOCKS
-       - -k: new option: RLIMIT_KQUEUES, max kqueues allocated for this
-         process
-       - -P: new option: RLIMIT_NPTS, max number of pseudoterminals available
-         to this process
-
-doc/{bash.1,bashref.texi}
-       - document `ulimit -k' option
-       - document `ulimit -P' option
-
-parse.y
-       - `timespec list_terminator' production: if the list terminator is `;'
-         set last_read_token to `;' to allow things like `time ; command' to
-         time null commands and not throw a syntax error.  Patch from
-         Piotr Grzybowski <narsil.pl@gmail.com>
-       - `BANG list_terminator' production: do the same thing
-
-variables.c
-       - sv_optind: use find_shell_variable and get_variable_value so we can
-         have the variable's context in the case we need to do something
-         when we are restoring a previous variable context's value
-
-builtins/getopt.h
-       - sh_getopt_state_t: struct to save sh_getopt's internal state so we
-         can restore it around function calls in the event that we have a
-         local copy of OPTIND
-
-builtins/getopt.[ch]
-       - sh_getopt_{save,restore}_istate: new functions to save and restore
-         getopt's internal state
-       - sh_getopt_{alloc,dispose}_istate: new functions to allocate and
-         deallocate sh_getopt_istate_t objects
-
-execute_cmd.c
-       - maybe_restore_getopt_state: restore sh_getopt state after executing
-         function body iff the funtion declared a local copy of OPTIND
-       - execute_function: save sh_getopt state before executing function body
-       - execute_function: note in getopt_state->flags whether or not the
-         function declared a local copy of OPTIND; used by
-         maybe_restore_getopt_state
-       - execute_function: maybe restore sh_getopt state before returning via
-         call to maybe_restore_getopt_state.  Fixes bugs with getopts and
-         state between calls reported in 2011 by Bernd Eggink
-         <monoped@sudrala.de> and in 2014 by Oyvind Hvidsten
-         <oyvind.hvidsten@dampir.no>
-
-configure.ac
-       - enable-function-import: new option, controls whether function imports
-         are included.  Enabled by default.  Patch from David Galos
-         <davegalos@google.com>
-
-config.h.in
-       - FUNCTION_IMPORT: define controlled by enable-function-import above
-
-variables.c
-       - initialize_shell_variables: include code to import function
-         definitions from the environment if FUNCTION_IMPORT is defined
-
-doc/bashref.texi
-       - --enable_function-import: document new configuration option
-
-                                  11/5
-                                  ----
-lib/readline/history.c
-       - history_lines_read_from_file: new variable, set by read_history and
-         read_history_range to the actual number of lines read from the
-         history file.  The value is valid immediately after a call to one
-         of those functions
-       - history_lines_written_to_file: new variable, set by write_history,
-         history_do_write, and history_truncate_file to the actual number of
-         lines written to the history file.  The value is valid immediately
-         after a call to one of those functions
-
-variables.c
-       - sv_histsize: set history_lines_in_file after history_truncate_file()
-         only if hmax < history_lines_in_file (lines we've already read); a
-         cosmetic change only
-
-bashhist.c
-       - load_history: set history_lines_in_file after read_history() from
-         history_lines_read_from_file, since read_history reads all of the
-         lines from the history file even if it's more than $HISTSIZE
-       - maybe_save_shell_history: after calling write_history(), set
-         history_lines_in_file to history_lines_written_to_file, since we
-         can assume that we read everyhing we just wrote
-
-builtins/history.def
-       - history_builtin: after calling read_history (history -r), set the
-         new value of history_lines_in_file, for the same reason as above
-       - history_builtin: after calling read_history_range (history -n), set
-         history_lines_in_file from history_lines_read_from_file
-
-                                  11/6
-                                  ----
-lib/readline/histfile.c
-       - history_truncate_file: since we move the old file to a backup copy
-         before truncating, make sure the new file is owned by the same uid
-         as the old
-       - history_do_write: use chown in the same way as history_truncate_file
-
-                                  11/12
-                                  -----
-lib/readline/display.c
-       - expand_prompt: takes a new `flags' argument; only one flag defined
-         so far: PMT_MULTILINE
-       - expand_prompt: changed all callers to add new flags argument
-       - rl_expand_prompt, redraw_prompt: make sure to set PMT_MULTILINE in
-         FLAGS argument to expand_prompt if expanding parts of a prompt
-         containing embedded newlines
-       - expand_prompt: only add mode char to last line of a prompt with
-         embedded newlines, so mode indicator doesn't get lost and gets
-         updated properly.  Fixes problem reported by Renlin Li
-         <lirenlin@gmail.com>
-
-                                  11/13
-                                  -----
-
-lib/readline/display.c
-       - prompt_modestr: changed prompt_modechar to return a string denoting
-         the editing mode; default strings for emacs and both vi modes are
-         #defines in this file.  prompt_modestr takes an argument in which
-         it returns the length of the mode string
-       - expand_prompt: if expanding mode strings in the prompt, get the
-         mode string to use and add it at the beginning of the prompt string,
-         before expanding it.  This will allow future work allowing the mode
-         string to contain invisible characters
-
-                                  11/15
-                                  -----
-lib/readline/rlprivate.h
-       - _rl_{emacs,vi_cmd,vi_ins}_mode_str: extern declarations for
-         variables to hold current values of user-settable mode strings;
-         variables to hold lengths 
-
-lib/readline/rlconf.h
-       - defines for default values of the mode strings for each editing mode
-         and keymap
-
-lib/readline/display.c
-       - _rl_{emacs,vi_cmd,vi_ins}_mode_str: new variables to hold values of
-         user-settable mode strings
-       - _rl_{emacs,vi_cmd,vi_ins}_modestr_len: new variables to hold lengths
-         of corresponding mode string variables
-       - prompt_modestr: return appropriate user-settable mode string
-         variables
-
-lib/readline/bind.c
-       - {emacs,vi-ins,vi-cmd}-mode-string: new user-settable mode string
-         variables
-       - sv_{emacs,viins,vicmd}_modestr: variable handling functions for user-
-         settable mode string variables. Non-null values are run through
-         rl_translate_keyseq so users can include invisible character
-         sequences in the mode strings; null values restore the default
-       - _rl_get_string_variable_value: handle values for new user-settable
-         mode string variables. Original code contributed by Dylan Cali
-         <calid1984@gmail.com>
-
-lib/readline/doc/rluser.texi
-       - {emacs,vi-ins,vi-cmd}-mode-string: document, including the fact that
-         you can use \1 and \2 to bracket sequences of non-printing
-         characters
-
-                                  11/16
-                                  -----
-lib/readline/history.c
-       - add_history: replace loop that copies history list down one item
-         with call to memmove to take advantage of whatever efficiencies
-         libc can offer.  Won't be any slower than current loop
-
-lib/readline/display.c
-       - rl_redraw_prompt_last_line: new function, calls redraw_prompt if
-         the prompt contains multiple lines; calls rl_forced_update_display
-         if not
-
-lib/readline/readline.h
-       - rl_redraw_prompt_last_line: extern declaration, undocumented in
-         texinfo manual until I get it a little more work
-
-bashline.c
-       - bash_execute_unix_command: instead of unconditionally calling
-         rl_forced_update_display, call rl_redraw_prompt_last_line if we
-         cleared the last line before executing the command.  This keeps
-         commands that don't display any other output but just manipulate
-         the contents of the line buffer from redisplaying the prompt lines
-         before the last newline multiple times.  Fixes bug reported by
-         Jesper Nygards <jesper.nygards@gmail.com> and Rob Foehl
-         <rwf@loonybin.net>.  This means that commands that display output
-         will *only* display the final line of the prompt
-       - bash_execute_unix_command: if the command returns 124, we redraw
-         the line unconditionally, including all lines of the prompt
-
-                                  11/18
-                                  -----
-builtins/mapfile.def
-       - mapfile_builtin: don't allow a valid array reference through to
-         mapfile(), since it will just create a shell variable with that name.
-         Bug and fix from Eduardo A. Bustamante López <dualbus@gmail.com>
-
-                                  11/19
-                                  -----
-lib/readline/complete.c
-       - _rl_colored_completion_prefix: new variable, if non-zero, and color
-         support is compiled in, and the $LS_COLORS variable exists and
-         contains color definitions, display any common prefix of a set of
-         completions in blue when displaying all the possible completions.
-         Doesn't work with menu-complete, which inserts possible completions
-         inline
-       - colored_prefix_start(), colored_prefix_end(): new functions, used to
-         bracket colored completion prefixes
-       - fnprint: if prefix_bytes is non-zero, and _rl_colored_completion_prefix
-         is > 0, display the first PREFIX_BYTES bytes of the word bracketed
-         by calls to colored_prefix_start and colored_prefix_end
-       - print_filename: if _rl_colored_completion_prefix is > 0, compute the
-         length in bytes of the common prefix and pass that to fnprint
-
-lib/readline/readline.c
-       - readline_initialize_everything: initialize the colors from $LS_COLORS
-         if _rl_colored_completion_prefix is non-zero
-
-lib/readline/colors.c
-       - _rl_print_prefix_color: new function, changes text color to that
-         defined for the common prefix of a set of possible completions
-         (currently cyan, same as directories); currently uses C_PREFIX,
-         defined in colors.h as C_DIR
-
-lib/readline/colors.h
-       - _rl_print_prefix_color: new extern declaration
-
-lib/readline/bind.c
-       - colored-completion-prefix: new bindable variable, if set, common
-         prefix of a set of possible completions is displayed in color.
-         Feature requested by several, most recently by Richard Neill
-         <rn214@richardneill.org> (in a slightly different form) and
-         Duy Nguyen <pclouds@gmail.com>
-
-                                  11/20
-                                  -----
-builtins/printf.def
-       - printf_builtin: allow null (empty) format strings supplied with
-         -v var to set `var' to the empty string.  That is, printf -v var ""
-         is now the same as var="".  Change suggested by Mike Frysinger
-         <vapier@gentoo.org>
-
-pathexp.h
-       - FNMATCH_NOCASEGLOB: macro to decide whether or not to pass
-         FNM_CASEFOLD flag to strmatch depending on whether glob_ignore_case
-         is set; analogout to FNMATCH_IGNCASE
-
-pathexp.c
-       - glob_name_is_acceptable: use FNMATCH_NOCASEMATCH to determine flags
-         passed to strmatch; if nocaseglob is used to generate glob matches,
-         it should be used to generate ignored matches
-
-                                  11/21
-                                  -----
-pcomplete.c
-       - filter_stringlist: the call to strmatch now honors the setting of
-         nocasematch.  Feature request from Ville Skytta <ville.skytta@iki.fi>
-         back in 2010
-
-doc/bash.1,lib/readline/doc/rluser.texi
-       - complete -X: document that filtering the list of possible completions
-         honors the nocasematch option when performing matching
-
-lib/glob/gmisc.c
-       - include chartypes.h and strmatch.h for new defines
-       - match_pattern_{wchar,char}: now take new third FLAGS argument, flags
-         have same meanings as strmatch(); intent is to handle case
-         insensitive comparisons under same conditions as strmatch
-       - FOLD: imported case-folding define from sm_loop.c; wide and single-
-         byte character versions
-       - match_pattern_{wchar,char}: use FOLD when comparing characters to
-         honor FNM_CASEFOLD if set in FLAGS argument
-
-externs.h
-       - match_pattern_{wchar,char}: updated extern declarations
-
-subst.c
-       - match_{upattern,wpattern}: update strmatch/wcsmatch calls to include
-         FNMATCH_IGNCASE in flags argument
-       - match_{upattern,wpattern}: update match_pattern_{char,wchar} calls
-         to include FNMATCH_IGNCASE in flags argument (consistent with calls
-         to strmatch).  This makes pattern substitution word expansion honor
-         nocasematch shell option.  Feature requested by Davide Baldini
-         <baldiniebaldini@gmail.com>
-       - match_wpattern: make sure to fold case if necessary when doing simple
-         matching
-
-doc/{bash.1,bashref.texi}
-       - pattern substitution: updated description to include honoring setting
-         of nocasematch when performing matching
-
-subst.c
-       - expand_word_internal: optimize handling of "$@" idiom by calling
-         list_rest_of_args() and quote_list() directly at the top of the
-         function instead of going through normal code path
-       - cached_quoted_dollar_at: WORD_LIST of quoted positional parameters,
-         used by same code above that optimizes "$@"; if non-null we just
-         return a copy of the list; if null, we save a copy of the list we
-         create
-       - invalidate_cached_quoted_dollar_at: convenience function to allow
-         other parts of the shell (e.g., remember_args()) to destroy the
-         cached list of quoted positional parameter when the positional
-         parameters change
-
-builtins/common.c
-       - remember_args: call invalidate_cached_quoted_dollar_at()
-
-builtins/shift.def
-       - shift_builtin: call invalidate_cached_quoted_dollar_at after modifying
-         dollar_vars[]
-
-builtins/source.def
-       - maybe_pop_dollar_vars: call invalidate_cached_quoted_dollar_at just
-         to be safe
-
-                                  11/23
-                                  -----
-builtins/evalfile.c
-       - _evalfile: return -1 if errno == ENOENT and the flags don't include
-         FEVAL_ENOENTOK.  If we print an error message we should return an
-         error
-       - force_execute_file: new function, reads and executes commands from
-         a file but returns an error if file  doesn't exist
-
-builtins/common.h
-       - force_execute_file: new extern declaration
-
-shell.c
-       - main: call start_debugger even if dollar_vars[1] == 0 if the shell
-         isn't interactive (interactive_shell == 0)
-       - start_debugger: call force_execute_file instead of maybe_execute_file;
-         turn off debugging mode if it returns value < 0
-
-                                  11/24
-                                  -----
-hashlib.h
-       - DEFAULT_HASH_BUCKETS: doubled to 128, cost in memory use is small but
-         changes traversal order when not sorting results
-
-                                  11/25
-                                  -----
-doc/{bash.1,bashref.texi}
-       - make it clearer, by breaking it out into a separate paragraph, that
-         referencing an array without a subscript is equivalent to referencing
-         it with subscript 0
-       - add text saying that referencing any variable using a valid subscript
-         is OK
-
-                                  11/28
-                                  -----
-
-arrayfunc.c
-       - bind_array_variable, bind_assoc_variable: allow binding value to a
-         readonly variable if the ASS_FORCE flag is set in the FLAGS
-         argument
-
-subst.h
-       - ASS_FORCE: new assignment flag; means to allow assignment even if
-         variable is marked readonly
-
-builtins/declare.def
-       - when assigning a value to an array or assoc variable using
-         something like `declare -r foo=bar' where foo is an existing array
-         variable, pass the ASS_FORCE to assign_array_var_from_string so
-         the assignment is allowed.  Fixes debian bug 765759
-         http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=765759
-
-builtins/setattr.def
-       - var_attribute_string: new function to return (as argument) a char
-         array with attribute flag values for a given variable; returns the
-         length of the array
-
-lib/sh/shquote.c
-       - sh_quote_reusable: function returning a version of its string
-         argument that is quoted for reuse
-
-externs.h
-       - sh_quote_reusable: extern declaration
-
-builtins/common.h
-       - MAX_ATTRIBUTES: define used to size arrays for attribute flag
-         characters
-       - var_attribute_string: new extern function declaration
-
-subst.c
-       - array_remove_pattern: fixed a bug where `var' instead of `v' was
-         tested for invisible attribute
-       - get_var_and_type: fill in a valid *VARP if returning VT_VARIABLE
-         because callers may need to use it
-       - parameter_brace_transform: family of functions to implement the new
-         mksh-inspired ${param@spec} transformation word expansions.  Some
-         of the operators transform the (expanded) value of the parameter,
-         the rest expand to information about the parameter itself
-         (array_transform, parameter_list_transform, list_transform,
-         string_transform, pos_params_assignment, array_var_assignment,
-         string_var_assignment)
-       - parameter_brace_expand: changes to parse the new `@' word expansion
-         operator and call parameter_brace_transform appropriately
-       - parameter_brace_expand: make sure we handle ${#@} as we have before
-         even in the presence of the new `@' operator
-
-variables.c
-       - push_temp_var: make sure to call bind_variable_internal with the
-         ASS_FORCE flag so we override readonly variables created with
-         something like `tempvar=foo declare -r foo'.
-       - bind_variable_internal: honor ASS_FORCE flag to allow binding even
-         if a variable is readonly
-
-execute_cmd.c
-       - struct func_array_state: new state to save state of BASH_LINENO,
-         BASH_SOURCE, and FUNCNAME during function execution so it can be
-         restored on a jump to top level
-       - restore_funcarray_state: new function to restore func_array_state
-       - execute_function: fill in func_array_state variable, add unwind-
-         protect to restore it on jump to top level, call explicitly at
-         end of function if subshell != 0 (may not be necessary, but safe
-         for now).  Fixes bug with local assignments to FUNCNAME reported
-         by Arfrever Frehtes Taifersar Arahesis <arfrever.fta@gmail.com>
-
-                                  11/29
-                                  -----
-arrayfunc.c
-       - assign_compound_array_list: turn off ASS_APPEND flag when processing
-         each individual assignment inside the parens in var+=(...).  The
-         outer += should not affect assignments to existing subscripts;
-         those should be treated like usual assignments unless += supplied
-         inside the parens.  Bug report from Maarten Billemont
-         <lhunath@lyndir.com>, fix from Eduardo A. Bustamante López
-         <dualbus@gmail.com>
-
-config.h.in
-       - HAVE_PSELECT: define if pselect(2) available
-
-configure.ac
-       - check for pselect(2), define HAVE_PSELECT if found
-
-lib/readline/input.c
-       - rl_getc: use pselect(2) to wait for input ready on readline's
-         input fd or for a signal to arrive, will handle SIGWINCH (which
-         does not interrupt read(2)) and thus allow resize to happen without
-         having to wait to read more input.  Only works if pselect available
-         and returns -1/EINTR on a signal even if the signal was installed
-         with SA_RESTART.  From a suggestion from Egmont Koblinger
-         <egmont@gmail.com>
-
-                                  12/3
-                                  ----
-variables.c
-       - flush_temporary_env: new function, disposes all temp variables in
-         temporary_env hash table
-       - bind_variable: only try to update a temporary variable's value in the
-         temporary env if the value argument is not null.  Fixes bug reported
-         by <tangqinghao@360.cn>
-
-variables.h
-       - flush_temporary_env: new extern declaration
-
-subst.c
-       - command_substitute: if running command substitution as part of
-         expanding a redirection (expanding_redir == 1), flush any temporary
-         environment we've inherited as part of this command, since we are not
-         supposed to have access to the temporary environment.  Since
-         expanding_redir only controls access to the temporary environment for
-         variable lookup and binding, we can turn it off in the subshell
-
-                                  12/4
-                                  ----
-builtins/printf.def
-       - printstr: make sure a missing precision specifier after a `.' is
-         treated as 0, as printf(3) specifies.  Fixes ubuntu bash bug
-         1399087 (https://bugs.launchpad.net/ubuntu/+source/bash/+bug/1399087)
-
-                                  12/5
-                                  ----
-subst.c
-       - skip_to_delim: if scanning past process substitution (skipcmd == 1,
-         noprocsub == 0), use extract_delimited_string instead of
-         extract_process_subst, which was changed a while back (bash-4.3.23)
-         to use xparse_dolparen.  xparse_dolparen complains if the command
-         or process substitution is unterminated, since it runs the parser,
-         which is not what we want here.  Command substitution does the same
-         thing.  Fixes bug reported by  Daniel Kahn Gillmor
-         <dkg@fifthhorseman.net> as Debian bash bug 771968
-         (https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=771968)
-
-                                  12/6
-                                  ----
-subst.c
-       - command_substitute: short-circuit without forking on a command string
-         that consists entirely of <blank>s and newlines
-
-jobs.c
-       - make_child: changes to allow interrupts through if fork fails and
-         we are sleeping for `forksleep' seconds
-       - waitchld: make things a little more resilient if CHILD ends up NULL
-
-                                  12/12
-                                  -----
-lib/readline/complete.c
-       - rl_display_match_list: when calculating common prefix to display in
-         color, make sure we correctly handle a common prefix with a trailing
-         `/' as we do when checking whether or not to add an ellipis.
-         printable_part() doesn't return the whole pathname if it ends in a
-         slash, to avoid printing null strings, so we have to make sure we
-         have the entire prefix
-
-lib/readline/complete.c
-       - _rl_complete_display_matches_interrupt: new variable, set to 1 by
-         _rl_complete_sigcleanup to let rl_display_match_list know it has
-         freed the match list
-       - display_matches: check for signals during the printing loops with
-         RL_SIG_RECEIVED(), return immediately if there is a pending signal
-         (might not want to do this if it's SIGWINCH -- CHECK)
-       - rl_complete_internal: if _rl_complete_display_matches_interrupt
-         set after calling display_matches, just null out `matches' since
-         it's already been freed and call any application-set signal hook
-
-                                  12/14
-                                  -----
-parse.y
-       - time_command_acceptable: if the token before a newline is `|',
-         return 0, since it's not really valid to time inside a pipeline.
-         Only handles a single newline but allows things like
-               echo a |
-                time cat
-         to invoke /usr/bin/time, which is probably enough to catch the
-         stray carriage return.  Fixes bug reported by Andre Majorel
-         <aym-ung@teaser.fr>
-
-builtins/declare.def
-       - declare_internal: don't try to perform compound assignments unless
-         the WORD_DESC has flags including W_COMPASSIGN (maybe should check
-         W_ASSIGNMENT as well), avoiding unexpected evaluation if a word
-         is of the form (word) and is assigned to an array variable like so:
-         declare -x var=$value.  Bug reported by Stephane Chazelas
-         <stephane.chazelas@gmail.com>. Will eventually be contingent on
-         compatibility level > 43, but not there yet. TENTATIVE
-
-                                  12/15
-                                  -----
-lib/sh/Makefile.in
-       - add missing dependencies for shmatch.o.  Pointed out by Sergey
-         Mikhailov <sergey.mikhailov@gmail.com>
-
-                                  12/16
-                                  -----
-{execute_cmd,subst}.c
-       - W_ASSIGNINT: remove, not used any more
-
-execute_cmd.c
-       - fix_assignment_words: don't look for `-i' option and set W_ASSIGNINT
-         flag any more; doing things a different way
-       - shell_expand_word_list: instead of using W_ASSIGNINT flag, since it
-         doesn't take into account all options that can transform values on
-         assignment (-l/-u/-c can also), go through option arguments looking
-         for options that need special handling and add them to the `opts'
-         array for make_internal_declare to use.  Fixes bug with constructs
-         like `declare -al foo=(UPONE UPTWO UPTHREE)' not being lowercased on
-         assignment reported by Linda Walsh <bash@tlinx.org>
-
-
-
-                                  12/18
-                                  -----
-lib/readline/readline.c
-       - rl_internal_char: when we read EOF on a non-empty line, check for
-         signals and invoke any readline signal handling and any application-
-         installed signal hook
-
-                                  12/20
-                                  -----
-lib/readline/readline.c
-       - rl_internal_char: if we read EOF on a non-empty line, set c to
-         _rl_eof_char the first time through.  If we read EOF the next time,
-         return EOF from readline().  If callbacks are defined, this returns
-         EOF immediately, since lastc isn't available.  Fix for problem
-         most recently identified by Jiri Kukacka <jiri.kukacka@orcle.com>,
-         it has come up in the past
-
-                                  12/21
-                                  -----
-builtins/declare.def
-       - declare_internal: keep track of whether or not an assignment statement
-         argument to declare is an array subscript assignment; need to
-         differentiate assignments from straight declarations (declare a[4])
-         which are accepted for backwards compatibility
-       - assignment statements like declare a[2]=foo are now treated as
-         straight subscript assignment statements if a already exists as an
-         array variable
-       - declare foo='(1 2 3)' is treated as an assignment to foo[0] if foo
-         exists and is an array, just as it would be if it were an assignment
-         statement and `declare' was not present.  All this from a proposal
-         by Stephane Chazelas <stephane.chazelas@gmail.com>
-
-                                  12/22
-                                  -----
-builtins/read.def
-       - read_tty_modified: function to tell the rest of the shell if the
-         read builtin has modified the tty
-       - read_builtin: make sure to initialize terminating signals before
-         installing a SIGALRM signal handler in case we modify the tty as
-         well as ask for a timeout; the subsequent call to
-         initialize_terminating_signals would overwrite the read-builtin-
-         local SIGALRM handler
-
-builtins/common.h
-       - read_tty_modified: new extern declaration
-
-shell.c
-       - exit_shell: if read_tty_modified() returns true, call read_tty_cleanup
-         to undo the terminal modifications. Extension of previous fixes;
-         fixes bug with read -s reported by Richard W. Marsden
-         <richard@marsden.nu>
-
-
-                                  12/23
-                                  -----
-builtins/setattr.def
-       - show_var_attributes: call print_array_assignment and print_assoc_assignment
-         with a `not quoted' flag so the assignment statements are not
-         surrounded by single quotes.  Caused changes to a lot of test output
-
-                                  12/29
-                                  -----
-lib/readline/complete.c
-       - stat_char: Windows doesn't handle X_OK flag to access(2); use file
-         extensions to determine whether or not a file is executable.  Bug
-         report and fix from Eli Zaretskii <eliz@gnu.org>
-
-configure.ac
-       - changed version to bash-4.4-devel
-
-lib/readline/readline.h
-       - changed version to readline-6.4
-
-                                  12/30
-                                  -----
-readline.h
-       - struct readline_state: fix types of `ignorefunc' and `attemptfunc'
-         members
-
-lib/sh/shquote.c,externs.h
-       - sh_contains_shell_metas, sh_contains_quotes: now take `const char *'
-         as parameter
-
-stringlib.c,externs.h
-       - strcreplace: `text' argument now `const char *'
-
-pathexp.[ch]
-       - quote_globbing_chars: `string' argument now `const char *', accompanying
-         changes to function local variables
-
-pcomplete.c
-       - preproc_filterpat: `text' argument now `const char *'
-       - filter_stringlist: `text' argument now `const char *'
-
-                                  12/31
-                                  -----
-builtins/evalstring.c
-       - should_suppress_fork: new function, broke code that decides whether
-         to turn on CMD_NO_FORK flag out of parse_and_execute into a separate
-         function
-
-execute_cmd.c
-       - execute_command_internal: AND_AND, OR_OR: call should_suppress_fork
-         for the RHS of && and ||, make `make' invocations marginally more
-         efficient
-
-flags.c
-       - get_current_flags: returns a bitmap of all single-letter shell
-         options with a non-zero value meaning option is enabled
-       - set_current_flags: set current single-letter options from a passed
-         bitmap, which has presumably been initialized with get_current_flags
-
-flags.h
-       - {get,set}_current_flags: new extern declarations
-
-builtins/declare.def
-       - declare_internal: if invoked as `local', interpret name argument of
-         `-' to mean to save (and restore at shell return) single-letter
-         shell options
-
-variables.c
-       - push_func_var: if we encounter `-' as the name of a local variable,
-         take the value and call set_current_flags on it to restore old
-         flag settings
-
-builtins/set.def
-       - get_current_options: returns a bitmap of all shell options settable
-         with `set', with a non-zero value meaning option is enabled
-       - set_current_options: set current shell options from a passed
-         bitmap, which has presumably been initialized with get_current_options
-
-
-                                1/1/2015
-                                --------
-lib/readline/parens.c
-       - _rl_blink_matching_paren: initialize to 0 whether or not select(2) is
-         available.  Inconsistency reported by Mark Karpov
-         <markkarpov@opmbx.org>
-
-builtins/declare.def
-       - declare_internal: use get_current_options instead of
-         get_current_flags, so `local -' can be generalized
-
-variables.c
-       - push_func_var: use set_current_options instead of set_current_flags
-         so `local -' can be generalized
-
-doc/{bash.1,bashref.texi}
-       - document new `local -' feature; originally inspired by Robert Elz
-         <kre@munnari.oz.au> describing feature in NetBSD sh
-
-                                   1/3
-                                   ---
-lib/readline/{complete,funmap,kill,histfile,util}
-lib/readline/readline.h
-lib/tilde/tilde.c
-       - fixes for filename- and evironment-related issues on Windows.  Fixes
-         from Eli Zaretskii <eliz@gnu.org>
-       - Windows can paste to the console from the clipboard like Cygwin
-       - Windows uses $APPDATA as a pseudo-$HOME
-
-lib/readline/input.c
-       - rl_getc: use _getch on Windows to avoid being overridden by a getch
-         ncurses function
-       - win32_isatty: replace Windows isatty(3) with a function that does
-         additional checks, sinces Windows isatty returns non-zero for
-         every character device.  From Eli Zaretskii <eliz@gnu.org>
-
-lib/readline/display.c
-       - delete_chars: if compiled with ncurses on Windows, this code can
-         work, so build it in if NCURSES_VERSION defined
-       - open_some_spaces: ditto
-
-                                   1/6
-                                   ---
-doc/{bash.1,bashref.texi}
-       - minor grammar and typo corrections from TonyMc <afmcc@btinternet.com>
-
-                                   1/8
-                                   ---
-sig.c
-       - throw_to_top_level: only attempt to run the interrupt trap if SIGINT
-         is trapped -- minor optimization
-       - throw_to_top_level: if we are running a trap, call run_trap_cleanup
-         to turn off the sigmodes flags
-
-trap.c
-       - _run_trap_internal: temporarily suppress pending SIGINTs while running
-         one of the traps the shell handles internally (e.g., ERR).  Fixes bug
-         reported by Keith Thompson <keithsthompson@gmail.com>
-
-                                  1/10
-                                  ----
-bashhist.c
-       - bash_history_inhibit_expansion: use skip_to_delim with the history
-         expansion character to see whether or not the instance of the
-         history expansion character should be skipped because, for instance,
-         it is in a command substitution.  Fixes issue reported by
-         Zigmund.Ozean@zig-home.localdomain
-
-                                  1/14
-                                  ----
-lib/readline/isearch.c
-       - _rl_isearch_dispatch: if we are in a multibyte locale, make sure to
-         use _rl_find_prev_mbchar when trying to delete characters from the
-         search string, instead of just chopping off the previous byte.
-         Fixes bug reported by Kyrylo Shpytsya <kshpitsa@gmail.com>
-
-lib/readline/complete.c
-       - rl_filename_completion_function: if we tilde-expand `dirname', make
-         sure we use the expanded result instead of throwing it away for the
-         quote-removed `users_dirname', which still has any leading tilde.
-         Fixes bug reported by Dave Rutherford <dave@evilpettingzoo.com>
-
-execute_cmd.c
-       - select_query: if the read builtin doesn't return anything in REPLY,
-         return NULL (failure). Fixes bug reported by Etherial Raine
-         <osirisgothra@hotmail.com>
-
-builtins/read.def
-       - read_builtin: if REPLY has the readonly or noassign attribute, return
-         failure
-
-                                  1/16
-                                  ----
-redir.c
-       - redir_open: if open() returns -1/EINTR, check traps as well as
-         using QUIT to handle signals
-
-                                  1/18
-                                  ----
-jobs.c
-       - wait_for: make sure queue_sigchld is set to 1 before unblocking
-         SIGCHLD if MUST_UNBLOCK_CHLD is defined
-
-                                  1/19
-                                  ----
-pcomplete.h
-       - new progcomp option: COPT_NOSORT, means to not sort list of possible
-         completions
-
-pcomplete.c
-       - pcomp_set_readline_variables: if COPT_NOSORT set in compspec flags,
-         set rl_sort_completion_duplicates to 0
-
-builtins/complete.def
-       - _compopt: new option value: -o nosort, sets COPT_NOSORT in compspec
-         option flags. Provides new -o nosort option for complete and compgen
-
-bashline.c
-       - attempt_shell_completion: make sure rl_sort_completion_matches is
-         set to 1 before completion is attempted; allow a compspec to turn
-         it off
-
-lib/readline/kill.c
-       - rl_vi_yank_pop: new function, vi-mode version of yank-pop.  Original
-         code from Ian Kelling <ian@iankelling.org>
-
-lib/readline/funmap.c
-       - `vi-yank-pop': bindable name mapped to rl_vi_yank_pop
-
-lib/readline/readline.h
-       - rl_vi_yank_pop: extern declaration
-
-                                  1/21
-                                  ----
-lib/sh/shquote.c
-       - sh_backslash_quote: change to understand and handle multibyte
-         characters, using is_basic, COPY_CHAR_P.  See
-         https://bugzilla.redhat.com/show_bug.cgi?id=1184320 for original
-         report
-
-                                  1/23
-                                  ----
-include/posixjmp.h
-       - use setjmp_sigs instead of redefined setjmp, it fails on Cygwin.
-         Report from Eric Blake <eblake@redhat.com>
-
-builtins/wait.def,shell.c
-       - use setjmp_sigs instead of setjmp call, since setjmp no longer
-         redefined to something known
-
-include/chartypes.h, lib/readline/chardefs.h
-       - make sure all ctype.h macros are called with unsigned char args,
-         casting to make sure
-
-lib/sh/casemod.c
-       - sh_modcase: don't assume that the upper and lower case versions of a
-         character are the same width, so don't try to do the conversion in
-         place: convert and copy the converted characters one or more at a
-         time to the returned string
-       - sh_modcase: since upper and lower case versions of same character
-         may have different widths in some locales, don't shortcut and assume
-         that we can do single-byte case modification (toupper) with a
-         single-byte input character (e.g., `i').  Fix for problem reported
-         by Stephane Chazelas <stephane.chazelas@gmail.com>
-
-                                  1/31
-                                  ----
-lib/readline/histfile.c
-       - history_truncate_file, history_do_write: if the first rename(2)
-         of the history file to the backup file fails, set the backup file
-         name to NULL to prevent any later attempts to restore the
-         original.  Report from Jonathan Hankins <jhankins@homewood.k12.al.us>
-       - history_do_write: don't attempt to back up non-regular files.
-         Report from Jonathan Hankins <jhankins@homewood.k12.al.us>
-
-                                   2/2
-                                   ---
-trap.c
-       - run_interrupt_trap: now takes an argument indicating whether or not
-         it was called just before a longjmp to top_level; change callers
-       - run_interrupt_trap: if running a trap and we are being called before
-         a longjmp to top_level, call run_trap_cleanup on running trap so
-         a QUIT call while running a DEBUG trap, for instance, doesn't leave
-         sigmodes[DEBUG_TRAP] including SIG_INPROGRESS.  Fixes bug reported
-         by Chih-Chieh Chou <ccchou@gmail.com>
-
-sig.c
-       - throw_to_top_level: change call to run_interrupt_trap to pass arg 1
-       - termsig_handler: change call to run_interrupt_trap
-
-trap.h
-       - run_interrupt_trap: update extern prototype declaration
-
-                                   2/4
-                                   ---
-lib/readline/histfile.c
-       - histfile_backup, histfile_restore: new functions to back up and restore
-         history file to `filename-', following (one level of) symlinks through
-         so we don't rename the symlink itself.  From a suggestion by
-         Jonathan Hankins <jhankins@homewood.k12.al.us>
-
-assoc.c
-       - assoc_to_assign: if an index happens to be `@' or `*', make sure it's
-         double-quoted.  Bug report from Greg Wooledge <wooledg@eeg.ccf.org>
-
-                                   2/5
-                                   ---
-lib/readline/bind.c
-       - rl_bind_key: if we are rebinding a key that is not bound to a
-         function or a macro, construct a key sequence and pass it to
-         rl_bind_keyseq.  Make sure that '\' when it is used as a key is
-         changed to "\\" so it can survive rl_translate_keyseq.  Fixes
-         https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=776743
-
-                                   2/8
-                                   ---
-include/posixjmp.h
-       - _rl_longjmp, sh_longjmp: new defines, expand to siglongjmp or longjmp
-         depending on autoconf results, used to avoid redefining longjmp,
-         remove _OPENNT conditional code.  Report from Eric Blake
-         <eblake@redhat.com>
-
-{bashjmp,quit}.h,{execute_cmd,expr,jobs,sig,trap}.c,builtins/{evalstring.c,return.def}
-       - change calls to longjmp to use sh_longjmp
-
-lib/readline/util.c
-       - change calls to longjmp to use _rl_longjmp
-
-                                  2/18
-                                  ----
-variables.c
-       - bind_int_variable: make sure `v' is non-null before making it visible
-
-                                  2/19
-                                  ----
-arrayfunc.c
-       - assign_array_var_from_word_list: after assignment, mark variable as no
-         longer invisible
-       - assign_array_var_from_string: after assignment, mark variable as no
-         longer invisible
-
-builtins/declare.def
-       - declare_internal: add warning if an attempt is made to use a quoted
-         compound assignment as an argument to declare (declare -a foo='( 1 2 )');
-         backwards compatible with bash-4.3. Still a tentative change
-
-                                  2/20
-                                  ----
-lib/glob/smatch.c
-       - is_wcclass: check malloc() return value, return -1 if it fails
-         Report from Tobias Stoeckmann <tobias@stoeckmann.org>
-
-lib/sh/shmatch.c
-       - sh_regmatch: check malloc() return value, handle NULL value if it
-         fails.  Report from Tobias Stoeckmann <tobias@stoeckmann.org>
-
-                                  2/22
-                                  ----
-lib/readline/doc/rltech.texi
-       - rl_callback_handler_install: note that the handler function should
-         free the line it receives, as with readline.  Suggested by
-         Ulf Magnusson <ulfalizer@gmail.com>
-       - Readline Signal Handling: note that application needs to clean up
-         readline's terminal state if it wants to handle a signal before
-         the line handler restores it.  Suggested by Ulf Magnusson
-         <ulfalizer@gmail.com>
-
-                                  2/24
-                                  ----
-lib/readline/histfile.c
-       - history_do_write,history_truncate_file: if the write fails, make sure
-         to set history_lines_written_to_file to 0 so we don't lose those
-         history entries
-
-                                  2/27
-                                  ----
-execute_cmd.c
-       - execute_function: unwind-protect the value of line_number_for_err_trap,
-         so a function that returns a non-zero value and triggers an ERR trap
-         has the right value for LINENO. Any simple command in the function
-         body can change it.  Bug report from Paul Donohue <gnu@paulsd.com>
-
-                                   3/5
-                                   ---
-lib/sh/shquote.c
-       - sh_backslash_quote: cast `c' to `unsigned char' before using as
-         index into backslash_table.  Report and fix from
-         alexeyv.90@gmail.com
-
-arrayfunc.[ch]
-       - valid_array_reference: added second `flags' argument for future use;
-         currently unused
-
-parse.y,{redir,subst,variables,test}.c
-builtins/{declare,printf,read,set}.def
-       - valid_array_reference: changed callers
-
-                                   3/7
-                                   ---
-lib/readline/signals.c
-       - _rl_handle_signal: if readline gets a SIGTSTP or SIGTTIN, block
-         SIGTTOU so a backgrounded readline can reset the terminal settings
-         appropriately, otherwise the terminal state and readline's idea
-         of it can get messed up.  Original report from Dave Wysochanski
-         <dwysocha@redhat.com> and Dave Anderson <anderson@redhat.com>
-
-trap.c
-       - run_pending_traps: don't allow recursive SIGWINCH trap invocations;
-         they're wasteful and trying to handle a stream of signals while a
-         user resizes the terminal can lead to malloc errors trying to save
-         and restore the_pipeline multiple times.  Problem reported most
-         recently by Martin M. S. Pederson (Fedora bash bug 1197768
-         https://bugzilla.redhat.com/show_bug.cgi?id=1197768)
-       - reset_or_restore_signal_handlers: set pending_traps to 0 for all
-         signals when forking a child. TENTATIVE fix
-
-jobs.c
-       - {save,restore}_pipeline: block SIGCHLD while manipulating the_pipeline
-         like cleanup_the_pipeline does. XXX - may not be necessary
-
-lib/readline/display.c
-       - rl_redisplay: fixed case where multibyte character in the prompt
-         (e.g., \u03bb) in the last screen column causes problems with line
-         wrapping because the newline marker is put in the middle of the
-         multibyte char.  Most recently reported on Ubuntu by
-         <sterpe@gmail.com>
-
-pathexp.c
-       - quote_string_for_globbing: if a bracket expression doesn't have a
-         closing right bracket, rescan it from just after the opening
-         bracket without treating it as a bracket expression.  Bug report
-         from Stephane Chazelas <stephane.chazelas@gmail.com>
-
-                                   3/9
-                                   ---
-subst.c
-       - process_substitute: keep the last pipeline created to run a process
-         substitution in LAST_PROCSUB_CHILD; discard it when another one is
-         created
-
-jobs.[ch]
-       - discard_pipeline: now global, so process_substitute can call it
-
-jobs.c
-       - last_procsub_child: new variable, set and modified only by the process
-         substitution code
-       - find_pipeline: if the requested pid is in LAST_PROCSUB_CHILD, return
-         it; analogous to the way this code handles the_pipeline
-       - waitchld: if we find a child via find_pipeline that is a part of the
-         last process substitution child, mark that child appropriately.  If
-         the child is dead, add it to the bgp list.  This and the previous
-         change allow waiting for the most recent process substitution (the
-         one corresponding to $!).  Original report from Stephane Chazelas
-         <stephane.chazelas@gmail.com>
-
-                                  3/10
-                                  ----
-arrayfunc.c
-       - unbind_array_element: make sure skipsubscript() doesn't try to parse
-         embedded quotes in the subscript, since this has already been through
-         one round of word expansion before calling the unset builtin.  (This
-         function is only called by the unset builtin).  Fixes bug reported by
-         <vampyrebat@gmail.com>
-
-                                  3/17
-                                  ----
-jobs.c
-       - waitchld: move code that adds the last process substitution pid to
-         the bgpids array from waitchld (where it can call malloc in a signal
-         handler context) to cleanup_dead_jobs
-
-                                  3/19
-                                  ----
-subst.c
-       - parameter_brace_expand: if expanding an array in a context where word
-         splitting will not take place (W_ASSIGNRHS only for now), make sure
-         to pass the double-quoted flag to chk_atstar so we don't get the
-         unquoted $* behavior, which will cause unwanted word splitting.
-         Fixes bug reported by isabella parakiss <izaberina@gmail.com>
-
-arrayfunc.c
-       - unbind_array_element: don't assume that caller will check and pass
-         only array variables; don't allow non-array variables to be unset
-         using the `@' or `*' subscripts and don't allow any subscripts other
-         than 0; return -2 in those cases
-       - unbind_array_element: unset a non-array variable if passed a subscript
-         of `0' (e.g., `unbind "scalar[0]"').  This is new functionality that
-         parallels the ${scalar[0]} expansion
-
-builtins/set.def
-       - unset_builtin: don't check whether a variable is an array if it's
-         referenced using array syntax (scalar[0]); pass it to
-         unbind_array_element anyway and check the result.  This means that
-         `unset scalar' and `unset scalar[0]' are equivalent
-
-                                  3/20
-                                  ----
-builtins/set.def
-       - set_builtin: make `-i' an invalid option, unconditionally for now.
-         From a bug-bash discussion started by Peng Yu <pengyu.ut@gmail.com>
-
-                                  3/21
-                                  ----
-lib/readline/colors.c
-       - _rl_print_color_indicator: handle dangling symlinks (C_ORPHAN) and
-         the `target' specifier for links (dereference S_ISLNK if the target
-         exists).  Bug report and fix from andreas@stapelspeicher.org
-
-{arrayfunc,subst}.c
-       - add code to save and restore this_command_name in places that set
-         this_command_name to NULL to prevent error messages from arithmetic
-         evaluation.  Fixes bug reported by brian.carpenter@gmail.com
-
-builtins/mapfile.def
-       - do_chop: remove a new DELIM argument from the line, instead of
-         unconditionally removing newline
-       - mapfile: if -d delim is supplied and we are breaking fields at DELIM,
-         remove DELIM if the -t option is supplied by passing DELIM to do_chop().
-         Suggested by Geir Hauge <geir.hauge@gmail.com>
-
-doc/{bash.1,bashref.texi}
-       - mapfile: document new -t option behavior, defaults are the same
-
-builtins/alias.def
-       - print_alias: if the first character of an alias name is `-', add a
-         `-- ' after `alias' to avoid option errors when trying to reuse the
-         output.  Bug report and fix on savannah from Pasha Bolokhov
-         <pasha.bolokhov@gmail.com>
-
-                                  3/22
-                                  ----
-builtins/declare.def
-       - declare_internal: if creating a variable does not return a valid
-         variable in VAR, check for null variable before dereferencing it.
-         This happens with nameref variables referencing variables set to
-         the empty string.
-         Fixes bug reported by Arthur200000 <arthur200126@163.com> 
-
-                                  3/23
-                                  ----
-doc/{bash.1,bashref.texi}
-       - INVOCATION: add language to make it clear that non-interactive login
-         shells execute ~/.bash_logout if they run the `exit' builtin.  From a
-         question from Christoph Anton Mitterer <calestyo@scientia.net>
-
-                                   4/6
-                                   ---
-subst.c
-       - process_substitute: increment and decrement subshell_level around
-         calls to parse_and_execute, as in command substitution, so
-         $BASH_SUBSHELL gets new values in the subshell.  Fixes inconsistency
-         pointed out by Peng Yu <pengyu.ut@gmail.com>
-
-doc/{bash.1,bashref.texi}
-       - read: add clarifying text to note that the -N option does not split
-         on $IFS, but does retain backslash as an escape character subject
-         to -r.  Report from isabella parakiss <izaberina@gmail.com>
-
-builtins/declare.def
-       - declare_internal: unless it's the last statement in a {...} block,
-         NEXT_VARIABLE must be protected by braces.  Bug introduced in patch
-         from 3/22, reported by Eduardo A. Bustamante López
-         <dualbus@gmail.com>
-
-                                   4/7
-                                   ---
-parse.y
-       - shell_getc: if bash is reading input from a string that ends with an
-         unquoted backslash, add another backslash instead of a newline, since
-         the backslash and newline will disappear in normal processing.  Fixes
-         bug with `bash -c 'eval \\; echo y' ' skipping the eval command and
-         setting incorrect exit status, and `bash -ic 'eval \\; echo y' '
-         seeing EOF on empty line and exiting before the echo.  Keep track of
-         backslash state with last_was_backslash; set in char reading loop.
-         Fixes bug reported by Eduardo A. Bustamante López <dualbus@gmail.com>
-
-                                   4/8
-                                   ---
-shell.c
-       - main: check for $INSIDE_EMACS as well as $EMACS when deciding whether
-         or not bash is being run in a GNU emacs shell window.  Don't bother
-         checking whether $TERM is unset because variable initialization sets
-         it to `dumb' if unset.  Fixes from Paul Eggert <eggert@CS.UCLA.EDU>
-
-parse.y
-       - push_token: new function, rotates current_token through last_read_token,
-         saving old values like yylex() does, sets current_token to argument
-
-evalfile.c
-       - _evalfile: if current_token is yacc_EOF, push a newline as the value
-         of current_token instead, using push_token().  yacc_EOF can result if
-         sourced file doesn't end with a newline but does end with an unescaped
-         backslash.  Fixes bug reported by Pedro Gimeno
-         <pgwr-842@personal.formauri.es>
-
-lib/readline/histfile.c
-       - use PARAMS(x) instead of __P(x).  Bug reported by Evan Gates
-         <evan.gates@gmail.com>
-
-                                   4/9
-                                   ---
-execute_cmd.c
-       - execute_simple_command: if we haven't already forked, and we have
-         created FIFOs, turn off the no-fork optimization in the simple
-         command's flags. Originally reported to savannah by Kuang-che Wu as
-         https://savannah.gnu.org/support/index.php?108732
-
-                                  4/10
-                                  ----
-trap.c
-       - trap_if_untrapped: new function, sets a trap on a signal if that
-         signal is not already trapped
-       - maybe_set_debug_trap: new function, sets DEBUG trap to command string
-         argument only if it's not already trapped
-
-trap.h
-       - maybe_set_debug_trap: new extern declaration
-
-
-builtins/source.def
-       - source_builtin: if the -T option isn't set, use maybe_set_debug_trap
-         in the unwind-protect instead of unconditionally restoring the old
-         trap string. That means if the sourced file changes the DEBUG trap,
-         that new trap will persist instead of being undone when the old
-         value is restored. Fixes bug reported by Scott Bronson
-         <bronson@rinspin.com>
-
-builtins/evalstring.c
-       - parse_string: before we jump to top_level, if we are at the `bottom'
-         of the parse_and_execute stack (parse_and_execute_level == 0), call
-         top_level_cleanup() before jumping so the right cleanup happens (e.g.,
-         cleaning up redirections and other state).  Fixes bug reported by
-         Sam Liddicott <sam@liddicott.com>
-
-                                  4/15
-                                  ----
-jobs.c
-       - delete_job: only add J_ASYNC (and not J_FOREGROUND) jobs to the
-         bgpids array, since Posix says shells only need to save the status
-         of async jobs.  Report and fix from John Fremlin <john@fb.com>
-
-                                  4/17
-                                  ----
-pcomplib.c
-       - COMPLETE_HASH_BUCKETS: increase to 256 since bash-completion is
-         over 300 completions by now
-
-variables.c
-       - VARIABLES_HASH_BUCKETS: constant used to size shell variables hash
-         table instead of relying on hash library default.  Used in calls
-         to hash_create in create_variable_tables(), push_temp_var(), and
-         push_func_var().  Currently set to 1024 because why not?  From a
-         discussion starting at
-         https://lists.gnu.org/archive/html/bug-bash/2015-04/msg00089.html
-       - initialize_shell_variables: if FUNCTION_IMPORT is not defined, the
-         nested conditional compilation causes syntax errors.  Bug and fix
-         from Eric Blake <eblake@redhat.com>
-
-configure.ac
-       - function-import: fix typo, assign to correct variable.  Found as the
-         result of a report by Eric Blake <eblake@redhat.com>
-
-shell.c
-       - open_shell_script: check whether or not file argument is a
-         directory before opening; Posix says that implementations may open
-         a directory with O_RDONLY.  Bug report from
-         Eduardo A. Bustamante López <dualbus@gmail.com>
-
-                                  4/19
-                                  ----
-ulimit.def
-       - fix typo in limits[] declaration of `k'
-
-                                  4/20
-                                  ----
-configure.ac
-       - add template definitions set by AC_USE_SYSTEM_EXTENSIONS from a report
-         from Andreas Schwab <schwab@linux-m68k.org>
-
-variables.c
-       - FUNCTIONS_HASH_BUCKETS: constant used to size the hash tables used for
-         shell functions and the text of shell function definitions.  Initially
-         set to 512, even though it's a really rare case that someone has more
-         than around 150 functions, even with bash-completion
-
-                                  4/21
-                                  ----
-shell.c
-       - main: malloc_set_register: change arg to 0 to disable keeping track of
-         allocations and frees in table; change to 1 for malloc debugging on
-         demand.  Table is too small to keep effective track of allocations on
-         a modern system, need to use something like valgrind
-
-                                  4/22
-                                  ----
-shell.c
-       - main: move cmd_init() (initialize word desc and word list object
-         caches) after startup files are read so the cache doesn't get filled
-         up with semi-permanent storage for shell functions and variables
-
-execute_cmd.c
-       - execute_function: use maybe_set_debug_trap in the same way as source
-         builtin change from 4/10 to allow functions to reset a DEBUG trap
-         when set -T not in effect.  From a report by Peng Yu
-         <pengyu.ut@gmail.com>
-
-                                  4/23
-                                  ----
-execute_cmd.c
-       - execute_disk_command: don't overwrite value of subshell_environment
-         by assigning SUBSHELL_FORK; just OR in SUBSHELL_FORK so something
-         like SUBSHELL_ASYNC or SUBSHELL_PIPE is preserved
-
-jobs.c
-       - wait_for: don't call give_terminal_to if running in a subshell
-         environment, not just if running_in_background is set; don't want
-         shell functions waiting for a process to complete in a pipeline to
-         give the terminal to the wrong process group.  Part of fix for bug
-         reported by Valentin Bajrami <valentin.bajrami@gmail.com>
-       - make_child: child process should not try to give the terminal to the
-         pipeline_pgrp if running as part of a pipeline (SUBSHELL_PIPE in
-         subshell_environment); functions in execute_cmd.c don't set that
-         flag until after make_child returns and the child process is running.
-         Rest of fix for bug reported by Valentin Bajrami
-         <valentin.bajrami@gmail.com>
-
-                                  4/24
-                                  ----
-redir.c
-       - redirection_error: if the redirection involves {varname}, only use
-         `varname' in the error message if the error code is < 0 (one of the
-         internal redirection errors, like ambiguous or bad variable name);
-         otherwise the issue is probably with the filename and should be treated
-         as usual.  Fixes problem reported by Dr. David Alan Gilbert
-         <dgilbert@redhat.com>
-
-configure.ac,config.h.in
-       - sys/ioctl.h: add check in AC_CHECK_HEADERS macro, define HAVE_SYS_IOCTL_H
-
-lib/readline/{rltty,terminal}.c
-       - sys/ioctl.h: include unconditionally for ioctl declaration, avoid
-         issues with `implicit declaration' warnings.  Issue originally
-         raised on gdb list by Chen Gang <xili_gchen_5257@hotmail.com>
-
-                                  4/27
-                                  ----
-lib/malloc/table.c
-       - mem_table: now a circular buffer showing the state of the last
-         REG_TABLE_SIZE allocations rather than a hash table that quickly
-         fills up
-
-builtins/declare.def
-       - typeset_builtin: add -n to list of supported options.  Omission
-         reported by Valentin Bajrami <valentin.bajrami@gmail.com>
-
-unwind_prot.c
-       - use object caches instead of malloc/free to allocate and deallocate
-         unwind-protect elements
-       - uwp_init: initialize unwind-protect element object cache
-
-unwind_prot.h
-       - uwp_init: extern declaration
-
-shell.c
-       - main: call uwp_init right after calling cmd_init -- initialize all the
-         object caches at the same place
-
-lib/malloc/table.[ch]
-       - mlocation_table: new table to keep track of allocation locations by
-         file and line, functions to initialize table, record an allocation,
-         and dump the table to stderr
-       - mregister_alloc: call mlocation_register_alloc to record the location
-         (source file/line) for each allocation to pinpoint malloc hot spots
-         by number of calls.  More detail than gprof
-
-parse.y
-       - set_line_mbstate: replace free/xmalloc pair with xrealloc call
-       - read_token_word: call alloc_word_desc instead of xmalloc so we can take
-         advantage of the WORD_DESC cache
-
-                                  4/28
-                                  ----
-execute_cmd.c
-       - execute_simple_command: if command execution fails because the command
-         is a directory, and the `autocd' option is set, add a `--' argument
-         to the constructed `cd' command to protect against command names with
-         the same name as options to `cd'.  Report and fix from
-         isabella parakiss <izaberina@gmail.com>
-
-                                  4/30
-                                  ----
-jobs.c
-       - printable_job_status, j_strsignal: change calls to strcpy and sprintf
-         that write to retcode_name_buffer to use strncpy and snprintf to
-         avoid buffer overflows caused by malicious translations.  Bug and fix
-         from Trammell Hudson <Trammell.Hudson@twosigma.com>
-
-                                   5/1
-                                   ---
-strtrans.c
-       - ansicstr: make sure the buffer is at least 12 bytes to ensure enough
-         space for any eventual call to u32cesc for one multibyte char
-
-                                   5/4
-                                   ---
-jobs.c
-       - wait_for: if an interactive shell is running a loop and waiting for
-         a non-builtin command to exit, and the command exits due to SIGINT,
-         act as if the shell received the SIGINT as well and break the loop.
-         This matches the behavior when the shell is running a builtin command
-         in a loop, and when running a non-builtin command outside a loop, and
-         seems more broadly useful than running the trap handler over and over
-         again.  Report originally from Kaz Kylheku <kkylheku@gnu.org>
-
-builtins/set.def
-       - unset_builtin: use different variables for keeping the state of the
-         -f and -v options than the loop uses to decide whether or not to
-         treat a name as a function or a variable.  Fixes problem with
-         unset_function setting `sticking' after you unset a function when
-         invoked with no options.  Bug report from Dreamcat4
-         <dreamcat4@gmail.com>
-
-shell.c
-       - open_shell_script: set running_shell_script to 1, set to 0 in every
-         other case (new variable)
-       - main: when checking whether or not to call start_debugger, test
-         running_shell_script instead of dollar_vars[1].  The goal is to not
-         invoke the debugger for interactive shells but allow it to run for
-         things like `bash --debugger -i /tmp/script'.  Problem reported by
-         Rocky Bernstein <rocky@gnu.org>
-
-lib/readline/histexpand.c
-       - history_event_delimiter_chars: new (as yet undocumented) variable
-         containing by default characters that can delimit a history event
-         specifier without requiring a `:': "^$*%-" as the documentation has
-         always said.  Fixes bug reported by Anders Granlund
-         <anders.granlund.0@gmail.com>
-
-                                  5/10
-                                  ----
-lib/glob/gmisc.c
-       - match_pattern_char, match_pattern_wchar: if passed an empty string,
-         return a match if the first character of the pattern is `*'
-
-subst.c
-       - pat_subst: change to allow empty strings to be replaced as long as
-         pattern matches empty string.  Report and fix from isabella parakiss
-         <izaberina@gmail.com>
-
-                                  5/12
-                                  ----
-lib/sh/strtrans.c
-       - ansic_wshouldquote: make behavior consistent in the event of an
-         invalid multibyte sequence: return 1 to the caller so the string
-         will be $'...' quoted
-
-builtins/cd.def
-       - cd_builtin: print the right error message even if printable_filename
-         changes errno (e.g., EILSEQ)
-
-lib/sh/shquote.c
-       - sh_backslash_quote: in multibyte locales, even if is_basic does not
-         return true, backslash-quote an ASCII character that backslash_table
-         says should be quoted.  Part of fix for bug reported by Igor
-         Bogomazov <ygrex@ygrex.ru>
-
-bashline.c
-       - directory_exists: new function, dequotes the string argument, removes
-         any trailing slash, and returns true if the result is a valid
-         existing filename
-       - bash_filename_stat_hook,bash_directory_completion_hook: use
-         directory_exists instead of calling lstat/stat on the quoted
-         directory name.  Rest of fix for bug reported by Igor Bogomazov
-         <ygrex@ygrex.ru>
-
-                                  5/15
-                                  ----
-aclocal.m4
-       - BASH_CHECK_MULTIBYTE: when checking for locale_charset, add $LIBINTL
-         to $LIBS.  If we're using the included lib/intl/libintl.a, it will
-         include a version of locale_charset
-
-                                  5/17
-                                  ----
-lib/readline/bind.c
-       - sv_isrchterm: make sure we check for v[end] == 0 while in the loop
-         looking for whitespace.  Bug report and fix from Sergio Durigan
-         Junior <sergiodj@sergiodj.net>
-
-lib/sh/shmbchar.c
-       - mbstrlen,mbsmbchar: move calculation of MB_CUR_MAX out of loop;
-         calculate it once at beginning
-
-lib/sh/mbscmp.c
-       - mbscmp: move calculation of MB_CUR_MAX out of loop; calculate it once
-         at beginning
-
-lib/sh/mbscasecmp.c
-       - mbscasecmp: move calculation of MB_CUR_MAX out of loop; calculate it
-         once at beginning
-
-lib/sh/shquote.c
-       - sh_backslash_quote: move calculation of MB_CUR_MAX out of loop;
-         calculate it once at beginning
-
-lib/sh/casemod.c
-       - sh_modcase: move calculation of MB_CUR_MAX out of loop; calculate it
-         once at beginning
-
-subst.c
-       - expand_word_internal: move calculation of MB_CUR_MAX out of loops;
-         calculate it once at beginning of function (XXX should use
-         locale_mb_cur_max)
-
-                                  5/22
-                                  ----
-lib/readline/rlmbutil.h
-       - _rl_wcwidth: new function, short-circuits wcwidth calls for ASCII
-         printable characters, returns 1 for those
-       - WCWIDTH: call _rl_wcwidth instead of wcwidth
-
-lib/readline/display.c
-       - rl_redisplay: move calculation of MB_CUR_MAX out of loop; calculate
-         it once at beginning.  Report and patch from Ole Laursen
-         <ole.laursen@gmail.com>
-
-                                  5/24
-                                  ----
-lib/readline/text.c
-       - rl_insert: change to attempt to batch-insert pending typeahead (not
-         pushed input or input from a macro) that maps to rl_insert.  An
-         attempt to suppress redisplay until readline reads all typeahead --
-         pasted input, for instance.  Inspired by report from Ole Laursen
-         <ole.laursen@gmail.com>.  XXX - need to make this a bindable
-         variable; already controlled by _rl_optimize_typeahead
-
-lib/readline/rlprivate.h
-       - _rl_optimize_typeahead: extern declaration
-
-lib/readline/doc/{hstech.texi,history.3}
-       - next_history: clarify under what circumstances the history offset is
-         incremented; suggestion from Glenn Golden <gdg@zplane.com>
-
-print_cmd.c
-       - print_arith_command: should be compiled in if either DPAREN_ARITHMETIC
-         or ARITH_FOR_COMMAND is defined.  Report from Flavio Medeiros
-         <flaviomotamederios@gmail.com>
-
-flags.c
-       - change_flag: new variable verbose_flag, set when `v' flag modified;
-         sets value of echo_input_at_read correspondingly
-
-flags.h
-       - verbose_flag: new extern declaration
-
-shell.c
-       - long_options: --verbose now sets verbose_flag
-       - main: set echo_input_at_read from verbose_flag after parsing any
-         long options
-
-builtins/fc.def
-       - fc_builtin: don't unwind-protect echo_input_at_read directly; set it
-         to 1 before calling fc_execute_file as before, and reset it to value
-         of global verbose_flag using set_verbose_flag called from an
-         unwind_protect.  Report from isabella parakiss <izaberina@gmail.com>
-
-builtins/shopt.def
-       - shopt_set_debug_mode: new function, called when the extdebug shell
-         option changes.  Right now, it sets function_trace_mode when extdebug
-         is enabled, and turns off when extdebug is disabled.  The
-         documentation has always said that shopt does this.  Report from
-         Peng Yu <pengyu.ut@gmail.com>
-
-                                  5/27
-                                  ----
-findcmd.[ch]
-       - add support for EXECIGNORE shell variable, list of extglob patterns
-         that prevent matching filenames from being identified as executable
-         files
-
-variables.c
-       - EXECIGNORE: arrange for findcmd.c:setup_exec_ignore to be called when
-         $EXECIGNORE changes
-
-variables.h
-       - sv_execignore: extern declaration
-
-doc/{bash.1,bashref.texi}
-       - document EXECIGNORE variable
-
-                                  5/28
-                                  ----
-lib/readline/callback.c
-       - rl_callback_sigcleanup: new function, cleans up and unsets any state
-         rl_callback_read_char uses.  Intended to be used after a signal
-
-lib/readline/signals.c
-       - _rl_handle_signal: call rl_callback_sigcleanup on SIGINT.  Fixes bug
-         reported to python group by Martin Panter <vadmium+floss@gmail.com>
-
-lib/readline/isearch.c
-       - _rl_isearch_cleanup: now a public function so rl_callback_cleanup can
-         call it
-
-lib/readline/search.c
-       - _rl_nsearch_cleanup: now a public function so rl_callback_cleanup can
-         call it
-
-lib/readline/rlprivate.h
-       - _rl_[in]search_cleanup: extern declarations
-
-lib/readline/readline.h
-       - rl_callback_sigcleanup: new extern declaration
-
-lib/readline/doc/rltech.texi
-       - rl_callback_sigcleanup: documented
-
-lib/readline/readline.h
-       - bump readline version to 7.0 due to addition of rl_callback_sigcleanup
-
-                                  5/29
-                                  ----
-builtins/declare.def
-       - declare_internal: if we are trying to change attributes or value for
-         a nameref variable whose value points to an unset variable, make
-         sure we create a new variable whose name is the value of the nameref
-         variable. That is,
-
-               declare -n foo=bar
-               unset foo       # unsets bar
-               declare -i foo
-
-         should create a (invisible) variable named `bar' with the integer
-         attribute.  Fixes problem reported by Greg Wooledge
-         <wooledg@eeg.ccf.org>
-
-builtins/set.def
-       - unset_builtin: if we find a nameref variable when we look it up with
-         find_variable (the returned variable has a name different from what
-         we looked up), make sure we use that new name for the rest of the
-         function rather than rely on unbind_variable to do the same thing as
-         find_variable.  Fixes problem reported by Greg Wooledge
-         <wooledg@eeg.ccf.org>
-       - unset_builtin: if we try to unset a nameref variable whose value is
-         not a set variable, make sure we don't try to unset the nameref
-         itself, but rather the variable it points to.  This ensures that the
-         following always works as it should
-
-               declare -n foo=bar
-               unset foo       # unsets bar and leaves foo unchanged
-
-lib/readline/funmap.c
-       - vi-insertion-mode: make sure it maps to rl_vi_insert_mode, which is
-         actually what the `i' keybinding in vi_movement_keymap maps to.
-         Cosmetic fix from isabella parakiss <izaberina@gmail.com>
-
-                                   6/2
-                                   ---
-general.c
-       - conf_standard_path: moved get_standard_path here from command.def; made
-         public function
-
-general.h
-       - conf_standard_path: extern declaration
-
-
-                                   6/3
-                                   ---
-parse.y
-       - parse_matched_pair: make sure that command substitution constructs
-         within ${...} expansions are parsed as such using parse_comsub, so
-         the P_FIRSTCLOSE flag doesn't stop parsing if a right brace appears
-         within the comsub.  Report from Christos Zoulas <christos@zoulas.com>
-
-findcmd.c
-       - search_for_command: take two new flags for FLAGS arg: CMDSRCH_STDPATH,
-         which means use the command -p path, and CMDSRCH_TEMPENV, currently
-         unused.  Existing flag value of 1 now CMDSRCH_HASH
-       - search_for_command: don't set `path' to NULL if it wasn't found in
-         the temporary environment; we can use it later
-       - search_for_command: look for the hashed file if temp_path == 0, not
-         if we set path back to 0 (or path lookup failed)
-       - search_for_command: just call find_user_command_in_path with a
-         pathlist argument that's set depending on the flags passed
-       - find_in_path: new function, just calls find_user_command_in_path at 
-         this point
-       - search_for_command: don't put non-existent files into the hash table
-
-findcmd.h
-       - CMDSRCH_*: new flags for search_for_command
-       - find_in_path: extern declaration
-
-execute_cmd.c
-       - execute_disk_command: check for CMD_STDPATH and call search_for_command
-         with CMDSRCH_STDPATH if it's set
-
-builtins/command.def
-       - command_builtin: if -p given without -v or -V, set the CMD_STDPATH
-         flag in the simple command we construct from the rest of the
-         argument list.  This fixes the command -p cmd issue with changing
-         $PATH for the duration  of `cmd's execution reported by
-         <sdowdy@rap.ucar.edu>
-
-builtins/common.h
-       - CDESC_STDPATH: new flag for describe_command; means to use standard
-         path for command -pv or -pV
-
-builtins/command.def
-       - command_builtin: if -p given with -v or -V, pass the CDESC_STDPATH
-         flag to describe_command
-
-builtins/type.def
-       - describe_command: if given the CDESC_STDPATH flag, use find_in_path
-         with the conf_standard_path() result. Since `all' will never be on
-         with this flag, at least not yet, we can allocate and free the path
-         list.  Fixes the bug of a temporary environment value for PATH
-         preceding a `command -pv' or `command -pV' persisting when the
-         command finishes and means we use fewer unwind-protects
-
-                                   6/4
-                                   ---
-Makefile.in (plus other Makefile.ins)
-       - VPATH: remove `.' from VPATH value.  It's not needed any more and it
-         trips a GNU make 4.1 bug on Cygwin.  Report and fix from Eric Blake
-         <eblake@redhat.com>
-
-lib/readline/histfile.c
-       - history_tempfile: new function, takes history file name as template
-         and creates a temp file name including the PID
-       - history_truncate_file, history_do_write: instead of creating backup
-         and restoring it on failure, use history_tempfile to create a temp
-         file name, write to it, then rename to original history filename
-         (handling symlinks using history_restore()).  Original report and
-         patch from Russell Stuart <russell-savannah@stuart.id.au>
-
-doc/{bash.1,bashref.texi}
-       - ulimit: clarify that -c and -f are in increments of 512 bytes when
-         in posix mode.  Fix from Robin Johnson <robbat2@gentoo.org> via
-         <vapier@gentoo.org>
-
-                                   6/9
-                                   ---
-execute_cmd.c
-       - execute_in_subshell: don't call restore_default_signal for the exit
-         trap, reset_signal_handlers already does the right thing and keeps
-         the trap string around; no need to kill trap string.  Bug report
-         from Miroslav Koskar <mk@mkoskar.com>
-
-                                  6/11
-                                  ----
-nojobs.c
-       - find_proc_slot: now takes pid as an argument to avoid finding old
-         procs when pids wrap around
-       - add_pid: pass pid to find_proc_slot to avoid multiple instances of
-         the same pid in the list when pids wrap around.  Fixes bug reported
-         by Roy Keene <rkeene@rkeene.org>
-
-execute_cmd.c
-       - REAP: test for job_control == 0 also to determine whether or not
-         to call reap_dead_jobs, since shells without job control enabled
-         don't report on background process status
-
-doc/bash.1,lib/readline/doc/hsuser.texi
-       - history: clarify documentation of -a option to note that it will not
-         append the same line to the history file more than once.  Fixes
-         problem reported by Reuben Thomas <rrt@sc3d.org>
-
-                                  6/12
-                                  ----
-execute_cmd.c
-       - execute_in_subshell: don't bother decrementing subshell_level before
-         this returns; the caller will just exit.  This means that
-         $BASH_SUBSHELL will have consistent values in the subshell and any
-         subsequent exit trap.  Fixes bug reported by Miroslav Koskar
-         <mk@mkoskar.com>
-       - shell_execve: before longjmp to subshell_top_level, call reset_parser
-         to free up any input line and stack of pushed strings
-
-parse.y
-       - mk_alexpansion: if the last character of the alias is a shell
-         metacharacter, don't add a space to the string following the alias
-         value, since that will change the meaning of the command.  THIS IS
-         NOT BACKWARDS COMPATIBLE AND MAY REQUIRE REVERTING. Inspired by an
-         email message from Jilles Tjoelker <jilles@stack.nl> to austin
-         group
-
-                                  6/13
-                                  ----
-subst.c
-       - dequote_string: don't turn strings consisting of a single CTLESC
-         into empty strings; return them unmodified.  The idea is that there
-         is nothing to quote.  This means that something like
-               c=$'\001'
-               x=$c
-         results in x containing '\001' when IFS=$'\001'.  See if this will
-         cause problems by adding a debugging statement in the code
-
-                                  6/15
-                                  ----
-parse.y
-       - CHECK_FOR_RESERVED_WORD: don't return ESAC when you read `esac'
-         after a `|' while in a case pattern list (parser_state & PST_CASEPAT).
-         This is Posix grammar rule 4
-         (http://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap02.html#tag_18_10_02)
-
-                                  6/16
-                                  ----
-jobs.c
-       - wait_for: make sure we queue SIGCHLD signals if a SIGCHLD trap
-         handler is running (signal_in_progress or IMPOSSIBLE_TRAP_HANDLER),
-         since we allow recursive trap invocations now
-       - wait_for: make sure we treat SIGCHLD as trapped if the trap handler
-         is set to IMPOSSIBLE_TRAP_HANDLER so we don't miss signals during
-         calls to run_sigchld_trap()
-
-trap.c
-       - run_pending_traps: since we allow recursive trap handler invocations,
-         make sure we set pending_traps[SIGCHLD] to 0 while we mark the
-         signal handler in progress (SIG_INPROGRESS) and don't reset it to 0
-         after run_sigchld_trap returns in case more SIGCHLDs have been
-         queued while it's running
-
-                                  6/22
-                                  ----
-lib/readline/readline.c
-       - _rl_dispatch_subseq: if we shadowed any function, not just self-
-         insert, bind that function to the key we shadowed and dispatch on it.
-         This preserves and dispatches off the original key, not ANYOTHERKEY,
-         and makes sure we are dispatching from a keymap with the right key
-         binding.  Fixes bug reported by Carlos Pita
-         <carlosjosepita@gmail.com>
-
-                                  6/23
-                                  ----
-bashline.c
-       - attempt_shell_completion: don't read past the end of rl_line_buffer
-         while skipping assignment statements before command names.  Fix for
-         bug reported by Hanno Böck <hanno@hboeck.de>
-
-lib/readline/parens.c
-       - _rl_enable_paren_matching: make paren matching work in vi insert
-         mode. Really, this time.  Bug report from Carlos Pita
-         <carlosjosepita@gmail.com>
-
-                                  6/29
-                                  ----
-parse.y
-       - parse_comsub: when starting to parse a word, make sure that we set
-         lex_rwlen to 0 along with lex_wlen if we are in a position where we
-         can read a reserved word.  Fixes bug reported by  Nathan Neulinger
-         <nneul@neulinger.org>
-
-                                  6/30
-                                  ----
-sig.h
-       - include <signal.h> unconditionally and rely on guards in sig.h to
-         keep from including it more than once.  Irix 6.5 defines SIG_DFL
-         in other files and defeats the test of SIG_DFL.  Fixes bug
-         reported by Klaus Ziegler <klausz@haus-gisela.de>
-
-alias.c
-       - ALIAS_HASH_BUCKETS: table size increased to 64
-
-                                   7/7
-                                   ---
-
-{jobs,nojobs}.c
-       - wait_sigint_cleanup: new function, to be called by longjmp targets
-         for wait_intr_buf. Performs any necessary cleanup of internal waitchld
-         state before going back to top level
-
-jobs.h
-       - wait_sigint_cleanup: new extern declaration
-
-builtins/wait.def
-       - wait_builtin: call wait_sigint_cleanup after longjmp back to
-         wait_intr_buf on interrupt
-
-[bash-4.4-alpha frozen]
-
-                                   7/7
-                                   ---
-bashline.c
-       - attempt_shell_completion: when skipping assignment statements, don't
-         skip past rl_point to find the word on which to perform programmable
-         completion.  Fixes bug reported by Hanno Böck <hanno@hboeck.de>
-
-                                  7/10
-                                  ----
-
-pcomplib.c
-       - compspec_copy: set the refcount on the copy to 1, since it's a freshly
-         allocated copy and there are no other pointers to it.  Fixes memory
-         leak from gen_progcomp_completions
-
-lib/readline/complete.c
-       - printable_part: if the pathname passed is just `/', just return it
-         instead of potentially reading before the `/'.  Fixes bug reported
-         by Hanno Böck <hanno@hboeck.de>
-
-                                  7/11
-                                  ----
-support/man2html.c
-       - change calls to malloc to use xmalloc; provide standard xmalloc
-         definition.  Report from Bill Parker <wp02855@gmail.com>
-
-builtins/wait.def
-       - wait_intr_flag: set to denote validity of wait_intr_buf as target
-         for longjmp; reset by WAIT_RETURN macro; should always be 0 when
-         wait_builtin returns
-
-quit.h
-       - CHECK_WAIT_INTR: now also checks wait_intr_flag to ensure valid state
-         of wait_intr_buf before sh_longjmp
-
-{jobs,nojobs}.c
-       - wait_intr_flag: extern declaration for use by CHECK_WAIT_INTR
-
-sig.c
-       - wait_intr_flag: set back to 0 every place the shell resets state after
-         a jump to top_level
-       - sigint_sighandler: only set wait_signal_received if wait_intr_flag
-         indicates that the wait builtin has correctly set wait_intr_buf.
-         Final fix for bug reported by Ondrej Oprala <ooprala@redhat.com>
-
-subst.c
-       - parameter_brace_expand: fix so that ${!vvv@} is not interpreted as
-         introducing a `@' operator, but instead retains its meaning as all
-         variables whose name begins with vvv.  Fixes bug reported by
-         konsolebox <konsolebox@gmail.com>
-
-                                  7/14
-                                  ----
-execute_cmd.c
-       - execute_connection: remove the fork optimization from and AND_AND
-         and OR_OR cases; it has trouble with `a && b && c', since the `&&'
-         is left-associative.  Putting that code here can result in unwanted
-         fork optimizations since the `b' will end up as `second' on a
-         recursive call to execute_command.  Bug reported by Mike Frysinger
-         <vapier@gentoo.org>
-
-builtins/evalstring.c
-       - optimize_fork: moved code from execute_connection to here; checks
-         whether the RHS of a && or || passes the suppress_fork() tests and
-         turns on the NO_FORK bit if so
-       - parse_and_execute: if suppress_fork() tests fail, check whether the
-         command to be executed is a connection and attempt to optimize the
-         fork for the right side using optimize_fork().  The key is dealing
-         with the entire command passed to `bash -c' or `eval'
-
-builtins/common.h
-       - optimize_fork: new extern declaration
-
-execute_cmd.c
-       - execute_command_internal: enable code put in to undo redirections
-         before exiting the shell due to `set -e' in the case of a shell
-         function that gets command-not-found or a syntax error.  Reported
-         back in May, 2014 by Mark Ferrell <major@homeonderanged.org>
-
-bashhist.c
-       - bash_history_inhibit_expansion: enable change from 1/10 that skips
-         over history expansion character in command and process
-         substitution
-
-                                  7/15
-                                  ----
-lib/readline/{history,undo}.c
-       - replace_history_data now _hs_replace_history_data
-
-                                  7/16
-                                  ----
-lib/readline/readline.c
-       - make sure _rl_to_lower doesn't ever get characters that are outside
-         of its valid range by casting arg to unsigned char
-
-lib/readline/colors.h
-       - change completion prefix color (C_PREFIX) to be the same as C_SOCK,
-         which is less likely to collide with file type colorings (magenta)
-
-lib/readline/complete.c
-       - fnprint: now takes an additional argument: the full, expanded pathname
-         corresponding to the `toprint' argument
-       - fnprint: don't zero out prefix_bytes if we're not printing the
-         ellipisis but we still want to use prefix_bytes for displaying
-         the common prefix in a color
-       - print_filename: move colored-stats display responsibility into fnprint
-       - fnprint: change so colored-prefix and colored-stats can cooperate
-         and display filenames with multiple colors: one for the prefix and
-         one for the file type.  The prefix is displayed in the prefix color
-         and the remainder of the pathname, if any, is displayed in the color
-         corresponding to the file type.  Report and suggestion from Mike
-         Frysinger <vapier@gentoo.org>
-
-                                  7/17
-                                  ----
-lib/readline/readline.[ch]
-       - rl_readline_state: now unsigned long, prepare for more than 32 states
-
-
-                                  7/18
-                                  ----
-lib/readline/history.h
-       - history_offset: now declared here, was always a global variable
-       - copy_history_entry: now declared here, part of the public interface
-       - alloc_history_entry: now declared here, part of the public interface
-
-                                  7/20
-                                  ----
-lib/readline/readline.h
-       - RL_STATE_CHARSEARCH: new state, for vi mode character search.  Was
-         previously handled by simply setting _rl_callback_func
-
-lib/readline/vi_mode.c
-       - rl_domove_motion_callback: split into two functions, remaining code
-         after _rl_dispatch call goes into new function
-         _rl_vi_domove_motion_cleanup
-       - rl_vi_char_search: set RL_STATE_CHARSEARCH
-       - rl_vi_char_search: sets `i2' member of callback data to the key used
-         to invoke the char search
-       - _rl_vi_callback_char_search: unset RL_STATE_CHARSEARCH after reading
-         the character to find
-       - _rl_vi_domove_motion_cleanup: make sure RL_STATE_VIMOTION is unset in
-         all cases where this function returns
-       - _rl_vi_domove_motion_cleanup: use `end' member of vi motion context
-         as value of rl_end to restore after adding blank at end of line in
-         rl_domove_motion_callback; avoids need to keep `old_end' and somehow
-         pass it between the two functions
-
-lib/readline/rlprivate.h
-       - _rl_vi_domove_motion_cleanup: new extern declaration
-
-lib/readline/callback.c
-       - rl_callback_read_char: handle RL_STATE_CHARSEARCH, including case
-         where char search is vi motion command for d/c/y/m and RL_STATE_VIMOTION
-         is set when this is called.  Last of set of fixes for bug reported
-         by Carlos Pita <carlosjosepita@gmail.com> with vi-mode `dty' command
-         in callback mode
-
-                                  7/21
-                                  ----
-subst.c
-       - command_substitute, process_substitute: add QUIT call in the child
-         after restoring original signal handlers to catch post-fork SIGINT
-         or terminating signal
-
-jobs.c,nojobs.c
-       - make_child: after forking, clear interrupt_state in child
-         before restoring signal mask so children get their own set of
-         interrupts
-
-                                  7/22
-                                  ----
-lib/sh/shquote.c
-       - sh_double_quote: since all uses of the return value from this function
-         are for display and not subject to subsequent expansion, we don't
-         need to protect CTLESC and CTLNUL with CTLESC.  Bug report and fix
-         from isabella parakiss <izaberina@gmail.com>
-
-parse.y
-       - decode_prompt_string: need to protect literal instances of CTLESC
-         and CTLNUL with CTLESC, even if they are not coming out of one of
-         the backslash-expansions
-
-subst.c
-       - make_internal_declare: fixed memory leak; make_internal_declare should
-         free the memory it allocates to construct the word list.  From Red
-         Hat bug 1245233; https://bugzilla.redhat.com/show_bug.cgi?id=1245233
-
-lib/readline/readline.c
-       - _rl_dispatch_subseq: when checking whether an ESC in vi insert mode
-         should be treated as part of a key sequence or as a single char,
-         make sure we are getting input from the keyboard before we check
-         _rl_input_queued().  If we are getting input from a macro, this
-         causes a needless delay.  Report from Carlos Pita
-         <carlosjosepita@gmail.com>
-
-                                  7/23
-                                  ----
-input.c
-       - save_bash_input: before checking to see whether or not a new fd has a
-         stale associated buffer, make sure that the new fd is within bounds.
-         Bug report and fix from Alexey Makhalov <makhaloff@gmail.com>
-
-
-                                  7/24
-                                  ----
-doc/{bash.1,bashref.texi}
-       - note that the `return' builtin accepts arguments beginning with `-'
-         without requiring `--'
-
-                                  7/27
-                                  ----
-examples/loadables/Makefile.in
-       - add variables and targets to support `make install'; installs
-         supported builtins in $(libdir)/bash
-
-                                  7/28
-                                  ----
-lib/readline/{readline,rlprivate}.h, lib/readline/display.c
-       - rearrange some structure members for better alignment and to reduce
-         padding.  Fix from <git-dpa@aegee.org>
-
-tests/run-*
-       - use BASH_TSTOUT instead of hardcoded /tmp/xx as output file
-
-trap.[ch]
-       - maybe_set_error_trap: set a trap for the ERR trap if it is not already
-         trapped; similar to maybe_set_debug_trap back from 4/10
-
-lib/malloc/malloc.c
-       - internal_free: make sure `ubytes' is initialized if MALLOC_WATCH is
-         defined and we'll be passing it to _malloc_ckwatch.  Report from
-         Flavio Medeiros <flaviomotamederios@gmail.com>
-
-execute_cmd.c
-       - execute_function: use maybe_set_error_trap in the same way as
-         maybe_set_debug_trap.  Fixes bug reported by David Waddell
-         <David.Waddell@owmobility.com>
-
-                                  7/29
-                                  ----
-jobs.c
-       - wait_for: no longer need to call job_signal_status when checking
-         whether a comsub shell reaped a child that died due to SIGINT; code
-         now uses child_caught_sigint
-
-                                  7/30
-                                  ----
-builtins/exec.def
-       - exec_builtin: after call to restore_original_signals, need to call
-         default_tty_job_signals to undo changes done by initialize_job_signals.
-         Fix for problem reported by Andreas Schwab <schwab@suse.de>
-
-doc/{bash.1,bashref.texi}
-       - clarify definition of metacharacter to explicitly include newline;
-         prompted by report from George Gallo <georgeggallo@gmail.com>
-
-                                   8/3
-                                   ---
-lib/readline/search.c
-       - _rl_free_history_entry: should be void, not int.  Report from
-         Dilyan Palauzov <dilyan.palauzov@aegee.org>
-
-general.h
-       - sh_load_func_t, sh_unload_func_t: new function pointer types, used by
-         enable for load and unload hook functions
-
-builtins/enable.def
-       - dyn_load_builtin: attempt to execute a function named
-         BUILTIN_builtin_load, where BUILTIN is the name of the command being
-         loaded.  If that function returns 0, the load fails
-       - dyn_unload_builtin: attempt to execute a function named
-         BUILTIN_builtin_unload, where BUILTIN is the name of the command
-         being unloaded.  It offers a dynamic builtin a way to clean up after
-         itself.  Inspired by suggestion from Piotr Grzybowski
-         <narsil.pl@gmail.com> in response to a bug report from isabella
-         parakiss <izaberina@gmail.com>
-
-                                   8/6
-                                   ---
-lib/readline/colors.[ch]
-       - _rl_print_color_indicator: now takes `const char *' argument
-
-lib/readline/complete.c
-       - colored_stat_start: now takes `const char *' argument
-
-lib/malloc/table.h
-       - ma_table_t: `file' member is now `const char *'
-
-lib/malloc/table.c
-       - mlocation_register_alloc: make sure variable assigned to `file' in
-         ma_table_t is of type `const char *'.  Fixes from Dilyan Palauzov
-         <dilyan.palauzov@aegee.org>
-
-lib/termcap/termcap.[ch]
-       - tputs: should return int instead of void
-
-lib/readline/readline.h
-       - RL_STATE_DONE: correct value, avoid collision
-
-lib/readline/vi_mode.c
-       - _rl_vi_redoing: now global, added _rl_ prefix to `vi_redoing'
-
-lib/readline/readline.c
-       - _rl_subseq_result: call _rl_dispatch_subseq instead of rl_dispatch to
-         avoid changing _rl_dispatching_keymap
-       - _rl_subseq_result: in the -2 case, set _rl_dispatching_keymap to the
-         map passed as an argument.  Without this, vi mode doesn't call
-         rl_vi_set_last when it should
-       - _rl_dispatch_subseq: if redoing a vi mode command with `.'
-         (_rl_vi_redoing != 0) in callback mode and we're indirecting into
-         another keymap that has shadowed the key corresponding to the command
-         we are redoing, just call _rl_subseq_result immediately: vi redo
-         doesn't need to read any additional input, and rl_vi_redo assumes
-         that a single call to rl_dispatch is sufficient.  Fixes bug reported
-         by Carlos Pita <carlosjosepita@gmail.com>
-
-                                   8/7
-                                   ---
-subst.c
-       - parameter_brace_expand: if a substitution (parameter expansion) error
-         occurs, and shell_compatibility_level is <= 43, return expansion error
-         as in all previous versions.  If shell_compatibility_level is > 43,
-         a posix-mode non-interactive shell will consider this a fatal error.
-         Problem reported by Christian Neukirchen <chneukirchen@gmail.com>
-
-doc/bashref.texi
-       - documented that word expansion errors cause fatal errors in posix mode
-         non-interactive shells
-
-                                   8/8
-                                   ---
-subst.h
-       - SD_COMPLETE: skip_to_delim being called as part of word completion
-       - SX_COMPLETE: one of the string_extract functions being called as
-         part of word completion
-
-bashline.c
-       - find_cmd_start,find_cmd_end,find_cmd_name: call skip_to_delim with
-         SD_COMPLETE flag
-
-subst.c
-       - skip_double_quoted: takes new flags argument; changed callers
-       - skip_double_quoted: if flags argument includes SX_COMPLETE, pass it
-         to extract_command_subst
-       - extract_command_subst: if flags&SX_COMPLETE, call
-         extract_delimited_string instead of xparse_dolparen, since completion
-         may call this for unterminated command substitutions.  Fixes
-         (imperfectly) bug reported by Ingo Ruhnke <grumbel@gmail.com>
-       - skip_to_delim: if passed the SD_COMPLETE flag, pass the SX_COMPLETE
-         flag to skip_double_quoted 
-       - char_is_quoted: pass SX_COMPLETE flag to skip_double_quoted
-       - unclosed_pair: pass SX_COMPLETE flag to skip_double_quoted
-
-                                   8/9
-                                   ---
-execute_cmd.c
-       - time_command: catch longjmps to top_level and print command timing
-         statistics even after a jump to top_level.  Fixes issue reported by
-         Sam Watkins <sam@nipl.net>
-
-                                  8/10
-                                  ----
-config-top.h
-       - OPENLOG_OPTS: if SYSLOG_HISTORY is defined, define to LOG_PID, so
-         each message is tagged with the pid
-
-bashhist.h
-       - bash_syslog_history: the first time it's called, call openlog with
-         OPENLOG_OPTS and SYSLOG_FACILITY
-
-                                  8/11
-                                  ----
-doc/{bash.1,bashref.texi}
-       - GROUPS,FUNCNAME: change description to note that assignments are
-         silently ignored, but do not return an error (which would constitute
-         an assignment error and cause posix mode shells to abort).  Problem
-         pointed out by Grzegorz Bajson <gbajson@gmail.com>
-
-                                  8/12
-                                  ----
-subst.c
-       - parameter_brace_expand_indir: if the value of the indirectly expanded
-         variable isn't something that the shell would expand if it were inside
-         ${}, error out right away before calling parameter_brace_expand_word.
-         Fixes problem reported by isabella parakiss <izaberina@gmail.com>
-       - parameter_brace_expand: handle returning &expand_wdesc_error or
-         &expand_wdesc_fatal from parameter_brace_expand_indir in case it does
-         that someday
-
-                                  8/13
-                                  ----
-jobs.c
-       - {save,restore}_pipeline: saved_pipeline now a linked list of pipelines,
-         new ones allocated in save_pipeline and freed in restore_pipeline.
-         This allow multiple nested calls to save_pipeline (e.g., in traps
-         and then in process substitution).  Fix for bug reported by isabella
-         parakiss <izaberina@gmail.com>
-
-print_cmd.c
-       - named_function_string: if printing a function with the same name as a
-         reserved word, add the `function ' keyword before the name to avoid
-         parsing problems when trying to reuse it as input.  Fix for bug
-         reported by isabella parakiss <izaberina@gmail.com>
-
-                                  8/14
-                                  ----
-lib/readline/text.c
-       - rl_insert: when optimizing typeahead, make sure we set rl_last_func
-         ourselves if we set pending input, since the mainline code path
-         won't set rl_last_func if input is pending.  Fixes bug reported by
-         Hiroo Hayashi <hiroo.hayashi@computer.org>
-
-                                  8/15
-                                  ----
-builtins/type.def
-       - describe_command: if using the short description (CDESC_SHORTDESC) in
-         posix mode, describe posix special builtins as such.  Requested by
-         Stephane Chazelas <stephane.chazelas@gmail.com>
-
-builtins/enable.def
-       - BASH_LOADABLES_PATH: a colon-separated list of directories where bash
-         looks for loadable builtins specified as arguments to `enable -f'
-
-doc/{bash.1,bashref.texi}
-       - BASH_LOADABLES_PATH: document new shell variable
-
-configure.ac,Makefile.in,builtins/Makefile.in
-       - loadablesdir: set in configure, substitute into Makefiles.  Reserved
-         for future use
-
-                                  8/18
-                                  ----
-subst.c
-       - shell_expand_word_list: if make_internal_declare fails, make sure to
-         propagate that error return back and make the assignment statement
-         fail. Fixes seg fault reported by Sergey Tselikh <stselikh@gmail.com>
-
-                                  8/20
-                                  ----
-builtins/declare.def
-       - declare_internal: made a slight tweak to the warning message about
-         quoted compound assignments by printing it only if the array (indexed
-         or assoc) does not already exist
-
-                                  8/21
-                                  ----
-braces.c
-       - mkseq: call strvec_dispose before throw_to_top_level if we saw SIGINT
-         to avoid a memory leak
-
-trap.c
-       - maybe_set_return_trap: set the RETURN trap to string if it's not
-         already trapped, in the same way as the debug and error traps
-
-execute_cmd.c
-       - execute_function: use maybe_set_return_trap to allow functions to set
-         return traps that persist across calls even if function tracing is
-         enabled
-
-lib/readline/input.c
-       - rl_gather_tyi: make sure errno reset to 0 after select call, for
-         ioctl and read
-       - rl_gather_tyi: if read returns -1/EIO, return -1
-       - rl_read_key: if rl_gather_tyi returns -1/EIO, return READERR if in
-         RL_STATE_READCMD (reading command in readline_internal_char), EOF
-         if not (like rl_getc). Continue to return '\n' on other errors;
-         rl_done = 1 in any case.  Fix for issue reported by
-         Lubomir Rintel <lkundrak@v3.sk>
-
-lib/readline/{misc,text,vi_mode}.c
-       - fix return values from rl_read_key to handle < 0
-
-                                  8/22
-                                  ----
-
-parse.y
-       - parsing_redirection: macro that expands to true if the last read
-         token (always passed as an argument) is a redirection token that
-         will leave us reading a word that's the target of the redirection
-       - command_token_position: make sure that even if the parser state
-         indicates we are reading a simple command (PST_REDIRLIST), we do
-         not perform alias expansion on a WORD that is part of a redirection,
-         using parsing_redirection() to do so.  Fixes but reported to Red Hat
-         by Robert Alm Nilsson <rorialni@gmail.com>
-         https://bugzilla.redhat.com/show_bug.cgi?id=795795
-
-builtins/declare.def
-       - declare_internal: only print the warning now if the variable is not
-         already an array or if we are not creating an array with -a or -A,
-         cuts down the spurious warnings
-       - declare_internal: even if the rhs of the assignment looks like a
-         compound array, if we're not assigning to an existing array or we're
-         not creating an array, make it an array subscript assignment.  This
-         means things like declare a[1]='(foo)' and a[1]='(foo)' behave
-         identically
-
-builtins/help.def
-       - wdispcolumn: change use of displen and add new dispchars variable to
-         deal with locales where each wide character does not take up one
-         column position.  Fix for bug reported by Mingye (Arthur) Wang
-         <arthur200126@hotmail.com>
-
-                                  8/23
-                                  ----
-sig.c
-       - sigint_sighandler: if we get a SIGINT while this_shell_builtin ==
-         wait_builtin, perform the special handling only if wait_intr_flag
-         is non-zero, don't just use it to set wait_sigint_received.  This
-         makes sure we run bashline_set_event_hook.  Fixes bug reported by
-         isabella parakiss <izaberina@gmail.com>
-
-                                  8/25
-                                  ----
-subst.h
-       - SD_HISTEXP: new flag for skip_to_delim, indicates we are looking for
-         the history expansion character (special double quote handling)
-       - skip_to_delim: handle SD_HISTEXP flag, changes double quote handling
-         to be similar to history library: don't call skip_double_quote, make
-         sure single quotes aren't special in double quotes, but continue to
-         skip over $(), ${}, and other similar constructs
-
-                                  8/27
-                                  ----
-support/bash.pc.in
-       - new file, pkgconfig template for bash, installed to support nascent
-         loadable builtins dev environment
-
-examples/loadables/Makefile.inc
-       - new file, example Makefile with correct definitions for loadable
-         builtin development
-
-configure.ac
-       - headersdir: directory where headers get installed to support loadable
-         builtin development
-       - examples/loadables/Makefile.inc, support/bash.pc: create 
-
-Makefile.in
-       - INSTALLED_HEADERS, INSTALLED_BUILTINS_HEADERS, INSTALLED_INCFILES,
-         CREATED_HEADERS: new variables holding names of include files to
-         install into $(headersdir) for loadable builtin development
-       - install-headers,install-headers-dirs: new targets to support
-         installing headers into $(headersdir) and subdirectories for loadable
-         builtin development
-       - uninstall-headers: target to uninistall headers in $(headersdir)
-       - uninstall: call uninstall-headers whether or not install-headers
-         was done; add uninstall in examples/loadables
-       - install: add install in examples/loadables
-       - clean: add clean in examples/loadables
-
-examples/loadables/Makefile.in
-       - install-supported, install-unsupported: new targets, make install
-         chooses one based on $(SHOBJ_STATUS)
-       - install-supported: now cds to the top level build directory and
-         installs the header files
-       - install-supported: now installs Makefile.inc to $(loadablesdir) as
-         an example
-       - uninstall-supported,uninistall-unsupported: uninstall targets,
-         make uninstall chooses one based on $(SHOBJ_STATUS)
-
-                                  8/31
-                                  ----
-lib/glob/Makefile.in
-       - CPPFLAGS: move after ${INCLUDES} so library-specific include paths
-         take precedence.  This is what the other parts of the shell do.
-         Report from Poor Yorick <org.gnu.lists.bug-bash@pooryorick.com>
-
-builtins/read.def
-       - reset_alarm: cancel alarm before restoring signal handler to avoid
-         possible race condition.  Report and fix from Oleg Popov
-         <dev-random@mail.ru>
-
-subst.c
-       - string_extract_verbatim: if SEPARATORS is "'", don't short-circuit
-         to string_extract_single_quoted unless the SX_NOCTLESC flag is set.
-         Callers expect this function to honor CTLESC, even to quote a single
-         quote.  Fixes bug reported by isabella parakiss <izaberina@gmail.com>
-         and several others
-
-                                   9/2
-                                   ---
-include/chartypes.h
-       - TOCTRL: handle '?' by special-casing it to 0x7f.  Fixes a problem
-         with $'\c?' reported by Helmut Karlowski <helmut.karlowski@ish.de>
-
-redir.c
-       - write_here_string: don't word-split the here string document.  The
-         bash documentation has always said this doesn't happen, even though
-         bash has done so for years, and other shells that implement here-
-         strings don't perform any word splitting.  The practical effect is
-         that sequences of IFS characters are collapsed to spaces.  Fixes
-         bug reported by Clint Hepner <clint.hepner@gmail.com>
-
-                                   9/3
-                                   ---
-doc/{bash.1,bashref.texi}
-       - add \? to the list of backslash escapes expanded by $'...' ANSI-C
-         quoting.  It was expanded but not documented
-
-lib/readline/util.c
-       - _rl_audit_tty: updated from Red Hat patch
-
-lib/readline/readline.c
-       - HAVE_DECL_AUDIT_USER_TTY: correct #define check
-
-                                  9/13
-                                  ----
-shell.c
-       - read_from_stdin: make sure value set to 1 appropriately if the shell
-         is reading from standard input, as Posix seems to specify (?)
-
-lib/readline/kill.c
-       - _rl_copy_to_kill_ring: don't assume that rl_kill_ring has been
-         allocated if _rl_last_command_was_kill is non-zero; make sure it's
-         non-null before indexing into it
-
-                                  9/15
-                                  ----
-variables.c
-       - initialize_shell_variables: cope with a NULL env pointer.  Fixes bug
-         reported by ziyunfei <446240525@qq.com>
-
-                                  9/16
-                                  ----
-builtins/exec.def
-       - exec_builtin: if -c is supplied, pass an empty array instead of a NULL
-         pointer to shell_execve
-
-variables.c
-       - set_pwd: only believe $PWD if it begins with a slash; try to
-         canonicalize it and set it to physical path if canonicalization fails.
-         Reported by ziyunfei <446240525@qq.com>
-
-                                  9/17
-                                  ----
-subst.c
-       - do_compound_assignment: make sure to dispose of word list generated
-         by expand_compound_array_assignment; fixes memory leak reported in
-         https://bugzilla.redhat.com/show_bug.cgi?id=1264101
-
-variables.c
-       - adjust_shell_level: clamp the value of shell_level at 1000 and reset
-         there, instead of > 1000, since the itos replacement code doesn't
-         handle the value 1000.  Fixes bug reported by ziyunfei
-         <446240525@qq.com>
-
-shell.h,parse.y
-       - save_parser_state,restore_parser_state: now save and restore
-         redir_stack, short-circuiting if need_here_doc == 0.  If we save a
-         non-zero value for need_here_doc, we have to make sure there is
-         something valid for gather_here_documents to work on.  Fixes bug
-         reported by Brian Carpenter <brian.carpenter@gmail.com>
-
-                                  9/18
-                                  ----
-array.c
-       - array_to_assign: use ansic_shouldquote to check whether each element
-         value contains non-printable characters and use ansic_quote to
-         generate the value instead of using sh_double_quote unconditionally
-
-assoc.c
-       - assoc_to_assign: if either the key or the value of an associative
-         array element contains non-printable characters (ansic_shouldquote
-         returns true), use ansic_quote to quote them instead of using double
-         quotes unconditionally
-
-                                  9/19
-                                  ----
-subst.c
-       - pat_subst: handle REP being NULL.  Fixes bug reported by Brian
-         Carpenter <brian.carpenter@gmail.com>
-
-builtins/evalstring.c
-       - parse_string: if we get a longjmp to top_level with DISCARD as the
-         code (in which case we are going to go on), return -DISCARD to our
-         caller (always xparse_dolparen) after doing our own cleanup instead
-         of calling jump_to_top_level
-
-parse.y
-       - xparse_dolparen: if parse_string returns < 0, do the appropriate
-         cleanup and then jump_to_top_level with the negative of the return
-         value.  This allows us to do the appropriate parser cleanup in
-         case we're not going to exit the shell.  Fixes bug reported by Brian
-         Carpenter <brian.carpenter@gmail.com>
-
-subst.c
-       - extract_delimited_string: if a recursive call to one of the extract_
-         functions or a call to ADVANCE_CHAR leaves i past the end of the
-         string, cut the loop off at the end of the string.  Fixes bug
-         reported by Brian Carpenter <brian.carpenter@gmail.com>
-
-                                  9/20
-                                  ----
-subst.c
-       - get_var_and_type: return appropriate values if variable indirection
-         results in a NULL variable.  Fixes bug reported by Brian Carpenter
-         <brian.carpenter@gmail.com>
-
-lib/readline/history.c
-       - history_get_time: handle strtol overflows caused by malicious
-         modifications to timestamps in the history file.  Fixes issue
-         reported by rens@endoria.net
-
-                                  9/21
-                                  ----
-lib/readline/rlconf.h
-       - ENABLE_AUDIT_TTY_SUPPORT: now undefined (off) by default
-
-                                  9/24
-                                  ----
-jobs.c
-       - waitchld: if we get a SIGINT while waiting for a child to exit, but
-         the kernel doesn't interrupt the waitpid(2) call, assume the child
-         caught SIGINT if it exited for some reason other than SIGINT.  Fix
-         suggested by Stephane Chazelas <stephane.chazelas@gmail.com>
-
-input.c
-       - make_buffered_stream: use B_TEXT in buffered stream flags instead
-         of (typo) O_TEXT.  Report and fix from Eric Blake <eblake@redhat.com>
-
-                                  9/27
-                                  ----
-execute_cmd.c
-       - shell_execve: call reset_parser before calling initialize_subshell,
-         which calls delete_all_aliases.  reset_parser wants to free the
-         pushed string list, which has pointers back into the alias table
-         (use after free)
-       - execute_simple_command: if we fork for an async command, make sure
-         the child process increments shell_level before performing any
-         word expansions, so $BASH_SUBSHELL is incremented.  Fixes issue
-         reported by ziyunfei <446240525@qq.com>
-
-                                  10/1
-                                  ----
-builtins/kill.def
-       - kill_builtin: make -L equivalent to -l for compatibility with other
-         (Linux) versions of kill
-
-doc/{bash.1,bashref.texi}
-       - kill: document new `-L' option
-
-                                  10/2
-                                  ----
-[bash-4.4-beta frozen]
-
-                                  10/5
-                                  ----
-doc/{bash.1,bashref.texi}
-       - LC_TIME: document that the shell recognizes it and calls setlocale
-         when it changes; and that the shell uses it for time formatting
-
-                                  10/6
-                                  ----
-subst.c
-       - skip_single_quoted: now takes an additional `flags' argument, like
-         skip_double_quoted; changed callers
-       - skip_single_quoted: now pays attention to SX_COMPLETE flag, allows
-         backslash to escape single quote, like $'...' allows
-       - skip_to_delim: added case where we are completing and we are
-         skipping over a $'...' string to call skip_single_quoted with
-         SX_COMPLETE flag to allow backslash to quote single quote.  Fixes
-         bug reported by Daniel Colascione <dancol@dancol.org>
-       - char_is_quoted: make analogous changes to handle $'...' so we can
-         accommodate $'ab \' cd'
-
-                                  10/11
-                                  -----
-subst.c,bashjmp.h
-       - no_longjmp_on_fatal_error: now global so other parts of the shell can
-         use it
-
-arrayfunc.c
-       - expand_array_index: if no_longjmp_on_fatal_error is non-zero, don't
-         longjmp to top_level, just return 0.  Fixes bug reported by
-         isabella parakiss <izaberina@gmail.com>
-
-subst.c
-       - CQ_RETURN: restore old value of no_longjmp_on_fatal_error (oldjmp);
-         make sure all callers (skip_matched_pair, skip_to_delim,
-         char_is_quoted) save no_longjmp_on_fatal_error to oldjmp before
-         setting it to 1
-
-expr.c
-       - expr_streval: if longjmping after an unbound variable error, jump
-         back to expr toplevel (evalbuf) if no_longjmp_on_fatal_error is set
-         in an interactive shell
-
-variables.c
-       - push_func_var: if pushing an array variable, such as when a variable
-         in the temporary environment is promoted to an array by mapfile when
-         the shell is in posix mode (so variable assignments preceding special
-         builtins or shell functions persist in the shell environment after
-         the builtin returns), make sure to copy the array or hash table so
-         the variable is duplicated correctly.  Fixes seg fault reported by
-         Linda Walsh <bash@tlinx.org>
-
-                                  10/13
-                                  -----
-variables.c
-       - initialize_shell_variables: add call to sv_shcompat, so BASH_COMPAT
-         can be set in the initial environment
-
-execute_cmd.c
-       - execute_function: set loop_level to 0 only if shell_compatibility_level
-         is greater than bash-4.3; this was kind of an incompatible change.
-         Report from Carlos Pita <carolosjosepita@gmail.com>
-
-COMPAT,doc/{bash.1,bashref.texi}
-       - compat43: added loop_level changes to description
-
-                                  10/15
-                                  -----
-lib/sh/casemod.c,lib/readline/display.c
-       - make sure mb_cur_max variable is defined outside of HANDLE_MULTIBYTE
-         if it's used outside HANDLE_MULTIBYTE.  Fixes from Greg Wooledge
-         <wooledg@eeg.ccf.org>
-
-support/Makefile.in
-       - bash.pc: remove as part of distclean, not clean.  Report from Andreas
-         Schwab <schwab@linux-m68k.org>
-
-                                  10/17
-                                  -----
-subst.c
-       - array_var_assignment: make sure to call quote_string or quote_escapes
-         on the assignment string, so spaces in the assignment survive word
-         splitting.  Fixes bug reported by isabella parakiss
-         <izaberina@gmail.com>
-
-                                  10/20
-                                  -----
-doc/{bash.1,bashref.texi}
-       - word splitting: make sure that newline is listed as one of the IFS
-         whitespace characters.  Fixes omission reported by ziyunfei
-         <446240525@qq.com>
-
-lib/readline/histfile.c
-       - history_do_write: make sure that we only create and use the tempfile
-         if the history file exists and is a regular file.  Reported several
-         times, most recent check the result of a report from
-         <marko.teiste@gmail.com>
-
-                                  10/22
-                                  -----
-jobs.c
-       - delete_all_jobs: if running_only == 0, we are eventually going to
-         clear the bgpids list, so don't bother to add pids to it in
-         delete_job (call with DEL_NOBGPID flag if running_only == 0)
-
-                                  10/24
-                                  -----
-jobs.[ch]
-       - bgpids: new implementation from a patch from John Fremlin
-         <john@fb.com>, uses an array for the list of the last CHILD_MAX
-         terminated background pids, and a separate hash table to search it.
-         The storage can be freed as a unit, and the size of the hash table
-         (currently 4096) is independent of the size of the bgpids table
-
-subst.c
-       - inherit_errexit: new variable to control whether or not command
-         substitution inherits the -e (errexit) option.  Disabled by default
-
-general.c
-       - posix_initialize: set inherit_errexit = 1 when Posix mode is enabled
-
-builtins/shopt.def
-       - inherit_errexit: new shell option, tracks value of inherit_errexit,
-         allows command substitution to inherit the setting of errexit without
-         posix mode.  From a request and patch submitted by Christoph Gysin
-         <christoph.gysin@gmail.com>
-
-{version,version2}.c
-       - use #if HAVE_SNPRINTF instead of #if defined in case configure
-         decides to #define it to 0.  Fixes problem reported by Klaus Ziegler
-         <klausz@haus-gisela.de>
-
-configure.ac
-       - when checking for sys/resource.h, make sure to include <sys/time.h>
-         for the benefit of both old systems that require it and new versions
-         of autoconf that require a header file to compile to report its
-         presence.  Reported by Klaus Ziegler <klausz@haus-gisela.de>
-
-                                  10/26
-                                  -----
-subst.h
-       - SD_ARITHEXP: new flag value for skip_to_delim, supports parsing
-         arithmetic expressions in parameter expansions
-
-subst.c
-       - skip_to_delim: handle SD_ARITHEXP flag by skipping parentheses for
-         subexpressions and allowing ?: expression to not terminate an
-         arithmetic expression delimited by `:'
-       - skiparith: just call skip_to_delim with the SD_ARITHEXP option and
-         the right delimiter string and return the right result.  Fixes bug
-         reported by <grishalevit@gmail.com>
-
-include/shmbchar.h
-       - strip out everything except what is needed to support is_basic and
-         similar functions, since the mbchar_t typedef apparently conflicts
-         with some AIX-specific type definition.  Problem reported by
-         Michael Felt <aixtools@gmail.com>
-
-                                  10/27
-                                  -----
-builtins/{set,ulimit}.def
-       - {set,ulimit}_builtin: make sure that --help is treated the same as
-         -? and prints a message and returns.  Fixes bug reported by ziyunfei
-         <446240525@qq.com>
-
-builtins/*.def
-       - make sure to consistently use builtin_help() instead of mix of that
-         function and builtin_usage()
-
-                                  10/29
-                                  -----
-doc/{bash.1,bashref.texi}
-       - BASH_CMDS, BASH_ALIASES: note that removing elements from these
-         array variables is not currently reflected in the command hash
-         table and alias list, respectively.  Reported by isabella parakiss
-         <izaberina@gmail.com>
-
-                                  10/30
-                                  -----
-eval.c
-       - reader_loop: if PS0 is set in an interactive shell, expand and
-         display it after reading a (complete) command but before executing
-         it.  This differs from the DEBUG trap because the DEBUG trap is
-         executed once for each simple command (and some others, like each
-         time through a for loop).  From a patch submitted by Dan Stromberg
-         <dstromberglists@gmail.com>
-
-parse.y
-       - prompt_again: set ps0_prompt from $PS0 in an interactive shell
-
-doc/{bash.1,bashref.texi}
-       - PS0: document new prompt string
-
-                                  11/3
-                                  ----
-subst.c
-       - cond_expand_node: if special > 0, remove quoted nulls from the word
-         list, since no word splitting takes place.  Fixes bug reported by
-         Corentin Peuvrel <cpeuvrel@pom-monitoring.com>
-
-                                  11/4
-                                  ----
-doc/{bash.1,builtins.texi}
-       - inherit_errexit: add to shopt description; modify Posix mode
-         description
-
-                                  11/9
-                                  ----
-lib/readline/util.c
-       - rl_tilde_expand: fix out-of-bounds read caused when this function
-         is invoked with rl_point == 0.  Bug reported by Hanno Böck
-         <hanno@hboeck.de>
-
-                                  11/11
-                                  -----
-{nojobs,jobs}.c
-       - get_original_tty_job_signals: force the original signal disposition
-         for SIGTSTP/SIGTTIN/SIGTTOU to SIG_DFL in interactive shells.  This
-         will force child processes to get SIG_DFL even if the shell is
-         started with those signals ignored.  From a bug report from
-         Keith Thompson <keithsthompson@gmail.com>
-
-                                  11/13
-                                  -----
-make_cmd.c
-       - make_function_def: if a function is being defined without a source
-         file, and the shell has not been initialized, assume that the
-         function is being imported from the environment and set the
-         source_file struct member to "environment".  Set to "main" if the
-         shell has been initialized.  Fixes bug reported on savannah by
-         Arno-Can Uestuensoez
-         https://savannah.gnu.org/support/index.php?108903
-
-subst.c
-       - skip_to_delim: if the shell is in posix mode (posixly_correct != 0)
-         and performing history expansion ((flags & SD_HISTEXP) != 0), allow
-         double quotes to quote the history expansion character.  TENTATIVE
-         CHANGE, inspired by
-         https://savannah.gnu.org/support/index.php?108491
-
-                                  11/14
-                                  -----
-jobs.c
-       - wait_for: modify change from 4/23 to only give the terminal to
-         shell_pgrp if not running in the background and subshell_environment
-         indicates we're not in a pipeline and not an async command.  Fixes
-         bug reported by konsolebox <konsolebox@gmail.com>
-
-                                  11/16
-                                  -----
-doc/{bash.1,bashref.texi}
-       - document new posix-mode behavior of not giving ! special meaning
-         within double quotes, even if histexpand is enabled
-
-                                  11/17
-                                  -----
-builtins/evalfile.c
-       - fc_execute_file: pass FEVAL_BUILTIN flag to _evalfile so it returns
-         the value of parse_and_execute after executing the commands in the
-         file.  Fixes bug reported by Chris Marusich <cmmarusich@gmail.com>
-
-                                  11/20
-                                  -----
-subst.c
-       - process_substitute: don't unconditionally set pipeline_pgrp to
-         shell_pgrp; do that only if pipeline_pgrp == 0 (we haven't forked
-         yet) or if we know we haven't forked for a command, a pipeline,
-         or an async command.  Fixes bug reported by
-         <gnu.20.drkshadow@spamgourmet.com>
-         as https://savannah.gnu.org/support/index.php?108593
-
-                                  11/24
-                                  -----
-variables.c
-       - set_pwd: inherit the value of OLDPWD from the initial environment
-         if it names a directory.  From a report from John Wiersba
-         <jrw32982@yahoo.com>
-
-builtins/set.def
-       - -T: fix help text to note that the DEBUG and RETURN traps are both
-         inherited if this is set.  Report from Grisha Levin
-         <grishalevit@gmail.com>
-
-doc/{bash.1,bashref.texi}
-       - HISTIGNORE,GLOBIGNORE: note that the pattern matching is subject to
-         the setting of the `extglob' variable.  Clarification raised by
-         Aharon Robbins <arnold@skeeve.com>
-
-builtins/jobs.def,doc/{bash.1,bashref.texi}
-       - disown: add text to synopsis making it clear that disown takes a
-         pid argument.  From a report from Matthew Stanfield
-         <matthew@i-dig.info>
-
-findcmd.c,doc/{bash.1,bashref.texi}
-       - EXECIGNORE: change pattern matching to use FNMATCH_EXTFLAG like other
-         IGNORE variables.  From a report from Aharon Robbins <arnold@skeeve.com>
-
-trap.c
-       - _run_trap_internal: make sure to catch and use return values supplied
-         as arguments to `return'; instead of just catching return, make sure
-         we use return_catch_value as well.  Fixes bug reported by
-         Grisha Levit <grishalevit@gmail.com>, affects RETURN, DEBUG, ERROR
-         traps
-
-                                  11/30
-                                  -----
-lib/readline/display.c
-       - rl_redisplay: fix code that deals with prompts that contain
-         multibyte characters whose physical length is longer than the screen
-         width (so the prompt line wraps) to deal with invisible characters
-         in the prompt and set the inv_lbreaks offsets correctly and set
-         lpos appropriately
-       - _rl_move_cursor_relative: always called with either visible line or
-         invisible line. Decide whether we are being called with the invisible
-         line (or a portion thereof) as the DATA argument; make sure to account
-         for invisible characters in the last line of the prompt by offsetting
-         the desired buffer offset (NEW) by where DATA starts in invisible line
-         and checking whether that is past the last invisible character in
-         the prompt
-       - _rl_move_cursor_relative: do the same for the visible line by using
-         the visible line lbreaks array instead of _rl_screenwidth, since
-         that fails in the presence of multibyte characters (buffer offset
-         vs. physical screen position).  These fix bug with prompts with
-         multibyte characters and invisible characters that are longer than
-         the screen width reported by Ryo Furue <ryofurue@gmail.com>
-
-                                  12/1
-                                  ----
-parse.y,make_cmd.c
-       - here_doc_first_line: new variable, set to non-zero to indicate the
-         first line of possibly multiple here documents associated with the
-         current command.  Set in parse.y:gather_here_documents() before
-         reading any here documents, set to 0 after reading the first line
-         of any here document in make_cmd.c:make_here_document().
-
-parse.y
-       - history_delimiting_chars: if parser_state indicates we are reading
-         a here document, don't use current_command_line_count to see whether
-         or not we're on the first line of a here document -- it can be fooled
-         by multi-line commands (or even backslash-escaped newlines).  Use
-         here_doc_first_line to check that directly.  Fixes bug reported by
-         Geoffrey Allott <geoffrey@allott.email>
-
-shell.h,parse.y
-       - save and restore here_doc_first_line as part of the shell's parser
-         state
-
-lib/sh/tmpfile.c
-       - use ANSI-C rand() interface if random() not available.  Fixes problem
-         with linking on (ancient) Solaris 2.4 reported by Klaus Ziegler
-         <klausz@haus-gisela.de>
-
-                                  12/2
-                                  ----
-aclocal.m4
-       - RL_LIB_READLINE_VERSION: if cross-compiling, assume current version
-         of readline if cross-compiling bash while using an external readline
-         library.  Fix from Barry Davis <barry_davis@stormagic.com>
-
-execute_cmd.c
-       - execute_builtin: save and restore value of builtin_ignoring_errexit
-         instead of assuming we can set it back to 0 -- the ignore-errexit
-         cases might be nested
-       - execute_builtin: after a builtin executes and eval_unwind is set,
-         set exit_immediately_on_error to 0 if builtin_ignoring_errexit is
-         set, and back to the value of errexit otherwise, just like the
-         code that sets -e does.  Fixes short-circuiting bug reported by
-         Marcin Swigon <swigon.mar@gmail.com>
-
-                                  12/5
-                                  ----
-builtins/setattr.def
-       - set_or_show_attributes: instead of using a fixed string for the
-         options argument to `declare', which results in export adding the
-         readonly attribute, build the option string dynamically like in
-         subst.c:shell_expand_word_list()
-       - set_or_show_attributes: don't add the -r option to declare if the
-         attribute passed as an argument doesn't include att_readonly; add
-         -x if the attribute includes att_exported
-       - set_or_show_attributes: add the -g option to declare so readonly
-         and export in functions that go through this code path don't create
-         local variables.  Part of fix for bug reported by ziyunfei
-         <446240525@qq.com>
-
-execute_cmd.c
-       - make_internal_declare: if we have an assignment builtin that isn't
-         supposed to create local variables (export/readonly), make sure to
-         add the W_ASSNGLOBAL flag to each assignment statement word.
-         Part of fix for bug reported by ziyunfei <446240525@qq.com> where
-         readonly can create local variables when invoked with a compound
-         array assignment as an argument within a shell function
-
-subst.c
-       - make_internal_declare: added third argument: command name.  Not used
-         in any useful way yet
-       - do_compound_assignment: handle attempted assignments to readonly
-         variables and print error messages, like bind_variable does and the
-         callers expect. This means that assignments to readonly array
-         variables can't go through a code path that allows them to fail
-         silently
-
-doc/Makefile.in
-       - uninstall: run install-info --delete after removing the installed
-         info file to update the directory file
-
-execute_cmd.c
-       - execute_disk_command: since we still (and have always) perform
-         redirections in child processes, we need to mark that state so
-         we know that we're in a child process.  subshell_performing_redirections
-         is the new variable; non-zero when executing do_redirections()
-
-subst.c
-       - process_substitute: if we are executing process substitution in a
-         redirection expansion context (expanding_redir == 1), the child
-         process should not have access to any temporary environment the
-         parent has.  Call flush_tempenv() in the child process to get rid
-         of it.  Fix for bug reported by Clint Hepner <clint.hepner@gmail.com>
-
-                                  12/9
-                                  ----
-jobs.c
-       - waitchld: if in posix mode and attempting to let SIGCHLD interrupt the
-         wait builtin, make sure wait_intr_flag is non-zero before trying to
-         longjmp to wait_intr_buf.  Fixes bug reported by Aharon Robbins
-         <arnold@skeeve.com>
-
-                                  12/10
-                                  -----
-lib/readline/display.c
-       - update_line: if a prompt containing invisible characters changes,
-         and the change is within the prompt string, we need to redraw the
-         entire prompt.  After that redraw, if the cursor position is after
-         the first index where the old and new lines differ, we can short-
-         circuit the update if the line length stays the same
-       - update_line: if we redraw the entire prompt string because the prompt
-         contains invisible characters and the first difference is in the
-         middle of the prompt, we possibly need to adjust our idea of the
-         first differing character in the old and new lines.  We punt and do
-         a dumb update in this case.  Fixes bug with dynamic vi-mode mode
-         strings containing invisible characters reported by Dylan Cali
-         <calid1984@gmail.com>
-
-                                  12/11
-                                  -----
-lib/readline/display.c
-       - update_line: if we move up to a new screen line, we need to recompute
-         the number of invisible characters on the new current line
-         (visible_wrap_offset).  Fixes bug reported to bug-readline by
-         Per Bothner <per@bothner.com>
-       - update_line: update code that attempts to compute where we are in
-         the new line buffer.  Fixes `vt100' bug reported to bug-readline by
-         Per Bothner <per@bothner.com>
-
-                                  12/18
-                                  -----
-execute_cmd.c
-       - execute_function: unwind-protect and restore BASH_ARGC and BASH_ARGV
-       - restore_funcarray_state: now global
-
-execute_cmd.h
-       - make func_array_state type global, add extern function declaration
-         for restore_funcarray_state
-
-builtins/evalfile.c
-       - _evalfile: use restore_funcarray_state and pop_args as unwind-protects
-         to restore BASH_{SOURCE,LINENO,ARGC,ARGV} and FUNCNAME on interrupts.
-         Fixes bug reported back on 11/10 by Grisha Levit
-         <grishalevit@gmail.com>
-
-                                  12/20
-                                  -----
-lib/readline/isearch.c
-       - _rl_isearch_dispatch: after removing the only character from the
-         search string with DEL, leaving the search string empty, don't match
-         the previous line if we didn't have a match before
-
-                                  12/22
-                                  -----
-bashhist.c
-       - enable_history_list,remember_on_history: initialize to 0 instead of 1
-
-shell.c
-       - init_interactive,init_interactive_script: set enable_history_list and
-         remember_on_history to 1 (defaults)
-
-                                  12/23
-                                  -----
-variables.c
-       - initialize_shell_variables: don't inherit PS4 from the environment
-         if the shell is running with euid == 0; just reset it to `+ '.  This
-         is a known potential vulnerability, since PS4 expansion performs
-         command substitution in the root shell's context before displaying
-         it.  Discussion started by up201407890@alunos.dcc.fc.up.pt
-
-bashhist.c
-       - bash_history_reinit: initialize remember_on_history to the value of
-         enable_history_list (set -o history).  Fixes bug reported by
-         Stephane Chazelas <stephane.chazelas@gmail.com> with command-line
-         option `-o history' not having any effect
-
-                                  12/28
-                                  -----
-lib/readline/{history.h,histfile.c}
-       - history_file_version: new int variable, reserved for future use
-       - history_multiline_entries: new int variable, can be set by the
-         calling application to enable reading multi-line history entries
-         from the history file (currently undocumented)
-
-lib/readline/history.c
-       - _hs_append_history_line: new function, append a line passed as an
-         argument to a specified history entry, used to create multi-line
-         history entries
-
-lib/readline/histfile.c
-       - read_history_range: implement a heuristic that temporarily sets the
-         history comment character if the first line read from the history
-         file looks like it has is a timestamp (#[:digit:]) so we can read
-         timestamps from the history file properly.  Originally reported
-         back in March 2015 by Christoph Anton Mitterer <calestyo@gmail.com>
-       - read_history_range: make sure history_multiline_entries is non-zero
-         if the history file looks like it has timestamps
-       - read_history_range: if we think we have a history file with timestamps
-         and we read more than one non-timestamp consecutive history lines,
-         assume they are part of a single multi-line history entry and paste
-         them together using _hs_append_history_line.  Feature most recently
-         requested by james harvey <jamespharvey20@gmail.com>, also suggested
-         by Christoph Anton Mitterer <calestyo@gmail.com>
-
-examples/loadables/setpgid.c
-       - setpgid: new loadable builtin, originally contributed by Jason
-         Vas Dias <jason.vas.dias@gmail.com>
-
-                                  12/29
-                                  -----
-bashhist.c
-       - bash_history_inhibit_expansion: fix cases where a history expansion
-         should be skipped because it's in a command or process substitution
-         but there is another history expansion preceding the substitution
-         on the command line.  Don't let the previous history expansion fool
-         the function into saying the command substitution history expansion
-         should be performed
-
-builtins/evalstring.c
-       - parse_prologue: always unwind-protect history_expansion_inhibited,
-         since history expansion can be enabled in non-interactive shells,
-         and calling eval once in a non-interactive shell inhibits history
-         expansion forever even if `set -o histexpand' was run before the
-         eval
-
-builtins/common.h
-       - SEVAL_NOHISTEXP: new flag for parse_and_execute/parse_string; means
-         to not perform history expansion (decouple from SEVAL_NOHIST, which
-         now means to not remember commands on history); changed all callers
-         that had SEVAL_NOHIST to have SEVAL_NOHIST|SEVAL_NOHISTEXP
-
-builtins/evalstring.c
-       - parse_prologue: instead of calling bash_history_disable, set
-         remember_on_history to 0 if SEVAL_NOHIST and history_expansion_inhibited
-         to 1 if SEVAL_NOHISTEXP
-
-                                  12/30
-                                  -----
-subst.c
-       - skip_to_histexp: new function, a stripped-down version of skip_to_delim.
-         Used to skip to the next unquoted instance of the history expansion
-         character, handles peculiar quoting and command/process substitution
-         requirements.  Better fix for bug reported by
-         Zigmund.Ozean@zig-home.localdomain back in January, prompted by report
-         from Keith Thompson <keithsthompson@gmail.com>
-
-bashhist.c
-       - bash_history_inhibit_expansion: use skip_to_histexp instead of
-         skip_to_delim
-
-subst.c
-       - parameter_brace_expand_rhs: if the rhs of an expansion is "$@" and
-         IFS is null, we need to separate the (quoted) positional parameters
-         in the returned word with a space, and mark the word as needing to
-         be split on spaces (W_SPLITSPACE).  Fix for issues reported back in
-         October 2014 as the result of an austin-group discussion, and just
-         re-reported by Martijn Dekker <martijn@inlv.org>
-
-                                1/4/2016
-                                --------
-execute_cmd.c
-       - execute_simple_command: if autocd is set, invoke a function named
-         `cd' if one exists, instead of the shell builtin.  Feature requested
-         by transl8czech@gmail.com
-
-builtins/mkbuiltins.c
-       - if a command's short description is the same as its name (e.g., `true'),
-         don't mark the short doc to be translated.  Report and fix from
-         Benno Schulenberg <bensberg@justemail.net>
-
-                                   1/6
-                                   ---
-subst.c
-       - command_substitute,process_substitute: before replacing the file
-         descriptor underlying stdout (fd 1), make sure to purge any pending
-         stdio output that hasn't been written successfully, even after a
-         call to fflush().  Fixes bug reported by cks@cs.toronto.edu
-
-                                   1/7
-                                   ---
-builtins/{echo,printf}.def
-       - echo_builtin,printf_builtin: don't use terminate_immediately; use
-         calls to QUIT in the body of the print loop after writes and flushes.
-         Fixes problem with running the signal handler and exit trap in a
-         signal context and other bug reported by cks@cs.toronto.edu
-
-builtins/common.c
-       - sh_chkwrite: put in calls to QUIT to catch signals that interrupt
-         writes
-
-shell.c
-       - get_current_user_info: protect endpwent() with #ifdef HAVE_GETPWENT.
-         Fixes bug reported by pb <p-bauer-schriesheim@t-online.de>
-
-                                   1/8
-                                   ---
-lib/readline/bind.c
-       - _rl_init_file_error: now a varargs function so it can take format
-         strings and arguments and pass them to vfprintf
-       - rl_parse_and_bind: print a warning if we encounter a key binding
-         string with one or more hyphens but we don't find a valid modifier
-         (`control', `meta', etc.).  Prompted by a report from Andrew Kurn
-         <kurn@sfu.ca>
-       - rl_parse_and_bind: improve several existing error messages now that
-         _rl_init_file_error takes a variable number of arguments
-       - rl_variable_bind: print error message upon encountering unknown
-         variable
-
-                                  1/10
-                                  ----
-lib/readline/bind.c
-       - rl_parse_and_bind: if a `bare' keybinding is supplied without any
-         terminating `:' or whitespace separating it from the command to be
-         bound, signal an error
-
-                                  1/11
-                                  ----
-subst.c
-       - process_substitute: when compiled without job control (JOB_CONTROL not
-         defined), make sure we call stop_making_children like we do in the job
-         control code branch, so already_making_children is reset to 0.  This
-         is what command substitution does.  Fixes bug reported by Alastair
-         Hughes <hobbitalastair@yandex.com>
-
-                                  1/12
-                                  ----
-execute_cmd.c
-       - execute_in_subshell: if a user subshell (`(command)') or other shell
-         compound command has an input pipe, note for later by setting
-         stdin_redir.  This will inhibit the implicit redirection of standard
-         input from /dev/null for async commands executed as part of this
-         subshell.  Fixes bug reported by Martin D Kealey <martin@kurahaupo.gen.nz>
-       - execute_simple_command: if the shell forks to execute this command
-         because it has an input pipe, set stdin_redir to inhibit later redirection
-         from /dev/null for async commands
-
-                                  1/13
-                                  ----
-execute_cmd.c
-       - HASH_BANG_BUFSIZE: use #define for size of buffer used in
-         READ_SAMPLE_BUF instead of straight constant 80
-       - HASH_BANG_BUFSIZ: increase to 128 because Linux allows 128 chars in
-         exec header.  Reported by Ludovic Courtès <ludo@gnu.org>
-
-configure.ac
-       - remove support for purify and purecoverage
-       - change release level to `rc1'
-
-                                  1/15
-                                  ----
-builtins/enable.def
-       - dyn_load_builtin: fix missing argument to builtin_error if load function
-         returns an error.  Fix from Aharon Robbins <arnold@skeeve.com>
-
-                                  1/18
-                                  ----
-builtins/history.def
-       - histtime: display a better error message for invalid timestamps; use
-         existing `??' string for empty/missing timestamps or invalid history
-         entries.  Suggestion from Reuben Thomas <rrt@sc3d.org>
-
-                                  1/21
-                                  ----
-lib/readline/text.c
-       - rl_insert: when trying to optimize typeahead, make sure to reset the
-         key sequence and key sequence length when we read a character that is
-         not bound to self-insert.  Bug report from Geir Hauge
-         <geir.hauge@gmail.com>
-
-                                  1/25
-                                  ----
-doc/{bash.1,bashref.texi}
-       - word splitting: add example showing how -d'' is equivalent to -d
-         after word splitting and null argument removal
-
-                                  1/27
-                                  ----
-doc/{bash.1,bashref.texi}
-       - read: modify description to make it more clear that the line is split
-         using the same rules as word splitting, and use `delimiters' instead
-         of `separators', which people read the wrong way
-
-                                   2/2
-                                   ---
-variables.c
-       - initialize_shell_variables: allow FUNCNEST to set funcnest_max when
-         imported from the environment.  Inspired by
-         https://bugzilla.redhat.com/show_bug.cgi?id=1274553
-
-                                  2/11
-                                  ----
-bashhist.c
-       - bash_history_inhibit_expansion: function should be compiled in only if
-         BANG_HISTORY is defined.  Report from isabella parakiss
-         <izaberina@gmail.com>
-
-[bash-4.4-rc1 frozen]
-
-                                  2/15
-                                  ----
-lib/readline/text.c
-       - rl_refresh_line: call rl_redraw_prompt_last_line instead of
-         rl_forced_update_display to avoid redrawing all lines of a multiline
-         prompt (overwriting the last line of the multiline prompt in the
-         process).  Report from Hugh Davenport <hugh@davenport.net.nz>
-
-                                  2/18
-                                  ----
-subst.c
-       - parameter_brace_expand: when processing ${!name[@]}, make sure to
-         free `name' before returning the list of keys to avoid a memory leak.
-         Fixes bug reported by Emilio PastorMira <Emilio.PastorMira@utimaco.com>
-
-                                  2/19
-                                  ----
-trap.c
-       - free_trap_strings: when freeing the `special' traps (NSIG to BASH_NSIG),
-         check whether or not the `signal' is trapped, as it would be if the
-         subshell inherited it (errtrace) and don't free the trap string in that
-         case.  Fixes bug reported by Jan Klötzke <jan@kloetzke.net>
-
-                                  2/21
-                                  ----
-lib/sh/netconn.c
-       - isnetconn: return false if getpeername fails with errno == EBADF.
-         Bug and fix from Andrew Gregory <andrew.gregory.8@gmail.com>
-
-builtins/shopt.def
-       - parse_bashopts: when reading BASHOPTS from the environment, make
-         sure to call any set functions associated with a variable, instead
-         of just setting the value to 1.  Report and fix from
-         Vehlow, Jörg <Joerg.Vehlow@kratzer-automation.com>
-
-                                  2/22
-                                  ----
-lib/readline/complete.c
-       - rl_display_match_list: don't bother calling strrchr to check the
-         return value from printable_part() if rl_filename_completion_desired
-         is non-zero, since in that case printable_part just returns its
-         argument.  Fixes git completion issue reported by
-         Dilyan Palauzov <dilyan.palauzov@aegee.org>
-       - _rl_colored_completion_prefix: default is now 0, testing is complete
-
-                                  2/23
-                                  ----
-variables.c
-       - assign_hashcmd: if the shell is restricted, reject attempts to add
-         pathnames containing slashes to the hash table, as the hash builtin
-         does.  Fixes bug reported to savannah by Sylvain Beucler as
-         https://savannah.gnu.org/support/?108969
-
-                                  2/24
-                                  ----
-subst.c
-       - NEED_FPURGE_DECL: need it before externs.h included, since fpurge
-         is now used in this file.  Fixes warning reported by Mike
-         Frysinger <vapier@gentoo.org>
-       - skip_double_quoted: add missing argument to declaration
-
-parse.y
-       - shell_getc: in call to internal_warning, use %lu to print an argument
-         cast explicitly to unsigned long.  Fixes warning reported by Mike
-         Frysinger <vapier@gentoo.org>
-
-                                  2/27
-                                  ----
-parse.y
-       - decode_prompt_string: quote result of \s expansion in case shell has
-         been invoked with a pathname like '$(id)'.  Inspired by report from
-         Travis Garrell <travis.garrell@oracle.com>
-       - decode_prompt_string: quote result of \h and \H expansions in the
-         (unlikely) case that the hostname has been changed to something
-         malicious including a command substitution.  From report from
-         Travis Garrell <travis.garrell@oracle.com>
-
-builtins/getopts.def
-       - getopts_unbind_variable: new static function, just calls unbind_variable
-         for now.  Placeholder for any future work to do something special if
-         OPTARG is readonly.  Based on discussion started by Robert Elz
-         <kre@munnari.oz.au>
-
-lib/readline/vi_mode.c
-       - rl_vi_unix_word_rubout: new function, implements ^W as Posix specifies
-         it for vi mode, using whitespace and punctuation characters as word
-         boundaries. Prompted by question from Carlos Pita
-         <carolosjosepita@gmail.com>
-
-lib/readline/vi_keymap.c
-       - bind rl_vi_unix_word_rubout to ^W by default in both insert and
-         command mode
-
-lib/readline/rltty.c
-       - _rl_bind_tty_special_chars: if in vi mode, bind the WERASE character
-         to rl_vi_unix_word_rubout
-
-lib/readline/funmap.c
-       - vi-unix-word-rubout is new bindable name for rl_vi_unix_word_rubout
-
-lib/readline/readline.h
-       - rl_vi_unix_word_rubout: new extern declaration
-
-                                  2/28
-                                  ----
-doc/bash.1
-       - document readline blink-matching-paren variable
-       - document readline completion-display-width variable
-       - document readline completion-map-case variable
-       - note that the default value of history-size depends on the value of
-         the HISTSIZE variable.  All from a message from Branden Robinson
-         <g.branden.robinson@gmail.com>
-
-doc/bash.1,lib/readline/doc/{readline.3,rluser.texi}
-       - convert-meta: modify the description to note that readline will turn
-         the default to off if the locale contains eight-bit characters
-       - input-meta: modify the description to note that readline will turn
-         the default to on if the locale contains eight-bit characters
-       - output-meta: modify the description to note that readline will turn
-         the default to on if the locale contains eight-bit characters.  From
-         a message from Branden Robinson <g.branden.robinson@gmail.com>
-
-                                   3/6
-                                   ---
-examples/loadables/Makefile.in
-       - install-dev: make installdirs a prerequisite; don't rely on the
-         install-supported target to create it first.  Bug with parallel
-         install (`make -j 4 install') reported by Chris Staub
-         <cstaub67@gmail.com>
-
-                                  3/12
-                                  ----
-lib/readline/display.c:
-       - rl_clear_visible_line: clear all screen lines occupied by the current
-         visible readline line.  Inspired by report from Lauri Ranta
-         <lauri.ranta@gmail.com>
-
-lib/readline/readline.h
-       - rl_clear_visible_line: extern declaration
-
-lib/readline/doc/rltech.texi
-       - rl_clear_visible_line: add documentation
-
-                                  3/19
-                                  ----
-findcmd.c
-       - file_status: add inadvertently-dropped test for EXECIGNORE to the
-         `other' bits check.  The check was in the original patch
-       - search_for_command: if the file should not be considered executable
-         because it's in the EXECIGNORE blacklist, don't set file_to_lose_on,
-         since the attempt to execute the last-ditch path will circumvent the
-         EXECIGNORE setting.  Fixes bug reported by Dennis Williamson
-         <dennistwilliamson@gmail.com>
-
-                                  3/28
-                                  ----
-lib/readline/display.c
-       - rl_redisplay: when computing where the cursor should go (and the
-         physical cursor position) after displaying the prompt, don't adjust
-         the cursor position by wadjust if there are no multibyte chars in
-         the prompt.  lpos is already a physical cursor position; _rl_screenwidth
-         is the physical screen width, and we're not calling _rl_col_width and
-         don't need to take invisible characters into account again.  Fixes
-         bug reported by Andreas Schwab <schwab@linux-m68k.org>
-
-                                   4/1
-                                   ---
-parse.y
-       - parse_comsub: when we read `esac' followed by a break character,
-         turn on the LEX_RESWDOK flag because we can now read another case
-         statement or other compound command.  Fixes bug reported by
-         Christian Franke <Christian.Franke@t-online.de>, original version
-         of patch from Piotr Grzybowski <narsil.pl@gmail.com>
-       - parse_comsub: leave the reserved-word-ok flag set for four-char
-         reserved words (then/else/elif/done/time) that can be followed by
-         reserved words; set lex_rwlen to 0 so we know to start reading a
-         new one
-
-                                   4/7
-                                   ---
-builtins/{alias,complete,jobs}.def
-       - {alias,compopt,disown}: add missing `CASE_HELPOPT;' so --help option
-         prints help longdoc instead of builtin_usage()
-
-                                   4/8
-                                   ---
-arrayfunc.c
-       - assign_array_var_from_word_list: use bind_array_var_internal instead
-         of inline code, so value conversions happen on assignment (case
-         modification, arithmetic evaluation, etc).  Fixes bug reported by
-         Geir Hauge <geir.hauge@gmail.com>
-
-                                   4/9
-                                   ---
-shell.c
-       - main: change the logic that determines whether or not bash is running
-         under an emacs terminal emulator so it works with future versions of
-         emacs, which will change to use only $INSIDE_EMACS.  Report and fix
-         from Paul Eggert <eggert@cs.ucla.edu>
-
-lib/glob/sm_loop.c
-       - EXT: if we see ?(pat), we can match 0 or 1 times, so if we don't
-         match, we should consume the extglob pattern and go on to attempt
-         to match the rest of the pattern against the string.  Fixes bug
-         reported by Isabella Parakiss <izaberina@gmail.com>
-       - GMATCH: in case `*', don't short-circuit and match anything if the
-         * is the last character in the pattern until after we check the
-         special cases for matching a `.'.  Fixes bugs reported back on 3/23
-         by Isabella Parakiss <izaberina@gmail.com>
-
-                                  4/13
-                                  ----
-bashhist.c
-       - hc_erasedups: fix memory leak by freeing history entry returned by
-         remove_history.  Bug and fix from Seiichi Ishitsuka
-         <ishitsuka.sc@ncos.nec.co.jp>
-
-                                  4/19
-                                  ----
-config-top.h
-       - CD_COMPLAINS: now settable in config-top.h; enables (fatal) error
-         messages if cd is given multiple directory arguments
-
-                                  4/20
-                                  ----
-execute_cmd.c
-       - coproc_setvars: refuse to create variables with names that are not
-         valid identifiers.  Suggestion from Piotr Grzybowski
-         <narsil.pl@gmail.com>
-
-rltty.c
-       - rl_tty_set_echoing: interface to set _rl_echoing_p, returning old
-         value.  Inspired by gdb use of _rl_echoing_p when switching
-         between terminal and curses modes described by Doug Evans
-         <dje@google.com>
-
-bashline.c
-       - bash_execute_unix_command: use rl_clear_visible_line instead of
-         erasing current line on the screen, inspired by same report from
-         3/12.  Still tentative change
-
-configure.ac
-       - update release status to rc2, may skip this and go directly to
-         release
-
-                                  4/21
-                                  ----
-arrayfunc.c
-       - convert_var_to_array: make sure that the newly-converted array
-         variable is not marked as being an associative array.  Fixes bug
-         reported by Grisha Levit <grishalevit@gmail.com>
-       - convert_var_to_assoc: make sure that the newly-converted associative
-         array variable is not marked as being an indexed array
-
-                                  4/22
-                                  ----
-builtins/evalstring.c
-       - should_suppress_fork: don't suppress the fork if there are any traps
-         set, since that requires that we hang around to react to a signal or
-         collect the command's exit status and run something.  Fixes bug
-         reported by Brian Vandenberg <phantall@gmail.com>
-
-histexpand.c
-       - history_tokenize_word: handle >| as a single token.  Fix from
-         Piotr Grzybowski <narsil.pl@gmail.com> from a report from
-         idallen@idallen-fibe.dyndns.org
-
-                                  4/24
-                                  ----
-execute_cmd.
-       - coproc_setvars: don't overwrite readonly variables used as coproc
-         names.  From a report from Grisha Levit <grishalevit@gmail.com>
-
-histexpand.c
-       - history_tokenize_word: handle strings of digits before redirections
-         beginning with `<' or `>' as part of the redirection word; handle
-         strings of digits following `<&' or `>&' as part of the redirection
-         word.  Inspired by patch from  Piotr Grzybowski <narsil.pl@gmail.com>
-         from a report from idallen@idallen-fibe.dyndns.org
-
-lib/readline/complete.c
-       - rl_display_match_list: if the common prefix is longer than any of
-         the possible matches, set the length of the common prefix to 0 so
-         the entire match gets printed for each match
-       - rl_display_match_list: make sure to output at least one space
-         between each displayed match, even if the displayed length is
-         longer than our computed max
-       - fnprint: if the length of the prefix (prefix_bytes) is greater than
-         or equal to the length of the string to be printed (print_len), make
-         sure to set the prefix length to 0 so the entire string is printed.
-         From a report from Grisha Levit <grishalevit@gmail.com>
-
-                                  4/25
-                                  ----
-subst.c
-       - command_substitute: update the conditions under which we give the
-         terminal to pipeline_pgrp with give_terminal_to to the same ones
-         where wait_for uses to decide whether to give the terminal back to
-         shell_pgrp.  This code exists to undo the work wait_for does; it
-         has to give the terminal back to pipeline_pgrp only under those
-         conditions when wait_for gives it back to the shell pgrp.  Fix for
-         bug reported by Paulo Bardes <bardes0022@gmail.com>
-
-                                  4/26
-                                  ----
-bashline.c
-       - bash_filename_stat_hook: temporarily disable the `nounset' shell
-         option around calls to expand_prompt_string so we don't get error
-         messages during completion.  Fixes issue reported by Eric Pruitt
-         <eric.pruitt@gmail.com>
-
-                                  4/27
-                                  ----
-doc/{bash.1,bashref.texi}
-       - extdebug: clarify that having this option enabled at shell startup
-         acts identically to --debugger.  From a report from Grisha Levit
-         <grishalevit@gmail.com>
-
-jobs.[ch]
-       - wait_for_single_pid: now takes additional `int flags' argument
-
-{jobs,execute_cmd}.c,builtins/wait.def
-       - wait_for_single_pid: changed callers to add extra argument
-
-jobs.c
-       - wait_for_single_pid: if (flags & 1) == 0, don't print the error
-         message if PID isn't found; changed execute_pipeline call when
-         lastpipe is set
-
-                                  4/28
-                                  ----
-general.c
-       - bash_tilde_expand: try not setting interrupt_immediately or
-         terminate_immediately; see what happens with networked password
-         databases
-
-                                  4/29
-                                  ----
-subst.c
-       - parameter_brace_expand, parameter_brace_expand_rhs: now take an
-         additional `pflags' argument from its caller so we can pass
-         state
-       - parameter_brace_expand_rhs: if expand_string_for_rhs returns a
-         quoted null, but l_hasdollat is set to 1, meaning we saw a quoted
-         "$@" of some form, we need to turn off special handling of "$@"
-         so something like "${@-${@-$@}}" expands to an empty string like
-         Posix says it should.  Fixes bug reported by Grisha Levit
-         <grishalevit@gmail.com>
-
-                                   5/1
-                                   ---
-variables.c
-       - bind_variable_internal: if we have a nameref variable with a valid
-         array reference that is invalid for assignment (e.g., a[*]), and
-         assign_array_element returns NULL, short-circuit and return NULL.
-         Fixes bug reported by Grisha Levit <grishalevit@gmail.com>
-
-general.[ch]
-       - valid_nameref_value: new function, return 1 if passed argument is
-         a valid variable name argument for a nameref variable: a valid
-         identifier, a valid array reference, or a valid positional
-         parameter.  Second argument indicates whether the value is to be
-         used for an assignment; in this case, return an error if the name
-         consists of all digits
-
-builtins/declare.def
-       - declare_internal: disallow values for nameref variables that don't
-         pass the tests in valid_nameref_value.  Part of fix for bug
-         reported by Grisha Levit <grishalevit@gmail.com>
-
-variables.c
-       - bind_variable_internal: if trying to assign a value to a nameref
-         variable, throw an error if valid_nameref_value fails (with a second
-         argument of 1).  More fixes for bug reported by Grisha Levit
-         <grishalevit@gmail.com>
-
-                                   5/2
-                                   ---
-builtins/declare.def
-       - declare_internal: don't allow nameref attribute to be applied to an
-         existing readonly variable; it can be used to circumvent readonly
-         value.  Fix for bug reported by Grisha Levit <grishalevit@gmail.com>
-
-variables.[ch]
-       - find_variable_last_nameref, find_global_variable_last_nameref: takes
-         a new flags argument.  If flags is non-zero, and we find a nameref
-         variable that is unset (has no value), return that variable instead
-         of NULL.
-
-{variables,execute_cmd,arrayfunc,subst}.c,builtins/{declare,set}.def
-       - find_variable_last_nameref, find_global_variable_last_nameref: change
-         callers to add flags argument (initially 0)
-
-                                   5/3
-                                   ---
-variables.c
-       - bind_variable_internal: make sure we run the value of a namref
-         variable through valid_nameref_value before doing the assignment.
-         This can go away if we stop allowing namerefs to refer to positional
-         parameters
-
-execute_cmd.c
-       - execute_select_command: if bind_variable returns NULL, handle it as
-         an error, as if attempting assignment to a readonly variable
-       - execute_for_command: use 1 as second argument to
-         find_variable_last_nameref, so it will return an invisible nameref
-         to assign for each variable in the list
-       - execute_for_command: if the current word in the list is an invalid
-         identifier and the loop variable is a nameref, handle it as an error,
-         as if attempting assignment to a readonly variable
-
-                                   5/4
-                                   ---
-variables.c
-       - bind_int_variable: add warning if assigning an int to a nameref
-         variable
-       - assign_in_env: if assigning a variable in the temporary environment
-         that is a namref, throw an error if trying to assign an invalid
-         value
-       - bind_variable_value: use valid_nameref_value instead of calls to
-         legal_identifier and valid_array_reference
-
-execute_cmd.c
-       - coproc_setvars: if we have a nameref variable as the coproc name, but
-         it can't be assigned to for some reason, remove the nameref attribute
-         and  issue a warning that we are doing so
-       - coproc_setvars: don't allow assignment to a nameref variable with an
-         invalid variable name, using same code as find_or_make_array_variable
-
-general.c
-       - valid_nameref_value: disallow values consisting solely of digits,
-         like the positional parameters
-
-builtins/declare.def
-       - declare_internal: don't call valid_nameref_value on the existing value
-         of a variable that's being converted to a nameref -- that value is
-         going to be thrown away and we've already checked the new value
-       - declare_internal: call bind_variable_value with the ASS_NAMEREF flag
-         if we're assigning to an existing nameref variable (for instance,
-         `declare -n x ; declare x=42')
-
-                                   5/5
-                                   ---
-variables.c
-       - make_local_variable: if we are being asked to create a local copy of
-         a nameref variable from a prior scope (checked by looking up
-         using find_variable_noref), use the nameref variable, not the variable
-         it references (which we find using find_variable).  Bug report from
-         Grisha Levit <grishalevit@gmail.com> ; fix by Piotr Grzybowski
-         <narsil.pl@gmail.com>
-
-builtins/declare.def
-       - declare_internal: if asked to do the same thing as above (difference
-         is declare -n r=foo in previous case; declare -n r in this one),
-         don't follow reference var from a previous context.  Create a new
-         local variable (using make_local_variable) and inherit attributes
-         from previous scope's nameref as above
-
-                                   5/6
-                                   ---
-builtins/declare.def
-       - declare_internal: if we are assigning a value to an existing
-         invisible nameref variable, validate value early so we don't end up
-         removing the variable after the assignment fails
-
-builtins/shopt.def
-       - toggle_shopts: don't call set_bashopts here unless $BASHOPTS exists,
-         since we don't want to set it up before it gets read from the
-         environment. Keeping BASHOPTS read-only should keep users from
-         unsetting it.  Fix from Grisha Levit <grishalevit@gmail.com>
-       - shopt_set_debug_mode: make sure error_trace_mode reflects the setting
-         of extdebug.  This one is tentative.  Fix from Grisha Levit
-         <grishalevit@gmail.com>
-       - shopt_set_debug_mode: call set_shellopts after setting error_trace_mode
-         or function_trace_mode.  Fix from Grisha Levit <grishalevit@gmail.com>
-
-shell.c
-       - start_debugger: make sure that function_trace_mode and error_trace_mode
-         reflect the value of debugging_mode, so they are both disabled if we
-         disable debugging mode because we can't find the debugger start file.
-         Fix from Grisha Levit <grishalevit@gmail.com>
-       - start_debugger: set $SHELLOPTS and $BASHOPTS to the option values are
-         reflected if we change or set them here.  Fix from Grisha Levit
-         <grishalevit@gmail.com>
-
-builtins/set.def
-       - reset_shell_options: add reset values for: posix, nolog, pipefail.
-         Fix from Grisha Levit <grishalevit@gmail.com>
-
-builtins/shopt.def
-       - reset_shopt_options: add reset values for: autocd, checkjobs,
-         complete_fullquote, dirspell, failglob, globstar, gnu_errfmt,
-         huponexit, inherit_errexit, interactive_comments, lastpipe,
-         no_empty_cmd_completion, progcomp.  Fix from Grisha Levit
-         <grishalevit@gmail.com>
-       - reset_shopt_options: make sure the following options have the right
-         defaults based on #defines: checkjobs, checkwinsize, direxpand,
-         extglob, globasciiranges.  Fix from Grisha Levit
-         <grishalevit@gmail.com>
-
-flags.c
-       - reset_shell_flags: add missing flags, re-initialize history_expansion
-         based on STRICT_POSIX
-
-                                   5/8
-                                   ---
-lib/readline/histexpand.c
-       - history_expand: if any expansion returns 1 from history_expand_internal,
-         indicating that :p was supplied, make it apply to the entire line
-         like tcsh and csh.  Fixes bug reported by Dean Stanton
-         <dstanton@tintri.com>
-
-variables.[ch]
-       - ifsname: move define to variables.h
-
-execute_cmd.c
-       - execute_for_command: check whether or not the word in the for command
-         is IFS; call setifs every time the variable is assigned a value.
-         Fixes bug report from Grisha Levit <grishalevit@gmail.com>
-
-                                  5/16
-                                  ----
-general.c
-       - valid_nameref_value: explicitly handle name == 0 and *name == 0 right
-         away to save calls to legal_identifier
-
-builtins/declare.def
-       - declare_internal: if trying to set nameref attribute on a variable
-         with a null value, flag as invalid assignment, just as if running
-         `declare -n r=""'.  Fixes bug report from Grisha Levit
-         <grishalevit@gmail.com>
-       - declare_internal: when creating a variable with a temporary value
-         (""), use ASS_FORCE in the assignment flags to bypass name validity
-         checks on nameref variable names
-
-variables.c
-       - bind_variable_internal: don't call valid_nameref_value if we're
-         forcing assignment with (flags & ASS_FORCE)
-
-builtins/read.def
-       - read_builtin: handle bind_variable returning NULL when setting REPLY.
-         Report and fix from Grisha Levit <grishalevit@gmail.com>
-
-builtins/setattr.def
-       - set_var_attribute: handle bind_variable returning NULL
-
-lib/sh/tmpfile.c
-       - sh_seedrand(): call srandom() to seed the random number generator
-       - sh_mktmpname, sh_mktmpfd: if we have random(), assume we have
-         srandom() and seed the random number generator. Still looking for
-         better value to see random number generator with
-
-variables.c
-       - check_unbind_variable: use internal_error instead of builtin_error
-
-{execute_cmd,variables}.c
-       - fix some places where bind_variable could return NULL and it was not
-         checked.  Fix from Piotr Grzybowski <narsil.pl@gmail.com>
-
-                                  5/17
-                                  ----
-arrayfunc.c
-       - convert_var_to_{array,assoc}: make sure to turn off nameref attribute,
-         since namerefs can't be arrays
-
-execute_cmd.c
-       - coproc_setvars: if the coproc name names a nameref, resolve the
-         nameref and use it as the name of the coproc.  Suggested by Grisha
-         Levit <grishalevit@gmail.com>
-
-subst.c
-       - command_substitute: don't bother calling QUIT after calling
-         reset_signal_handlers in the child, kill the child with SIGINT in
-         case we just reset the signal handler to SIG_DFL and we should just
-         exit instead of throwing to top level.  Fixes bug reported by
-         Grisha Levit <grishalevit@gmail.com>
-
-                                  5/18
-                                  ----
-variables.c
-       - find_variable_nameref_for_create: find a nameref variable whose value
-         doesn't resolve to an existing variable and see whether or not that
-         value is appropriate for a new variable to be created
-       - find_variable_nameref_for_assignment: find a nameref variable whose
-         value doesn't resolve to an existing variable and see whether or not
-         that value is appropriate for a new variable to be created.
-         Difference between _assignment and _create is that _assignment
-         allows the nameref value to be a subscripted array reference
-
-builtins/setattr.def
-       - set_var_attribute: if variable lookup doesn't return anything, check
-         for a nameref and make sure that any reference value is something we
-         should be working on here, using find_variable_nameref_for_create().
-         If it fails, error out and return, otherwise it's probably a reference
-         to a variable that hasn't been set yet, so let bind_variable take care
-         of that.  Report from Grisha Levit <grishalevit@gmail.com>
-
-arrayfunc.c
-       - bind_array_variable: if find_shell_variable returns NULL, check for a
-         nameref using find_variable_nameref_for_create and create a new array
-         variable with the value if it returns a valid nameref variable.
-         Makes `unset var; declare -n ref=var ; ref[0]=foo' work right.
-         Report from Grisha Levit <grishalevit@gmail.com>
-
-                                  5/19
-                                  ----
-variables.[ch]
-       - unbind_variable_noref: unset a variable NAME without following any
-         nameref chain.  If the first instance of the variable with that name
-         is a nameref, just unset that nameref variable.
-
-builtins/getopts.def
-       - getopts_unbind_variable: if OPTARG is going to be unbound, use
-         unbind_variable_noref to unbind that name even if it is a nameref
-         variable.  Issue raised by Grisha Levit <grishalevit@gmail.com>
-
-execute_cmd.c
-       - coproc_unsetvars: use unbind_variable_noref in case someone sets the
-         coproc _PID variable as a nameref pointing to something read-only or
-         strange.  Issue raised by Grisha Levit <grishalevit@gmail.com>
-
-builtins/set.def
-       - set_ignoreeof: use unbind_variable_noref to unset "IGNOREEOF" and
-         "ignoreeof"
-       - set_posix_mode: use unbind_variable_noref to unset "POSIXLY_CORRECT"
-
-variables.c
-       - make_vers_array: use unbind_variable_noref to unset "BASH_VERSINFO"
-
-lib/sh/shmatch.c
-       - sh_regmatch: use unbind_variable_noref to unset "BASH_REMATCH"
-
-bashline.c
-       - bash_execute_unix_command: use check_unbind_variable to unset
-         READLINE_LINE and READLINE_POINT
-
-pcomplete.c
-       - unbind_compfunc_variables: use unbind_variable_noref to unset
-         COMP_LINE, COMP_POINT, COMP_WORDS, COMP_CWORD, COMP_TYPE, COMP_KEY
-       - gen_shell_function_matches: use unbind_variable_noref to unset
-         COMPREPLY
-
-config-top.h
-       - USE_MKTEMP/USE_MKSTEMP: define by default to use libc version of
-         mktemp and mkstemp in lib/sh/tmpfile.c.  Recommended by Mike
-         Frysinger <vapier@gentoo.org> to fix a FreeBSD problem
-
-configure.ac,config.h.in
-       - mkstemp: check for mkstemp, define HAVE_MKSTEMP if available
-
-config-bot.h
-       - USE_MKSTEMP: #undef if HAVE_MKSTEMP not defined
-
-                                  5/22
-                                  ----
-variables.c
-       - assign_in_env: if appending to a variable's value, make sure we call
-         make_variable_value with the empty string if expand_assignment_string_to_string
-         returns NULL, as do_assignment_internal does.  Fixes bug with
-         `str=''; val=foo ; val+=str printenv val' reported by Grisha Levit
-         <grishalevit@gmail.com>
-       - assign_in_env: if assigning to a nameref variable in the temporary
-         environment, and the nameref has a valid value for assignment (even
-         if the target variable is not set), resolve the nameref and create
-         a variable in the temporary environment named by the nameref's value.
-         If the nameref variable is invisible or isn't set to a valid value
-         for assignment, just create a regular temporary variable with the
-         nameref's name.  This provides a degree of ksh93 compatibility.
-         Suggested by Grisha Levit <grishalevit@gmail.com>
-       - find_variable_nameref_context,find_variable_last_nameref_context:
-         instead of returning NULL when detecting a loop, return a
-         distinguished value: &nameref_maxloop_value
-       - bind_variable: catch nameref_maxloop_value so we can do different
-         things based on whether or not we get it.  Right now we don't do
-         anything different, but we could
-
-                                  5/24
-                                  ----
-lib/readline/display.c
-       - update_line,_rl_move_cursor_relative: save value of MB_CUR_MAX in a
-         variable and use it throughout the functions instead of recomputing it
-         every time (which possibly costs a function call)
-
-                                  5/25
-                                  ----
-builtins/declare.def
-       - declare_internal: only check whether the value being assigned to a
-         nameref variable is a valid identifier if we're not appending to an
-         existing value.  Suggested by Grisha Levit <grishalevit@gmail.com>
-       - declare_internal: add a couple of more checks on nameref names:
-               o make sure `declare -n x[3]=y' is an error
-               o nameref variable self-references now produce a warning when
-                 in function scope
-               o nameref variable self-references using subscripted arrays
-                 (a=a[0]) now produce warnings at function scope and errors at
-                 global scope
-
-                                  5/29
-                                  ----
-builtins/declare.def
-       - declare_internal: use name of readonly variable when calling sh_readonly      
-         instead of name passed as argument to declare in case we've followed
-         a nameref chain
-       - declare_internal: when turning off attributes on a nameref variable
-         after following the nameref chain and turning them off on the target
-         variable, don't allow the readonly attribute to be removed.  This is
-         primarily intended to turn off the nameref attribute.  Issue pointed
-         out by Grisha Levit <grishalevit@gmail.com>
-       - declare_internal: if we are attempting to modify an existing global
-         nameref variable, and the -n option is supplied, operate on the
-         nameref variable itself, not the variable it references
-
-doc/{bash.1,bashref.texi}
-       - change the descriptions of namerefs and declare -n slightly to note
-         that using the -n option to declare will operate on the nameref
-         variable itself rather than the variable it references
-
-variables.c
-       - bind_variable_internal: if trying to assign to a read-only variable,
-         print the error message using the variable's name instead of the
-         name passed to bind_variable in case we followed a nameref
-
-builtins/declare.def
-       - declare_internal: when we're creating a (possibly invisible) variable
-         as part of another operation, assigning NULL, make sure to use
-         ASS_FORCE to avoid warning messages from any existing nameref
-         variables we follow
-       - declare_internal: allow the nameref attribute to be removed from a
-         readonly nameref variable without a value but do not allow it to be
-         removed from a readonly nameref variable that has a value, even if it
-         doesn't reference an existing variable.  This distinction is for ksh93
-         compatibility.  Pointed out by Grisha Levit <grishalevit@gmail.com>
-
-                                  5/31
-                                  ----
-builtins/declare.def
-       - declare_internal: if the call to bind_variable_value fails for some
-         reason, make sure to restore the nameref attribute to flags_on and
-         flags_off before calling NEXT_VARIABLE
-
-subst.c
-       - make_internal_declare: handle += append op
-       - shell_expand_word_list: when transforming assignment statement
-         arguments to `declare', make sure to handle += append op to avoid
-         passing invalid identifiers to declare.  Report by Grisha Levit
-         <grishalevit@gmail.com>
-
-                                   6/1
-                                   ---
-builtins/declare.def
-       - declare_internal: if a nameref assignment fails, only call delete_var
-         to delete the variable if we created it in declare_internal in the
-         first place
-
-general.c
-       - check_selfref: new function, checks a NAME against a VALUE for nameref
-         self-reference
-
-general.h
-       - check_selfref: extern declaration
-
-builtins/declare.def
-       - declare_internal: call check_selfref to determine whether a given NAME
-         and VALUE constitute an invalid nameref variable self-reference
-
-variables.c
-       - bind_variable_internal: call check_selfref to determine whether a
-         given NAME and VALUE constitute an invalid nameref variable self-
-         reference
-
-                                   6/2
-                                   ---
-parse.y
-       - clear_shell_input_line: new function, clears contents of shell_input_line
-         and sets index to 0, but doesn't free it
-
-externs.h
-       - clear_shell_input_line: extern declaration
-
-builtins/evalstring.c
-       - parse_and_execute: call clear_shell_input_line after setting input to
-         string to be executed.  Fixes problem with command substitution and
-         multi-line aliases reported by Grisha Levit <grishalevit@gmail.com>
-
-eval.c
-       - parse_command: only execute PROMPT_COMMAND if the shell is not
-         currently expanding an alias; use the same tests as parse.y:SHOULD_PROMPT
-         and parse.y:prompt_again() use to decide whether or not to print a
-         prompt.  Fixes problems with PROMPT_COMMAND and multi-line aliases
-         reported by Grisha Levit <grishalevit@gmail.com>
-
-builtins/set.def
-       - unset_builtin: changes to fix three problems reported by Grisha
-         Levit <grishalevit@gmail.com>:
-               o if -n is supplied, we should not try to unset a function if
-                 a variable isn't found
-               o unsetting namerefs whose values are array references does
-                 not work
-               o unset -n n[0], where n is a nameref, would unset the
-                 referenced variable instead of `n'
-
-redir.c
-       - redir_varvalue: handle case where nameref var points to subscripted
-         array reference.  Reported by Grisha Levit <grishalevit@gmail.com>
-
-variables.c
-       - bind_variable_value: make sure to call check_selfref only if aflags
-         includes ASS_NAMEREF and not ASS_FORCE.  Reported by Grisha Levit
-         <grishalevit@gmail.com>
-
-general.c
-       - valid_nameref_value: now understands a FLAGS value of 2 to mean that
-         the name will be used to create a variable, so only legal_identifier
-         matters
-
-arrayfunc.c
-       - find_or_make_array_variable: call valid_nameref_value with FLAGS value
-         of 2 to indicate we will be creating a variable.  Fixes mapfile issue
-         reported by Grisha Levit <grishalevit@gmail.com>
-
-                                   6/5
-                                   ---
-builtins/declare.def
-       - declare_internal: only pass ASS_FORCE as part of assignment flags to
-         assignments concerning arrays
-       - declare_internal: when at the global scope, if we resolve a nameref
-         and commit to using the new name, go back to to the beginning of the
-         loop and use the new name in the checks and variable references.
-         Make sure we construct the new name as a straight substitution of
-         the nameref value into the old name, including array subscripts and
-         rebuilding the correct values for `offset' and `value', since they
-         are relative to the original value of name.
-         Fixes several issues with checking use of subscripted array variables
-         as nameref values
-       - declare_internal: when calling assign_array_element, make sure to
-         pass ASS_APPEND if aflags includes it, so things like
-               declare -a var; var[1]=1; declare var[1]+=4
-         append to the value appropriately and var[1] ends up being `14'
-
-arrayfunc.c
-       - valid_array_reference: make sure the array reference is properly
-         terminated after the first subscript; return invalid if there is
-         anything following the closing `]'
-
-                                  6/12
-                                  ----
-variables.c
-       - bind_variable_internal: if asked to perform an array subscript
-         assignment on a nameref variable, display a warning and remove the
-         nameref attribute (as bash-4.3 did).  Reported by Dan Douglas
-         <ormaaj@gmail.com>
-
-                                  6/14
-                                  ----
-test.c
-       - posixtest: handle four-argument case where argv[1] == '(' and
-         argv[4] == ')' by performing two-argument test on $2 and $3.
-         Reported by Joerg Schilling <Joerg.Schilling@fokus.fraunhofer.de>
-
-                                  6/15
-                                  ----
-variables.c
-       - sv_ignoreeof: make sure ignoreeof is set only if IGNOREEOF is set and
-         has a value (no `local IGNOREEOF'). Reported by Grisha Levit
-         <grishalevit@gmail.com>
-       - sv_strict_posix: make sure posixly_correct is set only if
-         POSIXLY_CORRECT is set and has a value.  Reported by Grisha Levit
-         <grishalevit@gmail.com>
-
-                                  6/16
-                                  ----
-builtins/declare.def
-       - declare_internal: analogous to 6/12 change; when performing an array
-         subscript assignment on a nameref, display a warning, remove the
-         nameref attribute, and go on
-
-                                  6/21
-                                  ----
-execute_cmd.c
-       - shell_execve: make sure errno is (re)set appropriately before
-         returning error value on exec format error
-
-                                  6/23
-                                  ----
-subst.c
-       - param_expand: when expanding $* in a context where splitting is not
-         desired (pflags & PF_ASSIGNRHS), make sure to quote the word and the
-         included separators.  Reported by Dan Douglas <ormaaj@gmail.com>
-
-                                  6/30
-                                  ----
-configure.ac
-       - release version is now `beta2'
-
-execute_cmd.c
-       - execute_simple_command: even if already_making_children is non-zero,
-         don't call wait_for if last_made_pid == NO_PID.  Indirectly inspired
-         by report from Nicolas Vivet <nicolas@nzx.io>
-
-                                   7/2
-                                   ---
-subst.c
-       - expand_word_internal: when adding an IFS character to the accumulated
-         string, don't quote it if word expansion is not going to be
-         performed ((word->flags & (W_NOSPLIT|W_NOSPLIT2)) == 0) in the
-         default case.  This was already the case everwhere else, when we did
-         `goto add_ifs_character;'.  Fixes bug reported by Ibrahim M. Ghazal
-         <imgx64@gmail.com>
-
-subst.[ch],arrayfunc.c
-       - string_list_dollar_at: now takes a new third argument, currently
-         reserved for future use; changed callers and declaration
-
-                                   7/7
-                                   ---
-[bash-4.4-beta2 frozen]
-
-                                   7/9
-                                   ---
-bashline.c
-       - check_redir: make sure that index is > 0 before checking previous
-         char; fixes out of bounds read reported by Hanno Böck
-         <hanno@hboeck.de>
-
-                                  7/16
-                                  ----
-subst.c
-       - parameter_brace_expand: if ${array[@]} or ${array[*]} is supplied
-         with an unset (or empty) array, and -u is enabled, don't make it
-         an unbound variable error, like $@ or $* when there are no
-         positional parameters.  Based on report from Ian Allen
-         <idallen@idallen-fibe.dyndns.org>
-
-lib/readline/signals.c
-       - rl_pending_signal(): return the number of any signal readline has
-         caught but is waiting to handle
-
-lib/readline/callback.c
-       - rl_persistent_signal_handlers: new variable, restores readline-6.2
-         signal handler semantics: installed at rl_callback_handler_install
-         time and removed with rl_clear_signals when a complete line has
-         been read
-       - _rl_callback_newline: call rl_set_signals if rl_persistent_signal_handlers
-         is non-zero
-       - rl_callback_read_char: install signal handlers with rl_set_signals
-         if rl_persistent_signal_handlers is 0 (the default)
-       - CALLBACK_READ_RETURN: uninstall signal handlers with rl_clear_signals
-         only if rl_persistent_signal_handlers is 0 (the default)
-
-lib/readline/readline.h
-       - rl_pending_signal: new extern declaration
-       - rl_persistent_signal_handlers: new extern declaration
-
-                                  7/19
-                                  ----
-execute_cmd.c
-       - execute_while_or_until: make sure we decrement `continuing' the way
-         we decrement `breaking' if the loop test indicates we will be
-         breaking out of the loop.  That keeps `until continue' from
-         keeping `continuing' set to 1.  Reported by Dan Douglas
-         <ormaaj@gmail.com>
-
-                                  7/20
-                                  ----
-trap.c
-       - run_pending_traps,_run_trap_internal: save and restore temporary_env,
-         set temporary_env to 0 before trap runs so traps don't inherit a
-         command's temporary env.  Fixes bug with IFS assignment in tempenv
-         and trap reported by Andriy Martynets <martynets@volia.ua>
-
-jobs.c
-       - run_sigchld_trap: save and restore temporary_env, set temporary_env
-         to 0 before trap runs so traps don't inherit a command's temporary
-         env (see above)
-
-                                  7/21
-                                  ----
-execute_cmd.c
-       - execute_function: unwind-protect function_line_number, in case we
-         are executing a function inside another function.  Reported by
-         Grisha Levit <grishalevit@gmail.com> in context of evaled functions
-         and DEBUG traps
-       - execute_arith_for_command,execute_arith_command,execute_simple_command,
-         execute_cond_command: make sure line_number doesn't go < 0 when
-         adjusting it by function_line_number
-
-                                  7/23
-                                  ----
-subst.c,command.h
-       - move the PF_ constants to command.h so other files can see them, now
-         that PF_ASSIGNRHS has meaning to string_list_dollar_at
-
-arrayfunc.h
-       - AV_ASSIGNRHS: new flag, indicate that ${a[@]} is being expanded on
-         the RHS of an assignment statement
-
-arrayfunc.c
-       - array_value_internal: if AV_ASSIGNRHS passed for ${a[@]}, pass
-         PF_ASSIGNRHS to string_list_dollar_at to support args separated by
-         spaces even if $IFS does not have the default value.  Reported by
-         Dan Douglas <ormaaj@gmail.com>
-
-subst.c
-       - string_list_dollar_at: if FLAGS argument includes PF_ASSIGNRHS, obey
-         rules for $@ on the RHS of an assignment statement: expand to
-         postitional parameters separated by spaces no matter what the first
-         character of $IFS is.  Reported by Dan Douglas <ormaaj@gmail.com>
-       - parameter_brace_expand_word: pass AV_ASSIGNRHS as flags value to
-         array_value if PF_ASSIGNRHS is set and we are expanding an array
-         variable subscripted by @ or *
-       - param_expand: pass pflags to string_list_dollar_at in case it contains
-         PF_ASSIGNRHS
-       - expand_word_internal: if we have an assignment statement argument to
-         a declaration builtin (W_ASSIGNARG), turn on W_ASSIGNRHS when we see
-         the `=' to enable special $@ behavior
-       - expand_word_internal: if W_ASSIGNARG enabled in word flags, pass that
-         flag and W_ASSIGNRHS to recursive call to expand_word_internal when
-         expanding double-quoted string; handles "$@" when IFS is not the
-         default value and word splitting will not be performed
-
-subst.c
-       - expand_word_internal: change case that handles '' (single-quoted
-         empty string) to only discard it if we will not be performing word
-         splitting (W_NOSPLIT|W_NOSPLIT2), since we need to add a quoted null
-         argument if the subsequent characters will cause word splitting.
-         This is how "" (double-quoted empty string) is handled after a bug
-         fix back in August 2010.  Reported by Grisha Levit
-         <grishalevit@gmail.com>, fix for Posix interp 888
-
-                                  7/27
-                                  ----
-subst.c
-       - param_expand: change fix from 6/23 (expanding $* in a context where
-         word splitting is not performed) to make sure that $* expands to
-         something before trying to quote the string.  Bug and fix from
-         Andreas Schwab <schwab@suse.de>
-
-lib/readline/bind.c
-       - _rl_get_string_variable_value: fix a cut-and-paste error that caused
-         the emacs mode string to be displayed for both vi insert and command
-         mode strings.  Report and fix from Steve Jones <sjml@slohj.org>
-
-                                  7/28
-                                  ----
-lib/readline/display.c
-       - update_line: we can't use PROMPT_ENDING_INDEX unless we're testing
-         against _rl_last_c_pos; if we are testing buffer indices, we need to
-         use prompt_last_invisible directly.  Fixes mode string redisplay issue
-         with short prompt strings reported by Steve Jones <sjml@slohj.org>
-
-                                   8/4
-                                   ---
-nojobs.c
-       - without_job_control: new function, resets child state that's
-         eventually used to decide whether or not to wait_for children
-
-execute_cmd.c
-       - initialize_subshell: call without_job_control in both the
-         JOB_CONTROL and no job control paths so we can reset the state in
-         subshells that will not cause them to wait_for children
-         inappropriately.  Fixes bug reported by Dan Cross <crossd@gmail.com>
-
-                                   8/5
-                                   ---
-configure.ac
-       - release version is now `rc2'
-
-bashline.c
-       - command_word_completion_function: if direxpand is set, make sure to
-         run hint_text through bash_directory_completion_hook, since
-         readline will do that and we want to be able to match the results
-         readline returns.  Fixes bug reported by Pat Somaru
-         <tuf18542@temple.edu>
-
-command.h
-       - W_COMPLETE: new flag word value
-       - PF_COMPLETE: new flags value for param_expand
-
-subst.h
-       - SX_STRIPDQ: new flag, used for string_extract_double_quoted
-
-bashline.c
-       - bash_filename_stat_hook,bash_directory_completion_hook: pass W_COMPLETE
-         flag to expand_prompt_string
-
-subst.c
-       - expand_word_internal: if W_COMPLETE in word->flags, pass PF_COMPLETE
-         to param_expand
-       - param_expand: if PF_COMPLETE in pflags, pass SX_COMPLETE to
-         extract_command_subst.  This allows `"$(echo ~/' to perform
-         completion successfully
-       - string_extract_double_quoted: turn third argument into a flags arg,
-         old STRIPDQ is now set if flags&SX_STRIPDQ
-       - string_extract_double_quoted: changed callers, if third argument was
-         1, pass SX_STRIPDQ instead
-       - expand_word_internal: if W_COMPLETE in word->flags, pass SX_COMPLETE
-         in flags to string_extract_double_quoted for case '"'
-       - string_extract_double_quoted: if SX_COMPLETE in flags, pass it to
-         extract_command_subst
-       - expand_word_internal: if W_COMPLETE in word->flags, make sure W_COMPLETE
-         is in temp word passed to recursive call to expand_word_internal to
-         expand double-quoted string.  Fixes bug reported by John Passaro
-         <john.a.passaro@gmail.com>
-
-                                   8/9
-                                   ---
-[bash-4.4-rc2 frozen]
-
-                                  8/10
-                                  ----
-subst.c
-       - sub_append_string: use size_t variable to store string length to
-         avoid integer overflow.  Report from Siteshwar Vashisht
-         <svashisht@redhat.com>
-       - sub_append_string: `size' argument is now pointer to size_t; changed
-         istring_index in expand_word_internal to accommodate change
-
-lib/sh/ufuncs.c
-       - include "posixselect.h" if HAVE_SELECT is defined, make sure that
-         fd_set and the rest are defined
-
-                                  8/11
-                                  ----
-lib/readline/histexpand.c
-       - history_tokenize_word: use ISDIGIT instead of isdigit for more
-         argument checking
-       - "chardefs.h": include for ISDIGIT define and <ctype.h>.  Fix from
-         Mike Frysinger <vapier@gentoo.org>
-
-lib/sh/eaccess.c,externs.h
-       - sh_eaccess: first argument now const char *
-       - sh_stataccess,sh_euidaccess: first argument now const char *, since
-         sh_stat and sh_eaccess call them.
-         Fix from Mike Frysinger <vapier@gentoo.org>
-
-lib/glob/glob.c
-       - sh_eaccess: change local prototype
-
-general.[ch]
-       - all_digits,legal_identifier,valid_nameref_value,importable_function_name,
-         exportable_function_name,check_binary_file,file_exists,file_isdir,
-         file_iswdir,same_file,make_absolute,valid_nameref_value: first
-         argument (always identifier or filename) is now a `const char *';
-         some second filename arguments now `const char *'.
-         Fix from Mike Frysinger <vapier@gentoo.org>
-
-configure.ac,config.h.in
-       - uintptr_t: make sure it's defined to an integer type wide enough to
-         hold a pointer
-
-lib/sh/tmpfile.c
-       - sh_seedrand: use `uintptr_t' to cast pointer value to int value,
-         instead of allowing truncation to take place, since srandom takes
-         an `unsigned int'.
-         Fix from Mike Frysinger <vapier@gentoo.org>
-
-arrayfunc.[ch]
-       - valid_array_reference,array_variable_name,array_variable_part,
-         array_value_internal,array_value,get_array_value: first argument
-         (always variable name) now a `const char *'
-         Fix from Mike Frysinger <vapier@gentoo.org>
-
-                                  8/19
-                                  ----
-print_cmd.c
-       - xtrace_print_word_list: if (xtflags & 2), don't try to quote the
-         words in the LIST argument.  Intended to be used in places where
-         the list has not yet been expanded
-       - xtrace_print_for_command_head: call xtrace_print_word_list with
-         flags argument of 2.  Fixes issue reported by Aharon Robbins
-         <arnold@skeeve.com>
-       - xtrace_print_select_command_head: call xtrace_print_word_list with
-         flags argument of 2
-
-                                  8/21
-                                  ----
-lib/sh/netopen.c
-       - netopen: fix memory leak by freeing allocated path before error
-         return.  Fix from Dmitry Goncharov <dgoncharov@users.sf.net>
-
-doc/{bash.1,bashref.texi}
-       - change conditional commands description to make it clearer that
-         bash doesn't emulate /dev/fd if the OS provides it
-
-                                  8/22
-                                  ----
-braces.c
-       - expand_amble: free partial and tem on failure to allocate memory
-         for merged partial+result strvec.  Fix from Dmitry Goncharov
-         <dgoncharov@users.sf.net>
-
-                                  8/23
-                                  ----
-jobs.c
-       - wait_for: don't call get_tty_state when a job finishes if we're
-         running it as part of programmable completion.  We test
-         rl_readline_state.  Fixes bug reported by Jaro Punta
-         <silly8888@gmail.com>
-
-                                  8/24
-                                  ----
-subst.c
-       - pat_subst: fix memory leak (mstr).  Fix from Dmitry Goncharov
-         <dgoncharov@users.sf.net>
-       - split_at_delims: fix memory leak (d2).  Fix from Dmitry Goncharov
-         <dgoncharov@users.sf.net>
-
-                                  8/26
-                                  ----
-subst.c
-       - match_upattern,match_wpattern: make sure that a trailing `*' is
-         not escaped (preceded by an odd number of backslashes) before we
-         append a `*' when checking whether a pattern matches anywhere in
-         the string
-
-lib/readline/{input,signals}.c
-       - protect instances of SIGQUIT with #ifdef SIGQUIT; apparently
-         MinGW doesn't define it
-       - protect instances of SIGHUP with #ifdef SIGHUP; apparently
-         MinGW doesn't define it.  From a report from Simon Sobisch
-         <simonsobisch@gnu.org>
-
-xmalloc.o
-       - allocerr: only try to find the break and report it if we're using
-         the bash malloc; there's no guarantee that any other malloc is
-         using sbrk()
-
-doc/{bash.1,bashref.texi}
-       - quote removal: add paragraph mentioning quote removal to beginning
-         of expansions section, referencing later paragraph.  Report from
-         Michel Lanne <michel.lanne@gmail.com>
-
-                                  8/30
-                                  ----
-lib/readline/input.c
-       - protect instances of SIGALRM and SIGWINCH with #ifdef; apparently
-         MinGW doesn't define them.  From a report from Simon Sobisch
-         <simonsobisch@gnu.org>
-
-subst.c
-       - SPECIAL_VAR: make sure name is not the empty string before going on,
-         empty strings can result in unitialized reads
-       - CHECK_STRING_OVERRUN: semi-general macro to use in *extract* and
-         similar functions to to check whether a function called to parse an
-         embedded construct (like a backquoted command substitution) doesn't
-         consume the entire string because it's unterminated
-       - skip_double_quoted: make sure other extraction functions don't
-         consume the entire string (which they can if the construct is
-         unterminated) before incrementing the index and going on.  Uses
-         CHECK_STRING_OVERRUN
-       - extract_dollar_brace_string: check for unterminated embedded
-         constructs consuming the entire string with CHECK_STRING_OVERRUN ('`')
-       - skip_matched_pair: use CHECK_STRING_OVERRUN to make sure unterminated
-         embedded "`", $(, ${ don't cause out-of-bounds reads
-
-parse.y
-       - parse_comsub: when parsing a here-document delimiter, make sure we
-         don't try to use `nestret' after freeing it.  Fixes bug reported by
-         Franco Costantini <franco.costantini.20@gmail.com>
-
-[bash-4.4 frozen]
-
-                                  9/10
-                                  ----
-trap.c
-       - run_debug_trap: only give the terminal to pipeline_pgrp if
-         subshell_environment doesn't include SUBSHELL_ASYNC|SUBSHELL_PIPE.
-         Fixes bug reported by Matthew Giassa <matthew@giassa.net>
-
-execute_cmd.c
-       - execute_simple_command: if user_subshell is set, check and set
-         SUBSHELL_ASYNC if asynchronous is set as well as setting
-         SUBSHELL_PAREN
-
-                                  9/17
-                                  ----
-builtins/common.c
-       - display_signal_list: if 0 is supplied as an argument to kill -l,
-         display a signal-out-of-range error.  Fixes bug reported by
-         Martijn Dekker <martijn@inlv.org>
-
-                                  9/18
-                                  ----
-print_cmd.c
-       - print_heredoc_bodies: take a list of redirections, all here documents,
-         and print the here-document bodies including the ending delimiter,
-         followed by a newline
-       - print_redirection_list: print the heredoc headers the first time
-         through the list of redirections so we print them in the same left-
-         to-right order they're supplied; print the bodies and delimiters with
-         print_heredoc_bodies after we print all the redirections if we're
-         not printing a list of commands (printing_connection == 0).  Fix for
-         problem reported by Isabella Parakiss <izaberina@gmail.com>
-       - print_deferred_heredocs: don't print heredoc headers, since they're
-         now printed in print_redirection_list
-       - print_deferred_heredocs: use print_heredoc_bodies
-
-                                  9/20
-                                  ----
-builtins/mapfile.def
-       - readarray: update usage synopsis to include -d delim.  Report and
-         fix from jhankins@homewood.k12.al.us
-
-test.c
-       - test_binop: if op[0] == '-', make sure op[1] != 0 before checking
-         op[2] or op[3].  Fixes out-of-bounds read reported by Franco
-         Costantini <franco.costantini.20@gmail.com>
-
-parse.y
-       - cond_term: if yylval.word->word[0] == '-' make sure word[1] != 0
-         before checking word[2] and calling test_unop.  Fixes out-of-bounds
-         read reported by Franco Costantini <franco.costantini.20@gmail.com>
-       - make sure to check all instances of the return value of the
-         simple_command production before trying to hook redirections onto it,
-         since it can potentially return NULL.
-         Reported by Franco Costantini <franco.costantini.20@gmail.com>
-
-                                  9/21
-                                  ----
-parse.y
-       - token_is_assignment: make sure to check that the return value from
-         assignment() finds the `=' we just added at index I to avoid false
-         positives from g=g=g=g=g=g=().  Reported by Franco Costantini
-         <franco.costantini.20@gmail.com>
-
-                                  9/22
-                                  ----
-parse.y
-       - token_is_assignment: if we're not using the bash malloc (which has
-         guard bytes after the requested allocation size), use a new
-         buffer so we can make sure it's big enough to hold the current
-         token and at least two additional characters.  Reported by
-         Franco Costantini <franco.costantini.20@gmail.com>
-
-                                  9/23
-                                  ----
-execute_command.c
-       - execute_in_subshell: call without_job_control for both job control
-         and non-job-control builds to avoid waiting for last_made_pid
-         inherited from parent shell.  Related to fix from 8/4 to
-         initialize_subshell.  Fixes bug reported by Martijn Dekker
-         <martijn@inlv.org>
-
-builtins/declare.def
-       - local_builtin: allow `local --help' to work even when not executing
-         a function. Suggestion from Norm Abramovitz <norm@starkandwayne.com>
-
-                                  9/25
-                                  ----
-builtins/printf.def
-       - bexpand: if passed a null or empty string, return a newly-allocated
-         empty string (so the return value can always be freed) instead of
-         NULL.
-       - printstr: if passed a null string, treat it as if it were an empty
-         string so any precision or fieldwidth arguments are handled
-         correctly.  Report from isabella parakiss <izaberina@gmail.com>
-
-subst.c
-       - skip_matched_pair: make the flags argument of 1 affect whether or
-         not backslash can quote characters in the string, so it affects
-         all quoting mechanisms
-
-arrayfunc.c
-       - unbind_array_element: now takes a third (flags) argument; flags&1
-         means to not expand an associative array index. This is only called
-         from a shell builtin context, which means the argument should have
-         already undergone word expansion, so it should be ok.  Will still
-         be a problem for uses like "unset -v 'var[$ind]'", quoted to avoid
-         globbing
-       - valid_array_reference: pass second flags argument to skipsubscript;
-         still set to 0 by all callers
-
-arrayfunc.h
-       - unbind_array_element: updated prototype
-
-builtins/set.def
-       - unset_builtin: add third argument of 1 to unbind_array_element calls
-         [TEMPORARILY DISABLED]
-       - unset_builtin: call valid_array_reference with second arg of 1 to
-         handle unmatched pairs of quotes and [/]
-
-array.c
-       - array_reference: optimize access locality as well as sequential
-         access by adding ability to start from last-accessed element and move
-         backwards or forwards depending on the desired index.  Inspired by
-         report from Tom McCurdy <tom.j.mccurdy@gmail.com> and followup from
-         Christian Franke <Christian.Franke@t-online.de>
-
-variables.c
-       - all_array_variables: include associative arrays, not just indexed
-         arrays.  Reported by Grisha Levit <grishalevit@gmail.com>
-
-execute_cmd.c
-       - execute_disk_command: if we're optimizing out the fork (CMD_NO_FORK),
-         decrement the shell level so we don't end up incrementing it twice.
-         We should decrement the shell level for an implicit exec like an
-         explicit one.  Reported by Stephane Chazelas
-         <stephane.chazelas@gmail.com>
-
-builtins/exec.def
-       - exec_builtin: don't bother to decrement the shell level if we are
-         already in a `(command)' subshell.  Reported by Stephane Chazelas
-         <stephane.chazelas@gmail.com>
-
-lib/readline/macro.c
-       - macro_level: count of macro nesting level, maintained by
-         _rl_push_executing_macro and _rl_pop_executing macro
-       - _rl_with_macro_input: if current nesting level exceeds
-         MAX_MACRO_LEVEL, abort the current command line with _rl_abort_internal
-         and return to the top level.  Reported by Christian Klomp
-         <christianklomp@gmail.com>
-
-lib/readine/history.c
-       - add_history: if allocating the history list for the first time,
-         make sure the max history list size isn't so large that it will
-         cause allocation errors.  Cap it at MAX_HISTORY_INITIAL_SIZE
-         (8192).  Reported by Sean Zha <freeman_cha@hotmail.com>
-
-jobs.c
-       - wait_for: if a foreground job with job control enabled is killed by a
-         SIGINT and sourcelevel != 0, act as if we received the SIGINT so the
-         file sourcing can be terminated.  Reported by PePa
-         <peterkelly@passchier.net>
-
-                                  9/26
-                                  ----
-subst.c
-       - read_comsub: only warn once for null bytes in command substitution
-         output, instead of once for every null byte
-
-arrayfunc.c
-       - array_variable_part: now takes a `flags' argument; changed all callers
-         to initially pass 0
-       - array_variable_name: now takes a `flags' argument; changed all callers
-         to initially pass 0
-       - array_variable_name: pass `flags' argument to skipsubscript instead
-         of just passing 0
-
-arrayfunc.h
-       - array_variable_{name,part}: added new argument to prototypes
-
-                                  9/29
-                                  ----
-bashline.c
-       - bash_directory_completion_hook: don't bother to try and expand a
-         ${ or $( that isn't complete; expand_prompt_string will complain.
-         Fixes reports from John Passaro <john.a.passaro@gmail.com> and
-         Valentin Bajrami <valentin.bajrami@gmail.com>
-
-lib/readline/history.c
-       - _hs_append_history_line: use a strategy that attempts to avoid
-         realloc copying memory to a newly-allocated block if the history
-         line we're appending to gets `too long' (currently 256 bytes).
-         We reallocate in powers of 2 starting at 512, and rely on realloc
-         not allocating a new block and copying into it if the size is the
-         same as the last call to realloc.  Addresses issue raised by
-         Hubert Schmid <h.schmid@gmx.de>
-
-trap.h
-       - check_signals: new extern declaration
-       - trapped_signal_received: new extern declaration
-
-builtins/read.def
-       - read_builtin: if one of the zread* functions returns < 0 (which
-         usually only happens in Posix mode), make sure we call check_signals()
-         before eventually calling run_pending_traps() because zread() isn't
-         going to call it
-       - include trap.h for correct extern functions and variable declarations
-
-lib/sh/zread.c
-       - zread: if executing a builtin, call check_signals_and_traps() for
-         backwards compatibility.  If not, call check_signals() only, because
-         we don't want to run traps during, for instance, reading command
-         substitution output.  Fixes race condition bug reported by Luiz Angelo
-         Daros de Luca <luizluca@gmail.com>
-
-                                  9/30
-                                  ----
-subst.c
-       - command_substitute: reset parse_and_execute_level to 0 in the child
-         process, since it's independent of the other parse_and_execute
-         calls.  Adds command substitution inside other parse_and_execute
-         calls optimizations to suppress forks, as suggested by
-         Martijn Dekker <martijn@inlv.org>
-
-                                  10/3
-                                  ----
-configure.ac
-       - SHOBJ_STATUS: make sure it defaults to unsupported and is substituted
-         if the shobj-conf script isn't run.  Fixes `make install' bug with
-         a minimal config reported by Andrew Tomazos <andrewtomazos@gmail.com>
-
-                                  10/5
-                                  ----
-support/shobj-conf
-       - darwin: set compatibility_version for a shared build of the readline
-         library (the standalone readline distribution shares this file) to
-         $(SHLIB_MAJOR)$(SHLIB_MINOR).  Recommendation from Max Horn
-         <max@quendi.de>
-
-                                  10/6
-                                  ----
-array.h
-       - array_first_index: new convenience define
-
-array.c
-       - ADD_AFTER: new define, complement of ADD_BEFORE
-       - UNSET_LASTREF: now takes an array as an argument, prepping for move
-         of lastref pointer into the array struct
-       - array_insert: check whether we are adding at the beginning of the
-         array and take a fast path if so
-       - array_insert: use same strategy as array_reference to find the place
-         to insert, starting from the last-referenced element and moving
-         forward or back from there; use ADD_AFTER if moving backward
-       - array_insert: if replacing an existing element, just replace the
-         value with new->value instead of the entire element
-       - array_reference: short-circuit quickly if looking for an element
-         before the first assigned index
-       - array_reference: if we don't find the element, leave lastref pointing
-         to the closest element under the assumption we will be assigning or
-         looking for something close
-       - array_reference: take advantage of ordered indexes to short-circuit
-         when looking for element that is not set
-
-                                  10/7
-                                  ----
-array.c
-       - array_remove: short-circuit if asked to remove index after max
-         index or before first index
-
-                                  10/10
-                                  -----
-lib/malloc/malloc.c
-       - internal_realloc: if we are requesting reallocation to the same size
-         as the block's current size, short-circuit and return `mem' right
-         after doing bounds check
-       - internal_realloc: if we are reducing the size of an allocation, and
-         the new size fits in the next lower bin, just keep the same block
-         and adjust the size, so we can avoid some copies
-
-parse.y
-       - set_line_mbstate: keep track of the allocated size of
-         shell_input_line_property, only request reallocation if the size
-         increases, but don't let it get too big
-
-                                  10/11
-                                  -----
-jobs.c
-       - wait_for_background_pids: make sure we wait for pid in
-         last_procsub_child since it's not found in any job -- still needs
-         more work to wait for multiple process substitutions
-
-subst.c
-       - process_substitute: if make_child fails, make sure we call
-         restore_pipeline to undo the previous save_pipeline()
-
-                                  10/15
-                                  -----
-subst.c
-       - process_substitute,command_substitute: leave subshell_level (reflected
-         as $BASH_SUBSHELL) intact for any exit trap instead of decrementing
-         it.  Suggested by Martijn Dekker <martijn@inlv.org>
-
-builtins/evalstring.c
-       - optimize_subshell_command: new function, framework for optimizing
-         out forks for command that have already forked and are executing
-         in a subshell. Not used yet
-
-expr.c
-       - readtok: if we have a post-increment or post-decrement, and the
-         previous token is not a string, check whether the previous token is
-         a number that results from a pre-increment or pre-decrement, and
-         make that an error.  Report from Conrad Hoffmann <ch@bitfehler.net>
-
-                                  10/16
-                                  -----
-aclocal.m4
-       - BASH_JOB_CONTROL_MISSING: convert from AC_TRY_RUN to AC_TRY_COMPILE
-         with existing set of preprocessor defines, so it can work when
-         cross-compiling.  Suggested by Felix Janda <felix.janda@posteo.de>
-
-                                  10/19
-                                  -----
-variables.c
-       - get_bashpid: BASHPID is no longer readonly; assignments to it are
-         just ignored.
-
-doc/{bash.1,bashref.texi}
-       - BASHPID: note that assignments are ignored and unsetting BASHPID
-         causes it to lose its special properties
-
-                                  10/28
-                                  -----
-builtins/pushd.def
-       - popd_builtin: make sure to check the normalized stack offset
-         (i.e., negatives counting back from the end of the stack) is within
-         bounds before trying to free that stack entry.  Report from
-         Fernando Muñoz <fernando@null-life.com>
-
-lib/readline/histfile.c
-       - chown: protect calls with HAVE_CHOWN.  Fixes for MinGW{64,32} from
-         J. Peter Mugaas <jpmugaas@suddenlink.net>
-
-lib/readline/colors.c
-       - S_ISDIR: add define if missing
-       - S_ISUID, S_ISGID, S_ISLNK, S_ISSOCK: don't use unless defined.
-         Fixes for MinGW{64,32} from J. Peter Mugaas <jpmugaas@suddenlink.net>
-
-bashhist.c
-       - current_command_line_comment: set to the most recent line in a
-         possibly multi-line command that contains a shell comment; set in
-         maybe_add_history and bash_add_history to either the current
-         command number or -2
-       - maybe_add_history: set current_command_line_comment for first line
-         of command
-       - bash_add_history: chars_to_add set to "\n" if the current command line
-         is one greater than the previous line containing a comment
-         (current_command_line_comment).  Fixes complaint from back in
-         January, 2016 from Dave Rutherford <dave@evilpettingzoo.com>
-
-array.h
-       - lastref: move last-referenced pointer into each array struct, so all
-         arrays can have reference locality
-
-array.c
-       - array_create: set lastref element to 0
-       - array_copy: if copying the lastref in array a, set the new lastref
-         in the copy to the same element
-       - IS_LASTREF, LASTREF_START, LASTREF, INVALIDATE_LASTREF, SET_LASTREF,
-         UNSET_LASTREF: change to use new array `lastref' member
-
-pathexp.c
-       - quote_string_for_globbing: if quoting for a regexp, make sure to
-         skip and copy a leading `^' in a bracket expression, and skip and
-         copy a subsequent `]' (after an optional `^'), so that leading
-         bracket doesn't close the bracket expression.  Report from
-         Stephane Chazelas <stephane.chazelas@gmail.com>
-
-                                  10/29
-                                  -----
-subst.c
-       - extract_delimited_string: add calls to CHECK_STRING_OVERRUN for
-         $( inside $((, nested OPENERs, nested ALT_OPENERs, and backquotes
-       - skip_to_delim: add calls to CHECK_STRING_OVERRUN for $(, ${,
-         process substitution
-       - extract_dollar_brace_string: add calls to CHECK_STRING_OVERRUN for
-         $(
-       - extract_dollar_brace_string: use skipsubscript to skip over the
-         array subscript in ${var[sub]} (non-quoted case uses string_extract,
-         which already uses skipsubscript).  Tagged for bash-5.0
-
-                                  10/30
-                                  -----
-variables.c
-       - EPOCHSECONDS: new dynamic variable, time in seconds since Unix
-         epoch; assignments are ignored.  Can be used on systems where
-         strftime() doesn't support '%s'
-       - EPOCHREALTIME: new dynamic variable, time in seconds since Unix
-         epoch with microsecond granularity
-
-doc/{bash.1,bashref.texi}
-       - EPOCHSECONDS documentation
-       - EPOCHREALTIME documentation
-
-execute_cmd.c
-       - decpoint: moved to locale.c, renamed locale_decpoint; changed callers
-
-{bashintl,externs}.h
-       - locale_decpoint: extern declaration or #define if support for
-         localeconv() not there
-
-                                  10/31
-                                  -----
-lib/malloc/malloc.c
-       - posix_memalign: add new posix-mandated interface
-
-examples/loadables/rm.c
-       - rm: minimal loadable builtin, removes files and directories, only
-         handles -r and -f options.  Original from Tim Ruehsen
-         <tim.ruehsen@gmx.de>, heavily rewritten for inclusion as loadable
-
-examples/loadables/Makefile.in
-       - rm: add rules to build rm as one of the `other' targets
-
-examples/loadables/stat.c
-       - stat: new loadable builtin that takes a filename and loads the info
-         returned by stat(2) into an associative array specified by the -A
-         argument (default STAT)
-
-                                  11/1
-                                  ----
-variables.c
-       - BASH_ARGV0: new dynamic variable, returns $0 on reference and sets
-         $0 on assignment.  From a suggestion from  Rocky Bernstein <rocky@gnu.org>
-         a few years ago
-
-doc/{bash.1,bashref.texi}
-       - BASH_ARGV0: document
-
-                                  11/2
-                                  ----
-lib/glob/sm_loop.c
-       - parse_collsym: make sure to not return an out-of-bounds read if a
-         collating symbol is unterminated.  Fixes OOB read reported by
-         Jerzy Kramarz <op7ica@gmail.com>
-       - brackmatch: after incrementing p, before checking whether it's a
-         character range, check whether *p was NULL before the increment
-         and short-circuit the bracket expression if it is
-
-jobs.c
-       - discard_last_procsub_child: new function, safely discards
-         last_procsub_child and sets it to NULL
-
-subst.c
-       - process_substitute: call discard_last_procsub_child instead of
-         calling discard_pipeline directly.  Fixes bug reported by
-         Christian Weisgerber <naddy@mips.inka.de>
-
-                                  11/3
-                                  ----
-shell.h
-       - EX_DISKFALLBACK: new special return status available to builtins;
-         means to attempt to execute a disk command with the same name as
-         the builtin
-
-examples/loadables/rm.c
-       - if we see the -i option, return EX_DISKFALLBACK
-
-execute_cmd.c
-       - execute_simple_command: if executing a builtin returns EX_DISKFALLBACK,
-         try running execute_disk_command instead 
-
-bashline.c
-       - shell_expand_line: use expand_word to expand the readline line
-         buffer, which allows us to pass flags with the word. If a numeric
-         argument is supplied, do not perform quote removal (pass
-         Q_HERE_DOCUMENT since here-doc quoting does the right thing) and
-         do not perform command or process subsitution.  From a suggestion
-         by Dabrien 'Dabe' Murphy <dabe@dabe.com> based on an old bug-bash
-         discussion
-
-subst.c
-       - expand_word_internal: note that we have added a quoted IFS char to
-         istring by setting sentinel has_quoted_ifs.  Usually we only add
-         one if we are not going to be performing word splitting, but we
-         will not perform word splitting if there's no expansion, so we need
-         to take care of that case
-       - expand_word_internal: when performing final word split, if there are
-         no expansions but has_quoted_ifs is non-zero, call remove_quoted_ifs()
-         to remove any quoted ifs characters we added while processing
-       - remove_quoted_ifs: new function, removes CTLESC chars preceding
-         (single-byte) chars in IFS. Used when we are not performing word
-         splitting.  Fixes bug reported by Martijn Dekker <martijn@inlv.org>
-
-                                  11/4
-                                  ----
-lib/readline/macro.c
-       - _rl_peek_macro_key: return the next character from the current
-         keyboard macro; the next character from the `next' keyboard macro,
-         if there is one, if at the end of the current macro; or 0 to
-         indicate that we are at the end of a keyboard macro sequence
-
-lib/readline/rlprivate.h
-       - _rl_peek_macro_key: extern declaration
-
-lib/readline/readline.c
-       - _rl_dispatch_subseq: add test for ESC at the end of a keyboard macro,
-         which should cause the keyboard timeout for ESC to kick in.  The
-         previous test didn't run the timeout code if executing from a macro,
-         even if we had read the last character of the macro.  Fixes bug
-         reported by Clark Wang <clarkw@vmware.com>
-
-lib/glob/sm_loop.c
-       - GMATCH: allow trailing backslash in pattern to explicitly match a
-         backslash that is the last character in the string.  Bug report from
-         Stephane Chazelas <stephane.chazelas@gmail.com>
-
-                                  11/5
-                                  ----
-builtins/common.c
-       - display_signal_list: if displaying a signal name corresponding to an
-         exit status > 128, don't display the SIG prefix at all.  Old code
-         made displaying the SIG prefix dependent on JOB_CONTROL define.
-         Report and fix from Martijn Dekker <martijn@inlv.org>
-
-execute_cmd.c
-       - execute_subshell_builtin_or_function: call without_job_control even
-         if JOB_CONTROL is not defined. Similar to fix from 9/23.
-         Report from Martijn Dekker <martijn@inlv.org>
-
-execute_cmd.c
-       - execute_simple_command: free memory allocated and passed to
-         make_child in the child process if JOB_CONTROL is defined
-       - execute_command_internal: free memory allocated and passed to
-         make_child in the child process created to run a () subshell or a
-         compound command within a pipeline if JOB_CONTROL is defined
-       - execute_coproc: free memory allocated and passed to make_child in
-         the child process if JOB_CONTROL is defined
-       - execute_disk_command: free memory allocated and passed to
-         make_child in the child process if JOB_CONTROL is defined.  This
-         series of fixes is the result of reports from
-         Eduardo A. Bustamante López <dualbus@gmail.com>
-
-                                  11/6
-                                  ----
-lib/sh/unicode.c
-       - u32toutf16: fix to prevent outputting broken surrogate pairs for
-         Japanese locales (ja_JP.UTF-8) on cygwin (which uses UTF-16 natively).
-         Report and fix from Koichi MURASE <myoga.murase@gmail.com>
-
-builtins/trap.def
-       - trap_builtin: if OP is `-' (revert), set the SIGINT signal handler
-         to sigint_sighandler if the shell is interactive and sourcing a
-         file (interactive_shell && sourcelevel) or running a trap
-         (interactive_shell && running_trap) even if it's not currently
-         interactive.  Report from Martijn Dekker <martijn@inlv.org>
-
-builtins/read.def
-       - check for and read multibyte characters in all cases, not just when
-         we are reading a specific number of characters, as long as
-         mb_cur_max > 1
-
-subst.c
-       - expand_word_internal: some improvements to code that converts istring
-         into a WORD_LIST * to avoid multiple allocations and copies of
-         istring, which is already malloc'ed memory -- reduce number of malloc
-         and free calls
-
-test.c
-       - unary_test: make sure if we test -v array[@] or array[*] that we
-         free the return value from array_value
-
-                                  11/8
-                                  ----
-expr.c
-       - expcond: make sure to set `noeval' before reading tokens depending on
-         the result of the conditional test, since readtok() can evaluate
-         identifiers (and recursively those containing expressions).  Report
-         and fix from Koichi MURASE <myoga.murase@gmail.com>
-
-builtins/evalstring.c
-       - should_suppress_fork: make sure to check for traps on EXIT and
-         ERR, since any_signals_trapped() only checks for `real' signals,
-         not the fake shell ones.  Fixes bug reported by Werner Fink
-         <werner@suse.de>
-       - optimize_subshell_command: ditto
-
-                                  11/9
-                                  ----
-eval.c
-       - reader_loop: change so that we don't reset the SIGINT handler every
-         time through the command loop in an interactive shell if the signal
-         is trapped (as the comment noted).  Reported by Report from Martijn
-         Dekker <martijn@inlv.org>
-
-subst.c
-       - parameter_brace_{patsub,remove_pattern,transform,casemod}: save and
-         restore this_command_name while temporarily setting it for use in
-         error messages.  Fixes use-after-free error reported by
-         Jerzy Kramarz <op7ica@gmail.com>
-       - string_extract_verbatim: make sure when we increment i by 2 due to
-         a CTLESC or CTLESC-CTLNUL that we don't read past the end of the
-         string. This can happen if the string ends with an odd number of
-         CTLESC chars. Fixes oob-read error reported by
-         Jerzy Kramarz <op7ica@gmail.com>
-
-                                  11/11
-                                  -----
-configure.ac,aclocal.m4
-       - BASH_FUNC_SBRK: make sure sbrk actually works, instead of being just
-         a stub function like on several Linux distributions
-
-lib/malloc/malloc.c
-       - malloc_usable_size: return the maximum number of bytes available for
-         a particular memory allocation (size of block allocated for it)
-
-                                  11/12
-                                  -----
-configure.ac
-       - changes to make --enable-profiling work on Linux (-pg, no static link,
-         no -static in LDFLAGS)
-
-Makefile.in
-       - changes to make --enable-profiling work on Linux (take
-         ${PROFILE_FLAGS} out of  BASE_CCFLAGS, add to CCFLAGS instead; add
-         BASE_LDFLAGS define that doesn't include -pg or -static; use
-         BASE_LDFLAGS in LDFLAGS; move ${PROFILE_FLAGS} and ${STATIC_LD} to
-         LDFLAGS)
-
-tests/run-gprof
-       - changes to make profiling test suite with gprof work on Linux (set
-         GMON_OUT_PREFIX to handle multiple profiled processes per test;
-         change default filename to gmon.out from bash.gmon; look for
-         gprof output files in ${TMPDIR} instead of /tmp; handle multiple
-         profiling files starting with $GMON_OUT_PREFIX)
-
-locale.c
-       - locale_isutf8: use locale_charset() if it's available and nl_langinfo
-         isn't
-       - locale_isutf8: add code to parse a locale specification and determine
-         whether the encoding is UTF-8 (or utf8) in the absence of
-         nl_langinfo and locale_charset
-       - set_default_locale: make sure to set locale_utf8locale early on
-       - locale_utf8locale: set via call to locale_isutf8 wherever LANG,
-         LC_ALL, or LC_CTYPE is set
-
-                                  11/13
-                                  -----
-lib/readline/display.c
-       - rl_redisplay: handle report of potential integer overflow in
-         horizontal display mode from Mateusz Lenik <mlen@mlen.pl>
-
-lib/sh/mbschr.c
-       - mbschr: if in a UTF-8 locale (locale_utf8locale) and we are looking
-         for an ASCII character, use (essentially) strchr as a shortcut
-
-lib/sh/shmbchar.c
-       - utf8_{mbstrlen,mblen,mbsmbchar,mbsnlen}: UTF-8-specific replacement
-         functions (should also be able to use utf8_mblen in subst.c:
-         string_extract_verbatim)
-       - mbsmbchar: if locale_utf8locale is true, call utf8_mbsmbchar
-       - mbsmbchar: in UTF-8 locale, use utf8_mblen instead of mbrlen (not
-         used if earlier shortcut taken)
-
-lib/sh/unicode.c
-       - u32cconv: don't use nl_langinfo early to call u32toutf8()
-       - u32cconv: use locale_utf8locale to set utf8locale
-       - u32cconv: when initializing (u32init == 0), use locale_charset, then
-         nl_langinfo, then stub_charset to determine the charset
-       - u32cconv: even if we don't have iconv, if locale_utf8locale is non-
-         zero, return u32toutf8
-
-                                  11/15
-                                  -----
-lib/readline/nls.c
-       - _rl_init_locale: new function, split off code that determines current
-         locale from _rl_init_eightbit, use it to set _rl_utf8locale
-
-lib/readiline/rlprivate.h
-       - _rl_init_locale: new extern declaration
-
-lib/readline/readline.c
-       - rl_initialize: if not initializing everything the first time, call
-         _rl_init_locale to check current locale and set _rl_utf8locale
-
-lib/readline/text.c
-       - _rl_insert_char: optimize cases where we are inserting a single-byte
-         character in a locale with multibyte characters
-       - _rl_insert_char: check whether character is single byte if we know
-         we are in a UTF-8 locale, optimize single-byte case to avoid calls
-         to mbrtowc and memmove/memcpy
-
-lib/readline/mbutil.c
-       - _rl_char_value: if we are in a UTF-8 locale (_rl_utf8locale) and the
-         current character does not have the eighth bit set ((c & 0x80) == 0),
-         return that char without bothering to call mbrtowc
-       - _rl_adjust_point: don't bother calling mbrlen if we are in a UTF-8
-         locale and the current character is not a multibyte character
-       - _rl_find_next_mbchar_internal: if we are in a UTF-8 locale, use that
-         to avoid calls to mbrtowc
-
-lib/readline/display.c
-       - _rl_col_width: if in a UTF-8 locale, take advantage of that to avoid
-         calls to mbrlen and mbrtowc
-       - rl_redisplay: if in a UTF-8 locale, take advantage of that to avoid
-         calls to mbrtowc
-
-                                  11/17
-                                  -----
-lib/readline/histlib.h
-       - PATTERN_SEARCH: new flag for history search interfaces, means to
-         search for a pattern as Posix specifies
-
-lib/readline/histsearch.c
-       - history_search_internal: now takes a `flags' argument instead of just
-         an `anchored' argument to accommodate PATTERN_SEARCH
-       - _hs_history_patsearch: new internal interface to use when flags
-         specify PATTERN_SEARCH
-
-lib/readline/rlprivate.h
-       - SF_PATTERN: new flag for non-incremental search contexts, means to
-         treat search string as a pattern (maps to PATTERN_SEARCH)
-
-lib/readline/search.c
-       - noninc_dosearch: takes an additional `flags' argument for SF_PATTERN
-       - noninc_search_from_pos: takes an additional `flags' argument for
-         SF_PATTERN
-       - noninc_dosearch: pass flags argument through to noninc_search_from_pos
-       - _rl_nsearch_init: if we are in vi command mode, and `pchar' (key used
-         to invoke the search) is `?' or `/', add SF_PATTERN to the flags
-         to conform to Posix spec for vi-mode editing
-       - _rl_nsearch_dosearch: if cxt->sflags indicates that we should do a
-         pattern search, pass SF_PATTERN to noninc_search_from_pos
-       - rl_noninc_forward_search_again: if in vi command mode and key == `N',
-         make sure flags arg passed to noninc_dosearch includes SF_PATTERN
-       - rl_noninc_reverse_search_again: if in vi command mode and key == `n',
-         make sure flags arg passed to noninc_dosearch includes SF_PATTERN
-       - rl_history_search_internal: pass extra flags arg to noninc_search_from_pos
-
-                                  11/18
-                                  -----
-lib/readline/search.c
-       - noninc_search_from_pos: takes a new argument, a pointer to int where
-         it stores the offset of the match in the history line (if non-NULL),
-         modified callers
-       - rl_history_search_internal: pass newcol pointer to
-         noninc_search_from_pos to avoid having to recompute the match offset
-         in the matching history entry
-
-config.h.in
-       - define HAVE_FNMATCH if we have the fnmatch function (configure was
-         already checking for it)
-
-lib/readline/histsearch.c
-       - _hs_history_patsearch: transform the pattern into one ending in a
-         `*' to avoid having to perform multiple match attempts from each
-         index in the history line
-       - history_search_internal: changes to handle pattern matching if
-         PATTERN_SEARCH is in the flags and HAVE_FNMATCH is defined.  This
-         makes vi-mode history searching treat the user-specified search
-         string as an fnmatch pattern, as Posix requires.  Fixes issue
-         reported by <jwdevel@gmail.com>
-
-                                  11/19
-                                  -----
-builtins/shopt.def
-       - shopt_enable_hostname_completion: only declare this if READLINE
-         defined, since that's the only time it's used.  Reported by
-         isabella parakiss <izaberina@gmail.com>
-
-                                  11/20
-                                  -----
-builtins/common.c
-       - display_signal_list: make `kill -l 0' print `EXIT', modifying change
-         from 9/17
-
-                                  11/21
-                                  -----
-subst.c
-       - expand_word_internal: when the shell encounters a backslash as the
-         last character of the string, don't try to add a '\'0' to the end
-         of the string if the string is quoted, just add a <CTLESC><\> and
-         skip to the end of string processing.  Fixes oob-read error
-         reported by Jerzy Kramarz <op7ica@gmail.com>
-
-test.c
-       - two_arguments: check argv[pos][1] before checking argv[pos][2] when
-         looking for a unary argument.  Fixes oob-read error on single `-'
-         in unary operator position reported by Jerzy Kramarz
-         <op7ica@gmail.com>
-       - ANDOR: check s[1] before checking s[2] in case s[1] == end of string.
-         Fixes oob-read error reported by Jerzy Kramarz <op7ica@gmail.com>
-
-subst.c
-       - command_substitute: now takes additional flags argument, changed one
-         caller (param_expand) to pass through PF_ASSIGNRHS flag; other callers
-         pass 0
-       - command_substitute: pass through flags argument to read_comsub
-       - read_comsub: now takes additional new flags argument to indicate
-         whether or not the word is in a context where word splitting will
-         eventually be performed
-       - read_comsub: if we are running in a context where word splitting
-         will not take place (PF_ASSIGNRHS), we read a CTLESC, and CTLESC is
-         in $IFS, add a CTLESC to make sure it gets through a round of
-         dequoting
-
-                                  11/23
-                                  -----
-parse.y
-       - xparse_dolparen: since reset_parser frees the pushed string list,
-         and this is supposed to be a separate parsing context, we need to
-         save and restore pushed_string_list around the call to parse_string
-         and reset_parser.  Fixes bug reported by Dan Douglas
-         <ormaaj@gmail.com>
-
-bashhist.h
-       - HISTEXPAND_DEFAULT: default value of history_expansion, moved here
-         from flags.c
-
-flags.[ch]
-       - histexp_flag: new variable, this is what set -H/set -o histexpand
-         sets; history_expansion set to value of this variable; defaults to 0
-       - history_expansion: now set to HISTEXPAND_DEFAULT
-
-bashhist.c
-       - bash_history_reinit: if interact == 0, set history_expansion to the
-         value of histexp_flag, to allow -H option to enable history
-         expansion
-       - bash_history_reinit: if interact == 0, make sure
-         history_expansion_inhibited is set opposite of histexp_flag, so
-         enabling history expansion with -H invocation option turns off
-         inhibited expansion. If interactive shell, we turn it off so
-         history_expansion controls whether or not history expansion takes
-         place. In practice, this function is always called with interact == 0,
-         and -c command still doesn't perform history expansion
-
-shell.c
-       - init_interactive: make sure histexp_flag and history_expansion are
-         identical in an interactive shell; allows both -H/+H option and
-         default compilation options (HISTEXPAND_DEFAULT) to work
-
-                                  11/24
-                                  -----
-subst.c
-       - get_word_from_string: take advantage of the fact that SEPARATORS is
-         always a (possibly local) copy of IFS, so build a local charmap of
-         separators and use it instead of the (cached and possibly stale)
-         ifs_cmap map and isifs macro.  Fixes bug with -N stripping leading
-         whitespace reported by Clark Wang <clarkw@vmware.com>
-
-                                  11/25
-                                  -----
-builtins/read.def
-       - read_builtin: make `i' volatile, since auto variables are technically
-         undefined after a longjmp, and a timeout on SIGALRM causes one.
-         Fix suggested by Dmitry Goncharov <dgoncharov@users.sf.net>
-
-                                  11/27
-                                  -----
-parse.y
-       - shell_getc: if we are reading input from a string, and we get the
-         ending '\0', and we are not expanding an alias, return EOF right
-         away.  It might be an eval'ed string that has a syntax error.
-         Fixes bug reported by Dan Douglas <ormaaj@gmail.com>
-
-                                  11/28
-                                  -----
-subst.c
-       - expand_word_internal: if we're expanding a quoted string containing
-         a tilde as the first character of a word, only expand the tilde if
-         we're expanding an array subscript (Q_ARRAYSUB), not if we're
-         expanding any arithmetic expression (Q_ARITH).  This fixes a
-         backwards compatibility issue with expressions like ~0 reported by
-         Bize Ma <binaryzebra@gmail.com>
-
-subst.c
-       - parameter_brace_expand_indir: if the variable is not special and
-         the indirect variable is unset (!variable where variable is unset),
-         report an error.  This is a slight incompatibility with previous
-         versions, which did not differentiate between indirecting an unset
-         variable and an indirect expansion resulting in an unset variable.
-         Fixes omission reported by otenba@protonmail.com
-
-                                  11/30
-                                  -----
-lib/readline/doc/{rluser.texi,readline.3},doc/bash.1
-       - do-uppercase-version: since this doesn't actually exist, replace it
-         with do-lowercase-version, with the caveat that do-lowercase-version
-         results in undefined behavior if bound to a character that's
-         already lowercase.  Suggested by Branden Robinson
-         <g.branden.robinson@gmail.com>
-
-lib/readline/doc/rluser.texi
-       - history-substring-search-forward: was misspelled as "substr-search";
-         ditto for search-backward
-
-doc/bash.1
-       - history-substring-search-{backward,forward}: add documentation, text
-         straight from readline.3
-
-jobs.c
-       - initialize_job_control: if the terminal's process group is valid,
-         but the shell is not the foreground process, check for terminating
-         signals (like SIGHUP, which the kernel would send if the process
-         group were orphaned) during the loop where we try to stop the shell
-         if it's not in the foreground.  Not a perfect solution; the kernel
-         might not send SIGHUP
-
-                                  12/1
-                                  ----
-jobs.c
-       - initialize_job_control: only go through the SIGTTIN loop 16 times at
-         most before deciding we're in the background and probably a member of
-         an orphaned process group; set original_pgrp to the terminal's pgrp
-         (so the eventual give_terminal_to doesn't leave the terminal in the
-         wrong pgrp); and bail on job control initialization
-
-tests/run-all
-       - unset SHELLOPTS to avoid its options `polluting' the test
-         environment.  Suggestion from Vladimir Marek
-         <Vladimir.Marek@oracle.com>
-
-tests/execscript
-       - use $PWD/exec8.sub to protect against someone who has a cd command
-         in his bashrc.  Report from  Vladimir Marek
-         <Vladimir.Marek@oracle.com> 
-
-                                  12/2
-                                  ----
-shell.c
-       - open_shell_script: call end_job_control before exiting the shell in
-         case we were run as `bash -i script' and there is a problem with
-         executing `script'.  If we don't, the terminal ends up in the wrong
-         process group.  Fix from Clark Wang <clarkw@vmware.com>
-
-                                  12/3
-                                  ----
-parse.y
-       - read_comsub: if we look for a character following a `<' and it's
-         not `<' (indicating that we don't have to read a here-document),
-         make sure we push that character back and go through the loop again
-         so we note the right word start location.  Fixes bug reported by
-         parasite parasite <42parasite@gmail.com>
-
-subst.c
-       - parameter_brace_expand_indir: clean up checks for unset variables to
-         minimize incompatibilities with previous versions
-
-                                  12/5
-                                  ----
-lib/readline/history.c
-       - add_history: don't update history_length until all of the updates to
-         the_history are complete, so history_length is always consistent.
-         Report and fix from Hong Cho <hong.cho@citrix.com>
-
-bashline.c
-       - bash_backward_shellword: fix to work better at the end of the line,
-         with multiple trailing whitespace characters.  Inspired by report
-         from Kirill Timofeev <kt97679@gmail.com>
-
-Makefile.in
-       - bashbug: use `^' as the sed delimiter instead of `%'; some compilers
-         use `%' in CFLAGS.  Report from  Vladimir Marek
-         <Vladimir.Marek@oracle.com> 
-
-                                  12/6
-                                  ----
-test.c
-       - test_unop: make sure op[1] != 0 before testing op[2]
-       - term: make sure argv[pos][1] != 0 before testing argv[pos][2].  Fixes
-         oob-read reported by Jerzy Kramarz <op7ica@gmail.com>
-
-                                  12/7
-                                  ----
-lib/glob/glob.c
-       - glob_filename: assign the return value of realloc (results, ...) to
-         a temp pointer, so if realloc returns NULL, we make sure we free
-         results.  Report from Kirill Timofeev <kt97679@gmail.com>
-
-                                  12/12
-                                  -----
-lib/sh/shquote.c
-       - sh_backslash_quote: if FLAGS&2, backslash-quote other single-byte
-         characters that are in the current locale's <blank> character class
-
-builtins/printf.def
-       - printf_builtin: when processing the `%q' format, make sure to
-         backslash quote all <blank> characters by making sure that FLAGS
-         passed to sh_backslash_quote includes 2.  Fixes issue for certain
-         iso-8859-1 locales where character 160 (octal 240, hex 0xa0) is a
-         non-breaking space. Report from Stephane Chazelas
-         <stephane.chazelas@gmail.com>
-
-lib/sh/eaccess.c
-       - sh_stat: if DEV_FD_STAT_BROKEN is defined, take /dev/fd/N and turn
-         it into a stat on file descriptor N, as if /dev/fd were not
-         available.  This is the case on some old versions of SunOS.  Report
-         and patch from Dmitry Goncharov <dgoncharov@users.sf.net>
-
-config.h.in
-       - DEV_FD_STAT_BROKEN: add define
-
-configure.ac
-       - --enable-dev-fd-stat-broken: new command-line option, defines
-         DEV_FD_STAT_BROKEN if supplied at configure time
-
-doc/bashref.texi
-       - --enable-dev-fd-stat-broken: document new command-line option for
-         configure
-
-arrayfunc.c
-       - assoc_expand_once: new variable, declared here just because
-
-arrayfunc.h
-       - assoc_expand_once: extern declaration
-       - AV_NOEXPAND: new flag value for the array_value family of functions:
-         means to not run associative array subscripts through word expansion
-
-builtins/set.def
-       - unset_builtin: call unbind_array_element with assoc_expand_once as
-         third arg, controls whether we expand associative array subscripts
-         (if 1, we suppress the usual expansion).  With accompanying shopt,
-         provides backwards compatible option to solve problem with quotes
-         and other characters in associative array subscripts pointed out
-         most recently by Mingye Wang (Arthur2e5) <arthur200126@gmail.com>
-
-builtins/shopt.def
-       - assoc_expand_once: new option, controls value of internal variable
-         with the same name. Currently undocumented because I'm not completely
-         sold on the name
-
-expr.c
-       - evalexp: now takes a second argument, flags. Changed all callers in
-         multiple other files (builtins/let.def,execute_cmd.c,arrayfunc.c,
-         subst.c,test.c,variables.c)
-
-externs.h
-       - EXP_EXPANDED, new flag for second argument to evalexp
-
-builtins/let.def
-       - let_builtin: add EXP_EXPANDED to flags passed to evalexp
-
-execute_cmd.c
-       - execute_arith_command: add EXP_EXPANDED to flags passed to evalexp,
-         since the command string is run through expand_words_no_vars before
-         being evaluated
-
-expr.c
-       - set expression-global variable already_expanded if flags arg to
-         evalexp contains EXP_EXPANDED
-       - if assoc_expand_once option set and already_expanded flag set, pass
-         1 in flags to array_variable_part to skip over quotes and expansions
-         in the subscript
-       - if those two variables set, pass AV_NOEXPAND as flag to
-         get_array_value to prevent word expansions on the subscript
-
-arrayfunc.c
-       - if flags passed to unbind_array_element includes 1, pass flag on to
-         skipsubscript so we don't expect matched quotes or process
-         expansions in the subscript
-       - if flags to array_value_internal include AV_NOEXPAND, pass 1 as flag
-         to array_variable_part to pass along to skipsubscript
-       - if flags to array_value_internal include AV_NOEXPAND, don't call
-         expand_assignment_string_to_string; just use the unexpanded subscript
-         to produce the key [THIS IS A WORK IN PROGRESS]
-
-                                  12/14
-                                  -----
-subst.h
-       - ASS_NOEXPAND: assignment flag that inhibits expansion of associative
-         array subscripts
-
-variables.c
-       - bind_int_variable: takes new flags arg; flags are taken from the
-         ASS_ set of assignment flags, changed callers (bashline.c, expr.c,
-         pcomplete.c)
-       - bind_int_variable: if flags includes ASS_NOEXPAND, pass 1 as flag to
-         valid_array_reference and array_variable_part to pass along to
-         skipsubscript, so we don't try to skip over quoted strings in the
-         subscript
-       - bind_int_variable: pass flags along to assign_array_element
-
-variables.h
-       - bind_int_variable: updated extern declaration with new flags arg
-
-expr.c
-       - expr_bind_variable: if the assoc_expand_once option is enabled, and
-         the flags to evalexp indicate that we have already run the expression
-         through word expansion, pass ASS_NOEXPAND as flag to bind_int_variable
-
-arrayfunc.c
-       - assign_array_element: if flags includes ASS_NOEXPAND, pass 1 as flag
-         to array_variable_name to pass along to skipsubscript
-       - assign_array_element: if flags includes ASS_NOEXPAND, don't run an
-         associative array subscript through word expansion, just use as-is
-
-subst.c
-       - param_expand: call evalexp with EXP_EXPANDED flag for arithmetic
-         substitution because the string has already been expanded with
-         expand_arith_string
-
-                                  12/15
-                                  -----
-builtins/read.def
-       - read_builtin: use value of assoc_expand_once for valid_array_reference
-         as with other uses
-       - bind_read_variable: if assoc_expand_once is set, pass ASS_NOEXPAND
-         to assign_array_element
-
-general.c
-       - assignment: instead of checking whether flags == 0 to allow a `[',
-         explicitly check for (flags&1) to disallow it.  This leaves the door
-         open for additional flag values
-
-builtins/printf.def
-       - printf_builtin: use value of assoc_expand_once for
-         valid_array_reference as with other uses
-       - bind_printf_variable: if assoc_expand_once is set, pass ASS_NOEXPAND
-         to assign_array_element
-
-                                  12/16
-                                  -----
-builtins/history.def
-       - change history -d option to handle negative arguments; negative
-         arguments offset from the end of the history list (last_position + 1
-         so history -d -1 deletes the history -d command that just got
-         added).  Original patch from Piotr Grzybowski <narsil.pl@gmail.com>
-
-doc/bash.1,lib/readline/doc/hsuser.texi
-       - documented new behavior of negative offsets for `history -d'
-
-                                  12/17
-                                  -----
-lib/readline/history.c
-       - remove_history: use memmove to move the history list around instead
-         of a loop that copies pointers one at a time, similar to add_history
-
-                                  12/19
-                                  -----
-configure.ac
-       - linux: make sure PGRP_PIPE is defined unconditionally for all kernel
-         versions greater than 2.3.*
-
-lib/readline/history.c
-       - clear_history: when clearing the history, reset history_base to 1
-         (its default)
-       - remove_history_range: new function, removes a set of history entries
-         and returns them all for deallocation
-
-lib/readline/history.h
-       - remove_history_range: extern declaration
-
-                                  12/20
-                                  -----
-execute_cmd.c
-       - eval_arith_for_expr: pass EXP_EXPANDED to evalexp, since we run the
-         expression through expand_words_no_vars
-
-                                  12/21
-                                  -----
-input.c
-       - b_fill_buffer: when read returns EOF or error, and we reset the
-         buffer and pointers, reset the input pointer to 0.  Fixes issue
-         reported by Stephane Chazelas <stephane.chazelas@gmail.com>
-
-                                  12/22
-                                  -----
-arrayfunc.[ch],subst.c
-       - array_expand_index: added new FLAGS argument, reserved for future use,
-         changed callers
-
-
-                                  12/24
-                                  -----
-variables.c
-       - can_optimize_assignment,optimized_assignment: see if we can detect
-         whether or not we're trying to append a string to a string variable,
-         and optimize that using realloc/strcpy.  Based on a log-ago
-         suggestion from Aharon Robbins <arnold@skeeve.com>
-
-                                  12/27
-                                  -----
-builtins/help.def
-       - help_builtin: don't pass return value from ngettext() directly to
-         printf
-
-                                  12/28
-                                  -----
-sig.c
-       - set_signal_handler: set SA_RESTART for SIGWINCH, so window size
-         changes don't interrupt open/read/write.  Suggested by
-         Andriy Prystupa <andriy.prystupa@globallogic.com> back in 10/2016
-
-                                  12/30
-                                  -----
-execute_cmd.c
-       - coproc_pidchk: if MULTIPLE_COPROCS, call cpl_search to find coproc
-         associated with pid, don't remove it from the list with cpl_delete.
-         Just mark as dead and wait for coproc_reap/cpl_reap to take care
-         of disposing it
-       - execute_coproc: NEW FEATURE: run the coproc name through word
-         expansion before creating the coproc; this allows unique coprocs
-         to be created in loops. Originally requested way back in 2012 by
-         Erik Brandsberg <ebrandsberg@juniper.net>
-
-command.h
-       - subshell_com: now has a line number member: line
-
-make_cmd.c
-       - make_subshell_command: assign current line number (line number of the
-         ending right paren) to `line' member
-
-copy_cmd.c
-       - copy_subshell_command: copy the `line' member
-
-execute_command.c
-       - execute_command_internal: when executing a user subshell (`(command)'),
-         set the line number and line number for the ERR trap from the line
-         number saved in the subshell command struct.  Fix from
-         Eduardo A. Bustamante López <dualbus@gmail.com>
-       - execute_arith_command: set line number for ERR trap from line number
-         saved in the arith command struct.  Fix from
-         Eduardo A. Bustamante López <dualbus@gmail.com>
-       - execute_cond_command: set line number for ERR trap from line number
-         saved in the cond command struct.  Fix from
-         Eduardo A. Bustamante López <dualbus@gmail.com>
-
-variables.c
-       - bind_variable_internal: move can_optimize_assignment call to the
-         right place
-
-                                  12/31
-                                  -----
-variables.c
-       - find_variable_nameref: treat a circular variable reference as
-         referring to a variable of that name in the global scope (for now),
-         if one exists.  PROVISIONAL change: inspired by suggestion back in
-         6/2016 by Grisha Levit <grishalevit@gmail.com>
-
-                                1/2/2017
-                                --------
-{expr,general,hashcmd}.c
-       - include flags.h for flag values
-
-make_cmd.c
-       - include shell.h instead of the files it includes
-
-flags.h
-       - new extern declarations for want_pending_command, read_from_stdin
-
-subst.h
-       - add extern declaration for expanding_redir, assigning_in_environment
-
-trap.h
-       - add extern declaration for running_trap
-
-execute_cmd.h
-       - added extern declarations for variables declared in execute_cmd.c,
-         changed files that declare lots of extern variables
-
-shell.h
-       - added extern declarations for variables declared in shell.c,
-         changed files that declare lots of extern variables 
-
-parser.h
-       - added extern declarations for variables declared in parse.y,
-         changed files that declare lots of extern variables 
-
-[lots of changes to reduce the number of extern declarations in C and DEF files]
-
-parse.y
-       - xparse_dolparen: need ALIAS or DPAREN_ARITHMETIC to be defined to
-         use STRING_SAVER
-
-                                   1/3
-                                   ---
-sig.c
-       - termsig_handler: don't call end_job_control if subshell_environment
-         indicates that we're in a command or process substitution.
-         Provisional fix for bug reported by Russell King <rmk@armlinux.org.uk>
-
-jobs.c
-       - end_job_control: only attempt to give the terminal back to
-         original_pgrp if job_control != 0; don't test interactive_shell
-
-execute_cmd.c
-       - execute_disk_command: call QUIT after search_for_command, since
-         the only time QUIT gets called is when the path is actually
-         searched.  It doesn't happen for an absolute pathname.  Fix for
-         bug reported by Russell King <rmk@armlinux.org.uk>
-
-                                  1/16
-                                  ----
-lib/glob/glob.c
-       - extglob_skipname,wextglob_skipname: if we don't find a reason to
-         not skip the name in any subpattern (r returns 0 for any subpattern),
-         return 1 because we should skip the name
-       - extglob_skipname,wextglob_skipname: if we don't find a reason to
-         not skip the name in any subpattern, but the first part of the extglob
-         pattern is a wildcard (`*(pat)'), check the rest of the pattern, if
-         any, to decide whether or not to skip the name. Fixes bug reported
-         by Grisha Levit <grishalevit@gmail.com>
-
-lib/glob/glob_loop.c
-       - CHAR -> GCHAR (unsigned char); change uses of CHAR to GCHAR
-
-lib/glob/glob.c
-       - wchkname -> wskipname
-       - wskipname: now takes a third `flags' argument, like the other variants
-         of skipname
-
-                                  1/17
-                                  ----
-redir.c
-       - here_document_to_fd: set the file descriptor open for writing to the
-         here document to be close-on-exec.  Fixes bug reported by
-         Siteshwar Vashisht <svashisht@redhat.com>
-
-                                  1/18
-                                  ----
-{gmisc,gm_loop}.c
-       - match_pattern_char,match_pattern_wchar: moved to gm_loop.c (new file),
-         compile twice for single and wide characters as with the rest of
-         the functions
-       - umatchlen,wmatchlen: ditto
-       - extglob_pattern_p: move to gm_loop.c, generalize for regular and
-         wide-char versions
-
-                                  1/19
-                                  ----
-lib/readline/complete.c
-       - stat_char: fix small memory leak if stat/lstat returns -1
-
-bashline.c
-       - bash_filename_stat_hook,bash_directory_completion_hook: make sure
-         expand_prompt_string is caled wth W_NOPROCSUB flag
-       - directory_exists: don't dequote the filename passed as an argument;
-         this function should never get quoted pathnames
-
-subst.c
-       - expand_word_internal: when calling expand_word_internal recursively
-         after reading a double-quoted string, make sure the W_NOCOMSUB and
-         W_NOPROCSUB flags make it to the recursive invocation.  Fixes bug
-         reported by Jens Heyens <jens.heyens@cispa.saarland>
-
-                                  1/23
-                                  ----
-lib/readline/signals.c
-       - _rl_orig_sigset: original signal mask, set and restored by
-         rl_set_signals (rl_clear_signals doesn't block signals).  If we
-         are not installing signal handlers, just save signal mask each
-         time rl_set_signals is called
-
-lib/readline/input.c
-       - rl_getc: use _rl_orig_sigmask in the call to pselect(), so we block
-         the set of signals originally blocked by the calling application.
-         Fixes bug reported by Frédéric Brière <fbriere@fbriere.net>
-
-parse.y
-       - yy_readline_get: try to unset NONBLOCK mode on readline's input
-         file descriptor before calling readline(). Inspired by report from
-         Siteshwar Vashisht <svashisht@redhat.com>
-
-                                  1/30
-                                  ----
-parse.y
-       - parse_comsub: don't unconditionally set the LEX_WASDOL flag when we
-         see a `$'; we should toggle it to accommodate things like $$.
-         Fixes bug reported by Christian Weisgerber <naddy@mips.inka.de>
-       - parse_matched_pair: do the same thing with LEX_WASDOL
-
-                                   2/1
-                                   ---
-jobs.h
-       - JWAIT_PERROR,JWAIT_FORCE: new defines for the wait_for_ family of
-         functions
-
-jobs.c
-       - wait_for_job, wait_for_any_job: take new flags argument for use by
-         the wait builtin
-       - wait_for_job: if JWAIT_FORCE flag supplied, loop waiting for job to
-         terminate instead of change state
-       - wait_for_single_pid: if JWAIT_FORCE flag supplied, loop waiting for
-         child process to terminate instead of change state
-
-builtins/wait.def
-       - takes a new `-f' option, signifying to wait until the specified job 
-         or process terminates, instead of changes state
-
-doc/{bash.1,bashref.texi}
-       - wait: document the new -f option and its behavior when job control
-         is enabled
-       - job control: add a paragraph describing how the wait builtin changes
-         behavior when job control is enabled: it returns when a job changes
-         state
-
-                                   2/2
-                                   ---
-examples/loadables/fdflags.c
-       - fdflags: new loadable builtin to set and unset file descriptor flags
-         (such as non-blocking, though bash undoes that) for descriptors bash
-         has open. Developed in consultation with Christos Zoulas
-         <christos@zoulas.com>
-
-                                   2/3
-                                   ---
-
-lib/readline/text.c
-       - rl_previous_screen_line: attempt to move to the same column on the
-         previous screen line of the current readline buffer by moving back
-         a number of characters equal to the screen width
-       - rl_next_screen_line: attempt to move to the same column on the
-         next screen line of the current readline buffer by moving forward
-         a number of characters equal to the screen width. Both originally
-         suggested by Hans Ginzel <hans@matfyz.cz>
-
-lib/readline/readline.h
-       - rl_{next,previous}_screen_line: extern declarations
-
-lib/readline/funmap.c
-       - {next,previous}-screen-line: new bindable command names
-
-lib/readline/doc/{rluser.texi,readline.3}
-       - {next,previous}-screen-line: document behavior, including limitations
-
-                                   2/5
-                                   ---
-lib/readline/input.c
-       - rl_read_key: when reading input from a macro, make sure to return
-         the next character as an unsigned char, so we handle multibyte
-         character sequences correctly.  Report and fix from Grisha Levit
-         <grishalevit@gmail.com>
-
-                                   2/6
-                                   ---
-shell.c
-       - --pretty-print: new invocation option, currently undocumented, dumps
-         a pretty-printed version of a shell script given as an argument to
-         stdout
-       - main: call pretty_print_loop() if we're in pretty-printing mode in
-         a non-interactive shell
-
-eval.c
-       - pretty_print_loop: new function, similar to reader_loop, reads
-         commands and prints them by displaying the result from
-         make_command_string()
-
-externs.h
-       - pretty_print_loop: new extern declaration
-
-                                   2/9
-                                   ---
-doc/{bash.1,bashref.texi}
-       - here strings: correct documentation to note they do not undergo
-         brace expansion. Report from Conor McCarthy <mr.spuratic@gmail.com>
-
-                                   2/9
-                                   ---
-lib/readline/display.c
-       - expand_prompt: instead of recomputing the line break offsets for
-         prompts that span multiple screen lines on every call to rl_redisplay,
-         do it here. Manage a local array local_prompt_newlines; set an offset
-         every time `physchars' hits a multiple of the screen width.  Inspired
-         by https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=843819
-       - rl_redisplay: don't calculate multi-line prompt line break indices
-         here; use the values calculated by expand_prompt
-       - rl_{save,restore}_prompt: save and restore local_prompt_newlines
-
-                                  2/11
-                                  ----
-lib/readline/mbutil.c
-       - _rl_find_prev_mbchar_internal: since we're traversing the string
-         from the beginning, shortcut non-multibyte characters in a UTF-8
-         locale
-
-parse.y
-       - parse_comsub: if we are parsing a here document with a quoted
-         delimiter (LEX_QUOTEDDOC), we should not remove <backslash><newline>
-         pairs from the body of the here document.  Need to add LEX_QUOTEDDOC
-         to the values in tflags when calling shell_getc.  Fixes bug reported
-         by Michael Homer <michael.homer@ecs.vuw.ac.nz>, patch was originally
-         contributed by Geir Hauge <geir.hauge@gmail.com>
-
-                                  2/15
-                                  ----
-jobs.c
-       - bgp_add: if hashed pid collides with bgpids.head index, print a
-         warning and move to the next index.  Attempt to avoid collision
-         problem reported by Graham Northup <northug@clarkson.edu>
-
-                                  2/17
-                                  ----
-subst.c
-       - process_substitute: call remove_quoted_escapes on the command string
-         like command substitution does, since the string will be run through
-         the parser again.  Fixes bug reported by David Simmons
-         <bug-bash@tmp.davidsimmons.com>
-
-config-top.h
-       - STATIC_PATH_VALUE: new config variable, undefined by default
-
-variables.c
-       - shell_initialize: if STATIC_PATH_VALUE is defined, use it to set the
-         PATH variable at shell startup, overriding the environment and any
-         value for DEFAULT_PATH_VALUE.  Based on a suggestion from
-         Lonnie Abelbeck <lonnie@abelbeck.com>
-
-                                  2/18
-                                  ----
-shell.c
-       - maybe_make_restricted: clear the hash table before making the PATH
-         variable read-only by calling stupidly_hack_special_variables.
-         Suggestion from Lonnie Abelbeck <lonnie@abelbeck.com>
-
-subst.c
-       - expand_string_for_pat: change expansion of WORD in ${param[%[%]][#[#]]word}
-         to use this new function, initially identical to
-         expand_string_for_rhs
-       - getpattern: use expand_string_for_pat to expand the pattern
-
-                                  2/19
-                                  ----
-subst.c
-       - expand_string_for_rhs: now that this is only used to expand the RHS
-         of the various non-pattern ${paramOPword} expansions, set
-         expand_no_split_dollar_star depending on whether or not the entire
-         brace expansion is going to be subjected to word splitting: if it's
-         quoted or if IFS is set but null, we will not be splitting so we set
-         this to 1 and let $* expand to separate fields separated by a space.
-         This was heavily debated back in October 2014 and resulted in Posix
-         interp 888. Reported by Martijn Dekker <martijn@inlv.org>
-
-                                  2/20
-                                  ----
-subst.c
-       - expand_string_for_rhs: now takes `op' (brace expansion operator) as
-         an additional argument; changed call in parameter_brace_expand_rhs
-       - expand_string_for_rhs: make sure to set expand_no_split_dollar_star
-         if `op' is `=', since we are supposed to preserve the assignment
-         statement expansion semantics on the RHS of ${param=word}
-
-jobs.c
-       - bgp_delindex: make sure to set ps->pid to NO_PID so we more
-         effectively remove it from the hash table. It shouldn't matter as
-         long as nothing in pidstat_table points to it, but better to be safe
-       - bgp_delete,bgp_search: generalize previous collision detection to
-         loop detection: abort search if we are going to go back to the
-         first index we tried
-
-                                  2/21
-                                  ----
-lib/readline/vi_mode.c
-       - rl_vi_bword: if we're trying to move backward to non-whitespace
-         in a line that begins with whitespace, make sure we don't move
-         point to 0 and test memory locations before the start of the
-         buffer. Report and fix from Jason Hood <jadoxa@yahoo.com.au>
-
-lib/readline/display.c
-       - expand_prompt: if _rl_screenwith == 0, call rl_reset_screen_size to
-         initialize it. If it's still 0 after that, guess that the screen
-         width is 80 and use that to guess how many screen lines the prompt
-         consumes
-
-lib/readline/readline.c
-       - readline_internal_setup: if in emacs editing mode, and we are
-         showing the editing mode in the prompt, call _rl_reset_prompt() to
-         make sure that the updated setting of _rl_show_mode_in_prompt
-         (presumably set in an inputrc file) is reflected in the redisplay
-         performed by rl_callback_newline via readline_internal_setup.
-         Fix from Jason Hood <jadoxa@yahoo.com.au>
-
-                                  2/22
-                                  ----
-builtins/complete.def
-       - print_one_completion,print_compopts: make sure to display the
-         `nosort' and `noquote' options if they've been set for a particular
-         compspec.  Fix from Grisha Levit <grishalevit@gmail.com>
-
-builtins/read.def
-       - read_builtin: if -e is supplied, read needs to free rlbuf before
-         returning, since it uses discard_unwind_frame at that point. Bug
-         and fix from ZhangXiao <xiao.zhang@windriver.com>
-
-execute_cmd.c
-       - execute_for_command: when using a nameref as the for loop control
-         variable, make sure we check for readonly namerefs and make sure
-         that we force bind_variable to enforce restrictions on nameref
-         assignments. Fix from Grisha Levit <grishalevit@gmail.com>
-
-                                  2/23
-                                  ----
-general.c
-       - make_absolute: convert deprecated cygwin_conv_to_full_posix_path
-         to cygwin_conv_path (CCP_WIN_A_TO_POSIX, ...)
-
-{shell,variables}.c,config-top.h
-       - modify change from 2/17: rename STATIC_PATH_VALUE to RBASH_STATIC_PATH_VALUE;
-         don't use it in shell_initialize; set PATH to it just before
-         imposing restricted shell restrictions
-
-                                  2/24
-                                  ----
-subst.c
-       - expand_string_for_rhs: revert change from 2/19 concerning setting
-         expand_no_split_dollar_star so we are consistent with the Posix
-         examples. This anticipates Martijn Dekker initiating an austin
-         group discussion about this case
-
-                                  2/25
-                                  ----
-pcomplete.c
-       - gen_shell_function_matches: if COMPREPLY is an associative array,
-         don't coerce it to an indexed array, which will fail to produce any
-         matches anyway.  Report from Grisha Levit <grishalevit@gmail.com>
-       - bind_comp_words: if COMP_WORDS exists as a nameref variable, ignore
-         the nameref attribute. Report from Grisha Levit
-         <grishalevit@gmail.com>
-
-subst.c
-       - parameter_brace_expand: if expand_no_split_dollar_star is set, make
-         sure chk_atstar treats ${var[*]} as quoted by passing Q_DOUBLE_QUOTES
-         as the second argument.  Fixes differing treatment of $* and ${v[*]}
-         reported by Grisha Levit <grishalevit@gmail.com>, because otherwise
-         *contains_dollar_at gets set to 1 and the word is inappropriately
-         split
-
-                                   3/1
-                                   ---
-subst.c
-       - expand_word_list_internal: if a variable assignment fails (e.g., due
-         to a readonly variable) in a non-interactive posix mode shell, don't
-         abort the shell if the assignment is being performed by the command
-         builtin, even if it's something like `command eval v=1'.  Fixes
-         RedHat bug https://bugzilla.redhat.com/show_bug.cgi?id=1389838
-         (reported by Denys Vlasenko)
-
-                                   3/3
-                                   ---
-builtins/shopt.def
-       - set_compatibility_level: make sure that changing the compatibility
-         level sets or modifies BASH_COMPAT. Fixes bug reported by
-         Stephane Chazelas <stephane.chazelas@gmail.com>
-
-lib/glob/smatch.c
-       - is_cclass: broke into two functions: is_valid_cclass and cclass_test,
-         for future expansion. No functionality change
-
-lib/glob/sm_loop.c
-       - BRACKMATCH: when testing a character against a character class name,
-         use the unfolded (original) character, since we're not performing a
-         comparison. This is what glibc does.  Fixes bug reported by
-         Lukáš BaÅinka <lukas.barinka@boxtrap.net>
-
-                                   3/4
-                                   ---
-doc/{bash.1,bashref.texi}
-       - note that the arguments to -eq and the rest of the arithmetic
-         operators are evaluated as expressions when using [[.  Report from
-         Rob la Lau <rob@ohreally.nl>
-
-
-                                   3/7
-                                   ---
-lib/readline/display.c
-       - update_line: completely rewrote the code that handles line wrapping
-         in the presence of multibyte/double-width characters; punts to a
-         dumb update in cases where the number of screen positions doesn't
-         match
-       - update_line: in one case, where we are deleting characters from the
-         line, if we are writing a non-space into the last screen character
-         position, note that we are no longer using a space as a placeholder
-         for a line wrap where there is a multi-width character that won't
-         fit on the screen line (wrapped_line[current_line+1] = 0)
-
-                                  3/10
-                                  ----
-lib/readline/readline.c
-       - bind_arrow_keys_internal: add default key bindings for control-
-         arrow keys, suggested by Per Bothner <per@bothner.com>
-
-                                  3/13
-                                  ----
-doc/{bash.1,bashref.texi}
-       - clarify the prompt strings the undergo expansion (PS0, PS1, PS2, and
-         PS4) before being displayed.  Based on a report from Grisha Levit
-         <grishalevit@gmail.com>
-
-                                  3/14
-                                  ----
-input.c
-       - bufstream_ungetc: return EOF if being asked to unget a character to
-         a NULL buffer
-       - buffered_getchar: check buffered_fd is valid and buffers[buffered_fd]
-         is non-NULL before trying to dereference. Fixes bug reported by
-         floyd <floyd@floyd.ch>
-
-execute_cmd.c
-       - execute_null_command: if we fork to execute the command, the subshell
-         is not interactive
-       - execute_null_command: for safety's sake, if a redirection attached
-         to a null command affects fd 0 or the fd the shell is reading for
-         input, and the redirection can potentially change or close that file
-         descriptor, force a fork so the redirection is done in a subshell
-
-                                  3/15
-                                  ----
-lib/readline/display.c
-       - update_line: if we have to output some bytes, and we are outputting
-         the prompt string, make sure we correct _rl_last_c_pos if we are
-         at the wrap offset -- what if all of the characters in the prompt
-         are invisible, so the visible length is 0?  Fixes display bug
-         reported by Grisha Levit <grishalevit@gmail.com>
-
-execute_cmd.c
-       - undo_partial_redirects: new function, performs redirections specified
-         in redirection_undo_list and disposes of them. Intended to be used
-         to unwind redirections performed before a redirection error
-       - dispose_partial_redirects: new function, disposes of
-         redirection_undo_list and nulls the list
-       - execute_command_internal: use undo_partial_redirects
-
-execute_cmd.h
-       - undo_partial_redirects: extern declaration
-       - dispose_partial_redirects: extern declaration
-
-subst.c
-       - exp_jump_to_top_level: if we are throwing an expansion error while
-         expanding a redirection (expanding_redir != 0), undo any undoable
-         redirections by calling undo_partial_redirects() so we don't leave
-         any in place
-
-variables.c
-       - initialize_shell_variables: if SHELLOPTS is in the environment,
-         unset the readonly attribute on any existing variable with that
-         name. It may have been created by processing a -o option on the
-         command line.  Fixes issue reported by Stephane Chazelas
-         <stephane.chazelas@gmail.com>
-
-                                  3/16
-                                  ----
-lib/readline/histfile.c
-       - read_history_range: short-circuit and do nothing if the history file
-         is of 0 size
-       - read_history_range: make sure the buffer is zero-terminated so the
-         timestamp tests work right for history files of 1 character.  Report
-         and recommended fix from Denis Martinez <denis.martinez@gmx.com>
-
-lib/readline/complete.c
-       - compute_lcd_of_matches: when trying to compute the common prefix
-         of a set of matches while performing case-insensitive completion
-         matching, don't sort the match list unless rl_sort_completion_matches
-         is non-zero.  Fixes problem reported by Roee Bar <roee@arista.com>
-
-                                  3/18
-                                  ----
-subst.c
-       - extract_dollar_brace_string: handle process substitution embedded in
-         a ${...} expansion in the same way as command substitution.  Reported
-         by D630 <d630@posteo.net>
-
-parse.y
-       - LEX_GTLT: new flag, set by parse_matched_pair when a `<' or '>' is
-         read
-       - parse_matched_pair: handle an embedded process substitution like an
-         embedded command substitution if we are parsing an array index or
-         a dollar-brace expansion.  Reported by D630 <d630@posteo.net>
-
-                                  3/21
-                                  ----
-subst.h
-       - ASS_NOEVAL, ASS_NOLONGJMP: new values for assignments, used by
-         make_variable_value
-
-variables.c
-       - make_variable_value: ASS_NOEVAL: if this is set, don't attempt
-         arithmetic evaluation or case modification, just produce the value
-         (still honor ASS_APPEND)
-       - make_variable_value: ASS_NOLONGJMP: don't longjmp back to top_level
-         if arithmetic evaluation fails due to a syntax error
-       - bind_variable_internal: make sure aflags is passed to all calls to
-         make_variable_value
-       - push_temp_var: add ASS_NOLONGJMP to the flags passed to
-         bind_variable_internal.  Fixes bug reported by D630 <d630@posteo.net>
-
-bashline.c
-       - bash_execute_unix_command: don't bother to attempt optimization by
-         checking whether the call to parse_and_execute changes $READLINE_LINE;
-         it can be defeated by the new code that optimizes appends to string
-         variables. Bug reported by Grisha Levit <grishalevit@gmail.com>
-
-                                  3/22
-                                  ----
-subst.c
-       - expand_string_for_rhs: re-apply change from 2/19 based on discussion
-         on the austin-group mailing list about how unquoted ${var-$*}
-         expands when IFS is null.  Originally reported by Martijn Dekker
-         <martijn@inlv.org>
-
-                                  3/25
-                                  ----
-parse.y
-       - read_token_word: if we read a WORD immediately after a CASE, FOR, or
-         SELECT, increment `expecting_in_token' to note that we're going to
-         be reading IN as the next non-newline token
-       - special_case_tokens: if we're expecting an IN (expecting_in_token > 0)
-         and we have an "in", return IN and decrement expecting_in_token. This
-         is a better implementation of Posix grammar rule 6 than the previous
-         code in that function (which is still there for posterity, but should
-         eventually be removed).  Fixes bug reported by Torka Noda
-         <kanito.tasoga@gmail.com>
-
-subst.c
-       - string_list_pos_params: if the expansion is not quoted, and IFS is
-         null, return a string containing the quoted positional parameters
-         separated by spaces.  Callers know what to do with the string
-       - parameter_brace_substring,parameter_brace_remove_pattern,
-         parameter_brace_transform,parameter_brace_patsub,parameter_brace_casemod:
-         for the VT_POSPARMS case, after calling the operator-specific
-         expansion function, which eventually calls string_list_pos_params,
-         leave the returned string alone, since it's already quoted properly
-       - parameter_brace_expand: after calling the above functions to perform
-         expansions, if the expansion is being performed on an unquoted $*
-         when IFS is null, set the W_SPLITSPACE flag in the return WORD_DESC
-         so that splitting on spaces is performed on the already-quoted word.
-         Fixes bug reported by Grisha Levit <grishalevit@gmail.com>
-
-                                  3/28
-                                  ----
-subst.c
-       - process_substitute: change so the subshell doesn't inherit the 'v'
-         option, like command substitution now does (as of bash-4.4).
-         Suggested by Grisha Levit <grishalevit@gmail.com>
-
-                                  3/30
-                                  ----
-subst.c
-       - parameter_brace_casemod: now takes a pflags parameter, like
-         parameter_brace_patsub; changed callers
-       - parameter_brace_transform: now takes a pflags parameter, like
-         parameter_brace_patsub; changed callers
-       - pos_params_pat_subst,pos_params_modcase: if mflags indicates we're
-         on the rhs of an assignment statement and not going to perform
-         word splitting, we're expanding $*, and $IFS is null, make sure
-         string_list_pos_params treats the expansion as double-quoted, so
-         the positional parameters will be concatenated.  Fixes bug reported
-         by Grisha Levit <grishalevit@gmail.com>
-
-                                  3/31
-                                  ----
-doc/{bash.1,bashref.texi}
-       - add notes to the description of pipelines emphasizing that each
-         element of a pipeline is executed in a subshell, referring to the
-         description of a command execution environment, and that the
-         lastpipe option can modify that behavior. From a discussion with
-         Jean Delvare <jdelvare@suse.de>
-
-                                   4/1
-                                   ---
-subst.c
-       - expand_word_internal: set had_quoted_null to note for later if we
-         expand '', "", or "$x" when x is unset
-       - expand_word_internal: if we expand "$param" (or "${param}") and we
-         come back with a single word with the W_HAVEQUOTEDNULL flag set,
-         make sure we set had_quoted_null to remember it for later. In this
-         case, if we already have seen a quoted null and we expanded $@ in
-         this (sub)string expansion, we don't want to do any of the special
-         $@ handling. In particular, we don't want to set *expanded_something,
-         because that will result in word splitting and quoted null removal.
-         Fixes bug reported by Grisha Levit <grishalevit@gmail.com>
-       - parameter_brace_patsub: when expanding ${*/pat/sub} in the case
-         where ifs_is_null != 0 and (pflags & PF_NOSPLIT2) (meaning we aren't
-         going to be doing word splitting), pass MATCH_ASSIGNRHS so we do
-         the right thing in this case. Part of a set of cases inspired by
-         Grisha Levit <grishalevit@gmail.com>
-       - param_expand: case '*': if we are on the rhs of an assignment
-         (PF_ASSIGNRHS) and ifs is unset, and $1 == " ", we need to make sure
-         string_list_dollar_at gets called with Q_DOUBLE_QUOTES so it quotes
-         the positional parameters before joining them into a string with
-         string_list_internal.  Otherwise, that first space gets removed by
-         the implicit word splitting that gets performed.  Reported by
-         Grisha Levit <grishalevit@gmail.com>
-
-array.c
-       - array_patsub,array_modcase: handle ${A[*]} identically to $* when
-         not quoted and IFS is null (separate with spaces).  Makes things
-         like ${A[*]/x/y} behave the same as ${*/x/y} when IFS is null
-
-subst.c
-       - parameter_brace_patsub,parameter_brace_casemod: if expanding ${A[*]}
-         when the match is on the rhs of an assignment statement (PF_ASSIGNRHS)
-         and ifs is null, make sure the match is performed as if it were
-         quoted
-       - parameter_brace_substring: now takes a PFLAGS argument
-       - parameter_brace_substring: if expanding $* in a context where we
-         don't want to do word splitting (expand_no_split_dollar_star &&
-         PF_NOSPLIT2), make sure we expand $* as if it were quoted
-       - parameter_brace_substring: if expanding an unquoted $* on the rhs of
-         an assignment statement when IFS is null, make sure we expand the $*
-         as if it were quoted
-
-                                   4/4
-                                   ---
-doc/{bash.1,bashref.texi}
-       - read: document that a delim argument of '' terminates each line when
-         a NUL character appears
-
-                                   4/5
-                                   ---
-subst.c
-       - parameter_brace_expand_word: handle case where unquoted $@ is
-         expanded in a context where word splitting is not performed (PF_NOSPLIT2)
-         and IFS is not equal to the standard value
-       - param_expand: handle case where unquoted $@ is expanded in a context
-         where word splitting is not performed (PF_NOSPLIT2) and IFS is not
-         equal to the standard value.  Fixes bug with IFS == $1 when expanding
-         unquoted $@ reported by Grisha Levit <grishalevit@gmail.com>
-
-                                   4/7
-                                   ---
-subst.c
-       - pos_params_pat_subst: if MATCH_ASSIGNRHS is set, don't expand $*
-         as quoted unless expand_no_split_dollar_star is also set. Fixes
-         expansion bug reported on 4/4 by Grisha Levit <grishalevit@gmail.com>
-       - parameter_brace_transform: if we transform unquoted A[@] or A[*]
-         when IFS is null, don't quote the result of array_transform in the
-         same way we don't quote the result of parameter_list_transform,
-         since it will come back quoted.  Fixes bug reported by
-         Grisha Levit <grishalevit@gmail.com>
-       - list_transform: if we transform unquoted $* or ${a[*]} when IFS is
-         null and expand_no_split_dollar_star is non-zero, call
-         string_list_pos_params with Q_DOUBLE_QUOTES to inhibit splitting.
-         We do this in all cases except @Q, which is inconsistent but more
-         intuitive.
-         Fixes bug reported by Grisha Levit <grishalevit@gmail.com>
-
-                                   4/8
-                                   ---
-builtins/read.def
-       - read_mbchar: if unbuffered == 2, we are running read -N and need to
-         use zreadn to read the rest of the multibyte char, since the
-         previous call to zreadn may have buffered characters.  Fixes bug
-         reported by Stephane Chazelas <stephane.chazelas@gmail.com>
-
-pathexp.h
-       - QGLOB_CTLESC: new flag for quote_string_for_globbing: means to turn
-         CTLESC CTLESC (quoted CTLESC that's usually removed as part of
-         word splitting or quote removal) into CTLESC
-
-pathexp.c
-       - quote_string_for_globbing: if QGLOB_CTLESC is present in flags,
-         turn CTLESC CTLESC into CTLESC, even if the first CTLESC is preceded
-         by a backslash. Callers can't do this because the remaining CTLESC
-         will be treated as a quoting character and turned into a backslash
-
-execute_cmd.c
-       - execute_case_command: if the pattern is not quoted, make sure to tell
-         quote_string_for_globbing to turn CTLESC CTLESC into CTLESC by
-         passing QGLOB_CTLESC.  Fixes bug reported 4/2 by Martijn Dekker
-         <martijn@inlv.org>
-
-                                   4/9
-                                   ---
-subst.c
-       - string_transform: after calling ansiexpand for the `E' transformation,
-         need to call dequote_escapes because ansiexpand assumes it is being
-         called by the parser and arranges for ansicstr to quote CTLESC and
-         CTLNUL with CTLESC.  Reported by Grisha Levit <grishalevit@gmail.com>
-
-variables.c
-       - mk_env_string: when exporting functions, run them through
-         dequote_escapes because any strings containing CTLESC or CTLNUL are
-         still quoted with CTLESC.  Reported by Grisha Levit
-         <grishalevit@gmail.com>
-
-subst.[ch]
-       - quote_escapes,dequote_escapes: now take const char * argument
-
-execute_cmd.c
-       - execute_intern_function: if the function name contains CTLESC, run
-         it through dequote_escapes just in case it got CTLESC quoting
-         CTLESC or CTLNUL from the parser
-
-                                  4/11
-                                  ----
-eval.c
-       - reader_loop: make sure PS0 is expanded and displayed before
-         incrementing the command number
-
-parse.y
-       - prompt_history_number:  function to make history number as reported
-         by \!, or posix mode !!, be the same index that the (possibly multi-
-         line) command will be stored with. The history library increments
-         history_offset as soon as a new line is entered, and it's up to the
-         history code to store the second and subsequent lines of a command
-         in the same history entry.  If we are expanding PS0 or PS4, or
-         a ${var@P} expansion, we're already past the history entry no
-         matter what.  Inspired by patch from Grisha Levit
-         <grishalevit@gmail.com>
-       - decode_prompt_string: call prompt_history_number
-       - decode_prompt_string: if expanding PS4 or ${var@P}, make the
-         command number the same as reported by PS0/PS1/PS2
-
-                                  4/12
-                                  ----
-support/Makefile.in
-       - clean: remove man2html.o as part of this production instead of
-         waiting until `distclean'. Reported by chrlis <chrlis@sbrella.com>
-
-subst.c
-       - string_list_pos_params: if we are expanding $* in a context where
-         IFS is null and expand_no_split_dollar_star is set (no word
-         splitting), use string_list_dollar_star to force the positional
-         parameters to be joined without first separating them into a list
-         and attempting to join them later.  Fixes problem with constructs
-         like ${var=${*:1}}, pointed out by Grisha Levit
-         <grishalevit@gmail.com>. This undoes change to @Q from 4/7, so
-         list_transform change reverted
-
-                                  4/19
-                                  ----
-builtins.h
-       - added BUILTINS_H include guard
-
-examples/loadables/Makefile.in
-       - install loadables.h as sample include file, along with Makefile.inc
-
-                                  4/23
-                                  ----
-bashline.c
-       - maybe_make_readline_line: don't try to do anything if the passed
-         NEW_LINE is NULL.  Report from Jaren Stangret <sirjaren@gmail.com>,
-         fix from Eduardo Bustamante <dualbus@gmail.com>
-
-                                  4/24
-                                  ----
-parse.y
-       - xparse_dolparen: if the current token (the last thing read_token
-         returned to yylex) is shell_eof_token, assume that it is the new
-         bison lookahead token and clear it. Fixes bug reported by
-         Werner Fink <werner@suse.de>
-
-                                  4/25
-                                  ----
-doc/{bash.1,bashref.texi}
-       - cmdhist: clarify that this option only has an effect if history is
-         enabled. Suggested by Matthew Braun <matthew@powerplug.com>
-
-                                  4/26
-                                  ----
-jobs.c
-       - wait_for: if a non-interactive shell with job control enabled (set -m)
-         detects that a foreground job died due to SIGINT, act as if the shell
-         also received the SIGINT. Prompted by an austin-group-l discussion
-       - waitchld: run SIGCHLD trap for each child exited even if job control
-         is not enabled when in Posix mode. Prompted by an austin-group-l
-         discussion
-
-                                  4/27
-                                  ----
-lib/readline/histfile.c
-       - read_history_range: if the history file is empty, free the history
-         filename before returning. Report and fix from Eduardo Bustamante
-         <dualbus@gmail.com>
-
-lib/readline/bind.c
-       - rl_parse_and_bind: make sure there is something, even if it's a
-         quoted empty string, before the `:' in a key binding.  Report from
-         Eduardo Bustamante <dualbus@gmail.com>
-       - rl_parse_and_bind: if the right side of a key binding starts with a
-         quote, make sure there's a matching close quote before treating it
-         as a macro definition
-       - rl_translate_keyseq: if a key sequence ends with \C- or \M- (or
-         \C-\M-) make sure we break out of the loop if moving to the character
-         to be translated is a NUL. Old code did this only in the \C-\M-
-         case. Report from Eduardo Bustamante <dualbus@gmail.com>
-
-                                  4/28
-                                  ----
-lib/glob/sm_loop.c
-       - GMATCH: implement a clever technique from glibc that avoids
-         backtracking past a `*' if we've already chosen to use it and need
-         matches beyond it.  Look at https://research.swtch.com/glob for a
-         longer explanation. This results in a significant speedup for globs
-         with multiple instances of `*', especially with more than 4.
-
-                                   5/2
-                                   ---
-lib/readline/bind.c
-       - rl_translate_keyseq: make sure a trailing backslash in the key
-         sequence is preserved. Report from Eduardo Bustamante
-         <dualbus@gmail.com>
-
-                                   5/3
-                                   ---
-builtins/builtin.def
-       - builtin_builtin: make sure to set  this_shell_builtin to the builtin
-         command being executed, overwriting `builtin'. Leave
-         last_shell_builtin alone.  Fixes bug reported by Luiz Angelo Daros
-         de Luca <luizluca@gmail.com>
-
-jobs.c
-       - waitchld: modify change of 4/26 to run SIGCHLD traps even if job
-         control is not enabled
-
-lib/readline/misc.c
-       - rl_get_previous_history: if we didn't find a previous history entry
-         to use, call rl_maybe_unsave_line before returning because we
-         aren't going to use the saved line, and it has the same undo list
-         as rl_undo_list.  Fixes fuzzing bug reported by Eduardo Bustamante
-         <dualbus@gmail.com>
-       - rl_get_{next,previous}_history: if there is no history list, don't
-         bother doing anything
-
-                                   5/4
-                                   ---
-expr.c
-       - popexp: if we error out due to stack underflow, make sure to zero out
-         expression and lasttp; they may contain undefined values we don't
-         want evalerror to print
-       - expr_unwind: handle expr_depth decrementing below zero
-       - evalexp: restore the old value of evalbuf even if we error and
-         longjmp; we may have called evalexp recursively
-       - evalerror: make sure expression is non-NULL before trying to print it.
-         These fix fuzzing bug reported by Eduardo Bustamante
-         <dualbus@gmail.com>, happens only in cases where we don't longjmp on
-         a fatal expansion error
-
-                                   5/5
-                                   ---
-parse.y
-       - read_token_word: when checking for a word that's a target of a
-         redirection, we can potentially call valid_array_reference, which
-         can end up calling the parser recursively. If it does that, we
-         need to make sure that yylval.word doesn't change, so we set it back
-         to the_word. Fixes another fuzzing bug
-
-parse.y
-       - arith_for_command: make syntax errors in the arithmetic for command
-         (signaled by make_arith_for_command returning NULL) more like
-         language syntax errors by calling YYERROR. Avoids complicated
-         attempts at error recovery and dealing with NULL returns from
-         command productions. Pointed out by Eduardo Bustamante
-         <dualbus@gmail.com>
-
-lib/readline/kill.c
-       - _rl_copy_to_kill_ring: make sure the current slot in the kill ring
-         has something in it, even if the last command was a kill, before
-         trying to modify it. Another fuzzing bug
-
-                                   5/6
-                                   ---
-builtins/read.def
-       - read_builtin: if we see a backslash when not in raw mode (not -r),
-         only back up `i' when we read the next character if we know we added
-         a CTLESC the last time through the loop (skip_ctlesc == 0),
-         especially if i == 0. Another fuzzing bug from Eduardo Bustamante
-         <dualbus@gmail.com>
-
-                                   5/8
-                                   ---
-builtins/read.def
-       - read_mbchar: handle zreadn/zreadc/zread returning EOF in the middle
-         of an incomplete multibyte sequence.  Fixes another fuzzing bug
-       - read_builtin: use mb_cur_max instead of constant 4 when deciding
-         whether the next character can exceed the number of bytes available
-         in input_string
-
-lib/readline/input.c
-       - MinGW: include <conio.h> before <io.h>. Fix from Eli Zaretskii
-         <eliz@gnu.org>
-
-builtins/read.def
-       - read_builtin: if we get input from readline, we need to get the
-         remainder of a multibyte character from rlbuf instead of calling
-         read_mbchar. Bug reported by Eduardo Bustamante <dualbus@gmail.com>
-
-                                   5/9
-                                   ---
-parse.y
-       - token_is_assignment: use the allocated buffer approach in all cases,
-         not just if we're not using bash malloc. This avoids the assignment
-         to t[i+1] writing beyond the end of the allocated token if
-         i == token_buffer_size - 1. Another fuzzing bug
-       - xparse_dolparen: if parse_string returns < 0, we clear out the
-         current shell_input_line before performing a longjmp, since we're
-         abandoning parsing of this command.  This is consistent with how
-         the parser resynchronizes after other syntax errors
-       - GRAMMAR: add 'error yacc_EOF' production to handle a syntax error
-         that's immediately followed by an EOF after resynchronization.
-         Fixes another fuzzing bug
-
-                                  5/10
-                                  ----
-lib/readline/text.c
-       - _rl_set_mark_at_pos: don't let the mark be set to a position < 0.
-         Fixes a fuzzing bug
-       - rl_exchange_point_and_mark: don't do anything if the mark is already
-         less than 0
-
-                                  5/12
-                                  ----
-lib/readline/rlmbutil.h
-       - wchar_t: make sure this is defined as int if multibyte characters
-         aren't supported
-
-lib/readline/text.c
-       - _rl_change_case: don't force use of ascii toupper and tolower if
-         isascii returns true; it's not defined to work on characters outside
-         the 0..255 (really 0..127) range.  Bug reported by
-         Eduardo Bustamante <dualbus@gmail.com>
-
-                                  5/14
-                                  ----
-lib/readline/text.c
-       - rl_change_case: handle case where the old and new characters (after
-         the case change) are not the same number of bytes. Pointed out in
-         http://lists.gnu.org/archive/html/bug-bash/2015-01/msg00091.html
-
-lib/readline/display.c
-       - expand_prompt: use `ret' as first parameter to _rl_find_prev_mbchar
-         since that needs the base of the array. Bug from fuzzing reported by
-         Eduardo Bustamante <dualbus@gmail.com>
-
-                                  5/15
-                                  ----
-execute_cmd.c
-       - execute_simple_command, execute_arith_command, execute_cond_command,
-         execute_arith_for_command: adjust the line number when executing a
-         function interactively so that the first command in the function is
-         line 1, not line 0, as Posix requires.  Reported by Robert Elz
-         <kre@bmunnari.OZ.AU>
-       - execute_simple_command, execute_arith_command, execute_cond_command,
-         execute_arith_for_command: ony adjust the line number when executing
-         a function interactively if we are not sourcing a file
-         (sourcelevel == 0), so this is consistent everywhere we adjust the
-         line number
-
-                                  5/16
-                                  ----
-bashline.c
-       - bash_directory_completion_hook: when calling split_at_delims to see
-         whether a ${ or $( is closed, use the right value for `start' relative
-         to the substring beginning at `$'.  Bug from fuzzing reported by
-         Eduardo Bustamante <dualbus@gmail.com>
-
-expr.c
-       - expassign: if the call to expcond generates a syntax error in a
-         context when the shell won't longjmp (like when evaluating $PS1),
-         it will end up NULL and we need to catch it before calling strlen.
-         Bug from fuzzing reported by Eduardo Bustamante <dualbus@gmail.com>
-
-examples/bash-completion/
-       - new place to include a current or recent version of the
-         bash-completion package
-
-                                  5/19
-                                  ----
-lib/readline/display.c
-       - CHECK_INV_LBREAKS: new versions for multibyte and single-byte chars,
-         so the multibyte version can check and increase the size of
-         line_state_invisible->wbsize and line_state_invisible->wrapped_line,
-         callers who call CHECK_INV_LBREAKS must update
-         wrapped_line[newlines] when in HANDLE_MULTIBYTE mode. Fuzzing bug
-         reported by Eduardo Bustamante <dualbus@gmail.com>
-
-                                  5/24
-                                  ----
-lib/readline/search.c
-       - _rl_nsearch_callback,noninc_search: handle _rl_search_getchar
-         returning -1 (EOF or read error) by aborting the search.
-         Fuzzing bug reported by Eduardo Bustamante <dualbus@gmail.com>
-
-                                  5/25
-                                  ----
-variables.c
-       - localvar_inherit: new variable, controlled by shopt localvar_inherit
-         option
-       - make_local_variable: if localvar_inherit is set, the new local
-         variable inherits a previous scope's variable's value, attributes
-         (except nameref), and dynamic variable information. If a local
-         variable inherits a value, the local is not invisible
-
-builtins/shopt.def
-       - localvar_inherit: new option
-
-doc/{bash.1,bashref.texi}
-       - localvar_inherit: document new shopt option
-
-                                  5/29
-                                  ----
-lib/readline/readline.c
-       - _rl_subseq_result: only return -1 and back up the chain if we are
-         dealing with a result (r) that's already < 0 and we are at the end
-         of a multi-key sequence. Otherwise, a failing readline command (e.g.,
-         delete-char at the end of a line) could cause this code to be
-         executed.  Report from Nuzhna Pomoshch <nuzhna_pomoshch@yahoo.com>
-
-lib/readline/histfile.c
-       - read_history_range: if the file isn't a regular file, return an
-         error. Bug report from Eduardo Bustamante <dualbus@gmail.com>,
-         relaying from IRC
-
-                                  5/30
-                                  ----
-variables.c
-       - set_pwd: if in Posix mode, and PWD appears in initial environment as
-         an absolute pathname to the current directory, set PWD to the result
-         of canonicalizing the environment value, or to the physical path if
-         canonicalization fails. From a suggestion by Eduardo Bustamante
-         <dualbus@gmail.com>
-
-                                  5/31
-                                  ----
-builtins/read.def
-       - read_builtin: if -n or -N option is supplied with a 0 argument,
-         don't attempt to read any characters; bail out right away. Reported
-         by Eduardo Bustamante <dualbus@gmail.com>, relaying from IRC
-
-                                   6/3
-                                   ---
-config.h.in
-       - HAVE_STRUCT_STAT_ST_ATIM_TV_NSEC: add define, used by stat-time.h
-         to construct a timespec from struct stat. Report and fix from
-         Siteshwar Vashisht <svashisht@redhat.com>
-
-variables.h
-       - att_regenerate: new internal variable attribute: if set, regenerate
-         dynamic variable's value when it's exported and we are creating the
-         export environment
-
-variables.c
-       - init_dynamic_variables: LINENO, EPOCHSECONDS, EPOCHREALTIME: set
-         internal regenerate attribute for these dynamic variables
-       - make_env_array_from_var_list: if a dynamic variable has the
-         regenerate attribute set, call the dynamic value function to generate
-         an updated value before placing it in the environment.  From a report
-         about exporting LINENO from Robert Elz <kre@bmunnari.OZ.AU>
-
-                                   6/4
-                                   ---
-lib/glob/sm_loop.c
-       - BRACKMATCH: at the matched: label, make sure we get the bracket
-         character we're looking for (char class, collating symbol. etc.)
-         before we decrement the count of braces we're looking for. Eventually
-         we could do something about badly-formed bracket expressions
-
-                                   6/7
-                                   ---
-lib/readline/histlib.h
-       - strchr: only declare if  __STDC__ is not defined, since we already
-         include <string.h>.  Report from Chi-Hsuan Yen <yan12125@gmail.com>
-
-                                   6/9
-                                   ---
-lib/readline/display.c
-       - update_line: when wrapping lines with multibyte chars at the end of
-         the new line being wrapped, make sure we copy the NULL byte in old
-         when moving the contents of old around. Fuzzing bug reported by
-         Eduardo Bustamante <dualbus@gmail.com>
-
-lib/readline/mbutil.c
-       - _rl_get_char_len: use MB_CUR_MAX in the call to mbrlen; there's no
-         need to look at the rest of the string when we're just interested in
-         the length of a single character
-
-                                  6/12
-                                  ----
-jobs.c
-       - wait_for: when waiting for the next child to exit (ANY_PID), make
-         sure to restore the old SIGINT handler before returning.  Fixes
-         https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=864649
-
-                                  6/14
-                                  ----
-lib/readline/display.c
-       - expand_prompt: make sure `ret' is NULL-terminated before calling
-         _rl_prev_mbchar_internal, since that calls strlen, which requires
-         the passed string to be NULL-terminated. Another fuzzing bug.
-
-                                  6/15
-                                  ----
-lib/readline/isearch.c
-       - _rl_isearch_fini: use rl_replace_line instead of strcpy so rl_end
-         gets set right
-       - _rl_isearch_fini: after restoring rl_point, call _rl_fix_point so
-         we don't set rl_point > rl_end. Fixes a fuzzing bug
-
-lib/readline/mbutil.c
-       - _rl_find_next_mbchar_internal: if _rl_adjust_point returns < 0,
-         just punt, treat the value as a byte, and advance point by 1
-
-lib/readline/util.c
-       - rl_tilde_expand: rearrange code in the whitespace loop so that
-         `start' gets tested first and we don't try to dereference
-         rl_line_buffer[-1]. Another fuzzing bug from dualbus@gmail.com
-
-bashline.c
-       - bash_dequote_filename: make sure that pointers that are used as
-         indices into sh_syntaxtab are cast to unsigned char first, to
-         avoid problems with signed chars > 128. Fixes a fuzzing bug.
-
-lib/readline/kill.c
-       - _rl_copy_to_kill_ring: when reallocating the kill ring, make sure to
-         allocate one more than the max number of kills so the loop that
-         copies the kill ring entries down runs right (and to mirror the
-         initial allocation). Fixes a fuzzing bug.
-
-lib/readline/isearch.c
-       - _rl_isearch_dispatch: make sure that cxt->sline_index never goes < 0
-         even when searching a line in reverse. Fixes a fuzzing bug
-
-                                  6/16
-                                  ----
-parse.y
-       - xparse_dolparen: short-circuit immediately if passed a empty string
-
-lib/readline/display.c
-       - update_line: when wrapping multibyte characters, make sure we deal
-         with WCWIDTH returning -1. Fixes a fuzzing bug
-
-                                  6/17
-                                  ----
-execute_cmd.c
-       - execute_coproc: make sure `invert' is set before trying to use it
-         when returning failure on invalid coproc name.  Report and fix from
-         Eduardo Bustamante <dualbus@gmail.com>
-       - execute_command_internal: make sure execute_coproc sets
-         last_command_exit_value if it returns failure, so an invalid name
-         can set $? = 1.  Report and fix from Eduardo Bustamante
-         <dualbus@gmail.com>
-
-lib/readline/display.c
-       - update_line: make sure all references to `wrapped_line' are wrapped
-         with #ifdef HANDLE_MULTIBYTE.  Report and fix from Eduardo Bustamante
-         <dualbus@gmail.com>
-
-lib/readline/vi_mode.c
-       - _rl_vi_change_char: don't use rl_point++ when you mean to move
-         forward a character; use _rl_vi_append_forward to account for
-         multibyte characters and take vi end of line handling into account
-       - _rl_vi_last_replacement: now an array of chars whether we are
-         using multibyte chars or not. If we're not, the character we read
-         to use as the replacement is saved as the first element of the array
-       - rl_vi_change_char,_rl_vi_callback_change_char: changes to deal with
-         _rl_vi_last_replacement being an array.  Fixes bug reported by
-         Eduardo Bustamante <dualbus@gmail.com>
-
-lib/readline/mbutil.c
-       - _rl_get_char_len: look at at most MB_CUR_MAX characters, but maybe
-         fewer if the length of the string is less
-
-builtins/bind.def
-       - unbind_keyseq: new function for the -r option; checks whether the
-         key sequence is actually bound before trying to bind it to NULL.
-         Partial fix for https://savannah.gnu.org/support/?109329
-
-parse.y
-       - augment `error yacc_EOF' production to call YYABORT in non-interactive
-         shells or calls to parse_and_execute (eval, command substitution,
-         etc.) Fixes bug reported by Martijn Dekker <martijn@inlv.org>
-
-                                  6/19
-                                  ----
-bashline.c
-       - edit_and_execute_command: don't add rl_line_buffer to the history
-         list if it's empty; consistent with how other code treats an empty
-         line
-
-execute_cmd.c
-       - execute_builtin: make sure to preserve the temporary env across the
-         execution of the `read' builtin or `fc' builtin if HISTORY is
-         defined, in case `read -e' calls edit-and-execute-command.  Should
-         have no side effects. Reported by Eduardo Bustamante
-         <dualbus@gmail.com>
-
-general.c
-       - line_isblank: new function: returns true if passed string is composed
-         entirely of blanks
-
-general.h
-       - line_isblank: new extern declaration
-
-parse.y
-       - history_delimiting_chars: return "" for a blank line, since there's
-         nothing to delimit with `;'
-
-                                  6/21
-                                  ----
-jobs.c
-       - wait_for: make sure to call restore_sigint_handler before returning
-         if we return out of the loop due to no children. Report from
-         Eduardo Bustamante <dualbus@gmail.com>
-
-subst.c
-       - expand_word_internal: if split_on_spaces is set, and the word is
-         unquoted, and IFS is null, split the results of the previous steps
-         on $' \t\n' instead of just ' '. This relies on the previous steps
-         quoting the portions of the word that should not be split.  Fixes
-         bug reported by Kevin Brodsky <corax26@gmail.com>
-
-expr.c
-       - evalexp: after running expr_unwind, make sure we reset expr_depth
-         to 0 for the next call
-       - expr_streval: if after a call to get_array_value (which can call
-         the expression evaluator recursively) we discover that expr_depth
-         is less than it was before we called it, we assume there has been
-         some kind of error and an expr_unwind, so we treat it as an
-         error and either longjmp back to the expression top level or return
-         0 immediately. Fixes bug reported by Eduardo Bustamante
-         <dualbus@gmail.com>
-
-                                  6/23
-                                  ----
-doc/{bash.1,bashref.texi}
-       - add text noting that $* and ${array[*]} (unquoted) can also expand
-         to multiple words
-
-                                  6/29
-                                  ----
-general.[ch]
-       - default_columns: new function, returns the value of COLUMNS, or
-         refreshes it if check_window_size is set and COLUMNS is unset. By
-         default, it returns 80
-
-execute_cmd.c
-       - select_query: use default_columns() instead of fetching value of
-         COLUMNS directly
-
-builtins/help.def
-       - show_builtin_command_help: use default_columns() instead of fetching
-         value of COLUMNS directly
-
-                                  6/30
-                                  ----
-builtins/read.def
-       - read_builtin: call QUIT during the read loop, just in case we get a
-         signal we should act on that didn't cause read to be interrupted.
-         Fixes https://bugzilla.redhat.com/show_bug.cgi?id=1466737
-       - read_builtin: if -n or -N is supplied with a 0 argument, try a zero-
-         length read to detect errors and return failure if that read returns
-         a value < 0. Suggested by dualbus@gmail.com
-
-                                   7/4
-                                   ---
-bashhist.c
-       - maybe_add_history: keep track of whether the current line is a shell
-         comment, even if we're not adding it because it's in a multi-line
-         command, so we use appropriate delimiters between it and any
-         subsequent lines. Fixes bug reported by Grisha Levit
-         <grishalevit@gmail.com> back on 2/28/2017
-
-bashline.c
-       - operate_and_get_next: if given an explicit argument, use that to
-         choose which line in the history to use.
-
-lib/readline/doc/rluser.texi,doc/bash.1
-       - operate-and-get-next: document new effect of explicit numeric arg
-
-lib/readline/complete.c
-       - fnprint: make sure print_len is initialized before using it on
-         systems without multibyte character support.  Report and fix from
-         Juan Manuel Guerrero <juan.guerrero@gmx.de>
-
-                                   7/6
-                                   ---
-builtins/printf.def
-       - PRETURN,printf_builtin: check variable returned by bind_printf_variable,
-         return failure if that indicates we can't perform an assignment
-         because the variable is marked readonly or noassign. Fixes bug
-         reported by Arnaud Gaillard <arnaud.mgaillard@gmail.com>
-
-                                   7/7
-                                   ---
-lib/readline/text.c
-       - rl_quoted_insert: new feature: a negative argument means to insert
-         the next -COUNT characters using quoted-insert. Original feature
-         from Jason Hood <jadoxa@yahoo.com.au>. Still needs work on
-         redisplay
-       - _rl_insert_next_callback: implement support for negative arguments
-         similar to rl_quoted_insert: we just insert one at a time and keep
-         increasing the count until it hits 0
-
-lib/readline/misc.c
-       - _rl_arg_callback: if the return value from _rl_arg_dispatch indicates
-         we should keep reading a numeric argument, update the message with
-         the new arg value
-
-                                   7/8
-                                   ---
-lib/readline/signals.c
-       - _rl_handle_signal: make sure all uses of any of the job control
-         signals are protected by a check for SIGTSTP being defined.  Report
-         from Juan Manuel Guerrero <juan.guerrero@gmx.de>
-
-                                  7/11
-                                  ----
-lib/readline/vi_mode.c
-       - rl_vi_replace: when making the new keymap for vi replacement mode,
-         make sure that ANYOTHERKEY is set correctly, otherwise some input
-         will cause _rl_dispatch to return -2 to the top level.  Fixes fuzzing
-         bug reported by Ben Wong <benjamin.a.wong@gmail.com>
-
-                                  7/19
-                                  ----
-builtins/read.def
-       - struct ttsave: make the attrs member a struct, not a pointer, to force
-         a structure copy that will survive a longjmp to another context.
-         Leaving it as a pointer to a local struct is not portable
-
-                                  9/10
-                                  ----
-execute_cmd.c
-       - execute_builtin: make sure that we set up the unwind-protect for
-         pop_scope (temporary_env is non-zero) so that the temporary env
-         is propagated to the current environment only for special builtins
-         (source/eval/unset) not run by the command builtin
-         (flags & CMD_COMMAND_BUILTIN == 0).  Fixes bug reported by
-         Martijn Dekker <martijn@inlv.org>
-
-                                  9/17
-                                  ----
-builtins/printf.def
-       - asciicode: don't use mblen to check whether or not a character is a
-         valid multibyte character; use mbtowc right away and then inspect
-         the return value.  Fixes bug reported by Stephane Chazelas
-         <stephane.chazelas@gmail.com>
-
-                                  9/27
-                                  ----
-{jobs,subst}.h
-       - move declaration of last_command_subst_pid to subst.h, since it's
-         declared in subst.c and doesn't depend on job control. Reported by
-         Martijn Dekker <martijn@inlv.org>
-
-builtins/read.def,variables.c
-       - fixed a couple of problems (READLINE, ARRAY_VARS) that prevented
-         the minimal config from building
-
-                                  10/1
-                                  ----
-parse.y
-       - special_case_tokens: if we are returning DO in a case where the last
-         two tokens read are `FOR' and `WORD' make sure we decrement
-         expecting_in_token.  Fixes bug reported by Martijn Dekker
-         <martijn@inlv.org>
-
-                                  10/4
-                                  ----
-subst.c
-       - expand_string_for_rhs: now takes an additional PFLAGS argument from
-         its caller (one so far); passes that through to call_expand_word_internal
-         as W_ASSIGNRHS. Fixes bug reported by Martijn Dekker
-         <martijn@inlv.org>
-       - expand_string_for_rhs: expanding b in ${a[:]=b} is now done as if
-         b were the rhs of an assignment statement. This means that splitting
-         isn't done, but tilde expansion is performed as if the statement
-         were `a=b'. Fixes splitting bug with $* reported by Martijn Dekker
-         <martijn@inlv.org>
-
-command.h
-       - W_NOASSNTILDE: new word flag, means to not perform tilde expansion
-         following a `:' even if the word has the W_ASSIGNRHS flag enabled
-
-subst.c
-       - expand_word_internal: if we see a `:' with the W_NOASSNTILDE flag
-         set, just add the character and inhibit any subsequent tilde
-         expansion. Currently not set anywhere, but it could be set in
-         expand_string_for_rhs to satisfy its peculiar semantics
-
-                                  10/6
-                                  ----
-lib/sh/casemod.c
-       - sh_modcase: convert even single-byte wide characters to wide upper
-         or lowercase equivalents to accommodate locales where single-byte
-         characters have multibyte upper and lower case conversions. Bug
-         reported by Stephane Chazelas <stephane.chazelas@gmail.com>
-
-                                  10/7
-                                  ----
-doc/{bash.1,bashref.texi}
-       - slight changes to the description of command_not_found_handle to
-         clarify that it's executed in a separate execution environment,
-         just like if the command was found. Reported by Martijn Dekker
-         <martijn@inlv.org>
-
-                                  10/8
-                                  ----
-lib/readline/doc/{history.3,hstech.texi}
-       - history_get: clarify the range of valid values for the OFFSET
-         argument. From a report by Kevin Ryde <user42_kevin@yahoo.com.au>
-
-                                  10/21
-                                  -----
-subst.c
-       - expand_string_for_rhs: set W_NOASSNTILDE if the operator is `='
-         for backwards compatibility with bash-4.4
-
-shell.c
-       - main: set positional parameters before running the startup files,
-         so the startup files can inspect $@.  Often-requested feature,
-         most recently from Stephane Chazelas <stephane.chazelas@gmail.com>
-
-                                  10/27
-                                  -----
-doc/{bash.1,bashref.texi}
-       - Arrays: add some clarifying language to make it clear that array
-         references that don't use the ${a[s]} syntax are subject to
-         globbing when passed as arguments to commands such as unset, and
-         should be quoted for safety. Change prompted by a report from
-         Eli Barzilay <eli@barzilay.org>
-
-parse.y
-       - parse_comsub: make sure we don't run off the end of the `ret'
-         buffer when checking for the here doc delimiter.  Report from
-         Jakub Wilk <jwilk@jwilk.net>, the result of a fuzzing test. Pointer
-         to place for the fix from Eduardo Bustamante <dualbus@gmail.com>
-
-                                  10/30
-                                  -----
-builtins/pushd.def
-       - get_directory_stack: make sure the current directory (element 0 of
-         the stack) is passed to polite_directory_format under the same
-         conditions as the rest of the stack entries (flags & 1). Otherwise
-         something like `cd ${DIRSTACK[0]}' will fail. Fixes bug reported
-         by Steve Jones <sjml@slohj.org>
-
-builtins/declare.def
-       - declare_internal: when checking for a `[' to see whether or not this
-         is an array variable declaration (declare -a foo[12]), make sure
-         we don't do the check if we're just dealing with shell functions.
-         Bug and pointer to fix from PJ Eby <pje@telecommunity.com>
-
-                                  11/1
-                                  ----
-parse.y
-       - parse_comsub: if we read a four-character word followed by a break
-         character, and that word is not one of the reserved words, set
-         lex_rwlen to 0 since we are no longer in a reserved word. It only
-         hurts if another break character immediately follows, so that test
-         succeeds again. Turn off the RESWDOK flag only if it's not a shell
-         metacharacter, too. Fixes bug reported by Kjetil Torgrim Homme
-         <kjetilho@scribus.ms.redpill-linpro.com>
-
-                                  11/3
-                                  ----
-lib/readline/isearch.c
-       - _rl_isearch_dispatch: if we are searching in reverse order, let
-         sline_index go to -1 to avoid searching the same line twice. It
-         gets reset right after that, so there's no danger of indexing into
-         the history line with a negative index.
-
-                                  11/7
-                                  ----
-execute_cmd.c
-       - time_command: only restore command->flags if CODE indicates we didn't
-         perform a longjmp back to top_level. If we did, `command' has already
-         been freed. Fixes bug reported on savannah by 
-         ukuvbu oibws <xyzdr4gon333@googlemail.com>
-         https://savannah.gnu.org/support/?109403
-
-                                  11/10
-                                  -----
-lib/sh/unicode.c
-       - u32cconv: make sure to initialize localconv to -1 (error) in case
-         we switch from a utf-8 locale to something else and call
-         iconv_close. Report from Egmont Koblinger <egmont@gmail.com>; fix
-         from Eduardo Bustamante <dualbus@gmail.com>
-
-                                  11/16
-                                  -----
-subst.c
-       - parse_comsub: istring_index should be a size_t to avoid integer
-         overflow when allocating large pieces of memory. Report and fix
-         from Siteshwar Vashisht <svashisht@redhat.com>, originally based on
-         http://lists.gnu.org/archive/html/bug-bash/2017-11/msg00047.html
-
-                                  11/24
-                                  -----
-lib/readline/bind.c
-       - rl_empty_keymap: new public function, returns non-zero if there are
-         no keys bound in the keymap passed as an argument
-
-lib/readline/readline.h
-       - rl_empty_keymap: new public extern declaration
-
-lib/readline/doc/rltech.texi
-       - rl_empty_keymap: document new function
-
-lib/readline/bind.c
-       - rl_generic_bind: keep track of the previous keymap and previous
-         index in a multi-key key sequence so we can remove an empty terminal
-         keymap and remove a previous override to ANYOTHERKEY. Right now,
-         this only works for one previous keymap level. Inspired by a report
-         from Clark Wang <dearvoid@gmail.com>
-
-                                  11/25
-                                  -----
-lib/readline/display.c
-       - _rl_update_final: make sure that computing the length of the visible
-         bottom line (botline_length) takes any invisible characters in the
-         prompt into account (woff). This value is used as part of the check
-         whether or not we want to remove the line-wrapping indicator on
-         terminals like xterm
-       - _rl_update_final: when removing the line-wrapping indicator on xterm,
-         make sure we take invisible characters in the prompt (woff) into
-         account when computing the character in the rightmost physical
-         screen position. Fixes cosmetic line-wrapping issue reported by
-         Egmont Koblinger <egmont@gmail.com>
-
-                                  11/27
-                                  -----
-lib/sh/ufuncs.c
-       - fsleep: if using select to implement sleep, use restart after
-         a signal interrupts the select and handle pending signals. If
-         pselect is available, use that instead and block SIGCHLD while
-         pselect is executing.
-         Fixes report from Thiruvadi Rajaraman <trajaraman@mvista.com>
-
-                                  11/28
-                                  -----
-lib/readline/signals.c
-       - rl_check_signals: new public function: a wrapper for RL_CHECK_SIGNALS
-         that can be used by applications that install a wrapper for
-         rl_getc (rl_getc_function) so they can respond to signals that
-         arrive while waiting for input in the same way as rl_getc. The app
-         can use rl_pending_signal() to get the most recently-received
-         signal. From a discussion about Gnuplot initiated by
-         Rin Okuyama <rokuyama@rk.phys.keio.ac.jp>
-
-lib/readline/readline.h
-       - rl_check_signals: new extern declaration
-
-lib/readline/doc/rltech.texi
-       - rl_check_signals: document new public function
-
-variables.c
-       - set_pwd: test for and force an inherited OLDPWD to be a directory
-         if OLDPWD_CHECK_DIRECTORY is defined in config-top.h (it is by
-         default). Issue raised by Mikulas Patocka <mikulas@twibright.com>
-
-config-top.h
-       - OLDPWD_CHECK_DIRECTORY: new define, defined to 1 by default
-
-                                  11/29
-                                  -----
-Makefile.in
-       - pathexp.o: add dependencies on libintl.h.  Reported by
-         Ross Burton <ross@burtonini.com>
-
-                                  12/1
-                                  ----
-lib/sh/ufuncs.c
-       - fsleep: add blocking and releasing SIGCHLD using sigprocmask
-         around call to select(2) even if pselect(2) is not available
-
-                                  12/3
-                                  ----
-execute_cmd.c
-       - coproc_setstatus: new utility function, take a pointer to a coproc
-         and a status and mark the coproc as dead and having been reaped
-         with that status. Used by child processes who want to invalidate
-         the coproc's pid
-
-                                  12/5
-                                  ----
-subst.c
-       - process_substitute: instead of just having a flag to denote that a
-         file descriptor is connected to a process substitution, store the
-         pid of the child process (still needs work)
-       - find_procsub_child,set_procsub_status,reap_procsubs: utility
-         functions to allow the job control code to detect that a process
-         substitution child has died and deallocate the file descriptors
-         or pathname
-
-subst.h
-       - find_procsub_child,set_procsub_status,reap_procsubs: extern
-         declarations
-
-nojobs.c
-       - set_pid_status: if we are reaping a process substitution, call
-         set_procsub_status to record the fact
-
-jobs.c
-       - waitchld: if we are reaping a process substitution, call
-         set_procsub_status to record the fact. Doesn't really do anything
-         yet
-
-                                  12/6
-                                  ----
-execute_cmd.c
-       - execute_command: don't call unlink_fifo_list if we're in the
-         middle of executing a list of commands (executing_list != 0).
-         Partial fix for bug reported by Stephane Chazelas
-         <stephane.chazelas@gmail.com>
-       - execute_simple_command: don't close process substitution file
-         descriptors in the parent after forking children in a pipeline;
-         defer until pipeline completes, since parent may have inherited
-         fds from a calling scope (e.g., via `.'). EXPERIMENTAL
-       - execute_disk_command: don't close process substitution file
-         descriptors in the parent after forking the child. EXPERIMENTAL
-
-                                  12/7
-                                  ----
-doc/bash.1,lib/readline/doc/{readline.3,rluser.texi}
-       - show-mode-in-prompt: clarify that this must be enabled before the
-         vi and emacs mode strings are prefixed to the prompt.  Report from
-         Rob Foehl <rwf@loonybin.net>
-
-                                  12/8
-                                  ----
-execute_cmd.c
-       - execute_coproc: don't warn about an existing coproc if the write and
-         read file descriptors are unusable (-1), as they will be after a
-         call to coproc_closeall in a subshell. Fixes spurious warning
-         reported by Tobias Hoffmann <lfile-list@thax.hardliners.org>
-
-jobs.c
-       - bgp_resize: avoid overflow when calculating the new size if the
-         child process limit is something ridiculously large. Report and
-         fix from Natanael Copa <ncopa@alpinelinux.org>
-
-execute_cmd.c
-       - execute_builtin_or_function: if we return via the return builtin, we
-         don't get a chance to free the saved fifo list, so add an unwind-
-         protect to make sure it happens. Part of fix for leak reported by
-         Oyvind Hvidsten <oyvind.hvidsten@dhampir.no>
-       - execute_command_internal: if we unwind via the return builtin (e.g.,
-         we execute a function which then returns via the return builtin to
-         a previous function), we don't free the saved fifo list, so add an
-         unwind-protect to make sure the free happens. Rest of fix for leak
-         reported by Oyvind Hvidsten <oyvind.hvidsten@dhampir.no>
-
-subst.c
-       - add_fifo_list: for the FIFO case (no /dev/fd), make sure we
-         initialize the new members of the fifo list after xrealloc
-
-                                  12/9
-                                  ----
-subst.c
-       - dev_fd_list: now a list of type `pid_t' so we can store process
-         associated with the pipe fd into the right element; change all
-         necessary functions (copy_fifo_list, add_fifo_list)
-       - process_substitute: store pid of child process into the right
-         index in dev_fd_list after opening the pipe. Process ID of -1 means
-         process has been reaped and fd needs to be closed (or FIFO needs to
-         be unlinked); value of 0 means slot is unused
-
-jobs.c
-       - wait_for_background_pids: call reap_procsubs to make sure we clean
-         up all reaped process substitutions before trying to wait for
-         everything (still needs work)
-
-tests/{run-procsub,procsub.{tests,right}}
-       - new file, tests of process substitution that have failed in the past
-
-                                  12/10
-                                  -----
-jobs.c
-       - wait_for_background_pids: warn if one of the jobs is stopped
-
-subst.c
-       - wait_procsubs: new function, call wait_for for every "live" process
-         substitution
-
-jobs.c
-       - wait_for_background_pids: call wait_procsubs to reap any living
-         process subsitutions
-
-                                  12/13
-                                  -----
-lib/readline/bind.c
-       - parser_if: add support for testing the readline version, using the
-         full set of arithmetic comparison operators (and supporting both
-         = and ==), using version numbers of the form major[.[minor]]
-
-                                  12/14
-                                  -----
-subst.[ch]
-       - string_list_dollar_star: now takes QUOTED and PFLAGS arguments like
-         string_list_dollar_at, changed all callers. Not used yet.
-
-                                  12/16
-                                  -----
-subst.c
-       - param_expand: broke out cases of expanding unquoted (quoted == 0)
-         $* on the rhs of an assignment statement (pflags & PF_ASSIGNRHS)
-         with various values of IFS (unset, null, set to non-null value) to
-         capture the expansion subtleties. From a report back on 11/24 by
-         Martijn Dekker <martijn@inlv.org>
-
-                                  12/17
-                                  -----
-array.h
-       - set_element_value: new define, sets array element AE to VALUE
-
-variables.c
-       - set_pipestatus_array: use set_element_value where appropriate
-
-                                  12/18
-                                  -----
-subst.c
-       - parameter_brace_find_indir: when expanding the indirect parameter
-         to find the eventual variable name, we don't perform word splitting.
-         Make sure this does the right thing for * and @.  Fixes bug
-         reported by isabella parakiss <izaberina@gmail.com>
-
-                                  12/19
-                                  -----
-doc/{bash.1,bashref.texi}
-       - indirect expansion: make sure to note that the value of the indirect
-         variable does not undergo word splitting as one of its expansions,
-         as in fix from 12/18
-
-                                  12/22
-                                  -----
-subst.c
-       - parameter_brace_expand_rhs: make sure the value this function returns
-         when OP is `=' is quoted appropriately, as the callers expect. More
-         changes from Posix interp 221. Fixes report from Martijn Dekker
-         <martijn@inlv.org>
-
-variables.c
-       - assign_hashcmd: if running in a restricted shell, make sure the
-         target of the hash assignment can be found via a $PATH search, to
-         prevent users assigning commands to the hash table they would not
-         ordinarily have access to. Fixes issue raised by Drew Parker
-         <andrew.s.parker2@gmail.com>
-
-builtins/hash.def
-       - hash_builtin: if running in a restricted shell, make sure the
-         pathname target of `hash -p' can be found via a $PATH search, to
-         prevent users assigning commands to the hash table they would not
-         ordinarily have access to.
-
-                                  12/27
-                                  -----
-array.c,arrayfunc.c,...
-       - many changes to clean up unused variables and functions. From a
-         report from Siteshwar Vashisht <svashisht@redhat.com>
-
-                                  12/28
-                                  -----
-lib/readline/terminal.c
-       - _rl_term_clrscroll: save the `E3' termcap capability, which clears
-         the scrollback buffer where supported. Unused right now
-
-lib/readline/rlprivate.h
-       - _rl_term_clrscroll: extern declaration
-
-lib/readline/bind.c
-       - parser_if: added simple variable comparison capability. Allowable
-         operators are `=', `==', and `!='; boolean variables must be
-         compared to either `on' or `off'; variable names must be separated
-         from the operator by whitespace
-
-doc/bash.1,lib/readline/doc/{rluser.texi,readline.3}
-       - document new `if variable comparison value' construct
-
-                                1/2/2018
-                                --------
-lib/glob/sm_loop.c
-       - EXTMATCH: when matching against !(patlist), if a filename beginning
-         with a `.' does not match any of the patterns in patlist, don't
-         return it as a match if leading dots need to be matched explicitly
-         (flags & FNM_PERIOD). Report from Eric Cook <llua@gmx.com>
-
-                                   1/3
-                                   ---
-variables.[ch]
-       - bind_function_def: takes an additional flags argument. If FLAGS&1,
-         overwrite any existing function_def hash table entry; if FLAGS==0,
-         leave any existing function_def alone.
-
-make_cmd.c
-       - make_function_def: call bind_function_def with flags == 0
-
-execute_cmd.c
-       - execute_intern_function: call bind_function_def with flags == 1 so
-         we have function_def information that's correct for where the
-         function is defined, not just where it's last parsed. Fixes report
-         from Bruno Vasselle <bruno.vasselle@laposte.net>; final piece of
-         fix from 12/15/2011
-
-                                   1/4
-                                   ---
-subst.c
-       - param_expand: deal with string_list_dollar_star returning NULL.
-         Fixes bug reported by Martijn Dekker <martijn@inlv.org>
-
-builtins/history.def
-       - history_builtin: enabled code that performs range deletion
-
-                                   1/5
-                                   ---
-subst.c
-       - do_assignment_internal: if performing a compound assignment, make
-         sure to pass ASS_CHKLOCAL flag to do_compound_assignment if the
-         assignment word has the W_CHKLOCAL flag set
-       - do_compound_assignment: honor ASS_CHKLOCAL flag and check for an
-         existing local variable before creating or modifying a global
-         variable
-
-builtins/declare.def
-       - declare_internal: new (undocumented so far) option: -G. Means to
-         act on global variables (create, modify) if no local variable is
-         found with the specified name
-       - declare_find_variable: new declare-specific wrapper functon for
-         declare builtin; obeys -g and -G options in one place
-       - declare_internal: if no variable is found after following any nameref
-         chain, look up the variable using declare_find_variable to honor the
-         -G option. XXX - so far, this is the only place that function is used
-
-subst.c
-       - shell_expand_word_list: before calling make_internal_declare, add
-         'G' to the options list if W_CHKLOCAL is set in the word's flags.
-         This makes builtins like `readonly' that modify local variables in
-         a function behave the same for scalar and array variables
-
-                                  1/11
-                                  ----
-parse.y
-       - shell_getc: move code that decides whether to append a space to an
-         alias expansion here from mk_alexpansion, so we can inhibit adding
-         a space if we're currently parsing a single or double quoted string
-
-                                  1/12
-                                  ----
-
-parse.y
-       - clear_string_list_expander: take a pointer to an alias that's about
-         to be freed and make sure there aren't any pointers to it in the
-         list of pushed strings. If there are, zero it out in the pushed
-         string list to avoid referencing freed memory in pop_string()
-
-alias.c
-       - free_alias_data: if an alias being freed is currently being expanded,
-         call clear_string_list_expander to remove references to it from the
-         list of pushed strings
-
-                                  1/14
-                                  ----
-pcomplib.c
-       - progcomp_search: add code to look up an alias for the CMD argument
-         and return the completions for the first word of that alias if one
-         is found. Just a start at completing aliases, a much-requested
-         feature
-
-pcomplete.h
-       - COPT_LASTUSER: last flag value used by user-settable completion
-         options
-       - PCOMP_RETRYFAIL, PCOMP_NOTFOUND: new #defines, possible return values
-         from programmable_completions in FOUNDP argument. Moved RETRYFAIL
-         define here from pcomplete.c to avoid collisions with user-settable
-         option values (COPT_*)
-
-                                  1/15
-                                  ----
-pcomplete.c
-       - programmable_completions: if we don't find any completions for a
-         command, and RETRY is 0, see if the command is a defined alias,
-         expand it, and try to expand the first word of the value as a
-         command, and find any programmable completions for it. Here right
-         now, could be moved to attempt_shell_completion later if we need
-         to do more analysis of the expanded line. We'll see how it works
-         in practice. (Disabled for now.)
-
-                                  1/16
-                                  ----
-parse.y
-       - grammar: when timing the null command, make sure to turn off the
-         flags in parser_state (PST_REDIRLIST) that make_simple_command sets
-         when given a NULL second argument, since it assumes that it's going
-         to turn those off when it gets the next word of the simple command
-         (which it never gets in this case).  Fixes bug reported by
-         Anti Räis <antirais@gmail.com>
-
-                                  1/19
-                                  ----
-lib/readline/rltty.c
-       - prepare_terminal_settings (termios/termio): if there is a function
-         bound to the VDISCARD character in the current keymap, set VDISCARD
-         to _POSIX_VDISABLE while readline is active. From a report from
-         Rhialto <rhialto@falu.nl>
-
-                                  1/22
-                                  ----
-builtins/history.def
-       - histtime: check whether or not localtime() returns NULL, and make
-         sure we only call strftime() with a valid struct tm. This can happen
-         when the timestamps in the history file overflow a time_t. Fixes bug
-         reported by Luke Dashjr <luke@dashjr.org>
-
-bashline.c
-       - edit_and_execute_command: if we're in vi editing mode, make sure
-         we end up in insert mode after executing the commands from the
-         edited file. This seems to be what other shells do. Report from
-         Stan Marsh <gazelle@xmission.com>
-
-                                  1/26
-                                  ----
 bashline.c
-       - command_word_completion_function: match alias and shell function
-         names case-insensitively if the readline completion-ignore-case
-         variable is set. Inspired by report from <odnehel@gmail.com>
-
-lib/readline/display.c
-       - update_line: when performing a dumb update after wrapping the line
-         (usually due to printing the prompt), make sure we adjust
-         _rl_last_c_pos if there are invisible characters in prompt lines
-         other than the first (we assume those invisible characters are in
-         the last line, which is nearly always the case). We adjust by the
-         total number of invisible chars less the number of invisible chars
-         in the first prompt line. From a report in
-         https://bugs.launchpad.net/ubuntu/+source/bash/+bug/1745273
-
-execute_cmd.c
-       - execute_command_internal: if redirections attached to a compound
-         command fail, make sure we discard the `internal_fifos' unwind-
-         protect frame after freeing the copied fifo_list and before returning
-
-                                  1/30
-                                  ----
-lib/readline/rlprivate.h
-       - BRACK_PASTE_FINI: add \r to the end of the string to avoid problems
-         with the tty driver thinking the cursor was in the wrong position.
-         Fixes issue reported by Egmont Koblinger <egmont@gmail.com>
-
-                                  1/31
-                                  ----
-lib/sh/zread.c
-       - zread,zreadintr: call check_signals() before calling read() to
-         minimize the race window between signal delivery, signal handling,
-         and a blocking read(2). Partial fix for FIFO read issue reported by
-         Oyvind Hvidsten <oyvind.hvidsten@dhampir.no>
-
-doc/{bash.1,bashref.texi}
-       - shopt: document `assoc_expand_once' shell option
-
-                                   2/1
-                                   ---
-config-top.h
-       - DONT_REPORT_SIGPIPE: define, so non-interactive shells will no
-         longer print termination messages for child processes killed by
-         SIGTERM
-
-                                   2/6
-                                   ---
-lib/readline/text.c
-       - rl_insert: don't attempt to optimize typeahead if we are only reading
-         a fixed number of characters (rl_num_chars_to_read > 0)
-
-redir.c
-       - redir_special_open: if the shell is restricted, return a
-         RESTRICTED_REDIRECT error for attempts to open /dev/tcp and /dev/udp
-         sockets.  Inspired by report from Blake Burkhart <bburky@bburky.com>
-       - do_redirection_internal: if redir_open returns RESTRICTED_REDIRECT,
-         return that right away (instead of errno) so we can print a better
-         error message
-
-                                  2/11
-                                  ----
-jobs.c
-       - bgp_resize: fix problems with (pid_t) overflow when calculating new
-         size for table when js.c_childmax is near the limit of a pid_t
-         (e.g., 2**31 - 1 on a 32-bit system, or 2**63-1 on a system with
-         32-bit pid_t). Fixes hang reported by Natanael Copa
-         <ncopa@alpinelinux.org> based on his patch from 12/8.
-       - bgp_resize: cap max table size for bgpids at MAX_CHILD_MAX (32768)
-
-include/typemax.h
-       - TYPE_MINIMUM, TYPE_MAXIMUM: updated definitions from coreutils-8.29,
-         silences some compiler warnings
-
-                                  2/14
-                                  ----
-Makefile.in
-       - maybe-clean: use cd and pwd -P to test whether or not two directory
-         names identical, since topdir = '.' and BUILD_DIR = full pathname
-         when you use something like `bash ./configure'. Problem reported by
-         Michael Felt <aixtools@gmail.com>
-
-subst.c
-       - split_at_delims: if SD_NOQUOTEDELIM is in the flags argument, don't
-         treat `'' and `"' as candidates for possible sequences of delimiters,
-         even if they're part of the delimiter set (the delims argument).
-         Fixes problem with completing lines like `foo --bar='quux baz' xx'
-         reported by Nick Patavalis <npat@efault.net>
-
-                                  2/15
-                                  ----
-copy_cmd.c
-       - copy_word_list: build the list in the right order, avoiding having
-         to reverse it at the end. Helps with long argument lists
+       - syslog_history: new variable to control whether history lines are
+         sent to syslog; default value is the value of SYSLOG_SHOPT (or 1
+         if that's not defined)
+       - bash_add_history: send history lines to syslog if syslog_history is
+         non-zero
 
-shell.c
-       - bind_args: build the argument list in the right order, avoiding
-         having to reverse it at the end.
-       - bind_args: only call push_args to save argc and argv as BASH_ARGC
-         and BASH_ARGV if debugging mode is enabled (debugging_mode != 0).
-         Inspired by report from Ambrose Feinstein <ambrose@google.com>
-       - bind_args: note that we've saved BASH_ARGC and BASH_ARGV by setting
-         bash_argv_initialized
-       - shell_reinitialize: reset bash_argv_initialized back to 0 so
-         BASH_ARGV and BASH_ARGC will be recreated if we're in debugging mode
+                                  5/10
+                                  ----
 
 variables.c
-       - save_bash_argv: new function, initializes BASH_ARGV and BASH_ARGC
-         from the saved positional parameters
-       - init_bash_argv: initialize BASH_ARGV and BASH_ARGC if
-         bash_argv_initialized == 0
+       - push_var_context: if we are in Posix mode and manipulating the
+         temporary environment (temporary_env), implement behavior specified
+         in Posix interp 1009 and make sure that temporary assignments
+         preceding function calls modify the current environment *before*
+         the function is executed.
 
-builtins/shopt.def
-       - shopt_set_debug_mode: if we're turning on debug mode, initialize
-         BASH_ARGC and BASH_ARGV if bash_argv_initialized == 0
+[bash-5.0-alpha frozen]
 
-                                  2/16
+                                  5/12
                                   ----
 execute_cmd.c
-       - execute_function: make sure BASH_ARGV and BASH_ARGC are initialized
-         before calling push_args (and before calling remember_args)
+       - execute_in_subshell: subshells should set loop_level == 0, since
+         they are no longer "enclosed" by the loop, according to posix.
+         Report from Aeron.E. Wang <aeron.e.wang@gmail.com>
 
-builtins/source.def
-       - source_builtin: make sure BASH_ARGV and BASH_ARGC are initialized
-         before calling push_args (and before calling remember_args)
+                                  5/24
+                                  ----
+Makefile.in
+       - pkgconfigdir: don't fail installing bash.pc if this directory doesn't
+         exist or isn't writable -- there's no error in failing to install
+         something nothing will use
+       - install-headers-dirs: creat $(pkgconfigdir) if it doesn't exist
 
-builtins/evalfile.c
-       - _evalfile: if the shell compatibility level is 44 or lower, make
-         sure BASH_ARGV and BASH_ARGC are initialized before calling
-         array_push
+lib/sh/shmbchar.c
+       - utf8_mblen: replace with version from gnulib
+       - utf8_mbstrlen: reimplement using utf8_mblen so it handles invalid
+         multibyte sequences in the same way as mbstrlen
 
-builtins/shopt.def
-       - compat44: new shell option. This will be the last compatXX option
+lib/readline/mbutil.c
+       - _rl_utf8_mblen: utf-8 specific version of mblen from gnulib
 
-doc/{bash.1,bashref.texi}
-       - compat44: document new shell option
+include/shmbutil.h
+       - ADVANCE_CHAR,COPY_CHAR_P: do better job detecting end of string in
+         UTF-8 locales (should not be called with an empty string, but to
+         be safe)
 
-                                  2/21
+                                  5/25
                                   ----
-builtins/common.h
-       - ISOPTION: check s[1] before s[2] to avoid out of bound reads. Fixes
-         bug reported by jeremy@feusi.co
+lib/sh/utf8.c
+       - new file, utf-8-specific functions collected from other files
 
-input.h
-       - B_SHAREDBUF: new flag for buffered input fds, indicates that this
-         fd shares its b_buffer with another fd
+externs.h
+       - extern declarations moved around for utf8.c
 
-input.c
-       - duplicate_buffered_stream: when duplicating *from* the buffer
-         corresponding to bash input, make sure the new buffer has B_SHAREDBUF
-         in the flags, because copy_buffered_stream copies pointers
-       - duplicate_buffered_stream: if the buffer being copied to has the
-         B_SHAREDBUF flag set, make sure the b_buffer doesn't get freed.
-         Fixes use-after-free bug reported by jeremy@feusi.co
-       - save_bash_input,close_buffered_stream: make sure a buffer with
-         B_SHAREDBUF set has its b_buffer set to NULL before calling
-         free_buffered_stream
+include/shmbutil.h
+       - SADD_MBCHAR, SADD_MBQCHAR_BODY, ADVANCE_CHAR_P: if the locale is a
+         UTF-8 locale, don't bother with a call to mbrlen if the current
+         character cannot start a multibyte character
+
+variables.c
+       - push_var_context: only merge the temporary environment in posix mode
+         if we are executing a shell function (flags & VC_FUNCENV). Report
+         from Martijn Dekker <martijn@inlv.org>
+
+lib/readline/mbutil.c
+       - _rl_get_char_len: don't call mbrlen if we are in a UTF-8 locale and
+         the character cannot start a multibyte sequence
+
+builtins/read.def
+       - read_builtin: if mb_cur_max > 1, call read_mbchar only if we're not
+         in a utf-8 locale or, if we are, the character we just read indicates
+         the start of a multibyte sequence
 
-                                  2/24
-                                  ----
 subst.c
-       - parameter_brace_expand_error: add parameter saying whether or not
-         we are checking whether value is null, so we can have different
-         error messages for ${x:?} and ${x?}. Report and fix from
-         don fong <dfong@dfong.com>
+       - string_extract_verbatim: don't call MBRLEN if we're in a utf-8
+         locale and the current character can't start a multibyte sequence
+       - setifs: don't call MBRLEN if we're in a utf-8 locale and the first
+         character of $IFS can't start a multibyte sequence
 
-                                   3/5
-                                   ---
-lib/readline/bind.c
-       - _rl_read_file: instead of calling stat/open on the passed filename,
-         use open/fstat to avoid one possible filename translation and close
-         a small (benign) race condition. Report and fix from Roy Ivy
-         <roy.ivy.iii@gmail.com>
+lib/readline/kill.c
+       - rl_bracketed_paste_begin: make sure we return 0 here if rl_insert_text
+         returns the right number of characters inserted to be consistent
+         with other functions. Returns 1 otherwise. Report and fix from
+         Gabe Krabbe <gabe@rtfs.de> back in March, 2018
 
-                                  3/11
+lib/readline/readline.c
+       - rl_subseq_result: make sure r is < 0 before checking map[ANYOTHERKEY]
+         to see if we shadowed a key that should now be tried
+
+                                  5/27
                                   ----
 variables.c
-       - makunbound: if new variable localvar_unset is non-zero, mark local
-         vars in previous scopes as invisible and unset so they will show
-         up as unset until that previous scope returns (similar to how local
-         variables in the current local scope are handled). localvar_unset
-         is currently set to 0 with no way for a script to change its value.
-         Eventually there will be an option to modify it.  From a bug-bash
-         discussion started by Nikolai Kondrashov <spbnick@gmail.com> back
-         on 2/11/2018
+       - assign_aliasvar: perform same validity check on subscript assignment
+         as alias builtin performs on name argument. Bug report from
+         Mike Jonkmans <bashbug@jonkmans.nl>
 
-                                  3/13
+                                  5/29
                                   ----
-subst.c
-       - expand_word_list_internal: short-circuit and exit right away if a
-         variable assignment preceding a special builtin fails in posix mode
-       - expand_word_list_internal: if a variable assignment precedes an
-         empty command name (after expansion), fix to exit right away when
-         the shell is in posix mode
+builtins/setattr.def
+       - set_var_attribute: we should not propagate a variable assignment
+         preceding a builtin back to the calling environment unless the
+         shell is in posix mode. Since previous versions of the shell do
+         this, setting the shell compatibility level to 44 or less will
+         continue the propagation behavior
 
-                                  3/15
-                                  ----
-doc/{bash.1,bashref.texi}
-       - Add text to Pathname Expansion clarifying that a slash must be
-         matched by a slash in the pattern when matching pathnames, but
-         not in other matching contexts. Suggested by <stormy1777@yahoo.com>
+                                   6/1
+                                   ---
+lib/readline/histexpand.c
+       - history_tokenize_word: as part of teaching history tokenization more
+         and more about shell syntax, allow command and process subsitution
+         and extended globbing patterns to appear within a word being
+         tokenized and not just at the beginning. Fixes bug reported back in
+         2/2017 by ecki@tofex.de
 
-builtins/common.c
-       - read_octal: allow octal numbers greater than 777 to accommodate
-         modes and umasks that include sticky/setuid/setgid bits. Report
-         and fix from Martijn Dekker <martijn@inlv.org>
+bashhist.c
+       - load_history: use HISTSIZE_DEFAULT (still defaults to "500") to set
+         the initial value of $HISTSIZE. HISTSIZE_DEFAULT can be overridden
+         in config-top.h
 
-                                  3/19
-                                  ----
-lib/readline/bind.c
-       - rl_generic_bind: make sure we only assign to prevkey in the loop
-         if the key sequence index is > 0, so ic is valid. Fixes bug
-         reported by Koichi Murase <myoga.murase@gmail.com>
+                                   6/4
+                                   ---
+configure.ac
+       - make sure we link against an external readline library that's at
+         least version 8
 
-builtins/read.def
-       - read_builtin: be slightly less aggressive checking for timeouts and
-         SIGALRM: if we successfully read a character, don't check for a
-         timeout until we store or process it. Fixes timing problem
-         reported by Rob Foehl <rwf@loonybin.net>
+                                   6/8
+                                   ---
+pcomplete.h
+       - INITIALWORD: internal compspec name for programmable completion on
+         the initial (usually the command) word
 
-                                  3/22
-                                  ----
-sig.c
-       - termsig_handler: add a call to exit(1) after the kill, just in case
-         there are circumstances where the SIG_DFL signal handler is
-         ignored.  Report from Andrei Vagin <avagin@gmail.com>
+bashline.c
+       - attempt_shell_completion: if we are in a command position and the
+         user has defined a compspec for INITIALWORD, use programmable
+         completion to complete command words. Original patch from
+         Luca Boccassi <bluca@debian.org>
 
-                                  3/25
-                                  ----
-lib/readline/bind.c
-       - _rl_function_of_keyseq_internal: new internal function thta takes a
-         length parameter to accommodate NUL in the key sequence. Patch from
-         Koichi Murase <myoga.murase@gmail.com>
-       - rl_function_of_keyseq_len: new application-callable function that
-         takes a length parameter; otherwise equivalent to rl_function_of_keyseq.
+lib/readline/doc/rluser.texi,builtins/complete.def,doc/bash.1
+       - make it clearer that -D takes precedence over -E when supplied as
+         options to `complete', not when they are applied during completion
 
-lib/readline/readline.h
-       - rl_function_of_keyseq_len: add extern declration for new function
+builtins/complete.def
+       - complete_builtin,compgen_builtin: add support for -I option
+       - print_one_completion,print_compopts: display -I when appropriate
 
-lib/readline/doc/rltech.texi
-       - rl_function_of_keyseq_len: document new function interface
+lib/readline/doc/rluser.texi,doc/bash.1
+       - complete,compgen: document new -I option and its effect
+
+                                  6/10
+                                  ----
+lib/readline/histfile.c
+       - read_history_range: don't apply the heuristic and try to append a
+         history line to an existing history entry if we don't have any
+         history entries. Bug and fix from Edward Huff <ejhuff@gmail.com>
 
+                                  6/12
+                                  ----
 bashline.c
-       - bash_execute_unix_command: use rl_function_of_keyseq_len to handle
-         key sequences with embedded NULs (\C-@). Fix from Koichi Murase
-         <myoga.murase@gmail.com>
+       - attempt_shell_completion: don't all the programmable completion for
+         INITIALWORD if programmable completion is disabled
+       - attempt_shell_completion: make sure in_command_position remains set
+         for an empty command word on an otherwise blank line, making the
+         presence of assignment statements optional.  Report from
+         Luca Boccassi <bluca@debian.org>
 
-lib/readline/bind.c
-       - rl_bind_key_if_unbound,rl_bind_key_if_unbound_in_map: run the KEY
-         argument through rl_untranslate_keyseq to produce a symbolic sequence
-         that can encode \C-@.
-       - rl_bind_keyseq_if_unbound_in_map: translate the key sequence in order
-         to accommodate symbolic key sequences; should be a no-op for `raw'
-         key sequences such as the arrow key seqeunces from terminfo. Change
-         from Koichi Murase <myoga.murase@gmail.com>
+                                  6/20
+                                  ----
+lib/malloc/malloc.c
+       - morecore,internal_malloc,internal_free: requests for more than
+         128K bytes (defined as MMAP_THRESHOLD and saved in the new
+         malloc_mmap_threshold variable) are now satisfied via mmap and
+         freed via munmap. We only use mmap if we have mmap and MAP_ANON
+         (or MAP_ANONYMOUS). These blocks are not available for splitting
+         or coalescing, so every request for 128K bytes or smaller is
+         satisfied via sbrk(). We don't use mremap for realloc yet, but
+         we could in the future
+
+lib/malloc/mstats.h
+       - malloc_stats: the malloc stats now include the number of calls to
+         mmap and the total number of bytes requested via mmap. The number
+         of calls to munmap is captured in each bucket's lesscore count
+
+lib/malloc/stats.c
+       - print_malloc_stats: now prints an indication of where the change from
+         sbrk to mmap takes place, and prints number of mmap calls and total
+         number of bytes allocated using mmap
 
-                                   4/2
-                                   ---
-jobs.c
-       - wait_for: when setting the SIGINT signal handler to wait_sigint_handler
-         make sure we're not setting old_sigint_handler recursively, as we
-         can when running an external command in a trap we took after a
-         command exited due to SIGINT. We don't want to overwrite
-         old_sigint_handler here. Fixes bug reported by Dr. Werner Fink
-         <werner@suse.de>
+                                  6/22
+                                  ----
+variables.c
+       - get_bashargcv: new dynamic "fetch" variable for BASH_ARGV and
+         BASH_ARGC, for backwards compatibility: if a script makes a
+         reference to either variable at the top level (not in a shell
+         function) without enabling debugging mode and not having initialized
+         the variable previously (using a simple semaphore), create the
+         variables
 
-execute_cmd.c
-       - execute_disk_command: when there is a command_not_found_hook, make
-         sure the subshell turns off job control before running it, in case
-         it runs processes. We don't want it to manipulate process groups.
-         Fixes bug reported by ÐиÑиллов Ðима <dk.1997-fast@yandex.ru>
-       - execute_command_internal: make sure the command run by the `command'
-         builtin doesn't cause the ERR trap to be executed; wait for the
-         status to be returned by the command builtin. Fixes bug reported by
-         Martijn Dekker <martijn@inlv.org>
+                                  6/25
+                                  ----
+configure.ac
+       - opt_bash_malloc: bash malloc no longer disabled for systems that
+         require eight-bit alignment; the bash malloc has had this for a
+         long time
 
-                                   4/4
+                                   7/4
                                    ---
-subst.c
-       - process_substitute: handle longjmp back to top_level and function
-         returns (return_catch) in the child process, like command
-         substitution, so we don't longjmp back to some arbitrary spot from
-         the `exit' or `return' builtins, or on an expansion error, like
-         the command timing code. Fixes bug reported by Basin Ilya
-         <basinilya@gmail.com>
+bashline.c
+       - pre_process_line: if command-oriented history is enabled, and the
+         line being expanded is the second or later in a multi-line command,
+         and we know the command is being saved as the current history entry,
+         decrease history_length before calling history_expand so references
+         like !! refer to the previous history entry as usual
+
+lib/readline/histexpand.c
+       - history_quoting_state: new variable, can be set by calling
+         application before calling history_expand to note that the string
+         being expanded is part of a quoted string. Can be set to a single
+         quote, a double quote, or 0 (no quoting)
+       - history_expand: look at history_quoting_state and honor the
+         single-quote setting by not expanding any initial portion of the
+         line before the closing single quote. This allows history expansions
+         to be performed on a line containing a closing single quote if they
+         appear after the single quote
+
+lib/readline/history.h
+       - history_quoting_state: extern declaration
+
+bashhist.c
+       - bash_history_inhibit_expansion: if history_quoting_state indicates
+         that this string is single-quoted, skip over the single-quoted
+         portion and determine whether or not the portion after the
+         quoted string needs to be inhibited from history expansion
 
-                                   4/6
-                                   ---
 parse.y
-       - read_token_word: when reading a matched pair of backquotes as part
-         of a word, treat it as quoted so the characters are read as a single
-         word, but do not let the presence of the backquote mark the word as
-         quoted. Fixes here-document delimiter bug reported by Denys Vlasenko
-         <dvlasenk@redhat.com>
+       - shell_getc: set history_quoting_state based on the contents of the
+         current delimiter before calling pre_process_line
 
-                                   4/7
+                                   7/6
                                    ---
-execute_cmd.c
-       - execute_case_command: call quote_string_for_globbing with the
-         QGLOB_CTLESC flag for both quoted and unquoted words, so it will
-         remove CTLESC/CTLESC in all cases while converting other quoted
-         characters to use a preceding backslash. Bug reported by
-         Martijn Dekker <martijn@inlv.org>
+lib/readline/doc/hsuser.texi
+       - describe the default behavior of backslash and single and double
+         quotes
 
-                                   4/9
+lib/readline/doc/hstech.texi
+       - history_quoting_state: describe effect of setting this variable
+       - history_quotes_inihibit_expansion: expand the description to include
+         the default quoting behavior that setting this variable enables
+
+                                   7/9
                                    ---
-smatch.c
-       - posix_cclass_only: helper function that checks whether a pattern has
-         only posix single-byte character classes ([:alpha:], etc.) or has
-         none at all
-       - xstrmatch: if running in a multibyte locale, make sure to short-
-         circuit to the single-byte matching code only if there are no
-         unrecognized character class names, since the wide character ctype
-         functions allow locales to define their own character class names
-         (e.g., "hyphen"). Fixes issue reported by yangyajing <yyj_cqu@163.com>
+support/man2html.c
+       - unescape: use memmove instead of strcpy to handle overlapping strings
+         Report and fix from Bernhard M. Wiedemann <bwiedemann@suse.de>
+
+lib/sh/getenv.c
+       - getenv: check that environ is non-NULL before looking through it.
+         Report and fix from Keeley Hoek <keeley@hoek.io>
+
+                                  7/12
+                                  ----
+braces.c
+       - mkseq: use better integer overflow handling for systems with 32-bit
+         ints and 64-bit intmax_ts. Bug reported by Simon Wörner
+         <mail@simon-woerner.de> as the result of fuzzing
+
+builtins/declare.def
+       - declare_internal: make sure bind_variable returns non-NULL when
+         setting attributes for a variable named as an argument to declare
+         that also appears in the temporary environment (and is a nameref).
+         Bug reported by Simon Wörner <mail@simon-woerner.de as the
+         result of fuzzing
+
+variables.c
+       - bind_variable_internal: if we're assigning through a nameref, don't
+         create a variable with an invalid name under any circumstances
 
-                                  4/10
+builtins/common.c
+       - get_job_spec: make sure to return NO_JOB if atoi() returns < 0 due
+         to integer overflow.
+         Bug reported by Simon Wörner <mail@simon-woerner.de as the
+         result of fuzzing
+
+                                  7/13
                                   ----
-configure.ac,cross-build/qnx.cache
-       - qnx: add a configure cache file for cross-building, treat qnx 7 like
-         qnx 6 in terms of cpp options. Fix from Brian Carnes
-         <bcarnes@google.com>
+execute_cmd.c
+       - execute_in_subshell: don't call set_sigint_handler if the subshell
+         is asynchronous, since it undoes the signal handler installed by
+         setup_async_signals. Fixes bug reported by Daniel Mills
+         <danielmills1@gmail.com>
 
-aclocal.m4
-       - BASH_CHECK_DEV_STDIN: experimental change to test for /dev/stdin
-         independently of /dev/fd or /proc/self/fd. Suggested for QNX by
-         Brian Carnes <bcarnes@google.com>
+parse.y,externs.h
+       - reset_readahead_token: new convenience function for the rest of
+         the shell, resets token_to_read if it's a newline (as it will be
+         after reset_parser is called)
 
+eval.c
+       - reader_loop: if we're just going to execute one command, make sure
+         the read-ahead token isn't set to something that will result in a
+         NULL command (by calling reset_readahead_token), since the code
+         will take that as the one command and set EOF_Reached
 
-                                  4/11
+                                  7/15
                                   ----
-lib/glob/glob.c
-       - glob_testdir: return -2 if DIR is a symlink, to differentiate it from
-         any other kind of non-directory file
-       - glob_vector: if we have GX_ALLDIRS (globstar), we want to skip over
-         symlinks to directories, since we will pick up the real directory
-         later. Fixes incompatibility reported by Murukesh Mohanan
-         <murukesh.mohanan@gmail.com>
+doc/{bash.1,bashref.texi}
+       - indirect expansion: clarify that the expansion works on parameters,
+         not just variables (NAMEs). Suggested by konsolebox
+         <konsolebox@gmail.com>
 
-bashline.c
-       - bash_execute_unix_command: changes to make READLINE_POINT apply to
-         characters instead of bytes when in a multibyte locale. Report and
-         fix from Koichi Murase <myoga.murase@gmail.com>
+                                  7/16
+                                  ----
+doc/{bash.1,bashref.texi}
+       - INSIDE_EMACS: document its effect on line editing
 
-                                  4/12
+                                  7/17
                                   ----
-builtins/evalstring.c
-       - parse_and_execute_cleanup: now takes an argument which is the value
-         of running_trap at some point before parse_and_execute was called;
-         changed callers in sig.c, builtins/evalfile.c
+lib/readline/{readline.c,rlprivate.h}
+       - _rl_eof_found: new variable, private to the readline library, that
+         indicates whether the current call to readline() will return NULL
+         because we read EOF
 
-builtins/common.h
-       - parse_and_execute_cleanup: changed prototype
+lib/readline/rltty.c
+       - rl_deprep_terminal: if bracketed paste mode is active, the last
+         character of the string to disable it is \r (to avoid confusing
+         the terminal driver about where the cursor is). In this case,
+         output a newline before returning so subsequent text (like the
+         `exit' bash prints) doesn't overwrite the prompt. Bug from
+         https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=903936
 
-                                  4/13
-                                  ----
-builtins/evalstring.c
-       - parse_and_execute_cleanup: if the argument holding the previous state
-         of running_trap is the same value as the current running_trap state,
-         don't call run_trap_cleanup: assume that there is a caller who will
-         take care of the cleanup after this returns. Fixes recursive trap
-         call on "eval return" reported by Martijn Dekker <martijn@inlv.org>
+variables.c
+       - make_local_assoc_variable: add second argument like corresponding
+         local array function, to allow this function to return an existing
+         local array variable to the caller for the caller to handle
 
-parse.y
-       - read_a_line: if remove_quoted_newline is non-zero, indicating the
-         here-document delimiter is unquoted, we will be running the contents
-         of the here-document through word expansion and need to quote CTLESC
-         and CTLNUL in the input. Fixes bug with ^A in here document reported
-         by Jorge Alberto Baca Garcia <bacagarcia@me.com>
+variables.h
+       - make_local_assoc_variable: change function prototype to add second
+         arg
 
-                                  4/18
-                                  ----
-pathexp.c
-       - quote_string_for_globbing: make sure the QGLOB_CTLESC code handles
-         both CTLESC CTLESC and CTLESC CTLNUL in the same way. Fixes bug
-         reported by Martijn Dekker <martijn@inlv.org>
+{subst.c,variables.c}
+       - make_local_assoc_variable: change callers
 
-                                  4/19
-                                  ----
-execute_cmd.c
-       - execute_command_internal: before executing any command in the current
-         shell, and before copying any existing FIFO list, call
-         reap_procsubs to unlink or close any process substitution pipes
-         associated with processes that have exited. Fixes hang in test suite
-         when trying to open a FIFO with no process having it open for
-         reading
+builtins/declare.def
+       - declare_internal: call make_local_assoc_variable with a non-zero
+         second arg to have it return an existing local array variable to be
+         flagged as an error. Fixes bug reported by Grisha Levit
+         <grishalevit@gmail.com>
+       - declare_internal: call make_local_array_variable with unconditional
+         second argument of 1 for the same reason as above
 
-                                  4/26
+                                  7/18
                                   ----
-parse.y
-       - read_token_word: if returning REDIR_WORD for a {id}>foo construct,
-         for example, make sure to assign the_word to yylval.word before
-         returning, in case a recursive call to the parser overwrites it
-         (e.g., when evaluating array indexes). From a message to
-         austin-group-l from Stephane Chazelas <stephane.chazelas@gmail.com>
+variables.c
+       - bind_invalid_envvar: new function, takes invalid names from the
+         initial environment (names that are not valid shell identifiers) and
+         stores them in a separate hash table (invalid_env)
+       - maybe_make_export_env: make sure to add names from invalid_env to
+         the export env
+       - assign_in_env: for now, prevent variable names that aren't shell
+         identifiers from being added to the temporary environment. Addresses
+         issue raised by Grisha Levit <grishalevit@gmail.com>
 
-lib/glob/sm_loop.c
-       - BRACKMATCH: if we have an invalid character class in an otherwise
-         well-formed bracket expression, don't try to match each character
-         of the (invalid) class individually; just skip over the class and
-         move on.  From a message on the austin-group list from
-         Stephane Chazelas <stephane.chazelas@gmail.com>
+test.c
+       - unary_test: rearrange code slightly to avoid a wasted variable lookup
+         if the argument to -v is a subscripted array reference
 
-                                  4/27
+                                  7/19
                                   ----
 variables.c
-       - push_exported_var,push_func_var,push_temp_var: make sure to set the
-         context correctly in the variable we bind in the previous (non-temp)
-         scope. Report from Martijn Dekker <martijn@inlv.org>
+       - nameref_transform_name: if a name doesn't resolve to a shell variable,
+         this function will check whether it resolves to a nameref that
+         points to a variable that hasn't been created yet
 
-pathexp.c
-       - unquoted_glob_pattern_p: a pattern that contains a backslash can
-         have it removed by the matching engine (since backslash is special
-         in pattern matching), so if the pattern contains a backslash, and
-         does not end in a backslash, we need to return true. Fixes bug
-         reported by Robert Elz <kre@bmunnari.OZ.AU>
+variables.h
+       - nameref_transform_name: extern declaration
 
-lib/glob/gm_loop.c
-       - INTERNAL_GLOB_PATTERN_P: same change to return TRUE for a backslash
-         that doesn't end the pattern
+subst.c
+       - do_compound_assignment: make sure that we follow any nameref chain
+         if the name passed resolves to a nameref that points to a variable
+         that doesn't exist. Fixes issue raised by Grisha Levit
+         <grishalevit@gmail.com>
 
-lib/sh/timeval.c
-       - print_timeval: use locale_decpoint() instead of fixed `.' to print
-         decimal point. Bug report in austin-group email from Joerg Schilling
-         <Joerg.Schilling@fokus.fraunhofer.de>
+builtins/declare.def
+       - declare_internal: before calling any variant of make_local_variable,
+         make sure to perform any transformation of the name indicated by an
+         existing nameref. Fixes issue raised by Grisha Levit
+         <grishalevit@gmail.com>
 
-lib/sh/clock.c
-       - print_clock_t: use locale_depoint() in the same way as print_timeval
+                                  7/20
+                                  ----
+builtins/declare.def
+       - declare_internal: if we are creating a global variable with -g, even
+         if we're not giving it a value, check for namerefs at the global
+         scope to avoid confusion with namerefs at the local (function) scope.
 
-                                  4/29
+subst.c
+       - expand_word_internal: if a double-quoted string expands to nothing,
+         make sure we note that for later by setting had_quoted_null, just
+         as we do for single-quoted empty strings
+
+subst.[ch]
+       - W_SAWQUOTEDNULL: new flag (replaces W_HASCTLESC, which is unused),
+         means that we saw a possibly-discarded quoted null while expanding
+         this word
+
+subst.c
+       - expand_word_internal: if expansion results in a non-empty word but
+         we saw a quoted null during expansion (had_quoted_null == 1), set
+         W_SAWQUOTED_NULL in the returned word
+       - expand_word_internal: if a recursive call to param_expand comes back
+         with W_SAWQUOTEDNULL set in the resulting word, set had_quoted_null
+         to note it
+       - parameter_brace_expand_rhs: if a recursive call to expand_word_internal
+         returns a non-quoted-null string (after an optional call to
+         string_list) make sure we pass the W_SAWQUOTEDNULL flag back to the
+         caller
+       - word_list_split: if a word expands to nothing after expansion and
+         splitting, but we saw a quoted null during the expansion
+         (W_SAWQUOTEDNULL), return an empty word
+
+                                  7/25
                                   ----
+
 subst.c
-       - expand_cond_node: if special != 0, make sure to add QGLOB_CTLESC
-         to the flags passed to quote_string_for_globbing. Same issue as the
-         one with `case' fixed on 4/7, report from Martijn Dekker
-         <martijn@inlv.org>
+       - do_compound_assignment: if creating a local variable, make sure to
+         set `newname' to the name of the variable returned from find_variable,
+         since that follows namerefs. Fixes issue raised by Grisha Levit
+         <grishalevit@gmail.com>
 
-                                  4/30
+                                  7/29
                                   ----
-redir.c
-       - do_redirection_internal: r_close_this: if the file descriptor is
-         already closed before the shell is asked to close it, make sure to
-         add an undo list redirect to make sure it stays closed. Report from
-         Martijn Dekker <martijn@inlv.org>
+subst.c
+       - get_var_and_type: if VALUE is NULL, check before calling dequote_string.
+         Report and fix from Grisha Levit <grishalevit@gmail.com>
 
-                                   5/2
-                                   ---
+                                  7/30
+                                  ----
 variables.c
-       - push_posix_temp_var: new function, takes the SHELL_VAR * passed as
-         an argument and uses the name and value to create a global variable
-       - merge_temporary_env: if posixly_correct is set, call
-         push_posix_temp_var to create global variables, otherwise call
-         push_temp_var to preserve the old behavior. Right now, it's only
-         called when in posix mode, but that might change. This undoes the
-         change from 4/27 when in posix mode
+       - make_local_{array,assoc}_variable: make sure we're not trying to
+         inherit a value from an incompatible array type. Fixes issue raised
+         by Grisha Levit <grishalevit@gmail.com>
+       - nameref_transform_name: if we're trying to resolve a nameref that
+         will be used to create a local variable, make sure the nameref is
+         at the same variable scope. Report from Grisha Levit
+         <grishalevit@gmail.com>
 
-                                   5/3
+                                   8/2
                                    ---
-sig.c
-       - struct that holds the terminating signal information has a new
-         field: whether that signal is expected to cause a core dump
-       - termsig_handler: if the call to kill(2) doesn't kill the process,
-         we have a problem. If our pid is not 1, we just exit with status
-         128+sig (fake the sig exit status). If the pid is 1, we assume
-         we're in a Linux pid namespace and aren't allowed to send a signal
-         to ourselves. If we need to generate a core dump, we try to get
-         the kernel to SIGSEGV us by dereferencing location 0. If not, we
-         just exit with 128+sig. From a report and patch from Andrei Vagin
-         <avagin@virtuozzo.com>
+array.c
+       - array_subrange: change to use string_list_pos_params after creating a
+         WORD_LIST from the array slice, like assoc_subrange does
 
-                                   5/4
+subst.c
+       - parameter_brace_substring: since assoc_subrange and array_subrange
+         both call string_list_pos_params now, treat the results the same as
+         the VT_POSPARAMS case (pos_params also calls string_list_pos_params).
+         Fixes behavior difference between ${a[@]:sub} and ${@:sub} reported
+         by Ilkka Virta <itvirta@iki.fi>
+
+                                   8/3
                                    ---
-bashline.c
-       - bash_execute_unix_command: make sure that parse_and_execute is called
-         with newly-allocated memory to avoid prematurely freeing the
-         command. Report and fix from Koichi Murase <myoga.murase@gmail.com>
+array.c
+       - array_patsub: rewrite to work in terms of a WORD_LIST * and call
+         string_list_pos_params on the result to be consistent with the
+         expansions of ${@/pat/rep} and ${*/pat/rep}
 
-                                   5/7
+assoc.c
+       - assoc_patsub: rewrite to work in terms of a WORD_LIST * and call
+         string_list_pos_params on the result to be consistent with the
+         expansions of ${@/pat/rep} and ${*/pat/rep}
+
+subst.c
+       - parameter_brace_patsub: change how return value of {array,assoc}_patsub
+         is treated to make it identical to pos_params_pat_subst, since they
+         all call string_list_pos_params now
+       - expand_string_for_pat: make sure we preserve the value of
+         expand_no_split_dollar_star instead of just unconditionally setting
+         it back to 0 in case it was 1 before this function was called
+
+                                   8/6
                                    ---
-builtins/shopt.def
-       - syslog_history: a shell option to control whether history is logged
-         to syslog; can be modified at runtime. Original patch from
-         Siteshwar Vashisht <svashisht@redhat.com>
+array.c
+       - array_modcase: rewrite to work in terms of a WORD_LIST * and call
+         string_list_pos_params on the result to be consistent with the
+         expansions of ${@,,} and ${*,,}
 
-config-top.h
-       - SYSLOG_SHOPT: new configurable option, determines whether there is a
-         shell option to control syslogging history lines at runtime and sets
-         the default value of the option
+assoc.c
+       - assoc_modcase: rewrite to work in terms of a WORD_LIST * and call
+         string_list_pos_params on the result to be consistent with the
+         expansions of ${@,,} and ${*,,}
 
-bashline.c
-       - syslog_history: new variable to control whether history lines are
-         sent to syslog; default value is the value of SYSLOG_SHOPT (or 1
-         if that's not defined)
-       - bash_add_history: send history lines to syslog if syslog_history is
-         non-zero
+subst.c
+       - parameter_brace_casemod: change how return value of {array,assoc}_modcase
+         is treated to make it identical to pos_params_modcase, since they
+         all call string_list_pos_params now
 
-                                  5/10
+                                   8/8
+                                   ---
+builtins/declare.def
+       - declare_internal: if we are making local variables, and not dealing
+         with the nameref attribute, make sure that any nameref variable we
+         followed when resolving the name given was at the same variable
+         context. If not, we just want to make or use a local variable with
+         the name passed; if so, we want to use the nameref value as the
+         variable name. Report from Grisha Levit <grishalevit@gmail.com>
+
+                                   8/9
+                                   ---
+configure.ac
+       - globasciiranges: RRI now on by default, must be turned off explicitly
+         at configure time or runtime with `shopt -u globasciiranges'
+
+                                  8/14
                                   ----
+variables.c
+       - dispose_saved_dollar_vars: decrement stack pointer before looking
+         for saved positional parameters to dispose; stack pointer always
+         points to the first unused slot
 
+                                  8/15
+                                  ----
 variables.c
-       - push_var_context: if we are in Posix mode and manipulating the
-         temporary environment (temporary_env), implement behavior specified
-         in Posix interp 1009 and make sure that temporary assignments
-         preceding function calls modify the current environment *before*
-         the function is executed.
+       - dollar_arg_stack: now a stack of struct saved_dollar_vars, which has
+         an array for the first ten (dollar_vars) and a WORD_LIST * for the
+         remaining (rest_of_args). Fixes performance issue with function calls
+         and large numbers of positional parameters raised by
+         Bize Ma <binaryzebra@gmail.com>
+       - {save,restore,free,free_saved}_dollar_vars: new functions to manage
+         dollar_vars and dollar_arg_stack members. Need to keep these in sync
+         with whatever remember_args does
+       - push_dollar_vars: use save_dollar_vars, which just copies pointers,
+         and directly assign rest_of_args, without copying the words, to the
+         dollar_arg_stack entry. Have to clear dollar_vars and rest_of_args
+         with the assumption that callers will call remember_args(args, 1)
+         immediately following
+       - pop_dollar_vars: free current positional parameters and restore old
+         ones from pointers saved in dollar_arg_stack, making sure to
+         invalidate any cached value for "$@"
+       - dispose_saved_dollar_vars: free saved pointers from current index
+         into dollar_arg_stack
 
-[bash-5.0-alpha frozen]
+doc/{bash.1,bashref.texi}
+       - POSIXLY_CORRECT: make sure to note that bash makes sure this variable
+         is set when posix mode is enabled
+
+                                  8/17
+                                  ----
+{jobs,nojobs}.c
+       - set_jobs_list_frozen: set jobs_list_frozen to a particular value.
+         Intended to save and restore the value around code sections instead
+         of unconditionally unfreezing it.
+
+jobs.h
+       - set_jobs_list_frozen: extern declaration
+
+execute_cmd.c
+       - execute_pipeline: if lastpipe is enabled, save and restore the
+         value of jobs_list_frozen using freeze_jobs_list/set_jobs_list_frozen
+         to avoid problems with race conditions and nested pipelines
+         causing jobs to be removed from the jobs table. Fixes savannah issue
+         https://savannah.gnu.org/support/index.php?109541 reported by
+         Björn Kautler <vampire0>
+
+                                  8/24
+                                  ----
+execute_cmd.c
+       - lastpipe_cleanup: call set_jobs_list_frozen instead of
+         unfreeze_jobs_list
+       - execute_pipeline: set up lastpipe_cleanup with old value of
+         jobs_list_frozen
+
+                                   9/3
+                                   ---
+builtins/printf.def
+       - getuintmax,getfloatmax: on a conversion error, return as much of the
+         value as we were able to convert instead of 0. Fixes bug reported
+         by Robert Elz <kre@bmunnari.OZ.AU>
+
+                                   9/4
+                                   ---
+lib/readline/text.c,lib/readline/rlprivate.h
+       - _rl_backward_char_internal: new function, guts of rl_backward_char
+         and rl_backward_byte, not currently used there
+
+lib/readline/vi_mode.c
+       - _rl_vi_advance_point: new function, move point forward by one
+         character, handling multibyte locales and characters and the end
+         of line semantics
+       - _rl_vi_backup_point: new function, move point backward by one
+         character, handling multibyte locales and characters
+       - rl_vi_eword,rl_vi_eWord: use rl_vi_advance_point instead of a simple
+         increment to handle multibyte characters.  Fixes bug reported by
+         Enrico Maria De Angelis <enricomaria.dean6elis@gmail.com>
+
+                                   9/5
+                                   ---
+lib/readline/vi_mode.c
+       - rl_vi_fword,rl_vi_fWord: use rl_vi_advance_point instead of a simple
+         increment to handle multibyte characters
+       - rl_vi_bword,rl_vi_bWord: use rl_vi_backup_point instead of a simple
+         decrement (and _rl_vi_advance_point where necessary) to handle
+         multibyte characters
+       - rl_vi_complete,_rl_vi_change_mbchar_case,_rl_vi_domove_motion_cleanup:
+         use _rl_vi_advance_point instead of simple rl_point increment
+       - vi_delete_dispatch,vi_change_dispatch,vi_yank_dispatch: use
+         INCREMENT_POS instead of a simple increment to rl_mark to handle
+         multibyte characters
+       - rl_vi_column: use _rl_forward_char_internal, starting with
+         rl_point == 0, to handle multibyte characters (Posix says `character
+         position', not index)
+
+                                   9/7
+                                   ---
+configure.ac
+       - changed release status to `beta'
+
+                                   9/9
+                                   ---
+lib/readline/display.c
+       - _rl_update_final: if the bottom line has zero characters and we are
+         on that line at column 0, don't bother with an additional \r\n.
+         Fixes redisplay nit reported by Per Bothner <per@bothner.com>
+
+
+configure.ac
+       - openbsd needs DEV_FD_STAT_BROKEN defined
+
+[bash-5.0-beta frozen]
diff --git a/INSTALL b/INSTALL
index 9d5dee0be72433490e2bc5b86be8aec3fa6f5091..91f1dd9a7db5a066c90bd8311a089bd5dfa21eea 100644 (file)
--- a/INSTALL
+++ b/INSTALL
@@ -248,8 +248,8 @@ and linked, rather than changing run-time features.
 
 '--enable-largefile'
      Enable support for large files
-     (http://www.sas.com/standards/large_file/x_open.20Mar96.html) if
-     the operating system requires special compiler options to build
+     (http://www.unix.org/version2/whatsnew/lfs20mar.html) if the
+     operating system requires special compiler options to build
      programs which can access large files.  This is enabled by default,
      if the operating system provides large file support.
 
index 56528b5bfa303e115cd1a3cf73290a3b5ce58de2..2b267561b6a098574b0bc81726c6ce32840f22ca 100644 (file)
--- a/MANIFEST
+++ b/MANIFEST
@@ -453,6 +453,7 @@ lib/sh/tmpfile.c    f
 lib/sh/uconvert.c      f
 lib/sh/ufuncs.c                f
 lib/sh/unicode.c       f
+lib/sh/utf8.c          f
 lib/sh/vprint.c                f
 lib/sh/wcsdup.c                f
 lib/sh/wcsnwidth.c     f
@@ -868,6 +869,7 @@ tests/array22.sub   f
 tests/array23.sub      f
 tests/array24.sub      f
 tests/array25.sub      f
+tests/array26.sub      f
 tests/array-at-star    f
 tests/array2.right     f
 tests/assoc.tests      f
@@ -881,6 +883,7 @@ tests/assoc6.sub    f
 tests/assoc7.sub       f
 tests/assoc8.sub       f
 tests/assoc9.sub       f
+tests/assoc10.sub      f
 tests/attr.tests       f
 tests/attr.right       f
 tests/attr1.sub                f
@@ -1072,6 +1075,8 @@ tests/histexp1.sub        f
 tests/histexp2.sub     f
 tests/histexp3.sub     f
 tests/histexp4.sub     f
+tests/histexp5.sub     f
+tests/histexp6.sub     f
 tests/histexp.right    f
 tests/history.tests    f
 tests/history.right    f
@@ -1136,6 +1141,8 @@ tests/nameref16.sub       f
 tests/nameref17.sub    f
 tests/nameref18.sub    f
 tests/nameref19.sub    f
+tests/nameref20.sub    f
+tests/nameref21.sub    f
 tests/nameref.right    f
 tests/new-exp.tests    f
 tests/new-exp1.sub     f
@@ -1179,6 +1186,7 @@ tests/posixexp3.sub       f
 tests/posixexp4.sub    f
 tests/posixexp5.sub    f
 tests/posixexp6.sub    f
+tests/posixexp7.sub    f
 tests/posixexp2.tests  f
 tests/posixexp2.right  f
 tests/posixpat.tests   f
@@ -1199,6 +1207,7 @@ tests/procsub1.sub        f
 tests/quote.tests      f
 tests/quote.right      f
 tests/quote1.sub       f
+tests/quote2.sub       f
 tests/read.tests       f
 tests/read.right       f
 tests/read1.sub                f
@@ -1352,7 +1361,7 @@ tests/unicode1.sub        f
 tests/unicode2.sub     f
 tests/unicode3.sub     f
 tests/varenv.right     f
-tests/varenv.sh                f
+tests/varenv.tests     f
 tests/varenv1.sub      f
 tests/varenv2.sub      f
 tests/varenv3.sub      f
@@ -1365,6 +1374,10 @@ tests/varenv9.sub        f
 tests/varenv10.sub     f
 tests/varenv11.sub     f
 tests/varenv12.sub     f
+tests/varenv13.sub     f
+tests/varenv14.sub     f
+tests/varenv15.sub     f
+tests/varenv15.in      f
 tests/version          f
 tests/version.mini     f
 tests/vredir.tests     f
index 0e6c948eb3ebdf9161b06de66ceea4a0fa88a4e6..5fcb44b0172d07148799a380b38285205fa086e8 100644 (file)
@@ -1,4 +1,4 @@
-# Makefile for bash-5.0, version 4.25
+# Makefile for bash-5.0, version 4.27
 #
 # Copyright (C) 1996-2018 Free Software Foundation, Inc.
 
@@ -41,6 +41,7 @@ infodir = @infodir@
 includedir = @includedir@
 datadir = @datadir@
 localedir = @localedir@
+pkgconfigdir = ${libdir}/pkgconfig
 
 loadablesdir = @loadablesdir@
 headersdir = @headersdir@
@@ -230,7 +231,7 @@ SHLIB_SOURCE =      ${SH_LIBSRC}/clktck.c ${SH_LIBSRC}/getcwd.c \
                ${SH_LIBSRC}/input_avail.c ${SH_LIBSRC}/mbscasecmp.c \
                ${SH_LIBSRC}/fnxform.c ${SH_LIBSRC}/unicode.c \
                ${SH_LIBSRC}/wcswidth.c ${SH_LIBSRC}/wcsnwidth.c \
-               ${SH_LIBSRC}/shmbchar.c
+               ${SH_LIBSRC}/shmbchar.c ${SH_LIBSRC}/utf8.c
 
 SHLIB_LIB = -lsh
 SHLIB_LIBNAME = libsh.a
@@ -834,7 +835,7 @@ install-headers-dirs:
        @${SHELL} $(SUPPORT_SRC)mkinstalldirs $(DESTDIR)$(headersdir)
        @${SHELL} $(SUPPORT_SRC)mkinstalldirs $(DESTDIR)$(headersdir)/builtins
        @${SHELL} $(SUPPORT_SRC)mkinstalldirs $(DESTDIR)$(headersdir)/include
-       @${SHELL} $(SUPPORT_SRC)mkinstalldirs $(DESTDIR)$(libdir)/pkgconfig
+       @${SHELL} $(SUPPORT_SRC)mkinstalldirs $(DESTDIR)$(pkgconfigdir)
 
 install-headers: install-headers-dirs
        @for hf in $(INSTALLED_HEADERS) ; do \
@@ -849,14 +850,14 @@ install-headers: install-headers-dirs
        @for hf in $(CREATED_HEADERS) ; do \
                ${INSTALL_DATA} $(BUILD_DIR)/"$$hf" $(DESTDIR)$(headersdir)/$$hf; \
        done
-       $(INSTALL_DATA) $(SDIR)/bash.pc $(DESTDIR)$(libdir)/pkgconfig/bash.pc
+       -$(INSTALL_DATA) $(SDIR)/bash.pc $(DESTDIR)$(pkgconfigdir)/bash.pc
 
 uninstall-headers:
        -( cd $(DESTDIR)$(headersdir) && $(RM) $(INSTALLED_HEADERS) )
        -( cd $(DESTDIR)$(headersdir)/include && $(RM) $(INSTALLED_INCFILES) )
        -( cd $(DESTDIR)$(headersdir)/builtins && $(RM) $(INSTALLED_BUILTINS_HEADERS) )
        -( cd $(DESTDIR)$(headersdir) && $(RM) $(CREATED_HEADERS) )
-       -( $(RM) $(DESTDIR)$(libdir)/pkgconfig/bash.pc )
+       -( $(RM) $(DESTDIR)$(pkgconfigdir)/bash.pc )
 
 uninstall:     .made
        $(RM) $(DESTDIR)$(bindir)/$(Program) $(DESTDIR)$(bindir)/bashbug
diff --git a/NEWS b/NEWS
index 66cbf97dc595d65962a0b3becd4e190e0e360568..1ef109f3649e1f4e2e3d0343723d906351199862 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -85,6 +85,31 @@ z. The `times' builtin now honors the current locale when printing a decimal
 aa. There is a new (disabled by default, undocumented) shell option to enable
     and disable sending history to syslog at runtime.
 
+bb. Bash no longer allows variable assignments preceding a special builtin that
+    changes variable attributes to propagate back to the calling environment
+    unless the compatibility level is 44 or lower.
+
+cc. You can set the default value for $HISTSIZE at build time in config-top.h.
+
+dd. The `complete' builtin now accepts a -I option that applies the completion
+    to the initial word on the line.
+
+ee.  The internal bash malloc now uses mmap (if available) to satisfy requests
+    greater than 128K bytes, so free can use mfree to return the pages to the
+    kernel.
+
+ff. The shell doesn't automatically set BASH_ARGC and BASH_ARGV at startup
+    unless it's in debugging mode, as the documentation has always said, but
+    will dynamically create them if a script references them at the top level
+    without having enabled debugging mode.
+
+gg. The localvar_inherit option will not attempt to inherit a value from a
+    variable of an incompatible type (indexed vs. associative arrays, for
+    example).
+
+hh. The `globasciiranges' option is now enabled by default; it can be set to
+    off by default at configuration time.
+
 2.  New Features in Readline
 
 a. Non-incremental vi-mode search (`N', `n') can search for a shell pattern, as
@@ -112,6 +137,14 @@ g. There is a simple variable comparison facility available for use within an
    either `on' or `off'; variable names are separated from the operator by
    whitespace.
 
+h. The history expansion library now understands command and process
+   substitution and extended globbing and allows them to appear anywhere in a
+   word.
+
+i. The history library has a new variable that allows applications to set the
+   initial quoting state, so quoting state can be inherited from a previous
+   line.
+
 -------------------------------------------------------------------------------
 This is a terse description of the new features added to bash-4.4 since
 the release of bash-4.3.  As always, the manual page (doc/bash.1) is
diff --git a/POSIX b/POSIX
index 17b41c6f390cabdfdc1235d987fe2dfa5688b172..67d8ddf898c209059b729bb1b619b8cdd5f3eb04 100644 (file)
--- a/POSIX
+++ b/POSIX
@@ -11,212 +11,214 @@ files.
 
 The following list is what's changed when 'POSIX mode' is in effect:
 
-  1. When a command in the hash table no longer exists, Bash will
+  1. Bash ensures that the 'POSIXLY_CORRECT' variable is set.
+
+  2. When a command in the hash table no longer exists, Bash will
      re-search '$PATH' to find the new location.  This is also available
      with 'shopt -s checkhash'.
 
-  2. The message printed by the job control code and builtins when a job
+  3. The message printed by the job control code and builtins when a job
      exits with a non-zero status is 'Done(status)'.
 
-  3. The message printed by the job control code and builtins when a job
+  4. The message printed by the job control code and builtins when a job
      is stopped is 'Stopped(SIGNAME)', where SIGNAME is, for example,
      'SIGTSTP'.
 
-  4. Alias expansion is always enabled, even in non-interactive shells.
+  5. Alias expansion is always enabled, even in non-interactive shells.
 
-  5. Reserved words appearing in a context where reserved words are
+  6. Reserved words appearing in a context where reserved words are
      recognized do not undergo alias expansion.
 
-  6. The POSIX 'PS1' and 'PS2' expansions of '!' to the history number
+  7. The POSIX 'PS1' and 'PS2' expansions of '!' to the history number
      and '!!' to '!' are enabled, and parameter expansion is performed
      on the values of 'PS1' and 'PS2' regardless of the setting of the
      'promptvars' option.
 
-  7. The POSIX startup files are executed ('$ENV') rather than the
+  8. The POSIX startup files are executed ('$ENV') rather than the
      normal Bash files.
 
-  8. Tilde expansion is only performed on assignments preceding a
+  9. Tilde expansion is only performed on assignments preceding a
      command name, rather than on all assignment statements on the line.
 
-  9. The default history file is '~/.sh_history' (this is the default
+  10. The default history file is '~/.sh_history' (this is the default
      value of '$HISTFILE').
 
-  10. Redirection operators do not perform filename expansion on the
+  11. Redirection operators do not perform filename expansion on the
      word in the redirection unless the shell is interactive.
 
-  11. Redirection operators do not perform word splitting on the word in
+  12. Redirection operators do not perform word splitting on the word in
      the redirection.
 
-  12. Function names must be valid shell 'name's.  That is, they may not
+  13. Function names must be valid shell 'name's.  That is, they may not
      contain characters other than letters, digits, and underscores, and
      may not start with a digit.  Declaring a function with an invalid
      name causes a fatal syntax error in non-interactive shells.
 
-  13. Function names may not be the same as one of the POSIX special
+  14. Function names may not be the same as one of the POSIX special
      builtins.
 
-  14. POSIX special builtins are found before shell functions during
+  15. POSIX special builtins are found before shell functions during
      command lookup.
 
-  15. When printing shell function definitions (e.g., by 'type'), Bash
+  16. When printing shell function definitions (e.g., by 'type'), Bash
      does not print the 'function' keyword.
 
-  16. Literal tildes that appear as the first character in elements of
+  17. Literal tildes that appear as the first character in elements of
      the 'PATH' variable are not expanded as described above under *note
      Tilde Expansion::.
 
-  17. The 'time' reserved word may be used by itself as a command.  When
+  18. The 'time' reserved word may be used by itself as a command.  When
      used in this way, it displays timing statistics for the shell and
      its completed children.  The 'TIMEFORMAT' variable controls the
      format of the timing information.
 
-  18. When parsing and expanding a ${...} expansion that appears within
+  19. When parsing and expanding a ${...} expansion that appears within
      double quotes, single quotes are no longer special and cannot be
      used to quote a closing brace or other special character, unless
      the operator is one of those defined to perform pattern removal.
      In this case, they do not have to appear as matched pairs.
 
-  19. The parser does not recognize 'time' as a reserved word if the
+  20. The parser does not recognize 'time' as a reserved word if the
      next token begins with a '-'.
 
-  20. The '!' character does not introduce history expansion within a
+  21. The '!' character does not introduce history expansion within a
      double-quoted string, even if the 'histexpand' option is enabled.
 
-  21. If a POSIX special builtin returns an error status, a
+  22. If a POSIX special builtin returns an error status, a
      non-interactive shell exits.  The fatal errors are those listed in
      the POSIX standard, and include things like passing incorrect
      options, redirection errors, variable assignment errors for
      assignments preceding the command name, and so on.
 
-  22. A non-interactive shell exits with an error status if a variable
+  23. A non-interactive shell exits with an error status if a variable
      assignment error occurs when no command name follows the assignment
      statements.  A variable assignment error occurs, for example, when
      trying to assign a value to a readonly variable.
 
-  23. A non-interactive shell exits with an error status if a variable
+  24. A non-interactive shell exits with an error status if a variable
      assignment error occurs in an assignment statement preceding a
      special builtin, but not with any other simple command.
 
-  24. A non-interactive shell exits with an error status if the
+  25. A non-interactive shell exits with an error status if the
      iteration variable in a 'for' statement or the selection variable
      in a 'select' statement is a readonly variable.
 
-  25. Non-interactive shells exit if FILENAME in '.'  FILENAME is not
+  26. Non-interactive shells exit if FILENAME in '.'  FILENAME is not
      found.
 
-  26. Non-interactive shells exit if a syntax error in an arithmetic
+  27. Non-interactive shells exit if a syntax error in an arithmetic
      expansion results in an invalid expression.
 
-  27. Non-interactive shells exit if a parameter expansion error occurs.
+  28. Non-interactive shells exit if a parameter expansion error occurs.
 
-  28. Non-interactive shells exit if there is a syntax error in a script
+  29. Non-interactive shells exit if there is a syntax error in a script
      read with the '.' or 'source' builtins, or in a string processed by
      the 'eval' builtin.
 
-  29. Process substitution is not available.
+  30. Process substitution is not available.
 
-  30. While variable indirection is available, it may not be applied to
+  31. While variable indirection is available, it may not be applied to
      the '#' and '?' special parameters.
 
-  31. When expanding the '*' special parameter in a pattern context
+  32. When expanding the '*' special parameter in a pattern context
      where the expansion is double-quoted does not treat the '$*' as if
      it were double-quoted.
 
-  32. Assignment statements preceding POSIX special builtins persist in
+  33. Assignment statements preceding POSIX special builtins persist in
      the shell environment after the builtin completes.
 
-  33. Assignment statements preceding shell function calls persist in
+  34. Assignment statements preceding shell function calls persist in
      the shell environment after the function returns, as if a POSIX
      special builtin command had been executed.
 
-  34. The 'command' builtin does not prevent builtins that take
+  35. The 'command' builtin does not prevent builtins that take
      assignment statements as arguments from expanding them as
      assignment statements; when not in POSIX mode, assignment builtins
      lose their assignment statement expansion properties when preceded
      by 'command'.
 
-  35. The 'bg' builtin uses the required format to describe each job
+  36. The 'bg' builtin uses the required format to describe each job
      placed in the background, which does not include an indication of
      whether the job is the current or previous job.
 
-  36. The output of 'kill -l' prints all the signal names on a single
+  37. The output of 'kill -l' prints all the signal names on a single
      line, separated by spaces, without the 'SIG' prefix.
 
-  37. The 'kill' builtin does not accept signal names with a 'SIG'
+  38. The 'kill' builtin does not accept signal names with a 'SIG'
      prefix.
 
-  38. The 'export' and 'readonly' builtin commands display their output
+  39. The 'export' and 'readonly' builtin commands display their output
      in the format required by POSIX.
 
-  39. The 'trap' builtin displays signal names without the leading
+  40. The 'trap' builtin displays signal names without the leading
      'SIG'.
 
-  40. The 'trap' builtin doesn't check the first argument for a possible
+  41. The 'trap' builtin doesn't check the first argument for a possible
      signal specification and revert the signal handling to the original
      disposition if it is, unless that argument consists solely of
      digits and is a valid signal number.  If users want to reset the
      handler for a given signal to the original disposition, they should
      use '-' as the first argument.
 
-  41. The '.' and 'source' builtins do not search the current directory
+  42. The '.' and 'source' builtins do not search the current directory
      for the filename argument if it is not found by searching 'PATH'.
 
-  42. Enabling POSIX mode has the effect of setting the
+  43. Enabling POSIX mode has the effect of setting the
      'inherit_errexit' option, so subshells spawned to execute command
      substitutions inherit the value of the '-e' option from the parent
      shell.  When the 'inherit_errexit' option is not enabled, Bash
      clears the '-e' option in such subshells.
 
-  43. When the 'alias' builtin displays alias definitions, it does not
+  44. When the 'alias' builtin displays alias definitions, it does not
      display them with a leading 'alias ' unless the '-p' option is
      supplied.
 
-  44. When the 'set' builtin is invoked without options, it does not
+  45. When the 'set' builtin is invoked without options, it does not
      display shell function names and definitions.
 
-  45. When the 'set' builtin is invoked without options, it displays
+  46. When the 'set' builtin is invoked without options, it displays
      variable values without quotes, unless they contain shell
      metacharacters, even if the result contains nonprinting characters.
 
-  46. When the 'cd' builtin is invoked in LOGICAL mode, and the pathname
+  47. When the 'cd' builtin is invoked in LOGICAL mode, and the pathname
      constructed from '$PWD' and the directory name supplied as an
      argument does not refer to an existing directory, 'cd' will fail
      instead of falling back to PHYSICAL mode.
 
-  47. The 'pwd' builtin verifies that the value it prints is the same as
+  48. The 'pwd' builtin verifies that the value it prints is the same as
      the current directory, even if it is not asked to check the file
      system with the '-P' option.
 
-  48. When listing the history, the 'fc' builtin does not include an
+  49. When listing the history, the 'fc' builtin does not include an
      indication of whether or not a history entry has been modified.
 
-  49. The default editor used by 'fc' is 'ed'.
+  50. The default editor used by 'fc' is 'ed'.
 
-  50. The 'type' and 'command' builtins will not report a non-executable
+  51. The 'type' and 'command' builtins will not report a non-executable
      file as having been found, though the shell will attempt to execute
      such a file if it is the only so-named file found in '$PATH'.
 
-  51. The 'vi' editing mode will invoke the 'vi' editor directly when
+  52. The 'vi' editing mode will invoke the 'vi' editor directly when
      the 'v' command is run, instead of checking '$VISUAL' and
      '$EDITOR'.
 
-  52. When the 'xpg_echo' option is enabled, Bash does not attempt to
+  53. When the 'xpg_echo' option is enabled, Bash does not attempt to
      interpret any arguments to 'echo' as options.  Each argument is
      displayed, after escape characters are converted.
 
-  53. The 'ulimit' builtin uses a block size of 512 bytes for the '-c'
+  54. The 'ulimit' builtin uses a block size of 512 bytes for the '-c'
      and '-f' options.
 
-  54. The arrival of 'SIGCHLD' when a trap is set on 'SIGCHLD' does not
+  55. The arrival of 'SIGCHLD' when a trap is set on 'SIGCHLD' does not
      interrupt the 'wait' builtin and cause it to return immediately.
      The trap command is run once for each child that exits.
 
-  55. The 'read' builtin may be interrupted by a signal for which a trap
+  56. The 'read' builtin may be interrupted by a signal for which a trap
      has been set.  If Bash receives a trapped signal while executing
      'read', the trap handler executes and 'read' returns an exit status
      greater than 128.
 
-  56. Bash removes an exited background process's status from the list
+  57. Bash removes an exited background process's status from the list
      of such statuses after the 'wait' builtin is used to obtain it.
 
 There is other POSIX behavior that Bash does not implement by default
index 6ea6f40f9fa7927b1e77a96d21338b924ab3b520..6ed03e10b295d6773d779a7059b91e136057c8ea 100644 (file)
@@ -1307,7 +1307,7 @@ AC_CACHE_VAL(bash_cv_must_reinstall_sighandlers,
 
 typedef RETSIGTYPE sigfunc();
 
-int nsigint;
+volatile int nsigint;
 
 #ifdef HAVE_POSIX_SIGNALS
 sigfunc *
diff --git a/array.c b/array.c
index 5f7d72f13a929f52764624725c7ee5d8154bb661..bca18c5441a11b7f1e4cc9094b3ae7f2361bbeaf 100644 (file)
--- a/array.c
+++ b/array.c
@@ -406,8 +406,8 @@ int starsub, quoted;
        ARRAY           *a2;
        ARRAY_ELEMENT   *h, *p;
        arrayind_t      i;
-       char            *ifs, *sifs, *t;
-       int             slen;
+       char            *t;
+       WORD_LIST       *wl;
 
        p = a ? array_head (a) : 0;
        if (p == 0 || array_empty (a) || start > array_max_index(a))
@@ -432,32 +432,12 @@ int       starsub, quoted;
 
        a2 = array_slice(a, h, p);
 
-       if (quoted & (Q_DOUBLE_QUOTES|Q_HERE_DOCUMENT))
-               array_quote(a2);
-       else
-               array_quote_escapes(a2);
-
-       if (starsub && (quoted & (Q_DOUBLE_QUOTES|Q_HERE_DOCUMENT))) {
-               /* ${array[*]} */
-               array_remove_quoted_nulls (a2);
-               sifs = ifs_firstchar ((int *)NULL);
-               t = array_to_string (a2, sifs, 0);
-               free (sifs);
-       } else if (quoted & (Q_DOUBLE_QUOTES|Q_HERE_DOCUMENT)) {
-               /* ${array[@]} */
-               sifs = ifs_firstchar (&slen);
-               ifs = getifs ();
-               if (ifs == 0 || *ifs == 0) {
-                       if (slen < 2)
-                               sifs = xrealloc(sifs, 2);
-                       sifs[0] = ' ';
-                       sifs[1] = '\0';
-               }
-               t = array_to_string (a2, sifs, 0);
-               free (sifs);
-       } else
-               t = array_to_string (a2, " ", 0);
+       wl = array_to_word_list(a2);
        array_dispose(a2);
+       if (wl == 0)
+               return (char *)NULL;
+       t = string_list_pos_params(starsub ? '*' : '@', wl, quoted);
+       dispose_words(wl);
 
        return t;
 }
@@ -468,50 +448,28 @@ ARRAY     *a;
 char   *pat, *rep;
 int    mflags;
 {
-       ARRAY           *a2;
-       ARRAY_ELEMENT   *e;
-       char    *t, *sifs, *ifs;
-       int     slen;
+       char    *t;
+       int     pchar, qflags;
+       WORD_LIST       *wl, *save;
 
        if (a == 0 || array_head(a) == 0 || array_empty(a))
                return ((char *)NULL);
 
-       a2 = array_copy(a);
-       for (e = element_forw(a2->head); e != a2->head; e = element_forw(e)) {
-               t = pat_subst(element_value(e), pat, rep, mflags);
-               FREE(element_value(e));
-               e->value = t;
+       wl = array_to_word_list(a);
+       if (wl == 0)
+               return (char *)NULL;
+
+       for (save = wl; wl; wl = wl->next) {
+               t = pat_subst (wl->word->word, pat, rep, mflags);
+               FREE (wl->word->word);
+               wl->word->word = t;
        }
 
-       if (mflags & MATCH_QUOTED)
-               array_quote(a2);
-       else
-               array_quote_escapes(a2);
-
-       if (mflags & MATCH_STARSUB) {
-               array_remove_quoted_nulls (a2);
-               if ((mflags & MATCH_QUOTED) == 0 && ifs_is_null)
-                       sifs = spacesep;
-               else
-                       sifs = ifs_firstchar((int *)NULL);
-               t = array_to_string (a2, sifs, 0);
-               if (sifs != spacesep)
-                       free(sifs);
-       } else if (mflags & MATCH_QUOTED) {
-               /* ${array[@]} */
-               sifs = ifs_firstchar (&slen);
-               ifs = getifs ();
-               if (ifs == 0 || *ifs == 0) {
-                       if (slen < 2)
-                               sifs = xrealloc (sifs, 2);
-                       sifs[0] = ' ';
-                       sifs[1] = '\0';
-               }
-               t = array_to_string (a2, sifs, 0);
-               free(sifs);
-       } else
-               t = array_to_string (a2, " ", 0);
-       array_dispose (a2);
+       pchar = (mflags & MATCH_STARSUB) == MATCH_STARSUB ? '*' : '@';
+       qflags = (mflags & MATCH_QUOTED) == MATCH_QUOTED ? Q_DOUBLE_QUOTES : 0;
+
+       t = string_list_pos_params (pchar, save, qflags);
+       dispose_words(save);
 
        return t;
 }
@@ -523,53 +481,32 @@ char      *pat;
 int    modop;
 int    mflags;
 {
-       ARRAY           *a2;
-       ARRAY_ELEMENT   *e;
-       char    *t, *sifs, *ifs;
-       int     slen;
+       char    *t;
+       int     pchar, qflags;
+       WORD_LIST       *wl, *save;
 
        if (a == 0 || array_head(a) == 0 || array_empty(a))
                return ((char *)NULL);
 
-       a2 = array_copy(a);
-       for (e = element_forw(a2->head); e != a2->head; e = element_forw(e)) {
-               t = sh_modcase(element_value(e), pat, modop);
-               FREE(element_value(e));
-               e->value = t;
+       wl = array_to_word_list(a);
+       if (wl == 0)
+               return ((char *)NULL);
+
+       for (save = wl; wl; wl = wl->next) {
+               t = sh_modcase(wl->word->word, pat, modop);
+               FREE(wl->word->word);
+               wl->word->word = t;
        }
 
-       if (mflags & MATCH_QUOTED)
-               array_quote(a2);
-       else
-               array_quote_escapes(a2);
-
-       if (mflags & MATCH_STARSUB) {
-               array_remove_quoted_nulls (a2);
-               if ((mflags & MATCH_QUOTED) == 0 && ifs_is_null)
-                       sifs = spacesep;
-               else
-                       sifs = ifs_firstchar((int *)NULL);
-               t = array_to_string (a2, sifs, 0);
-               if (sifs != spacesep)
-                       free(sifs);
-       } else if (mflags & MATCH_QUOTED) {
-               /* ${array[@]} */
-               sifs = ifs_firstchar (&slen);
-               ifs = getifs ();
-               if (ifs == 0 || *ifs == 0) {
-                       if (slen < 2)
-                               sifs = xrealloc (sifs, 2);
-                       sifs[0] = ' ';
-                       sifs[1] = '\0';
-               }
-               t = array_to_string (a2, sifs, 0);
-               free(sifs);
-       } else
-               t = array_to_string (a2, " ", 0);
-       array_dispose (a2);
+       pchar = (mflags & MATCH_STARSUB) == MATCH_STARSUB ? '*' : '@';
+       qflags = (mflags & MATCH_QUOTED) == MATCH_QUOTED ? Q_DOUBLE_QUOTES : 0;
+
+       t = string_list_pos_params (pchar, save, qflags);
+       dispose_words(save);
 
        return t;
 }
+
 /*
  * Allocate and return a new array element with index INDEX and value
  * VALUE.
index 10b2b06a302fcf21fcc471f581c7e5c2f941c757..e3700dd3ec8092976e6ecd9231c405ec628a464b 100644 (file)
@@ -199,6 +199,8 @@ bind_array_var_internal (entry, ind, key, value, flags)
   FREE (newval);
 
   VUNSETATTR (entry, att_invisible);   /* no longer invisible */
+
+  /* check mark_modified_variables if we ever want to export array vars */
   return (entry);
 }
 
diff --git a/assoc.c b/assoc.c
index 84a387c208a02059c723332011f3c8afce2d0afb..673eccb22c11c8c569ce41c31f82621a212edc8d 100644 (file)
--- a/assoc.c
+++ b/assoc.c
@@ -305,54 +305,29 @@ assoc_patsub (h, pat, rep, mflags)
      char *pat, *rep;
      int mflags;
 {
-  BUCKET_CONTENTS *tlist;
-  int i, slen;
-  HASH_TABLE *h2;
-  char *t, *sifs, *ifs;
+  char *t;
+  int pchar, qflags;
+  WORD_LIST *wl, *save;
 
   if (h == 0 || assoc_empty (h))
     return ((char *)NULL);
 
-  h2 = assoc_copy (h);
-  for (i = 0; i < h2->nbuckets; i++)
-    for (tlist = hash_items (i, h2); tlist; tlist = tlist->next)
-      {
-       t = pat_subst ((char *)tlist->data, pat, rep, mflags);
-       FREE (tlist->data);
-       tlist->data = t;
-      }
-
-  if (mflags & MATCH_QUOTED)
-    assoc_quote (h2);
-  else
-    assoc_quote_escapes (h2);
+  wl = assoc_to_word_list (h);
+  if (wl == 0)
+    return (char *)NULL;
 
-  if (mflags & MATCH_STARSUB)
+  for (save = wl; wl; wl = wl->next)
     {
-      assoc_remove_quoted_nulls (h2);
-      sifs = ifs_firstchar ((int *)NULL);
-      t = assoc_to_string (h2, sifs, 0);
-      free (sifs);
+      t = pat_subst (wl->word->word, pat, rep, mflags);
+      FREE (wl->word->word);
+      wl->word->word = t;
     }
-  else if (mflags & MATCH_QUOTED)
-    {
-      /* ${array[@]} */
-      sifs = ifs_firstchar (&slen);
-      ifs = getifs ();
-      if (ifs == 0 || *ifs == 0)
-       {
-         if (slen < 2)
-           sifs = xrealloc (sifs, 2);
-         sifs[0] = ' ';
-         sifs[1] = '\0';
-       }
-      t = assoc_to_string (h2, sifs, 0);
-      free(sifs);
-    }
-  else
-    t = assoc_to_string (h2, " ", 0);
 
-  assoc_dispose (h2);
+  pchar = (mflags & MATCH_STARSUB) == MATCH_STARSUB ? '*' : '@';
+  qflags = (mflags & MATCH_QUOTED) == MATCH_QUOTED ? Q_DOUBLE_QUOTES : 0;
+
+  t = string_list_pos_params (pchar, save, qflags);
+  dispose_words (save);
 
   return t;
 }
@@ -364,54 +339,29 @@ assoc_modcase (h, pat, modop, mflags)
      int modop;
      int mflags;
 {
-  BUCKET_CONTENTS *tlist;
-  int i, slen;
-  HASH_TABLE *h2;
-  char *t, *sifs, *ifs;
+  char *t;
+  int pchar, qflags;
+  WORD_LIST *wl, *save;
 
   if (h == 0 || assoc_empty (h))
     return ((char *)NULL);
 
-  h2 = assoc_copy (h);
-  for (i = 0; i < h2->nbuckets; i++)
-    for (tlist = hash_items (i, h2); tlist; tlist = tlist->next)
-      {
-       t = sh_modcase ((char *)tlist->data, pat, modop);
-       FREE (tlist->data);
-       tlist->data = t;
-      }
-
-  if (mflags & MATCH_QUOTED)
-    assoc_quote (h2);
-  else
-    assoc_quote_escapes (h2);
+  wl = assoc_to_word_list (h);
+  if (wl == 0)
+    return ((char *)NULL);
 
-  if (mflags & MATCH_STARSUB)
-    {
-      assoc_remove_quoted_nulls (h2);
-      sifs = ifs_firstchar ((int *)NULL);
-      t = assoc_to_string (h2, sifs, 0);
-      free (sifs);
-    }
-  else if (mflags & MATCH_QUOTED)
+  for (save = wl; wl; wl = wl->next)
     {
-      /* ${array[@]} */
-      sifs = ifs_firstchar (&slen);
-      ifs = getifs ();
-      if (ifs == 0 || *ifs == 0)
-       {
-         if (slen < 2)
-           sifs = xrealloc (sifs, 2);
-         sifs[0] = ' ';
-         sifs[1] = '\0';
-       }
-      t = assoc_to_string (h2, sifs, 0);
-      free(sifs);
+      t = sh_modcase (wl->word->word, pat, modop);
+      FREE (wl->word->word);
+      wl->word->word = t;
     }
-  else
-    t = assoc_to_string (h2, " ", 0);
 
-  assoc_dispose (h2);
+  pchar = (mflags & MATCH_STARSUB) == MATCH_STARSUB ? '*' : '@';
+  qflags = (mflags & MATCH_QUOTED) == MATCH_QUOTED ? Q_DOUBLE_QUOTES : 0;
+
+  t = string_list_pos_params (pchar, save, qflags);
+  dispose_words (save);
 
   return t;
 }
index e0afe52acca1207e0fa88c19c0c2ee3d739beef4..7912cce311871da3766979ffe60178a4d03ce06d 100644 (file)
 extern int rl_done, rl_dispatching;    /* should really include readline.h */
 #endif
 
+#ifndef HISTSIZE_DEFAULT
+#  define HISTSIZE_DEFAULT "500"
+#endif
+
 #if !defined (errno)
 extern int errno;
 #endif
@@ -209,7 +213,7 @@ bash_history_inhibit_expansion (string, i)
      char *string;
      int i;
 {
-  int t;
+  int t, si;
   char hx[2];
 
   hx[0] = history_expansion_char;
@@ -232,9 +236,20 @@ bash_history_inhibit_expansion (string, i)
     return (1);
 #endif
 
+  si = 0;
+  /* If we're supposed to be in single-quoted string, skip over the
+     single-quoted part and then look at what's left. */
+  if (history_quoting_state == '\'')
+    {
+      si = skip_to_delim (string, 0, "'", SD_NOJMP|SD_HISTEXP);
+      if (string[si] == 0 || si >= i)
+       return (1);
+      si++;
+    }
+
   /* Make sure the history expansion should not be skipped by quoting or
      command/process substitution. */
-  else if ((t = skip_to_histexp (string, 0, hx, SD_NOJMP|SD_HISTEXP)) > 0)
+  if ((t = skip_to_histexp (string, si, hx, SD_NOJMP|SD_HISTEXP)) > 0)
     {
       /* Skip instances of history expansion appearing on the line before
         this one. */
@@ -305,7 +320,7 @@ load_history ()
      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");
+  set_if_not ("HISTSIZE", HISTSIZE_DEFAULT);
   sv_histsize ("HISTSIZE");
 
   set_if_not ("HISTFILESIZE", get_string_value ("HISTSIZE"));
@@ -545,7 +560,15 @@ pre_process_line (line, print_changes, addit)
      add that line to the history if ADDIT is non-zero. */
   if (!history_expansion_inhibited && history_expansion && history_expansion_p (line))
     {
+      /* If we are expanding the second or later line of a multi-line
+        command, decrease history_length so references to history expansions
+        in these lines refer to the previous history entry and not the
+        current command. */
+      if (history_length > 0 && command_oriented_history && current_command_first_line_saved && current_command_line_count > 1)
+        history_length--;
       expanded = history_expand (line, &history_value);
+      if (history_length >= 0 && command_oriented_history && current_command_first_line_saved && current_command_line_count > 1)
+        history_length++;
 
       if (expanded)
        {
index ae8fe1cccefa34adc731dd1710021ffb0badefc5..2b080197eb476f82ea278ec5f72ffc4b14c8eea3 100644 (file)
@@ -1426,6 +1426,7 @@ attempt_shell_completion (text, start, end)
   char **matches, *command_separator_chars;
 #if defined (PROGRAMMABLE_COMPLETION)
   int have_progcomps, was_assignment;
+  COMPSPEC *iw_compspec;
 #endif
 
   command_separator_chars = COMMAND_SEPARATORS;
@@ -1510,7 +1511,9 @@ attempt_shell_completion (text, start, end)
 #if defined (PROGRAMMABLE_COMPLETION)
   /* Attempt programmable completion. */
   have_progcomps = prog_completion_enabled && (progcomp_size () > 0);
-  if (matches == 0 && (in_command_position == 0 || text[0] == '\0') &&
+  iw_compspec = progcomp_search (INITIALWORD);
+  if (matches == 0 &&
+      (in_command_position == 0 || text[0] == '\0' || (in_command_position && iw_compspec)) &&
       current_prompt_string == ps1_prompt)
     {
       int s, e, s1, e1, os, foundcs;
@@ -1564,7 +1567,7 @@ attempt_shell_completion (text, start, end)
       else if (start == end && start == s1 && e != 0 && e1 > end)      /* beginning of command name, leading whitespace */
        foundcs = 0;
       else if (e == 0 && e == s && text[0] == '\0' && have_progcomps)  /* beginning of empty line */
-        prog_complete_matches = programmable_completions ("_EmptycmD_", text, s, e, &foundcs);
+        prog_complete_matches = programmable_completions (EMPTYCMD, text, s, e, &foundcs);
       else if (start == end && text[0] == '\0' && s1 > start && whitespace (rl_line_buffer[start]))
         foundcs = 0;           /* whitespace before command name */
       else if (e > s && was_assignment == 0 && e1 == end && rl_line_buffer[e] == 0 && whitespace (rl_line_buffer[e-1]) == 0)
@@ -1589,8 +1592,8 @@ attempt_shell_completion (text, start, end)
        }
       else if (s >= e && n[0] == '\0' && text[0] == '\0' && start > 0)
         {
-          foundcs = 0; /* empty command name following assignments */
-          in_command_position = was_assignment;
+          foundcs = 0; /* empty command name following optional assignments */
+          in_command_position += was_assignment;
         }
       else if (s == start && e == end && STREQ (n, text) && start > 0)
         {
@@ -1599,6 +1602,12 @@ attempt_shell_completion (text, start, end)
         }
       else
        foundcs = 0;
+
+      /* If we have defined a compspec for the initial (command) word, call
+        it and process the results like any other programmable completion. */
+      if (in_command_position && have_progcomps && foundcs == 0 && iw_compspec)
+       prog_complete_matches = programmable_completions (INITIALWORD, text, s, e, &foundcs);
+
       FREE (n);
       /* XXX - if we found a COMPSPEC for the command, just return whatever
         the programmable completion code returns, and disable the default
index 315c62f1fc330d38ca86713e89dd8950dd4a468e..2a255c781303c242f49b1e0de0bd6d9a608b9053 100644 (file)
--- a/braces.c
+++ b/braces.c
@@ -1,6 +1,6 @@
 /* braces.c -- code for doing word expansion in curly braces. */
 
-/* Copyright (C) 1987-2012 Free Software Foundation, Inc.
+/* Copyright (C) 1987-2018 Free Software Foundation, Inc.
 
    This file is part of GNU Bash, the Bourne Again SHell.
 
@@ -420,9 +420,9 @@ mkseq (start, end, incr, type, width)
   /* Instead of a simple nelem = prevn + 1, something like:
        nelem = (prevn / imaxabs(incr)) + 1;
      would work */
-  nelem = (prevn / sh_imaxabs(incr)) + 1;
-  if (nelem > INT_MAX - 2)             /* Don't overflow int */
+  if ((prevn / sh_imaxabs (incr)) > INT_MAX - 3)       /* check int overflow */
     return ((char **)NULL);
+  nelem = (prevn / sh_imaxabs(incr)) + 1;
   result = strvec_mcreate (nelem + 1);
   if (result == 0)
     {
@@ -778,7 +778,9 @@ array_concat (arr1, arr2)
   len1 = strvec_len (arr1);
   len2 = strvec_len (arr2);
 
-  result = (char **)xmalloc ((1 + (len1 * len2)) * sizeof (char *));
+  result = (char **)malloc ((1 + (len1 * len2)) * sizeof (char *));
+  if (result == 0)
+    return (result);
 
   len = 0;
   for (i = 0; i < len1; i++)
index 0752f0d6d45c3cafc4cb61a55c2f316d9ece12ea..00be24ea0029911f48273cf666f79206f78e3812 100644 (file)
@@ -678,7 +678,7 @@ get_job_spec (list)
   if (DIGIT (*word) && all_digits (word))
     {
       job = atoi (word);
-      return (job > js.j_jobslots ? NO_JOB : job - 1);
+      return ((job < 0 || job > js.j_jobslots) ? NO_JOB : job - 1);
     }
 
   jflags = 0;
index 3ca8c1fae7acbdfe4033e07a39bb3ea221bf2bce..1ea308bd451885ff32db7b90ff3359f103a9c189 100644 (file)
@@ -23,7 +23,7 @@ $PRODUCES complete.c
 $BUILTIN complete
 $DEPENDS_ON PROGRAMMABLE_COMPLETION
 $FUNCTION complete_builtin
-$SHORT_DOC complete [-abcdefgjksuv] [-pr] [-DE] [-o option] [-A action] [-G globpat] [-W wordlist]  [-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] [name ...]
+$SHORT_DOC complete [-abcdefgjksuv] [-pr] [-DEI] [-o option] [-A action] [-G globpat] [-W wordlist]  [-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] [name ...]
 Specify how arguments are to be completed by Readline.
 
 For each NAME, specify how arguments are to be completed.  If no options
@@ -38,10 +38,12 @@ Options:
                without any specific completion defined
   -E   apply the completions and actions to "empty" commands --
                completion attempted on a blank line
+  -I   apply the completions and actions to the intial (usually the
+               command) word
 
 When completion is attempted, the actions are applied in the order the
-uppercase-letter options are listed above.  The -D option takes
-precedence over -E.
+uppercase-letter options are listed above.  If multiple options are supplied,
+the -D option takes precedence over -E, and both take precedence over -I.
 
 Exit Status:
 Returns success unless an invalid option is supplied or an error occurs.
@@ -79,6 +81,7 @@ struct _optflags {
   int rflag;
   int Dflag;
   int Eflag;
+  int Iflag;
 };
 
 static int find_compact __P((char *));
@@ -195,7 +198,7 @@ build_actions (list, flagp, actp, optp)
   opt_given = 0;
 
   reset_internal_getopt ();
-  while ((opt = internal_getopt (list, "abcdefgjko:prsuvA:G:W:P:S:X:F:C:DE")) != -1)
+  while ((opt = internal_getopt (list, "abcdefgjko:prsuvA:G:W:P:S:X:F:C:DEI")) != -1)
     {
       opt_given = 1;
       switch (opt)
@@ -307,6 +310,18 @@ build_actions (list, flagp, actp, optp)
              builtin_usage ();
              return (EX_USAGE);
            }
+       case 'I':
+         if (flagp)
+           {
+             flagp->Iflag = 1;
+             break;
+           }
+         else
+           {
+             sh_invalidopt ("-I");
+             builtin_usage ();
+             return (EX_USAGE);
+           }
        case 'F':
          Farg = list_optarg;
          break;
@@ -355,7 +370,8 @@ complete_builtin (list)
       return (EXECUTION_SUCCESS);
     }
 
-  opt_given = oflags.pflag = oflags.rflag = oflags.Dflag = oflags.Eflag = 0;
+  opt_given = oflags.pflag = oflags.rflag = 0;
+  oflags.Dflag = oflags.Eflag = oflags.Iflag = 0;
 
   acts = copts = (unsigned long)0L;
   Garg = Warg = Parg = Sarg = Xarg = Farg = Carg = (char *)NULL;
@@ -370,8 +386,14 @@ complete_builtin (list)
 
   list = loptend;
 
-  wl = oflags.Dflag ? make_word_list (make_bare_word (DEFAULTCMD), (WORD_LIST *)NULL)
-                   : (oflags.Eflag ? make_word_list (make_bare_word (EMPTYCMD), (WORD_LIST *)NULL) : 0);
+  if (oflags.Dflag)
+    wl = make_word_list (make_bare_word (DEFAULTCMD), (WORD_LIST *)NULL);
+  else if (oflags.Eflag)
+    wl = make_word_list (make_bare_word (EMPTYCMD), (WORD_LIST *)NULL);
+  else if (oflags.Iflag)
+    wl = make_word_list (make_bare_word (INITIALWORD), (WORD_LIST *)NULL);
+  else
+    wl = (WORD_LIST *)NULL;
 
   /* -p overrides everything else */
   if (oflags.pflag || (list == 0 && opt_given == 0))
@@ -564,10 +586,12 @@ print_one_completion (cmd, cs)
   /* simple arguments that don't require quoting */
   PRINTARG (cs->funcname, "-F");
 
-  if (STREQ (cmd, EMPTYCMD))
-    printf ("-E\n");
-  else if (STREQ (cmd, DEFAULTCMD))
+  if (STREQ (cmd, DEFAULTCMD))
     printf ("-D\n");
+  else if (STREQ (cmd, EMPTYCMD))
+    printf ("-E\n");
+  else if (STREQ (cmd, INITIALWORD))
+    printf ("-I\n");
   else
     printf ("%s\n", cmd);
 
@@ -608,10 +632,12 @@ print_compopts (cmd, cs, full)
       PRINTCOMPOPT (COPT_PLUSDIRS, "plusdirs");
     }
 
-  if (STREQ (cmd, EMPTYCMD))
-    printf ("-E\n");
-  else if (STREQ (cmd, DEFAULTCMD))
+  if (STREQ (cmd, DEFAULTCMD))
     printf ("-D\n");
+  else if (STREQ (cmd, EMPTYCMD))
+    printf ("-E\n");
+  else if (STREQ (cmd, INITIALWORD))
+    printf ("-I\n");
   else
     printf ("%s\n", cmd);
 }
@@ -769,7 +795,7 @@ compgen_builtin (list)
 $BUILTIN compopt
 $DEPENDS_ON PROGRAMMABLE_COMPLETION
 $FUNCTION compopt_builtin
-$SHORT_DOC compopt [-o|+o option] [-DE] [name ...]
+$SHORT_DOC compopt [-o|+o option] [-DEI] [name ...]
 Modify or display completion options.
 
 Modify the completion options for each NAME, or, if no NAMEs are supplied,
@@ -780,6 +806,7 @@ Options:
        -o option       Set completion option OPTION for each NAME
        -D              Change options for the "default" command completion
        -E              Change options for the "empty" command completion
+       -I              Change options for completion on the initial word
 
 Using `+o' instead of `-o' turns off the specified option.
 
@@ -800,15 +827,15 @@ int
 compopt_builtin (list)
      WORD_LIST *list;
 {
-  int opts_on, opts_off, *opts, opt, oind, ret, Dflag, Eflag;
+  int opts_on, opts_off, *opts, opt, oind, ret, Dflag, Eflag, Iflag;
   WORD_LIST *l, *wl;
   COMPSPEC *cs;
 
-  opts_on = opts_off = Eflag = Dflag = 0;
+  opts_on = opts_off = Eflag = Dflag = Iflag = 0;
   ret = EXECUTION_SUCCESS;
 
   reset_internal_getopt ();
-  while ((opt = internal_getopt (list, "+o:DE")) != -1)
+  while ((opt = internal_getopt (list, "+o:DEI")) != -1)
     {
       opts = (list_opttype == '-') ? &opts_on : &opts_off;
 
@@ -829,6 +856,9 @@ compopt_builtin (list)
        case 'E':
          Eflag = 1;
          break;
+       case 'I':
+         Iflag = 1;
+         break;
        CASE_HELPOPT;
        default:
          builtin_usage ();
@@ -837,8 +867,14 @@ compopt_builtin (list)
     }
   list = loptend;
 
-  wl = Dflag ? make_word_list (make_bare_word (DEFAULTCMD), (WORD_LIST *)NULL)
-            : (Eflag ? make_word_list (make_bare_word (EMPTYCMD), (WORD_LIST *)NULL) : 0);
+  if (Dflag)
+    wl = make_word_list (make_bare_word (DEFAULTCMD), (WORD_LIST *)NULL);
+  else if (Eflag)
+    wl = make_word_list (make_bare_word (EMPTYCMD), (WORD_LIST *)NULL);
+  else if (Iflag)
+    wl = make_word_list (make_bare_word (INITIALWORD), (WORD_LIST *)NULL);
+  else
+    wl = (WORD_LIST *)NULL;
 
   if (list == 0 && wl == 0)
     {
index 2574eba4df604186d65bde3c345f899c7e155e8b..7eac6f5839f0abb52456a8bdddd22de29eabe9ea 100644 (file)
@@ -440,19 +440,38 @@ restart_new_var_name:
       refvar = (SHELL_VAR *)NULL;
       if (variable_context && mkglobal == 0 && ((flags_on & att_function) == 0))
        {
+         char *newname;
+
          /* check name for validity here? */
+         var = find_variable (name);
+         if (var == 0)
+           newname = nameref_transform_name (name, ASS_MKLOCAL);
+         else if ((flags_on & att_nameref) == 0 && (flags_off & att_nameref) == 0)
+           {
+             /* Ok, we're following namerefs here, so let's make sure that if
+                we followed one, it was at the same context (see below for
+                more details). */
+             refvar = find_variable_last_nameref (name, 1);
+             newname = (refvar && refvar->context != variable_context) ? name : var->name;
+             refvar = (SHELL_VAR *)NULL;
+           }
+         else
+           newname = name;     /* dealing with nameref attribute */
+
 #if defined (ARRAY_VARS)
+         /* Pass 1 as second argument to make_local_{assoc,array}_variable
+            return an existing {array,assoc} variable to be flagged as an
+            error below. */
          if (flags_on & att_assoc)
-           var = make_local_assoc_variable (name);
+           var = make_local_assoc_variable (newname, 1);
          else if ((flags_on & att_array) || making_array_special)
-           var = make_local_array_variable (name, making_array_special);
+           var = make_local_array_variable (newname, 1);
          else
 #endif
          if (offset == 0 && (flags_on & att_nameref))
            {
              /* First look for refvar at current scope */
              refvar = find_variable_last_nameref (name, 1);
-             var = find_variable (name);
              /* VARIABLE_CONTEXT != 0, so we are attempting to create or modify
                 the attributes for a local variable at the same scope.  If we've
                 used a reference from a previous context to resolve VAR, we
@@ -471,7 +490,8 @@ restart_new_var_name:
            }
          else
            /* XXX - check name for validity here with valid_nameref_value */
-           var = make_local_variable (name, 0);        /* sets att_invisible for new vars */
+           var = make_local_variable ((flags_on & att_nameref) ? name : newname, 0);   /* sets att_invisible for new vars */
+
          if (var == 0)
            {
              any_failed++;
@@ -623,14 +643,14 @@ restart_new_var_name:
            }
 #endif
 
-         /* See if we are trying to set flags or value for an existing nameref
-            that points to a non-existent variable: e.g.,
+         /* See if we are trying to set flags or value (or create) for an
+            existing nameref that points to a non-existent variable: e.g.,
                declare -n foo=bar
                unset foo       # unsets bar
                declare -i foo
                foo=4+4
                declare -p foo */
-         if (var == 0 && (flags_on || flags_off || offset))
+         if (var == 0 && (mkglobal || flags_on || flags_off || offset))
            {
              refvar = mkglobal ? find_global_variable_last_nameref (name, 0) : find_variable_last_nameref (name, 0);
              if (refvar && nameref_p (refvar) == 0)
@@ -939,9 +959,12 @@ restart_new_var_name:
                {
                  tvalue = var_isset (var) ? savestring (value_cell (var)) : savestring ("");
                  tv = bind_variable (var->name, tvalue, 0);
-                 tv->attributes |= var->attributes & ~att_tempvar;
-                 if (tv->context > 0)
-                   VSETATTR (tv, att_propagate);
+                 if (tv)
+                   {
+                     tv->attributes |= var->attributes & ~att_tempvar;
+                     if (tv->context > 0)
+                       VSETATTR (tv, att_propagate);
+                   }
                  free (tvalue);
                }
              VSETATTR (var, att_propagate);
index fc0892918eb2a7232487a313c29b0ee722d64843..1f76c25f7dc8d7860f18574e0ac38527ece135e8 100644 (file)
@@ -1198,8 +1198,10 @@ getuintmax ()
   if (*ep)
     {
       sh_invalidnum (garglist->word->word);
+#if 0
       /* Same POSIX.2 conversion error requirements as getintmax(). */
       ret = 0;
+#endif
       conversion_error = 1;
     }
   else if (errno == ERANGE)
@@ -1227,8 +1229,10 @@ getfloatmax ()
   if (*ep)
     {
       sh_invalidnum (garglist->word->word);
+#if 0
       /* Same thing about POSIX.2 conversion error requirements. */
       ret = 0;
+#endif
       conversion_error = 1;
     }
   else if (errno == ERANGE)
index 584ff70a4ea2e5f7a3e933c11ebd964860022372..a73905c374e0bb166008a3211e16d701b0342a03 100644 (file)
@@ -705,6 +705,7 @@ add_char:
            }
          else
 #  endif
+         if (locale_utf8locale == 0 || ((c & 0x80) != 0))
            i += read_mbchar (fd, input_string, i, c, unbuffered_read);
        }
 #endif
index 916515f8727c3ca4023bf79d68d0dcb555d72f22..c756964a0549669ec17721d8e1cd24e444596bc1 100644 (file)
@@ -560,18 +560,23 @@ set_var_attribute (name, attribute, undo)
          var->attributes |= tv->attributes & ~att_tempvar;
          /* This avoids an error message when propagating a read-only var
             later on. */
-         if (var->context == 0 && (attribute & att_readonly))
+         if (posixly_correct || shell_compatibility_level <= 44)
            {
-             /* Don't bother to set the `propagate to the global variables
-                table' flag if we've just bound the variable in that table */
-             v = find_global_variable (tv->name);
-             if (v != var)
+             if (var->context == 0 && (attribute & att_readonly))
+               {
+                 /* Don't bother to set the `propagate to the global variables
+                    table' flag if we've just bound the variable in that
+                    table */
+                 v = find_global_variable (tv->name);
+                 if (v != var)
+                   VSETATTR (tv, att_propagate);
+               }
+             else
                VSETATTR (tv, att_propagate);
+             if (var->context != 0)
+               VSETATTR (var, att_propagate);
            }
-         else
-           VSETATTR (tv, att_propagate);
-         if (var->context != 0)
-           VSETATTR (var, att_propagate);
+
          SETVARATTR (tv, attribute, undo);     /* XXX */
 
          stupidly_hack_special_variables (tv->name);
index 9b88aa446044f05bd86d966b0d7096b448fea233..d76b86697290bd1e5a4676792d459312561fee71 100644 (file)
@@ -110,6 +110,7 @@ extern int enable_hostname_completion __P((int));
 
 #if defined (PROGRAMMABLE_COMPLETION)
 extern int prog_completion_enabled;
+extern int progcomp_alias;
 #endif
 
 #if defined (DEBUGGER)
@@ -219,7 +220,7 @@ static struct {
   { "lithist", &literal_history, (shopt_set_func_t *)NULL },
 #endif
   { "localvar_inherit", &localvar_inherit, (shopt_set_func_t *)NULL },
-#if 0
+#if 0 /* bash-5.0-beta */
   { "localvar_unset", &localvar_unset, (shopt_set_func_t *)NULL },
 #endif
   { "login_shell", &shopt_login_shell, set_login_shell },
@@ -232,6 +233,9 @@ static struct {
   { "nullglob",        &allow_null_glob_expansion, (shopt_set_func_t *)NULL },
 #if defined (PROGRAMMABLE_COMPLETION)
   { "progcomp", &prog_completion_enabled, (shopt_set_func_t *)NULL },
+#  if 0        /* bash-5.0-beta */
+  { "progcomp_alias", &progcomp_alias, (shopt_set_func_t *)NULL },
+#  endif
 #endif
   { "promptvars", &promptvars, (shopt_set_func_t *)NULL },
 #if defined (RESTRICTED_SHELL)
index 856264405f3a7dcc842c7d65ad05321c222e00e9..32495162af65d1eb3af0944c6b193b070646cba2 100644 (file)
--- a/command.h
+++ b/command.h
@@ -94,7 +94,7 @@ enum command_type { cm_for, cm_case, cm_while, cm_if, cm_simple, cm_select,
 #define W_HASQUOTEDNULL        0x040000        /* word contains a quoted null character */
 #define W_DQUOTE       0x080000        /* word should be treated as if double-quoted */
 #define W_NOPROCSUB    0x100000        /* don't perform process substitution */
-#define W_HASCTLESC    0x200000        /* word contains literal CTLESC characters */
+#define W_SAWQUOTEDNULL        0x200000        /* word contained a quoted null that was removed */
 #define W_ASSIGNASSOC  0x400000        /* word looks like associative array assignment */
 #define W_ASSIGNARRAY  0x800000        /* word looks like a compound indexed array assignment */
 #define W_ARRAYIND     0x1000000       /* word is an array index being expanded */
index a7008bcaf1c8afa5163534ac33f9dd3ec1808cf5..b1ed925f1c3910c94d09e2095ec14ec43110bbcc 100644 (file)
 /* Define to force the value of OLDPWD inherited from the environment to be a
    directory */
 #define OLDPWD_CHECK_DIRECTORY 1
+
+/* Define to set the initial size of the history list ($HISTSIZE). This must
+   be a string. */
+/*#define HISTSIZE_DEFAULT "500"*/
index 1e4b71d1e7fe9a094e5cff92aa986b16ed4560d2..aa0c0312c1393de6ea21cbf6be522754e610b07f 100644 (file)
 /* Define if you have the <sys/ioctl.h> header file.  */
 #undef HAVE_SYS_IOCTL_H
 
+/* Define if you have the <sys/mman.h> header file.  */
+#undef HAVE_SYS_MMAN_H
+
 /* Define if you have the <sys/ndir.h> header file.  */
 #undef HAVE_SYS_NDIR_H
 
 /* Define if you have a working `mmap' system call. */
 #undef HAVE_MMAP
 
+/* Define if you have the `mremap' function. */
+#undef HAVE_MREMAP
+
 /* Define if you have the `munmap' function. */
 #undef HAVE_MUNMAP
 
index f0db2db738489f20b34cc3808b933a357cf0366c..dd4ff051e9352dbf16a05d30f77bcb0efb968455 100755 (executable)
--- a/configure
+++ b/configure
@@ -1,7 +1,7 @@
 #! /bin/sh
-# From configure.ac for Bash 5.0, version 4.091.
+# From configure.ac for Bash 5.0, version 5.002.
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for bash 5.0-alpha.
+# Generated by GNU Autoconf 2.69 for bash 5.0-beta.
 #
 # Report bugs to <bug-bash@gnu.org>.
 #
@@ -581,8 +581,8 @@ MAKEFLAGS=
 # Identity of this package.
 PACKAGE_NAME='bash'
 PACKAGE_TARNAME='bash'
-PACKAGE_VERSION='5.0-alpha'
-PACKAGE_STRING='bash 5.0-alpha'
+PACKAGE_VERSION='5.0-beta'
+PACKAGE_STRING='bash 5.0-beta'
 PACKAGE_BUGREPORT='bug-bash@gnu.org'
 PACKAGE_URL=''
 
@@ -1394,7 +1394,7 @@ if test "$ac_init_help" = "long"; then
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures bash 5.0-alpha to adapt to many kinds of systems.
+\`configure' configures bash 5.0-beta to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1459,7 +1459,7 @@ fi
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of bash 5.0-alpha:";;
+     short | recursive ) echo "Configuration of bash 5.0-beta:";;
    esac
   cat <<\_ACEOF
 
@@ -1655,7 +1655,7 @@ fi
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-bash configure 5.0-alpha
+bash configure 5.0-beta
 generated by GNU Autoconf 2.69
 
 Copyright (C) 2012 Free Software Foundation, Inc.
@@ -2364,7 +2364,7 @@ cat >config.log <<_ACEOF
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by bash $as_me 5.0-alpha, which was
+It was created by bash $as_me 5.0-beta, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   $ $0 $@
@@ -2759,7 +2759,7 @@ ac_config_headers="$ac_config_headers config.h"
 
 
 BASHVERS=5.0
-RELSTATUS=alpha
+RELSTATUS=beta
 
 case "$RELSTATUS" in
 alp*|bet*|dev*|rc*|releng*|maint*)     DEBUG='-DDEBUG' MALLOC_DEBUG='-DMALLOC_DEBUG' ;;
@@ -2847,33 +2847,38 @@ opt_with_installed_readline=no
 #htmldir=
 
 case "${host_cpu}-${host_os}" in
+# mostly obsolete platforms
 alpha*-*)      opt_bash_malloc=no ;;   # alpha running osf/1 or linux
 *[Cc]ray*-*)   opt_bash_malloc=no ;;   # Crays
 *-osf1*)       opt_bash_malloc=no ;;   # other osf/1 machines
+*-dgux*)       opt_bash_malloc=no ;;   # DG/UX machines
 sparc-svr4*)   opt_bash_malloc=no ;;   # sparc SVR4, SVR4.2
-sparc-netbsd*) opt_bash_malloc=no ;;   # needs 8-byte alignment
-mips-irix6*)   opt_bash_malloc=no ;;   # needs 8-byte alignment
 m68k-sysv)     opt_bash_malloc=no ;;   # fixes file descriptor leak in closedir
+*-bsdi2.1|*-bsdi3.?)   opt_bash_malloc=no ; : ${CC:=shlicc2} ;; # for loadable builtins
+*-opennt*|*-interix*)  opt_bash_malloc=no ;;   # Interix, now owned by Microsoft
+*-beos*)       opt_bash_malloc=no ;;   # they say it's suitable
+# These need additional investigation
 sparc-linux*)  opt_bash_malloc=no ;;   # sparc running linux; requires ELF
-#*-freebsd*-gnu)       opt_bash_malloc=no ;;   # there's some undetermined problem here
-#*-freebsd*)   opt_bash_malloc=no ;;   # they claim it's better; I disagree
-*-openbsd*)    opt_bash_malloc=no ;;   # they claim it needs eight-bit alignment
-*-mirbsd*)     opt_bash_malloc=no ;;   # they claim it needs eight-bit alignment
 *-aix*)                opt_bash_malloc=no ;;   # AIX machines
+*-cygwin*)     opt_bash_malloc=no ;;   # Cygnus's CYGWIN environment
+# Mach-derived systems have a ton of extra malloc functions and lack sbrk(2)
 *-nextstep*)   opt_bash_malloc=no ;;   # NeXT machines running NeXTstep
 *-openstep*)   opt_bash_malloc=no ;;   # i386/Sparc/HP machines running Openstep
 *-macos*)      opt_bash_malloc=no ;;   # Apple MacOS X
 *-rhapsody*)   opt_bash_malloc=no ;;   # Apple Rhapsody (MacOS X)
 *-darwin*)     opt_bash_malloc=no ;;   # Apple Darwin (MacOS X)
-*-dgux*)       opt_bash_malloc=no ;;   # DG/UX machines
-*-qnx*)                opt_bash_malloc=no ;;   # QNX 4.2, QNX [67].x
 *-machten4)    opt_bash_malloc=no ;;   # MachTen 4.x
-*-bsdi2.1|*-bsdi3.?)   opt_bash_malloc=no ; : ${CC:=shlicc2} ;; # for loadable builtins
-*-beos*)       opt_bash_malloc=no ;;   # they say it's suitable
-*-cygwin*)     opt_bash_malloc=no ;;   # Cygnus's CYGWIN environment
-*-opennt*|*-interix*)  opt_bash_malloc=no ;;   # Interix, now owned by Microsoft
+# Niche or non-mainstream-shell-user systems
+*-qnx*)                opt_bash_malloc=no ;;   # QNX 4.2, QNX [67].x
 *-nsk*)                opt_bash_malloc=no ;;   # HP NonStop
 *-haiku*)      opt_bash_malloc=no ;;   # Haiku OS
+# Deprecated -- bash malloc is suitable
+#sparc-netbsd*)        opt_bash_malloc=no ;;   # needs 8-byte alignment
+#mips-irix6*)  opt_bash_malloc=no ;;   # needs 8-byte alignment
+#*-freebsd*-gnu)       opt_bash_malloc=no ;;   # there's some undetermined problem here
+#*-freebsd*)   opt_bash_malloc=no ;;   # they claim it's better; I disagree
+#*-openbsd*)   opt_bash_malloc=no ;;   # they claim it needs eight-bit alignment
+#*-mirbsd*)    opt_bash_malloc=no ;;   # they claim it needs eight-bit alignment
 esac
 
 # memory scrambling on free()
@@ -2981,7 +2986,7 @@ opt_casemod_attrs=yes
 opt_casemod_expansions=yes
 opt_extglob_default=no
 opt_dircomplete_expand_default=no
-opt_globascii_default=no
+opt_globascii_default=yes
 opt_function_import=yes
 opt_dev_fd_stat_broken=no
 
@@ -3004,7 +3009,7 @@ if test $opt_minimal_config = yes; then
        opt_net_redirs=no opt_progcomp=no opt_separate_help=no
        opt_multibyte=yes opt_cond_regexp=no opt_coproc=no
        opt_casemod_attrs=no opt_casemod_expansions=no opt_extglob_default=no
-       opt_globascii_default=no
+       opt_globascii_default=yes
 fi
 
 # Check whether --enable-alias was given.
@@ -5404,7 +5409,7 @@ fi
 
 
        case "$ac_cv_rl_version" in
-       7*|8*|9*)       ;;
+       8*|9*)  ;;
        *)      opt_with_installed_readline=no
                { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: installed readline library is too old to be linked with bash" >&5
 $as_echo "$as_me: WARNING: installed readline library is too old to be linked with bash" >&2;}
@@ -9292,7 +9297,7 @@ fi
 done
 
 for ac_header in sys/pte.h sys/stream.h sys/select.h sys/file.h sys/ioctl.h \
-                sys/param.h sys/socket.h sys/stat.h \
+                sys/mman.h sys/param.h sys/socket.h sys/stat.h \
                 sys/time.h sys/times.h sys/types.h sys/wait.h
 do :
   as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
@@ -11046,7 +11051,7 @@ fi
 rm -f conftest.mmap conftest.txt
 
 for ac_func in __argz_count __argz_next __argz_stringify dcgettext mempcpy \
-               munmap stpcpy strcspn
+               munmap mremap stpcpy strcspn
 do :
   as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
 ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
@@ -15252,7 +15257,7 @@ else
 
 typedef RETSIGTYPE sigfunc();
 
-int nsigint;
+volatile int nsigint;
 
 #ifdef HAVE_POSIX_SIGNALS
 sigfunc *
@@ -16175,6 +16180,7 @@ linux*)         LOCAL_LDFLAGS=-rdynamic          # allow dynamic loading
                *)      $as_echo "#define PGRP_PIPE 1" >>confdefs.h
  ;;
                esac ;;
+openbsd*)      LOCAL_CFLAGS="-DDEV_FD_STAT_BROKEN" ;;
 *qnx[67]*)     LOCAL_LIBS="-lncurses" ;;
 *qnx*)         LOCAL_CFLAGS="-Dqnx -F -3s" LOCAL_LDFLAGS="-3s" LOCAL_LIBS="-lunix -lncurses" ;;
 powerux*)      LOCAL_LIBS="-lgen" ;;
@@ -16815,7 +16821,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by bash $as_me 5.0-alpha, which was
+This file was extended by bash $as_me 5.0-beta, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -16881,7 +16887,7 @@ _ACEOF
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
 ac_cs_version="\\
-bash config.status 5.0-alpha
+bash config.status 5.0-beta
 configured by $0, generated by GNU Autoconf 2.69,
   with options \\"\$ac_cs_config\\"
 
index d0ccffb46f851e9fc7116ccf5ab66f56c51f07ae..5ead20165f14cdf72cf1bb9905c8fa956283ac94 100644 (file)
@@ -5,7 +5,7 @@ dnl report bugs to chet@po.cwru.edu
 dnl
 dnl Process this file with autoconf to produce a configure script.
 
-# Copyright (C) 1987-2016 Free Software Foundation, Inc.
+# Copyright (C) 1987-2018 Free Software Foundation, Inc.
 
 #
 #   This program is free software: you can redistribute it and/or modify
@@ -21,10 +21,10 @@ dnl Process this file with autoconf to produce a configure script.
 #   You should have received a copy of the GNU General Public License
 #   along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
-AC_REVISION([for Bash 5.0, version 4.091])dnl
+AC_REVISION([for Bash 5.0, version 5.002])dnl
 
 define(bashvers, 5.0)
-define(relstatus, alpha)
+define(relstatus, beta)
 
 AC_INIT([bash], bashvers-relstatus, [bug-bash@gnu.org])
 
@@ -63,33 +63,38 @@ dnl some systems should be configured without the bash malloc by default
 dnl and some need a special compiler or loader
 dnl look in the NOTES file for more
 case "${host_cpu}-${host_os}" in
+# mostly obsolete platforms
 alpha*-*)      opt_bash_malloc=no ;;   # alpha running osf/1 or linux
 *[[Cc]]ray*-*) opt_bash_malloc=no ;;   # Crays
 *-osf1*)       opt_bash_malloc=no ;;   # other osf/1 machines
+*-dgux*)       opt_bash_malloc=no ;;   # DG/UX machines
 sparc-svr4*)   opt_bash_malloc=no ;;   # sparc SVR4, SVR4.2
-sparc-netbsd*) opt_bash_malloc=no ;;   # needs 8-byte alignment
-mips-irix6*)   opt_bash_malloc=no ;;   # needs 8-byte alignment
 m68k-sysv)     opt_bash_malloc=no ;;   # fixes file descriptor leak in closedir
+*-bsdi2.1|*-bsdi3.?)   opt_bash_malloc=no ; : ${CC:=shlicc2} ;; # for loadable builtins
+*-opennt*|*-interix*)  opt_bash_malloc=no ;;   # Interix, now owned by Microsoft
+*-beos*)       opt_bash_malloc=no ;;   # they say it's suitable
+# These need additional investigation
 sparc-linux*)  opt_bash_malloc=no ;;   # sparc running linux; requires ELF
-#*-freebsd*-gnu)       opt_bash_malloc=no ;;   # there's some undetermined problem here
-#*-freebsd*)   opt_bash_malloc=no ;;   # they claim it's better; I disagree
-*-openbsd*)    opt_bash_malloc=no ;;   # they claim it needs eight-bit alignment
-*-mirbsd*)     opt_bash_malloc=no ;;   # they claim it needs eight-bit alignment
 *-aix*)                opt_bash_malloc=no ;;   # AIX machines
+*-cygwin*)     opt_bash_malloc=no ;;   # Cygnus's CYGWIN environment
+# Mach-derived systems have a ton of extra malloc functions and lack sbrk(2)
 *-nextstep*)   opt_bash_malloc=no ;;   # NeXT machines running NeXTstep
 *-openstep*)   opt_bash_malloc=no ;;   # i386/Sparc/HP machines running Openstep
 *-macos*)      opt_bash_malloc=no ;;   # Apple MacOS X
 *-rhapsody*)   opt_bash_malloc=no ;;   # Apple Rhapsody (MacOS X)
 *-darwin*)     opt_bash_malloc=no ;;   # Apple Darwin (MacOS X)
-*-dgux*)       opt_bash_malloc=no ;;   # DG/UX machines
-*-qnx*)                opt_bash_malloc=no ;;   # QNX 4.2, QNX [67].x
 *-machten4)    opt_bash_malloc=no ;;   # MachTen 4.x
-*-bsdi2.1|*-bsdi3.?)   opt_bash_malloc=no ; : ${CC:=shlicc2} ;; # for loadable builtins
-*-beos*)       opt_bash_malloc=no ;;   # they say it's suitable
-*-cygwin*)     opt_bash_malloc=no ;;   # Cygnus's CYGWIN environment
-*-opennt*|*-interix*)  opt_bash_malloc=no ;;   # Interix, now owned by Microsoft
+# Niche or non-mainstream-shell-user systems
+*-qnx*)                opt_bash_malloc=no ;;   # QNX 4.2, QNX [67].x
 *-nsk*)                opt_bash_malloc=no ;;   # HP NonStop
 *-haiku*)      opt_bash_malloc=no ;;   # Haiku OS
+# Deprecated -- bash malloc is suitable
+#sparc-netbsd*)        opt_bash_malloc=no ;;   # needs 8-byte alignment
+#mips-irix6*)  opt_bash_malloc=no ;;   # needs 8-byte alignment
+#*-freebsd*-gnu)       opt_bash_malloc=no ;;   # there's some undetermined problem here
+#*-freebsd*)   opt_bash_malloc=no ;;   # they claim it's better; I disagree
+#*-openbsd*)   opt_bash_malloc=no ;;   # they claim it needs eight-bit alignment
+#*-mirbsd*)    opt_bash_malloc=no ;;   # they claim it needs eight-bit alignment
 esac
 
 # memory scrambling on free()
@@ -177,7 +182,7 @@ opt_casemod_attrs=yes
 opt_casemod_expansions=yes
 opt_extglob_default=no
 opt_dircomplete_expand_default=no
-opt_globascii_default=no
+opt_globascii_default=yes
 opt_function_import=yes
 opt_dev_fd_stat_broken=no
 
@@ -200,7 +205,7 @@ if test $opt_minimal_config = yes; then
        opt_net_redirs=no opt_progcomp=no opt_separate_help=no
        opt_multibyte=yes opt_cond_regexp=no opt_coproc=no
        opt_casemod_attrs=no opt_casemod_expansions=no opt_extglob_default=no
-       opt_globascii_default=no
+       opt_globascii_default=yes
 fi
 
 AC_ARG_ENABLE(alias, AC_HELP_STRING([--enable-alias], [enable shell aliases]), opt_alias=$enableval)
@@ -550,7 +555,7 @@ then
        RL_LIB_READLINE_VERSION
 
        case "$ac_cv_rl_version" in
-       7*|8*|9*)       ;;
+       8*|9*)  ;;
        *)      opt_with_installed_readline=no 
                AC_MSG_WARN([installed readline library is too old to be linked with bash])
                AC_MSG_WARN([using private bash version])
@@ -714,7 +719,7 @@ AC_CHECK_HEADERS(unistd.h stdlib.h stdarg.h varargs.h limits.h string.h \
                 stdbool.h stddef.h stdint.h netdb.h pwd.h grp.h strings.h \
                 regex.h syslog.h ulimit.h)
 AC_CHECK_HEADERS(sys/pte.h sys/stream.h sys/select.h sys/file.h sys/ioctl.h \
-                sys/param.h sys/socket.h sys/stat.h \
+                sys/mman.h sys/param.h sys/socket.h sys/stat.h \
                 sys/time.h sys/times.h sys/types.h sys/wait.h)
 AC_CHECK_HEADERS(netinet/in.h arpa/inet.h)
 
@@ -850,7 +855,7 @@ AC_CHECK_HEADERS([argz.h errno.h fcntl.h malloc.h stdio_ext.h])
 dnl AC_FUNC_MALLOC
 AC_FUNC_MMAP
 AC_CHECK_FUNCS([__argz_count __argz_next __argz_stringify dcgettext mempcpy \
-               munmap stpcpy strcspn])
+               munmap mremap stpcpy strcspn])
 
 INTL_DEP= INTL_INC= LIBINTL_H=
 if test "x$USE_INCLUDED_LIBINTL" = "xyes"; then
@@ -1111,6 +1116,7 @@ linux*)           LOCAL_LDFLAGS=-rdynamic          # allow dynamic loading
                1.*|2.[[0123]]*)        : ;;
                *)      AC_DEFINE(PGRP_PIPE) ;;
                esac ;;
+openbsd*)      LOCAL_CFLAGS="-DDEV_FD_STAT_BROKEN" ;;
 *qnx[[67]]*)   LOCAL_LIBS="-lncurses" ;;
 *qnx*)         LOCAL_CFLAGS="-Dqnx -F -3s" LOCAL_LDFLAGS="-3s" LOCAL_LIBS="-lunix -lncurses" ;;
 powerux*)      LOCAL_LIBS="-lgen" ;;
index bb2f7429af530b8c24f47784ba6d44701c496055..d09b8fc0cb4d565b25123e1f8b653f0e14d69fce 100644 (file)
@@ -382,24 +382,24 @@ S\bSH\bHE\bEL\bLL\bL G\bGR\bRA\bAM\bMM\bMA\bAR\bR
 
               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
-              expression's return value is 2.  If the n\bno\boc\bca\bas\bse\bem\bma\bat\btc\bch\bh shell option
-              is enabled, the match is performed without regard to the case of
-              alphabetic characters.  Any part of the pattern may be quoted to
-              force the quoted portion to be matched  as  a  string.   Bracket
-              expressions  in  regular  expressions must be treated carefully,
-              since normal quoting  characters  lose  their  meanings  between
-              brackets.  If the pattern is stored in a shell variable, quoting
-              the variable expansion forces the entire pattern 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\bH with index 0 is the
-              portion of the string matching the  entire  regular  expression.
-              The  element  of B\bBA\bAS\bSH\bH_\b_R\bRE\bEM\bMA\bAT\bTC\bCH\bH with index _\bn is the portion of the
-              string matching the _\bnth parenthesized subexpression.
+              right  of  the  operator  is considered a POSIX extended regular
+              expression 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 condi-
+              tional expression's return value is 2.  If the n\bno\boc\bca\bas\bse\bem\bma\bat\btc\bch\bh shell
+              option is enabled, the match is performed without regard to  the
+              case  of  alphabetic characters.  Any part of the pattern may be
+              quoted to force the quoted portion to be matched  as  a  string.
+              Bracket expressions in regular expressions must be treated care-
+              fully, since  normal  quoting  characters  lose  their  meanings
+              between brackets.  If the pattern is stored in a shell variable,
+              quoting the variable expansion forces the entire pattern  to  be
+              matched as a string.  Substrings matched by parenthesized subex-
+              pressions within the regular expression are saved in  the  array
+              variable B\bBA\bAS\bSH\bH_\b_R\bRE\bEM\bMA\bAT\bTC\bCH\bH.  The element of B\bBA\bAS\bSH\bH_\b_R\bRE\bEM\bMA\bAT\bTC\bCH\bH with index 0
+              is the portion of the string matching the entire regular expres-
+              sion.   The  element of B\bBA\bAS\bSH\bH_\b_R\bRE\bEM\bMA\bAT\bTC\bCH\bH with index _\bn is the portion
+              of the string matching the _\bnth parenthesized subexpression.
 
               Expressions may  be  combined  using  the  following  operators,
               listed in decreasing order of precedence:
@@ -735,80 +735,86 @@ P\bPA\bAR\bRA\bAM\bME\bET\bTE\bER\bRS\bS
               is the first character of the value of the I\bIF\bFS\bS variable.  If I\bIF\bFS\bS
               is  unset,  the  parameters  are separated 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.   In
+              contexts  where  word  splitting is performed, this expands each
+              positional parameter to a separate word; if  not  within  double
+              quotes,  these words are subject to word splitting.  In contexts
+              where word splitting is not performed, this expands to a  single
+              word  with each positional parameter separated by a space.  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 job most recently placed into
-              the background, whether executed as an asynchronous  command  or
+       !\b!      Expands to the process ID of the job most recently  placed  into
+              the  background,  whether executed as an asynchronous command or
               using the b\bbg\bg builtin (see J\bJO\bOB\bB C\bCO\bON\bNT\bTR\bRO\bOL\bL below).
-       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 filename 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  filename 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 filename used to  invoke  this  instance  of
+       B\bBA\bAS\bSH\bH   Expands  to  the  full  filename used to invoke this instance of
               b\bba\bas\bsh\bh.
        B\bBA\bAS\bSH\bHO\bOP\bPT\bTS\bS
-              A  colon-separated  list of enabled shell options.  Each word in
-              the list is a valid argument for the  -\b-s\bs  option  to  the  s\bsh\bho\bop\bpt\bt
+              A colon-separated list of enabled shell options.  Each  word  in
+              the  list  is  a  valid  argument for the -\b-s\bs option to the s\bsh\bho\bop\bpt\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 B\bBA\bAS\bSH\bHO\bOP\bPT\bTS\bS are those reported as  _\bo_\bn  by  s\bsh\bho\bop\bpt\bt.   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  B\bBA\bAS\bSH\bHO\bOP\bPT\bTS\bS  are  those reported as _\bo_\bn by s\bsh\bho\bop\bpt\bt.  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.
        B\bBA\bAS\bSH\bHP\bPI\bID\bD
-              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.  Assignments to
-              B\bBA\bAS\bSH\bHP\bPI\bID\bhave no effect.  If B\bBA\bAS\bSH\bHP\bPI\bID\bD is unset, it loses its  spe-
+              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.   Assignments  to
+              B\bBA\bAS\bSH\bHP\bPI\bID\b have no effect.  If B\bBA\bAS\bSH\bHP\bPI\bID\bD is unset, it loses its spe-
               cial properties, even if it is subsequently reset.
        B\bBA\bAS\bSH\bH_\b_A\bAL\bLI\bIA\bAS\bSE\bES\bS
-              An  associative  array  variable whose members correspond to the
-              internal list of aliases as maintained  by  the  a\bal\bli\bia\bas\b builtin.
-              Elements  added to this array appear in the alias list; however,
-              unsetting array elements currently does not cause aliases to  be
+              An associative array variable whose members  correspond  to  the
+              internal  list  of  aliases  as maintained by the a\bal\bli\bia\bas\bs builtin.
+              Elements added to this array appear in the alias list;  however,
+              unsetting  array elements currently does not cause aliases to be
               removed from the alias list.  If B\bBA\bAS\bSH\bH_\b_A\bAL\bLI\bIA\bAS\bSE\bES\bS is unset, it loses
               its special properties, even if it is subsequently reset.
        B\bBA\bAS\bSH\bH_\b_A\bAR\bRG\bGC\bC
-              An array variable whose values are the number of  parameters  in
+              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
+              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
-              option  to the s\bsh\bho\bop\bpt\bt builtin below).  Setting e\bex\bxt\btd\bde\beb\bbu\bug\bg after the
-              shell has started to execute a script may result in inconsistent
-              values.
+              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).  Setting e\bex\bxt\btd\bde\beb\bbu\bug\bg after  the
+              shell has started to execute a script, or referencing this vari-
+              able when e\bex\bxt\btd\bde\beb\bbu\bug\bg is not set, may result in  inconsistent  val-
+              ues.
        B\bBA\bAS\bSH\bH_\b_A\bAR\bRG\bGV\bV
               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
@@ -818,59 +824,60 @@ P\bPA\bAR\bRA\bAM\bME\bET\bTE\bER\bRS\bS
               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
               below).  Setting e\bex\bxt\btd\bde\beb\bbu\bug\bg after the shell has started to execute
-              a script may result in inconsistent values.
+              a script, or referencing this variable when e\bex\bxt\btd\bde\beb\bbu\bug\bg is not set,
+              may result in inconsistent values.
        B\bBA\bAS\bSH\bH_\b_A\bAR\bRG\bGV\bV0\b0
-              When  referenced, this variable expands to the name of the shell
+              When referenced, this variable expands to the name of the  shell
               or shell script (identical to $\b$0\b0; see the description of special
-              parameter  0  above).  Assignment to B\bBA\bAS\bSH\bH_\b_A\bAR\bRG\bGV\bV0\b0 causes the value
-              assigned to also be assigned to $\b$0\b0.  If B\bBA\bAS\bSH\bH_\b_A\bAR\bRG\bGV\bV0\b0 is unset,  it
+              parameter 0 above).  Assignment to B\bBA\bAS\bSH\bH_\b_A\bAR\bRG\bGV\bV0\b0 causes  the  value
+              assigned  to also be assigned to $\b$0\b0.  If B\bBA\bAS\bSH\bH_\b_A\bAR\bRG\bGV\bV0\b0 is unset, it
               loses its special properties, even if it is subsequently reset.
        B\bBA\bAS\bSH\bH_\b_C\bCM\bMD\bDS\bS
-              An  associative  array  variable whose members correspond to the
-              internal hash table  of  commands  as  maintained  by  the  h\bha\bas\bsh\bh
+              An associative array variable whose members  correspond  to  the
+              internal  hash  table  of  commands  as  maintained  by the h\bha\bas\bsh\bh
               builtin.  Elements added to this array appear in the hash table;
-              however, unsetting array elements currently does not cause  com-
-              mand  names  to be removed from the hash table.  If B\bBA\bAS\bSH\bH_\b_C\bCM\bMD\bDS\bS is
-              unset, it loses its special properties, even  if  it  is  subse-
+              however,  unsetting array elements currently does not cause com-
+              mand names to be removed from the hash table.  If  B\bBA\bAS\bSH\bH_\b_C\bCM\bMD\bDS\b is
+              unset,  it  loses  its  special properties, even if it is subse-
               quently reset.
        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  where  each corresponding member of F\bFU\bUN\bNC\bCN\bNA\bAM\bME\bE was invoked.
+              An  array  variable whose members are the line numbers in source
+              files where each corresponding member of F\bFU\bUN\bNC\bCN\bNA\bAM\bME\bE  was  invoked.
               $\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
               ($\b${\b{B\bBA\bAS\bSH\bH_\b_S\bSO\bOU\bUR\bRC\bCE\bE[\b[_\b$_\bi_\b+_\b1]\b]}\b})  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]}\bif referenced within  another  shell  func-
+              $\b${\b{B\bBA\bAS\bSH\bH_\b_L\bLI\bIN\bNE\bEN\bNO\bO[\b[_\b$_\bi_\b-_\b1]\b]}\b if  referenced  within another shell func-
               tion).  Use L\bLI\bIN\bNE\bEN\bNO\bO to obtain the current line number.
        B\bBA\bAS\bSH\bH_\b_L\bLO\bOA\bAD\bDA\bAB\bBL\bLE\bES\bS_\b_P\bPA\bAT\bTH\bH
-              A  colon-separated  list of directories in which the shell looks
-              for dynamically loadable builtins specified by the  e\ben\bna\bab\bbl\ble\b com-
+              A colon-separated list of directories in which the  shell  looks
+              for  dynamically  loadable builtins specified by the e\ben\bna\bab\bbl\ble\be com-
               mand.
        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  where
-              the  corresponding  shell  function  names in the F\bFU\bUN\bNC\bCN\bNA\bAM\bME\bE array
-              variable are defined.  The  shell  function  $\b${\b{F\bFU\bUN\bNC\bCN\bNA\bAM\bME\bE[\b[_\b$_\bi]\b]}\b is
-              defined   in   the   file  $\b${\b{B\bBA\bAS\bSH\bH_\b_S\bSO\bOU\bUR\bRC\bCE\bE[\b[_\b$_\bi]\b]}\b}  and  called  from
+              An  array  variable whose members are the source filenames where
+              the corresponding shell function names  in  the  F\bFU\bUN\bNC\bCN\bNA\bAM\bME\b array
+              variable  are  defined.   The  shell function $\b${\b{F\bFU\bUN\bNC\bCN\bNA\bAM\bME\bE[\b[_\b$_\bi]\b]}\b} is
+              defined  in  the  file  $\b${\b{B\bBA\bAS\bSH\bH_\b_S\bSO\bOU\bUR\bRC\bCE\bE[\b[_\b$_\bi]\b]}\b}   and   called   from
               $\b${\b{B\bBA\bAS\bSH\bH_\b_S\bSO\bOU\bUR\bRC\bCE\bE[\b[_\b$_\bi_\b+_\b1]\b]}\b}.
        B\bBA\bAS\bSH\bH_\b_S\bSU\bUB\bBS\bSH\bHE\bEL\bLL\bL
-              Incremented by one within each subshell or subshell  environment
-              when  the  shell begins executing in that environment.  The ini-
+              Incremented  by one within each subshell or subshell environment
+              when the shell begins executing in that environment.   The  ini-
               tial 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).
@@ -879,137 +886,137 @@ P\bPA\bAR\bRA\bAM\bME\bET\bTE\bER\bRS\bS
               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
               The key (or final key of a key sequence) used to invoke the cur-
               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  program-
+              The current command line.  This variable is  available  only  in
+              shell  functions  and  external commands invoked by the program-
               mable 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_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 program-
+              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  program-
               mable 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_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  program-
+              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 program-
               mable 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_W\bWO\bOR\bRD\bDB\bBR\bRE\bEA\bAK\bKS\bS
-              The  set  of characters that the r\bre\bea\bad\bdl\bli\bin\bne\be library treats as word
-              separators when performing word completion.  If  C\bCO\bOM\bMP\bP_\b_W\bWO\bOR\bRD\bDB\bBR\bRE\bEA\bAK\bKS\bS
-              is  unset, it loses its special properties, even if it is subse-
+              The set of characters that the r\bre\bea\bad\bdl\bli\bin\bne\be library treats  as  word
+              separators  when performing word completion.  If C\bCO\bOM\bMP\bP_\b_W\bWO\bOR\bRD\bDB\bBR\bRE\bEA\bAK\bKS\bS
+              is unset, it loses its special properties, even if it is  subse-
               quently reset.
        C\bCO\bOM\bMP\bP_\b_W\bWO\bOR\bRD\bDS\bS
-              An array variable (see A\bAr\brr\bra\bay\bys\bs below) consisting of the  individ-
-              ual  words  in the current command line.  The line is split into
-              words as r\bre\bea\bad\bdl\bli\bin\bne\be  would  split  it,  using  C\bCO\bOM\bMP\bP_\b_W\bWO\bOR\bRD\bDB\bBR\bRE\bEA\bAK\bKS\b as
+              An  array variable (see A\bAr\brr\bra\bay\bys\bs below) consisting of the individ-
+              ual words in the current command line.  The line is  split  into
+              words  as  r\bre\bea\bad\bdl\bli\bin\bne\be  would  split  it,  using C\bCO\bOM\bMP\bP_\b_W\bWO\bOR\bRD\bDB\bBR\bRE\bEA\bAK\bKS\bS as
               described above.  This variable is available only in shell func-
-              tions invoked by the  programmable  completion  facilities  (see
+              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\bOP\bPR\bRO\bOC\bC An  array  variable  (see A\bAr\brr\bra\bay\bys\bs below) created to hold the file
-              descriptors for output from and input to  an  unnamed  coprocess
+       C\bCO\bOP\bPR\bRO\bOC\bC An array variable (see A\bAr\brr\bra\bay\bys\bs below) created to  hold  the  file
+              descriptors  for  output  from and input to an unnamed coprocess
               (see C\bCo\bop\bpr\bro\boc\bce\bes\bss\bse\bes\bs above).
        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\bK 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\b is
+              unset,  it  loses  its  special properties, even if it is subse-
               quently reset.
        E\bEP\bPO\bOC\bCH\bHR\bRE\bEA\bAL\bLT\bTI\bIM\bME\bE
               Each time this parameter is referenced, it expands to the number
-              of seconds since the Unix Epoch  (see  _\bt_\bi_\bm_\be(3))  as  a  floating
+              of  seconds  since  the  Unix  Epoch (see _\bt_\bi_\bm_\be(3)) as a floating
               point  value  with  micro-second  granularity.   Assignments  to
-              E\bEP\bPO\bOC\bCH\bHR\bRE\bEA\bAL\bLT\bTI\bIM\bME\bare ignored.  If E\bEP\bPO\bOC\bCH\bHR\bRE\bEA\bAL\bLT\bTI\bIM\bME\bE is unset, it  loses
+              E\bEP\bPO\bOC\bCH\bHR\bRE\bEA\bAL\bLT\bTI\bIM\bME\b are ignored.  If E\bEP\bPO\bOC\bCH\bHR\bRE\bEA\bAL\bLT\bTI\bIM\bME\bE is unset, it loses
               its special properties, even if it is subsequently reset.
        E\bEP\bPO\bOC\bCH\bHS\bSE\bEC\bCO\bON\bND\bDS\bS
               Each time this parameter is referenced, it expands to the number
-              of seconds since the Unix Epoch (see _\bt_\bi_\bm_\be(3)).   Assignments  to
-              E\bEP\bPO\bOC\bCH\bHS\bSE\bEC\bCO\bON\bND\bDS\b are  ignored.   If E\bEP\bPO\bOC\bCH\bHS\bSE\bEC\bCO\bON\bND\bDS\bS is unset, it loses
+              of  seconds  since the Unix Epoch (see _\bt_\bi_\bm_\be(3)).  Assignments to
+              E\bEP\bPO\bOC\bCH\bHS\bSE\bEC\bCO\bON\bND\bDS\bare ignored.  If E\bEP\bPO\bOC\bCH\bHS\bSE\bEC\bCO\bON\bND\bDS\bS is  unset,  it  loses
               its special properties, even if it is subsequently 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 (the one with the  highest  index)  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.  If F\bFU\bUN\bNC\bCN\bNA\bAM\bME\bE  is  unset,
-              it  loses  its  special  properties,  even if it is subsequently
+              tom-most  element  (the  one  with the highest index) 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.  If F\bFU\bUN\bNC\bCN\bNA\bAM\bME\bE is unset,
+              it loses its special properties,  even  if  it  is  subsequently
               reset.
 
-              This variable can be  used  with  B\bBA\bAS\bSH\bH_\b_L\bLI\bIN\bNE\bEN\bNO\bO  and  B\bBA\bAS\bSH\bH_\b_S\bSO\bOU\bUR\bRC\bCE\bE.
-              Each   element   of   F\bFU\bUN\bNC\bCN\bNA\bAM\bME\bE  has  corresponding  elements  in
-              B\bBA\bAS\bSH\bH_\b_L\bLI\bIN\bNE\bEN\bNO\band B\bBA\bAS\bSH\bH_\b_S\bSO\bOU\bUR\bRC\bCE\bE to describe  the  call  stack.   For
-              instance,    $\b${\b{F\bFU\bUN\bNC\bCN\bNA\bAM\bME\bE[\b[_\b$_\bi]\b]}\b}    was   called   from   the   file
-              $\b${\b{B\bBA\bAS\bSH\bH_\b_S\bSO\bOU\bUR\bRC\bCE\bE[\b[_\b$_\bi_\b+_\b1]\b]}\bat  line  number  $\b${\b{B\bBA\bAS\bSH\bH_\b_L\bLI\bIN\bNE\bEN\bNO\bO[\b[_\b$_\bi]\b]}\b}.   The
+              This  variable  can  be  used  with B\bBA\bAS\bSH\bH_\b_L\bLI\bIN\bNE\bEN\bNO\bO and B\bBA\bAS\bSH\bH_\b_S\bSO\bOU\bUR\bRC\bCE\bE.
+              Each  element  of  F\bFU\bUN\bNC\bCN\bNA\bAM\bME\bE  has   corresponding   elements   in
+              B\bBA\bAS\bSH\bH_\b_L\bLI\bIN\bNE\bEN\bNO\b and  B\bBA\bAS\bSH\bH_\b_S\bSO\bOU\bUR\bRC\bCE\bE  to  describe the call stack.  For
+              instance,   $\b${\b{F\bFU\bUN\bNC\bCN\bNA\bAM\bME\bE[\b[_\b$_\bi]\b]}\b}   was   called   from    the    file
+              $\b${\b{B\bBA\bAS\bSH\bH_\b_S\bSO\bOU\bUR\bRC\bCE\bE[\b[_\b$_\bi_\b+_\b1]\b]}\b at  line  number  $\b${\b{B\bBA\bAS\bSH\bH_\b_L\bLI\bIN\bNE\bEN\bNO\bO[\b[_\b$_\bi]\b]}\b}.  The
               c\bca\bal\bll\ble\ber\br builtin displays the current call stack using this infor-
               mation.
-       G\bGR\bRO\bOU\bUP\bPS\bS An array variable containing the list of  groups  of  which  the
+       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.
-              If G\bGR\bRO\bOU\bUP\bPS\bS is unset, it loses its special properties, even if  it
+              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.
        M\bMA\bAP\bPF\bFI\bIL\bLE\bE
-              An array variable (see A\bAr\brr\bra\bay\bys\bs below) created to  hold  the  text
+              An  array  variable  (see A\bAr\brr\bra\bay\bys\bs below) created to hold the text
               read by the m\bma\bap\bpf\bfi\bil\ble\be builtin when no variable name is supplied.
        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.
        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\bEA\bAD\bDL\bLI\bIN\bNE\bE_\b_L\bLI\bIN\bNE\bE
               The contents of the r\bre\bea\bad\bdl\bli\bin\bne\be line buffer, for use with "bind -x"
@@ -1017,197 +1024,202 @@ P\bPA\bAR\bRA\bAM\bME\bET\bTE\bER\bRS\bS
        R\bRE\bEA\bAD\bDL\bLI\bIN\bNE\bE_\b_P\bPO\bOI\bIN\bNT\bT
               The position of the insertion point in the r\bre\bea\bad\bdl\bli\bin\bne\be line buffer,
               for use with "bind -x" (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\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.
        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_C\bCO\bOM\bMP\bPA\bAT\bT
-              The value is used to set the shell's compatibility  level.   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\bfor a description of the various  compatibility  levels
-              and  their  effects.   The  value may be a decimal number (e.g.,
-              4.2) or an integer (e.g., 42) corresponding to the desired  com-
-              patibility  level.   If B\bBA\bAS\bSH\bH_\b_C\bCO\bOM\bMP\bPA\bAT\bT is unset or set to the empty
-              string, the compatibility level is set to the  default  for  the
-              current  version.   If B\bBA\bAS\bSH\bH_\b_C\bCO\bOM\bMP\bPA\bAT\bT is set to a value that is not
+              The  value  is used to set the shell's compatibility level.  See
+              the description of the s\bsh\bho\bop\bpt\bt builtin below under  S\bSH\bHE\bEL\bLL\b B\bBU\bUI\bIL\bLT\bTI\bIN\bN
+              C\bCO\bOM\bMM\bMA\bAN\bND\bDS\b for  a description of the various compatibility levels
+              and their effects.  The value may be  a  decimal  number  (e.g.,
+              4.2)  or an integer (e.g., 42) corresponding to the desired com-
+              patibility level.  If B\bBA\bAS\bSH\bH_\b_C\bCO\bOM\bMP\bPA\bAT\bT is unset or set to  the  empty
+              string,  the  compatibility  level is set to the default for the
+              current version.  If B\bBA\bAS\bSH\bH_\b_C\bCO\bOM\bMP\bPA\bAT\bT is set to a value that  is  not
               one of the valid compatibility levels, the shell prints an error
-              message  and sets the compatibility level to the default for the
-              current version.  The valid compatibility levels  correspond  to
-              the   compatibility   options  accepted  by  the  s\bsh\bho\bop\bpt\bt  builtin
+              message and sets the compatibility level to the default for  the
+              current  version.   The valid compatibility levels correspond to
+              the  compatibility  options  accepted  by  the   s\bsh\bho\bop\bpt\b  builtin
               described below (for example, c\bco\bom\bmp\bpa\bat\bt4\b42\b2 means that 4.2 and 42 are
               valid values).  The current version is also a valid value.
        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 filename.
+              subjected  to  parameter  expansion,  command  substitution, and
+              arithmetic expansion before being  interpreted  as  a  filename.
               P\bPA\bAT\bTH\bH is not used to search for the resultant filename.
        B\bBA\bAS\bSH\bH_\b_X\bXT\bTR\bRA\bAC\bCE\bEF\bFD\bD
-              If set to an integer corresponding to a valid  file  descriptor,
-              b\bba\bas\bsh\b will  write  the  trace  output  generated  when _\bs_\be_\bt _\b-_\bx is
-              enabled to that file descriptor.  The file descriptor is  closed
-              when  B\bBA\bAS\bSH\bH_\b_X\bXT\bTR\bRA\bAC\bCE\bEF\bFD\bD is unset or assigned a new value.  Unsetting
-              B\bBA\bAS\bSH\bH_\b_X\bXT\bTR\bRA\bAC\bCE\bEF\bFD\bor assigning it the empty string causes the  trace
-              output  to  be  sent  to  the standard error.  Note that setting
+              If  set  to an integer corresponding to a valid file descriptor,
+              b\bba\bas\bsh\bwill write the  trace  output  generated  when  _\bs_\be_\bt  _\b-_\b is
+              enabled  to that file descriptor.  The file descriptor is closed
+              when B\bBA\bAS\bSH\bH_\b_X\bXT\bTR\bRA\bAC\bCE\bEF\bFD\bD is unset or assigned a new value.   Unsetting
+              B\bBA\bAS\bSH\bH_\b_X\bXT\bTR\bRA\bAC\bCE\bEF\bFD\b or assigning it the empty string causes the trace
+              output to be sent to the  standard  error.   Note  that  setting
               B\bBA\bAS\bSH\bH_\b_X\bXT\bTR\bRA\bAC\bCE\bEF\bFD\bD to 2 (the standard error file descriptor) and then
               unsetting it will result in the standard error being closed.
-       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\bCH\bHI\bIL\bLD\bD_\b_M\bMA\bAX\bX
-              Set the number of exited child status values for  the  shell  to
-              remember.   Bash will not allow this value to be decreased below
-              a POSIX-mandated minimum, and there is  a  maximum  value  (cur-
-              rently  8192)  that  this  may not exceed.  The minimum value is
+              Set  the  number  of exited child status values for the shell to
+              remember.  Bash will not allow this value to be decreased  below
+              a  POSIX-mandated  minimum,  and  there is a maximum value (cur-
+              rently 8192) that this may not exceed.   The  minimum  value  is
               system-dependent.
        C\bCO\bOL\bLU\bUM\bMN\bNS\bS
-              Used by the s\bse\bel\ble\bec\bct\bt compound command to  determine  the  terminal
-              width  when  printing selection lists.  Automatically set if the
-              c\bch\bhe\bec\bck\bkw\bwi\bin\bns\bsi\biz\bze\boption is enabled or in an interactive  shell  upon
+              Used  by  the  s\bse\bel\ble\bec\bct\bt compound command to determine the terminal
+              width when printing selection lists.  Automatically set  if  the
+              c\bch\bhe\bec\bck\bkw\bwi\bin\bns\bsi\biz\bze\b option  is enabled or in an interactive shell upon
               receipt of a S\bSI\bIG\bGW\bWI\bIN\bNC\bCH\bH.
        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-
-              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).  Each
+              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).   Each
               array element contains one possible completion.
-       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.
-       E\bEN\bNV\bV    Similar to B\bBA\bAS\bSH\bH_\b_E\bEN\bNV\bV; used when the shell  is  invoked  in  POSIX
-              mode.
+       E\bEN\bNV\bV    Similar  to  B\bBA\bAS\bSH\bH_\b_E\bEN\bNV\bV;  used  when the shell is invoked in _\bp_\bo_\bs_\bi_\bx
+              _\bm_\bo_\bd_\be.
        E\bEX\bXE\bEC\bCI\bIG\bGN\bNO\bOR\bRE\bE
-              A  colon-separated list of shell patterns (see P\bPa\bat\btt\bte\ber\brn\bn M\bMa\bat\btc\bch\bhi\bin\bng\bg)
-              defining the list of filenames to be ignored by  command  search
-              using  P\bPA\bAT\bTH\bH.  Files whose full pathnames match one of these pat-
-              terns are not considered executable files for  the  purposes  of
+              A colon-separated list of shell patterns (see P\bPa\bat\btt\bte\ber\brn\b M\bMa\bat\btc\bch\bhi\bin\bng\bg)
+              defining  the  list of filenames to be ignored by command search
+              using P\bPA\bAT\bTH\bH.  Files whose full pathnames match one of these  pat-
+              terns  are  not  considered executable files for the purposes of
               completion and command execution via P\bPA\bAT\bTH\bH lookup.  This does not
               affect the behavior of the [\b[, t\bte\bes\bst\bt, and [\b[[\b[ commands.  Full path-
-              names  in  the command hash table are not subject to E\bEX\bXE\bEC\bCI\bIG\bGN\bNO\bOR\bRE\bE.
-              Use this variable to ignore shared library files that  have  the
-              executable  bit  set, but are not executable files.  The pattern
+              names in the command hash table are not subject  to  E\bEX\bXE\bEC\bCI\bIG\bGN\bNO\bOR\bRE\bE.
+              Use  this  variable to ignore shared library files that have the
+              executable bit set, but are not executable files.   The  pattern
               matching honors the setting of the e\bex\bxt\btg\bgl\blo\bob\bb shell option.
        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:~".
        F\bFU\bUN\bNC\bCN\bNE\bES\bST\bT
-              If  set  to  a  numeric  value greater than 0, defines a maximum
-              function nesting level.  Function invocations that  exceed  this
+              If set to a numeric value greater  than  0,  defines  a  maximum
+              function  nesting  level.  Function invocations that exceed this
               nesting level will cause the current command to abort.
        G\bGL\bLO\bOB\bBI\bIG\bGN\bNO\bOR\bRE\bE
-              A  colon-separated  list  of  patterns  defining the set of file
-              names to be ignored by  pathname  expansion.   If  a  file  name
-              matched  by a pathname expansion pattern also matches one of the
+              A colon-separated list of patterns  defining  the  set  of  file
+              names  to  be  ignored  by  pathname  expansion.  If a file name
+              matched by a 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\b 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\bL 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\bbelow).  The default value is _\b~_\b/_\b._\bb_\ba_\bs_\bh_\b__\bh_\bi_\bs_\bt_\bo_\br_\by.   If  unset,
+              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 a 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,  to  contain  no more than that number of
-              lines by removing the oldest entries.  The history file is  also
-              truncated  to this size after writing it when a shell exits.  If
-              the value is 0, the history file  is  truncated  to  zero  size.
-              Non-numeric  values  and  numeric  values less than zero inhibit
-              truncation.  The shell sets the default value to  the  value  of
+              this  variable  is  assigned  a value, the history file is trun-
+              cated, if necessary, to contain no  more  than  that  number  of
+              lines  by removing the oldest entries.  The history file is also
+              truncated to this size after writing it when a shell exits.   If
+              the  value  is  0,  the  history file is truncated to zero size.
+              Non-numeric values and numeric values  less  than  zero  inhibit
+              truncation.   The  shell  sets the default value to the value of
               H\bHI\bIS\bST\bTS\bSI\bIZ\bZE\bE after reading any startup files.
        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\bare 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\b are  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.  The pattern
+              history regardless of the  value  of  H\bHI\bIS\bST\bTI\bIG\bGN\bNO\bOR\bRE\bE.   The  pattern
               matching honors the setting of the e\bex\bxt\btg\bgl\blo\bob\bb shell option.
        H\bHI\bIS\bST\bTS\bSI\bIZ\bZE\bE
-              The number of commands to remember in the command  history  (see
-              H\bHI\bIS\bST\bTO\bOR\bRY\b below).   If  the value is 0, commands are not saved in
+              The  number  of commands to remember in the command history (see
+              H\bHI\bIS\bST\bTO\bOR\bRY\bbelow).  If the value is 0, commands are  not  saved  in
               the history list.  Numeric values less than zero result in every
-              command  being  saved  on  the history list (there is no limit).
-              The shell sets the  default  value  to  500  after  reading  any
+              command being saved on the history list  (there  is  no  limit).
+              The  shell  sets  the  default  value  to  500 after reading any
               startup files.
        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
-              no  value,  or  does  not name a readable file, 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  comple-
+              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, or does not name a readable  file,  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 comple-
               tions.  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).
+       I\bIN\bNS\bSI\bID\bDE\bE_\b_E\bEM\bMA\bAC\bCS\bS
+              If this variable appears  in  the  environment  when  the  shell
+              starts,  b\bba\bas\bsh\bh  assumes  that it is running inside an Emacs shell
+              buffer and may disable line editing, depending on the  value  of
+              T\bTE\bER\bRM\bM.
        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_
@@ -1273,39 +1285,40 @@ P\bPA\bAR\bRA\bAM\bME\bET\bTE\bER\bRS\bS
               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.
+              command _\bs_\be_\bt _\b-_\bo _\bp_\bo_\bs_\bi_\bx had been executed.  When the  shell  enters
+              _\bp_\bo_\bs_\bi_\bx _\bm_\bo_\bd_\be, it sets this variable if it was not already set.
        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\bPR\bRO\bOM\bMP\bPT\bT_\b_D\bDI\bIR\bRT\bTR\bRI\bIM\bM
-              If  set  to a number greater than zero, the value is used as the
+              If set to a number greater than zero, the value is used  as  the
               number of trailing directory components to retain when expanding
-              the  \\b\w\bw  and  \\b\W\bW  prompt  string  escapes (see P\bPR\bRO\bOM\bMP\bPT\bTI\bIN\bNG\bG below).
+              the \\b\w\bw and \\b\W\bW  prompt  string  escapes  (see  P\bPR\bRO\bOM\bMP\bPT\bTI\bIN\bNG\b below).
               Characters removed are replaced with an ellipsis.
-       P\bPS\bS0\b0    The value of this parameter is expanded  (see  P\bPR\bRO\bOM\bMP\bPT\bTI\bIN\bNG\b below)
-              and  displayed by interactive shells after reading a command and
+       P\bPS\bS0\b0    The  value  of  this parameter is expanded (see P\bPR\bRO\bOM\bMP\bPT\bTI\bIN\bNG\bG below)
+              and displayed by interactive shells after reading a command  and
               before the command is executed.
-       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
+       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
               ``\\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 the expanded  value  of
+       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 the expanded value of
               P\bPS\bS4\b4 is replicated multiple times, as necessary, to indicate mul-
               tiple levels of indirection.  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\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
+              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
               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.
@@ -1313,77 +1326,77 @@ 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  _\b 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 _\bp 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\t\bt%\b%3\b3l\blS\bS'\b'.   If  the value is null,
+              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\t\bt%\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
+              coming  from  a terminal.  In an interactive shell, the value is
               interpreted as the number of seconds to wait for a line of input
               after issuing the primary prompt.  B\bBa\bas\bsh\bh terminates after waiting
-              for  that number of seconds if a complete line of input does not
+              for that number of seconds if a complete line of 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 indexed and associative array variables.
-       Any variable may be used as an indexed 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  con-
-       tiguously.   Indexed  arrays  are  referenced using integers (including
+       B\bBa\bas\bsh\bprovides one-dimensional indexed and associative array  variables.
+       Any  variable may be used as an indexed 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 con-
+       tiguously.  Indexed arrays are  referenced  using  integers  (including
        arithmetic expressions) and are zero-based; associative arrays are ref-
        erenced using arbitrary strings.  Unless otherwise noted, indexed array
        indices must be non-negative integers.
 
-       An indexed array is created automatically if any variable  is  assigned
+       An  indexed  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.  To explicitly
-       declare  an  indexed 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\bM-\b-
-       M\bMA\bAN\bND\bDS\bbelow).  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_\b-
+       declare an indexed 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\b C\bCO\bOM\bM-\b-
+       M\bMA\bAN\bND\bDS\b 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_\b-
        _\bs_\bc_\br_\bi_\bp_\bt is ignored.
 
        Associative arrays are created using d\bde\bec\bcl\bla\bar\bre\be -\b-A\bA _\bn_\ba_\bm_\be.
@@ -1391,141 +1404,141 @@ P\bPA\bAR\bRA\bAM\bME\bET\bTE\bER\bRS\bS
        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-
-       _\bs_\bc_\br_\bi_\bp_\bt]=_\bs_\bt_\br_\bi_\bn_\bg.  Indexed array assignments do not require anything  but
+       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.   Indexed array assignments do not require anything but
        _\bs_\bt_\br_\bi_\bn_\bg.  When assigning to indexed arrays, 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
+       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.
 
        When assigning to an associative array, the subscript is required.
 
-       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.  When assigning to an indexed array, if _\bn_\ba_\bm_\be is  sub-
-       scripted  by  a negative number, that number is interpreted as relative
-       to one greater than the maximum index  of  _\bn_\ba_\bm_\be,  so  negative  indices
+       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_\b syntax
+       introduced  above.  When assigning to an indexed array, if _\bn_\ba_\bm_\be is sub-
+       scripted by a negative number, that number is interpreted  as  relative
+       to  one  greater  than  the  maximum index of _\bn_\ba_\bm_\be, so negative indices
        count back from the end of the array, and an index of -1 references the
        last element.
 
-       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_\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
+       _\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
        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\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.  If the _\bs_\bu_\bb_\bs_\bc_\br_\bi_\bp_\bt used to reference an element of
-       an indexed array evaluates to a number less than  zero,  it  is  inter-
-       preted  as relative to one greater than the maximum index of the array,
-       so negative indices count back from the end of the array, and an  index
+       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.  If the _\bs_\bu_\bb_\bs_\bc_\br_\bi_\bp_\bt used to reference an  element  of
+       an  indexed  array  evaluates  to a number less than zero, it is inter-
+       preted as relative to one greater than the maximum index of the  array,
+       so  negative indices count back from the end of the array, and an index
        of -1 references the last element.
 
        Referencing an array variable without a subscript is equivalent to ref-
-       erencing the array with a subscript of 0.  Any reference to a  variable
+       erencing  the array with a subscript of 0.  Any reference to a variable
        using a valid subscript is legal, and b\bba\bas\bsh\bh will create an array if nec-
        essary.
 
-       An array variable is considered set if a subscript has been assigned  a
+       An  array variable is considered set if a subscript has been assigned a
        value.  The null string is a valid value.
 
-       It  is possible to obtain the keys (indices) of an array as well as the
-       values.  ${!\b!_\bn_\ba_\bm_\be[_\b@]} and ${!\b!_\bn_\ba_\bm_\be[_\b*]} expand to the indices assigned  in
+       It is possible to obtain the keys (indices) of an array as well as  the
+       values.   ${!\b!_\bn_\ba_\bm_\be[_\b@]} and ${!\b!_\bn_\ba_\bm_\be[_\b*]} expand to the indices assigned in
        array variable _\bn_\ba_\bm_\be.  The treatment when in double quotes is similar to
        the expansion of the special parameters _\b@ and _\b* within double quotes.
 
-       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, for both indexed and
-       associative arrays.  Negative subscripts to indexed arrays  are  inter-
-       preted  as  described  above.   Unsetting  the last element of an array
-       variable does not unset the variable.  u\bun\bns\bse\bet\bt _\bn_\ba_\bm_\be,  where  _\bn_\ba_\bm_\be  is  an
+       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,  for  both  indexed  and
+       associative  arrays.   Negative subscripts to indexed arrays are inter-
+       preted as described above.  Unsetting the  last  element  of  an  array
+       variable  does  not  unset  the variable.  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* or @\b@, removes the
        entire array.
 
-       When using a variable name with a subscript as an argument  to  a  com-
-       mand,  such  as  with  u\bun\bns\bse\bet\bt,  without  using the word expansion syntax
-       described above, the argument is subject  to  pathname  expansion.   If
+       When  using  a  variable name with a subscript as an argument to a com-
+       mand, such as with u\bun\bns\bse\bet\bt,  without  using  the  word  expansion  syntax
+       described  above,  the  argument  is subject to pathname expansion.  If
        pathname expansion is not desired, the argument should be quoted.
 
-       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 indexed array and a -\b-A\bA  option  to  specify  an  associative
-       array.   If  both  options are supplied, -\b-A\bA takes precedence.  The r\bre\bea\bad\bd
-       builtin accepts a -\b-a\ba option to assign a list of  words  read  from  the
+       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  indexed  array  and  a -\b-A\bA option to specify an associative
+       array.  If both options are supplied, -\b-A\bA takes  precedence.   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\be 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_\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-
+       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-
        _\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, parameter
-       and variable expansion, arithmetic expansion, and command  substitution
-       (done  in a left-to-right fashion); word splitting; and pathname expan-
+       and  variable expansion, arithmetic expansion, and command substitution
+       (done in a left-to-right fashion); word splitting; and pathname  expan-
        sion.
 
        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.   This  is  performed at the same time as
-       tilde, parameter, variable, and arithmetic expansion and  command  sub-
+       able: _\bp_\br_\bo_\bc_\be_\bs_\bs _\bs_\bu_\bb_\bs_\bt_\bi_\bt_\bu_\bt_\bi_\bo_\bn.  This is performed  at  the  same  time  as
+       tilde,  parameter,  variable, and arithmetic expansion and command sub-
        stitution.
 
-       After  these  expansions are performed, quote characters present in the
-       original word are removed  unless  they  have  been  quoted  themselves
+       After these expansions are performed, quote characters present  in  the
+       original  word  are  removed  unless  they  have been quoted themselves
        (_\bq_\bu_\bo_\bt_\be _\br_\be_\bm_\bo_\bv_\ba_\bl).
 
-       Only  brace  expansion,  word  splitting,  and  pathname  expansion can
-       increase 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}",  and,  in  most  cases,  $\b$*\b and
+       Only brace  expansion,  word  splitting,  and  pathname  expansion  can
+       increase  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}",  and,  in  most  cases, $\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[.\b..\b._\bi_\bn_\bc_\br]\b]}\b}, where _\bx and _\b are
-       either  integers or single characters, and _\bi_\bn_\bc_\br, an optional increment,
-       is an integer.  When integers are supplied, the expression  expands  to
-       each  number between _\bx and _\by, inclusive.  Supplied integers may be pre-
-       fixed with _\b0 to force each term to have the same width.  When either  _\bx
-       or  _\by  begins  with  a  zero, the shell attempts to force all generated
-       terms to contain the same number of digits, zero-padding  where  neces-
-       sary.   When  characters  are  supplied, the expression expands to each
-       character lexicographically between  _\bx  and  _\by,  inclusive,  using  the
-       default  C  locale.   Note  that both _\bx and _\by must be of the same type.
-       When the increment is supplied, it is used as  the  difference  between
+       A  sequence expression takes the form {\b{_\bx.\b..\b._\by[\b[.\b..\b._\bi_\bn_\bc_\br]\b]}\b}, where _\bx and _\by are
+       either integers or single characters, and _\bi_\bn_\bc_\br, an optional  increment,
+       is  an  integer.  When integers are supplied, the expression expands to
+       each number between _\bx and _\by, inclusive.  Supplied integers may be  pre-
+       fixed  with _\b0 to force each term to have the same width.  When either _\bx
+       or _\by begins with a zero, the shell  attempts  to  force  all  generated
+       terms  to  contain the same number of digits, zero-padding where neces-
+       sary.  When characters are supplied, the  expression  expands  to  each
+       character  lexicographically  between  _\bx  and  _\by,  inclusive, using the
+       default C locale.  Note that both _\bx and _\by must be  of  the  same  type.
+       When  the  increment  is supplied, it is used as the difference between
        each term.  The default increment is 1 or -1 as appropriate.
 
        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, and
        inhibits brace expansion until the closing }\b}.
 
@@ -1536,36 +1549,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
@@ -1573,10 +1586,15 @@ 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 filenames 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  filenames  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.
 
+       Bash also performs tilde expansion on words satisfying  the  conditions
+       of variable assignments (as described above under P\bPA\bAR\bRA\bAM\bME\bET\bTE\bER\bRS\bS) when they
+       appear as arguments to simple commands.  Bash does not do this,  except
+       for the _\bd_\be_\bc_\bl_\ba_\br_\ba_\bt_\bi_\bo_\bn commands listed above, when in _\bp_\bo_\bs_\bi_\bx _\bm_\bo_\bd_\be.
+
    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
@@ -1598,18 +1616,18 @@ E\bEX\bXP\bPA\bAN\bNS\bSI\bIO\bON\bN
               (A\bAr\brr\bra\bay\bys\bs).
 
        If  the  first  character of _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br is an exclamation point (!\b!), and
-       _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br is not a _\bn_\ba_\bm_\be_\br_\be_\bf, it introduces a level of variable  indirec-
-       tion.   B\bBa\bas\bsh\bh  uses  the  value  of the variable 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
-       value  is subject to tilde expansion, parameter expansion, command sub-
-       stitution, and arithmetic expansion.  If _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br is a  nameref,  this
-       expands  to the name of the variable referenced by _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br instead of
-       performing the complete indirect expansion.  The exceptions to this are
-       the  expansions  of  ${!\b!_\bp_\br_\be_\bf_\bi_\bx*\b*}  and ${!\b!_\bn_\ba_\bm_\be[_\b@]} described below.  The
-       exclamation point must immediately follow the left brace  in  order  to
-       introduce indirection.
+       _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br is not a _\bn_\ba_\bm_\be_\br_\be_\bf, it introduces a level of indirection.  B\bBa\bas\bsh\bh
+       uses  the  value  formed  by expanding the rest of _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br as the new
+       _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br; this is then expanded and that value is used in the rest  of
+       the  expansion,  rather  than  the expansion of the original _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br.
+       This is known as _\bi_\bn_\bd_\bi_\br_\be_\bc_\bt _\be_\bx_\bp_\ba_\bn_\bs_\bi_\bo_\bn.  The value  is  subject  to  tilde
+       expansion,  parameter  expansion,  command substitution, and arithmetic
+       expansion.  If _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br is a nameref, this expands to the name of  the
+       parameter  referenced  by  _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br instead of performing the complete
+       indirect expansion.  The exceptions  to  this  are  the  expansions  of
+       ${!\b!_\bp_\br_\be_\bf_\bi_\bx*\b*}  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.
@@ -2701,7 +2719,7 @@ 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
        ronment cannot affect the shell's execution environment.
 
        Subshells spawned to execute command substitutions inherit the value of
-       the  -\b-e\be  option  from  the  parent shell.  When not in _\bp_\bo_\bs_\bi_\bmode, b\bba\bas\bsh\bh
+       the  -\b-e\be  option  from  the  parent shell.  When not in _\bp_\bo_\bs_\bi_\b_\bm_\bo_\bd_\be, b\bba\bas\bsh\bh
        clears the -\b-e\be option in such subshells.
 
        If a command is followed by a &\b& and job  control  is  not  active,  the
@@ -4379,71 +4397,78 @@ S\bSH\bHE\bEL\bLL\bL B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS
               The  return  value is true unless an invalid option is supplied,
               or no matches were generated.
 
-       c\bco\bom\bmp\bpl\ble\bet\bte\be [-\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-D\bDE\bE] [-\b-A\bA _\ba_\bc_\bt_\bi_\bo_\bn]  [-\b-G\bG  _\bg_\bl_\bo_\bb_\b-
+       c\bco\bom\bmp\bpl\ble\bet\bte\be [-\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-D\bDE\bEI\bI] [-\b-A\bA _\ba_\bc_\bt_\bi_\bo_\bn] [-\b-G\bG  _\bg_\bl_\bo_\bb_\b-
        _\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 [-\b-D\bDE\bE] [_\bn_\ba_\bm_\be ...]
+       c\bco\bom\bmp\bpl\ble\bet\bte\be -\b-p\bpr\br [-\b-D\bDE\bEI\bI] [_\bn_\ba_\bm_\be ...]
               Specify  how arguments to each _\bn_\ba_\bm_\be should be completed.  If the
               -\b-p\bp option is supplied, or if no options are  supplied,  existing
               completion  specifications are printed in a way that allows them
               to be reused as input.  The -\b-r\br option removes a completion spec-
               ification  for each _\bn_\ba_\bm_\be, or, if no _\bn_\ba_\bm_\bes are supplied, all com-
-              pletion  specifications.   The  -\b-D\bD  option  indicates  that  the
-              remaining  options  and  actions should apply to the ``default''
-              command completion; that is, completion attempted on  a  command
-              for  which  no  completion  has previously been defined.  The -\b-E\bE
-              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 under P\bPr\bro\bog\bgr\bra\bam\bm-\b-
+              pletion specifications.  The -\b-D\bD option indicates that other sup-
+              plied  options  and actions should apply to the ``default'' com-
+              mand completion; that is, completion attempted on a command  for
+              which  no completion has previously been defined.  The -\b-E\bE option
+              indicates that other supplied options and actions  should  apply
+              to  ``empty''  command completion; that is, completion attempted
+              on a blank line.  The -\b-I\bI option indicates  that  other  supplied
+              options  and  actions  should  apply to completion on the inital
+              non-assignment word on the line, or after  a  command  delimiter
+              such  as  ;\b;  or |\b|, which is usually command name completion.  If
+              multiple options are supplied, the -\b-D\bD  option  takes  precedence
+              over -\b-E\bE, and both take precedence over -\b-I\bI.  If any of -\b-D\bD, -\b-E\bE, or
+              -\b-I\bI are supplied, any other _\bn_\ba_\bm_\be  arguments  are  ignored;  these
+              completions only apply to the case specified by the option.
+
+              The  process  of  applying  these completion specifications when
+              word completion is attempted is described above  under  P\bPr\bro\bog\bgr\bra\bam\bm-\b-
               m\bma\bab\bbl\ble\be C\bCo\bom\bmp\bpl\ble\bet\bti\bio\bon\bn.
 
-              Other options, if specified, have the following  meanings.   The
-              arguments  to the -\b-G\bG, -\b-W\bW, and -\b-X\bX options (and, if necessary, the
-              -\b-P\band -\b-S\bS options) should be quoted to protect them from  expan-
+              Other  options,  if specified, have the following meanings.  The
+              arguments to the -\b-G\bG, -\b-W\bW, and -\b-X\bX options (and, if necessary,  the
+              -\b-P\b and -\b-S\bS options) should be quoted to protect them from expan-
               sion before the c\bco\bom\bmp\bpl\ble\bet\bte\be builtin is invoked.
               -\b-o\bo _\bc_\bo_\bm_\bp_\b-_\bo_\bp_\bt_\bi_\bo_\bn
-                      The  _\bc_\bo_\bm_\bp_\b-_\bo_\bp_\bt_\bi_\bo_\bn  controls  several aspects of the comp-
-                      spec's behavior beyond the simple generation of  comple-
+                      The _\bc_\bo_\bm_\bp_\b-_\bo_\bp_\bt_\bi_\bo_\bn controls several aspects  of  the  comp-
+                      spec's  behavior beyond the simple generation of comple-
                       tions.  _\bc_\bo_\bm_\bp_\b-_\bo_\bp_\bt_\bi_\bo_\bn may be one of:
                       b\bba\bas\bsh\bhd\bde\bef\bfa\bau\bul\blt\bt
                               Perform the rest of the default b\bba\bas\bsh\bh completions
                               if the compspec generates no matches.
-                      d\bde\bef\bfa\bau\bul\blt\bt Use readline's default  filename  completion  if
+                      d\bde\bef\bfa\bau\bul\blt\bt Use  readline's  default  filename completion if
                               the compspec generates no matches.
                       d\bdi\bir\brn\bna\bam\bme\bes\bs
-                              Perform  directory  name completion if the comp-
+                              Perform directory name completion if  the  comp-
                               spec generates no matches.
                       f\bfi\bil\ble\ben\bna\bam\bme\bes\bs
-                              Tell readline that the compspec generates  file-
-                              names,  so  it can perform any filename-specific
-                              processing (like adding  a  slash  to  directory
-                              names,  quoting special characters, or suppress-
-                              ing trailing spaces).  Intended to be used  with
+                              Tell  readline that the compspec generates file-
+                              names, so it can perform  any  filename-specific
+                              processing  (like  adding  a  slash to directory
+                              names, quoting special characters, or  suppress-
+                              ing  trailing spaces).  Intended to be used with
                               shell functions.
-                      n\bno\boq\bqu\buo\bot\bte\be Tell  readline  not to quote the completed words
-                              if they are filenames (quoting filenames is  the
+                      n\bno\boq\bqu\buo\bot\bte\be Tell readline not to quote the  completed  words
+                              if  they are filenames (quoting filenames is the
                               default).
-                      n\bno\bos\bso\bor\brt\bt  Tell  readline  not to sort the list of possible
+                      n\bno\bos\bso\bor\brt\bt  Tell readline not to sort the list  of  possible
                               completions alphabetically.
-                      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
@@ -4451,7 +4476,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
@@ -4460,17 +4485,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.
@@ -4479,190 +4504,194 @@ 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-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 the function is  executed,  the
-                      first  argument  ($\b$1\b1)  is  the name of the command whose
-                      arguments are being completed, the second argument  ($\b$2\b2)
+                      The shell function _\bf_\bu_\bn_\bc_\bt_\bi_\bo_\bn is executed in  the  current
+                      shell  environment.   When the function is executed, the
+                      first argument ($\b$1\b1) is the name  of  the  command  whose
+                      arguments  are being completed, the second argument ($\b$2\b2)
                       is the word being completed, and the third argument ($\b$3\b3)
-                      is the word preceding the word being  completed  on  the
-                      current  command  line.   When it finishes, the possible
-                      completions are retrieved from the value of the  C\bCO\bOM\bMP\bPR\bRE\bE-\b-
+                      is  the  word  preceding the word being completed on the
+                      current command line.  When it  finishes,  the  possible
+                      completions  are retrieved from the value of the C\bCO\bOM\bMP\bPR\bRE\bE-\b-
                       P\bPL\bLY\bY array variable.
               -\b-G\bG _\bg_\bl_\bo_\bb_\bp_\ba_\bt
-                      The  pathname  expansion  pattern _\bg_\bl_\bo_\bb_\bp_\ba_\bt is expanded to
+                      The pathname expansion pattern _\bg_\bl_\bo_\bb_\bp_\ba_\bt  is  expanded  to
                       generate the possible completions.
               -\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.
               -\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.  Shell quoting is honored within  _\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.  Shell quoting is honored within _\bw_\bo_\br_\bd_\bl_\bi_\bs_\bt,
                       in order to provide a mechanism for the words to contain
-                      shell metacharacters or characters in the value of  I\bIF\bFS\bS.
-                      The  possible  completions are the members of the resul-
+                      shell  metacharacters or characters in the value of I\bIF\bFS\bS.
+                      The possible completions are the members of  the  resul-
                       tant list which match the word being completed.
               -\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  pathname  expansion.
+                      _\bf_\bi_\bl_\bt_\be_\br_\bp_\ba_\b is  a pattern as used for pathname 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
+                      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.
 
-              The  return  value is true unless an invalid option is supplied,
-              an option other than -\b-p\bp or -\b-r\br is supplied without a  _\bn_\ba_\bm_\b argu-
-              ment,  an  attempt  is made to remove a completion specification
+              The return value is true unless an invalid option  is  supplied,
+              an  option  other than -\b-p\bp or -\b-r\br is supplied without a _\bn_\ba_\bm_\be argu-
+              ment, an attempt is made to remove  a  completion  specification
               for a _\bn_\ba_\bm_\be for which no specification exists, or an error occurs
               adding a completion specification.
 
-       c\bco\bom\bmp\bpo\bop\bpt\bt [-\b-o\bo _\bo_\bp_\bt_\bi_\bo_\bn] [-\b-D\bDE\bE] [+\b+o\bo _\bo_\bp_\bt_\bi_\bo_\bn] [_\bn_\ba_\bm_\be]
+       c\bco\bom\bmp\bpo\bop\bpt\bt [-\b-o\bo _\bo_\bp_\bt_\bi_\bo_\bn] [-\b-D\bDE\bEI\bI] [+\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-executing 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 -\b-D\bD option  indicates  that  the  remaining
+              _\bo_\bp_\bt_\bi_\bo_\bns,  or  for the currently-executing 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\b builtin
+              described  above.   The  -\b-D\bD option indicates that other supplied
               options should apply to the ``default'' command completion; that
-              is, completion attempted on a command for  which  no  completion
-              has  previously  been defined.  The -\b-E\bE option indicates that the
-              remaining options should apply to ``empty'' command  completion;
-              that is, completion attempted on a blank line.
-
-              The  return  value is true unless an invalid option is supplied,
+              is,  completion  attempted  on a command for which no completion
+              has previously been defined.  The -\b-E\bE option indicates that other
+              supplied  options  should apply to ``empty'' command completion;
+              that is, completion attempted on a blank line.   The  -\b-I\bI  option
+              indicates that other supplied options should apply to completion
+              on the inital non-assignment word on the line, or after  a  com-
+              mand  delimiter  such  as  ;\b; or |\b|, which is usually command name
+              completion.
+
+              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
               completion 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\bloop.  If _\bn is specified, resume  at  the  _\bnth  enclosing
-              loop.   _\bn  must  be  >=  1.   If _\bn is greater than the number of
-              enclosing loops, the  last  enclosing  loop  (the  ``top-level''
+              s\bse\bel\ble\bec\bct\b loop.   If  _\bn  is specified, resume at the _\bnth enclosing
+              loop.  _\bn must be >= 1.  If _\bn  is  greater  than  the  number  of
+              enclosing  loops,  the  last  enclosing  loop (the ``top-level''
               loop) is resumed.  The return value is 0 unless _\bn is not greater
               than or equal to 1.
 
        d\bde\bec\bcl\bla\bar\bre\be [-\b-a\baA\bAf\bfF\bFg\bgi\bil\bln\bnr\brt\btu\bux\bx] [-\b-p\bp] [_\bn_\ba_\bm_\be[=_\bv_\ba_\bl_\bu_\be] ...]
        t\bty\byp\bpe\bes\bse\bet\bt [-\b-a\baA\bAf\bfF\bFg\bgi\bil\bln\bnr\brt\btu\bux\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
+              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, other than -\b-f\bf and -\b-F\bF,
-              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
+              with _\bn_\ba_\bm_\be arguments, additional options, other than -\b-f\bf  and  -\b-F\bF,
+              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\b option
-              will  restrict  the  display  to shell functions.  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
+              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\b 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 each _\bn_\ba_\bm_\be is defined are displayed as well.  The -\b-F\bF option
-              implies -\b-f\bf.  The -\b-g\bg option forces variables  to  be  created  or
+              implies  -\b-f\bf.   The  -\b-g\bg  option forces variables to be created or
               modified at the global scope, even when d\bde\bec\bcl\bla\bar\bre\be is executed in a
-              shell function.  It is ignored in all other cases.  The  follow-
+              shell  function.  It is ignored in all other cases.  The follow-
               ing 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  indexed  array  variable  (see  A\bAr\brr\bra\bay\bys\bs
+              -\b-a\ba     Each  _\bn_\ba_\bm_\be  is  an  indexed  array  variable  (see A\bAr\brr\bra\bay\bys\bs
                      above).
-              -\b-A\bA     Each  _\bn_\ba_\bm_\be  is  an associative array variable (see A\bAr\brr\bra\bay\bys\bs
+              -\b-A\bA     Each _\bn_\ba_\bm_\be is an associative 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 above) is performed when
+                     tion (see A\bAR\bRI\bIT\bTH\bHM\bME\bET\bTI\bIC\bC E\bEV\bVA\bAL\bLU\bUA\bAT\bTI\bIO\bON\bN above) is performed  when
                      the variable is assigned a value.
-              -\b-l\bl     When the variable is assigned  a  value,  all  upper-case
-                     characters  are  converted to lower-case.  The upper-case
+              -\b-l\bl     When  the  variable  is  assigned a value, all upper-case
+                     characters are converted to lower-case.   The  upper-case
                      attribute is disabled.
-              -\b-n\bn     Give each _\bn_\ba_\bm_\be the _\bn_\ba_\bm_\be_\br_\be_\bf attribute, making  it  a  name
-                     reference  to  another  variable.  That other variable is
-                     defined by the value of _\bn_\ba_\bm_\be.   All  references,  assign-
-                     ments,  and attribute modifications to _\bn_\ba_\bm_\be, except those
-                     using or changing the -\b-n\bn attribute itself, are  performed
-                     on  the variable referenced by _\bn_\ba_\bm_\be's value.  The nameref
+              -\b-n\bn     Give  each  _\bn_\ba_\bm_\be  the _\bn_\ba_\bm_\be_\br_\be_\bf attribute, making it a name
+                     reference to another variable.  That  other  variable  is
+                     defined  by  the  value of _\bn_\ba_\bm_\be.  All references, assign-
+                     ments, and attribute modifications to _\bn_\ba_\bm_\be, except  those
+                     using  or changing the -\b-n\bn attribute itself, are performed
+                     on the variable referenced by _\bn_\ba_\bm_\be's value.  The  nameref
                      attribute cannot be applied to array variables.
               -\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-u\bu     When the variable is assigned  a  value,  all  lower-case
-                     characters  are  converted to upper-case.  The lower-case
+              -\b-u\bu     When  the  variable  is  assigned a value, all lower-case
+                     characters are converted to upper-case.   The  lower-case
                      attribute is disabled.
-              -\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 will not remove the readonly attribute.  When used
+              able and +\b+r\br will not remove the readonly attribute.   When  used
               in a function, d\bde\bec\bcl\bla\bar\bre\be and t\bty\byp\bpe\bes\bse\bet\bt make each _\bn_\ba_\bm_\be local, as with
               the l\blo\boc\bca\bal\bl command, unless the -\b-g\bg option is supplied.  If a vari-
-              able name is followed by =_\bv_\ba_\bl_\bu_\be, the value of  the  variable  is
-              set  to  _\bv_\ba_\bl_\bu_\be.  When using -\b-a\ba or -\b-A\bA and the compound assignment
-              syntax to create array variables, additional attributes  do  not
+              able  name  is  followed by =_\bv_\ba_\bl_\bu_\be, the value of the variable is
+              set to _\bv_\ba_\bl_\bu_\be.  When using -\b-a\ba or -\b-A\bA and the  compound  assignment
+              syntax  to  create array variables, additional attributes do not
               take effect until subsequent assignments.  The return value is 0
-              unless an invalid option is encountered, an attempt is  made  to
-              define  a  function  using ``-f foo=bar'', an attempt is made to
-              assign a value to a readonly variable, an  attempt  is  made  to
-              assign  a  value to an array variable without using the compound
-              assignment syntax (see A\bAr\brr\bra\bay\bys\bs above), one of the _\bn_\ba_\bm_\be_\bs is not  a
-              valid  shell variable name, an attempt is made to turn off read-
-              only status for a readonly variable, an attempt is made to  turn
+              unless  an  invalid option is encountered, an attempt is made to
+              define a function using ``-f foo=bar'', an attempt  is  made  to
+              assign  a  value  to  a readonly variable, an attempt is made to
+              assign a value to an array variable without using  the  compound
+              assignment  syntax (see A\bAr\brr\bra\bay\bys\bs above), one of the _\bn_\ba_\bm_\be_\bs is not a
+              valid shell variable name, an attempt is made to turn off  read-
+              only  status for a readonly variable, an attempt is made to turn
               off array status for an array variable, or an attempt is made to
               display a non-existent function with -\b-f\bf.
 
        d\bdi\bir\brs\bs [\b[-\b-c\bcl\blp\bpv\bv]\b] [\b[+\b+_\bn]\b] [\b[-\b-_\bn]\b]
-              Without options,  displays  the  list  of  currently  remembered
-              directories.   The  default  display  is  on  a single line with
-              directory names separated by spaces.  Directories are  added  to
-              the  list  with  the  p\bpu\bus\bsh\bhd\bd  command;  the  p\bpo\bop\bpd\bd command removes
-              entries from the list.  The  current  directory  is  always  the
+              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.   The  current directory is always the
               first directory in the stack.
               -\b-c\bc     Clears  the  directory  stack  by  deleting  all  of  the
                      entries.
-              -\b-l\bl     Produces a listing  using  full  pathnames;  the  default
+              -\b-l\bl     Produces  a  listing  using  full  pathnames; 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.
               +\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.
 
-              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 ... | _\bp_\bi_\bd ... ]
-              Without  options,  remove  each _\bj_\bo_\bb_\bs_\bp_\be_\bc from the table of active
-              jobs.  If _\bj_\bo_\bb_\bs_\bp_\be_\bc is not 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 the -\b-h\bh option
-              is given, each _\bj_\bo_\bb_\bs_\bp_\be_\bc is not removed from  the  table,  but  is
-              marked  so  that  S\bSI\bIG\bGH\bHU\bUP\bP  is  not  sent  to the job if the shell
-              receives a S\bSI\bIG\bGH\bHU\bUP\bP.  If no _\bj_\bo_\bb_\bs_\bp_\be_\bc is  supplied,  the  -\b-a\b option
-              means  to  remove or mark all jobs; the -\b-r\br option without a _\bj_\bo_\bb_\b-
-              _\bs_\bp_\be_\bargument restricts operation to running jobs.   The  return
+              Without options, remove each _\bj_\bo_\bb_\bs_\bp_\be_\bc from the  table  of  active
+              jobs.   If _\bj_\bo_\bb_\bs_\bp_\be_\bc is not 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 the  -\b-h\b option
+              is  given,  each  _\bj_\bo_\bb_\bs_\bp_\be_\bc  is not removed from the table, but is
+              marked so that S\bSI\bIG\bGH\bHU\bUP\bP is not  sent  to  the  job  if  the  shell
+              receives  a  S\bSI\bIG\bGH\bHU\bUP\bP.   If  no _\bj_\bo_\bb_\bs_\bp_\be_\bc is supplied, the -\b-a\ba option
+              means to remove or mark all jobs; the -\b-r\br option without  a  _\bj_\bo_\bb_\b-
+              _\bs_\bp_\be_\b argument  restricts operation to running jobs.  The return
               value is 0 unless a _\bj_\bo_\bb_\bs_\bp_\be_\bc does not specify a valid job.
 
        e\bec\bch\bho\bo [-\b-n\bne\beE\bE] [_\ba_\br_\bg ...]
-              Output  the  _\ba_\br_\bgs,  separated  by spaces, followed by a newline.
-              The return status is 0 unless a write error occurs.   If  -\b-n\b is
+              Output the _\ba_\br_\bgs, separated by spaces,  followed  by  a  newline.
+              The  return  status  is 0 unless a write error occurs.  If -\b-n\bn is
               specified, the trailing newline is suppressed.  If the -\b-e\be option
-              is given,  interpretation  of  the  following  backslash-escaped
-              characters  is  enabled.  The -\b-E\bE option disables the interpreta-
-              tion of these escape characters, 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\bo does not interpret -\b--\b- to
-              mean the end of options.  e\bec\bch\bho\bo interprets the  following  escape
+              is  given,  interpretation  of  the  following backslash-escaped
+              characters is enabled.  The -\b-E\bE option disables  the  interpreta-
+              tion  of these escape characters, 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\bo 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
@@ -4675,190 +4704,190 @@ 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)
-              \\b\u\bu_\bH_\bH_\bH_\bH the  Unicode (ISO/IEC 10646) character whose value is the
+              \\b\u\bu_\bH_\bH_\bH_\bH the Unicode (ISO/IEC 10646) character whose value is  the
                      hexadecimal value _\bH_\bH_\bH_\bH (one to four hex digits)
               \\b\U\bU_\bH_\bH_\bH_\bH_\bH_\bH_\bH_\bH
-                     the Unicode (ISO/IEC 10646) character whose value is  the
+                     the  Unicode (ISO/IEC 10646) character whose value is the
                      hexadecimal value _\bH_\bH_\bH_\bH_\bH_\bH_\bH_\bH (one to eight 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 e\bex\bxe\bec\bcf\bfa\bai\bil\bl shell option is enabled.  In that  case,  it
-              returns  failure.   An  interactive shell returns failure if the
-              file cannot be executed.  A subshell  exits  unconditionally  if
-              e\bex\bxe\bec\b fails.  If _\bc_\bo_\bm_\bm_\ba_\bn_\bd is not specified, any redirections take
-              effect in the current shell, and the return  status  is  0.   If
+              not be executed for some reason, a non-interactive shell  exits,
+              unless  the  e\bex\bxe\bec\bcf\bfa\bai\bil\bl shell option is enabled.  In that case, it
+              returns failure.  An interactive shell returns  failure  if  the
+              file  cannot  be  executed.  A subshell exits unconditionally if
+              e\bex\bxe\bec\bfails.  If _\bc_\bo_\bm_\bm_\ba_\bn_\bd is not specified, any redirections  take
+              effect  in  the  current  shell, and the return status is 0.  If
               there is a redirection error, the return status is 1.
 
        e\bex\bxi\bit\bt [_\bn]
-              Cause  the  shell  to exit with a status of _\bn.  If _\bn is omitted,
+              Cause the shell to exit with a status of _\bn.  If  _\bn  is  omitted,
               the exit status is that of the last command executed.  A trap on
               E\bEX\bXI\bIT\bT is executed before the shell terminates.
 
        e\bex\bxp\bpo\bor\brt\bt [-\b-f\bfn\bn] [_\bn_\ba_\bm_\be[=_\bw_\bo_\br_\bd]] ...
        e\bex\bxp\bpo\bor\brt\bt -\b-p\bp
-              The  supplied _\bn_\ba_\bm_\be_\bs are marked for automatic export to the envi-
-              ronment of subsequently executed commands.  If the -\b-f\bf option  is
-              given,  the _\bn_\ba_\bm_\be_\bs refer to functions.  If no _\bn_\ba_\bm_\be_\bs are given, or
-              if the -\b-p\bp option is supplied, a list of names  of  all  exported
-              variables  is printed.  The -\b-n\bn option causes the export property
+              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 names of all exported
+              variables 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 sup-
+              of the _\bn_\ba_\bm_\be_\bs is not a valid shell variable name, or -\b-f\bf  is  sup-
               plied with a _\bn_\ba_\bm_\be that is not a function.
 
        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]
-              The first form selects a range of commands from  _\bf_\bi_\br_\bs_\bt  to  _\bl_\ba_\bs_\bt
-              from  the  history  list  and  displays or edits and re-executes
-              them.  _\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  current  command number).  If _\bl_\ba_\bs_\bt is not
+              The  first  form  selects a range of commands from _\bf_\bi_\br_\bs_\bt to _\bl_\ba_\bs_\bt
+              from the history list and  displays  or  edits  and  re-executes
+              them.   _\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 current 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 last 10 commands) and to _\bf_\bi_\br_\bs_\bt other-
+              ``fc -l -10'' prints the last 10 commands) and to  _\bf_\bi_\br_\bs_\b other-
               wise.  If _\bf_\bi_\br_\bs_\bt is not specified, it is set to the previous com-
               mand for editing and -16 for listing.
 
-              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-
+              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-
               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.  _\bC_\bo_\bm_\bm_\ba_\bn_\bd is interpreted the same as
-              _\bf_\bi_\br_\bs_\babove.  A useful alias to use with this is ``r="fc  -s"'',
-              so  that  typing  ``r  cc'' runs the last command beginning with
+              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.  _\bC_\bo_\bm_\bm_\ba_\bn_\bd is interpreted the  same  as
+              _\bf_\bi_\br_\bs_\b above.  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.
 
-              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\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
+              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
               _\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\b 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\bD 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 _\bn_\ba_\bm_\be is set to ?.
 
-              g\bge\bet\bto\bop\bpt\bts\b normally  parses the positional parameters, but if more
+              g\bge\bet\bto\bop\bpt\bts\bnormally 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\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-
+              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-
               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]
               Each time h\bha\bas\bsh\bh is invoked, the full pathname of the command _\bn_\ba_\bm_\be
-              is  determined  by searching the directories in $\b$P\bPA\bAT\bTH\bH and remem-
+              is determined by searching the directories in $\b$P\bPA\bAT\bTH\bH  and  remem-
               bered.  Any previously-remembered pathname is discarded.  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 filename of  the  command.   The  -\b-r\b option
-              causes  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_\be corresponds is printed.  If multiple _\bn_\ba_\bm_\b argu-
-              ments  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  dis-
+              is  used  as  the  full  filename of the command.  The -\b-r\br option
+              causes 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_\be corresponds is printed.  If multiple _\bn_\ba_\bm_\be argu-
+              ments 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 dis-
               played in a format that may be reused as input.  If no arguments
-              are given, or if only -\b-l\bl is supplied, information  about  remem-
-              bered  commands  is printed.  The return status is true unless a
+              are  given,  or if only -\b-l\bl is supplied, information about remem-
+              bered commands is 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-d\bdm\bms\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
+              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.
               -\b-d\bd     Display a short description of each _\bp_\ba_\bt_\bt_\be_\br_\bn
               -\b-m\bm     Display the description of each _\bp_\ba_\bt_\bt_\be_\br_\bn in a manpage-like
@@ -4876,53 +4905,53 @@ 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.  If _\bo_\bf_\bf_\bs_\be_\bt
+                     Delete the history entry at position _\bo_\bf_\bf_\bs_\be_\bt.   If  _\bo_\bf_\bf_\bs_\be_\bt
                      is negative, it is interpreted as relative to one greater
                      than the last history position, so negative indices count
-                     back from the end of the history,  and  an  index  of  -1
+                     back  from  the  end  of  the history, and an index of -1
                      refers to the current h\bhi\bis\bst\bto\bor\bry\by -\b-d\bd command.
               -\b-d\bd _\bs_\bt_\ba_\br_\bt-_\be_\bn_\bd
-                     Delete  the  history  entries between positions _\bs_\bt_\ba_\br_\bt and
-                     _\be_\bn_\bd, inclusive.  Positive and negative values  for  _\bs_\bt_\ba_\br_\bt
+                     Delete the history entries between  positions  _\bs_\bt_\ba_\br_\b and
+                     _\be_\bn_\bd,  inclusive.   Positive and negative values for _\bs_\bt_\ba_\br_\bt
                      and _\be_\bn_\bd are interpreted as described above.
-              -\b-a\ba     Append  the  ``new''  history  lines to the history file.
-                     These are history lines entered since  the  beginning  of
+              -\b-a\ba     Append the ``new'' history lines  to  the  history  file.
+                     These  are  history  lines entered since the beginning of
                      the current b\bba\bas\bsh\bh session, but not already appended 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 append them to
+              -\b-r\br     Read the contents of the history file and append them  to
                      the current history list.
               -\b-w\bw     Write the current history list to the history file, over-
                      writing the history file's contents.
-              -\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
+              -\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
                      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 variable is set, the time  stamp  informa-
-              tion  associated  with each history entry is written to the his-
-              tory 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
+              If  the  H\bHI\bIS\bST\bTT\bTI\bIM\bME\bEF\bFO\bOR\bRM\bMA\bAT\bT variable is set, the time stamp informa-
+              tion associated with each history entry is written to  the  his-
+              tory  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 following history entry.  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 sup-
+              reading or writing the history file, an invalid _\bo_\bf_\bf_\bs_\be_\bt  is  sup-
               plied as an argument to -\b-d\bd, or the history expansion supplied as
               an argument to -\b-p\bp fails.
 
@@ -4931,210 +4960,210 @@ 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-n\bn     Display information only about  jobs  that  have  changed
+              -\b-n\bn     Display  information  only  about  jobs that have changed
                      status since the user was last notified of their status.
-              -\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-r\br     Display only running jobs.
               -\b-s\bs     Display only 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|-\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.  The -\b-L\bL option is
-              equivalent to -\b-l\bl.  k\bki\bil\bll\bl returns true if at least one signal  was
-              successfully  sent,  or  false  if an error occurs or an invalid
+              -\b-l\b is  a  number  specifying either a signal number or the exit
+              status of a process terminated by a signal.  The  -\b-L\bL  option  is
+              equivalent  to -\b-l\bl.  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\b E\bEV\bVA\bAL\bLU\bUA\bAT\bTI\bIO\bON\bN  above).   If the last _\ba_\br_\bg evaluates to 0, l\ble\bet\bt
+              M\bME\bET\bTI\bIC\bE\bEV\bVA\bAL\bLU\bUA\bAT\bTI\bIO\bON\bN above).  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-
-              tion and its children.  If _\bn_\ba_\bm_\be is -, the set of  shell  options
-              is  made  local to the function in which l\blo\boc\bca\bal\bl is invoked: shell
-              options changed using the s\bse\bet\bt builtin inside  the  function  are
-              restored  to  their  original  values when the function returns.
-              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 l\blo\boc\bca\bal\bl when not within a
+              variable _\bn_\ba_\bm_\be to have a visible scope restricted to  that  func-
+              tion  and  its children.  If _\bn_\ba_\bm_\be is -, the set of shell options
+              is made local to the function in which l\blo\boc\bca\bal\bl is  invoked:  shell
+              options  changed  using  the s\bse\bet\bt builtin inside the function are
+              restored to their original values  when  the  function  returns.
+              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 l\blo\boc\bca\bal\bl when not within  a
               function.  The return status is 0 unless l\blo\boc\bca\bal\bl is used outside a
-              function,  an  invalid  _\bn_\ba_\bm_\be  is supplied, or _\bn_\ba_\bm_\be is a readonly
+              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.
 
-       m\bma\bap\bpf\bfi\bil\ble\b[-\b-d\bd _\bd_\be_\bl_\bi_\bm] [-\b-n\bn _\bc_\bo_\bu_\bn_\bt] [-\b-O\bO _\bo_\br_\bi_\bg_\bi_\bn] [-\b-s\bs _\bc_\bo_\bu_\bn_\bt] [-\b-t\bt] [-\b-u\bu  _\bf_\bd]  [-\b-C\bC
+       m\bma\bap\bpf\bfi\bil\ble\b [-\b-d\bd  _\bd_\be_\bl_\bi_\bm] [-\b-n\bn _\bc_\bo_\bu_\bn_\bt] [-\b-O\bO _\bo_\br_\bi_\bg_\bi_\bn] [-\b-s\bs _\bc_\bo_\bu_\bn_\bt] [-\b-t\bt] [-\b-u\bu _\bf_\bd] [-\b-C\bC
        _\bc_\ba_\bl_\bl_\bb_\ba_\bc_\bk] [-\b-c\bc _\bq_\bu_\ba_\bn_\bt_\bu_\bm] [_\ba_\br_\br_\ba_\by]
        r\bre\bea\bad\bda\bar\brr\bra\bay\by [-\b-d\bd _\bd_\be_\bl_\bi_\bm] [-\b-n\bn _\bc_\bo_\bu_\bn_\bt] [-\b-O\bO _\bo_\br_\bi_\bg_\bi_\bn] [-\b-s\bs _\bc_\bo_\bu_\bn_\bt] [-\b-t\bt] [-\b-u\bu _\bf_\bd] [-\b-C\bC
        _\bc_\ba_\bl_\bl_\bb_\ba_\bc_\bk] [-\b-c\bc _\bq_\bu_\ba_\bn_\bt_\bu_\bm] [_\ba_\br_\br_\ba_\by]
-              Read lines from the standard input into the indexed array  vari-
-              able  _\ba_\br_\br_\ba_\by, or from file descriptor _\bf_\bd if the -\b-u\bu option is sup-
-              plied.  The variable M\bMA\bAP\bPF\bFI\bIL\bLE\bE is the default _\ba_\br_\br_\ba_\by.  Options,  if
+              Read  lines from the standard input into the indexed array vari-
+              able _\ba_\br_\br_\ba_\by, or from file descriptor _\bf_\bd if the -\b-u\bu option is  sup-
+              plied.   The variable M\bMA\bAP\bPF\bFI\bIL\bLE\bE is the default _\ba_\br_\br_\ba_\by.  Options, if
               supplied, have the following meanings:
-              -\b-d\bd     The  first  character  of _\bd_\be_\bl_\bi_\bm is used to terminate each
-                     input line, rather than newline.  If _\bd_\be_\bl_\bi_\bm is  the  empty
+              -\b-d\bd     The first character of _\bd_\be_\bl_\bi_\bm is used  to  terminate  each
+                     input  line,  rather than newline.  If _\bd_\be_\bl_\bi_\bm is the empty
                      string, m\bma\bap\bpf\bfi\bil\ble\be will terminate a line when it reads a NUL
                      character.
-              -\b-n\bn     Copy at most _\bc_\bo_\bu_\bn_\bt lines.  If _\bc_\bo_\bu_\bn_\bt is 0, all  lines  are
+              -\b-n\bn     Copy  at  most _\bc_\bo_\bu_\bn_\bt lines.  If _\bc_\bo_\bu_\bn_\bt is 0, all lines are
                      copied.
-              -\b-O\bO     Begin  assigning  to  _\ba_\br_\br_\ba_\by at index _\bo_\br_\bi_\bg_\bi_\bn.  The default
+              -\b-O\bO     Begin assigning to _\ba_\br_\br_\ba_\by at index  _\bo_\br_\bi_\bg_\bi_\bn.   The  default
                      index is 0.
               -\b-s\bs     Discard the first _\bc_\bo_\bu_\bn_\bt lines read.
-              -\b-t\bt     Remove a trailing _\bd_\be_\bl_\bi_\bm (default newline) from each  line
+              -\b-t\bt     Remove  a trailing _\bd_\be_\bl_\bi_\bm (default newline) from each line
                      read.
-              -\b-u\bu     Read  lines  from file descriptor _\bf_\bd instead of the stan-
+              -\b-u\bu     Read lines from file descriptor _\bf_\bd instead of  the  stan-
                      dard input.
-              -\b-C\bC     Evaluate _\bc_\ba_\bl_\bl_\bb_\ba_\bc_\bk each time _\bq_\bu_\ba_\bn_\bt_\bu_\bm lines are read.   The
+              -\b-C\bC     Evaluate  _\bc_\ba_\bl_\bl_\bb_\ba_\bc_\bk each time _\bq_\bu_\ba_\bn_\bt_\bu_\bm lines are read.  The
                      -\b-c\bc option specifies _\bq_\bu_\ba_\bn_\bt_\bu_\bm.
-              -\b-c\bc     Specify  the  number  of  lines read between each call to
+              -\b-c\bc     Specify the number of lines read  between  each  call  to
                      _\bc_\ba_\bl_\bl_\bb_\ba_\bc_\bk.
 
-              If -\b-C\bC is specified without -\b-c\bc,  the  default  quantum  is  5000.
+              If  -\b-C\bC  is  specified  without  -\b-c\bc, the default quantum is 5000.
               When _\bc_\ba_\bl_\bl_\bb_\ba_\bc_\bk is evaluated, it is supplied the index of the next
               array element to be assigned and the line to be assigned to that
-              element  as  additional  arguments.  _\bc_\ba_\bl_\bl_\bb_\ba_\bc_\bk is evaluated after
+              element as additional arguments.  _\bc_\ba_\bl_\bl_\bb_\ba_\bc_\bk  is  evaluated  after
               the line is read but before the array element is assigned.
 
-              If not supplied with an  explicit  origin,  m\bma\bap\bpf\bfi\bil\ble\be  will  clear
+              If  not  supplied  with  an  explicit origin, m\bma\bap\bpf\bfi\bil\ble\be will clear
               _\ba_\br_\br_\ba_\by before assigning to it.
 
-              m\bma\bap\bpf\bfi\bil\ble\b returns successfully unless an invalid option or option
-              argument is supplied, _\ba_\br_\br_\ba_\by is invalid or  unassignable,  or  if
+              m\bma\bap\bpf\bfi\bil\ble\breturns successfully unless an invalid option or  option
+              argument  is  supplied,  _\ba_\br_\br_\ba_\by is invalid or unassignable, or if
               _\ba_\br_\br_\ba_\by is not an indexed array.
 
        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 -\b-v\bv option causes the  output  to  be
-              assigned  to  the  variable _\bv_\ba_\br rather than being printed to the
+              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 -\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 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 format specifications, each
-              of which causes printing of the next  successive  _\ba_\br_\bg_\bu_\bm_\be_\bn_\bt.   In
+              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 format  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) format specifications, p\bpr\bri\bin\bnt\btf\bf
               interprets the following extensions:
               %\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 in the same way as e\bec\bch\bho\bo -\b-e\be.
-              %\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
+              %\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.
               %\b%(\b(_\bd_\ba_\bt_\be_\bf_\bm_\bt)\b)T\bT
-                     causes p\bpr\bri\bin\bnt\btf\bf to output the  date-time  string  resulting
-                     from  using  _\bd_\ba_\bt_\be_\bf_\bm_\bt  as a format string for _\bs_\bt_\br_\bf_\bt_\bi_\bm_\be(3).
+                     causes  p\bpr\bri\bin\bnt\btf\bf  to  output the date-time string resulting
+                     from using _\bd_\ba_\bt_\be_\bf_\bm_\bt as a format  string  for  _\bs_\bt_\br_\bf_\bt_\bi_\bm_\be(3).
                      The corresponding _\ba_\br_\bg_\bu_\bm_\be_\bn_\bt is an integer representing the
-                     number  of seconds since the epoch.  Two special argument
-                     values may be used: -1 represents the current  time,  and
-                     -2  represents  the  time  the  shell was invoked.  If no
-                     argument is specified, conversion behaves as  if  -1  had
-                     been  given.   This  is  an exception to the usual p\bpr\bri\bin\bnt\btf\bf
+                     number of seconds since the epoch.  Two special  argument
+                     values  may  be used: -1 represents the current time, and
+                     -2 represents the time the  shell  was  invoked.   If  no
+                     argument  is  specified,  conversion behaves as if -1 had
+                     been given.  This is an exception  to  the  usual  p\bpr\bri\bin\bnt\btf\bf
                      behavior.
 
-              Arguments to non-string format specifiers are treated as C  con-
+              Arguments  to non-string format specifiers are treated as C con-
               stants, except that a leading plus or minus sign is allowed, and
-              if the leading character is a single or double quote, the  value
+              if  the leading character is a single or double quote, the value
               is the ASCII value of the following character.
 
-              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
-              directory.   With  no  arguments,  p\bpu\bus\bsh\bhd\bd  exchanges  the top two
-              directories and returns 0, unless the directory stack is  empty.
+              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,  p\bpu\bus\bsh\bhd\bd  exchanges  the  top  two
+              directories  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 rotating
-                     or adding directories to the  stack,  so  that  only  the
+              -\b-n\bn     Suppresses the normal change of directory  when  rotating
+                     or  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 as if it had been  supplied
+                     new  current working directory as if it had been supplied
                      as the argument to the c\bcd\bd builtin.
 
               If the p\bpu\bus\bsh\bhd\bd command is successful, a d\bdi\bir\brs\bs is performed as well.
-              If the first form is used, p\bpu\bus\bsh\bhd\bd returns 0 unless the cd to  _\bd_\bi_\br
-              fails.   With the second form, p\bpu\bus\bsh\bhd\bd returns 0 unless the direc-
-              tory stack is empty, a non-existent directory stack  element  is
-              specified,  or the directory change to the specified new current
+              If  the first form is used, p\bpu\bus\bsh\bhd\bd returns 0 unless the cd to _\bd_\bi_\br
+              fails.  With the second form, p\bpu\bus\bsh\bhd\bd returns 0 unless the  direc-
+              tory  stack  is empty, a non-existent directory stack element is
+              specified, or the directory change to the specified new  current
               directory fails.
 
        p\bpw\bwd\bd [-\b-L\bLP\bP]
-              Print the absolute pathname of the  current  working  directory.
+              Print  the  absolute  pathname of the current working directory.
               The pathname printed contains no symbolic links if the -\b-P\bP option
               is supplied or the -\b-o\bo p\bph\bhy\bys\bsi\bic\bca\bal\bl option to the s\bse\bet\bt builtin command
-              is  enabled.  If the -\b-L\bL option is used, the pathname printed may
-              contain symbolic links.  The return status is 0 unless an  error
-              occurs  while  reading  the  name of the current directory or an
+              is enabled.  If the -\b-L\bL option is used, the pathname printed  may
+              contain  symbolic links.  The return status is 0 unless an error
+              occurs while reading the name of the  current  directory  or  an
               invalid option is supplied.
 
        r\bre\bea\bad\bd [-\b-e\ber\brs\bs] [-\b-a\ba _\ba_\bn_\ba_\bm_\be] [-\b-d\bd _\bd_\be_\bl_\bi_\bm] [-\b-i\bi _\bt_\be_\bx_\bt] [-\b-n\bn _\bn_\bc_\bh_\ba_\br_\bs] [-\b-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,  split
-              into  words  as  described  above  under W\bWo\bor\brd\bd S\bSp\bpl\bli\bit\btt\bti\bin\bng\bg, and the
+              One line is read from the  standard  input,  or  from  the  file
+              descriptor  _\bf_\bd  supplied  as an argument to the -\b-u\bu option, split
+              into words as described above  under  W\bWo\bor\brd\bd  S\bSp\bpl\bli\bit\btt\bti\bin\bng\bg,  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.  If there are more words than names, the
               remaining words and their intervening delimiters are 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  val-
-              ues.   The  characters  in  I\bIF\bFS\bS  are used to split the line into
+              the last _\bn_\ba_\bm_\be.  If there are fewer words  read  from  the  input
+              stream  than  names, the remaining names are assigned empty val-
+              ues.  The characters in I\bIF\bFS\bS are used  to  split  the  line  into
               words  using  the  same  rules  the  shell  uses  for  expansion
               (described above under W\bWo\bor\brd\bd S\bSp\bpl\bli\bit\btt\bti\bin\bng\bg).  The backslash character
               (\\b\) may be used to remove any special meaning for the next char-
-              acter  read  and  for  line continuation.  Options, if supplied,
+              acter read and for line  continuation.   Options,  if  supplied,
               have the following meanings:
               -\b-a\ba _\ba_\bn_\ba_\bm_\be
                      The words are assigned to sequential indices of the array
@@ -5142,31 +5171,31 @@ 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
-                     input line, rather than newline.  If _\bd_\be_\bl_\bi_\bm is  the  empty
-                     string,  r\bre\bea\bad\bd  will  terminate a line when it reads a NUL
+                     The first character of _\bd_\be_\bl_\bi_\bm is  used  to  terminate  the
+                     input  line,  rather than newline.  If _\bd_\be_\bl_\bi_\bm is the empty
+                     string, r\bre\bea\bad\bd will terminate a line when it  reads  a  NUL
                      character.
               -\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.  Read-
-                     line uses the current (or default, if  line  editing  was
-                     not  previously  active) editing settings, but uses Read-
+                     (see R\bRE\bEA\bAD\bDL\bLI\bIN\bNE\bE above) is used to obtain the  line.   Read-
+                     line  uses  the  current (or default, if line editing was
+                     not previously active) editing settings, but  uses  Read-
                      line's default filename completion.
               -\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_\b is
+                     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\b returns after reading _\bn_\bc_\bh_\ba_\br_\bs characters rather than
+                     r\bre\bea\bad\breturns after reading _\bn_\bc_\bh_\ba_\br_\bs characters rather  than
                      waiting for a complete line of input, but honors a delim-
-                     iter  if fewer than _\bn_\bc_\bh_\ba_\br_\bs characters are read before the
+                     iter if fewer than _\bn_\bc_\bh_\ba_\br_\bs characters are read before  the
                      delimiter.
               -\b-N\bN _\bn_\bc_\bh_\ba_\br_\bs
-                     r\bre\bea\bad\breturns  after  reading  exactly  _\bn_\bc_\bh_\ba_\br_\b characters
-                     rather  than waiting for a complete line of input, unless
-                     EOF is encountered or r\bre\bea\bad\bd times out.  Delimiter  charac-
-                     ters  encountered  in the input are not treated specially
-                     and do not cause r\bre\bea\bad\bd to return until  _\bn_\bc_\bh_\ba_\br_\b characters
-                     are  read.   The result is not split on the characters in
-                     I\bIF\bFS\bS; the intent is that the variable is assigned  exactly
+                     r\bre\bea\bad\b returns  after  reading  exactly  _\bn_\bc_\bh_\ba_\br_\bs characters
+                     rather than waiting for a complete line of input,  unless
+                     EOF  is encountered or r\bre\bea\bad\bd times out.  Delimiter charac-
+                     ters encountered in the input are not  treated  specially
+                     and  do  not cause r\bre\bea\bad\bd to return until _\bn_\bc_\bh_\ba_\br_\bs characters
+                     are read.  The result is not split on the  characters  in
+                     I\bIF\bFS\bS;  the intent is that the variable is assigned exactly
                      the characters read (with the exception of backslash; see
                      the -\b-r\br option below).
               -\b-p\bp _\bp_\br_\bo_\bm_\bp_\bt
@@ -5174,131 +5203,131 @@ S\bSH\bHE\bEL\bLL\bL B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS
                      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  (or a specified number of characters) is
-                     not read within _\bt_\bi_\bm_\be_\bo_\bu_\bt seconds.  _\bt_\bi_\bm_\be_\bo_\bu_\bt may be a  deci-
-                     mal  number with a fractional portion following the deci-
-                     mal point.  This option is  only  effective  if  r\bre\bea\bad\b is
-                     reading  input  from  a  terminal, pipe, or other special
-                     file; it has no effect when reading from  regular  files.
+                     Cause  r\bre\bea\bad\bd  to time out and return failure if a complete
+                     line of input (or a specified number  of  characters)  is
+                     not  read within _\bt_\bi_\bm_\be_\bo_\bu_\bt seconds.  _\bt_\bi_\bm_\be_\bo_\bu_\bt may be a deci-
+                     mal number with a fractional portion following the  deci-
+                     mal  point.   This  option  is  only effective if r\bre\bea\bad\bd is
+                     reading input from a terminal,  pipe,  or  other  special
+                     file;  it  has no effect when reading from regular files.
                      If r\bre\bea\bad\bd times out, r\bre\bea\bad\bd saves any partial input read into
-                     the specified variable  _\bn_\ba_\bm_\be.   If  _\bt_\bi_\bm_\be_\bo_\bu_\bt  is  0,  r\bre\bea\bad\bd
-                     returns  immediately,  without  trying  to read any data.
-                     The exit status is 0 if input is available on the  speci-
-                     fied  file descriptor, non-zero otherwise.  The exit sta-
+                     the  specified  variable  _\bn_\ba_\bm_\be.   If  _\bt_\bi_\bm_\be_\bo_\bu_\bt  is 0, r\bre\bea\bad\bd
+                     returns immediately, without trying  to  read  any  data.
+                     The  exit status is 0 if input is available on the speci-
+                     fied file descriptor, non-zero otherwise.  The exit  sta-
                      tus is greater than 128 if the timeout is exceeded.
               -\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  exit  status  is zero, unless end-of-file is
+              able R\bRE\bEP\bPL\bLY\bY.  The exit status  is  zero,  unless  end-of-file  is
               encountered, r\bre\bea\bad\bd times out (in which case the status is greater
-              than  128),  a variable assignment error (such as assigning to a
+              than 128), a variable assignment error (such as assigning  to  a
               readonly variable) occurs, or an invalid file descriptor is sup-
               plied as the argument to -\b-u\bu.
 
        r\bre\bea\bad\bdo\bon\bnl\bly\by [-\b-a\baA\bAf\bf] [-\b-p\bp] [_\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
-              marked.  The  -\b-a\ba  option  restricts  the  variables  to  indexed
-              arrays;  the  -\b-A\bA  option  restricts the variables to associative
-              arrays.  If both options are supplied, -\b-A\bA takes precedence.   If
-              no  _\bn_\ba_\bm_\be arguments are given, or if the -\b-p\bp option is supplied, a
+              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 indexed
+              arrays; the -\b-A\bA option restricts  the  variables  to  associative
+              arrays.   If both options are supplied, -\b-A\bA takes precedence.  If
+              no _\bn_\ba_\bm_\be arguments are given, or if the -\b-p\bp option is supplied,  a
               list of all readonly names is printed.  The other options may be
-              used  to  restrict the output to a subset of the set of readonly
-              names.  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 variable is set  to  _\bw_\bo_\br_\bd.   The  return
-              status  is 0 unless an invalid option is encountered, one of the
+              used to restrict the output to a subset of the set  of  readonly
+              names.   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 variable 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 function.
 
        r\bre\bet\btu\bur\brn\bn [_\bn]
-              Causes  a function to stop executing and return the value speci-
-              fied by _\bn to its caller.  If _\bn is omitted, the return status  is
-              that  of  the  last  command  executed in the function body.  If
-              r\bre\bet\btu\bur\brn\bis executed by a trap handler, the last command  used  to
-              determine  the  status  is  the last command executed before the
-              trap handler.  If r\bre\bet\btu\bur\brn\bn is executed during a  D\bDE\bEB\bBU\bUG\bG  trap,  the
-              last  command  used  to determine the status is the last command
-              executed by the trap handler  before  r\bre\bet\btu\bur\brn\bn  was  invoked.   If
-              r\bre\bet\btu\bur\brn\b is  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 _\bn or the exit status of
-              the last command executed within the script as the  exit  status
-              of  the script.  If _\bn is supplied, the return value is its least
-              significant 8 bits.  The return status is non-zero if r\bre\bet\btu\bur\brn\b is
-              supplied  a  non-numeric argument, or is used outside a function
-              and not during execution of a script by .\b. or s\bso\bou\bur\brc\bce\be.   Any  com-
-              mand  associated  with the R\bRE\bET\bTU\bUR\bRN\bN trap is executed before execu-
+              Causes a function to stop executing and return the value  speci-
+              fied  by _\bn to its caller.  If _\bn is omitted, the return status is
+              that of the last command executed  in  the  function  body.   If
+              r\bre\bet\btu\bur\brn\b is  executed by a trap handler, the last command used to
+              determine the status is the last  command  executed  before  the
+              trap  handler.   If  r\bre\bet\btu\bur\brn\bn is executed during a D\bDE\bEB\bBU\bUG\bG trap, the
+              last command used to determine the status is  the  last  command
+              executed  by  the  trap  handler  before r\bre\bet\btu\bur\brn\bn was invoked.  If
+              r\bre\bet\btu\bur\brn\bis 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 _\bn or the exit status  of
+              the  last  command executed within the script as the exit status
+              of the script.  If _\bn is supplied, the return value is its  least
+              significant  8 bits.  The return status is non-zero if r\bre\bet\btu\bur\brn\bn is
+              supplied a non-numeric argument, or is used outside  a  function
+              and  not  during execution of a script by .\b. or s\bso\bou\bur\brc\bce\be.  Any com-
+              mand associated with the R\bRE\bET\bTU\bUR\bRN\bN trap is executed  before  execu-
               tion 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_\b-_\bn_\ba_\bm_\be] [_\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_\b-_\bn_\ba_\bm_\be] [_\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 mode, 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 option processing are treated as  val-
+              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 option processing are treated as val-
               ues 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  following
+              $\b$1\b1,  $\b$2\b2,  .\b..\b..\b.   $\b$_\bn.   Options,  if specified, have the following
               meanings:
               -\b-a\ba      Each variable or function that is created or modified is
-                      given the export attribute and marked for export to  the
+                      given  the export attribute and marked 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 _\bp_\bi_\bp_\be_\bl_\bi_\bn_\be (which may consist of a
-                      single _\bs_\bi_\bm_\bp_\bl_\be _\bc_\bo_\bm_\bm_\ba_\bn_\bd), a _\bl_\bi_\bs_\bt, or  a  _\bc_\bo_\bm_\bp_\bo_\bu_\bn_\b _\bc_\bo_\bm_\bm_\ba_\bn_\bd
+              -\b-e\be      Exit immediately if a _\bp_\bi_\bp_\be_\bl_\bi_\bn_\be (which may consist  of  a
+                      single  _\bs_\bi_\bm_\bp_\bl_\be  _\bc_\bo_\bm_\bm_\ba_\bn_\bd),  a _\bl_\bi_\bs_\bt, or a _\bc_\bo_\bm_\bp_\bo_\bu_\bn_\bd _\bc_\bo_\bm_\bm_\ba_\bn_\bd
                       (see S\bSH\bHE\bEL\bLL\bL G\bGR\bRA\bAM\bMM\bMA\bAR\bR above), exits with a non-zero status.
-                      The shell does not exit if the  command  that  fails  is
-                      part  of  the command list immediately following a w\bwh\bhi\bil\ble\be
-                      or u\bun\bnt\bti\bil\bl keyword, part of the test following the  i\bif\b or
-                      e\bel\bli\bif\b reserved  words, part of any command executed in a
-                      &\b&&\bor |\b||\b| list except the command following the final  &\b&&\b&
+                      The  shell  does  not  exit if the command that fails is
+                      part of the command list immediately following  a  w\bwh\bhi\bil\ble\be
+                      or  u\bun\bnt\bti\bil\bl  keyword, part of the test following the i\bif\bf or
+                      e\bel\bli\bif\breserved words, part of any command executed  in  a
+                      &\b&&\b or |\b||\b| list except the command following the final &\b&&\b&
                       or |\b||\b|, any command in a pipeline but the last, or if the
-                      command's return value is being inverted with !\b!.   If  a
-                      compound  command  other  than a subshell returns a non-
-                      zero status because a command failed while -\b-e\be was  being
-                      ignored,  the  shell  does  not exit.  A trap on E\bER\bRR\bR, if
-                      set, is executed before the shell  exits.   This  option
+                      command's  return  value is being inverted with !\b!.  If a
+                      compound command other than a subshell  returns  a  non-
+                      zero  status because a command failed while -\b-e\be was being
+                      ignored, the shell does not exit.  A  trap  on  E\bER\bRR\bR,  if
+                      set,  is  executed  before the shell exits.  This option
                       applies to the shell environment and each subshell envi-
-                      ronment separately (see  C\bCO\bOM\bMM\bMA\bAN\bND\bD  E\bEX\bXE\bEC\bCU\bUT\bTI\bIO\bON\b E\bEN\bNV\bVI\bIR\bRO\bON\bNM\bME\bEN\bNT\bT
+                      ronment  separately  (see  C\bCO\bOM\bMM\bMA\bAN\bND\bD E\bEX\bXE\bEC\bCU\bUT\bTI\bIO\bON\bN E\bEN\bNV\bVI\bIR\bRO\bON\bNM\bME\bEN\bNT\bT
                       above), and may cause subshells to exit before executing
                       all the commands in the subshell.
 
-                      If a compound command or shell function  executes  in  a
-                      context  where -\b-e\be is being ignored, none of the commands
-                      executed within the compound command  or  function  body
-                      will  be  affected  by the -\b-e\be setting, even if -\b-e\be is set
-                      and a command returns a failure status.  If  a  compound
-                      command  or  shell function sets -\b-e\be while executing in a
-                      context where -\b-e\be is ignored, that setting will not  have
-                      any  effect  until  the  compound command or the command
+                      If  a  compound  command or shell function executes in a
+                      context where -\b-e\be is being ignored, none of the  commands
+                      executed  within  the  compound command or function body
+                      will be affected by the -\b-e\be setting, even if  -\b-e\be  is  set
+                      and  a  command returns a failure status.  If a compound
+                      command or shell function sets -\b-e\be while executing  in  a
+                      context  where -\b-e\be is ignored, that setting will not have
+                      any effect until the compound  command  or  the  command
                       containing the function call completes.
               -\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).  All processes run
+              -\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).  All  processes  run
                       in a separate process group.  When a background job com-
                       pletes, the shell prints a line containing its exit sta-
                       tus.
               -\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:
@@ -5306,10 +5335,10 @@ S\bSH\bHE\bEL\bLL\bL B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS
                               Same as -\b-a\ba.
                       b\bbr\bra\bac\bce\bee\bex\bxp\bpa\ban\bnd\bd
                               Same as -\b-B\bB.
-                      e\bem\bma\bac\bcs\bs   Use an emacs-style command line  editing  inter-
+                      e\bem\bma\bac\bcs\bs   Use  an  emacs-style command line editing inter-
                               face.  This is enabled by default when the shell
                               is interactive, unless the shell is started with
-                              the  -\b--\b-n\bno\boe\bed\bdi\bit\bti\bin\bng\bg  option.  This also affects the
+                              the -\b--\b-n\bno\boe\bed\bdi\bit\bti\bin\bng\bg option.  This also  affects  the
                               editing interface used for r\bre\bea\bad\bd -\b-e\be.
                       e\ber\brr\bre\bex\bxi\bit\bt Same as -\b-e\be.
                       e\ber\brr\brt\btr\bra\bac\bce\be
@@ -5323,8 +5352,8 @@ S\bSH\bHE\bEL\bLL\bL B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS
                               H\bHI\bIS\bST\bTO\bOR\bRY\bY.  This option is on by default in inter-
                               active shells.
                       i\big\bgn\bno\bor\bre\bee\beo\bof\bf
-                              The  effect  is  as   if   the   shell   command
-                              ``IGNOREEOF=10''  had  been  executed (see S\bSh\bhe\bel\bll\bl
+                              The   effect   is   as   if  the  shell  command
+                              ``IGNOREEOF=10'' had been  executed  (see  S\bSh\bhe\bel\bll\bl
                               V\bVa\bar\bri\bia\bab\bbl\ble\bes\bs above).
                       k\bke\bey\byw\bwo\bor\brd\bd Same as -\b-k\bk.
                       m\bmo\bon\bni\bit\bto\bor\br Same as -\b-m\bm.
@@ -5339,384 +5368,384 @@ S\bSH\bHE\bEL\bLL\bL B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS
                       p\bph\bhy\bys\bsi\bic\bca\bal\bl
                               Same as -\b-P\bP.
                       p\bpi\bip\bpe\bef\bfa\bai\bil\bl
-                              If set, the return value of a  pipeline  is  the
-                              value  of  the  last (rightmost) command to exit
-                              with a non-zero status, or zero if all  commands
-                              in  the pipeline exit successfully.  This option
+                              If  set,  the  return value of a pipeline is the
+                              value of the last (rightmost)  command  to  exit
+                              with  a non-zero status, or zero if all commands
+                              in the pipeline exit successfully.  This  option
                               is disabled by default.
-                      p\bpo\bos\bsi\bix\bx   Change the behavior of b\bba\bas\bsh\bh  where  the  default
-                              operation  differs  from  the  POSIX standard to
-                              match the standard (_\bp_\bo_\bs_\bi_\bx _\bm_\bo_\bd_\be).  See  S\bSE\bEE\b A\bAL\bLS\bSO\bO
+                      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).  See S\bSE\bEE\bE A\bAL\bLS\bSO\bO
                               below for a reference to a document that details
                               how posix mode affects bash's behavior.
                       p\bpr\bri\biv\bvi\bil\ble\beg\bge\bed\bd
                               Same as -\b-p\bp.
                       v\bve\ber\brb\bbo\bos\bse\be Same as -\b-v\bv.
-                      v\bvi\bi      Use a vi-style command line  editing  interface.
+                      v\bvi\bi      Use  a  vi-style command line editing interface.
                               This also affects the editing interface used for
                               r\bre\bea\bad\bd -\b-e\be.
                       x\bxt\btr\bra\bac\bce\be  Same as -\b-x\bx.
                       If -\b-o\bo is supplied with no _\bo_\bp_\bt_\bi_\bo_\bn_\b-_\bn_\ba_\bm_\be, the values of the
-                      current  options are printed.  If +\b+o\bo is supplied with no
-                      _\bo_\bp_\bt_\bi_\bo_\bn_\b-_\bn_\ba_\bm_\be, a series of s\bse\bet\bt commands  to  recreate  the
-                      current  option  settings  is  displayed on the standard
+                      current options are printed.  If +\b+o\bo is supplied with  no
+                      _\bo_\bp_\bt_\bi_\bo_\bn_\b-_\bn_\ba_\bm_\be,  a  series  of s\bse\bet\bt commands to recreate the
+                      current option settings is  displayed  on  the  standard
                       output.
-              -\b-p\bp      Turn on _\bp_\br_\bi_\bv_\bi_\bl_\be_\bg_\be_\bd mode.  In this  mode,  the  $\b$E\bEN\bNV\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,
-                      B\bBA\bAS\bSH\bHO\bOP\bPT\bTS\bS,  C\bCD\bDP\bPA\bAT\bTH\bH,  and  G\bGL\bLO\bOB\bBI\bIG\bGN\bNO\bOR\bRE\bE  variables,  if they
+              -\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,
+                      B\bBA\bAS\bSH\bHO\bOP\bPT\bTS\bS, C\bCD\bDP\bPA\bAT\bTH\bH,  and  G\bGL\bLO\bOB\bBI\bIG\bGN\bNO\bOR\bRE\bE  variables,  if  they
                       appear in the environment, are ignored.  If the shell is
-                      started  with the effective user (group) id not equal to
-                      the real user (group) id, and the -\b-p\bp option is not  sup-
+                      started with the effective user (group) id not equal  to
+                      the  real user (group) id, and the -\b-p\bp option is not sup-
                       plied, these actions are taken and the effective user id
-                      is set to the real user id.  If the -\b-p\bp  option  is  sup-
-                      plied  at  startup,  the effective user id is not reset.
-                      Turning this option off causes the  effective  user  and
+                      is  set  to  the real user id.  If the -\b-p\bp option is sup-
+                      plied at startup, the effective user id  is  not  reset.
+                      Turning  this  option  off causes the effective user and
                       group ids to be set to the real user and group ids.
               -\b-t\bt      Exit after reading and executing one command.
               -\b-u\bu      Treat unset variables and parameters other than the spe-
-                      cial parameters "@" and "*" as an error when  performing
-                      parameter  expansion.   If  expansion is attempted on an
-                      unset variable or parameter, the shell prints  an  error
-                      message,  and, if not interactive, exits with a non-zero
+                      cial  parameters "@" and "*" as an error when performing
+                      parameter expansion.  If expansion is  attempted  on  an
+                      unset  variable  or parameter, 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\be E\bEx\bxp\bpa\ban\bns\bsi\bio\bon\bn
+              -\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
                       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 resolve symbolic links when
-                      executing commands such as c\bcd\bd that  change  the  current
+              -\b-P\bP      If set, the shell does not resolve 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\b 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\bG 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\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
+              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
               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 settings controlling optional shell  behav-
-              ior.   The settings can be either those listed below, or, if the
+              Toggle  the values of settings controlling optional shell behav-
+              ior.  The settings can be either those listed below, or, if  the
               -\b-o\bo option is used, those available with the -\b-o\bo option to the s\bse\bet\bt
               builtin command.  With no options, or with the -\b-p\bp option, a list
-              of all settable options is  displayed,  with  an  indication  of
+              of  all  settable  options  is  displayed, with an indication of
               whether or not each is set; if _\bo_\bp_\bt_\bn_\ba_\bm_\be_\bs are supplied, the output
-              is restricted to those options.  The -\b-p\bp option causes output  to
-              be  displayed  in  a  form  that  may be reused as input.  Other
+              is  restricted to those options.  The -\b-p\bp option causes output to
+              be displayed in a form that  may  be  reused  as  input.   Other
               options have the following 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, s\bsh\bho\bop\bpt\bt
-              shows only those options which are set or  unset,  respectively.
-              Unless  otherwise  noted, the s\bsh\bho\bop\bpt\bt options are disabled (unset)
+              If either -\b-s\bs or -\b-u\bu is used  with  no  _\bo_\bp_\bt_\bn_\ba_\bm_\be  arguments,  s\bsh\bho\bop\bpt\bt
+              shows  only  those options which are set or unset, respectively.
+              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\bas\bss\bso\boc\bc_\b_e\bex\bxp\bpa\ban\bnd\bd_\b_o\bon\bnc\bce\be
-                      If  set,  the  shell  suppresses  multiple evaluation of
-                      associative array subscripts during  arithmetic  expres-
-                      sion  evaluation  and  while executing builtins that can
+                      If set, the  shell  suppresses  multiple  evaluation  of
+                      associative  array  subscripts during arithmetic expres-
+                      sion evaluation and while executing  builtins  that  can
                       perform variable assignments.
-              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-
+              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-
                       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 filename 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 filename is printed, and the com-
+                      mand proceeds.  This option is only used by  interactive
                       shells.
               c\bch\bhe\bec\bck\bkh\bha\bas\bsh\bh
                       If set, b\bba\bas\bsh\bh checks that a command found in the hash ta-
-                      ble  exists  before  trying  to execute it.  If a hashed
-                      command no longer exists, a normal path search  is  per-
+                      ble exists before trying to execute  it.   If  a  hashed
+                      command  no  longer exists, a normal path search is per-
                       formed.
               c\bch\bhe\bec\bck\bkj\bjo\bob\bbs\bs
                       If set, b\bba\bas\bsh\bh lists the status of any stopped and running
-                      jobs before exiting an interactive shell.  If  any  jobs
+                      jobs  before  exiting an interactive shell.  If any jobs
                       are running, this causes the exit to be deferred until a
-                      second exit is attempted without an intervening  command
-                      (see  J\bJO\bOB\bB  C\bCO\bON\bNT\bTR\bRO\bOL\bL  above).   The shell always postpones
+                      second  exit is attempted without an intervening command
+                      (see J\bJO\bOB\bB C\bCO\bON\bNT\bTR\bRO\bOL\bL above).   The  shell  always  postpones
                       exiting if any jobs are stopped.
               c\bch\bhe\bec\bck\bkw\bwi\bin\bns\bsi\biz\bze\be
-                      If set, b\bba\bas\bsh\bh checks the window size after each  external
-                      (non-builtin)  command  and,  if  necessary, updates the
+                      If  set, b\bba\bas\bsh\bh checks the window size after each external
+                      (non-builtin) command and,  if  necessary,  updates  the
                       values of L\bLI\bIN\bNE\bES\bS and C\bCO\bOL\bLU\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
-                      easy re-editing of multi-line commands.  This option  is
-                      enabled  by  default,  but only has an effect if command
+              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.  This option is
+                      enabled by default, but only has an  effect  if  command
                       history is enabled, as described above under H\bHI\bIS\bST\bTO\bOR\bRY\bY.
               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 [\b[[\b[ conditional
+                      with respect to quoted arguments to the  [\b[[\b conditional
                       command's =\b=~\b~ operator and locale-specific string compar-
-                      ison  when  using  the  [\b[[\b[ conditional command's <\b< and >\b>
-                      operators.  Bash versions prior to  bash-4.1  use  ASCII
+                      ison when using the [\b[[\b[ conditional  command's  <\b<  and  >\b>
+                      operators.   Bash  versions  prior to bash-4.1 use ASCII
                       collation and _\bs_\bt_\br_\bc_\bm_\bp(3); bash-4.1 and later use the cur-
                       rent locale's collation sequence and _\bs_\bt_\br_\bc_\bo_\bl_\bl(3).
               c\bco\bom\bmp\bpa\bat\bt3\b32\b2
                       If set, b\bba\bas\bsh\bh changes its behavior to that of version 3.2
-                      with  respect  to locale-specific string comparison when
-                      using the [\b[[\b[ conditional command's  <\b<  and  >\b operators
-                      (see  previous  item)  and  the effect of interrupting a
-                      command list.  Bash versions 3.2  and  earlier  continue
-                      with  the  next command in the list after one terminates
+                      with respect to locale-specific string  comparison  when
+                      using  the  [\b[[\b[  conditional  command's <\b< and >\b> operators
+                      (see previous item) and the  effect  of  interrupting  a
+                      command  list.   Bash  versions 3.2 and earlier continue
+                      with the next command in the list after  one  terminates
                       due to an interrupt.
               c\bco\bom\bmp\bpa\bat\bt4\b40\b0
                       If set, b\bba\bas\bsh\bh changes its behavior to that of version 4.0
-                      with  respect  to locale-specific string comparison when
-                      using the [\b[[\b[ conditional command's  <\b<  and  >\b operators
-                      (see  description  of c\bco\bom\bmp\bpa\bat\bt3\b31\b1) and the effect of inter-
-                      rupting a command list.  Bash  versions  4.0  and  later
-                      interrupt  the  list as if the shell received the inter-
-                      rupt; previous versions continue with the  next  command
+                      with respect to locale-specific string  comparison  when
+                      using  the  [\b[[\b[  conditional  command's <\b< and >\b> operators
+                      (see description of c\bco\bom\bmp\bpa\bat\bt3\b31\b1) and the effect  of  inter-
+                      rupting  a  command  list.   Bash versions 4.0 and later
+                      interrupt the list as if the shell received  the  inter-
+                      rupt;  previous  versions continue with the next command
                       in the list.
               c\bco\bom\bmp\bpa\bat\bt4\b41\b1
-                      If  set, b\bba\bas\bsh\bh, when in _\bp_\bo_\bs_\bi_\bx mode, treats a single quote
-                      in a double-quoted  parameter  expansion  as  a  special
-                      character.   The  single quotes must match (an even num-
-                      ber) and the characters between the  single  quotes  are
-                      considered  quoted.   This is the behavior of posix mode
-                      through version 4.1.  The default bash behavior  remains
+                      If set, b\bba\bas\bsh\bh, when in _\bp_\bo_\bs_\bi_\bx _\bm_\bo_\bd_\be, treats a single  quote
+                      in  a  double-quoted  parameter  expansion  as a special
+                      character.  The single quotes must match (an  even  num-
+                      ber)  and  the  characters between the single quotes are
+                      considered quoted.  This is the behavior of  posix  mode
+                      through  version 4.1.  The default bash behavior remains
                       as in previous versions.
               c\bco\bom\bmp\bpa\bat\bt4\b42\b2
-                      If  set, b\bba\bas\bsh\bh does not process the replacement string in
-                      the pattern  substitution  word  expansion  using  quote
+                      If set, b\bba\bas\bsh\bh does not process the replacement string  in
+                      the  pattern  substitution  word  expansion  using quote
                       removal.
               c\bco\bom\bmp\bpa\bat\bt4\b43\b3
-                      If  set,  b\bba\bas\bsh\bh  does  not  print a warning message if an
-                      attempt is made to use a quoted compound  array  assign-
-                      ment  as  an  argument  to d\bde\bec\bcl\bla\bar\bre\be, makes word expansion
-                      errors non-fatal errors that cause the  current  command
-                      to  fail  (the  default  behavior  is to make them fatal
+                      If set, b\bba\bas\bsh\bh does not print  a  warning  message  if  an
+                      attempt  is  made to use a quoted compound array assign-
+                      ment as an argument to  d\bde\bec\bcl\bla\bar\bre\be,  makes  word  expansion
+                      errors  non-fatal  errors that cause the current command
+                      to fail (the default behavior  is  to  make  them  fatal
                       errors that cause the shell to exit), and does not reset
-                      the  loop  state when a shell function is executed (this
-                      allows b\bbr\bre\bea\bak\bk or c\bco\bon\bnt\bti\bin\bnu\bue\be in a shell function  to  affect
+                      the loop state when a shell function is  executed  (this
+                      allows  b\bbr\bre\bea\bak\bk  or c\bco\bon\bnt\bti\bin\bnu\bue\be in a shell function to affect
                       loops in the caller's context).
               c\bco\bom\bmp\bpa\bat\bt4\b44\b4
-                      If   set,   b\bba\bas\bsh\bh  saves  the  positional  parameters  to
+                      If  set,  b\bba\bas\bsh\bh  saves  the  positional   parameters   to
                       BASH_ARGV and BASH_ARGC before they are used, regardless
                       of whether or not extended debugging mode is enabled.
               c\bco\bom\bmp\bpl\ble\bet\bte\be_\b_f\bfu\bul\bll\blq\bqu\buo\bot\bte\be
-                      If  set,  b\bba\bas\bsh\bh  quotes all shell metacharacters in file-
-                      names and directory names  when  performing  completion.
+                      If set, b\bba\bas\bsh\bh quotes all shell  metacharacters  in  file-
+                      names  and  directory  names when performing completion.
                       If not set, b\bba\bas\bsh\bh removes metacharacters such as the dol-
-                      lar sign from the set of characters that will be  quoted
-                      in  completed filenames when these metacharacters appear
-                      in shell variable references in words to  be  completed.
-                      This  means  that  dollar  signs  in variable names that
-                      expand to directories will not be quoted;  however,  any
-                      dollar  signs appearing in filenames will not be quoted,
-                      either.  This is active only when bash  is  using  back-
-                      slashes  to quote completed filenames.  This variable is
-                      set by default, which is the default  bash  behavior  in
+                      lar  sign from the set of characters that will be quoted
+                      in completed filenames when these metacharacters  appear
+                      in  shell  variable references in words to be completed.
+                      This means that dollar  signs  in  variable  names  that
+                      expand  to  directories will not be quoted; however, any
+                      dollar signs appearing in filenames will not be  quoted,
+                      either.   This  is  active only when bash is using back-
+                      slashes to quote completed filenames.  This variable  is
+                      set  by  default,  which is the default bash behavior in
                       versions through 4.2.
               d\bdi\bir\bre\bex\bxp\bpa\ban\bnd\bd
-                      If  set,  b\bba\bas\bsh\bh replaces directory names with the results
-                      of word expansion when performing  filename  completion.
-                      This  changes  the contents of the readline editing buf-
-                      fer.  If not set, b\bba\bas\bsh\bh attempts  to  preserve  what  the
+                      If set, b\bba\bas\bsh\bh replaces directory names with  the  results
+                      of  word  expansion when performing filename completion.
+                      This changes the contents of the readline  editing  buf-
+                      fer.   If  not  set,  b\bba\bas\bsh\bh attempts to preserve what the
                       user typed.
               d\bdi\bir\brs\bsp\bpe\bel\bll\bl
-                      If  set,  b\bba\bas\bsh\bh attempts spelling correction on directory
-                      names during word completion if the directory name  ini-
+                      If set, b\bba\bas\bsh\bh attempts spelling correction  on  directory
+                      names  during word completion if the directory name ini-
                       tially supplied does not exist.
-              d\bdo\bot\btg\bgl\blo\bob\bb If  set, b\bba\bas\bsh\bh includes filenames beginning with a `.' in
-                      the results of pathname expansion.  The filenames  `\b``\b`.\b.'\b''\b'
-                      and  `\b``\b`.\b..\b.'\b''\b'   must always be matched explicitly, even if
+              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.  The filenames `\b``\b`.\b.'\b''\b'
+                      and `\b``\b`.\b..\b.'\b''\b'  must always be matched explicitly,  even  if
                       d\bdo\bot\btg\bgl\blo\bob\bb is set.
               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  at  shell  invocation,  arrange  to execute the
-                      debugger profile before the shell starts,  identical  to
-                      the  -\b--\b-d\bde\beb\bbu\bug\bgg\bge\ber\br option.  If set after invocation, behav-
+                      If set at  shell  invocation,  arrange  to  execute  the
+                      debugger  profile  before the shell starts, identical to
+                      the -\b--\b-d\bde\beb\bbu\bug\bgg\bge\ber\br option.  If set after invocation,  behav-
                       ior 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), the shell
+                      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),  the  shell
                              simulates a call to r\bre\bet\btu\bur\brn\bn.
-                      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\bR trap.
               e\bex\bxt\btg\bgl\blo\bob\bb If set, the extended pattern matching features described
                       above under P\bPa\bat\bth\bhn\bna\bam\bme\be E\bEx\bxp\bpa\ban\bns\bsi\bio\bon\bn are enabled.
               e\bex\bxt\btq\bqu\buo\bot\bte\be
-                      If set, $\b$'_\bs_\bt_\br_\bi_\bn_\bg' and  $\b$"_\bs_\bt_\br_\bi_\bn_\bg"  quoting  is  performed
-                      within   $\b${\b{_\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br}\b}   expansions  enclosed  in  double
+                      If  set,  $\b$'_\bs_\bt_\br_\bi_\bn_\bg'  and  $\b$"_\bs_\bt_\br_\bi_\bn_\bg" quoting is performed
+                      within  $\b${\b{_\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br}\b}  expansions  enclosed   in   double
                       quotes.  This option is enabled by default.
               f\bfa\bai\bil\blg\bgl\blo\bob\bb
-                      If set, patterns which fail to  match  filenames  during
+                      If  set,  patterns  which fail to match filenames during
                       pathname expansion result in an expansion error.
               f\bfo\bor\brc\bce\be_\b_f\bfi\big\bgn\bno\bor\bre\be
-                      If  set,  the  suffixes  specified  by the F\bFI\bIG\bGN\bNO\bOR\bRE\bE shell
-                      variable cause words to be ignored when performing  word
+                      If set, the suffixes  specified  by  the  F\bFI\bIG\bGN\bNO\bOR\bRE\b shell
+                      variable  cause words to be ignored when performing word
                       completion even if the ignored words are the only possi-
                       ble  completions.   See  S\bSH\bHE\bEL\bLL\bL  V\bVA\bAR\bRI\bIA\bAB\bBL\bLE\bES\bS  above  for  a
-                      description  of  F\bFI\bIG\bGN\bNO\bOR\bRE\bE.   This  option  is  enabled by
+                      description of  F\bFI\bIG\bGN\bNO\bOR\bRE\bE.   This  option  is  enabled  by
                       default.
               g\bgl\blo\bob\bba\bas\bsc\bci\bii\bir\bra\ban\bng\bge\bes\bs
-                      If set,  range  expressions  used  in  pattern  matching
-                      bracket  expressions (see P\bPa\bat\btt\bte\ber\brn\bn M\bMa\bat\btc\bch\bhi\bin\bng\bg above) behave
-                      as if in the traditional C locale when  performing  com-
+                      If  set,  range  expressions  used  in  pattern matching
+                      bracket expressions (see P\bPa\bat\btt\bte\ber\brn\bn M\bMa\bat\btc\bch\bhi\bin\bng\bg above)  behave
+                      as  if  in the traditional C locale when performing com-
                       parisons.   That  is,  the  current  locale's  collating
-                      sequence is not taken into account, so b\bb will  not  col-
-                      late  between  A\bA  and  B\bB,  and upper-case and lower-case
+                      sequence  is  not taken into account, so b\bb will not col-
+                      late between A\bA and  B\bB,  and  upper-case  and  lower-case
                       ASCII characters will collate together.
               g\bgl\blo\bob\bbs\bst\bta\bar\br
                       If set, the pattern *\b**\b* used in a pathname expansion con-
-                      text  will  match all files and zero or more directories
-                      and subdirectories.  If the pattern is followed by a  /\b/,
+                      text will match all files and zero or  more  directories
+                      and  subdirectories.  If the pattern is followed by a /\b/,
                       only directories and subdirectories match.
               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\bnh\bhe\ber\bri\bit\bt_\b_e\ber\brr\bre\bex\bxi\bit\bt
-                      If  set,  command substitution inherits the value of the
-                      e\ber\brr\bre\bex\bxi\bit\boption, instead of unsetting it in the  subshell
-                      environment.   This option is enabled when _\bp_\bo_\bs_\bi_\bx _\bm_\bo_\bd_\be is
+                      If set, command substitution inherits the value  of  the
+                      e\ber\brr\bre\bex\bxi\bit\b option, instead of unsetting it in the subshell
+                      environment.  This option is enabled when _\bp_\bo_\bs_\bi_\bx _\bm_\bo_\bd_\b is
                       enabled.
               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\bla\bas\bst\btp\bpi\bip\bpe\be
-                      If  set,  and  job control is not active, the shell runs
+                      If set, and job control is not active,  the  shell  runs
                       the last command of a pipeline not executed in the back-
                       ground in the current shell environment.
-              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\boc\bca\bal\blv\bva\bar\br_\b_i\bin\bnh\bhe\ber\bri\bit\bt
                       If set, local variables inherit the value and attributes
                       of a variable of the same name that exists at a previous
-                      scope  before  any  new  value is assigned.  The nameref
+                      scope before any new value  is  assigned.   The  nameref
                       attribute is not inherited.
               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, when performing pattern substi-
-                      tution word expansions, or when filtering possible  com-
+                      tution  word expansions, or when filtering possible com-
                       pletions as part of programmable completion.
               n\bnu\bul\bll\blg\bgl\blo\bob\bb
-                      If  set,  b\bba\bas\bsh\bh allows patterns which match no files (see
-                      P\bPa\bat\bth\bhn\bna\bam\bme\bE\bEx\bxp\bpa\ban\bns\bsi\bio\bon\bn above) to expand to  a  null  string,
+                      If set, b\bba\bas\bsh\bh allows patterns which match no  files  (see
+                      P\bPa\bat\bth\bhn\bna\bam\bme\b E\bEx\bxp\bpa\ban\bns\bsi\bio\bon\bn  above)  to expand to a null string,
                       rather than themselves.
               p\bpr\bro\bog\bgc\bco\bom\bmp\bp
                       If set, the programmable completion facilities (see P\bPr\bro\bo-\b-
@@ -5724,50 +5753,50 @@ S\bSH\bHE\bEL\bLL\bL B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS
                       enabled by default.
               p\bpr\bro\bom\bmp\bpt\btv\bva\bar\brs\bs
                       If set, prompt strings undergo parameter expansion, com-
-                      mand  substitution,  arithmetic  expansion,  and   quote
-                      removal  after  being expanded as described in P\bPR\bRO\bOM\bMP\bPT\bTI\bIN\bNG\bG
+                      mand   substitution,  arithmetic  expansion,  and  quote
+                      removal after being expanded as described  in  P\bPR\bRO\bOM\bMP\bPT\bTI\bIN\bNG\bG
                       above.  This option is enabled by default.
               r\bre\bes\bst\btr\bri\bic\bct\bte\bed\bd_\b_s\bsh\bhe\bel\bll\bl
-                      The  shell  sets  this  option  if  it  is  started   in
+                      The   shell  sets  this  option  if  it  is  started  in
                       restricted mode (see R\bRE\bES\bST\bTR\bRI\bIC\bCT\bTE\bED\bD S\bSH\bHE\bEL\bLL\bL below).  The value
-                      may not be changed.  This is not reset when the  startup
-                      files  are  executed, allowing the startup files to dis-
+                      may  not be changed.  This is not reset when the startup
+                      files are executed, allowing the startup files  to  dis-
                       cover whether or not a shell is restricted.
               s\bsh\bhi\bif\bft\bt_\b_v\bve\ber\brb\bbo\bos\bse\be
-                      If set, the s\bsh\bhi\bif\bft\bt builtin prints an error  message  when
+                      If  set,  the s\bsh\bhi\bif\bft\bt builtin prints an error message when
                       the shift count exceeds the number of positional parame-
                       ters.
               s\bso\bou\bur\brc\bce\bep\bpa\bat\bth\bh
                       If set, the s\bso\bou\bur\brc\bce\be (.\b.) builtin uses the value of P\bPA\bAT\bTH\bH to
-                      find  the  directory  containing the file supplied as an
+                      find the directory containing the file  supplied  as  an
                       argument.  This option is enabled by default.
               x\bxp\bpg\bg_\b_e\bec\bch\bho\bo
-                      If  set,  the  e\bec\bch\bho\bo  builtin  expands   backslash-escape
+                      If   set,  the  e\bec\bch\bho\bo  builtin  expands  backslash-escape
                       sequences by default.
 
        s\bsu\bus\bsp\bpe\ben\bnd\bd [-\b-f\bf]
-              Suspend  the execution of this shell until it receives a S\bSI\bIG\bGC\bCO\bON\bNT\bT
+              Suspend the execution of this shell until it receives a  S\bSI\bIG\bGC\bCO\bON\bNT\bT
               signal.  A login shell cannot be suspended; the -\b-f\bf option can be
               used to override this and force the suspension.  The return sta-
-              tus is 0 unless the shell is a login shell and -\b-f\bf  is  not  sup-
+              tus  is  0  unless the shell is a login shell and -\b-f\bf is not sup-
               plied, or if job control is not enabled.
 
        t\bte\bes\bst\bt _\be_\bx_\bp_\br
        [\b[ _\be_\bx_\bp_\br ]\b]
               Return a status of 0 (true) or 1 (false) depending on the evalu-
               ation of the conditional expression _\be_\bx_\bp_\br.  Each operator and op-
-              erand  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\b E\bEX\bXP\bPR\bRE\bES\bSS\bSI\bIO\bON\bNS\bS.
-              t\bte\bes\bst\b does not accept any options, nor does it accept and ignore
+              erand 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\bdoes 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.  Operator  prece-
+              depends  on the number of arguments; see below.  Operator prece-
               dence is used when there are five or more arguments.
               !\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.
@@ -5784,120 +5813,120 @@ S\bSH\bHE\bEL\bLL\bL B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS
                      null.
               2 arguments
                      If the first argument is !\b!, the expression is true if and
-                     only  if the second argument is null.  If the first argu-
-                     ment is one of the  unary  conditional  operators  listed
-                     above  under  C\bCO\bON\bND\bDI\bIT\bTI\bIO\bON\bNA\bAL\bL  E\bEX\bXP\bPR\bRE\bES\bSS\bSI\bIO\bON\bNS\bS, the expression is
+                     only if the second argument is null.  If the first  argu-
+                     ment  is  one  of  the unary conditional operators listed
+                     above under C\bCO\bON\bND\bDI\bIT\bTI\bIO\bON\bNA\bAL\bL E\bEX\bXP\bPR\bRE\bES\bSS\bSI\bIO\bON\bNS\bS,  the  expression  is
                      true if the unary test is true.  If the first argument is
                      not a valid unary conditional operator, the expression is
                      false.
               3 arguments
                      The following conditions are applied in the order listed.
-                     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.
 
-              When used with t\bte\bes\bst\bt or [\b[, the <\b< and  >\b>  operators  sort  lexico-
+              When  used  with  t\bte\bes\bst\bt  or [\b[, the <\b< and >\b> operators sort lexico-
               graphically using ASCII ordering.
 
-       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
+              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 S\bSI\bIG\bG 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  exe-
-              cuted  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_\bcommand, 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
+              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 exe-
+              cuted before every _\bs_\bi_\bm_\bp_\bl_\be _\bc_\bo_\bm_\bm_\ba_\bn_\bd, _\bf_\bo_\br  command,  _\bc_\ba_\bs_\b command,
+              _\bs_\be_\bl_\be_\bc_\b command,  every  arithmetic  _\bf_\bo_\br command, and before the
+              first command executes in a shell function  (see  S\bSH\bHE\bEL\bLL\b 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 R\bRE\bET\bTU\bUR\bRN\bN, the command _\ba_\br_\bg is executed each time a shell
               function or a script executed with the .\b. or s\bso\bou\bur\brc\bce\be builtins fin-
               ishes executing.
 
-              If a _\bs_\bi_\bg_\bs_\bp_\be_\bc is E\bER\bRR\bR, the command  _\ba_\br_\bg  is  executed  whenever  a
+              If  a  _\bs_\bi_\bg_\bs_\bp_\be_\bc  is  E\bER\bRR\bR,  the command _\ba_\br_\bg is executed whenever a
               pipeline (which may consist of a single simple command), a list,
               or a compound command returns a non-zero exit status, subject to
-              the  following  conditions.  The E\bER\bRR\bR trap is not executed if the
+              the following conditions.  The E\bER\bRR\bR 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\bl keyword, part of the test in an _\bi_\bf statement,
+              a w\bwh\bhi\bil\ble\be or u\bun\bnt\bti\bil\bl keyword, part of the test in an  _\bi_\b statement,
               part of a command executed in a &\b&&\b& or |\b||\b| list except the command
-              following  the final &\b&&\b& or |\b||\b|, any command in a pipeline but the
-              last, or if the command's return value is being  inverted  using
-              !\b!.   These  are  the  same conditions obeyed by the e\ber\brr\bre\bex\bxi\bit\bt (-\b-e\be)
+              following the final &\b&&\b& or |\b||\b|, any command in a pipeline but  the
+              last,  or  if the command's return value is being inverted using
+              !\b!.  These are the same conditions obeyed  by  the  e\ber\brr\bre\bex\bxi\bit\b (-\b-e\be)
               option.
 
-              Signals ignored upon entry to the shell  cannot  be  trapped  or
-              reset.   Trapped signals that are not being ignored are reset to
+              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 subshell or subshell environment when
-              one  is  created.   The return status is false if any _\bs_\bi_\bg_\bs_\bp_\be_\bc is
+              one is created.  The return status is false if  any  _\bs_\bi_\bg_\bs_\bp_\be_\b 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, which is not necessar-
-              ily 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
+              ily  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
+              not  consulted  when  using  -\b-a\ba.  The -\b-f\bf option suppresses shell
               function lookup, as with the c\bco\bom\bmm\bma\ban\bnd\bd builtin.  t\bty\byp\bpe\be returns true
               if all of the arguments are found, false if any are not found.
 
        u\bul\bli\bim\bmi\bit\bt [-\b-H\bHS\bSa\bab\bbc\bcd\bde\bef\bfi\bik\bkl\blm\bmn\bnp\bpq\bqr\brs\bst\btu\buv\bvx\bxP\bPT\bT [_\bl_\bi_\bm_\bi_\bt]]
-              Provides control over the resources available to the  shell  and
-              to  processes started by it, on systems that allow such control.
+              Provides  control  over the resources available to the shell and
+              to processes started by it, on systems that allow such  control.
               The -\b-H\bH and -\b-S\bS options specify that the hard or soft limit is set
-              for  the  given resource.  A hard limit cannot be increased by a
-              non-root user once it is set; a soft limit may be  increased  up
-              to  the value of the hard limit.  If neither -\b-H\bH nor -\b-S\bS is speci-
+              for the given resource.  A hard limit cannot be increased  by  a
+              non-root  user  once it is set; a soft limit may be increased up
+              to the value of the hard limit.  If neither -\b-H\bH nor -\b-S\bS is  speci-
               fied, both the soft and hard limits are set.  The value of _\bl_\bi_\bm_\bi_\bt
               can be a number in the unit specified for the resource or one of
               the special values h\bha\bar\brd\bd, s\bso\bof\bft\bt, or u\bun\bnl\bli\bim\bmi\bit\bte\bed\bd, which stand for the
-              current  hard  limit,  the  current  soft  limit,  and no limit,
-              respectively.  If _\bl_\bi_\bm_\bi_\bt is omitted, the  current  value  of  the
-              soft  limit  of the resource is printed, unless the -\b-H\bH option is
+              current hard limit,  the  current  soft  limit,  and  no  limit,
+              respectively.   If  _\bl_\bi_\bm_\bi_\bt  is  omitted, the current value of the
+              soft limit of the resource is printed, unless the -\b-H\bH  option  is
               given.  When more than one resource is specified, the limit name
               and unit are printed before the value.  Other options are inter-
               preted as follows:
@@ -5906,12 +5935,12 @@ S\bSH\bHE\bEL\bLL\bL B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS
               -\b-c\bc     The maximum size of core files created
               -\b-d\bd     The maximum size of a process's data segment
               -\b-e\be     The maximum scheduling priority ("nice")
-              -\b-f\bf     The maximum size of files written by the  shell  and  its
+              -\b-f\bf     The  maximum  size  of files written by the shell and its
                      children
               -\b-i\bi     The maximum number of pending signals
               -\b-k\bk     The maximum number of kqueues that may be allocated
               -\b-l\bl     The maximum size that may be locked into memory
-              -\b-m\bm     The  maximum resident set size (many systems do not honor
+              -\b-m\bm     The maximum resident set size (many systems do not  honor
                      this limit)
               -\b-n\bn     The maximum number of open file descriptors (most systems
                      do not allow this value to be set)
@@ -5920,53 +5949,53 @@ 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     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 and, on some systems, to its children
               -\b-x\bx     The maximum number of file locks
               -\b-P\bP     The maximum number of pseudoterminals
               -\b-T\bT     The maximum number of threads
 
-              If  _\bl_\bi_\bm_\bi_\bt  is given, and the -\b-a\ba option is not used, _\bl_\bi_\bm_\bi_\bt is the
-              new value of the specified resource.  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;  -\b-P\bP,  -\b-T\bT, -\b-b\bb, -\b-k\bk, -\b-n\bn, and -\b-u\bu, which are unscaled values;
-              and, when in Posix mode, -\b-c\bc and -\b-f\bf, which are in 512-byte incre-
+              If _\bl_\bi_\bm_\bi_\bt is given, and the -\b-a\ba option is not used, _\bl_\bi_\bm_\bi_\bt  is  the
+              new  value  of  the  specified resource.  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; -\b-P\bP, -\b-T\bT, -\b-b\bb, -\b-k\bk, -\b-n\bn, and -\b-u\bu, which are  unscaled  values;
+              and, when in posix mode, -\b-c\bc and -\b-f\bf, which are in 512-byte incre-
               ments.  The return status is 0 unless an invalid option or argu-
               ment 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] [-n\bn] [_\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 the -\b-v\bv option is given, each _\bn_\ba_\bm_\be refers to a shell variable,
-              and  that  variable  is removed.  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.  If the -\b-n\bn option
-              is supplied, and _\bn_\ba_\bm_\be is a variable with the _\bn_\ba_\bm_\be_\br_\be_\b attribute,
-              _\bn_\ba_\bm_\b will  be unset rather than the variable it references.  -\b-n\bn
-              has no effect if the -\b-f\bf option is supplied.  If no  options  are
-              supplied,  each  _\bn_\ba_\bm_\be refers to a variable; if there is no vari-
-              able by that name, any function with that name is  unset.   Each
-              unset  variable  or  function  is  removed  from the environment
-              passed to subsequent commands.  If any of C\bCO\bOM\bMP\bP_\b_W\bWO\bOR\bRD\bDB\bBR\bRE\bEA\bAK\bKS\bS,  R\bRA\bAN\bN-\b-
+              and that variable is removed.  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.  If the -\b-n\b option
+              is  supplied, and _\bn_\ba_\bm_\be is a variable with the _\bn_\ba_\bm_\be_\br_\be_\bf attribute,
+              _\bn_\ba_\bm_\bwill be unset rather than the variable it  references.   -\b-n\bn
+              has  no  effect if the -\b-f\bf option is supplied.  If no options are
+              supplied, each _\bn_\ba_\bm_\be refers to a variable; if there is  no  vari-
+              able  by  that name, any function with that name is unset.  Each
+              unset variable or  function  is  removed  from  the  environment
+              passed  to subsequent commands.  If any of C\bCO\bOM\bMP\bP_\b_W\bWO\bOR\bRD\bDB\bBR\bRE\bEA\bAK\bKS\bS, R\bRA\bAN\bN-\b-
               D\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 sub-
               sequently reset.  The exit status is true unless a _\bn_\ba_\bm_\be is read-
@@ -5974,23 +6003,23 @@ S\bSH\bHE\bEL\bLL\bL B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS
 
        w\bwa\bai\bit\bt [-\b-f\bfn\bn] [_\bi_\bd _\b._\b._\b.]
               Wait for each specified child process and return its termination
-              status.   Each _\bi_\bd may be a process ID or a job specification; if
-              a job spec is given, all processes in that  job's  pipeline  are
+              status.  Each _\bi_\bd 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 _\bi_\bd is not given, all currently active child pro-
               cesses are waited for, and the return status is zero.  If the -\b-n\bn
-              option  is  supplied,  w\bwa\bai\bit\bt  waits  for any job to terminate and
-              returns its exit status.  If the -\b-f\bf option is supplied, and  job
+              option is supplied, w\bwa\bai\bit\bt waits for  any  job  to  terminate  and
+              returns  its exit status.  If the -\b-f\bf option is supplied, and job
               control is enabled, w\bwa\bai\bit\bt forces _\bi_\bd to terminate before returning
-              its status, instead of returning when it changes status.  If  _\bi_\bd
-              specifies  a  non-existent  process or job, the return status is
-              127.  Otherwise, the return status is the  exit  status  of  the
+              its  status, instead of returning when it changes status.  If _\bi_\bd
+              specifies a non-existent process or job, the  return  status  is
+              127.   Otherwise,  the  return  status is the exit status of the
               last process or job waited for.
 
 R\bRE\bES\bST\bTR\bRI\bIC\bCT\bTE\bED\bD S\bSH\bHE\bEL\bLL\bL
        If b\bba\bas\bsh\bh is started with the name r\brb\bba\bas\bsh\bh, or the -\b-r\br option is supplied at
-       invocation, the shell becomes restricted.  A restricted shell  is  used
-       to  set  up an environment more controlled than the standard shell.  It
-       behaves identically to b\bba\bas\bsh\bh with the exception that the  following  are
+       invocation,  the  shell becomes restricted.  A restricted shell is used
+       to set up an environment more controlled than the standard  shell.   It
+       behaves  identically  to b\bba\bas\bsh\bh with the exception that the following are
        disallowed or not performed:
 
        +\bo      changing directories with c\bcd\bd
@@ -5999,16 +6028,16 @@ R\bRE\bES\bST\bTR\bRI\bIC\bCT\bTE\bED\bD S\bSH\bHE\bEL\bLL\bL
 
        +\bo      specifying command names containing /\b/
 
-       +\bo      specifying  a  filename  containing  a /\b/ as an argument to the .\b.
+       +\bo      specifying a filename containing a /\b/ as an  argument  to  the  .\b.
               builtin command
 
-       +\bo      specifying a filename containing a slash as an argument  to  the
+       +\bo      specifying  a  filename containing a slash as an argument to the
               -\b-p\bp option to the h\bha\bas\bsh\bh builtin command
 
-       +\bo      importing  function  definitions  from  the shell environment at
+       +\bo      importing function definitions from  the  shell  environment  at
               startup
 
-       +\bo      parsing the value of S\bSH\bHE\bEL\bLL\bLO\bOP\bPT\bTS\bS from  the  shell  environment  at
+       +\bo      parsing  the  value  of  S\bSH\bHE\bEL\bLL\bLO\bOP\bPT\bTS\bS from the shell environment at
               startup
 
        +\bo      redirecting output using the >, >|, <>, >&, &>, and >> redirect-
@@ -6017,10 +6046,10 @@ R\bRE\bES\bST\bTR\bRI\bIC\bCT\bTE\bED\bD S\bSH\bHE\bEL\bLL\bL
        +\bo      using the e\bex\bxe\bec\bc builtin command to replace the shell with another
               command
 
-       +\bo      adding  or  deleting builtin commands with the -\b-f\bf and -\b-d\bd options
+       +\bo      adding or deleting builtin commands with the -\b-f\bf and  -\b-d\b options
               to the e\ben\bna\bab\bbl\ble\be builtin command
 
-       +\bo      using the  e\ben\bna\bab\bbl\ble\be  builtin  command  to  enable  disabled  shell
+       +\bo      using  the  e\ben\bna\bab\bbl\ble\be  builtin  command  to  enable  disabled shell
               builtins
 
        +\bo      specifying the -\b-p\bp option to the c\bco\bom\bmm\bma\ban\bnd\bd builtin command
@@ -6030,14 +6059,14 @@ R\bRE\bES\bST\bTR\bRI\bIC\bCT\bTE\bED\bD S\bSH\bHE\bEL\bLL\bL
        These restrictions are enforced after any startup files are read.
 
        When a command that is found to be a shell script is executed (see C\bCO\bOM\bM-\b-
-       M\bMA\bAN\bND\bE\bEX\bXE\bEC\bCU\bUT\bTI\bIO\bON\bN above), r\brb\bba\bas\bsh\bh turns off any restrictions  in  the  shell
+       M\bMA\bAN\bND\b E\bEX\bXE\bEC\bCU\bUT\bTI\bIO\bON\bN  above),  r\brb\bba\bas\bsh\bh turns off any restrictions in the shell
        spawned to execute the script.
 
 S\bSE\bEE\bE A\bAL\bLS\bSO\bO
        _\bB_\ba_\bs_\bh _\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be _\bM_\ba_\bn_\bu_\ba_\bl, Brian Fox and Chet Ramey
        _\bT_\bh_\be _\bG_\bn_\bu _\bR_\be_\ba_\bd_\bl_\bi_\bn_\be _\bL_\bi_\bb_\br_\ba_\br_\by, Brian Fox and Chet Ramey
        _\bT_\bh_\be _\bG_\bn_\bu _\bH_\bi_\bs_\bt_\bo_\br_\by _\bL_\bi_\bb_\br_\ba_\br_\by, Brian Fox and Chet Ramey
-       _\bP_\bo_\br_\bt_\ba_\bb_\bl_\b _\bO_\bp_\be_\br_\ba_\bt_\bi_\bn_\bg  _\bS_\by_\bs_\bt_\be_\bm  _\bI_\bn_\bt_\be_\br_\bf_\ba_\bc_\be _\b(_\bP_\bO_\bS_\bI_\bX_\b) _\bP_\ba_\br_\bt _\b2_\b: _\bS_\bh_\be_\bl_\bl _\ba_\bn_\bd _\bU_\bt_\bi_\bl_\bi_\b-
+       _\bP_\bo_\br_\bt_\ba_\bb_\bl_\b_\bO_\bp_\be_\br_\ba_\bt_\bi_\bn_\bg _\bS_\by_\bs_\bt_\be_\bm _\bI_\bn_\bt_\be_\br_\bf_\ba_\bc_\be _\b(_\bP_\bO_\bS_\bI_\bX_\b) _\bP_\ba_\br_\bt _\b2_\b:  _\bS_\bh_\be_\bl_\bl  _\ba_\bn_\b _\bU_\bt_\bi_\bl_\bi_\b-
        _\bt_\bi_\be_\bs, IEEE --
               http://pubs.opengroup.org/onlinepubs/9699919799/
        http://tiswww.case.edu/~chet/bash/POSIX -- a description of posix mode
@@ -6055,7 +6084,7 @@ F\bFI\bIL\bLE\bES\bS
        _\b~_\b/_\b._\bb_\ba_\bs_\bh_\br_\bc
               The individual per-interactive-shell startup file
        _\b~_\b/_\b._\bb_\ba_\bs_\bh_\b__\bl_\bo_\bg_\bo_\bu_\bt
-              The individual login shell cleanup file, executed when  a  login
+              The  individual  login shell cleanup file, executed when a login
               shell exits
        _\b~_\b/_\b._\bi_\bn_\bp_\bu_\bt_\br_\bc
               Individual _\br_\be_\ba_\bd_\bl_\bi_\bn_\be initialization file
@@ -6069,14 +6098,14 @@ A\bAU\bUT\bTH\bHO\bOR\bRS\bS
 
 B\bBU\bUG\bG R\bRE\bEP\bPO\bOR\bRT\bTS\bS
        If you find a bug in b\bba\bas\bsh\bh,\b, you should report it.  But first, you should
-       make sure that it really is a bug, and that it appears  in  the  latest
-       version   of  b\bba\bas\bsh\bh.   The  latest  version  is  always  available  from
+       make  sure  that  it really is a bug, and that it appears in the latest
+       version  of  b\bba\bas\bsh\bh.   The  latest  version  is  always  available   from
        _\bf_\bt_\bp_\b:_\b/_\b/_\bf_\bt_\bp_\b._\bg_\bn_\bu_\b._\bo_\br_\bg_\b/_\bp_\bu_\bb_\b/_\bg_\bn_\bu_\b/_\bb_\ba_\bs_\bh_\b/.
 
-       Once you have determined that a bug actually exists,  use  the  _\bb_\ba_\bs_\bh_\bb_\bu_\bg
-       command  to submit a bug report.  If you have a fix, you are encouraged
-       to mail that as well!  Suggestions and `philosophical' bug reports  may
-       be  mailed  to  _\bb_\bu_\bg_\b-_\bb_\ba_\bs_\bh_\b@_\bg_\bn_\bu_\b._\bo_\br_\bg  or  posted  to  the  Usenet newsgroup
+       Once  you  have  determined that a bug actually exists, use the _\bb_\ba_\bs_\bh_\bb_\bu_\bg
+       command to submit a bug report.  If you have a fix, you are  encouraged
+       to  mail that as well!  Suggestions and `philosophical' bug reports may
+       be mailed  to  _\bb_\bu_\bg_\b-_\bb_\ba_\bs_\bh_\b@_\bg_\bn_\bu_\b._\bo_\br_\bg  or  posted  to  the  Usenet  newsgroup
        g\bgn\bnu\bu.\b.b\bba\bas\bsh\bh.\b.b\bbu\bug\bg.
 
        ALL bug reports should include:
@@ -6087,7 +6116,7 @@ B\bBU\bUG\bG R\bRE\bEP\bPO\bOR\bRT\bTS\bS
        A description of the bug behaviour
        A short script or `recipe' which exercises the bug
 
-       _\bb_\ba_\bs_\bh_\bb_\bu_\binserts the first three items automatically into  the  template
+       _\bb_\ba_\bs_\bh_\bb_\bu_\b inserts  the first three items automatically into the template
        it provides for filing a bug report.
 
        Comments and bug reports concerning this manual page should be directed
@@ -6104,10 +6133,10 @@ B\bBU\bUG\bGS\bS
        Shell builtin commands and functions are not stoppable/restartable.
 
        Compound commands and command sequences of the form `a ; b ; c' are not
-       handled gracefully  when  process  suspension  is  attempted.   When  a
-       process  is stopped, the shell immediately executes the next command in
-       the sequence.  It suffices to place the sequence  of  commands  between
-       parentheses  to  force  it  into  a subshell, which may be stopped as a
+       handled  gracefully  when  process  suspension  is  attempted.   When a
+       process is stopped, the shell immediately executes the next command  in
+       the  sequence.   It  suffices to place the sequence of commands between
+       parentheses to force it into a subshell, which  may  be  stopped  as  a
        unit.
 
        Array variables may not (yet) be exported.
@@ -6116,4 +6145,4 @@ B\bBU\bUG\bGS\bS
 
 
 
-GNU Bash 5.0                     2018 March 15                         BASH(1)
+GNU Bash 5.0                     2018 August 7                         BASH(1)
index cf712fe34bb688f7c4b831cac11b451b9025e3c7..9561ed87a855fea6ca3e7e78ec547ae193e5a172 100644 (file)
@@ -5,12 +5,12 @@
 .\"    Case Western Reserve University
 .\"    chet.ramey@case.edu
 .\"
-.\"    Last Change: Thu Mar 15 11:30:03 EDT 2018
+.\"    Last Change: Tue Aug  7 12:01:07 EDT 2018
 .\"
 .\" bash_builtins, strip all but Built-Ins section
 .if \n(zZ=1 .ig zZ
 .if \n(zY=1 .ig zY
-.TH BASH 1 "2018 March 15" "GNU Bash 5.0"
+.TH BASH 1 "2018 August 7" "GNU Bash 5.0"
 .\"
 .\" There's some problem with having a `@'
 .\" in a tagged paragraph with the BSD man macros.
@@ -739,7 +739,7 @@ to be matched as a string.
 An additional binary operator, \fB=~\fP, is available, with the same
 precedence as \fB==\fP and \fB!=\fP.
 When it is used, the string to the right of the operator is considered
-an extended regular expression and matched accordingly (as in \fIregex\fP(3)).
+a POSIX extended regular expression and matched accordingly (as in \fIregex\fP(3)).
 The return value is 0 if the string matches
 the pattern, and 1 otherwise.
 If the regular expression is syntactically incorrect, the conditional
@@ -1357,7 +1357,14 @@ If
 is null, the parameters are joined without intervening separators.
 .TP
 .B @
-Expands to the positional parameters, starting from one.  When the
+Expands to the positional parameters, starting from one.
+In contexts where word splitting is performed, this expands each
+positional parameter to a separate word; if not within double
+quotes, these words are subject to word splitting.
+In contexts where word splitting is not performed,
+this expands to a single word
+with each positional parameter separated by a space.
+When the
 expansion occurs within double quotes, each parameter expands to a
 separate word.  That is, "\fB$@\fP" is equivalent to
 "\fB$1\fP" "\fB$2\fP" ...
@@ -1499,7 +1506,8 @@ only when in extended debugging mode (see the description of the
 option to the
 .B shopt
 builtin below).
-Setting \fBextdebug\fP after the shell has started to execute a script
+Setting \fBextdebug\fP after the shell has started to execute a script,
+or referencing this variable when \fBextdebug\fP is not set,
 may result in inconsistent values.
 .TP
 .B BASH_ARGV
@@ -1519,7 +1527,8 @@ only when in extended debugging mode
 option to the
 .B shopt
 builtin below).
-Setting \fBextdebug\fP after the shell has started to execute a script
+Setting \fBextdebug\fP after the shell has started to execute a script,
+or referencing this variable when \fBextdebug\fP is not set,
 may result in inconsistent values.
 .TP
 .B BASH_ARGV0
@@ -2072,7 +2081,7 @@ line editing.
 Similar to
 .SM
 .BR BASH_ENV ;
-used when the shell is invoked in POSIX mode.
+used when the shell is invoked in \fIposix mode\fP.
 .TP
 .B EXECIGNORE
 A colon-separated list of shell patterns (see \fBPattern Matching\fP)
@@ -2277,6 +2286,11 @@ startup file, overriding the default of
 .B READLINE
 below).
 .TP
+.B INSIDE_EMACS
+If this variable appears in the environment when the shell starts,
+\fBbash\fP assumes that it is running inside an Emacs shell buffer
+and may disable line editing, depending on the value of \fBTERM\fP.
+.TP
 .B LANG
 Used to determine the locale category for any category not specifically
 selected with a variable starting with \fBLC_\fP.
@@ -2400,6 +2414,8 @@ running, \fBbash\fP enables \fIposix mode\fP, as if the command
 .if t \f(CWset -o posix\fP
 .if n \fIset -o posix\fP
 had been executed.
+When the shell enters \fIposix mode\fP, it sets this variable if it was
+not already set.
 .TP
 .B PROMPT_COMMAND
 If set, the value is executed as a command prior to issuing each primary
@@ -2914,6 +2930,14 @@ and
 .SM
 .BR CDPATH ,
 and the shell assigns the expanded value.
+.PP
+Bash also performs tilde expansion on words satisfying the conditions of
+variable assignments (as described above under
+.SM
+.BR PARAMETERS )
+when they appear as arguments to simple commands.
+Bash does not do this, except for the \fIdeclaration\fP commands listed
+above, when in \fIposix mode\fP.
 .SS Parameter Expansion
 .PP
 The `\fB$\fP' character introduces parameter expansion,
@@ -2945,16 +2969,16 @@ The \fIparameter\fP is a shell parameter as described above
 .PP
 If the first character of \fIparameter\fP is an exclamation point (\fB!\fP),
 and \fIparameter\fP is not a \fInameref\fP,
-it introduces a level of variable indirection.
-\fBBash\fP uses the value of the variable formed from the rest of
-\fIparameter\fP 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 \fIparameter\fP itself.
+it introduces a level of indirection.
+\fBBash\fP uses the value formed by expanding the rest of
+\fIparameter\fP as the new \fIparameter\fP; this is then
+expanded and that value is used in the rest of the expansion, rather
+than the expansion of the original \fIparameter\fP.
 This is known as \fIindirect expansion\fP.
 The value is subject to tilde expansion,
 parameter expansion, command substitution, and arithmetic expansion.
 If \fIparameter\fP is a nameref, this expands to the name of the
-variable referenced by \fIparameter\fP instead of performing the
+parameter referenced by \fIparameter\fP instead of performing the
 complete indirect expansion.
 The exceptions to this are the expansions of ${\fB!\fP\fIprefix\fP\fB*\fP} and
 ${\fB!\fP\fIname\fP[\fI@\fP]} described below.
@@ -4821,7 +4845,7 @@ subshell environment.  Changes made to the subshell environment
 cannot affect the shell's execution environment.
 .PP
 Subshells spawned to execute command substitutions inherit the value of
-the \fB\-e\fP option from the parent shell.  When not in \fIposix\fP mode,
+the \fB\-e\fP option from the parent shell.  When not in \fIposix mode\fP,
 \fBbash\fP clears the \fB\-e\fP option in such subshells.
 .PP
 If a command is followed by a \fB&\fP and job control is not active, the
@@ -7640,12 +7664,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\-DE\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\-DEI\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 [\fB\-DE\fP] [\fIname\fP ...]
+\fBcomplete\fP \fB\-pr\fP [\fB\-DEI\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,
@@ -7654,12 +7678,21 @@ 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\-D\fP option indicates that the remaining options and actions should
+The \fB\-D\fP option indicates that other supplied options and actions should
 apply to the ``default'' command completion; that is, completion attempted
 on a command for which no completion has previously been defined.
-The \fB\-E\fP option indicates that the remaining options and actions should
+The \fB\-E\fP option indicates that other supplied options and actions should
 apply to ``empty'' command completion; that is, completion attempted on a
 blank line.
+The \fB\-I\fP option indicates that other supplied options and actions should
+apply to completion on the inital non-assignment word on the line, or after
+a command delimiter such as \fB;\fP or \fB|\fP, which is usually command
+name completion.
+If multiple options are supplied, the \fB\-D\fP option takes precedence
+over \fB\-E\fP, and both take precedence over \fB\-I\fP.
+If any of \fB\-D\fP, \fB\-E\fP, or \fB\-I\fP are supplied, any other
+\fIname\fP arguments are ignored; these completions only apply to the case
+specified by the option.
 .sp 1
 The process of applying these completion specifications when word completion
 is attempted is described above under \fBProgrammable Completion\fP.
@@ -7855,7 +7888,7 @@ a \fIname\fP for which no specification exists, or
 an error occurs adding a completion specification.
 .RE
 .TP
-\fBcompopt\fP [\fB\-o\fP \fIoption\fP] [\fB\-DE\fP] [\fB+o\fP \fIoption\fP] [\fIname\fP]
+\fBcompopt\fP [\fB\-o\fP \fIoption\fP] [\fB\-DEI\fP] [\fB+o\fP \fIoption\fP] [\fIname\fP]
 Modify completion options for each \fIname\fP according to the
 \fIoption\fPs, or for the
 currently-executing completion if no \fIname\fPs are supplied.
@@ -7863,12 +7896,16 @@ If no \fIoption\fPs are given, display the completion options for each
 \fIname\fP or the current completion.
 The possible values of \fIoption\fP are those valid for the \fBcomplete\fP
 builtin described above.
-The \fB\-D\fP option indicates that the remaining options should
+The \fB\-D\fP option indicates that other supplied options should
 apply to the ``default'' command completion; that is, completion attempted
 on a command for which no completion has previously been defined.
-The \fB\-E\fP option indicates that the remaining options should
+The \fB\-E\fP option indicates that other supplied options should
 apply to ``empty'' command completion; that is, completion attempted on a
 blank line.
+The \fB\-I\fP option indicates that other supplied options should
+apply to completion on the inital non-assignment word on the line,
+or after a command delimiter such as \fB;\fP or \fB|\fP, which is usually
+command name completion.
 .sp 1
 The return value is true unless an invalid option is supplied, an attempt
 is made to modify the options for a \fIname\fP for which no completion
@@ -9271,7 +9308,7 @@ 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 cannot be reset.
-In \fIposix\fP mode, only shell variables are listed.
+In \fIposix mode\fP, 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 option processing are treated
@@ -9817,7 +9854,7 @@ interrupt; previous versions continue with the next command in the list.
 .B compat41
 If set,
 .BR bash ,
-when in \fIposix\fP mode, treats a single quote in a double-quoted
+when in \fIposix mode\fP, treats a single quote in a double-quoted
 parameter expansion as a special character.  The single quotes must match
 (an even number) and the characters between the single quotes are considered
 quoted.  This is the behavior of posix mode through version 4.1.
@@ -10589,7 +10626,7 @@ which is in units of 512-byte blocks;
 and
 .BR \-u ,
 which are unscaled values;
-and, when in Posix mode,
+and, when in posix mode,
 .B \-c
 and
 .BR \-f ,
index 54b42fec75593a5a86bbeb2706750296b2f53f04..08e1b4a43e18de15da4eed0042c30c5b84b6d798 100644 (file)
@@ -3,7 +3,7 @@
 </HEAD>
 <BODY><TABLE WIDTH=100%>
 <TR>
-<TH ALIGN=LEFT width=33%>BASH(1)<TH ALIGN=CENTER width=33%>2018 March 15<TH ALIGN=RIGHT width=33%>BASH(1)
+<TH ALIGN=LEFT width=33%>BASH(1)<TH ALIGN=CENTER width=33%>2018 August 7<TH ALIGN=RIGHT width=33%>BASH(1)
 </TR>
 </TABLE>
 <BR><A HREF="#index">Index</A>
@@ -965,7 +965,7 @@ 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 expression and matched accordingly (as in <I>regex</I>(3)).
+a POSIX extended regular expression and matched accordingly (as in <I>regex</I>(3)).
 The return value is 0 if the string matches
 the pattern, and 1 otherwise.
 If the regular expression is syntactically incorrect, the conditional
@@ -1738,7 +1738,14 @@ is null, the parameters are joined without intervening separators.
 <DT><B>@</B>
 
 <DD>
-Expands to the positional parameters, starting from one.  When the
+Expands to the positional parameters, starting from one.
+In contexts where word splitting is performed, this expands each
+positional parameter to a separate word; if not within double
+quotes, these words are subject to word splitting.
+In contexts where word splitting is not performed,
+this expands to a single word
+with each positional parameter separated by a space.
+When the
 expansion occurs within double quotes, each parameter expands to a
 separate word.  That is, &quot;<B>$@</B>&quot; is equivalent to
 &quot;<B>$1</B>&quot; &quot;<B>$2</B>&quot; ...
@@ -1922,7 +1929,8 @@ option to the
 <B>shopt</B>
 
 builtin below).
-Setting <B>extdebug</B> after the shell has started to execute a script
+Setting <B>extdebug</B> after the shell has started to execute a script,
+or referencing this variable when <B>extdebug</B> is not set,
 may result in inconsistent values.
 <DT><B>BASH_ARGV</B>
 
@@ -1947,7 +1955,8 @@ option to the
 <B>shopt</B>
 
 builtin below).
-Setting <B>extdebug</B> after the shell has started to execute a script
+Setting <B>extdebug</B> after the shell has started to execute a script,
+or referencing this variable when <B>extdebug</B> is not set,
 may result in inconsistent values.
 <DT><B>BASH_ARGV0</B>
 
@@ -2634,7 +2643,7 @@ Similar to
 <FONT SIZE=-1><B>BASH_ENV</B>;
 
 </FONT>
-used when the shell is invoked in POSIX mode.
+used when the shell is invoked in <I>posix mode</I>.
 <DT><B>EXECIGNORE</B>
 
 <DD>
@@ -2887,6 +2896,12 @@ startup file, overriding the default of
 
 </FONT>
 below).
+<DT><B>INSIDE_EMACS</B>
+
+<DD>
+If this variable appears in the environment when the shell starts,
+<B>bash</B> assumes that it is running inside an Emacs shell buffer
+and may disable line editing, depending on the value of <B>TERM</B>.
 <DT><B>LANG</B>
 
 <DD>
@@ -3043,6 +3058,8 @@ running, <B>bash</B> enables <I>posix mode</I>, as if the command
 <TT>set -o posix</TT>
 
 had been executed.
+When the shell enters <I>posix mode</I>, it sets this variable if it was
+not already set.
 <DT><B>PROMPT_COMMAND</B>
 
 <DD>
@@ -3698,6 +3715,16 @@ and
 
 </FONT>
 and the shell assigns the expanded value.
+<P>
+
+Bash also performs tilde expansion on words satisfying the conditions of
+variable assignments (as described above under
+<FONT SIZE=-1><B>PARAMETERS</B>)
+
+</FONT>
+when they appear as arguments to simple commands.
+Bash does not do this, except for the <I>declaration</I> commands listed
+above, when in <I>posix mode</I>.
 <A NAME="lbBB">&nbsp;</A>
 <H4>Parameter Expansion</H4>
 
@@ -3738,16 +3765,16 @@ The <I>parameter</I> is a shell parameter as described above
 
 If the first character of <I>parameter</I> is an exclamation point (<B>!</B>),
 and <I>parameter</I> is not a <I>nameref</I>,
-it introduces a level of variable indirection.
-<B>Bash</B> uses the value of the variable formed from the rest of
-<I>parameter</I> 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 <I>parameter</I> itself.
+it introduces a level of indirection.
+<B>Bash</B> uses the value formed by expanding the rest of
+<I>parameter</I> as the new <I>parameter</I>; this is then
+expanded and that value is used in the rest of the expansion, rather
+than the expansion of the original <I>parameter</I>.
 This is known as <I>indirect expansion</I>.
 The value is subject to tilde expansion,
 parameter expansion, command substitution, and arithmetic expansion.
 If <I>parameter</I> is a nameref, this expands to the name of the
-variable referenced by <I>parameter</I> instead of performing the
+parameter referenced by <I>parameter</I> instead of performing the
 complete indirect expansion.
 The exceptions to this are the expansions of ${<B>!</B><I>prefix</I><B>*</B>} and
 ${<B>!</B><I>name</I>[<I>@</I>]} described below.
@@ -6125,7 +6152,7 @@ cannot affect the shell's execution environment.
 <P>
 
 Subshells spawned to execute command substitutions inherit the value of
-the <B>-e</B> option from the parent shell.  When not in <I>posix</I> mode,
+the <B>-e</B> option from the parent shell.  When not in <I>posix mode</I>,
 <B>bash</B> clears the <B>-e</B> option in such subshells.
 <P>
 
@@ -9745,12 +9772,12 @@ will be displayed.
 <P>
 The return value is true unless an invalid option is supplied, or no
 matches were generated.
-<DT><B>complete</B> [<B>-abcdefgjksuv</B>] [<B>-o</B> <I>comp-option</I>] [<B>-DE</B>] [<B>-A</B> <I>action</I>] [<B>-G</B> <I>globpat</I>] [<B>-W</B> <I>wordlist</I>] [<B>-F</B> <I>function</I>] [<B>-C</B> <I>command</I>]<DD>
+<DT><B>complete</B> [<B>-abcdefgjksuv</B>] [<B>-o</B> <I>comp-option</I>] [<B>-DEI</B>] [<B>-A</B> <I>action</I>] [<B>-G</B> <I>globpat</I>] [<B>-W</B> <I>wordlist</I>] [<B>-F</B> <I>function</I>] [<B>-C</B> <I>command</I>]<DD>
 <BR>
 
 [<B>-X</B> <I>filterpat</I>] [<B>-P</B> <I>prefix</I>] [<B>-S</B> <I>suffix</I>] <I>name</I> [<I>name ...</I>]
 
-<DT><B>complete</B> <B>-pr</B> [<B>-DE</B>] [<I>name</I> ...]<DD>
+<DT><B>complete</B> <B>-pr</B> [<B>-DEI</B>] [<I>name</I> ...]<DD>
 
 Specify how arguments to each <I>name</I> should be completed.
 If the <B>-p</B> option is supplied, or if no options are supplied,
@@ -9759,12 +9786,21 @@ them to be reused as input.
 The <B>-r</B> option removes a completion specification for
 each <I>name</I>, or, if no <I>name</I>s are supplied, all
 completion specifications.
-The <B>-D</B> option indicates that the remaining options and actions should
+The <B>-D</B> option indicates that other supplied options and actions should
 apply to the ``default'' command completion; that is, completion attempted
 on a command for which no completion has previously been defined.
-The <B>-E</B> option indicates that the remaining options and actions should
+The <B>-E</B> option indicates that other supplied options and actions should
 apply to ``empty'' command completion; that is, completion attempted on a
 blank line.
+The <B>-I</B> option indicates that other supplied options and actions should
+apply to completion on the inital non-assignment word on the line, or after
+a command delimiter such as <B>;</B> or <B>|</B>, which is usually command
+name completion.
+If multiple options are supplied, the <B>-D</B> option takes precedence
+over <B>-E</B>, and both take precedence over <B>-I</B>.
+If any of <B>-D</B>, <B>-E</B>, or <B>-I</B> are supplied, any other
+<I>name</I> arguments are ignored; these completions only apply to the case
+specified by the option.
 <P>
 The process of applying these completion specifications when word completion
 is attempted is described above under <B>Programmable Completion</B>.
@@ -9995,7 +10031,7 @@ 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>-DE</B>] [<B>+o</B> <I>option</I>] [<I>name</I>]<DD>
+<DT><B>compopt</B> [<B>-o</B> <I>option</I>] [<B>-DEI</B>] [<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-executing completion if no <I>name</I>s are supplied.
@@ -10003,12 +10039,16 @@ 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.
-The <B>-D</B> option indicates that the remaining options should
+The <B>-D</B> option indicates that other supplied options should
 apply to the ``default'' command completion; that is, completion attempted
 on a command for which no completion has previously been defined.
-The <B>-E</B> option indicates that the remaining options should
+The <B>-E</B> option indicates that other supplied options should
 apply to ``empty'' command completion; that is, completion attempted on a
 blank line.
+The <B>-I</B> option indicates that other supplied options should
+apply to completion on the inital non-assignment word on the line,
+or after a command delimiter such as <B>;</B> or <B>|</B>, which is usually
+command name completion.
 <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
@@ -11727,7 +11767,7 @@ 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 cannot be reset.
-In <I>posix</I> mode, only shell variables are listed.
+In <I>posix mode</I>, 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 option processing are treated
@@ -12444,7 +12484,7 @@ interrupt; previous versions continue with the next command in the list.
 If set,
 <B>bash</B>,
 
-when in <I>posix</I> mode, treats a single quote in a double-quoted
+when in <I>posix mode</I>, treats a single quote in a double-quoted
 parameter expansion as a special character.  The single quotes must match
 (an even number) and the characters between the single quotes are considered
 quoted.  This is the behavior of posix mode through version 4.1.
@@ -13426,7 +13466,7 @@ and
 <B>-u</B>,
 
 which are unscaled values;
-and, when in Posix mode,
+and, when in posix mode,
 <B>-c</B>
 
 and
@@ -13852,7 +13892,7 @@ There may be only one active coprocess at a time.
 <HR>
 <TABLE WIDTH=100%>
 <TR>
-<TH ALIGN=LEFT width=33%>GNU Bash 5.0<TH ALIGN=CENTER width=33%>2018 March 15<TH ALIGN=RIGHT width=33%>BASH(1)
+<TH ALIGN=LEFT width=33%>GNU Bash 5.0<TH ALIGN=CENTER width=33%>2018 August 7<TH ALIGN=RIGHT width=33%>BASH(1)
 </TR>
 </TABLE>
 <HR>
@@ -13958,6 +13998,6 @@ There may be only one active coprocess at a time.
 </DL>
 <HR>
 This document was created by man2html from bash.1.<BR>
-Time: 19 March 2018 09:43:32 EDT
+Time: 07 September 2018 16:15:28 EDT
 </BODY>
 </HTML>
index 9a4edb080e7929260f490effb8bcb4fd131b11fe..171e1a7f17812824f8197a64be14121be5a391d2 100644 (file)
@@ -2,9 +2,9 @@ This is bash.info, produced by makeinfo version 6.5 from
 bashref.texi.
 
 This text is a brief description of the features that are present in the
-Bash shell (version 5.0, 15 March 2018).
+Bash shell (version 5.0, 7 August 2018).
 
-   This is Edition 5.0, last updated 15 March 2018, of 'The GNU Bash
+   This is Edition 5.0, last updated 7 August 2018, of 'The GNU Bash
 Reference Manual', for 'Bash', Version 5.0.
 
    Copyright (C) 1988-2018 Free Software Foundation, Inc.
@@ -27,10 +27,10 @@ Bash Features
 *************
 
 This text is a brief description of the features that are present in the
-Bash shell (version 5.0, 15 March 2018).  The Bash home page is
+Bash shell (version 5.0, 7 August 2018).  The Bash home page is
 <http://www.gnu.org/software/bash/>.
 
-   This is Edition 5.0, last updated 15 March 2018, of 'The GNU Bash
+   This is Edition 5.0, last updated 7 August 2018, of 'The GNU Bash
 Reference Manual', for 'Bash', Version 5.0.
 
    Bash contains features that appear in other popular shells, and some
@@ -768,7 +768,9 @@ File: bash.info,  Node: Conditional Constructs,  Next: Command Grouping,  Prev:
 'case'
      The syntax of the 'case' command is:
 
-          case WORD in [ [(] PATTERN [| PATTERN]...) COMMAND-LIST ;;]... esac
+          case WORD in
+              [ [(] PATTERN [| PATTERN]...) COMMAND-LIST ;;]...
+          esac
 
      'case' will selectively execute the COMMAND-LIST corresponding to
      the first PATTERN that matches WORD.  The match is performed
@@ -883,30 +885,30 @@ File: bash.info,  Node: Conditional Constructs,  Next: Command Grouping,  Prev:
      'shopt' in *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 be
-     quoted to force the quoted portion to be matched as a string.
+     ('!=') the pattern, and 1 otherwise.  Any part of the pattern may
+     be quoted to force the quoted portion to be matched as a string.
 
      An additional binary operator, '=~', is available, with the same
      precedence as '==' and '!='.  When it is used, the string to the
-     right of the operator is considered an extended regular expression
-     and matched accordingly (as in regex3)).  The return value is 0 if
-     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 'nocasematch' shell option (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 the
-     quoted portion to be matched as a string.  Bracket expressions in
-     regular expressions must be treated carefully, since normal quoting
-     characters lose their meanings between brackets.  If the pattern is
-     stored in a shell variable, quoting the variable expansion forces
-     the entire pattern to be matched as a string.  Substrings matched
-     by parenthesized subexpressions within the regular expression are
-     saved in the array variable 'BASH_REMATCH'.  The element of
-     'BASH_REMATCH' with index 0 is the portion of the string matching
-     the entire regular expression.  The element of 'BASH_REMATCH' with
-     index N is the portion of the string matching the Nth parenthesized
-     subexpression.
+     right of the operator is considered a POSIX extended regular
+     expression and matched accordingly (as in regex3)).  The return
+     value is 0 if 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 'nocasematch' shell option
+     (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 the quoted portion to be matched as a string.  Bracket
+     expressions in regular expressions must be treated carefully, since
+     normal quoting characters lose their meanings between brackets.  If
+     the pattern is stored in a shell variable, quoting the variable
+     expansion forces the entire pattern to be matched as a string.
+     Substrings matched by parenthesized subexpressions within the
+     regular expression are saved in the array variable 'BASH_REMATCH'.
+     The element of 'BASH_REMATCH' with index 0 is the portion of the
+     string matching the entire regular expression.  The element of
+     'BASH_REMATCH' with index N is the portion of the string matching
+     the Nth parenthesized subexpression.
 
      For example, the following will match a line (stored in the shell
      variable LINE) if there is a sequence of characters in the value
@@ -1103,7 +1105,8 @@ read from a file (in this case, filenames listed one per line):
        done < file | process-output
 
 with a more compact syntax reminiscent of lambdas:
-     cat list | parallel "do-something1 {} config-{} ; do-something2 < {}" | process-output
+     cat list | parallel "do-something1 {} config-{} ; do-something2 < {}" |
+                process-output
 
    Parallel provides a built-in mechanism to remove filename extensions,
 which lends itself to batch file transformations or renaming:
@@ -1118,10 +1121,18 @@ take arguments from the command line; the above can also be written as
 
    If a command generates output, you may want to preserve the input
 order in the output.  For instance, the following command
-     { echo foss.org.my ; echo debian.org; echo freenetproject.org; } | parallel traceroute
+     {
+         echo foss.org.my ;
+         echo debian.org ;
+         echo freenetproject.org ;
+     } | parallel traceroute
 will display as output the traceroute invocation that finishes first.
 Adding the '-k' option
-     { echo foss.org.my ; echo debian.org; echo freenetproject.org; } | parallel -k traceroute
+     {
+         echo foss.org.my ;
+         echo debian.org ;
+         echo freenetproject.org ;
+     } | parallel -k traceroute
 will ensure that the output of 'traceroute foss.org.my' is displayed
 first.
 
@@ -1406,15 +1417,21 @@ only be referenced; assignment to them is not allowed.
      is null, the parameters are joined without intervening separators.
 
 '@'
-     ($@) Expands to the positional parameters, starting from one.  When
-     the expansion occurs within double quotes, each parameter expands
-     to a separate word.  That is, '"$@"' is equivalent to '"$1" "$2"
-     ...'.  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.  When there are no
-     positional parameters, '"$@"' and '$@' expand to nothing (i.e.,
-     they are removed).
+     ($@) Expands to the positional parameters, starting from one.  In
+     contexts where word splitting is performed, this expands each
+     positional parameter to a separate word; if not within double
+     quotes, these words are subject to word splitting.  In contexts
+     where word splitting is not performed, this expands to a single
+     word with each positional parameter separated by a space.  When the
+     expansion occurs within double quotes, and word splitting is
+     performed, each parameter expands to a separate word.  That is,
+     '"$@"' is equivalent to '"$1" "$2" ...'.  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.  When there are no positional
+     parameters, '"$@"' and '$@' expand to nothing (i.e., they are
+     removed).
 
 '#'
      ($#) Expands to the number of positional parameters in decimal.
@@ -1628,6 +1645,11 @@ assigns the expanded value.
 '~-N'
      The string that would be displayed by 'dirs -N'
 
+   Bash also performs tilde expansion on words satisfying the conditions
+of variable assignments (*note Shell Parameters::) when they appear as
+arguments to simple commands.  Bash does not do this, except for the
+DECLARATION commands listed above, when in POSIX mode.
+
 \1f
 File: bash.info,  Node: Shell Parameter Expansion,  Next: Command Substitution,  Prev: Tilde Expansion,  Up: Shell Expansions
 
@@ -1653,18 +1675,17 @@ parameter with more than one digit, or when PARAMETER is followed by a
 character that is not to be interpreted as part of its name.
 
    If the first character of PARAMETER is an exclamation point (!), and
-PARAMETER is not a NAMEREF, it introduces a level of variable
-indirection.  Bash uses the value of the variable formed from the rest
-of PARAMETER 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 PARAMETER itself.  This is known as 'indirect expansion'.  The
-value is subject to tilde expansion, parameter expansion, command
-substitution, and arithmetic expansion.  If PARAMETER is a nameref, this
-expands to the name of the variable referenced by PARAMETER instead of
-performing the complete indirect expansion.  The exceptions to this are
-the expansions of ${!PREFIX*} and ${!NAME[@]} described below.  The
-exclamation point must immediately follow the left brace in order to
-introduce indirection.
+PARAMETER is not a NAMEREF, it introduces a level of indirection.  Bash
+uses the value formed by expanding the rest of PARAMETER as the new
+PARAMETER; this is then expanded and that value is used in the rest of
+the expansion, rather than the expansion of the original PARAMETER.
+This is known as 'indirect expansion'.  The value is subject to tilde
+expansion, parameter expansion, command substitution, and arithmetic
+expansion.  If PARAMETER is a nameref, this expands to the name of the
+variable referenced by PARAMETER instead of performing the complete
+indirect expansion.  The exceptions to this are the expansions of
+${!PREFIX*} and ${!NAME[@]} described below.  The exclamation point must
+immediately follow the left brace in order to introduce indirection.
 
    In each of the cases below, WORD is subject to tilde expansion,
 parameter expansion, command substitution, and arithmetic expansion.
@@ -3662,8 +3683,8 @@ standard.
      Exit a login shell, returning a status of N to the shell's parent.
 
 'mapfile'
-          mapfile [-d DELIM] [-n COUNT] [-O ORIGIN] [-s COUNT] [-t] [-u FD]
-              [-C CALLBACK] [-c QUANTUM] [ARRAY]
+          mapfile [-d DELIM] [-n COUNT] [-O ORIGIN] [-s COUNT]
+              [-t] [-u FD] [-C CALLBACK] [-c QUANTUM] [ARRAY]
 
      Read lines from the standard input into the indexed array variable
      ARRAY, or from file descriptor FD if the '-u' option is supplied.
@@ -3846,8 +3867,8 @@ standard.
           Read input from file descriptor FD.
 
 'readarray'
-          readarray [-d DELIM] [-n COUNT] [-O ORIGIN] [-s COUNT] [-t] [-u FD]
-              [-C CALLBACK] [-c QUANTUM] [ARRAY]
+          readarray [-d DELIM] [-n COUNT] [-O ORIGIN] [-s COUNT]
+              [-t] [-u FD] [-C CALLBACK] [-c QUANTUM] [ARRAY]
 
      Read lines from the standard input into the indexed array variable
      ARRAY, or from file descriptor FD if the '-u' option is supplied.
@@ -4826,7 +4847,8 @@ Variables::).
      onto 'BASH_ARGC'.  The shell sets 'BASH_ARGC' only when in extended
      debugging mode (see *note The Shopt Builtin:: for a description of
      the 'extdebug' option to the 'shopt' builtin).  Setting 'extdebug'
-     after the shell has started to execute a script may result in
+     after the shell has started to execute a script, or referencing
+     this variable when 'extdebug' is not set, may result in
      inconsistent values.
 
 'BASH_ARGV'
@@ -4838,7 +4860,8 @@ Variables::).
      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).  Setting 'extdebug' after the shell has
-     started to execute a script may result in inconsistent values.
+     started to execute a script, or referencing this variable when
+     'extdebug' is not set, may result in inconsistent values.
 
 'BASH_ARGV0'
      When referenced, this variable expands to the name of the shell or
@@ -5228,7 +5251,7 @@ Variables::).
      as the sole input.  If set, the value denotes the number of
      consecutive 'EOF' characters that can be read as the first
      character on an input line before the shell will exit.  If the
-     variable exists but does not have a numeric value (or has no value)
+     variable exists but does not have a numeric value, or has no value,
      then the default is 10.  If the variable does not exist, then 'EOF'
      signifies the end of input to the shell.  This is only in effect
      for interactive shells.
@@ -5237,6 +5260,12 @@ Variables::).
      The name of the Readline initialization file, overriding the
      default of '~/.inputrc'.
 
+'INSIDE_EMACS'
+     If Bash finds this variable in the environment when the shell
+     starts, it assumes that the shell is running in an Emacs shell
+     buffer and may disable line editing depending on the value of
+     'TERM'.
+
 'LANG'
      Used to determine the locale category for any category not
      specifically selected with a variable starting with 'LC_'.
@@ -5317,7 +5346,8 @@ Variables::).
      supplied.  If it is set while the shell is running, Bash enables
      POSIX mode, as if the command
           set -o posix
-     had been executed.
+     had been executed.  When the shell enters POSIX mode, it sets this
+     variable if it was not already set.
 
 'PPID'
      The process ID of the shell's parent process.  This variable is
@@ -5484,9 +5514,12 @@ File: bash.info,  Node: Invoking Bash,  Next: Bash Startup Files,  Up: Bash Feat
 6.1 Invoking Bash
 =================
 
-     bash [long-opt] [-ir] [-abefhkmnptuvxdBCDHP] [-o OPTION] [-O SHOPT_OPTION] [ARGUMENT ...]
-     bash [long-opt] [-abefhkmnptuvxdBCDHP] [-o OPTION] [-O SHOPT_OPTION] -c STRING [ARGUMENT ...]
-     bash [long-opt] -s [-abefhkmnptuvxdBCDHP] [-o OPTION] [-O SHOPT_OPTION] [ARGUMENT ...]
+     bash [long-opt] [-ir] [-abefhkmnptuvxdBCDHP] [-o OPTION]
+         [-O SHOPT_OPTION] [ARGUMENT ...]
+     bash [long-opt] [-abefhkmnptuvxdBCDHP] [-o OPTION]
+         [-O SHOPT_OPTION] -c STRING [ARGUMENT ...]
+     bash [long-opt] -s [-abefhkmnptuvxdBCDHP] [-o OPTION]
+         [-O SHOPT_OPTION] [ARGUMENT ...]
 
    All of the single-character options used with the 'set' builtin
 (*note The Set Builtin::) can be used as options when the shell is
@@ -5832,8 +5865,8 @@ several ways.
   9. In the absence of any traps, Bash ignores 'SIGTERM' (*note
      Signals::).
 
-  10. In the absence of any traps, 'SIGINT' is caught and handled
-     ((*note Signals::).  'SIGINT' will interrupt some shell builtins.
+  10. In the absence of any traps, 'SIGINT' is caught and handled (*note
+     Signals::).  'SIGINT' will interrupt some shell builtins.
 
   11. An interactive login shell sends a 'SIGHUP' to all jobs on exit if
      the 'huponexit' shell option has been enabled (*note Signals::).
@@ -6453,7 +6486,8 @@ of commands executed during the current shell session.
 
    After the string is decoded, it is expanded via parameter expansion,
 command substitution, arithmetic expansion, and quote removal, subject
-to the value of the 'promptvars' shell option (*note Bash Builtins::).
+to the value of the 'promptvars' shell option (*note The Shopt
+Builtin::).
 
 \1f
 File: bash.info,  Node: The Restricted Shell,  Next: Bash POSIX Mode,  Prev: Controlling the Prompt,  Up: Bash Features
@@ -6511,212 +6545,214 @@ startup files.
 
    The following list is what's changed when 'POSIX mode' is in effect:
 
-  1. When a command in the hash table no longer exists, Bash will
+  1. Bash ensures that the 'POSIXLY_CORRECT' variable is set.
+
+  2. When a command in the hash table no longer exists, Bash will
      re-search '$PATH' to find the new location.  This is also available
      with 'shopt -s checkhash'.
 
-  2. The message printed by the job control code and builtins when a job
+  3. The message printed by the job control code and builtins when a job
      exits with a non-zero status is 'Done(status)'.
 
-  3. The message printed by the job control code and builtins when a job
+  4. The message printed by the job control code and builtins when a job
      is stopped is 'Stopped(SIGNAME)', where SIGNAME is, for example,
      'SIGTSTP'.
 
-  4. Alias expansion is always enabled, even in non-interactive shells.
+  5. Alias expansion is always enabled, even in non-interactive shells.
 
-  5. Reserved words appearing in a context where reserved words are
+  6. Reserved words appearing in a context where reserved words are
      recognized do not undergo alias expansion.
 
-  6. The POSIX 'PS1' and 'PS2' expansions of '!' to the history number
+  7. The POSIX 'PS1' and 'PS2' expansions of '!' to the history number
      and '!!' to '!' are enabled, and parameter expansion is performed
      on the values of 'PS1' and 'PS2' regardless of the setting of the
      'promptvars' option.
 
-  7. The POSIX startup files are executed ('$ENV') rather than the
+  8. The POSIX startup files are executed ('$ENV') rather than the
      normal Bash files.
 
-  8. Tilde expansion is only performed on assignments preceding a
+  9. Tilde expansion is only performed on assignments preceding a
      command name, rather than on all assignment statements on the line.
 
-  9. The default history file is '~/.sh_history' (this is the default
+  10. The default history file is '~/.sh_history' (this is the default
      value of '$HISTFILE').
 
-  10. Redirection operators do not perform filename expansion on the
+  11. Redirection operators do not perform filename expansion on the
      word in the redirection unless the shell is interactive.
 
-  11. Redirection operators do not perform word splitting on the word in
+  12. Redirection operators do not perform word splitting on the word in
      the redirection.
 
-  12. Function names must be valid shell 'name's.  That is, they may not
+  13. Function names must be valid shell 'name's.  That is, they may not
      contain characters other than letters, digits, and underscores, and
      may not start with a digit.  Declaring a function with an invalid
      name causes a fatal syntax error in non-interactive shells.
 
-  13. Function names may not be the same as one of the POSIX special
+  14. Function names may not be the same as one of the POSIX special
      builtins.
 
-  14. POSIX special builtins are found before shell functions during
+  15. POSIX special builtins are found before shell functions during
      command lookup.
 
-  15. When printing shell function definitions (e.g., by 'type'), Bash
+  16. When printing shell function definitions (e.g., by 'type'), Bash
      does not print the 'function' keyword.
 
-  16. Literal tildes that appear as the first character in elements of
+  17. Literal tildes that appear as the first character in elements of
      the 'PATH' variable are not expanded as described above under *note
      Tilde Expansion::.
 
-  17. The 'time' reserved word may be used by itself as a command.  When
+  18. The 'time' reserved word may be used by itself as a command.  When
      used in this way, it displays timing statistics for the shell and
      its completed children.  The 'TIMEFORMAT' variable controls the
      format of the timing information.
 
-  18. When parsing and expanding a ${...} expansion that appears within
+  19. When parsing and expanding a ${...} expansion that appears within
      double quotes, single quotes are no longer special and cannot be
      used to quote a closing brace or other special character, unless
      the operator is one of those defined to perform pattern removal.
      In this case, they do not have to appear as matched pairs.
 
-  19. The parser does not recognize 'time' as a reserved word if the
+  20. The parser does not recognize 'time' as a reserved word if the
      next token begins with a '-'.
 
-  20. The '!' character does not introduce history expansion within a
+  21. The '!' character does not introduce history expansion within a
      double-quoted string, even if the 'histexpand' option is enabled.
 
-  21. If a POSIX special builtin returns an error status, a
+  22. If a POSIX special builtin returns an error status, a
      non-interactive shell exits.  The fatal errors are those listed in
      the POSIX standard, and include things like passing incorrect
      options, redirection errors, variable assignment errors for
      assignments preceding the command name, and so on.
 
-  22. A non-interactive shell exits with an error status if a variable
+  23. A non-interactive shell exits with an error status if a variable
      assignment error occurs when no command name follows the assignment
      statements.  A variable assignment error occurs, for example, when
      trying to assign a value to a readonly variable.
 
-  23. A non-interactive shell exits with an error status if a variable
+  24. A non-interactive shell exits with an error status if a variable
      assignment error occurs in an assignment statement preceding a
      special builtin, but not with any other simple command.
 
-  24. A non-interactive shell exits with an error status if the
+  25. A non-interactive shell exits with an error status if the
      iteration variable in a 'for' statement or the selection variable
      in a 'select' statement is a readonly variable.
 
-  25. Non-interactive shells exit if FILENAME in '.'  FILENAME is not
+  26. Non-interactive shells exit if FILENAME in '.'  FILENAME is not
      found.
 
-  26. Non-interactive shells exit if a syntax error in an arithmetic
+  27. Non-interactive shells exit if a syntax error in an arithmetic
      expansion results in an invalid expression.
 
-  27. Non-interactive shells exit if a parameter expansion error occurs.
+  28. Non-interactive shells exit if a parameter expansion error occurs.
 
-  28. Non-interactive shells exit if there is a syntax error in a script
+  29. Non-interactive shells exit if there is a syntax error in a script
      read with the '.' or 'source' builtins, or in a string processed by
      the 'eval' builtin.
 
-  29. Process substitution is not available.
+  30. Process substitution is not available.
 
-  30. While variable indirection is available, it may not be applied to
+  31. While variable indirection is available, it may not be applied to
      the '#' and '?' special parameters.
 
-  31. When expanding the '*' special parameter in a pattern context
+  32. When expanding the '*' special parameter in a pattern context
      where the expansion is double-quoted does not treat the '$*' as if
      it were double-quoted.
 
-  32. Assignment statements preceding POSIX special builtins persist in
+  33. Assignment statements preceding POSIX special builtins persist in
      the shell environment after the builtin completes.
 
-  33. Assignment statements preceding shell function calls persist in
+  34. Assignment statements preceding shell function calls persist in
      the shell environment after the function returns, as if a POSIX
      special builtin command had been executed.
 
-  34. The 'command' builtin does not prevent builtins that take
+  35. The 'command' builtin does not prevent builtins that take
      assignment statements as arguments from expanding them as
      assignment statements; when not in POSIX mode, assignment builtins
      lose their assignment statement expansion properties when preceded
      by 'command'.
 
-  35. The 'bg' builtin uses the required format to describe each job
+  36. The 'bg' builtin uses the required format to describe each job
      placed in the background, which does not include an indication of
      whether the job is the current or previous job.
 
-  36. The output of 'kill -l' prints all the signal names on a single
+  37. The output of 'kill -l' prints all the signal names on a single
      line, separated by spaces, without the 'SIG' prefix.
 
-  37. The 'kill' builtin does not accept signal names with a 'SIG'
+  38. The 'kill' builtin does not accept signal names with a 'SIG'
      prefix.
 
-  38. The 'export' and 'readonly' builtin commands display their output
+  39. The 'export' and 'readonly' builtin commands display their output
      in the format required by POSIX.
 
-  39. The 'trap' builtin displays signal names without the leading
+  40. The 'trap' builtin displays signal names without the leading
      'SIG'.
 
-  40. The 'trap' builtin doesn't check the first argument for a possible
+  41. The 'trap' builtin doesn't check the first argument for a possible
      signal specification and revert the signal handling to the original
      disposition if it is, unless that argument consists solely of
      digits and is a valid signal number.  If users want to reset the
      handler for a given signal to the original disposition, they should
      use '-' as the first argument.
 
-  41. The '.' and 'source' builtins do not search the current directory
+  42. The '.' and 'source' builtins do not search the current directory
      for the filename argument if it is not found by searching 'PATH'.
 
-  42. Enabling POSIX mode has the effect of setting the
+  43. Enabling POSIX mode has the effect of setting the
      'inherit_errexit' option, so subshells spawned to execute command
      substitutions inherit the value of the '-e' option from the parent
      shell.  When the 'inherit_errexit' option is not enabled, Bash
      clears the '-e' option in such subshells.
 
-  43. When the 'alias' builtin displays alias definitions, it does not
+  44. When the 'alias' builtin displays alias definitions, it does not
      display them with a leading 'alias ' unless the '-p' option is
      supplied.
 
-  44. When the 'set' builtin is invoked without options, it does not
+  45. When the 'set' builtin is invoked without options, it does not
      display shell function names and definitions.
 
-  45. When the 'set' builtin is invoked without options, it displays
+  46. When the 'set' builtin is invoked without options, it displays
      variable values without quotes, unless they contain shell
      metacharacters, even if the result contains nonprinting characters.
 
-  46. When the 'cd' builtin is invoked in LOGICAL mode, and the pathname
+  47. When the 'cd' builtin is invoked in LOGICAL mode, and the pathname
      constructed from '$PWD' and the directory name supplied as an
      argument does not refer to an existing directory, 'cd' will fail
      instead of falling back to PHYSICAL mode.
 
-  47. The 'pwd' builtin verifies that the value it prints is the same as
+  48. The 'pwd' builtin verifies that the value it prints is the same as
      the current directory, even if it is not asked to check the file
      system with the '-P' option.
 
-  48. When listing the history, the 'fc' builtin does not include an
+  49. When listing the history, the 'fc' builtin does not include an
      indication of whether or not a history entry has been modified.
 
-  49. The default editor used by 'fc' is 'ed'.
+  50. The default editor used by 'fc' is 'ed'.
 
-  50. The 'type' and 'command' builtins will not report a non-executable
+  51. The 'type' and 'command' builtins will not report a non-executable
      file as having been found, though the shell will attempt to execute
      such a file if it is the only so-named file found in '$PATH'.
 
-  51. The 'vi' editing mode will invoke the 'vi' editor directly when
+  52. The 'vi' editing mode will invoke the 'vi' editor directly when
      the 'v' command is run, instead of checking '$VISUAL' and
      '$EDITOR'.
 
-  52. When the 'xpg_echo' option is enabled, Bash does not attempt to
+  53. When the 'xpg_echo' option is enabled, Bash does not attempt to
      interpret any arguments to 'echo' as options.  Each argument is
      displayed, after escape characters are converted.
 
-  53. The 'ulimit' builtin uses a block size of 512 bytes for the '-c'
+  54. The 'ulimit' builtin uses a block size of 512 bytes for the '-c'
      and '-f' options.
 
-  54. The arrival of 'SIGCHLD' when a trap is set on 'SIGCHLD' does not
+  55. The arrival of 'SIGCHLD' when a trap is set on 'SIGCHLD' does not
      interrupt the 'wait' builtin and cause it to return immediately.
      The trap command is run once for each child that exits.
 
-  55. The 'read' builtin may be interrupted by a signal for which a trap
+  56. The 'read' builtin may be interrupted by a signal for which a trap
      has been set.  If Bash receives a trapped signal while executing
      'read', the trap handler executes and 'read' returns an exit status
      greater than 128.
 
-  56. Bash removes an exited background process's status from the list
+  57. Bash removes an exited background process's status from the list
      of such statuses after the 'wait' builtin is used to obtain it.
 
    There is other POSIX behavior that Bash does not implement by default
@@ -7374,7 +7410,7 @@ Variable Settings
           If set to 'on', and COMPLETION-IGNORE-CASE is enabled,
           Readline treats hyphens ('-') and underscores ('_') as
           equivalent when performing case-insensitive filename matching
-          and completion.
+          and completion.  The default value is 'off'.
 
      'completion-prefix-display-length'
           The length in characters of the common prefix of a list of
@@ -7650,7 +7686,7 @@ Key Bindings
                Meta-Rubout: backward-kill-word
                Control-o: "> output"
 
-          In the above example, 'C-u' is bound to the function
+          In the example above, 'C-u' is bound to the function
           'universal-argument', 'M-DEL' is bound to the function
           'backward-kill-word', and 'C-o' is bound to run the macro
           expressed on the right hand side (that is, to insert the text
@@ -8141,7 +8177,7 @@ File: bash.info,  Node: Commands For Text,  Next: Commands For Killing,  Prev: C
      assigned by default.  It allows Readline to insert the pasted text
      as a single unit without treating each character as if it had been
      read from the keyboard.  The characters are inserted as if each one
-     was bound to 'self-insert') instead of executing any editing
+     was bound to 'self-insert' instead of executing any editing
      commands.
 
 'transpose-chars (C-t)'
@@ -8737,26 +8773,34 @@ happening.
      no matches were generated.
 
 'complete'
-          complete [-abcdefgjksuv] [-o COMP-OPTION] [-DE] [-A ACTION] [-G GLOBPAT] [-W WORDLIST]
-          [-F FUNCTION] [-C COMMAND] [-X FILTERPAT]
+          complete [-abcdefgjksuv] [-o COMP-OPTION] [-DEI] [-A ACTION] [-G GLOBPAT]
+          [-W WORDLIST] [-F FUNCTION] [-C COMMAND] [-X FILTERPAT]
           [-P PREFIX] [-S SUFFIX] NAME [NAME ...]
-          complete -pr [-DE] [NAME ...]
+          complete -pr [-DEI] [NAME ...]
 
      Specify how arguments to each NAME should be completed.  If the
      '-p' option is supplied, or if no options are supplied, existing
      completion specifications are printed in a way that allows them to
      be reused as input.  The '-r' option removes a completion
      specification for each NAME, or, if no NAMEs are supplied, all
-     completion specifications.  The '-D' option indicates that the
-     remaining options and actions should apply to the "default" command
+     completion specifications.  The '-D' option indicates that other
+     supplied options and actions should apply to the "default" command
      completion; that is, completion attempted on a command for which no
      completion has previously been defined.  The '-E' option indicates
-     that the remaining options and actions should apply to "empty"
+     that other supplied options and actions should apply to "empty"
      command completion; that is, completion attempted on a blank line.
+     The '-I' option indicates that other supplied options and actions
+     should apply to completion on the inital non-assignment word on the
+     line, or after a command delimiter such as ';' or '|', which is
+     usually command name completion.  If multiple options are supplied,
+     the '-D' option takes precedence over '-E', and both take
+     precedence over '-I'.  If any of '-D', '-E', or '-I' are supplied,
+     any other NAME arguments are ignored; these completions only apply
+     to the case specified by the option.
 
      The process of applying these completion specifications when word
      completion is attempted is described above (*note Programmable
-     Completion::).  The '-D' option takes precedence over '-E'.
+     Completion::).
 
      Other options, if specified, have the following meanings.  The
      arguments to the '-G', '-W', and '-X' options (and, if necessary,
@@ -8783,7 +8827,7 @@ happening.
           'filenames'
                Tell Readline that the compspec generates filenames, so
                it can perform any filename-specific processing (like
-               adding a slash to directory names quoting special
+               adding a slash to directory names, quoting special
                characters, or suppressing trailing spaces).  This option
                is intended to be used with shell functions specified
                with '-F'.
@@ -8936,20 +8980,24 @@ happening.
      completion specification.
 
 'compopt'
-          compopt [-o OPTION] [-DE] [+o OPTION] [NAME]
+          compopt [-o OPTION] [-DEI] [+o OPTION] [NAME]
      Modify completion options for each NAME according to the OPTIONs,
      or for the currently-executing 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 '-D'
-     option indicates that the remaining options should apply to the
+     option indicates that other supplied options should apply to the
      "default" command completion; that is, completion attempted on a
      command for which no completion has previously been defined.  The
-     '-E' option indicates that the remaining options should apply to
+     '-E' option indicates that other supplied options should apply to
      "empty" command completion; that is, completion attempted on a
-     blank line.
+     blank line.  The '-I' option indicates that other supplied options
+     should apply to completion on the inital non-assignment word on the
+     line, or after a command delimiter such as ';' or '|', which is
+     usually command name completion.
 
-     The '-D' option takes precedence over '-E'.
+     If multiple options are supplied, the '-D' option takes precedence
+     over '-E', and both take precedence over '-I'
 
      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
@@ -8993,7 +9041,7 @@ retrieves the completions from there when the function returns.
          local cur _skipdot _cdpath
          local i j k
 
-         # Tilde expansion, with side effect of expanding tilde to full pathname
+         # Tilde expansion, which also expands tilde to full pathname
          case "$2" in
          \~*)    eval cur="$2" ;;
          *)      cur=$2 ;;
@@ -9263,7 +9311,8 @@ previous commands quickly.
 
    History expansion is performed immediately after a complete line is
 read, before the shell breaks it into words, and is performed on each
-line individually without taking quoting on previous lines into account.
+line individually.  Bash attempts to inform the history expansion
+functions about quoting still in effect from previous lines.
 
    History expansion takes place in two parts.  The first is to
 determine which line from the history list should be used during
@@ -9274,10 +9323,20 @@ are called "words".  Various "modifiers" are available to manipulate the
 selected words.  The line is broken into words in the same fashion that
 Bash does, so that several words surrounded by quotes are considered one
 word.  History expansions are introduced by the appearance of the
-history expansion character, which is '!' by default.  Only '\' and '''
-may be used to escape the history expansion character, but the history
-expansion character is also treated as quoted if it immediately precedes
-the closing double quote in a double-quoted string.
+history expansion character, which is '!' by default.
+
+   History expansion implements shell-like quoting conventions: a
+backslash can be used to remove the special handling for the next
+character; single quotes enclose verbatim sequences of characters, and
+can be used to inhibit history expansion; and characters enclosed within
+double quotes may be subject to history expansion, since backslash can
+escape the history expansion character, but single quotes may not, since
+they are not treated specially within double quotes.
+
+   When using the shell, only '\' and ''' may be used to escape the
+history expansion character, but the history expansion character is also
+treated as quoted if it immediately precedes the closing double quote in
+a double-quoted string.
 
    Several shell options settable with the 'shopt' builtin (*note The
 Shopt Builtin::) may be used to tailor the behavior of history
@@ -9760,8 +9819,8 @@ and linked, rather than changing run-time features.
 
 '--enable-largefile'
      Enable support for large files
-     (http://www.sas.com/standards/large_file/x_open.20Mar96.html) if
-     the operating system requires special compiler options to build
+     (http://www.unix.org/version2/whatsnew/lfs20mar.html) if the
+     operating system requires special compiler options to build
      programs which can access large files.  This is enabled by default,
      if the operating system provides large file support.
 
@@ -10881,7 +10940,7 @@ D.1 Index of Shell Builtin Commands
 * complete:                              Programmable Completion Builtins.
                                                               (line  30)
 * compopt:                               Programmable Completion Builtins.
-                                                              (line 229)
+                                                              (line 237)
 * continue:                              Bourne Shell Builtins.
                                                               (line  85)
 * declare:                               Bash Builtins.       (line 148)
@@ -10966,9 +11025,9 @@ D.2 Index of Shell Reserved Words
 
 * !:                                     Pipelines.           (line   9)
 * [[:                                    Conditional Constructs.
-                                                              (line 122)
+                                                              (line 124)
 * ]]:                                    Conditional Constructs.
-                                                              (line 122)
+                                                              (line 124)
 * {:                                     Command Grouping.    (line  21)
 * }:                                     Command Grouping.    (line  21)
 * case:                                  Conditional Constructs.
@@ -10990,7 +11049,7 @@ D.2 Index of Shell Reserved Words
 * in:                                    Conditional Constructs.
                                                               (line  28)
 * select:                                Conditional Constructs.
-                                                              (line  80)
+                                                              (line  82)
 * then:                                  Conditional Constructs.
                                                               (line   7)
 * time:                                  Pipelines.           (line   9)
@@ -11006,24 +11065,24 @@ D.3 Parameter and Variable Index
 \0\b[index\0\b]
 * Menu:
 
-* !:                                     Special Parameters.  (line  50)
-* #:                                     Special Parameters.  (line  33)
-* $:                                     Special Parameters.  (line  45)
-* $!:                                    Special Parameters.  (line  51)
-* $#:                                    Special Parameters.  (line  34)
-* $$:                                    Special Parameters.  (line  46)
+* !:                                     Special Parameters.  (line  56)
+* #:                                     Special Parameters.  (line  39)
+* $:                                     Special Parameters.  (line  51)
+* $!:                                    Special Parameters.  (line  57)
+* $#:                                    Special Parameters.  (line  40)
+* $$:                                    Special Parameters.  (line  52)
 * $*:                                    Special Parameters.  (line  10)
-* $-:                                    Special Parameters.  (line  41)
-* $0:                                    Special Parameters.  (line  56)
-* $?:                                    Special Parameters.  (line  37)
+* $-:                                    Special Parameters.  (line  47)
+* $0:                                    Special Parameters.  (line  62)
+* $?:                                    Special Parameters.  (line  43)
 * $@:                                    Special Parameters.  (line  23)
-* $_:                                    Special Parameters.  (line  65)
+* $_:                                    Special Parameters.  (line  71)
 * *:                                     Special Parameters.  (line   9)
-* -:                                     Special Parameters.  (line  40)
-* 0:                                     Special Parameters.  (line  55)
-* ?:                                     Special Parameters.  (line  36)
+* -:                                     Special Parameters.  (line  46)
+* 0:                                     Special Parameters.  (line  61)
+* ?:                                     Special Parameters.  (line  42)
 * @:                                     Special Parameters.  (line  22)
-* _:                                     Special Parameters.  (line  64)
+* _:                                     Special Parameters.  (line  70)
 * auto_resume:                           Job Control Variables.
                                                               (line   6)
 * BASH:                                  Bash Variables.      (line  13)
@@ -11031,21 +11090,21 @@ D.3 Parameter and Variable Index
 * BASHPID:                               Bash Variables.      (line  25)
 * BASH_ALIASES:                          Bash Variables.      (line  32)
 * BASH_ARGC:                             Bash Variables.      (line  41)
-* BASH_ARGV:                             Bash Variables.      (line  53)
-* BASH_ARGV0:                            Bash Variables.      (line  64)
-* BASH_CMDS:                             Bash Variables.      (line  72)
-* BASH_COMMAND:                          Bash Variables.      (line  81)
-* BASH_COMPAT:                           Bash Variables.      (line  86)
-* BASH_ENV:                              Bash Variables.      (line 101)
-* BASH_EXECUTION_STRING:                 Bash Variables.      (line 107)
-* BASH_LINENO:                           Bash Variables.      (line 110)
-* BASH_LOADABLES_PATH:                   Bash Variables.      (line 118)
-* BASH_REMATCH:                          Bash Variables.      (line 122)
-* BASH_SOURCE:                           Bash Variables.      (line 130)
-* BASH_SUBSHELL:                         Bash Variables.      (line 137)
-* BASH_VERSINFO:                         Bash Variables.      (line 142)
-* BASH_VERSION:                          Bash Variables.      (line 165)
-* BASH_XTRACEFD:                         Bash Variables.      (line 168)
+* BASH_ARGV:                             Bash Variables.      (line  54)
+* BASH_ARGV0:                            Bash Variables.      (line  66)
+* BASH_CMDS:                             Bash Variables.      (line  74)
+* BASH_COMMAND:                          Bash Variables.      (line  83)
+* BASH_COMPAT:                           Bash Variables.      (line  88)
+* BASH_ENV:                              Bash Variables.      (line 103)
+* BASH_EXECUTION_STRING:                 Bash Variables.      (line 109)
+* BASH_LINENO:                           Bash Variables.      (line 112)
+* BASH_LOADABLES_PATH:                   Bash Variables.      (line 120)
+* BASH_REMATCH:                          Bash Variables.      (line 124)
+* BASH_SOURCE:                           Bash Variables.      (line 132)
+* BASH_SUBSHELL:                         Bash Variables.      (line 139)
+* BASH_VERSINFO:                         Bash Variables.      (line 144)
+* BASH_VERSION:                          Bash Variables.      (line 167)
+* BASH_XTRACEFD:                         Bash Variables.      (line 170)
 * bell-style:                            Readline Init File Syntax.
                                                               (line  38)
 * bind-tty-special-chars:                Readline Init File Syntax.
@@ -11054,12 +11113,12 @@ D.3 Parameter and Variable Index
                                                               (line  50)
 * CDPATH:                                Bourne Shell Variables.
                                                               (line   9)
-* CHILD_MAX:                             Bash Variables.      (line 179)
+* CHILD_MAX:                             Bash Variables.      (line 181)
 * colored-completion-prefix:             Readline Init File Syntax.
                                                               (line  55)
 * colored-stats:                         Readline Init File Syntax.
                                                               (line  62)
-* COLUMNS:                               Bash Variables.      (line 186)
+* COLUMNS:                               Bash Variables.      (line 188)
 * comment-begin:                         Readline Init File Syntax.
                                                               (line  68)
 * completion-display-width:              Readline Init File Syntax.
@@ -11072,90 +11131,91 @@ D.3 Parameter and Variable Index
                                                               (line  91)
 * completion-query-items:                Readline Init File Syntax.
                                                               (line  98)
-* COMPREPLY:                             Bash Variables.      (line 238)
-* COMP_CWORD:                            Bash Variables.      (line 192)
-* COMP_KEY:                              Bash Variables.      (line 221)
-* COMP_LINE:                             Bash Variables.      (line 198)
-* COMP_POINT:                            Bash Variables.      (line 203)
-* COMP_TYPE:                             Bash Variables.      (line 211)
-* COMP_WORDBREAKS:                       Bash Variables.      (line 225)
-* COMP_WORDS:                            Bash Variables.      (line 231)
+* COMPREPLY:                             Bash Variables.      (line 240)
+* COMP_CWORD:                            Bash Variables.      (line 194)
+* COMP_KEY:                              Bash Variables.      (line 223)
+* COMP_LINE:                             Bash Variables.      (line 200)
+* COMP_POINT:                            Bash Variables.      (line 205)
+* COMP_TYPE:                             Bash Variables.      (line 213)
+* COMP_WORDBREAKS:                       Bash Variables.      (line 227)
+* COMP_WORDS:                            Bash Variables.      (line 233)
 * convert-meta:                          Readline Init File Syntax.
                                                               (line 108)
-* COPROC:                                Bash Variables.      (line 244)
-* DIRSTACK:                              Bash Variables.      (line 248)
+* COPROC:                                Bash Variables.      (line 246)
+* DIRSTACK:                              Bash Variables.      (line 250)
 * disable-completion:                    Readline Init File Syntax.
                                                               (line 116)
 * echo-control-characters:               Readline Init File Syntax.
                                                               (line 121)
 * editing-mode:                          Readline Init File Syntax.
                                                               (line 126)
-* EMACS:                                 Bash Variables.      (line 258)
+* EMACS:                                 Bash Variables.      (line 260)
 * emacs-mode-string:                     Readline Init File Syntax.
                                                               (line 132)
 * enable-bracketed-paste:                Readline Init File Syntax.
                                                               (line 142)
 * enable-keypad:                         Readline Init File Syntax.
                                                               (line 150)
-* ENV:                                   Bash Variables.      (line 263)
-* EPOCHREALTIME:                         Bash Variables.      (line 267)
-* EPOCHSECONDS:                          Bash Variables.      (line 275)
-* EUID:                                  Bash Variables.      (line 282)
-* EXECIGNORE:                            Bash Variables.      (line 286)
+* ENV:                                   Bash Variables.      (line 265)
+* EPOCHREALTIME:                         Bash Variables.      (line 269)
+* EPOCHSECONDS:                          Bash Variables.      (line 277)
+* EUID:                                  Bash Variables.      (line 284)
+* EXECIGNORE:                            Bash Variables.      (line 288)
 * expand-tilde:                          Readline Init File Syntax.
                                                               (line 161)
-* FCEDIT:                                Bash Variables.      (line 299)
-* FIGNORE:                               Bash Variables.      (line 303)
-* FUNCNAME:                              Bash Variables.      (line 309)
-* FUNCNEST:                              Bash Variables.      (line 326)
-* GLOBIGNORE:                            Bash Variables.      (line 331)
-* GROUPS:                                Bash Variables.      (line 338)
-* histchars:                             Bash Variables.      (line 344)
-* HISTCMD:                               Bash Variables.      (line 359)
-* HISTCONTROL:                           Bash Variables.      (line 364)
-* HISTFILE:                              Bash Variables.      (line 380)
-* HISTFILESIZE:                          Bash Variables.      (line 384)
-* HISTIGNORE:                            Bash Variables.      (line 395)
+* FCEDIT:                                Bash Variables.      (line 301)
+* FIGNORE:                               Bash Variables.      (line 305)
+* FUNCNAME:                              Bash Variables.      (line 311)
+* FUNCNEST:                              Bash Variables.      (line 328)
+* GLOBIGNORE:                            Bash Variables.      (line 333)
+* GROUPS:                                Bash Variables.      (line 340)
+* histchars:                             Bash Variables.      (line 346)
+* HISTCMD:                               Bash Variables.      (line 361)
+* HISTCONTROL:                           Bash Variables.      (line 366)
+* HISTFILE:                              Bash Variables.      (line 382)
+* HISTFILESIZE:                          Bash Variables.      (line 386)
+* HISTIGNORE:                            Bash Variables.      (line 397)
 * history-preserve-point:                Readline Init File Syntax.
                                                               (line 165)
 * history-size:                          Readline Init File Syntax.
                                                               (line 171)
-* HISTSIZE:                              Bash Variables.      (line 415)
-* HISTTIMEFORMAT:                        Bash Variables.      (line 422)
+* HISTSIZE:                              Bash Variables.      (line 417)
+* HISTTIMEFORMAT:                        Bash Variables.      (line 424)
 * HOME:                                  Bourne Shell Variables.
                                                               (line  13)
 * horizontal-scroll-mode:                Readline Init File Syntax.
                                                               (line 180)
-* HOSTFILE:                              Bash Variables.      (line 430)
-* HOSTNAME:                              Bash Variables.      (line 441)
-* HOSTTYPE:                              Bash Variables.      (line 444)
+* HOSTFILE:                              Bash Variables.      (line 432)
+* HOSTNAME:                              Bash Variables.      (line 443)
+* HOSTTYPE:                              Bash Variables.      (line 446)
 * IFS:                                   Bourne Shell Variables.
                                                               (line  18)
-* IGNOREEOF:                             Bash Variables.      (line 447)
+* IGNOREEOF:                             Bash Variables.      (line 449)
 * input-meta:                            Readline Init File Syntax.
                                                               (line 187)
-* INPUTRC:                               Bash Variables.      (line 457)
+* INPUTRC:                               Bash Variables.      (line 459)
+* INSIDE_EMACS:                          Bash Variables.      (line 463)
 * isearch-terminators:                   Readline Init File Syntax.
                                                               (line 195)
 * keymap:                                Readline Init File Syntax.
                                                               (line 202)
-* LANG:                                  Bash Variables.      (line 461)
-* LC_ALL:                                Bash Variables.      (line 465)
-* LC_COLLATE:                            Bash Variables.      (line 469)
-* LC_CTYPE:                              Bash Variables.      (line 476)
+* LANG:                                  Bash Variables.      (line 469)
+* LC_ALL:                                Bash Variables.      (line 473)
+* LC_COLLATE:                            Bash Variables.      (line 477)
+* LC_CTYPE:                              Bash Variables.      (line 484)
 * LC_MESSAGES:                           Locale Translation.  (line  11)
-* LC_MESSAGES <1>:                       Bash Variables.      (line 481)
-* LC_NUMERIC:                            Bash Variables.      (line 485)
-* LC_TIME:                               Bash Variables.      (line 489)
-* LINENO:                                Bash Variables.      (line 493)
-* LINES:                                 Bash Variables.      (line 497)
-* MACHTYPE:                              Bash Variables.      (line 503)
+* LC_MESSAGES <1>:                       Bash Variables.      (line 489)
+* LC_NUMERIC:                            Bash Variables.      (line 493)
+* LC_TIME:                               Bash Variables.      (line 497)
+* LINENO:                                Bash Variables.      (line 501)
+* LINES:                                 Bash Variables.      (line 505)
+* MACHTYPE:                              Bash Variables.      (line 511)
 * MAIL:                                  Bourne Shell Variables.
                                                               (line  22)
-* MAILCHECK:                             Bash Variables.      (line 507)
+* MAILCHECK:                             Bash Variables.      (line 515)
 * MAILPATH:                              Bourne Shell Variables.
                                                               (line  27)
-* MAPFILE:                               Bash Variables.      (line 515)
+* MAPFILE:                               Bash Variables.      (line 523)
 * mark-modified-lines:                   Readline Init File Syntax.
                                                               (line 232)
 * mark-symlinked-directories:            Readline Init File Syntax.
@@ -11166,42 +11226,42 @@ D.3 Parameter and Variable Index
                                                               (line 249)
 * meta-flag:                             Readline Init File Syntax.
                                                               (line 187)
-* OLDPWD:                                Bash Variables.      (line 519)
+* OLDPWD:                                Bash Variables.      (line 527)
 * OPTARG:                                Bourne Shell Variables.
                                                               (line  34)
-* OPTERR:                                Bash Variables.      (line 522)
+* OPTERR:                                Bash Variables.      (line 530)
 * OPTIND:                                Bourne Shell Variables.
                                                               (line  38)
-* OSTYPE:                                Bash Variables.      (line 526)
+* OSTYPE:                                Bash Variables.      (line 534)
 * output-meta:                           Readline Init File Syntax.
                                                               (line 254)
 * page-completions:                      Readline Init File Syntax.
                                                               (line 260)
 * PATH:                                  Bourne Shell Variables.
                                                               (line  42)
-* PIPESTATUS:                            Bash Variables.      (line 529)
-* POSIXLY_CORRECT:                       Bash Variables.      (line 534)
-* PPID:                                  Bash Variables.      (line 543)
-* PROMPT_COMMAND:                        Bash Variables.      (line 547)
-* PROMPT_DIRTRIM:                        Bash Variables.      (line 551)
-* PS0:                                   Bash Variables.      (line 557)
+* PIPESTATUS:                            Bash Variables.      (line 537)
+* POSIXLY_CORRECT:                       Bash Variables.      (line 542)
+* PPID:                                  Bash Variables.      (line 552)
+* PROMPT_COMMAND:                        Bash Variables.      (line 556)
+* PROMPT_DIRTRIM:                        Bash Variables.      (line 560)
+* PS0:                                   Bash Variables.      (line 566)
 * PS1:                                   Bourne Shell Variables.
                                                               (line  48)
 * PS2:                                   Bourne Shell Variables.
                                                               (line  53)
-* PS3:                                   Bash Variables.      (line 562)
-* PS4:                                   Bash Variables.      (line 567)
-* PWD:                                   Bash Variables.      (line 575)
-* RANDOM:                                Bash Variables.      (line 578)
-* READLINE_LINE:                         Bash Variables.      (line 583)
-* READLINE_POINT:                        Bash Variables.      (line 587)
-* REPLY:                                 Bash Variables.      (line 591)
+* PS3:                                   Bash Variables.      (line 571)
+* PS4:                                   Bash Variables.      (line 576)
+* PWD:                                   Bash Variables.      (line 584)
+* RANDOM:                                Bash Variables.      (line 587)
+* READLINE_LINE:                         Bash Variables.      (line 592)
+* READLINE_POINT:                        Bash Variables.      (line 596)
+* REPLY:                                 Bash Variables.      (line 600)
 * revert-all-at-newline:                 Readline Init File Syntax.
                                                               (line 270)
-* SECONDS:                               Bash Variables.      (line 594)
-* SHELL:                                 Bash Variables.      (line 600)
-* SHELLOPTS:                             Bash Variables.      (line 605)
-* SHLVL:                                 Bash Variables.      (line 614)
+* SECONDS:                               Bash Variables.      (line 603)
+* SHELL:                                 Bash Variables.      (line 609)
+* SHELLOPTS:                             Bash Variables.      (line 614)
+* SHLVL:                                 Bash Variables.      (line 623)
 * show-all-if-ambiguous:                 Readline Init File Syntax.
                                                               (line 276)
 * show-all-if-unmodified:                Readline Init File Syntax.
@@ -11212,10 +11272,10 @@ D.3 Parameter and Variable Index
                                                               (line 297)
 * TEXTDOMAIN:                            Locale Translation.  (line  11)
 * TEXTDOMAINDIR:                         Locale Translation.  (line  11)
-* TIMEFORMAT:                            Bash Variables.      (line 619)
-* TMOUT:                                 Bash Variables.      (line 657)
-* TMPDIR:                                Bash Variables.      (line 669)
-* UID:                                   Bash Variables.      (line 673)
+* TIMEFORMAT:                            Bash Variables.      (line 628)
+* TMOUT:                                 Bash Variables.      (line 666)
+* TMPDIR:                                Bash Variables.      (line 678)
+* UID:                                   Bash Variables.      (line 682)
 * vi-cmd-mode-string:                    Readline Init File Syntax.
                                                               (line 310)
 * vi-ins-mode-string:                    Readline Init File Syntax.
@@ -11512,7 +11572,7 @@ D.5 Concept Index
 * installation:                          Basic Installation.  (line   6)
 * interaction, readline:                 Readline Interaction.
                                                               (line   6)
-* interactive shell:                     Invoking Bash.       (line 128)
+* interactive shell:                     Invoking Bash.       (line 131)
 * interactive shell <1>:                 Interactive Shells.  (line   6)
 * internationalization:                  Locale Translation.  (line   6)
 * job:                                   Definitions.         (line  38)
@@ -11523,7 +11583,7 @@ D.5 Concept Index
 * killing text:                          Readline Killing Commands.
                                                               (line   6)
 * localization:                          Locale Translation.  (line   6)
-* login shell:                           Invoking Bash.       (line 125)
+* login shell:                           Invoking Bash.       (line 128)
 * matching, pattern:                     Pattern Matching.    (line   6)
 * metacharacter:                         Definitions.         (line  46)
 * name:                                  Definitions.         (line  51)
@@ -11606,112 +11666,112 @@ Node: Lists\7f23781
 Node: Compound Commands\7f25520
 Node: Looping Constructs\7f26532
 Node: Conditional Constructs\7f29027
-Node: Command Grouping\7f40082
-Node: Coprocesses\7f41561
-Node: GNU Parallel\7f43464
-Node: Shell Functions\7f47438
-Node: Shell Parameters\7f54521
-Node: Positional Parameters\7f58934
-Node: Special Parameters\7f59834
-Node: Shell Expansions\7f63171
-Node: Brace Expansion\7f65294
-Node: Tilde Expansion\7f68018
-Node: Shell Parameter Expansion\7f70366
-Node: Command Substitution\7f84849
-Node: Arithmetic Expansion\7f86204
-Node: Process Substitution\7f87136
-Node: Word Splitting\7f88256
-Node: Filename Expansion\7f90200
-Node: Pattern Matching\7f92730
-Node: Quote Removal\7f96716
-Node: Redirections\7f97011
-Node: Executing Commands\7f106569
-Node: Simple Command Expansion\7f107239
-Node: Command Search and Execution\7f109169
-Node: Command Execution Environment\7f111545
-Node: Environment\7f114529
-Node: Exit Status\7f116188
-Node: Signals\7f117858
-Node: Shell Scripts\7f119825
-Node: Shell Builtin Commands\7f122340
-Node: Bourne Shell Builtins\7f124378
-Node: Bash Builtins\7f145036
-Node: Modifying Shell Behavior\7f173944
-Node: The Set Builtin\7f174289
-Node: The Shopt Builtin\7f184702
-Node: Special Builtins\7f201572
-Node: Shell Variables\7f202551
-Node: Bourne Shell Variables\7f202988
-Node: Bash Variables\7f205092
-Node: Bash Features\7f235106
-Node: Invoking Bash\7f236005
-Node: Bash Startup Files\7f241991
-Node: Interactive Shells\7f247094
-Node: What is an Interactive Shell?\7f247504
-Node: Is this Shell Interactive?\7f248153
-Node: Interactive Shell Behavior\7f248968
-Node: Bash Conditional Expressions\7f252456
-Node: Shell Arithmetic\7f256822
-Node: Aliases\7f259639
-Node: Arrays\7f262187
-Node: The Directory Stack\7f267553
-Node: Directory Stack Builtins\7f268337
-Node: Controlling the Prompt\7f271305
-Node: The Restricted Shell\7f274067
-Node: Bash POSIX Mode\7f275892
-Node: Job Control\7f286243
-Node: Job Control Basics\7f286703
-Node: Job Control Builtins\7f291671
-Node: Job Control Variables\7f296398
-Node: Command Line Editing\7f297554
-Node: Introduction and Notation\7f299225
-Node: Readline Interaction\7f300848
-Node: Readline Bare Essentials\7f302039
-Node: Readline Movement Commands\7f303822
-Node: Readline Killing Commands\7f304782
-Node: Readline Arguments\7f306700
-Node: Searching\7f307744
-Node: Readline Init File\7f309930
-Node: Readline Init File Syntax\7f311077
-Node: Conditional Init Constructs\7f331448
-Node: Sample Init File\7f335644
-Node: Bindable Readline Commands\7f338761
-Node: Commands For Moving\7f339965
-Node: Commands For History\7f341814
-Node: Commands For Text\7f346109
-Node: Commands For Killing\7f349498
-Node: Numeric Arguments\7f351979
-Node: Commands For Completion\7f353118
-Node: Keyboard Macros\7f357309
-Node: Miscellaneous Commands\7f357996
-Node: Readline vi Mode\7f363949
-Node: Programmable Completion\7f364856
-Node: Programmable Completion Builtins\7f372450
-Node: A Programmable Completion Example\7f382336
-Node: Using History Interactively\7f387587
-Node: Bash History Facilities\7f388271
-Node: Bash History Builtins\7f391276
-Node: History Interaction\7f395807
-Node: Event Designators\7f398874
-Node: Word Designators\7f400093
-Node: Modifiers\7f401730
-Node: Installing Bash\7f403132
-Node: Basic Installation\7f404269
-Node: Compilers and Options\7f407527
-Node: Compiling For Multiple Architectures\7f408268
-Node: Installation Names\7f409961
-Node: Specifying the System Type\7f410779
-Node: Sharing Defaults\7f411495
-Node: Operation Controls\7f412168
-Node: Optional Features\7f413126
-Node: Reporting Bugs\7f423652
-Node: Major Differences From The Bourne Shell\7f424846
-Node: GNU Free Documentation License\7f441698
-Node: Indexes\7f466875
-Node: Builtin Index\7f467329
-Node: Reserved Word Index\7f474156
-Node: Variable Index\7f476604
-Node: Function Index\7f492282
-Node: Concept Index\7f505585
+Node: Command Grouping\7f40110
+Node: Coprocesses\7f41589
+Node: GNU Parallel\7f43492
+Node: Shell Functions\7f47550
+Node: Shell Parameters\7f54633
+Node: Positional Parameters\7f59046
+Node: Special Parameters\7f59946
+Node: Shell Expansions\7f63660
+Node: Brace Expansion\7f65783
+Node: Tilde Expansion\7f68507
+Node: Shell Parameter Expansion\7f71124
+Node: Command Substitution\7f85580
+Node: Arithmetic Expansion\7f86935
+Node: Process Substitution\7f87867
+Node: Word Splitting\7f88987
+Node: Filename Expansion\7f90931
+Node: Pattern Matching\7f93461
+Node: Quote Removal\7f97447
+Node: Redirections\7f97742
+Node: Executing Commands\7f107300
+Node: Simple Command Expansion\7f107970
+Node: Command Search and Execution\7f109900
+Node: Command Execution Environment\7f112276
+Node: Environment\7f115260
+Node: Exit Status\7f116919
+Node: Signals\7f118589
+Node: Shell Scripts\7f120556
+Node: Shell Builtin Commands\7f123071
+Node: Bourne Shell Builtins\7f125109
+Node: Bash Builtins\7f145767
+Node: Modifying Shell Behavior\7f174675
+Node: The Set Builtin\7f175020
+Node: The Shopt Builtin\7f185433
+Node: Special Builtins\7f202303
+Node: Shell Variables\7f203282
+Node: Bourne Shell Variables\7f203719
+Node: Bash Variables\7f205823
+Node: Bash Features\7f236283
+Node: Invoking Bash\7f237182
+Node: Bash Startup Files\7f243195
+Node: Interactive Shells\7f248298
+Node: What is an Interactive Shell?\7f248708
+Node: Is this Shell Interactive?\7f249357
+Node: Interactive Shell Behavior\7f250172
+Node: Bash Conditional Expressions\7f253659
+Node: Shell Arithmetic\7f258025
+Node: Aliases\7f260842
+Node: Arrays\7f263390
+Node: The Directory Stack\7f268756
+Node: Directory Stack Builtins\7f269540
+Node: Controlling the Prompt\7f272508
+Node: The Restricted Shell\7f275274
+Node: Bash POSIX Mode\7f277099
+Node: Job Control\7f287514
+Node: Job Control Basics\7f287974
+Node: Job Control Builtins\7f292942
+Node: Job Control Variables\7f297669
+Node: Command Line Editing\7f298825
+Node: Introduction and Notation\7f300496
+Node: Readline Interaction\7f302119
+Node: Readline Bare Essentials\7f303310
+Node: Readline Movement Commands\7f305093
+Node: Readline Killing Commands\7f306053
+Node: Readline Arguments\7f307971
+Node: Searching\7f309015
+Node: Readline Init File\7f311201
+Node: Readline Init File Syntax\7f312348
+Node: Conditional Init Constructs\7f332748
+Node: Sample Init File\7f336944
+Node: Bindable Readline Commands\7f340061
+Node: Commands For Moving\7f341265
+Node: Commands For History\7f343114
+Node: Commands For Text\7f347409
+Node: Commands For Killing\7f350797
+Node: Numeric Arguments\7f353278
+Node: Commands For Completion\7f354417
+Node: Keyboard Macros\7f358608
+Node: Miscellaneous Commands\7f359295
+Node: Readline vi Mode\7f365248
+Node: Programmable Completion\7f366155
+Node: Programmable Completion Builtins\7f373749
+Node: A Programmable Completion Example\7f384442
+Node: Using History Interactively\7f389682
+Node: Bash History Facilities\7f390366
+Node: Bash History Builtins\7f393371
+Node: History Interaction\7f397902
+Node: Event Designators\7f401522
+Node: Word Designators\7f402741
+Node: Modifiers\7f404378
+Node: Installing Bash\7f405780
+Node: Basic Installation\7f406917
+Node: Compilers and Options\7f410175
+Node: Compiling For Multiple Architectures\7f410916
+Node: Installation Names\7f412609
+Node: Specifying the System Type\7f413427
+Node: Sharing Defaults\7f414143
+Node: Operation Controls\7f414816
+Node: Optional Features\7f415774
+Node: Reporting Bugs\7f426292
+Node: Major Differences From The Bourne Shell\7f427486
+Node: GNU Free Documentation License\7f444338
+Node: Indexes\7f469515
+Node: Builtin Index\7f469969
+Node: Reserved Word Index\7f476796
+Node: Variable Index\7f479244
+Node: Function Index\7f494995
+Node: Concept Index\7f508298
 \1f
 End Tag Table
index de5d312976ec46fe6127022990df5c2543930480..b38b46d1cf3adf95cc162d236a78efd1ef6f327b 100644 (file)
Binary files a/doc/bash.pdf and b/doc/bash.pdf differ
index deccb7a7478086361f213b3e920f6c53d4097f57..5a7dc2d8aeb81cf3f7c17f37ab2681f95c820d00 100644 (file)
@@ -1,13 +1,13 @@
 %!PS-Adobe-3.0
 %%Creator: groff version 1.22.3
-%%CreationDate: Mon Mar 19 09:43:22 2018
+%%CreationDate: Fri Sep  7 15:34:15 2018
 %%DocumentNeededResources: font Times-Roman
 %%+ font Times-Bold
 %%+ font Times-Italic
 %%+ font Courier
 %%+ font Symbol
 %%DocumentSuppliedResources: procset grops 1.22 3
-%%Pages: 80
+%%Pages: 81
 %%PageOrder: Ascend
 %%DocumentMedia: Default 612 792 0 () ()
 %%Orientation: Portrait
@@ -340,7 +340,7 @@ F .475(xtended deb)-.15 F(ug-)-.2 E
 (~/.bashr)3.598 E(c)-.37 E F0 1.598(if the)4.408 F(shell is interacti)
 144 710.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(GNU Bash 5.0)72 768 Q
-(2018 March 15)144.29 E(1)198.45 E 0 Cg EP
+(2018 August 7)145.395 E(1)199.555 E 0 Cg EP
 %%Page: 2 2
 %%BeginPageSetup
 BP
@@ -462,8 +462,8 @@ F2(~/.bashr)108 691.2 Q(c)-.37 E F0 2.535(,i)C 2.535(ft)-2.535 G .035
 Q F1(bash)5.306 E F0 2.806(is started non-interacti)5.306 F -.15(ve)-.25
 G(ly).15 E 5.306(,t)-.65 G 5.306(or)-5.306 G 2.806
 (un a shell script, for e)-5.306 F 2.805(xample, it looks for the v)-.15
-F(ariable)-.25 E(GNU Bash 5.0)72 768 Q(2018 March 15)144.29 E(2)198.45 E
-0 Cg EP
+F(ariable)-.25 E(GNU Bash 5.0)72 768 Q(2018 August 7)145.395 E(2)199.555
+0 Cg EP
 %%Page: 3 3
 %%BeginPageSetup
 BP
@@ -598,7 +598,7 @@ F .389(wed by)-.25 F F2(blank)2.889 E F0 .389(-separated w)B .389
 -.15(xe)-.15 G(cuted,).15 E(and is passed as ar)108 722.4 Q
 (gument zero.)-.18 E(The remaining w)5 E(ords are passed as ar)-.1 E
 (guments to the in)-.18 E -.2(vo)-.4 G -.1(ke).2 G 2.5(dc).1 G(ommand.)
--2.5 E(GNU Bash 5.0)72 768 Q(2018 March 15)144.29 E(3)198.45 E 0 Cg EP
+-2.5 E(GNU Bash 5.0)72 768 Q(2018 August 7)145.395 E(3)199.555 E 0 Cg EP
 %%Page: 4 4
 %%BeginPageSetup
 BP
@@ -714,8 +714,8 @@ E -.15(xe)-.15 G(cuted with left associati).15 E(vity)-.25 E 5(.A)-.65 G
 (returns a non-zero e)2.935 F .435(xit status.)-.15 F .434
 (The return status of AND)5.434 F(and OR lists is the e)108 705.6 Q
 (xit status of the last command e)-.15 E -.15(xe)-.15 G
-(cuted in the list.).15 E(GNU Bash 5.0)72 768 Q(2018 March 15)144.29 E
-(4)198.45 E 0 Cg EP
+(cuted in the list.).15 E(GNU Bash 5.0)72 768 Q(2018 August 7)145.395 E
+(4)199.555 E 0 Cg EP
 %%Page: 5 5
 %%BeginPageSetup
 BP
@@ -802,9 +802,9 @@ to force the quoted portion to be matched as a string.)-2.5 E .243
 (An additional binary operator)144 481.2 R(,)-.4 E F1(=~)2.743 E F0
 2.743(,i)C 2.743(sa)-2.743 G -.25(va)-2.943 G .243
 (ilable, with the same precedence as).25 F F1(==)2.743 E F0(and)2.743 E
-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
-493.2 R 1.953(xtended re)-.15 F 1.953(gular e)-.15 F 1.953
+F1(!=)2.743 E F0 5.243(.W)C .243(hen it is)-5.243 F .182
+(used, the string to the right of the operator is considered a POSIX e)
+144 493.2 R .182(xtended re)-.15 F .181(gular e)-.15 F .181
 (xpression and)-.15 F .207(matched accordingly \(as in)144 505.2 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
@@ -844,8 +844,8 @@ F0 .597(with inde)2.847 F 3.097(x0i)-.15 G(s)-3.097 E .049
 2.5 E F0 .523(Returns the v)180 685.2 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 697.2 Q(GNU Bash 5.0)72 768 Q(2018 March 15)144.29 E(5)
-198.45 E 0 Cg EP
+(operators.)180 697.2 Q(GNU Bash 5.0)72 768 Q(2018 August 7)145.395 E(5)
+199.555 E 0 Cg EP
 %%Page: 6 6
 %%BeginPageSetup
 BP
@@ -993,8 +993,8 @@ F .478(xit status is zero, the)-.15 F F1(then)2.978 E F2(list)2.978 E F0
 -.15 F .103(xit sta-)-.15 F(tus of the last command e)144 688.8 Q -.15
 (xe)-.15 G(cuted, or zero if no condition tested true.).15 E F1(while)
 108 705.6 Q F2(list-1)2.5 E F0(;)A F1(do)2.5 E F2(list-2)2.5 E F0(;)A F1
-(done)2.5 E F0(GNU Bash 5.0)72 768 Q(2018 March 15)144.29 E(6)198.45 E 0
-Cg EP
+(done)2.5 E F0(GNU Bash 5.0)72 768 Q(2018 August 7)145.395 E(6)199.555 E
+Cg EP
 %%Page: 7 7
 %%BeginPageSetup
 BP
@@ -1128,7 +1128,7 @@ F .952(ord be)-.1 F .952(ginning with)-.15 F F1(#)3.451 E F0 .951
 (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(interacti)108
 698.4 Q .3 -.15(ve s)-.25 H(hells.).15 E(GNU Bash 5.0)72 768 Q
-(2018 March 15)144.29 E(7)198.45 E 0 Cg EP
+(2018 August 7)145.395 E(7)199.555 E 0 Cg EP
 %%Page: 8 8
 %%BeginPageSetup
 BP
@@ -1233,7 +1233,7 @@ ngle-quoted, as if the dollar sign had not been present.)-.15 E 2.64(Ad)
 108 720 S .14(ouble-quoted string preceded by a dollar sign \()-2.64 F
 F4($)A F0(")A F2(string)A F0 .14
 ("\) will cause the string to be translated according)B(GNU Bash 5.0)72
-768 Q(2018 March 15)144.29 E(8)198.45 E 0 Cg EP
+768 Q(2018 August 7)145.395 E(8)199.555 E 0 Cg EP
 %%Page: 9 9
 %%BeginPageSetup
 BP
@@ -1384,7 +1384,7 @@ F0 5.144(.I)C 2.644(ft)-5.144 G .144(he control v)-2.644 F .144
 (ke).2 G .444(d, and may be reassigned using).1 F(the)108 722.4 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(GNU Bash 5.0)72 768 Q(2018 March 15)144.29 E(9)198.45 E 0
+(The)5.834 E(GNU Bash 5.0)72 768 Q(2018 August 7)145.395 E(9)199.555 E 0
 Cg EP
 %%Page: 10 10
 %%BeginPageSetup
@@ -1422,2272 +1422,2298 @@ F2($1)A/F3 10/Times-Italic@0 SF(c)A F2($2)A F3(c)A F2(...)A F0(",)A
 .833(is unset, the parameters are)3.082 F(separated by spaces.)144 237.6
 Q(If)5 E F1(IFS)2.5 E F0
 (is null, the parameters are joined without interv)2.25 E
-(ening separators.)-.15 E F2(@)108 249.6 Q F0 .606
+(ening separators.)-.15 E F2(@)108 249.6 Q F0 .722
 (Expands to the positional parameters, starting from one.)144 249.6 R
-.605(When the e)5.605 F .605(xpansion occurs within dou-)-.15 F .113
-(ble quotes, each parameter e)144 261.6 R .113(xpands to a separate w)
--.15 F 2.614(ord. That)-.1 F .114(is, ")2.614 F F2($@)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 F2
-($1)A F0 2.614("")C F2($2)-2.614 E F0 2.614(".)C(..)-2.614 E .135
-(If the double-quoted e)144 273.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
-285.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 297.6 R 2.838(ord. When)-.1 F .337
-(there are no positional parameters, ")2.838 F F2($@)A F0 2.837("a)C(nd)
--2.837 E F2($@)2.837 E F0 -.15(ex)2.837 G(pand).15 E
-(to nothing \(i.e., the)144 309.6 Q 2.5(ya)-.15 G(re remo)-2.5 E -.15
-(ve)-.15 G(d\).).15 E F2(#)108 321.6 Q F0
-(Expands to the number of positional parameters in decimal.)144 321.6 Q
-F2(?)108 333.6 Q F0(Expands to the e)144 333.6 Q
+.722(In conte)5.722 F .722(xts where w)-.15 F .722(ord splitting is per)
+-.1 F(-)-.2 E 1.165(formed, this e)144 261.6 R 1.165
+(xpands each positional parameter to a separate w)-.15 F 1.165
+(ord; if not within double quotes,)-.1 F .655(these w)144 273.6 R .655
+(ords are subject to w)-.1 F .655(ord splitting.)-.1 F .655(In conte)
+5.655 F .655(xts where w)-.15 F .654
+(ord splitting is not performed, this)-.1 F -.15(ex)144 285.6 S .748
+(pands to a single w).15 F .748
+(ord with each positional parameter separated by a space.)-.1 F .748
+(When the e)5.748 F(xpan-)-.15 E 1.091
+(sion occurs within double quotes, each parameter e)144 297.6 R 1.091
+(xpands to a separate w)-.15 F 3.59(ord. That)-.1 F 1.09(is, ")3.59 F F2
+($@)A F0 3.59("i)C(s)-3.59 E(equi)144 309.6 Q -.25(va)-.25 G .412
+(lent to ").25 F F2($1)A F0 2.912("")C F2($2)-2.912 E F0 2.912(".)C
+2.912(.. If)-2.912 F .413(the double-quoted e)2.913 F .413
+(xpansion occurs within a w)-.15 F .413(ord, the e)-.1 F .413
+(xpansion of)-.15 F .38(the \214rst parameter is joined with the be)144
+321.6 R .379(ginning part of the original w)-.15 F .379(ord, and the e)
+-.1 F .379(xpansion of the)-.15 F 1.774
+(last parameter is joined with the last part of the original w)144 333.6
+R 4.274(ord. When)-.1 F 1.774(there are no positional)4.274 F
+(parameters, ")144 345.6 Q F2($@)A F0 2.5("a)C(nd)-2.5 E F2($@)2.5 E F0
+-.15(ex)2.5 G(pand to nothing \(i.e., the).15 E 2.5(ya)-.15 G(re remo)
+-2.5 E -.15(ve)-.15 G(d\).).15 E F2(#)108 357.6 Q F0
+(Expands to the number of positional parameters in decimal.)144 357.6 Q
+F2(?)108 369.6 Q F0(Expands to the e)144 369.6 Q
 (xit status of the most recently e)-.15 E -.15(xe)-.15 G(cuted fore).15
-E(ground pipeline.)-.15 E F2<ad>108 345.6 Q F0 .881
-(Expands to the current option \215ags as speci\214ed upon in)144 345.6
-R -.2(vo)-.4 G .881(cation, by the).2 F F2(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 357.6 Q F2<ad69>2.5 E F0(option\).)2.5 E F2($)108 369.6 Q F0 .214
-(Expands to the process ID of the shell.)144 369.6 R .214
+E(ground pipeline.)-.15 E F2<ad>108 381.6 Q F0 .882
+(Expands to the current option \215ags as speci\214ed upon in)144 381.6
+R -.2(vo)-.4 G .881(cation, by the).2 F F2(set)3.381 E F0 -.2(bu)3.381 G
+.881(iltin command, or).2 F(those set by the shell itself \(such as the)
+144 393.6 Q F2<ad69>2.5 E F0(option\).)2.5 E F2($)108 405.6 Q F0 .214
+(Expands to the process ID of the shell.)144 405.6 R .214
 (In a \(\) subshell, it e)5.214 F .214
 (xpands to the process ID of the current)-.15 F
-(shell, not the subshell.)144 381.6 Q F2(!)108 393.6 Q F0 .499(Expands \
+(shell, not the subshell.)144 417.6 Q F2(!)108 429.6 Q F0 .499(Expands \
 to the process ID of the job most recently placed into the background, \
-whether e)144 393.6 R -.15(xe)-.15 G(cuted).15 E
-(as an asynchronous command or using the)144 405.6 Q F2(bg)2.5 E F0 -.2
+whether e)144 429.6 R -.15(xe)-.15 G(cuted).15 E
+(as an asynchronous command or using the)144 441.6 Q F2(bg)2.5 E F0 -.2
 (bu)2.5 G(iltin \(see).2 E F1(JOB CONTR)2.5 E(OL)-.27 E F0(belo)2.25 E
-(w\).)-.25 E F2(0)108 417.6 Q F0 1.692
-(Expands to the name of the shell or shell script.)144 417.6 R 1.691
-(This is set at shell initialization.)6.692 F(If)6.691 E F2(bash)4.191 E
-F0(is)4.191 E(in)144 429.6 Q -.2(vo)-.4 G -.1(ke).2 G 3.077(dw).1 G .577
-(ith a \214le of commands,)-3.077 F F2($0)3.077 E F0 .578
-(is set to the name of that \214le.)3.077 F(If)5.578 E F2(bash)3.078 E
-F0 .578(is started with the)3.078 F F2<ad63>3.078 E F0 .369
-(option, then)144 441.6 R F2($0)2.869 E F0 .369
+(w\).)-.25 E F2(0)108 453.6 Q F0 1.691
+(Expands to the name of the shell or shell script.)144 453.6 R 1.692
+(This is set at shell initialization.)6.692 F(If)6.692 E F2(bash)4.192 E
+F0(is)4.192 E(in)144 465.6 Q -.2(vo)-.4 G -.1(ke).2 G 3.078(dw).1 G .578
+(ith a \214le of commands,)-3.078 F F2($0)3.078 E F0 .578
+(is set to the name of that \214le.)3.078 F(If)5.577 E F2(bash)3.077 E
+F0 .577(is started with the)3.077 F F2<ad63>3.077 E F0 .368
+(option, then)144 477.6 R F2($0)2.869 E F0 .369
 (is set to the \214rst ar)2.869 F .369(gument after the string to be e)
--.18 F -.15(xe)-.15 G .369(cuted, if one is present.).15 F(Other)5.368 E
-(-)-.2 E(wise, it is set to the \214lename used to in)144 453.6 Q -.2
+-.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 \214lename used to in)144 489.6 Q -.2
 (vo)-.4 G -.1(ke).2 G F2(bash)2.6 E F0 2.5(,a)C 2.5(sg)-2.5 G -2.15 -.25
 (iv e)-2.5 H 2.5(nb).25 G 2.5(ya)-2.5 G -.18(rg)-2.5 G(ument zero.).18 E
-F2(_)108 465.6 Q F0 .054
-(At shell startup, set to the absolute pathname used to in)144 465.6 R
--.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 477.6 R .692
+F2(_)108 501.6 Q F0 .055
+(At shell startup, set to the absolute pathname used to in)144 501.6 R
+-.2(vo)-.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 513.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 489.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 525.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 -.15(exe)144 501.6
-1.6(cuted and placed in the en).15 F 1.6(vironment e)-.4 F 1.6
+-.2(vo)-.4 G .77 -.1(ke e).2 H .57(ach command).1 F -.15(exe)144 537.6 S
+1.6(cuted and placed in the en).15 F 1.6(vironment e)-.4 F 1.6
 (xported to that command.)-.15 F 1.6(When checking mail, this)6.6 F
 (parameter holds the name of the mail \214le currently being check)144
-513.6 Q(ed.)-.1 E F2(Shell V)87 530.4 Q(ariables)-.92 E F0(The follo)108
-542.4 Q(wing v)-.25 E(ariables are set by the shell:)-.25 E F2 -.3(BA)
-108 559.2 S(SH).3 E F0(Expands to the full \214lename used to in)144
-559.2 Q -.2(vo)-.4 G .2 -.1(ke t).2 H(his instance of).1 E F2(bash)2.5 E
-F0(.)A F2 -.3(BA)108 571.2 S(SHOPTS).3 E F0 2.548(Ac)144 583.2 S .049
-(olon-separated list of enabled shell options.)-2.548 F .049(Each w)
+549.6 Q(ed.)-.1 E F2(Shell V)87 566.4 Q(ariables)-.92 E F0(The follo)108
+578.4 Q(wing v)-.25 E(ariables are set by the shell:)-.25 E F2 -.3(BA)
+108 595.2 S(SH).3 E F0(Expands to the full \214lename used to in)144
+595.2 Q -.2(vo)-.4 G .2 -.1(ke t).2 H(his instance of).1 E F2(bash)2.5 E
+F0(.)A F2 -.3(BA)108 607.2 S(SHOPTS).3 E F0 2.549(Ac)144 619.2 S .049
+(olon-separated list of enabled shell options.)-2.549 F .049(Each w)
 5.049 F .049(ord in the list is a v)-.1 F .049(alid ar)-.25 F .049
-(gument for the)-.18 F F2<ad73>2.549 E F0 1.398(option to the)144 595.2
+(gument for the)-.18 F F2<ad73>2.548 E F0 1.398(option to the)144 631.2
 R F2(shopt)3.898 E F0 -.2(bu)3.898 G 1.398(iltin command \(see).2 F F1
 1.398(SHELL B)3.898 F(UIL)-.09 E 1.398(TIN COMMANDS)-.828 F F0(belo)
-3.648 E 3.898(w\). The)-.25 F(options)3.898 E .476(appearing in)144
-607.2 R F1 -.27(BA)2.976 G(SHOPTS).27 E F0 .476(are those reported as)
-2.726 F F3(on)3.206 E F0(by)3.217 E F2(shopt)2.977 E F0 5.477(.I)C 2.977
-(ft)-5.477 G .477(his v)-2.977 F .477(ariable is in the en)-.25 F
-(vironment)-.4 E(when)144 619.2 Q F2(bash)3.142 E F0 .642(starts up, ea\
-ch 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 631.2 Q
-(ariable is read-only)-.25 E(.)-.65 E F2 -.3(BA)108 643.2 S(SHPID).3 E
-F0 .187(Expands to the process ID of the current)144 655.2 R F2(bash)
-2.687 E F0 2.688(process. This)2.688 F(dif)2.688 E .188(fers from)-.25 F
-F2($$)2.688 E F0 .188(under certain circum-)2.688 F .548
-(stances, such as subshells that do not require)144 667.2 R F2(bash)
-3.048 E F0 .548(to be re-initialized.)3.048 F .548(Assignments to)5.548
-F F1 -.27(BA)3.048 G(SHPID).27 E F0(ha)144 679.2 Q .3 -.15(ve n)-.2 H
+3.648 E 3.898(w\). The)-.25 F(options)3.898 E .477(appearing in)144
+643.2 R F1 -.27(BA)2.977 G(SHOPTS).27 E F0 .477(are those reported as)
+2.727 F F3(on)3.207 E F0(by)3.217 E F2(shopt)2.977 E F0 5.476(.I)C 2.976
+(ft)-5.476 G .476(his v)-2.976 F .476(ariable is in the en)-.25 F
+(vironment)-.4 E(when)144 655.2 Q F2(bash)3.141 E F0 .642(starts up, ea\
+ch shell option in the list will be enabled before reading an)3.141 F
+3.142(ys)-.15 G .642(tartup \214les.)-3.142 F(This v)144 667.2 Q
+(ariable is read-only)-.25 E(.)-.65 E F2 -.3(BA)108 679.2 S(SHPID).3 E
+F0 .188(Expands to the process ID of the current)144 691.2 R F2(bash)
+2.688 E F0 2.687(process. This)2.687 F(dif)2.687 E .187(fers from)-.25 F
+F2($$)2.687 E F0 .187(under certain circum-)2.687 F .548
+(stances, such as subshells that do not require)144 703.2 R F2(bash)
+3.048 E F0 .548(to be re-initialized.)3.048 F .549(Assignments to)5.549
+F F1 -.27(BA)3.049 G(SHPID).27 E F0(ha)144 715.2 Q .3 -.15(ve n)-.2 H
 2.5(oe).15 G -.25(ff)-2.5 G 2.5(ect. If).25 F F2 -.3(BA)2.5 G(SHPID).3 E
 F0(is unset, it loses its special properties, e)2.5 E -.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 F2 -.3(BA)108 691.2 S(SH_ALIASES).3 E F0 1.195(An associati)144
-703.2 R 1.495 -.15(ve a)-.25 H 1.195(rray v).15 F 1.195(ariable whose m\
-embers correspond to the internal list of aliases as main-)-.25 F .16
-(tained by the)144 715.2 R F2(alias)2.66 E F0 -.2(bu)2.66 G 2.66
-(iltin. Elements).2 F .16
-(added to this array appear in the alias list; ho)2.66 F(we)-.25 E -.15
-(ve)-.25 G .96 -.4(r, u).15 H(nsetting).4 E 4.503
-(array elements currently does not cause aliases to be remo)144 727.2 R
--.15(ve)-.15 G 7.003(df).15 G 4.503(rom the alias list.)-7.003 F(If)
-9.503 E(GNU Bash 5.0)72 768 Q(2018 March 15)144.29 E(10)193.45 E 0 Cg EP
+-2.5 E(GNU Bash 5.0)72 768 Q(2018 August 7)145.395 E(10)194.555 E 0 Cg
+EP
 %%Page: 11 11
 %%BeginPageSetup
 BP
 %%EndPageSetup
 /F0 10/Times-Roman@0 SF -.35(BA)72 48 S 137.14(SH\(1\) General).35 F
 (Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E/F1 10/Times-Bold@0
-SF -.3(BA)144 84 S(SH_ALIASES).3 E F0
+SF -.3(BA)108 84 S(SH_ALIASES).3 E F0 1.195(An associati)144 96 R 1.495
+-.15(ve a)-.25 H 1.195(rray v).15 F 1.195(ariable whose members corresp\
+ond to the internal list of aliases as main-)-.25 F .16(tained by the)
+144 108 R F1(alias)2.66 E F0 -.2(bu)2.66 G 2.66(iltin. Elements).2 F .16
+(added to this array appear in the alias list; ho)2.66 F(we)-.25 E -.15
+(ve)-.25 G .96 -.4(r, u).15 H(nsetting).4 E 4.503
+(array elements currently does not cause aliases to be remo)144 120 R
+-.15(ve)-.15 G 7.003(df).15 G 4.503(rom the alias list.)-7.003 F(If)
+9.502 E F1 -.3(BA)144 132 S(SH_ALIASES).3 E F0
 (is unset, it loses its special properties, e)2.5 E -.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 -.3(BA)108 96 S(SH_ARGC).3 E F0 .935(An array v)144 108 R .935
-(ariable whose v)-.25 F .934
+-2.5 E F1 -.3(BA)108 144 S(SH_ARGC).3 E F0 .934(An array v)144 156 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.434 E F0 -.15(exe)144 120 S .535(cution call stack.).15 F .535
+F1(bash)3.435 E F0 -.15(exe)144 168 S .535(cution call stack.).15 F .535
 (The number of parameters to the current subroutine \(shell function or\
- script)5.535 F -.15(exe)144 132 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 2.63(parameters passed is pushed onto)144
-144 R/F2 9/Times-Bold@0 SF -.27(BA)5.13 G(SH_ARGC).27 E/F3 9
-/Times-Roman@0 SF(.)A F0 2.63(The shell sets)7.13 F F2 -.27(BA)5.131 G
-(SH_ARGC).27 E F0 2.631(only when in)4.881 F -.15(ex)144 156 S .284
-(tended deb).15 F .284(ugging mode \(see the description of the)-.2 F F1
-(extdeb)2.784 E(ug)-.2 E F0 .283(option to the)2.783 F F1(shopt)2.783 E
-F0 -.2(bu)2.783 G .283(iltin belo).2 F(w\).)-.25 E(Setting)144 168 Q F1
-(extdeb)2.5 E(ug)-.2 E F0(after the shell has started to e)2.5 E -.15
-(xe)-.15 G(cute a script may result in inconsistent v).15 E(alues.)-.25
-E F1 -.3(BA)108 180 S(SH_ARGV).3 E F0 .979(An array v)144 192 R .979
+ script)5.535 F -.15(exe)144 180 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 2.631(parameters passed is pushed onto)144
+192 R/F2 9/Times-Bold@0 SF -.27(BA)5.13 G(SH_ARGC).27 E/F3 9
+/Times-Roman@0 SF(.)A F0 2.63(The shell sets)7.13 F F2 -.27(BA)5.13 G
+(SH_ARGC).27 E F0 2.63(only when in)4.88 F -.15(ex)144 204 S .283
+(tended deb).15 F .283(ugging mode \(see the description of the)-.2 F F1
+(extdeb)2.784 E(ug)-.2 E F0 .284(option to the)2.784 F F1(shopt)2.784 E
+F0 -.2(bu)2.784 G .284(iltin belo).2 F(w\).)-.25 E(Setting)144 216 Q F1
+(extdeb)3.363 E(ug)-.2 E F0 .863(after the shell has started to e)3.363
+F -.15(xe)-.15 G .862(cute a script, or referencing this v).15 F .862
+(ariable when)-.25 F F1(extdeb)144 228 Q(ug)-.2 E F0
+(is not set, may result in inconsistent v)2.5 E(alues.)-.25 E F1 -.3(BA)
+108 240 S(SH_ARGV).3 E F0 .979(An array v)144 252 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 the top of the stac\
-k; the \214rst parameter of the initial)144 204 R 1.424
-(call is at the bottom.)144 216 R 1.424(When a subroutine is e)6.424 F
+k; the \214rst parameter of the initial)144 264 R 1.424
+(call is at the bottom.)144 276 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 F2 -.27(BA)144 228 S(SH_ARGV).27 E F3(.)A F0 2.197(The shell sets)
+F F2 -.27(BA)144 288 S(SH_ARGV).27 E F3(.)A F0 2.197(The shell sets)
 6.697 F F2 -.27(BA)4.697 G(SH_ARGV).27 E F0 2.197(only when in e)4.447 F
 2.197(xtended deb)-.15 F 2.197(ugging mode \(see the)-.2 F .965
-(description of the)144 240 R F1(extdeb)3.465 E(ug)-.2 E F0 .966
+(description of the)144 300 R F1(extdeb)3.465 E(ug)-.2 E F0 .966
 (option to the)3.465 F F1(shopt)3.466 E F0 -.2(bu)3.466 G .966
 (iltin belo).2 F 3.466(w\). Setting)-.25 F F1(extdeb)3.466 E(ug)-.2 E F0
-.966(after the shell)3.466 F(has started to e)144 252 Q -.15(xe)-.15 G
-(cute a script may result in inconsistent v).15 E(alues.)-.25 E F1 -.3
-(BA)108 264 S(SH_ARGV0).3 E F0 .251(When referenced, this v)144 276 R
-.251(ariable e)-.25 F .251
+.966(after the shell)3.466 F .32(has started to e)144 312 R -.15(xe)-.15
+G .32(cute a script, or referencing this v).15 F .319(ariable when)-.25
+F F1(extdeb)2.819 E(ug)-.2 E F0 .319(is not set, may result in)2.819 F
+(inconsistent v)144 324 Q(alues.)-.25 E F1 -.3(BA)108 336 S(SH_ARGV0).3
+E F0 .25(When referenced, this v)144 348 R .25(ariable e)-.25 F .251
 (xpands to the name of the shell or shell script \(identical to)-.15 F
-F1($0)2.75 E F0 2.75(;s)C(ee)-2.75 E 1.224
-(the description of special parameter 0 abo)144 288 R -.15(ve)-.15 G
+F1($0)2.751 E F0 2.751(;s)C(ee)-2.751 E 1.224
+(the description of special parameter 0 abo)144 360 R -.15(ve)-.15 G
 3.724(\). Assignment).15 F(to)3.724 E F1 -.3(BA)3.724 G(SH_ARGV0).3 E F0
-1.225(causes the v)3.724 F(alue)-.25 E .247
-(assigned to also be assigned to)144 300 R F1($0)2.747 E F0 5.247(.I)C
+1.224(causes the v)3.724 F(alue)-.25 E .247
+(assigned to also be assigned to)144 372 R F1($0)2.747 E F0 5.247(.I)C
 (f)-5.247 E F1 -.3(BA)2.747 G(SH_ARGV0).3 E F0 .247
 (is unset, it loses its special properties, e)2.747 F -.15(ve)-.25 G(n)
-.15 E(if it is subsequently reset.)144 312 Q F1 -.3(BA)108 324 S
-(SH_CMDS).3 E F0 .667(An associati)144 336 R .967 -.15(ve a)-.25 H .667
+.15 E(if it is subsequently reset.)144 384 Q F1 -.3(BA)108 396 S
+(SH_CMDS).3 E F0 .668(An associati)144 408 R .968 -.15(ve a)-.25 H .668
 (rray v).15 F .668(ariable whose members correspond to the internal has\
-h table of commands)-.25 F .196(as maintained by the)144 348 R F1(hash)
-2.696 E F0 -.2(bu)2.696 G 2.696(iltin. Elements).2 F .195
+h table of commands)-.25 F .195(as maintained by the)144 420 R F1(hash)
+2.695 E F0 -.2(bu)2.695 G 2.695(iltin. Elements).2 F .196
 (added to this array appear in the hash table; ho)2.696 F(we)-.25 E -.15
 (ve)-.25 G -.4(r,).15 G .852(unsetting array elements currently does no\
-t cause command names to be remo)144 360 R -.15(ve)-.15 G 3.352(df).15 G
-.853(rom the hash)-3.352 F 2.5(table. If)144 372 R F1 -.3(BA)2.5 G
+t cause command names to be remo)144 432 R -.15(ve)-.15 G 3.352(df).15 G
+.852(rom the hash)-3.352 F 2.5(table. If)144 444 R F1 -.3(BA)2.5 G
 (SH_CMDS).3 E F0(is unset, it loses its special properties, e)2.5 E -.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 -.3(BA)108 384 S(SH_COMMAND).3 E F0 1.243
-(The command currently being e)144 396 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
+(ubsequently reset.)-2.5 E F1 -.3(BA)108 456 S(SH_COMMAND).3 E F0 1.242
+(The command currently being e)144 468 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
-408 Q -.15(xe)-.15 G(cuting at the time of the trap.).15 E F1 -.3(BA)108
-420 S(SH_EXECUTION_STRING).3 E F0(The command ar)144 432 Q
+480 Q -.15(xe)-.15 G(cuting at the time of the trap.).15 E F1 -.3(BA)108
+492 S(SH_EXECUTION_STRING).3 E F0(The command ar)144 504 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 444 S(SH_LINENO).3 E F0 .692
-(An array v)144 456 R .692(ariable whose members are the line numbers i\
-n source \214les where each corresponding)-.25 F .97(member of)144 468 R
-F2(FUNCN)3.47 E(AME)-.18 E F0 -.1(wa)3.22 G 3.47(si).1 G -1.9 -.4(nv o)
--3.47 H -.1(ke).4 G(d.).1 E F1(${B)5.969 E(ASH_LINENO[)-.3 E/F4 10
-/Times-Italic@0 SF($i)A F1(]})A F0 .969
-(is the line number in the source)3.469 F 14.671(\214le \()144 480 R F1
-(${B)A(ASH_SOURCE[)-.3 E F4($i+1)A F1(]})A F0 17.171(\)w)C(here)-17.171
+(cation option.).2 E F1 -.3(BA)108 516 S(SH_LINENO).3 E F0 .693
+(An array v)144 528 R .692(ariable whose members are the line numbers i\
+n source \214les where each corresponding)-.25 F .969(member of)144 540
+R F2(FUNCN)3.469 E(AME)-.18 E F0 -.1(wa)3.219 G 3.469(si).1 G -1.9 -.4
+(nv o)-3.469 H -.1(ke).4 G(d.).1 E F1(${B)5.969 E(ASH_LINENO[)-.3 E/F4
+10/Times-Italic@0 SF($i)A F1(]})A F0 .97
+(is the line number in the source)3.469 F 14.672(\214le \()144 552 R F1
+(${B)A(ASH_SOURCE[)-.3 E F4($i+1)A F1(]})A F0 17.172(\)w)C(here)-17.172
 E F1(${FUNCN)17.172 E(AME[)-.2 E F4($i)A F1(]})A F0 -.1(wa)17.172 G
-17.172(sc).1 G 14.672(alled \(or)-17.172 F F1(${B)144 492 Q(ASH_LINENO[)
+17.171(sc).1 G 14.671(alled \(or)-17.171 F F1(${B)144 564 Q(ASH_LINENO[)
 -.3 E F4($i-1)A F1(]})A F0 .115
 (if referenced within another shell function\).)2.615 F(Use)5.115 E F2
 (LINENO)2.615 E F0 .115(to obtain the)2.365 F(current line number)144
-504 Q(.)-.55 E F1 -.3(BA)108 516 S(SH_LO).3 E(AD)-.4 E(ABLES_P)-.35 E
--.95(AT)-.74 G(H).95 E F0 4.07(Ac)144 528 S 1.57(olon-separated list of\
+576 Q(.)-.55 E F1 -.3(BA)108 588 S(SH_LO).3 E(AD)-.4 E(ABLES_P)-.35 E
+-.95(AT)-.74 G(H).95 E F0 4.07(Ac)144 600 S 1.57(olon-separated list of\
  directories in which the shell looks for dynamically loadable b)-4.07 F
-(uiltins)-.2 E(speci\214ed by the)144 540 Q F1(enable)2.5 E F0(command.)
-2.5 E F1 -.3(BA)108 552 S(SH_REMA).3 E(TCH)-.95 E F0 .006(An array v)144
-564 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 576 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 588 R(x)-.15 E
-F4(n)3.498 E F0 .997(is the portion of the string matching the)3.498 F
-F4(n)3.497 E F0 .997(th parenthesized sube)B(xpres-)-.15 E 2.5
-(sion. This)144 600 R -.25(va)2.5 G(riable is read-only).25 E(.)-.65 E
-F1 -.3(BA)108 612 S(SH_SOURCE).3 E F0 .125(An array v)144 624 R .125(ar\
+(uiltins)-.2 E(speci\214ed by the)144 612 Q F1(enable)2.5 E F0(command.)
+2.5 E F1 -.3(BA)108 624 S(SH_REMA).3 E(TCH)-.95 E F0 .005(An array v)144
+636 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 648 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 660 R(x)-.15 E
+F4(n)3.497 E F0 .997(is the portion of the string matching the)3.497 F
+F4(n)3.498 E F0 .998(th parenthesized sube)B(xpres-)-.15 E 2.5
+(sion. This)144 672 R -.25(va)2.5 G(riable is read-only).25 E(.)-.65 E
+F1 -.3(BA)108 684 S(SH_SOURCE).3 E F0 .126(An array v)144 696 R .125(ar\
 iable whose members are the source \214lenames where the corresponding \
-shell function)-.25 F .781(names in the)144 636 R F2(FUNCN)3.28 E(AME)
+shell function)-.25 F .78(names in the)144 708 R F2(FUNCN)3.28 E(AME)
 -.18 E F0 .78(array v)3.03 F .78(ariable are de\214ned.)-.25 F .78
-(The shell function)5.78 F F1(${FUNCN)3.28 E(AME[)-.2 E F4($i)A F1(]})A
-F0(is)3.28 E(de\214ned in the \214le)144 648 Q F1(${B)2.5 E(ASH_SOURCE[)
--.3 E F4($i)A F1(]})A F0(and called from)2.5 E F1(${B)2.5 E(ASH_SOURCE[)
--.3 E F4($i+1)A F1(]})A F0(.)A F1 -.3(BA)108 660 S(SH_SUBSHELL).3 E F0
-.296(Incremented by one within each subshell or subshell en)144 672 R
-.296(vironment when the shell be)-.4 F .297(gins e)-.15 F -.15(xe)-.15 G
-(cuting).15 E(in that en)144 684 Q 2.5(vironment. The)-.4 F(initial v)
-2.5 E(alue is 0.)-.25 E F1 -.3(BA)108 696 S(SH_VERSINFO).3 E F0 2.645
-(Ar)144 708 S .145(eadonly array v)-2.645 F .144
-(ariable whose members hold v)-.25 F .144
-(ersion information for this instance of)-.15 F F1(bash)2.644 E F0 5.144
-(.T)C(he)-5.144 E -.25(va)144 720 S
-(lues assigned to the array members are as follo).25 E(ws:)-.25 E
-(GNU Bash 5.0)72 768 Q(2018 March 15)144.29 E(11)193.45 E 0 Cg EP
+(The shell function)5.78 F F1(${FUNCN)3.281 E(AME[)-.2 E F4($i)A F1(]})A
+F0(is)3.281 E(de\214ned in the \214le)144 720 Q F1(${B)2.5 E
+(ASH_SOURCE[)-.3 E F4($i)A F1(]})A F0(and called from)2.5 E F1(${B)2.5 E
+(ASH_SOURCE[)-.3 E F4($i+1)A F1(]})A F0(.)A(GNU Bash 5.0)72 768 Q
+(2018 August 7)145.395 E(11)194.555 E 0 Cg EP
 %%Page: 12 12
 %%BeginPageSetup
 BP
 %%EndPageSetup
 /F0 10/Times-Roman@0 SF -.35(BA)72 48 S 137.14(SH\(1\) General).35 F
 (Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E/F1 10/Times-Bold@0
-SF -.3(BA)144 84 S(SH_VERSINFO[).3 E F0(0)A F1(])A F0(The major v)264 84
-Q(ersion number \(the)-.15 E/F2 10/Times-Italic@0 SF -.37(re)2.5 G
-(lease).37 E F0(\).)A F1 -.3(BA)144 96 S(SH_VERSINFO[).3 E F0(1)A F1(])A
-F0(The minor v)264 96 Q(ersion number \(the)-.15 E F2(ver)2.5 E(sion)-.1
-E F0(\).)A F1 -.3(BA)144 108 S(SH_VERSINFO[).3 E F0(2)A F1(])A F0
-(The patch le)264 108 Q -.15(ve)-.25 G(l.).15 E F1 -.3(BA)144 120 S
-(SH_VERSINFO[).3 E F0(3)A F1(])A F0(The b)264 120 Q(uild v)-.2 E
-(ersion.)-.15 E F1 -.3(BA)144 132 S(SH_VERSINFO[).3 E F0(4)A F1(])A F0
-(The release status \(e.g.,)264 132 Q F2(beta1)2.5 E F0(\).)A F1 -.3(BA)
-144 144 S(SH_VERSINFO[).3 E F0(5)A F1(])A F0(The v)264 144 Q(alue of)
+SF -.3(BA)108 84 S(SH_SUBSHELL).3 E F0 .296
+(Incremented by one within each subshell or subshell en)144 96 R .296
+(vironment when the shell be)-.4 F .296(gins e)-.15 F -.15(xe)-.15 G
+(cuting).15 E(in that en)144 108 Q 2.5(vironment. The)-.4 F(initial v)
+2.5 E(alue is 0.)-.25 E F1 -.3(BA)108 120 S(SH_VERSINFO).3 E F0 2.644
+(Ar)144 132 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.645 E F0 5.145
+(.T)C(he)-5.145 E -.25(va)144 144 S
+(lues assigned to the array members are as follo).25 E(ws:)-.25 E F1 -.3
+(BA)144 162 S(SH_VERSINFO[).3 E F0(0)A F1(])A F0(The major v)264 162 Q
+(ersion number \(the)-.15 E/F2 10/Times-Italic@0 SF -.37(re)2.5 G(lease)
+.37 E F0(\).)A F1 -.3(BA)144 174 S(SH_VERSINFO[).3 E F0(1)A F1(])A F0
+(The minor v)264 174 Q(ersion number \(the)-.15 E F2(ver)2.5 E(sion)-.1
+E F0(\).)A F1 -.3(BA)144 186 S(SH_VERSINFO[).3 E F0(2)A F1(])A F0
+(The patch le)264 186 Q -.15(ve)-.25 G(l.).15 E F1 -.3(BA)144 198 S
+(SH_VERSINFO[).3 E F0(3)A F1(])A F0(The b)264 198 Q(uild v)-.2 E
+(ersion.)-.15 E F1 -.3(BA)144 210 S(SH_VERSINFO[).3 E F0(4)A F1(])A F0
+(The release status \(e.g.,)264 210 Q F2(beta1)2.5 E F0(\).)A F1 -.3(BA)
+144 222 S(SH_VERSINFO[).3 E F0(5)A F1(])A F0(The v)264 222 Q(alue of)
 -.25 E/F3 9/Times-Bold@0 SF(MA)2.5 E(CHTYPE)-.495 E/F4 9/Times-Roman@0
-SF(.)A F1 -.3(BA)108 156 S(SH_VERSION).3 E F0
-(Expands to a string describing the v)144 168 Q
+SF(.)A F1 -.3(BA)108 234 S(SH_VERSION).3 E F0
+(Expands to a string describing the v)144 246 Q
 (ersion of this instance of)-.15 E F1(bash)2.5 E F0(.)A F1(COMP_CW)108
-180 Q(ORD)-.1 E F0 .396(An inde)144 192 R 2.896(xi)-.15 G(nto)-2.896 E
+258 Q(ORD)-.1 E F0 .397(An inde)144 270 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 204 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 282 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 216 Q(ogrammable Completion)-.18 E
-F0(belo)2.5 E(w\).)-.25 E F1(COMP_KEY)108 228 Q F0(The k)144 240 Q .3
+(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 294 Q(ogrammable Completion)-.18 E
+F0(belo)2.5 E(w\).)-.25 E F1(COMP_KEY)108 306 Q F0(The k)144 318 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 252 Q F0 1.207
-(The current command line.)144 264 R 1.208(This v)6.208 F 1.208
+H(he current completion function.).1 E F1(COMP_LINE)108 330 Q F0 1.208
+(The current command line.)144 342 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 276 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 354 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 288 Q(w\).)-.25 E F1(COMP_POINT)108 300 Q F0 .666(The inde)
-144 312 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 366 Q(w\).)-.25 E F1(COMP_POINT)108 378 Q F0 .667(The inde)
+144 390 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
-324 R .534(alue of this v)-.25 F .534(ariable is equal to)-.25 F F1
-(${#COMP_LINE})144 336 Q F0 7.005(.T)C 2.005(his v)-7.005 F 2.005
-(ariable is a)-.25 F -.25(va)-.2 G 2.006
-(ilable only in shell functions and e).25 F 2.006(xternal commands)-.15
-F(in)144 348 Q -.2(vo)-.4 G -.1(ke).2 G 2.5(db).1 G 2.5(yt)-2.5 G
+402 R .535(alue of this v)-.25 F .535(ariable is equal to)-.25 F F1
+(${#COMP_LINE})144 414 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 426 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
-360 Q F0 .042(Set to an inte)144 372 R .042(ger v)-.15 F .041(alue corr\
+438 Q F0 .041(Set to an inte)144 450 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 384 R F2 -.5(TA)2.837 G(B).5 E F0
+-.25 F .338(function to be called:)144 462 R F2 -.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 396 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(np)
+C .337(or listing completions after successi)-2.837 F .637 -.15(ve t)
+-.25 H(abs,).15 E F2(!)144 474 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 408 R F2(%)4.052 E
+F 1.592(ord is not)-.1 F 1.553(unmodi\214ed, or)144 486 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 420 S 2.929
+(ilable only in shell functions and).25 F -.15(ex)144 498 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
-432 Q F0(belo)2.5 E(w\).)-.25 E F1(COMP_W)108 444 Q(ORDBREAKS)-.1 E F0
-1.335(The set of characters that the)144 456 R F1 -.18(re)3.836 G
-(adline).18 E F0 1.336(library treats as w)3.836 F 1.336
-(ord separators when performing w)-.1 F(ord)-.1 E 3.126(completion. If)
-144 468 R F3(COMP_W)3.126 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 480 Q F1(COMP_W)108 492 Q(ORDS)-.1 E
-F0 .653(An array v)144 504 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 4.333(line. The)144 516 R
+(acilities \(see)-.1 F F1(Pr)5.429 E(ogrammable)-.18 E(Completion)144
+510 Q F0(belo)2.5 E(w\).)-.25 E F1(COMP_W)108 522 Q(ORDBREAKS)-.1 E F0
+1.336(The set of characters that the)144 534 R F1 -.18(re)3.836 G
+(adline).18 E F0 1.336(library treats as w)3.836 F 1.335
+(ord separators when performing w)-.1 F(ord)-.1 E 3.125(completion. If)
+144 546 R F3(COMP_W)3.125 E(ORDBREAKS)-.09 E F0 .626
+(is unset, it loses its special properties, e)2.875 F -.15(ve)-.25 G
+3.126(ni).15 G 3.126(fi)-3.126 G 3.126(ti)-3.126 G 3.126(ss)-3.126 G
+(ubse-)-3.126 E(quently reset.)144 558 Q F1(COMP_W)108 570 Q(ORDS)-.1 E
+F0 .654(An array v)144 582 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 4.332(line. The)144 594 R
 1.832(line is split into w)4.332 F 1.832(ords as)-.1 F F1 -.18(re)4.332
 G(adline).18 E F0 -.1(wo)4.332 G 1.832(uld split it, using).1 F F3
-(COMP_W)4.332 E(ORDBREAKS)-.09 E F0(as)4.082 E .831(described abo)144
-528 R -.15(ve)-.15 G 5.831(.T).15 G .831(his v)-5.831 F .831
-(ariable is a)-.25 F -.25(va)-.2 G .832
-(ilable only in shell functions in).25 F -.2(vo)-.4 G -.1(ke).2 G 3.332
-(db).1 G 3.332(yt)-3.332 G .832(he programmable)-3.332 F(completion f)
-144 540 Q(acilities \(see)-.1 E F1(Pr)2.5 E(ogrammable Completion)-.18 E
-F0(belo)2.5 E(w\).)-.25 E F1(COPR)108 552 Q(OC)-.3 E F0 .169(An array v)
-144 564 R .169(ariable \(see)-.25 F F1(Arrays)2.669 E F0(belo)2.669 E
+(COMP_W)4.332 E(ORDBREAKS)-.09 E F0(as)4.083 E .832(described abo)144
+606 R -.15(ve)-.15 G 5.832(.T).15 G .832(his v)-5.832 F .832
+(ariable is a)-.25 F -.25(va)-.2 G .831
+(ilable only in shell functions in).25 F -.2(vo)-.4 G -.1(ke).2 G 3.331
+(db).1 G 3.331(yt)-3.331 G .831(he programmable)-3.331 F(completion f)
+144 618 Q(acilities \(see)-.1 E F1(Pr)2.5 E(ogrammable Completion)-.18 E
+F0(belo)2.5 E(w\).)-.25 E F1(COPR)108 630 Q(OC)-.3 E F0 .168(An array v)
+144 642 R .168(ariable \(see)-.25 F F1(Arrays)2.668 E F0(belo)2.669 E
 .169
 (w\) created to hold the \214le descriptors for output from and input)
--.25 F(to an unnamed coprocess \(see)144 576 Q F1(Copr)2.5 E(ocesses)
--.18 E F0(abo)2.5 E -.15(ve)-.15 G(\).).15 E F1(DIRST)108 588 Q -.55(AC)
--.9 G(K).55 E F0 2.26(An array v)144 600 R 2.26(ariable \(see)-.25 F F1
+-.25 F(to an unnamed coprocess \(see)144 654 Q F1(Copr)2.5 E(ocesses)
+-.18 E F0(abo)2.5 E -.15(ve)-.15 G(\).).15 E F1(DIRST)108 666 Q -.55(AC)
+-.9 G(K).55 E F0 2.26(An array v)144 678 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.095(Directories appear in the stack in the order the)144 612 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 624 R 1.432
+1.094(Directories appear in the stack in the order the)144 690 R 3.594
+(ya)-.15 G 1.095(re displayed by the)-3.594 F F1(dirs)3.595 E F0 -.2(bu)
+3.595 G 3.595(iltin. Assigning).2 F(to)3.595 E 1.432
+(members of this array v)144 702 R 1.432
 (ariable may be used to modify directories already in the stack, b)-.25
-F 1.432(ut the)-.2 F F1(pushd)144 636 Q F0(and)2.746 E F1(popd)2.746 E
+F 1.431(ut the)-.2 F F1(pushd)144 714 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 .35(will not change the current directory)144 648 R
+F(ariable)-.25 E .351(will not change the current directory)144 726 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.851
-(ni).15 G(f)-2.851 E(it is subsequently reset.)144 660 Q F1(EPOCHREAL)
-108 672 Q(TIME)-.92 E F0 .338
-(Each time this parameter is referenced, it e)144 684 R .337
-(xpands to the number of seconds since the Unix Epoch)-.15 F(\(see)144
-696 Q F2(time)2.916 E F0 .416(\(3\)\) as a \215oating point v)B .417
-(alue with micro-second granularity)-.25 F 5.417(.A)-.65 G .417
-(ssignments to)-5.417 F F3(EPOCHRE-)2.917 E(AL)144 708 Q(TIME)-.828 E F0
-1.091(are ignored.)3.341 F(If)6.091 E F3(EPOCHREAL)3.59 E(TIME)-.828 E
-F0 1.09(is unset, it loses its special properties, e)3.34 F -.15(ve)-.25
-G 3.59(ni).15 G 3.59(fi)-3.59 G 3.59(ti)-3.59 G(s)-3.59 E
-(subsequently reset.)144 720 Q(GNU Bash 5.0)72 768 Q(2018 March 15)
-144.29 E(12)193.45 E 0 Cg EP
+(is unset, it loses its special properties, e)2.6 F -.15(ve)-.25 G 2.85
+(ni).15 G(f)-2.85 E(GNU Bash 5.0)72 768 Q(2018 August 7)145.395 E(12)
+194.555 E 0 Cg EP
 %%Page: 13 13
 %%BeginPageSetup
 BP
 %%EndPageSetup
 /F0 10/Times-Roman@0 SF -.35(BA)72 48 S 137.14(SH\(1\) General).35 F
-(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E/F1 10/Times-Bold@0
-SF(EPOCHSECONDS)108 84 Q F0 .337
-(Each time this parameter is referenced, it e)144 96 R .338
+(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E
+(it is subsequently reset.)144 84 Q/F1 10/Times-Bold@0 SF(EPOCHREAL)108
+96 Q(TIME)-.92 E F0 .337(Each time this parameter is referenced, it e)
+144 108 R .338(xpands to the number of seconds since the Unix Epoch)-.15
+F(\(see)144 120 Q/F2 10/Times-Italic@0 SF(time)2.917 E F0 .417
+(\(3\)\) as a \215oating point v)B .416
+(alue with micro-second granularity)-.25 F 5.416(.A)-.65 G .416
+(ssignments to)-5.416 F/F3 9/Times-Bold@0 SF(EPOCHRE-)2.916 E(AL)144 132
+Q(TIME)-.828 E F0 1.09(are ignored.)3.34 F(If)6.09 E F3(EPOCHREAL)3.59 E
+(TIME)-.828 E F0 1.09(is unset, it loses its special properties, e)3.34
+F -.15(ve)-.25 G 3.591(ni).15 G 3.591(fi)-3.591 G 3.591(ti)-3.591 G(s)
+-3.591 E(subsequently reset.)144 144 Q F1(EPOCHSECONDS)108 156 Q F0 .338
+(Each time this parameter is referenced, it e)144 168 R .337
 (xpands to the number of seconds since the Unix Epoch)-.15 F(\(see)144
-108 Q/F2 10/Times-Italic@0 SF(time)4.042 E F0 4.042
-(\(3\)\). Assignments)B(to)4.042 E/F3 9/Times-Bold@0 SF(EPOCHSECONDS)
-4.042 E F0 1.542(are ignored.)3.792 F(If)6.542 E F3(EPOCHSECONDS)4.041 E
-F0 1.541(is unset, it)3.791 F(loses its special 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(EUID)108 132 Q F0 1.103(Expands to the ef)
-144 132 R(fecti)-.25 E 1.403 -.15(ve u)-.25 H 1.103
-(ser ID of the current user).15 F 3.603(,i)-.4 G 1.103
-(nitialized at shell startup.)-3.603 F 1.104(This v)6.103 F 1.104
-(ariable is)-.25 F(readonly)144 144 Q(.)-.65 E F1(FUNCN)108 156 Q(AME)
--.2 E F0 .479(An array v)144 168 R .479
+180 Q F2(time)4.041 E F0 4.041(\(3\)\). Assignments)B(to)4.041 E F3
+(EPOCHSECONDS)4.041 E F0 1.542(are ignored.)3.792 F(If)6.542 E F3
+(EPOCHSECONDS)4.042 E F0 1.542(is unset, it)3.792 F
+(loses its special properties, e)144 192 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
+(EUID)108 204 Q F0 1.104(Expands to the ef)144 204 R(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.103(This v)6.103 F 1.103
+(ariable is)-.25 F(readonly)144 216 Q(.)-.65 E F1(FUNCN)108 228 Q(AME)
+-.2 E F0 .478(An array v)144 240 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 180 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 .385
-(element \(the one with the highest inde)144 192 R .384(x\) is)-.15 F/F4
-10/Courier@0 SF("main")2.884 E F0 5.384(.T)C .384(his v)-5.384 F .384
-(ariable e)-.25 F .384(xists only when a shell func-)-.15 F .075
-(tion is e)144 204 R -.15(xe)-.15 G 2.575(cuting. Assignments).15 F(to)
-2.575 E F3(FUNCN)2.575 E(AME)-.18 E F0(ha)2.325 E .376 -.15(ve n)-.2 H
-2.576(oe).15 G -.25(ff)-2.576 G 2.576(ect. If).25 F F3(FUNCN)2.576 E
-(AME)-.18 E F0 .076(is unset, it loses its)2.326 F
-(special properties, e)144 216 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 .111(This v)144
-234 R .111(ariable can be used with)-.25 F F1 -.3(BA)2.611 G(SH_LINENO)
+-.25 F -.15(xe)-.15 G .479(cution call stack.).15 F .277
+(The element with inde)144 252 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 .384
+(element \(the one with the highest inde)144 264 R .384(x\) is)-.15 F/F4
+10/Courier@0 SF("main")2.884 E F0 5.384(.T)C .384(his v)-5.384 F .385
+(ariable e)-.25 F .385(xists only when a shell func-)-.15 F .076
+(tion is e)144 276 R -.15(xe)-.15 G 2.576(cuting. Assignments).15 F(to)
+2.576 E F3(FUNCN)2.576 E(AME)-.18 E F0(ha)2.326 E .376 -.15(ve n)-.2 H
+2.576(oe).15 G -.25(ff)-2.576 G 2.576(ect. If).25 F F3(FUNCN)2.575 E
+(AME)-.18 E F0 .075(is unset, it loses its)2.325 F
+(special properties, e)144 288 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 .11(This v)144
+306 R .111(ariable can be used with)-.25 F F1 -.3(BA)2.611 G(SH_LINENO)
 .3 E F0(and)2.611 E F1 -.3(BA)2.611 G(SH_SOURCE).3 E F0 5.111(.E)C .111
-(ach element of)-5.111 F F1(FUNC-)2.61 E -.2(NA)144 246 S(ME).2 E F0
+(ach element of)-5.111 F F1(FUNC-)2.611 E -.2(NA)144 318 S(ME).2 E F0
 1.404(has corresponding elements in)3.904 F F1 -.3(BA)3.904 G(SH_LINENO)
 .3 E F0(and)3.904 E F1 -.3(BA)3.904 G(SH_SOURCE).3 E F0 1.404
-(to describe the)3.904 F .012(call stack.)144 258 R -.15(Fo)5.012 G
+(to describe the)3.904 F .012(call stack.)144 330 R -.15(Fo)5.012 G
 2.512(ri).15 G(nstance,)-2.512 E F1(${FUNCN)2.512 E(AME[)-.2 E F2($i)A
 F1(]})A F0 -.1(wa)2.512 G 2.512(sc).1 G .012(alled from the \214le)
--2.512 F F1(${B)2.512 E(ASH_SOURCE[)-.3 E F2($i+1)A F1(]})A F0 1.183
-(at line number)144 270 R F1(${B)3.683 E(ASH_LINENO[)-.3 E F2($i)A F1
-(]})A F0 6.183(.T)C(he)-6.183 E F1(caller)3.683 E F0 -.2(bu)3.683 G
-1.184(iltin displays the current call stack using).2 F
-(this information.)144 282 Q F1(GR)108 294 Q(OUPS)-.3 E F0 1.229
-(An array v)144 306 R 1.228(ariable containing the list of groups of wh\
-ich the current user is a member)-.25 F 6.228(.A)-.55 G(ssign-)-6.228 E
-.571(ments to)144 318 R F3(GR)3.071 E(OUPS)-.27 E F0(ha)2.822 E .872
+-2.512 F F1(${B)2.512 E(ASH_SOURCE[)-.3 E F2($i+1)A F1(]})A F0 1.184
+(at line number)144 342 R F1(${B)3.684 E(ASH_LINENO[)-.3 E F2($i)A F1
+(]})A F0 6.184(.T)C(he)-6.184 E F1(caller)3.683 E F0 -.2(bu)3.683 G
+1.183(iltin displays the current call stack using).2 F
+(this information.)144 354 Q F1(GR)108 366 Q(OUPS)-.3 E F0 1.228
+(An array v)144 378 R 1.228(ariable containing the list of groups of wh\
+ich the current user is a member)-.25 F 6.229(.A)-.55 G(ssign-)-6.229 E
+.572(ments to)144 390 R F3(GR)3.072 E(OUPS)-.27 E F0(ha)2.822 E .872
 -.15(ve n)-.2 H 3.072(oe).15 G -.25(ff)-3.072 G 3.072(ect. If).25 F F3
 (GR)3.072 E(OUPS)-.27 E F0 .572
 (is unset, it loses its special properties, e)2.822 F -.15(ve)-.25 G
-3.072(ni).15 G 3.072(fi)-3.072 G 3.072(ti)-3.072 G(s)-3.072 E
-(subsequently reset.)144 330 Q F1(HISTCMD)108 342 Q F0 .356
-(The history number)144 354 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
+3.072(ni).15 G 3.071(fi)-3.072 G 3.071(ti)-3.071 G(s)-3.071 E
+(subsequently reset.)144 402 Q F1(HISTCMD)108 414 Q F0 .355
+(The history number)144 426 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 F3
-(HISTCMD)2.855 E F0 .355(is unset, it)2.605 F
-(loses its special properties, e)144 366 Q -.15(ve)-.25 G 2.5(ni).15 G
+(HISTCMD)2.856 E F0 .356(is unset, it)2.606 F
+(loses its special properties, e)144 438 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 378 Q(AME)-.2 E F0
-(Automatically set to the name of the current host.)144 390 Q F1
-(HOSTTYPE)108 402 Q F0 .222(Automatically set to a string that uniquely\
- describes the type of machine on which)144 414 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 426 R(def)
-2.5 E(ault is system-dependent.)-.1 E F1(LINENO)108 438 Q F0 1.408(Each\
+(HOSTN)108 450 Q(AME)-.2 E F0
+(Automatically set to the name of the current host.)144 462 Q F1
+(HOSTTYPE)108 474 Q F0 .223(Automatically set to a string that uniquely\
+ describes the type of machine on which)144 486 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 498 R(def)
+2.5 E(ault is system-dependent.)-.1 E F1(LINENO)108 510 Q F0 1.408(Each\
  time this parameter is referenced, the shell substitutes a decimal num\
-ber representing the)144 450 R .078(current sequential line number \(st\
-arting with 1\) within a script or function.)144 462 R .079
-(When not in a script or)5.078 F .307(function, the v)144 474 R .307
-(alue substituted is not guaranteed to be meaningful.)-.25 F(If)5.306 E
-F3(LINENO)2.806 E F0 .306(is unset, it loses its)2.556 F
-(special properties, e)144 486 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 498 Q
+ber representing the)144 522 R .078(current sequential line number \(st\
+arting with 1\) within a script or function.)144 534 R .078
+(When not in a script or)5.078 F .306(function, the v)144 546 R .306
+(alue substituted is not guaranteed to be meaningful.)-.25 F(If)5.307 E
+F3(LINENO)2.807 E F0 .307(is unset, it loses its)2.557 F
+(special properties, e)144 558 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 570 Q
 (CHTYPE)-.55 E F0 .898(Automatically set to a string that fully describ\
-es the system type on which)144 510 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 522 Q F2
+es the system type on which)144 582 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 594 Q F2
 (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(MAPFILE)108 534 Q F0 .294
-(An array v)144 546 R .294(ariable \(see)-.25 F F1(Arrays)2.794 E F0
-(belo)2.794 E .294(w\) created to hold the te)-.25 F .293
-(xt read by the)-.15 F F1(map\214le)2.793 E F0 -.2(bu)2.793 G .293
-(iltin when no).2 F -.25(va)144 558 S(riable name is supplied.).25 E F1
-(OLDPWD)108 570 Q F0(The pre)144 582 Q(vious w)-.25 E
+(ault is system-dependent.)-.1 E F1(MAPFILE)108 606 Q F0 .293
+(An array v)144 618 R .293(ariable \(see)-.25 F F1(Arrays)2.793 E F0
+(belo)2.793 E .293(w\) created to hold the te)-.25 F .294
+(xt read by the)-.15 F F1(map\214le)2.794 E F0 -.2(bu)2.794 G .294
+(iltin when no).2 F -.25(va)144 630 S(riable name is supplied.).25 E F1
+(OLDPWD)108 642 Q F0(The pre)144 654 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 594 Q(ARG)-.9 E F0 1.626(The v)144 606 R 1.627
+(OPT)108 666 Q(ARG)-.9 E F0 1.627(The v)144 678 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.627(iltin command \(see).2 F F3
-(SHELL)4.127 E -.09(BU)144 618 S(IL).09 E(TIN COMMANDS)-.828 E F0(belo)
-2.25 E(w\).)-.25 E F1(OPTIND)108 630 Q F0 1.652(The inde)144 642 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 F3(SHELL)4.151 E -.09(BU)144 654
-S(IL).09 E(TIN COMMANDS)-.828 E F0(belo)2.25 E(w\).)-.25 E F1(OSTYPE)108
-666 Q F0 .329(Automatically set to a string that describes the operatin\
-g system on which)144 678 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 690 Q(ault is system-dependent.)
--.1 E F1(PIPEST)108 702 Q -.95(AT)-.9 G(US).95 E F0 .61(An array v)144
-714 R .61(ariable \(see)-.25 F F1(Arrays)3.11 E F0(belo)3.11 E .61
-(w\) containing a list of e)-.25 F .61(xit status v)-.15 F .61
-(alues from the processes in)-.25 F(the most-recently-e)144 726 Q -.15
-(xe)-.15 G(cuted fore).15 E
-(ground pipeline \(which may contain only a single command\).)-.15 E
-(GNU Bash 5.0)72 768 Q(2018 March 15)144.29 E(13)193.45 E 0 Cg EP
+F1(getopts)4.127 E F0 -.2(bu)4.127 G 1.626(iltin command \(see).2 F F3
+(SHELL)4.126 E -.09(BU)144 690 S(IL).09 E(TIN COMMANDS)-.828 E F0(belo)
+2.25 E(w\).)-.25 E F1(OPTIND)108 702 Q F0 1.651(The inde)144 714 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 F3(SHELL)4.152 E -.09(BU)144 726
+S(IL).09 E(TIN COMMANDS)-.828 E F0(belo)2.25 E(w\).)-.25 E(GNU Bash 5.0)
+72 768 Q(2018 August 7)145.395 E(13)194.555 E 0 Cg EP
 %%Page: 14 14
 %%BeginPageSetup
 BP
 %%EndPageSetup
 /F0 10/Times-Roman@0 SF -.35(BA)72 48 S 137.14(SH\(1\) General).35 F
 (Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E/F1 10/Times-Bold@0
-SF(PPID)108 84 Q F0(The process ID of the shell')144 84 Q 2.5(sp)-.55 G
+SF(OSTYPE)108 84 Q F0 .329(Automatically set to a string that describes\
+ the operating system on which)144 96 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 108 Q
+(ault is system-dependent.)-.1 E F1(PIPEST)108 120 Q -.95(AT)-.9 G(US)
+.95 E F0 .61(An array v)144 132 R .61(ariable \(see)-.25 F F1(Arrays)
+3.11 E F0(belo)3.11 E .61(w\) containing a list of e)-.25 F .61
+(xit status v)-.15 F .61(alues from the processes in)-.25 F
+(the most-recently-e)144 144 Q -.15(xe)-.15 G(cuted fore).15 E
+(ground pipeline \(which may contain only a single command\).)-.15 E F1
+(PPID)108 156 Q F0(The process ID of the shell')144 156 Q 2.5(sp)-.55 G
 2.5(arent. This)-2.5 F -.25(va)2.5 G(riable is readonly).25 E(.)-.65 E
-F1(PWD)108 96 Q F0(The current w)144 96 Q
+F1(PWD)108 168 Q F0(The current w)144 168 Q
 (orking directory as set by the)-.1 E F1(cd)2.5 E F0(command.)2.5 E F1
-(RANDOM)108 108 Q F0 .565
-(Each time this parameter is referenced, a random inte)144 120 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 132
+(RANDOM)108 180 Q F0 .566
+(Each time this parameter is referenced, a random inte)144 192 R .565
+(ger between 0 and 32767 is generated.)-.15 F(The)5.565 E .01
+(sequence of random numbers may be initialized by assigning a v)144 204
 R .01(alue to)-.25 F/F2 9/Times-Bold@0 SF(RANDOM)2.51 E/F3 9
 /Times-Roman@0 SF(.)A F0(If)4.51 E F2(RANDOM)2.51 E F0(is)2.26 E
-(unset, it loses its special properties, e)144 144 Q -.15(ve)-.25 G 2.5
+(unset, it loses its special properties, e)144 216 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(READLINE_LINE)108 156 Q F0 1.546(The contents of the)144 168 R
+-2.5 E F1(READLINE_LINE)108 228 Q F0 1.547(The contents of the)144 240 R
 F1 -.18(re)4.047 G(adline).18 E F0 1.547(line b)4.047 F(uf)-.2 E(fer)
 -.25 E 4.047(,f)-.4 G 1.547(or use with)-4.047 F/F4 10/Courier@0 SF
-1.547(bind -x)4.047 F F0(\(see)4.047 E F2 1.547(SHELL B)4.047 F(UIL)-.09
-E 1.547(TIN COM-)-.828 F(MANDS)144 180 Q F0(belo)2.25 E(w\).)-.25 E F1
-(READLINE_POINT)108 192 Q F0 .314
-(The position of the insertion point in the)144 204 R F1 -.18(re)2.813 G
+1.547(bind -x)4.047 F F0(\(see)4.047 E F2 1.546(SHELL B)4.047 F(UIL)-.09
+E 1.546(TIN COM-)-.828 F(MANDS)144 252 Q F0(belo)2.25 E(w\).)-.25 E F1
+(READLINE_POINT)108 264 Q F0 .313
+(The position of the insertion point in the)144 276 R F1 -.18(re)2.813 G
 (adline).18 E F0 .313(line b)2.813 F(uf)-.2 E(fer)-.25 E 2.813(,f)-.4 G
-.313(or use with)-2.813 F F4 .313(bind -x)2.813 F F0(\(see)2.813 E F2
-(SHELL)2.813 E -.09(BU)144 216 S(IL).09 E(TIN COMMANDS)-.828 E F0(belo)
-2.25 E(w\).)-.25 E F1(REPL)108 228 Q(Y)-.92 E F0
-(Set to the line of input read by the)144 240 Q F1 -.18(re)2.5 G(ad).18
+.313(or use with)-2.813 F F4 .314(bind -x)2.814 F F0(\(see)2.814 E F2
+(SHELL)2.814 E -.09(BU)144 288 S(IL).09 E(TIN COMMANDS)-.828 E F0(belo)
+2.25 E(w\).)-.25 E F1(REPL)108 300 Q(Y)-.92 E F0
+(Set to the line of input read by the)144 312 Q F1 -.18(re)2.5 G(ad).18
 E F0 -.2(bu)2.5 G(iltin command when no ar).2 E(guments are supplied.)
--.18 E F1(SECONDS)108 252 Q F0 .795(Each time this parameter is referen\
-ced, the number of seconds since shell in)144 264 R -.2(vo)-.4 G .795
-(cation is returned.).2 F .713(If a v)144 276 R .712
+-.18 E F1(SECONDS)108 324 Q F0 .795(Each time this parameter is referen\
+ced, the number of seconds since shell in)144 336 R -.2(vo)-.4 G .795
+(cation is returned.).2 F .712(If a v)144 348 R .712
 (alue is assigned to)-.25 F F2(SECONDS)3.212 E F3(,)A F0 .712(the v)
 2.962 F .712(alue returned upon subsequent references is the number)-.25
-F .407(of seconds since the assignment plus the v)144 288 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 300 Q -.15(ve)
+F .408(of seconds since the assignment plus the v)144 360 R .408
+(alue assigned.)-.25 F(If)5.408 E F2(SECONDS)2.908 E F0 .407
+(is unset, it loses its special)2.658 F(properties, e)144 372 Q -.15(ve)
 -.25 G 2.5(ni).15 G 2.5(fi)-2.5 G 2.5(ti)-2.5 G 2.5(ss)-2.5 G
-(ubsequently reset.)-2.5 E F1(SHELLOPTS)108 312 Q F0 3.263(Ac)144 324 S
-.763(olon-separated list of enabled shell options.)-3.263 F .763(Each w)
+(ubsequently reset.)-2.5 E F1(SHELLOPTS)108 384 Q F0 3.262(Ac)144 396 S
+.763(olon-separated list of enabled shell options.)-3.262 F .763(Each w)
 5.763 F .763(ord in the list is a v)-.1 F .763(alid ar)-.25 F .763
-(gument for the)-.18 F F1<ad6f>144 336 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 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 348 R F2
-(SHELLOPTS)2.52 E F0 .019(are those reported as)2.27 F/F5 10
+(gument for the)-.18 F F1<ad6f>144 408 Q F0 1.174(option to the)3.674 F
+F1(set)3.674 E F0 -.2(bu)3.674 G 1.174(iltin command \(see).2 F F2 1.173
+(SHELL B)3.673 F(UIL)-.09 E 1.173(TIN COMMANDS)-.828 F F0(belo)3.423 E
+3.673(w\). The)-.25 F(options)3.673 E .019(appearing in)144 420 R F2
+(SHELLOPTS)2.519 E F0 .019(are those reported as)2.269 F/F5 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 .019
-(ariable is in the en)-.25 F(vironment)-.4 E(when)144 360 Q F1(bash)
-3.141 E F0 .642(starts up, each shell option in the list will be enable\
-d before reading an)3.141 F 3.142(ys)-.15 G .642(tartup \214les.)-3.142
-F(This v)144 372 Q(ariable is read-only)-.25 E(.)-.65 E F1(SHL)108 384 Q
-(VL)-.92 E F0(Incremented by one each time an instance of)144 396 Q F1
-(bash)2.5 E F0(is started.)2.5 E F1(UID)108 408 Q F0
-(Expands to the user ID of the current user)144 408 Q 2.5(,i)-.4 G
+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 432 Q F1(bash)
+3.142 E F0 .642(starts up, each shell option in the list will be enable\
+d before reading an)3.142 F 3.141(ys)-.15 G .641(tartup \214les.)-3.141
+F(This v)144 444 Q(ariable is read-only)-.25 E(.)-.65 E F1(SHL)108 456 Q
+(VL)-.92 E F0(Incremented by one each time an instance of)144 468 Q F1
+(bash)2.5 E F0(is started.)2.5 E F1(UID)108 480 Q F0
+(Expands to the user ID of the current user)144 480 Q 2.5(,i)-.4 G
 (nitialized at shell startup.)-2.5 E(This v)5 E(ariable is readonly)-.25
-E(.)-.65 E .994(The follo)108 424.8 R .994(wing v)-.25 F .994
+E(.)-.65 E .993(The follo)108 496.8 R .993(wing v)-.25 F .994
 (ariables are used by the shell.)-.25 F .994(In some cases,)5.994 F F1
-(bash)3.494 E F0 .994(assigns a def)3.494 F .994(ault v)-.1 F .993
-(alue to a v)-.25 F(ariable;)-.25 E(these cases are noted belo)108 436.8
-Q -.65(w.)-.25 G F1 -.3(BA)108 453.6 S(SH_COMP).3 E -.95(AT)-.74 G F0
-1.192(The v)144 465.6 R 1.192(alue is used to set the shell')-.25 F
-3.692(sc)-.55 G 1.193(ompatibility le)-3.692 F -.15(ve)-.25 G 3.693
-(l. See).15 F 1.193(the description of the)3.693 F F1(shopt)3.693 E F0
--.2(bu)3.693 G(iltin).2 E(belo)144 477.6 Q 2.872(wu)-.25 G(nder)-2.872 E
-F1 .372(SHELL B)2.872 F(UIL)-.1 E .372(TIN COMMANDS)-.92 F F0 .372
-(for a description of the v)2.872 F .371(arious compatibility le)-.25 F
-(v-)-.25 E .36(els and their ef)144 489.6 R 2.86(fects. The)-.25 F -.25
-(va)2.86 G .361(lue may be a decimal number \(e.g., 4.2\) or an inte).25
-F .361(ger \(e.g., 42\) corre-)-.15 F 1.751
-(sponding to the desired compatibility le)144 501.6 R -.15(ve)-.25 G
-4.251(l. If).15 F F1 -.3(BA)4.251 G(SH_COMP).3 E -.95(AT)-.74 G F0 1.75
+(bash)3.494 E F0 .994(assigns a def)3.494 F .994(ault v)-.1 F .994
+(alue to a v)-.25 F(ariable;)-.25 E(these cases are noted belo)108 508.8
+Q -.65(w.)-.25 G F1 -.3(BA)108 525.6 S(SH_COMP).3 E -.95(AT)-.74 G F0
+1.193(The v)144 537.6 R 1.193(alue is used to set the shell')-.25 F
+3.693(sc)-.55 G 1.192(ompatibility le)-3.693 F -.15(ve)-.25 G 3.692
+(l. See).15 F 1.192(the description of the)3.692 F F1(shopt)3.692 E F0
+-.2(bu)3.692 G(iltin).2 E(belo)144 549.6 Q 2.871(wu)-.25 G(nder)-2.871 E
+F1 .371(SHELL B)2.871 F(UIL)-.1 E .371(TIN COMMANDS)-.92 F F0 .372
+(for a description of the v)2.872 F .372(arious compatibility le)-.25 F
+(v-)-.25 E .361(els and their ef)144 561.6 R 2.861(fects. The)-.25 F
+-.25(va)2.861 G .361
+(lue may be a decimal number \(e.g., 4.2\) or an inte).25 F .36
+(ger \(e.g., 42\) corre-)-.15 F 1.75
+(sponding to the desired compatibility le)144 573.6 R -.15(ve)-.25 G
+4.251(l. If).15 F F1 -.3(BA)4.251 G(SH_COMP).3 E -.95(AT)-.74 G F0 1.751
 (is unset or set to the empty)5.201 F .578(string, the compatibility le)
-144 513.6 R -.15(ve)-.25 G 3.078(li).15 G 3.078(ss)-3.078 G .578
+144 585.6 R -.15(ve)-.25 G 3.078(li).15 G 3.078(ss)-3.078 G .578
 (et to the def)-3.078 F .578(ault for the current v)-.1 F 3.078
 (ersion. If)-.15 F F1 -.3(BA)3.078 G(SH_COMP).3 E -.95(AT)-.74 G F0(is)
-4.028 E .249(set to a v)144 525.6 R .249(alue that is not one of the v)
--.25 F .248(alid compatibility le)-.25 F -.15(ve)-.25 G .248
-(ls, the shell prints an error message and).15 F 1.119
-(sets the compatibility le)144 537.6 R -.15(ve)-.25 G 3.619(lt).15 G
-3.619(ot)-3.619 G 1.119(he def)-3.619 F 1.119(ault for the current v)-.1
-F 3.62(ersion. The)-.15 F -.25(va)3.62 G 1.12(lid compatibility le).25 F
--.15(ve)-.25 G(ls).15 E .576
-(correspond to the compatibility options accepted by the)144 549.6 R F1
-(shopt)3.075 E F0 -.2(bu)3.075 G .575(iltin described belo).2 F 3.075
-(w\()-.25 G .575(for e)-3.075 F(xam-)-.15 E(ple,)144 561.6 Q F1
+4.028 E .248(set to a v)144 597.6 R .248(alue that is not one of the v)
+-.25 F .248(alid compatibility le)-.25 F -.15(ve)-.25 G .249
+(ls, the shell prints an error message and).15 F 1.12
+(sets the compatibility le)144 609.6 R -.15(ve)-.25 G 3.62(lt).15 G
+3.619(ot)-3.62 G 1.119(he def)-3.619 F 1.119(ault for the current v)-.1
+F 3.619(ersion. The)-.15 F -.25(va)3.619 G 1.119(lid compatibility le)
+.25 F -.15(ve)-.25 G(ls).15 E .575
+(correspond to the compatibility options accepted by the)144 621.6 R F1
+(shopt)3.075 E F0 -.2(bu)3.076 G .576(iltin described belo).2 F 3.076
+(w\()-.25 G .576(for e)-3.076 F(xam-)-.15 E(ple,)144 633.6 Q F1
 (compat42)2.5 E F0(means that 4.2 and 42 are v)2.5 E(alid v)-.25 E 2.5
 (alues\). The)-.25 F(current v)2.5 E(ersion is also a v)-.15 E(alid v)
--.25 E(alue.)-.25 E F1 -.3(BA)108 573.6 S(SH_ENV).3 E F0 .505
-(If this parameter is set when)144 585.6 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 597.6 R F5
-(~/.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 609.6 R .525
+-.25 E(alue.)-.25 E F1 -.3(BA)108 645.6 S(SH_ENV).3 E F0 .506
+(If this parameter is set when)144 657.6 R F1(bash)3.006 E F0 .506(is e)
+3.006 F -.15(xe)-.15 G .505(cuting a shell script, its v).15 F .505
+(alue is interpreted as a \214lename)-.25 F .354
+(containing commands to initialize the shell, as in)144 669.6 R F5
+(~/.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 681.6 R .525
 (xpansion, command substitution, and arithmetic e)-.15 F .525
-(xpansion before being interpreted)-.15 F(as a \214lename.)144 621.6 Q
+(xpansion before being interpreted)-.15 F(as a \214lename.)144 693.6 Q
 F2 -.666(PA)5 G(TH)-.189 E F0
 (is not used to search for the resultant \214lename.)2.25 E F1 -.3(BA)
-108 633.6 S(SH_XTRA).3 E(CEFD)-.55 E F0 .481(If set to an inte)144 645.6
-R .481(ger corresponding to a v)-.15 F .481(alid \214le descriptor)-.25
-F(,)-.4 E F1(bash)2.98 E F0 .48(will write the trace output gener)2.98 F
-(-)-.2 E 3.114(ated when)144 657.6 R F4 3.114(set -x)5.614 F F0 3.114
+108 705.6 S(SH_XTRA).3 E(CEFD)-.55 E F0 .48(If set to an inte)144 717.6
+R .48(ger corresponding to a v)-.15 F .481(alid \214le descriptor)-.25 F
+(,)-.4 E F1(bash)2.981 E F0 .481(will write the trace output gener)2.981
+F(-)-.2 E 3.114(ated when)144 729.6 R F4 3.114(set -x)5.614 F F0 3.114
 (is enabled to that \214le descriptor)5.614 F 8.114(.T)-.55 G 3.114
-(he \214le descriptor is closed when)-8.114 F F2 -.27(BA)144 669.6 S
-(SH_XTRA).27 E(CEFD)-.495 E F0 .138(is unset or assigned a ne)2.388 F
-2.638(wv)-.25 G 2.638(alue. Unsetting)-2.888 F F2 -.27(BA)2.638 G
-(SH_XTRA).27 E(CEFD)-.495 E F0 .138(or assigning it)2.388 F 2.531(the e\
-mpty string causes the trace output to be sent to the standard error)144
-681.6 R 7.531(.N)-.55 G 2.531(ote that setting)-7.531 F F2 -.27(BA)144
-693.6 S(SH_XTRA).27 E(CEFD)-.495 E F0 .74(to 2 \(the standard error \
-\214le descriptor\) and then unsetting it will result in the)2.991 F
-(standard error being closed.)144 705.6 Q(GNU Bash 5.0)72 768 Q
-(2018 March 15)144.29 E(14)193.45 E 0 Cg EP
+(he \214le descriptor is closed when)-8.114 F(GNU Bash 5.0)72 768 Q
+(2018 August 7)145.395 E(14)194.555 E 0 Cg EP
 %%Page: 15 15
 %%BeginPageSetup
 BP
 %%EndPageSetup
 /F0 10/Times-Roman@0 SF -.35(BA)72 48 S 137.14(SH\(1\) General).35 F
-(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E/F1 10/Times-Bold@0
-SF(CDP)108 84 Q -.95(AT)-.74 G(H).95 E F0 1.247(The search path for the)
-144 96 R F1(cd)3.747 E F0 3.747(command. This)3.747 F 1.248
-(is a colon-separated list of directories in which the)3.747 F 3.796
-(shell looks for destination directories speci\214ed by the)144 108 R F1
-(cd)6.295 E F0 6.295(command. A)6.295 F 3.795(sample v)6.295 F 3.795
-(alue is)-.25 F/F2 10/Courier@0 SF(".:~:/usr")144 120 Q F0(.)A F1
-(CHILD_MAX)108 132 Q F0 .997(Set the number of e)144 144 R .997
+(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E/F1 9/Times-Bold@0
+SF -.27(BA)144 84 S(SH_XTRA).27 E(CEFD)-.495 E F0 .138
+(is unset or assigned a ne)2.388 F 2.638(wv)-.25 G 2.638
+(alue. Unsetting)-2.888 F F1 -.27(BA)2.638 G(SH_XTRA).27 E(CEFD)-.495 E
+F0 .138(or assigning it)2.388 F 2.531(the empty string causes the trace\
+ output to be sent to the standard error)144 96 R 7.53(.N)-.55 G 2.53
+(ote that setting)-7.53 F F1 -.27(BA)144 108 S(SH_XTRA).27 E(CEFD)-.495
+E F0 .74(to 2 \(the standard error \214le descriptor\) and then unsetti\
+ng it will result in the)2.99 F(standard error being closed.)144 120 Q
+/F2 10/Times-Bold@0 SF(CDP)108 132 Q -.95(AT)-.74 G(H).95 E F0 1.248
+(The search path for the)144 144 R F2(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 156 R F2
+(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/F3 10/Courier@0 SF(".:~:/usr")144 168 Q F0(.)A F2
+(CHILD_MAX)108 180 Q F0 .997(Set the number of e)144 192 R .997
 (xited child status v)-.15 F .997(alues for the shell to remember)-.25 F
-5.997(.B)-.55 G .997(ash will not allo)-5.997 F 3.498(wt)-.25 G(his)
--3.498 E -.25(va)144 156 S 1.078(lue to be decreased belo).25 F 3.577
+5.997(.B)-.55 G .997(ash will not allo)-5.997 F 3.497(wt)-.25 G(his)
+-3.497 E -.25(va)144 204 S 1.077(lue to be decreased belo).25 F 3.577
 (waP)-.25 G 1.077(OSIX-mandated minimum, and there is a maximum v)-3.577
-F 1.077(alue \(cur)-.25 F(-)-.2 E(rently 8192\) that this may not e)144
-168 Q 2.5(xceed. The)-.15 F(minimum v)2.5 E(alue is system-dependent.)
--.25 E F1(COLUMNS)108 180 Q F0 .828(Used by the)144 192 R F1(select)
-3.328 E F0 .829(compound command to determine the terminal width when p\
-rinting selection)3.328 F 4.507(lists. Automatically)144 204 R 2.007
-(set if the)4.507 F F1(checkwinsize)4.507 E F0 2.006
-(option is enabled or in an interacti)4.507 F 2.306 -.15(ve s)-.25 H
-2.006(hell upon).15 F(receipt of a)144 216 Q/F3 9/Times-Bold@0 SF
-(SIGWINCH)2.5 E/F4 9/Times-Roman@0 SF(.)A F1(COMPREPL)108 228 Q(Y)-.92 E
-F0 .847(An array v)144 240 R .848(ariable from which)-.25 F F1(bash)
-3.348 E F0 .848
+F 1.078(alue \(cur)-.25 F(-)-.2 E(rently 8192\) that this may not e)144
+216 Q 2.5(xceed. The)-.15 F(minimum v)2.5 E(alue is system-dependent.)
+-.25 E F2(COLUMNS)108 228 Q F0 .829(Used by the)144 240 R F2(select)
+3.329 E F0 .828(compound command to determine the terminal width when p\
+rinting selection)3.329 F 4.506(lists. Automatically)144 252 R 2.006
+(set if the)4.506 F F2(checkwinsize)4.506 E F0 2.007
+(option is enabled or in an interacti)4.506 F 2.307 -.15(ve s)-.25 H
+2.007(hell upon).15 F(receipt of a)144 264 Q F1(SIGWINCH)2.5 E/F4 9
+/Times-Roman@0 SF(.)A F2(COMPREPL)108 276 Q(Y)-.92 E F0 .848(An array v)
+144 288 R .848(ariable from which)-.25 F F2(bash)3.348 E F0 .848
 (reads the possible completions generated by a shell function)3.348 F
-(in)144 252 Q -.2(vo)-.4 G -.1(ke).2 G 2.785(db).1 G 2.785(yt)-2.785 G
-.285(he programmable completion f)-2.785 F .285(acility \(see)-.1 F F1
+(in)144 300 Q -.2(vo)-.4 G -.1(ke).2 G 2.785(db).1 G 2.785(yt)-2.785 G
+.285(he programmable completion f)-2.785 F .285(acility \(see)-.1 F F2
 (Pr)2.785 E .285(ogrammable Completion)-.18 F F0(belo)2.785 E 2.785
 (w\). Each)-.25 F(array element contains one possible completion.)144
-264 Q F1(EMA)108 276 Q(CS)-.55 E F0(If)144 288 Q F1(bash)2.535 E F0 .035
-(\214nds this v)2.535 F .035(ariable in the en)-.25 F .036
-(vironment when the shell starts with v)-.4 F(alue)-.25 E F2(t)2.536 E
-F0 2.536(,i)C 2.536(ta)-2.536 G .036(ssumes that the)-2.536 F
-(shell is running in an Emacs shell b)144 300 Q(uf)-.2 E
-(fer and disables line editing.)-.25 E F1(ENV)108 312 Q F0(Similar to)
-144 312 Q F3 -.27(BA)2.5 G(SH_ENV).27 E F4(;)A F0
+312 Q F2(EMA)108 324 Q(CS)-.55 E F0(If)144 336 Q F2(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 F3(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 348 Q(uf)-.2 E
+(fer and disables line editing.)-.25 E F2(ENV)108 360 Q F0(Similar to)
+144 360 Q F1 -.27(BA)2.5 G(SH_ENV).27 E F4(;)A F0
 (used when the shell is in)2.25 E -.2(vo)-.4 G -.1(ke).2 G 2.5(di).1 G
-2.5(nP)-2.5 G(OSIX mode.)-2.5 E F1(EXECIGNORE)108 324 Q F0 2.717(Ac)144
-336 S .217(olon-separated list of shell patterns \(see)-2.717 F F1 -.1
-(Pa)2.717 G(tter).1 E 2.717(nM)-.15 G(atching)-2.717 E F0 2.717(\)d)C
-.216(e\214ning the list of \214lenames to be)-2.717 F .116
-(ignored by command search using)144 348 R F1 -.74(PA)2.616 G(TH)-.21 E
-F0 5.116(.F)C .117
-(iles whose full pathnames match one of these patterns)-5.116 F 1.433
-(are not considered e)144 360 R -.15(xe)-.15 G 1.432
+(n)-2.5 E/F5 10/Times-Italic@0 SF(posix mode)2.5 E F0(.)A F2(EXECIGNORE)
+108 372 Q F0 2.716(Ac)144 384 S .216
+(olon-separated list of shell patterns \(see)-2.716 F F2 -.1(Pa)2.717 G
+(tter).1 E 2.717(nM)-.15 G(atching)-2.717 E F0 2.717(\)d)C .217
+(e\214ning the list of \214lenames to be)-2.717 F .117
+(ignored by command search using)144 396 R F2 -.74(PA)2.617 G(TH)-.21 E
+F0 5.117(.F)C .116
+(iles whose full pathnames match one of these patterns)-5.117 F 1.432
+(are not considered e)144 408 R -.15(xe)-.15 G 1.432
 (cutable \214les for the purposes of completion and command e).15 F -.15
-(xe)-.15 G 1.432(cution via).15 F F1 -.74(PA)144 372 S(TH)-.21 E F0
-2.908(lookup. This)2.908 F .408(does not af)2.908 F .408(fect the beha)
--.25 F .408(vior of the)-.2 F F1([)2.908 E F0(,)A F1(test)2.908 E F0
-2.908(,a)C(nd)-2.908 E F1([[)2.908 E F0 2.909(commands. Full)2.908 F
-(pathnames)2.909 E .364(in the command hash table are not subject to)144
-384 R F1(EXECIGNORE)2.864 E F0 5.364(.U)C .364(se this v)-5.364 F .364
-(ariable to ignore shared)-.25 F 1.37(library \214les that ha)144 396 R
+(xe)-.15 G 1.433(cution via).15 F F2 -.74(PA)144 420 S(TH)-.21 E F0
+2.909(lookup. This)2.909 F .408(does not af)2.908 F .408(fect the beha)
+-.25 F .408(vior of the)-.2 F F2([)2.908 E F0(,)A F2(test)2.908 E F0
+2.908(,a)C(nd)-2.908 E F2([[)2.908 E F0 2.908(commands. Full)2.908 F
+(pathnames)2.908 E .364(in the command hash table are not subject to)144
+432 R F2(EXECIGNORE)2.864 E F0 5.364(.U)C .364(se this v)-5.364 F .364
+(ariable to ignore shared)-.25 F 1.37(library \214les that ha)144 444 R
 1.67 -.15(ve t)-.2 H 1.37(he e).15 F -.15(xe)-.15 G 1.37
 (cutable bit set, b).15 F 1.37(ut are not e)-.2 F -.15(xe)-.15 G 1.37
 (cutable \214les.).15 F 1.37(The pattern matching)6.37 F
-(honors the setting of the)144 408 Q F1(extglob)2.5 E F0(shell option.)
-2.5 E F1(FCEDIT)108 420 Q F0(The def)144 432 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 444 Q F0
-2.599(Ac)144 456 S .098(olon-separated list of suf)-2.599 F<8c78>-.25 E
-.098(es to ignore when performing \214lename completion \(see)-.15 F F3
-(READLINE)2.598 E F0(belo)144 468 Q 2.704(w\). A)-.25 F .204
-(\214lename whose suf)2.704 F .205(\214x matches one of the entries in)
--.25 F F3(FIGNORE)2.705 E F0 .205(is e)2.455 F .205
-(xcluded from the list)-.15 F(of matched \214lenames.)144 480 Q 2.5(As)5
-G(ample v)-2.5 E(alue is)-.25 E F2(".o:~")2.5 E F0(.)A F1(FUNCNEST)108
-492 Q F0 .231(If set to a numeric v)144 504 R .231
+(honors the setting of the)144 456 Q F2(extglob)2.5 E F0(shell option.)
+2.5 E F2(FCEDIT)108 468 Q F0(The def)144 480 Q(ault editor for the)-.1 E
+F2(fc)2.5 E F0 -.2(bu)2.5 G(iltin command.).2 E F2(FIGNORE)108 492 Q F0
+2.598(Ac)144 504 S .098(olon-separated list of suf)-2.598 F<8c78>-.25 E
+.098(es to ignore when performing \214lename completion \(see)-.15 F F1
+(READLINE)2.599 E F0(belo)144 516 Q 2.705(w\). A)-.25 F .205
+(\214lename whose suf)2.705 F .205(\214x matches one of the entries in)
+-.25 F F1(FIGNORE)2.705 E F0 .205(is e)2.455 F .204
+(xcluded from the list)-.15 F(of matched \214lenames.)144 528 Q 2.5(As)5
+G(ample v)-2.5 E(alue is)-.25 E F3(".o:~")2.5 E F0(.)A F2(FUNCNEST)108
+540 Q F0 .23(If set to a numeric v)144 552 R .231
 (alue greater than 0, de\214nes a maximum function nesting le)-.25 F
--.15(ve)-.25 G 2.73(l. Function).15 F(in)2.73 E -.2(vo)-.4 G(-).2 E
-(cations that e)144 516 Q(xceed this nesting le)-.15 E -.15(ve)-.25 G
-2.5(lw).15 G(ill cause the current command to abort.)-2.5 E F1
-(GLOBIGNORE)108 528 Q F0 2.923(Ac)144 540 S .423(olon-separated list of\
+-.15(ve)-.25 G 2.731(l. Function).15 F(in)2.731 E -.2(vo)-.4 G(-).2 E
+(cations that e)144 564 Q(xceed this nesting le)-.15 E -.15(ve)-.25 G
+2.5(lw).15 G(ill cause the current command to abort.)-2.5 E F2
+(GLOBIGNORE)108 576 Q F0 2.924(Ac)144 588 S .423(olon-separated list of\
  patterns de\214ning the set of \214le names to be ignored by pathname \
-e)-2.923 F(xpan-)-.15 E 2.948(sion. If)144 552 R 2.948<618c>2.948 G .448
-(le name matched by a pathname e)-2.948 F .447
-(xpansion pattern also matches one of the patterns in)-.15 F F3
-(GLOBIGNORE)144 564 Q F4(,)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 576 Q(OL)-.3 E F0
-2.653(Ac)144 588 S .153(olon-separated list of v)-2.653 F .153
+e)-2.924 F(xpan-)-.15 E 2.947(sion. If)144 600 R 2.947<618c>2.947 G .447
+(le name matched by a pathname e)-2.947 F .448
+(xpansion pattern also matches one of the patterns in)-.15 F F1
+(GLOBIGNORE)144 612 Q F4(,)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 F2(HISTCONTR)108 624 Q(OL)-.3 E F0
+2.654(Ac)144 636 S .153(olon-separated list of v)-2.654 F .153
 (alues controlling ho)-.25 F 2.653(wc)-.25 G .153(ommands are sa)-2.653
 F -.15(ve)-.2 G 2.653(do).15 G 2.653(nt)-2.653 G .153(he history list.)
--2.653 F .154(If the list)5.153 F .491(of v)144 600 R .491
-(alues includes)-.25 F/F5 10/Times-Italic@0 SF(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 612 R
-3.057(Av)5.557 G .557(alue of)-3.307 F F5(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.926
-(Av)144 624 S .426(alue of)-3.176 F F5(ignor)2.936 E(eboth)-.37 E F0
-.426(is shorthand for)3.206 F F5(ignor)2.926 E(espace)-.37 E F0(and)
-2.926 E F5(ignor)2.926 E(edups)-.37 E F0 5.426(.A)C -.25(va)-2.501 G
-.425(lue of).25 F F5(er)3.115 E(asedups)-.15 E F0(causes)3.195 E .698
-(all pre)144 636 R .698
+-2.653 F .153(If the list)5.153 F .49(of v)144 648 R .49(alues includes)
+-.25 F F5(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 F2(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 660 R 3.058(Av)5.558
+G .558(alue of)-3.308 F F5(ignor)3.068 E(edups)-.37 E F0 .558
+(causes lines matching the pre)3.328 F .557
+(vious history entry to not be sa)-.25 F -.15(ve)-.2 G(d.).15 E 2.925
+(Av)144 672 S .425(alue of)-3.175 F F5(ignor)2.935 E(eboth)-.37 E F0
+.426(is shorthand for)3.205 F F5(ignor)2.926 E(espace)-.37 E F0(and)
+2.926 E F5(ignor)2.926 E(edups)-.37 E F0 5.426(.A)C -.25(va)-2.5 G .426
+(lue of).25 F F5(er)3.116 E(asedups)-.15 E F0(causes)3.196 E .699
+(all pre)144 684 R .698
 (vious lines matching the current line to be remo)-.25 F -.15(ve)-.15 G
-3.198(df).15 G .699(rom the history list before that line is)-3.198 F
-(sa)144 648 Q -.15(ve)-.2 G 2.764(d. An).15 F 2.764(yv)-.15 G .264
-(alue not in the abo)-3.014 F .563 -.15(ve l)-.15 H .263
-(ist is ignored.).15 F(If)5.263 E F3(HISTCONTR)2.763 E(OL)-.27 E F0 .263
-(is unset, or does not include)2.513 F 2.941(av)144 660 S .441(alid v)
--3.191 F .441(alue, all lines read by the shell parser are sa)-.25 F
--.15(ve)-.2 G 2.942(do).15 G 2.942(nt)-2.942 G .442
-(he history list, subject to the v)-2.942 F .442(alue of)-.25 F F3
-(HISTIGNORE)144 672 Q F4(.)A F0 1.981(The second and subsequent lines o\
-f a multi-line compound command are not)6.482 F
-(tested, and are added to the history re)144 684 Q -.05(ga)-.15 G
-(rdless of the v).05 E(alue of)-.25 E F3(HISTCONTR)2.5 E(OL)-.27 E F4(.)
-A F1(HISTFILE)108 696 Q F0 .181
-(The name of the \214le in which command history is sa)144 708 R -.15
-(ve)-.2 G 2.681(d\().15 G(see)-2.681 E F3(HIST)2.681 E(OR)-.162 E(Y)
--.315 E F0(belo)2.431 E 2.682(w\). The)-.25 F(def)2.682 E .182(ault v)
--.1 F(alue)-.25 E(is)144 720 Q F5(~/.bash_history)2.5 E F0 5(.I)C 2.5
-(fu)-5 G(nset, the command history is not sa)-2.5 E -.15(ve)-.2 G 2.5
-(dw).15 G(hen a shell e)-2.5 E(xits.)-.15 E(GNU Bash 5.0)72 768 Q
-(2018 March 15)144.29 E(15)193.45 E 0 Cg EP
+3.198(df).15 G .698(rom the history list before that line is)-3.198 F
+(sa)144 696 Q -.15(ve)-.2 G 2.763(d. An).15 F 2.763(yv)-.15 G .263
+(alue not in the abo)-3.013 F .563 -.15(ve l)-.15 H .263
+(ist is ignored.).15 F(If)5.263 E F1(HISTCONTR)2.763 E(OL)-.27 E F0 .264
+(is unset, or does not include)2.513 F 2.942(av)144 708 S .442(alid v)
+-3.192 F .442(alue, all lines read by the shell parser are sa)-.25 F
+-.15(ve)-.2 G 2.941(do).15 G 2.941(nt)-2.941 G .441
+(he history list, subject to the v)-2.941 F .441(alue of)-.25 F F1
+(HISTIGNORE)144 720 Q F4(.)A F0 1.981(The second and subsequent lines o\
+f a multi-line compound command are not)6.481 F(GNU Bash 5.0)72 768 Q
+(2018 August 7)145.395 E(15)194.555 E 0 Cg EP
 %%Page: 16 16
 %%BeginPageSetup
 BP
 %%EndPageSetup
 /F0 10/Times-Roman@0 SF -.35(BA)72 48 S 137.14(SH\(1\) General).35 F
-(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).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.622(When this v)6.623 F 1.622(ariable is assigned a)-.25 F -.25(va)144
-108 S .931(lue, the history \214le is truncated, if necessary).25 F
+(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E
+(tested, and are added to the history re)144 84 Q -.05(ga)-.15 G
+(rdless of the v).05 E(alue of)-.25 E/F1 9/Times-Bold@0 SF(HISTCONTR)2.5
+E(OL)-.27 E/F2 9/Times-Roman@0 SF(.)A/F3 10/Times-Bold@0 SF(HISTFILE)108
+96 Q F0 .181(The name of the \214le in which command history is sa)144
+108 R -.15(ve)-.2 G 2.681(d\().15 G(see)-2.681 E F1(HIST)2.681 E(OR)
+-.162 E(Y)-.315 E F0(belo)2.431 E 2.681(w\). The)-.25 F(def)2.681 E .181
+(ault v)-.1 F(alue)-.25 E(is)144 120 Q/F4 10/Times-Italic@0 SF
+(~/.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 a shell e)-2.5 E(xits.)-.15 E F3(HISTFILESIZE)108 132 Q F0 1.622
+(The maximum number of lines contained in the history \214le.)144 144 R
+1.623(When this v)6.623 F 1.623(ariable is assigned a)-.25 F -.25(va)144
+156 S .932(lue, the history \214le is truncated, if necessary).25 F
 3.432(,t)-.65 G 3.432(oc)-3.432 G .932
-(ontain no more than that number of lines by)-3.432 F(remo)144 120 Q
-.871(ving the oldest entries.)-.15 F .87(The history \214le is also tru\
-ncated to this size after writing it when a)5.871 F 1.244(shell e)144
-132 R 3.744(xits. If)-.15 F 1.244(the v)3.744 F 1.244
-(alue is 0, the history \214le is truncated to zero size.)-.25 F 1.245
-(Non-numeric v)6.244 F 1.245(alues and)-.25 F 1.022(numeric v)144 144 R
+(ontain no more than that number of lines by)-3.432 F(remo)144 168 Q .87
+(ving the oldest entries.)-.15 F .871(The history \214le is also trunca\
+ted to this size after writing it when a)5.87 F 1.245(shell e)144 180 R
+3.745(xits. If)-.15 F 1.244(the v)3.744 F 1.244
+(alue is 0, the history \214le is truncated to zero size.)-.25 F 1.244
+(Non-numeric v)6.244 F 1.244(alues and)-.25 F 1.021(numeric v)144 192 R
 1.022(alues less than zero inhibit truncation.)-.25 F 1.022
 (The shell sets the def)6.022 F 1.022(ault v)-.1 F 1.022(alue to the v)
--.25 F 1.021(alue of)-.25 F F1(HISTSIZE)144 156 Q F0(after reading an)
-2.5 E 2.5(ys)-.15 G(tartup \214les.)-2.5 E F1(HISTIGNORE)108 168 Q F0
-2.657(Ac)144 180 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 192 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 204 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/F2 9/Times-Bold@0
-SF(HISTCONTR)144 216 Q(OL)-.27 E F0 1.793(are applied.)4.043 F 1.793
+-.25 F 1.022(alue of)-.25 F F3(HISTSIZE)144 204 Q F0(after reading an)
+2.5 E 2.5(ys)-.15 G(tartup \214les.)-2.5 E F3(HISTIGNORE)108 216 Q F0
+2.658(Ac)144 228 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 240 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 252 R F3(*)A F0 3.126('i)C 3.126(sa)-3.126 G 3.126
+(ppended\). Each)-3.126 F .626(pattern is tested ag)3.126 F .625
+(ainst the line after the checks speci\214ed by)-.05 F F1(HISTCONTR)144
+264 Q(OL)-.27 E F0 1.793(are applied.)4.043 F 1.793
 (In addition to the normal shell pattern matching characters, `)6.793 F
-F1(&)A F0(')A 2.514(matches the pre)144 228 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 240
-Q -.15(ve)-.15 G 3.353(db).15 G .853(efore attempting a match.)-3.353 F
+F3(&)A F0(')A 2.515(matches the pre)144 276 R 2.515(vious history line.)
+-.25 F(`)7.514 E F3(&)A F0 5.014('m)C 2.514
+(ay be escaped using a backslash; the backslash is)-5.014 F(remo)144 288
+Q -.15(ve)-.15 G 3.352(db).15 G .852(efore attempting a match.)-3.352 F
 .852(The second and subsequent lines of a multi-line compound)5.852 F
-1.269(command are not tested, and are added to the history re)144 252 R
--.05(ga)-.15 G 1.269(rdless of the v).05 F 1.269(alue of)-.25 F F2
-(HISTIGNORE)3.77 E/F3 9/Times-Roman@0 SF(.)A F0
-(The pattern matching honors the setting of the)144 264 Q F1(extglob)2.5
-E F0(shell option.)2.5 E F1(HISTSIZE)108 276 Q F0 1.387
-(The number of commands to remember in the command history \(see)144 288
-R F2(HIST)3.887 E(OR)-.162 E(Y)-.315 E F0(belo)3.637 E 3.887(w\). If)
--.25 F(the)3.887 E -.25(va)144 300 S 1.32(lue is 0, commands are not sa)
-.25 F -.15(ve)-.2 G 3.82(di).15 G 3.821(nt)-3.82 G 1.321
-(he history list.)-3.821 F 1.321(Numeric v)6.321 F 1.321
-(alues less than zero result in)-.25 F -2.15 -.25(ev e)144 312 T .437
-(ry command being sa).25 F -.15(ve)-.2 G 2.937(do).15 G 2.937(nt)-2.937
-G .437(he history list \(there is no limit\).)-2.937 F .436
-(The shell sets the def)5.436 F .436(ault v)-.1 F(alue)-.25 E
-(to 500 after reading an)144 324 Q 2.5(ys)-.15 G(tartup \214les.)-2.5 E
-F1(HISTTIMEFORMA)108 336 Q(T)-.95 E F0 .951(If this v)144 348 R .951
-(ariable is set and not null, its v)-.25 F .952
-(alue is used as a format string for)-.25 F/F4 10/Times-Italic@0 SF
-(strftime)3.452 E F0 .952(\(3\) to print the)B .673
-(time stamp associated with each history entry displayed by the)144 360
-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
-(set, time stamps are written to the history \214le so the)144 372 R
+1.269(command are not tested, and are added to the history re)144 300 R
+-.05(ga)-.15 G 1.269(rdless of the v).05 F 1.269(alue of)-.25 F F1
+(HISTIGNORE)3.769 E F2(.)A F0
+(The pattern matching honors the setting of the)144 312 Q F3(extglob)2.5
+E F0(shell option.)2.5 E F3(HISTSIZE)108 324 Q F0 1.387
+(The number of commands to remember in the command history \(see)144 336
+R F1(HIST)3.887 E(OR)-.162 E(Y)-.315 E F0(belo)3.637 E 3.887(w\). If)
+-.25 F(the)3.888 E -.25(va)144 348 S 1.321
+(lue is 0, commands are not sa).25 F -.15(ve)-.2 G 3.821(di).15 G 3.821
+(nt)-3.821 G 1.321(he history list.)-3.821 F 1.32(Numeric v)6.32 F 1.32
+(alues less than zero result in)-.25 F -2.15 -.25(ev e)144 360 T .436
+(ry command being sa).25 F -.15(ve)-.2 G 2.936(do).15 G 2.936(nt)-2.936
+G .436(he history list \(there is no limit\).)-2.936 F .437
+(The shell sets the def)5.437 F .437(ault v)-.1 F(alue)-.25 E
+(to 500 after reading an)144 372 Q 2.5(ys)-.15 G(tartup \214les.)-2.5 E
+F3(HISTTIMEFORMA)108 384 Q(T)-.95 E F0 .952(If this v)144 396 R .952
+(ariable is set and not null, its v)-.25 F .951
+(alue is used as a format string for)-.25 F F4(strftime)3.451 E F0 .951
+(\(3\) to print the)B .672
+(time stamp associated with each history entry displayed by the)144 408
+R F3(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 420 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\
- character to distinguish timestamps from other history lines.)144 384 Q
-F1(HOME)108 396 Q F0 1.27
-(The home directory of the current user; the def)144 408 R 1.27(ault ar)
--.1 F 1.27(gument for the)-.18 F F1(cd)3.77 E F0 -.2(bu)3.77 G 1.27
-(iltin command.).2 F(The)6.27 E -.25(va)144 420 S(lue of this v).25 E
-(ariable is also used when performing tilde e)-.25 E(xpansion.)-.15 E F1
-(HOSTFILE)108 432 Q F0 1.015
-(Contains the name of a \214le in the same format as)144 444 R F4
+(ed across shell sessions.)-.15 F(This)5.144 E(uses the history comment\
+ character to distinguish timestamps from other history lines.)144 432 Q
+F3(HOME)108 444 Q F0 1.27
+(The home directory of the current user; the def)144 456 R 1.27(ault ar)
+-.1 F 1.27(gument for the)-.18 F F3(cd)3.77 E F0 -.2(bu)3.77 G 1.27
+(iltin command.).2 F(The)6.27 E -.25(va)144 468 S(lue of this v).25 E
+(ariable is also used when performing tilde e)-.25 E(xpansion.)-.15 E F3
+(HOSTFILE)108 480 Q F0 1.015
+(Contains the name of a \214le in the same format as)144 492 R F4
 (/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 456 R .551
+.55(needs to complete a hostname.)144 504 R .551
 (The list of possible hostname completions may be changed while)5.551 F
-1.058(the shell is running; the ne)144 468 R 1.059
-(xt time hostname completion is attempted after the v)-.15 F 1.059
-(alue is changed,)-.25 F F1(bash)144 480 Q F0 .138
-(adds the contents of the ne)2.639 F 2.638<778c>-.25 G .138(le to the e)
--2.638 F .138(xisting list.)-.15 F(If)5.138 E F2(HOSTFILE)2.638 E F0
-.138(is set, b)2.388 F .138(ut has no v)-.2 F .138(alue, or)-.25 F .517
-(does not name a readable \214le,)144 492 R F1(bash)3.017 E F0 .517
-(attempts to read)3.017 F F4(/etc/hosts)4.684 E F0 .518
-(to obtain the list of possible host-)4.684 F(name completions.)144 504
-Q(When)5 E F2(HOSTFILE)2.5 E F0(is unset, the hostname list is cleared.)
-2.25 E F1(IFS)108 516 Q F0(The)144 516 Q F4 .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
-F -.1(wo)144 528 S(rds with the).1 E F1 -.18(re)2.5 G(ad).18 E F0 -.2
+1.059(the shell is running; the ne)144 516 R 1.059
+(xt time hostname completion is attempted after the v)-.15 F 1.058
+(alue is changed,)-.25 F F3(bash)144 528 Q F0 .138
+(adds the contents of the ne)2.638 F 2.638<778c>-.25 G .138(le to the e)
+-2.638 F .138(xisting list.)-.15 F(If)5.138 E F1(HOSTFILE)2.638 E F0
+.138(is set, b)2.388 F .139(ut has no v)-.2 F .139(alue, or)-.25 F .518
+(does not name a readable \214le,)144 540 R F3(bash)3.018 E F0 .518
+(attempts to read)3.018 F F4(/etc/hosts)4.683 E F0 .517
+(to obtain the list of possible host-)4.683 F(name completions.)144 552
+Q(When)5 E F1(HOSTFILE)2.5 E F0(is unset, the hostname list is cleared.)
+2.25 E F3(IFS)108 564 Q F0(The)144 564 Q F4 .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 576 S(rds with the).1 E F3 -.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 540 Q
-F0 .503(Controls the action of an interacti)144 552 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)
-144 564 R .426(alue is the number of consecuti)-.25 F -.15(ve)-.25 G F2
+(`<space><tab><ne)-.74 E(wline>')-.25 E('.)-.74 E F3(IGNOREEOF)108 588 Q
+F0 .503(Controls the action of an interacti)144 600 R .803 -.15(ve s)
+-.25 H .503(hell on receipt of an).15 F F1(EOF)3.003 E F0 .503
+(character as the sole input.)2.753 F .503(If set,)5.503 F .426(the v)
+144 612 R .426(alue is the number of consecuti)-.25 F -.15(ve)-.25 G F1
 (EOF)3.076 E F0 .426
-(characters which must be typed as the \214rst characters)2.676 F .302
-(on an input line before)144 576 R F1(bash)2.802 E F0 -.15(ex)2.802 G
+(characters which must be typed as the \214rst characters)2.676 F .303
+(on an input line before)144 624 R F3(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 588 Q(alue, the def)
+(umeric v).15 F .302(alue, or has)-.25 F(no v)144 636 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 600 Q F0 1.436(The \214lename for the)144 612 R F1 -.18(re)
+F1(EOF)2.5 E F0(signi\214es the end of input to the shell.)2.25 E F3
+(INPUTRC)108 648 Q F0 1.435(The \214lename for the)144 660 R F3 -.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 F4(~/.inputr)5.602 E(c)
--.37 E F0(\(see)5.601 E F2(READLINE)3.935 E F0(belo)144 624 Q(w\).)-.25
-E F1(LANG)108 636 Q F0 1.239(Used to determine the locale cate)144 636 R
-1.239(gory for an)-.15 F 3.739(yc)-.15 G(ate)-3.739 E 1.24
-(gory not speci\214cally selected with a v)-.15 F(ariable)-.25 E
-(starting with)144 648 Q F1(LC_)2.5 E F0(.)A F1(LC_ALL)108 660 Q F0 .974
-(This v)144 672 R .974(ariable o)-.25 F -.15(ve)-.15 G .974
-(rrides the v).15 F .973(alue of)-.25 F F2(LANG)3.473 E F0 .973(and an)
-3.223 F 3.473(yo)-.15 G(ther)-3.473 E F1(LC_)3.473 E F0 -.25(va)3.473 G
-.973(riable specifying a locale cate-).25 F(gory)144 684 Q(.)-.65 E F1
-(LC_COLLA)108 696 Q(TE)-.95 E F0 .411(This v)144 708 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 720 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(GNU Bash 5.0)72 768 Q
-(2018 March 15)144.29 E(16)193.45 E 0 Cg EP
+-.37 E F0(\(see)5.602 E F1(READLINE)3.936 E F0(belo)144 672 Q(w\).)-.25
+E F3(INSIDE_EMA)108 684 Q(CS)-.55 E F0 .887(If this v)144 696 R .887
+(ariable appears in the en)-.25 F .886(vironment when the shell starts,)
+-.4 F F3(bash)3.386 E F0 .886(assumes that it is running)3.386 F
+(inside an Emacs shell b)144 708 Q(uf)-.2 E
+(fer and may disable line editing, depending on the v)-.25 E(alue of)
+-.25 E F3(TERM)2.5 E F0(.)A(GNU Bash 5.0)72 768 Q(2018 August 7)145.395
+E(16)194.555 E 0 Cg EP
 %%Page: 17 17
 %%BeginPageSetup
 BP
 %%EndPageSetup
 /F0 10/Times-Roman@0 SF -.35(BA)72 48 S 137.14(SH\(1\) General).35 F
-(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E(within pathname e)
-144 84 Q(xpansion and pattern matching.)-.15 E/F1 10/Times-Bold@0 SF
-(LC_CTYPE)108 96 Q F0 1.935(This v)144 108 R 1.936
+(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E/F1 10/Times-Bold@0
+SF(LANG)108 84 Q F0 1.239(Used to determine the locale cate)144 84 R
+1.239(gory for an)-.15 F 3.739(yc)-.15 G(ate)-3.739 E 1.24
+(gory not speci\214cally selected with a v)-.15 F(ariable)-.25 E
+(starting with)144 96 Q F1(LC_)2.5 E F0(.)A F1(LC_ALL)108 108 Q F0 .974
+(This v)144 120 R .974(ariable o)-.25 F -.15(ve)-.15 G .974
+(rrides the v).15 F .973(alue of)-.25 F/F2 9/Times-Bold@0 SF(LANG)3.473
+E F0 .973(and an)3.223 F 3.473(yo)-.15 G(ther)-3.473 E F1(LC_)3.473 E F0
+-.25(va)3.473 G .973(riable specifying a locale cate-).25 F(gory)144 132
+Q(.)-.65 E F1(LC_COLLA)108 144 Q(TE)-.95 E F0 .411(This v)144 156 R .412
+(ariable determines the collation order used when sorting the results o\
+f pathname e)-.25 F(xpansion,)-.15 E 1.465(and determines the beha)144
+168 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 180 Q(xpansion and pattern matching.)-.15 E F1
+(LC_CTYPE)108 192 Q F0 1.935(This v)144 204 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 120 Q
-(xpansion and pattern matching.)-.15 E F1(LC_MESSA)108 132 Q(GES)-.55 E
-F0(This v)144 144 Q(ariable determines the locale used to translate dou\
+1.936(vior of character classes)-.2 F(within pathname e)144 216 Q
+(xpansion and pattern matching.)-.15 E F1(LC_MESSA)108 228 Q(GES)-.55 E
+F0(This v)144 240 Q(ariable determines the locale used to translate dou\
 ble-quoted strings preceded by a)-.25 E F1($)2.5 E F0(.)A F1(LC_NUMERIC)
-108 156 Q F0(This v)144 168 Q(ariable determines the locale cate)-.25 E
-(gory used for number formatting.)-.15 E F1(LC_TIME)108 180 Q F0(This v)
-144 192 Q(ariable determines the locale cate)-.25 E
-(gory used for data and time formatting.)-.15 E F1(LINES)108 204 Q F0
-.055(Used by the)144 204 R F1(select)2.555 E F0 .054(compound command t\
+108 252 Q F0(This v)144 264 Q(ariable determines the locale cate)-.25 E
+(gory used for number formatting.)-.15 E F1(LC_TIME)108 276 Q F0(This v)
+144 288 Q(ariable determines the locale cate)-.25 E
+(gory used for data and time formatting.)-.15 E F1(LINES)108 300 Q F0
+.055(Used by the)144 300 R F1(select)2.555 E F0 .054(compound command t\
 o determine the column length for printing selection lists.)2.555 F .264
-(Automatically set if the)144 216 R F1(checkwinsize)2.764 E F0 .264
+(Automatically set if the)144 312 R F1(checkwinsize)2.764 E F0 .264
 (option is enabled or in an interacti)2.764 F .565 -.15(ve s)-.25 H .265
-(hell upon receipt of a).15 F/F2 9/Times-Bold@0 SF(SIGWINCH)144 228 Q/F3
-9/Times-Roman@0 SF(.)A F1(MAIL)108 240 Q F0 1.201
-(If this parameter is set to a \214le or directory name and the)144 240
+(hell upon receipt of a).15 F F2(SIGWINCH)144 324 Q/F3 9/Times-Roman@0
+SF(.)A F1(MAIL)108 336 Q F0 1.201
+(If this parameter is set to a \214le or directory name and the)144 336
 R F2(MAILP)3.701 E -.855(AT)-.666 G(H).855 E F0 -.25(va)3.451 G 1.201
 (riable is not set,).25 F F1(bash)3.701 E F0
-(informs the user of the arri)144 252 Q -.25(va)-.25 G 2.5(lo).25 G 2.5
+(informs the user of the arri)144 348 Q -.25(va)-.25 G 2.5(lo).25 G 2.5
 (fm)-2.5 G(ail in the speci\214ed \214le or Maildir)-2.5 E
-(-format directory)-.2 E(.)-.65 E F1(MAILCHECK)108 264 Q F0 .098
-(Speci\214es ho)144 276 R 2.598(wo)-.25 G .098(ften \(in seconds\))
+(-format directory)-.2 E(.)-.65 E F1(MAILCHECK)108 360 Q F0 .098
+(Speci\214es ho)144 372 R 2.598(wo)-.25 G .098(ften \(in seconds\))
 -2.598 F F1(bash)2.598 E F0 .098(checks for mail.)2.598 F .098(The def)
 5.098 F .098(ault is 60 seconds.)-.1 F .099(When it is time)5.099 F .224
 (to check for mail, the shell does so before displaying the primary pro\
-mpt.)144 288 R .223(If this v)5.223 F .223(ariable is unset,)-.25 F
-(or set to a v)144 300 Q(alue that is not a number greater than or equa\
-l to zero, the shell disables mail checking.)-.25 E F1(MAILP)108 312 Q
--.95(AT)-.74 G(H).95 E F0 2.99(Ac)144 324 S .49
+mpt.)144 384 R .223(If this v)5.223 F .223(ariable is unset,)-.25 F
+(or set to a v)144 396 Q(alue that is not a number greater than or equa\
+l to zero, the shell disables mail checking.)-.25 E F1(MAILP)108 408 Q
+-.95(AT)-.74 G(H).95 E F0 2.99(Ac)144 420 S .49
 (olon-separated list of \214lenames to be check)-2.99 F .49
 (ed for mail.)-.1 F .49(The message to be printed when mail)5.49 F(arri)
-144 336 Q -.15(ve)-.25 G 2.62(si).15 G 2.62(nap)-2.62 G .12(articular \
+144 432 Q -.15(ve)-.25 G 2.62(si).15 G 2.62(nap)-2.62 G .12(articular \
 \214le may be speci\214ed by separating the \214lename from the message\
- with a `?'.)-2.62 F(When used in the te)144 348 Q(xt of the message,)
+ with a `?'.)-2.62 F(When used in the te)144 444 Q(xt of the message,)
 -.15 E F1($_)2.5 E F0 -.15(ex)2.5 G
 (pands to the name of the current mail\214le.).15 E(Example:)5 E F1
-(MAILP)144 360 Q -.95(AT)-.74 G(H).95 E F0(=\010/v)A(ar/mail/bfox?"Y)
+(MAILP)144 456 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 372 Q F0 .015
+(ail":~/shell\255mail?"$_ has mail!"\010).15 E F1(Bash)144 468 Q F0 .015
 (can be con\214gured to supply a def)2.515 F .015(ault v)-.1 F .015
 (alue for this v)-.25 F .015(ariable \(there is no v)-.25 F .015
 (alue by def)-.25 F .015(ault\), b)-.1 F(ut)-.2 E(the location of the u\
-ser mail \214les that it uses is system dependent \(e.g., /v)144 384 Q
-(ar/mail/)-.25 E F1($USER)A F0(\).)A F1(OPTERR)108 396 Q F0 .39
-(If set to the v)144 408 R .39(alue 1,)-.25 F F1(bash)2.89 E F0 .389
+ser mail \214les that it uses is system dependent \(e.g., /v)144 480 Q
+(ar/mail/)-.25 E F1($USER)A F0(\).)A F1(OPTERR)108 492 Q F0 .39
+(If set to the v)144 504 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 420 R
+-.2(bu)2.889 G .389(iltin command \(see).2 F F2 .359(SHELL B)144 516 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 432 Q
--.15(xe)-.15 G(cuted.).15 E F1 -.74(PA)108 444 S(TH)-.21 E F0 .588
-(The search path for commands.)144 444 R .587
+2.609 F -.2(vo)-.4 G -.1(ke).2 G(d).1 E(or a shell script is e)144 528 Q
+-.15(xe)-.15 G(cuted.).15 E F1 -.74(PA)108 540 S(TH)-.21 E F0 .588
+(The search path for commands.)144 540 R .587
 (It is a colon-separated list of directories in which the shell looks)
-5.588 F .471(for commands \(see)144 456 R F2 .471(COMMAND EXECUTION)
+5.588 F .471(for commands \(see)144 552 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 468 S
+(zero-length \(null\) directory name in the)2.972 F -.25(va)144 564 S
 .536(lue of).25 F F2 -.666(PA)3.036 G(TH)-.189 E F0 .535
 (indicates the current directory)2.786 F 5.535(.A)-.65 G .535
 (null directory name may appear as tw)-2.5 F 3.035(oa)-.1 G(djacent)
--3.035 E .867(colons, or as an initial or trailing colon.)144 480 R .868
+-3.035 E .867(colons, or as an initial or trailing colon.)144 576 R .868
 (The def)5.868 F .868(ault path is system-dependent, and is set by the)
--.1 F(administrator who installs)144 492 Q F1(bash)2.5 E F0 5(.A)C
+-.1 F(administrator who installs)144 588 Q F1(bash)2.5 E F0 5(.A)C
 (common v)-2.5 E(alue is)-.25 E/F4 10/Courier@0 SF
-(/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin)144 504 Q
-F0(.)A F1(POSIXL)108 516 Q(Y_CORRECT)-.92 E F0 .471(If this v)144 528 R
+(/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin)144 600 Q
+F0(.)A F1(POSIXL)108 612 Q(Y_CORRECT)-.92 E F0 .471(If this v)144 624 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/F5 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 540 R F1(\255\255posix)2.511 E F0
+(the startup \214les, as if the)144 636 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 552 Q F1(bash)2.5
-E F0(enables)2.5 E F5(posix mode)2.5 E F0 2.5(,a)C 2.5(si)-2.5 G 2.5(ft)
--2.5 G(he command)-2.5 E F4(set -o posix)2.5 E F0(had been e)2.5 E -.15
-(xe)-.15 G(cuted.).15 E F1(PR)108 564 Q(OMPT_COMMAND)-.3 E F0
-(If set, the v)144 576 Q(alue is e)-.25 E -.15(xe)-.15 G
+(If it is set while the shell is)5.011 F(running,)144 648 Q F1(bash)
+4.497 E F0(enables)4.497 E F5 1.997(posix mode)4.497 F F0 4.497(,a)C
+4.497(si)-4.497 G 4.497(ft)-4.497 G 1.997(he command)-4.497 F F4 1.997
+(set -o posix)4.497 F F0 1.998(had been e)4.497 F -.15(xe)-.15 G(cuted.)
+.15 E(When the shell enters)144 660 Q F5(posix mode)2.5 E F0 2.5(,i)C
+2.5(ts)-2.5 G(ets this v)-2.5 E(ariable if it w)-.25 E
+(as not already set.)-.1 E F1(PR)108 672 Q(OMPT_COMMAND)-.3 E F0
+(If set, the v)144 684 Q(alue is e)-.25 E -.15(xe)-.15 G
 (cuted as a command prior to issuing each primary prompt.).15 E F1(PR)
-108 588 Q(OMPT_DIR)-.3 E(TRIM)-.4 E F0 .676
-(If set to a number greater than zero, the v)144 600 R .676
+108 696 Q(OMPT_DIR)-.3 E(TRIM)-.4 E F0 .676
+(If set to a number greater than zero, the v)144 708 R .676
 (alue is used as the number of trailing directory compo-)-.25 F .923
-(nents to retain when e)144 612 R .923(xpanding the)-.15 F F1(\\w)3.423
+(nents to retain when e)144 720 R .923(xpanding the)-.15 F F1(\\w)3.423
 E F0(and)3.423 E F1(\\W)3.423 E F0 .923(prompt string escapes \(see)
 3.423 F F2(PR)3.423 E(OMPTING)-.27 E F0(belo)3.173 E(w\).)-.25 E
-(Characters remo)144 624 Q -.15(ve)-.15 G 2.5(da).15 G
-(re replaced with an ellipsis.)-2.5 E F1(PS0)108 636 Q F0 1.174(The v)
-144 636 R 1.174(alue of this parameter is e)-.25 F 1.174(xpanded \(see)
--.15 F F2(PR)3.674 E(OMPTING)-.27 E F0(belo)3.424 E 1.174
-(w\) and displayed by interacti)-.25 F -.15(ve)-.25 G
-(shells after reading a command and before the command is e)144 648 Q
--.15(xe)-.15 G(cuted.).15 E F1(PS1)108 660 Q F0 .065(The v)144 660 R
-.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 672 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 684 Q F0 .117(The v)144 684 R .117
-(alue of this parameter is e)-.25 F .117(xpanded as with)-.15 F F2(PS1)
-2.617 E F0 .118(and used as the secondary prompt string.)2.368 F(The)
-5.118 E(def)144 696 Q(ault is `)-.1 E(`)-.74 E F1(>)A F0 -.74('')2.5 G
-(.).74 E F1(PS3)108 708 Q F0 1.116(The v)144 708 R 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)
-144 720 Q F0(abo)2.25 E -.15(ve)-.15 G(\).).15 E(GNU Bash 5.0)72 768 Q
-(2018 March 15)144.29 E(17)193.45 E 0 Cg EP
+(GNU Bash 5.0)72 768 Q(2018 August 7)145.395 E(17)194.555 E 0 Cg EP
 %%Page: 18 18
 %%BeginPageSetup
 BP
 %%EndPageSetup
 /F0 10/Times-Roman@0 SF -.35(BA)72 48 S 137.14(SH\(1\) General).35 F
-(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E/F1 10/Times-Bold@0
-SF(PS4)108 84 Q F0 .1(The v)144 84 R .1(alue of this parameter is e)-.25
-F .1(xpanded as with)-.15 F/F2 9/Times-Bold@0 SF(PS1)2.6 E F0 .101
-(and the v)2.35 F .101(alue is printed before each command)-.25 F F1
-(bash)144 96 Q F0 .335(displays during an e)2.835 F -.15(xe)-.15 G .335
-(cution trace.).15 F .335(The \214rst character of the e)5.335 F .335
-(xpanded v)-.15 F .335(alue of)-.25 F F2(PS4)2.834 E F0 .334(is repli-)
-2.584 F(cated multiple times, as necessary)144 108 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 120 Q F0 .663(The full pathname to the shell is k)144 132
-R .664(ept in this en)-.1 F .664(vironment v)-.4 F 3.164(ariable. If)
--.25 F .664(it is not set when the shell)3.164 F(starts,)144 144 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 156 Q(T)-.95 E F0
-.827(The v)144 168 R .826
+(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E(Characters remo)
+144 84 Q -.15(ve)-.15 G 2.5(da).15 G(re replaced with an ellipsis.)-2.5
+E/F1 10/Times-Bold@0 SF(PS0)108 96 Q F0 1.174(The v)144 96 R 1.174
+(alue of this parameter is e)-.25 F 1.174(xpanded \(see)-.15 F/F2 9
+/Times-Bold@0 SF(PR)3.674 E(OMPTING)-.27 E F0(belo)3.424 E 1.174
+(w\) and displayed by interacti)-.25 F -.15(ve)-.25 G
+(shells after reading a command and before the command is e)144 108 Q
+-.15(xe)-.15 G(cuted.).15 E F1(PS1)108 120 Q F0 .064(The v)144 120 R
+.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 132 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 144 Q F0 .118(The v)144 144 R .118
+(alue of this parameter is e)-.25 F .118(xpanded as with)-.15 F F2(PS1)
+2.617 E F0 .117(and used as the secondary prompt string.)2.367 F(The)
+5.117 E(def)144 156 Q(ault is `)-.1 E(`)-.74 E F1(>)A F0 -.74('')2.5 G
+(.).74 E F1(PS3)108 168 Q F0 1.115(The v)144 168 R 1.115
+(alue of this parameter is used as the prompt for the)-.25 F F1(select)
+3.615 E F0 1.116(command \(see)3.616 F F2 1.116(SHELL GRAM-)3.616 F(MAR)
+144 180 Q F0(abo)2.25 E -.15(ve)-.15 G(\).).15 E F1(PS4)108 192 Q F0
+.101(The v)144 192 R .101(alue of this parameter is e)-.25 F .101
+(xpanded as with)-.15 F F2(PS1)2.6 E F0 .1(and the v)2.35 F .1
+(alue is printed before each command)-.25 F F1(bash)144 204 Q F0 .334
+(displays during an e)2.834 F -.15(xe)-.15 G .335(cution trace.).15 F
+.335(The \214rst character of the e)5.335 F .335(xpanded v)-.15 F .335
+(alue of)-.25 F F2(PS4)2.835 E F0 .335(is repli-)2.585 F
+(cated multiple times, as necessary)144 216 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 228 Q F0 .664(The full pathname to the shell is k)144 240 R
+.664(ept in this en)-.1 F .664(vironment v)-.4 F 3.164(ariable. If)-.25
+F .663(it is not set when the shell)3.164 F(starts,)144 252 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 264 Q(T)-.95 E F0 .826
+(The v)144 276 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 180 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
-(an escape sequence that is e)144 192 R .711(xpanded to a time v)-.15 F
-.711(alue or other information.)-.25 F .711(The escape sequences)5.711 F
-(and their meanings are as follo)144 204 Q
-(ws; the braces denote optional portions.)-.25 E F1(%%)144 222 Q F0 2.5
-(Al)194 222 S(iteral)-2.5 E F1(%)2.5 E F0(.)A F1(%[)144 234 Q/F3 10
+3.327(wt)-.25 G .827(he timing information for)-3.327 F .649
+(pipelines pre\214x)144 288 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 300 R .711(xpanded to a time v)-.15 F
+.712(alue or other information.)-.25 F .712(The escape sequences)5.712 F
+(and their meanings are as follo)144 312 Q
+(ws; the braces denote optional portions.)-.25 E F1(%%)144 330 Q F0 2.5
+(Al)194 330 S(iteral)-2.5 E F1(%)2.5 E F0(.)A F1(%[)144 342 Q/F3 10
 /Times-Italic@0 SF(p)A F1(][l]R)A F0(The elapsed time in seconds.)194
-234 Q F1(%[)144 246 Q F3(p)A F1(][l]U)A F0
-(The number of CPU seconds spent in user mode.)194 246 Q F1(%[)144 258 Q
+342 Q F1(%[)144 354 Q F3(p)A F1(][l]U)A F0
+(The number of CPU seconds spent in user mode.)194 354 Q F1(%[)144 366 Q
 F3(p)A F1(][l]S)A F0(The number of CPU seconds spent in system mode.)194
-258 Q F1(%P)144 270 Q F0
-(The CPU percentage, computed as \(%U + %S\) / %R.)194 270 Q .87
-(The optional)144 286.8 R F3(p)3.37 E F0 .87(is a digit specifying the)
+366 Q F1(%P)144 378 Q F0
+(The CPU percentage, computed as \(%U + %S\) / %R.)194 378 Q .87
+(The optional)144 394.8 R F3(p)3.37 E F0 .87(is a digit specifying the)
 3.37 F F3(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 298.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 310.8 R .537(alues of)-.25 F F3
-(p)3.037 E F0 .537(greater than 3 are changed to 3.)3.037 F(If)5.538 E
-F3(p)3.038 E F0 .538(is not speci\214ed,)3.038 F(the v)144 322.8 Q
-(alue 3 is used.)-.25 E .668(The optional)144 339.6 R F1(l)3.168 E F0
+(he number of fractional digits after a decimal)-3.37 F 2.525(point. A)
+144 406.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 418.8 R .538(alues of)-.25 F F3
+(p)3.038 E F0 .537(greater than 3 are changed to 3.)3.037 F(If)5.537 E
+F3(p)3.037 E F0 .537(is not speci\214ed,)3.037 F(the v)144 430.8 Q
+(alue 3 is used.)-.25 E .667(The optional)144 447.6 R F1(l)3.167 E F0
 .668(speci\214es a longer format, including minutes, of the form)3.168 F
-F3(MM)3.168 E F0(m)A F3(SS)A F0(.)A F3(FF)A F0 3.167(s. The)B -.25(va)
-3.167 G(lue).25 E(of)144 351.6 Q F3(p)2.5 E F0
-(determines whether or not the fraction is included.)2.5 E 13.364
-(If this v)144 368.4 R 13.364(ariable is not set,)-.25 F F1(bash)15.865
-E F0 13.365(acts as if it had the v)15.865 F(alue)-.25 E F1($\010\\nr)
-144 380.4 Q(eal\\t%3lR\\nuser\\t%3lU\\nsys\\t%3lS\010)-.18 E F0 7.113
+F3(MM)3.168 E F0(m)A F3(SS)A F0(.)A F3(FF)A F0 3.168(s. The)B -.25(va)
+3.168 G(lue).25 E(of)144 459.6 Q F3(p)2.5 E F0
+(determines whether or not the fraction is included.)2.5 E 13.365
+(If this v)144 476.4 R 13.365(ariable is not set,)-.25 F F1(bash)15.865
+E F0 13.364(acts as if it had the v)15.865 F(alue)-.25 E F1($\010\\nr)
+144 488.4 Q(eal\\t%3lR\\nuser\\t%3lU\\nsys\\t%3lS\010)-.18 E F0 7.113
 (.I)C 4.613(ft)-7.113 G 2.113(he v)-4.613 F 2.113
 (alue is null, no timing information is dis-)-.25 F 2.5(played. A)144
-392.4 R(trailing ne)2.5 E
+500.4 R(trailing ne)2.5 E
 (wline is added when the format string is displayed.)-.25 E F1(TMOUT)108
-404.4 Q F0 .941(If set to a v)144 416.4 R .941(alue greater than zero,)
+512.4 Q F0 .941(If set to a v)144 524.4 R .941(alue greater than zero,)
 -.25 F F2(TMOUT)3.441 E F0 .941(is treated as the def)3.191 F .941
 (ault timeout for the)-.1 F F1 -.18(re)3.441 G(ad).18 E F0 -.2(bu)3.441
-G(iltin.).2 E(The)144 428.4 Q F1(select)2.811 E F0 .311
-(command terminates if input does not arri)2.811 F .61 -.15(ve a)-.25 H
-(fter).15 E F2(TMOUT)2.81 E F0 .31(seconds when input is com-)2.56 F
-.885(ing from a terminal.)144 440.4 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(wa)144 452.4
+G(iltin.).2 E(The)144 536.4 Q F1(select)2.81 E F0 .31
+(command terminates if input does not arri)2.81 F .611 -.15(ve a)-.25 H
+(fter).15 E F2(TMOUT)2.811 E F0 .311(seconds when input is com-)2.561 F
+.886(ing from a terminal.)144 548.4 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 560.4
 S 1.05(it for a line of input after issuing the primary prompt.).1 F F1
 (Bash)6.05 E F0 1.05(terminates after w)3.55 F 1.05(aiting for that)-.1
-F(number of seconds if a complete line of input does not arri)144 464.4
-Q -.15(ve)-.25 G(.).15 E F1(TMPDIR)108 476.4 Q F0 .39(If set,)144 488.4
-R F1(bash)2.89 E F0 .39(uses its v)2.89 F .39
-(alue as the name of a directory in which)-.25 F F1(bash)2.891 E F0 .391
-(creates temporary \214les for the)2.891 F(shell')144 500.4 Q 2.5(su)
--.55 G(se.)-2.5 E F1(auto_r)108 512.4 Q(esume)-.18 E F0 .531(This v)144
-524.4 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 536.4 R
+F(number of seconds if a complete line of input does not arri)144 572.4
+Q -.15(ve)-.25 G(.).15 E F1(TMPDIR)108 584.4 Q F0 .391(If set,)144 596.4
+R F1(bash)2.891 E F0 .391(uses its v)2.891 F .391
+(alue as the name of a directory in which)-.25 F F1(bash)2.89 E F0 .39
+(creates temporary \214les for the)2.89 F(shell')144 608.4 Q 2.5(su)-.55
+G(se.)-2.5 E F1(auto_r)108 620.4 Q(esume)-.18 E F0 .53(This v)144 632.4
+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 644.4 R
 .538(ord simple commands without redirections are treated as candidates\
- for resumption of an)-.1 F -.15(ex)144 548.4 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
-560.4 R(The)6.125 E F3(name)3.985 E F0 1.125(of a stopped job, in this)
-3.805 F(conte)144 572.4 Q 1.133
+ for resumption of an)-.1 F -.15(ex)144 656.4 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
+668.4 R(The)6.125 E F3(name)3.985 E F0 1.124(of a stopped job, in this)
+3.805 F(conte)144 680.4 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 F3 -.2(ex)3.633 G(act).2 E F0 3.632(,t).68 G 1.132
-(he string supplied must)-3.632 F .624
-(match the name of a stopped job e)144 584.4 R .624(xactly; if set to)
--.15 F F3(substring)3.125 E F0 3.125(,t).22 G .625
-(he string supplied needs to match a)-3.125 F .885
-(substring of the name of a stopped job)144 596.4 R 5.884(.T)-.4 G(he)
--5.884 E F3(substring)3.724 E F0 -.25(va)3.604 G .884(lue pro).25 F .884
-(vides functionality analogous to)-.15 F(the)144 608.4 Q F1(%?)3.333 E
-F0 .833(job identi\214er \(see)5.833 F F2 .834(JOB CONTR)3.334 F(OL)-.27
+6.133 F(alue)-.25 E F3 -.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 692.4 R .624(xactly; if set to)
+-.15 F F3(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 704.4 R 5.884(.T)-.4 G(he)
+-5.884 E F3(substring)3.724 E F0 -.25(va)3.604 G .885(lue pro).25 F .885
+(vides functionality analogous to)-.15 F(the)144 716.4 Q F1(%?)3.334 E
+F0 .834(job identi\214er \(see)5.834 F F2 .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
-(must be a pre\214x of a stopped job')144 620.4 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 F3(string)A F0(job)2.815 E(identi\214er)144 632.4 Q(.)-.55
-E F1(histchars)108 644.4 Q F0 2.069(The tw)144 656.4 R 4.57(oo)-.1 G
-4.57(rt)-4.57 G 2.07(hree characters which control history e)-4.57 F
-2.07(xpansion and tok)-.15 F 2.07(enization \(see)-.1 F F2(HIST)4.57 E
-(OR)-.162 E(Y)-.315 E(EXP)144 668.4 Q(ANSION)-.666 E F0(belo)3.466 E
-3.716(w\). The)-.25 F 1.216(\214rst character is the)3.716 F F3 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)
-144 680.4 R .798(xpansion, normally `)-.15 F F1(!)A F0 3.298('. The)B
-.798(second character is the)3.298 F F3(quic)3.298 E 3.298(ks)-.2 G
-(ubstitu-)-3.298 E(tion)144 692.4 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
-(ing one string for another in the command.)144 704.4 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\
- that the remainder of the line is a comment when found as the \214rst \
-char)144 716.4 R(-)-.2 E 1.293(acter of a w)144 728.4 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
-(GNU Bash 5.0)72 768 Q(2018 March 15)144.29 E(18)193.45 E 0 Cg EP
+-.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 728.4 R 2.816(sn)-.55 G .316
+(ame; this pro)-2.816 F .316(vides functionality analogous to the)-.15 F
+F1(%)2.816 E F3(string)A F0(job)2.816 E(GNU Bash 5.0)72 768 Q
+(2018 August 7)145.395 E(18)194.555 E 0 Cg EP
 %%Page: 19 19
 %%BeginPageSetup
 BP
 %%EndPageSetup
 /F0 10/Times-Roman@0 SF -.35(BA)72 48 S 137.14(SH\(1\) General).35 F
-(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E .38
-(skipped for the remaining w)144 84 R .38(ords on the line.)-.1 F .379
-(It does not necessarily cause the shell parser to treat)5.379 F
-(the rest of the line as a comment.)144 96 Q/F1 10/Times-Bold@0 SF
-(Arrays)87 112.8 Q(Bash)108 124.8 Q F0(pro)3.39 E .89
-(vides one-dimensional inde)-.15 F -.15(xe)-.15 G 3.39(da).15 G .891
-(nd associati)-3.39 F 1.191 -.15(ve a)-.25 H .891(rray v).15 F 3.391
-(ariables. An)-.25 F 3.391(yv)-.15 G .891(ariable may be used as an)
--3.641 F(inde)108 136.8 Q -.15(xe)-.15 G 2.574(da).15 G .074(rray; the)
--2.574 F F1(declar)2.574 E(e)-.18 E F0 -.2(bu)2.574 G .074(iltin will e)
-.2 F .073(xplicitly declare an array)-.15 F 5.073(.T)-.65 G .073
-(here is no maximum limit on the size of)-5.073 F .328(an array)108
-148.8 R 2.828(,n)-.65 G .328(or an)-2.828 F 2.828(yr)-.15 G .329
-(equirement that members be inde)-2.828 F -.15(xe)-.15 G 2.829(do).15 G
-2.829(ra)-2.829 G .329(ssigned contiguously)-2.829 F 5.329(.I)-.65 G
-(nde)-5.329 E -.15(xe)-.15 G 2.829(da).15 G .329(rrays are refer)-2.829
-F(-)-.2 E 1.595(enced using inte)108 160.8 R 1.595
-(gers \(including arithmetic e)-.15 F 1.595
+(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E(identi\214er)144
+84 Q(.)-.55 E/F1 10/Times-Bold@0 SF(histchars)108 96 Q F0 2.07(The tw)
+144 108 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/F2 9/Times-Bold@0 SF(HIST)4.569 E(OR)
+-.162 E(Y)-.315 E(EXP)144 120 Q(ANSION)-.666 E F0(belo)3.465 E 3.715
+(w\). The)-.25 F 1.215(\214rst character is the)3.715 F/F3 10
+/Times-Italic@0 SF 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 132 R .798(xpansion, normally `)
+-.15 F F1(!)A F0 3.298('. The)B .798(second character is the)3.298 F F3
+(quic)3.298 E 3.298(ks)-.2 G(ubstitu-)-3.298 E(tion)144 144 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 156 R .575(The def)5.575
+F .575(ault is `)-.1 F F1(^)A F0 3.075('. The)B .575
+(optional third character is the)3.075 F .223(character which indicates\
+ that the remainder of the line is a comment when found as the \214rst \
+char)144 168 R(-)-.2 E 1.294(acter of a w)144 180 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 192 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 204 Q F1(Arrays)87 220.8 Q(Bash)
+108 232.8 Q F0(pro)3.391 E .891(vides one-dimensional inde)-.15 F -.15
+(xe)-.15 G 3.391(da).15 G .891(nd associati)-3.391 F 1.191 -.15(ve a)
+-.25 H .891(rray v).15 F 3.391(ariables. An)-.25 F 3.391(yv)-.15 G .89
+(ariable may be used as an)-3.641 F(inde)108 244.8 Q -.15(xe)-.15 G
+2.573(da).15 G .073(rray; the)-2.573 F F1(declar)2.573 E(e)-.18 E F0 -.2
+(bu)2.573 G .073(iltin will e).2 F .073(xplicitly declare an array)-.15
+F 5.073(.T)-.65 G .074(here is no maximum limit on the size of)-5.073 F
+.329(an array)108 256.8 R 2.829(,n)-.65 G .329(or an)-2.829 F 2.829(yr)
+-.15 G .329(equirement that members be inde)-2.829 F -.15(xe)-.15 G
+2.829(do).15 G 2.829(ra)-2.829 G .328(ssigned contiguously)-2.829 F
+5.328(.I)-.65 G(nde)-5.328 E -.15(xe)-.15 G 2.828(da).15 G .328
+(rrays are refer)-2.828 F(-)-.2 E 1.595(enced using inte)108 268.8 R
+1.595(gers \(including arithmetic e)-.15 F 1.595
 (xpressions\) and are zero-based; associati)-.15 F 1.895 -.15(ve a)-.25
 H 1.595(rrays are refer).15 F(-)-.2 E(enced using arbitrary strings.)108
-172.8 Q(Unless otherwise noted, inde)5 E -.15(xe)-.15 G 2.5(da).15 G
+280.8 Q(Unless otherwise noted, inde)5 E -.15(xe)-.15 G 2.5(da).15 G
 (rray indices must be non-ne)-2.5 E -.05(ga)-.15 G(ti).05 E .3 -.15
-(ve i)-.25 H(nte).15 E(gers.)-.15 E 2.462(An inde)108 189.6 R -.15(xe)
--.15 G 4.962(da).15 G 2.462(rray is created automatically if an)-4.962 F
-4.963(yv)-.15 G 2.463(ariable is assigned to using the syntax)-5.213 F
-/F2 10/Times-Italic@0 SF(name)4.963 E F0([)A F2(sub-)A(script)108 201.6
-Q F0(]=)A F2(value)A F0 6.549(.T)C(he)-6.549 E F2(subscript)4.389 E F0
-1.549(is treated as an arithmetic e)4.729 F 1.549(xpression that must e)
--.15 F -.25(va)-.25 G 1.548(luate to a number).25 F 6.548(.T)-.55 G(o)
--7.348 E -.15(ex)108 213.6 S 1.979(plicitly declare an inde).15 F -.15
-(xe)-.15 G 4.479(da).15 G(rray)-4.479 E 4.48(,u)-.65 G(se)-4.48 E F1
-(declar)4.48 E 4.48<65ad>-.18 G(a)-4.48 E F2(name)4.48 E F0(\(see)4.48 E
-/F3 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(w\).)-.25 E F1(declar)108 225.6 Q 2.5<65ad>-.18 G
-(a)-2.5 E F2(name)2.5 E F1([)A F2(subscript)A F1(])A F0
-(is also accepted; the)2.5 E F2(subscript)2.5 E F0(is ignored.)2.5 E
-(Associati)108 242.4 Q .3 -.15(ve a)-.25 H(rrays are created using).15 E
-F1(declar)2.5 E 2.5<65ad>-.18 G(A)-2.5 E F2(name)2.5 E F0(.)A(Attrib)108
-259.2 Q .941(utes may be speci\214ed for an array v)-.2 F .941
-(ariable using the)-.25 F F1(declar)3.441 E(e)-.18 E F0(and)3.44 E F1
--.18(re)3.44 G(adonly).18 E F0 -.2(bu)3.44 G 3.44(iltins. Each).2 F
-(attrib)3.44 E(ute)-.2 E(applies to all members of an array)108 271.2 Q
-(.)-.65 E 1.647
-(Arrays are assigned to using compound assignments of the form)108 288 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 300 Q F0 1.833(is of the form [)4.333 F F2
-(subscript)A F0(]=)A F2(string)A F0 6.833(.I)C(nde)-6.833 E -.15(xe)-.15
-G 4.333(da).15 G 1.833(rray assignments do not require an)-4.333 F 1.832
-(ything b)-.15 F(ut)-.2 E F2(string)4.332 E F0(.)A .163
-(When assigning to inde)108 312 R -.15(xe)-.15 G 2.663(da).15 G .163
+(ve i)-.25 H(nte).15 E(gers.)-.15 E 2.463(An inde)108 297.6 R -.15(xe)
+-.15 G 4.963(da).15 G 2.463(rray is created automatically if an)-4.963 F
+4.963(yv)-.15 G 2.462(ariable is assigned to using the syntax)-5.213 F
+F3(name)4.962 E F0([)A F3(sub-)A(script)108 309.6 Q F0(]=)A F3(value)A
+F0 6.548(.T)C(he)-6.548 E F3(subscript)4.388 E F0 1.549
+(is treated as an arithmetic e)4.728 F 1.549(xpression that must e)-.15
+F -.25(va)-.25 G 1.549(luate to a number).25 F 6.549(.T)-.55 G(o)-7.349
+E -.15(ex)108 321.6 S 1.98(plicitly declare an inde).15 F -.15(xe)-.15 G
+4.48(da).15 G(rray)-4.48 E 4.48(,u)-.65 G(se)-4.48 E F1(declar)4.48 E
+4.48<65ad>-.18 G(a)-4.48 E F3(name)4.48 E F0(\(see)4.48 E F2 1.979
+(SHELL B)4.479 F(UIL)-.09 E 1.979(TIN COMMANDS)-.828 F F0(belo)4.229 E
+(w\).)-.25 E F1(declar)108 333.6 Q 2.5<65ad>-.18 G(a)-2.5 E F3(name)2.5
+E F1([)A F3(subscript)A F1(])A F0(is also accepted; the)2.5 E F3
+(subscript)2.5 E F0(is ignored.)2.5 E(Associati)108 350.4 Q .3 -.15
+(ve a)-.25 H(rrays are created using).15 E F1(declar)2.5 E 2.5<65ad>-.18
+G(A)-2.5 E F3(name)2.5 E F0(.)A(Attrib)108 367.2 Q .94
+(utes may be speci\214ed for an array v)-.2 F .941(ariable using the)
+-.25 F F1(declar)3.441 E(e)-.18 E F0(and)3.441 E F1 -.18(re)3.441 G
+(adonly).18 E F0 -.2(bu)3.441 G 3.441(iltins. Each).2 F(attrib)3.441 E
+(ute)-.2 E(applies to all members of an array)108 379.2 Q(.)-.65 E 1.647
+(Arrays are assigned to using compound assignments of the form)108 396 R
+F3(name)4.147 E F0(=)A F1(\()A F0 -.25(va)C(lue).25 E F3(1)A F0 1.647
+(... v)4.147 F(alue)-.25 E F3(n)A F1(\))A F0 4.147(,w)C 1.647(here each)
+-4.147 F F3(value)108 408 Q F0 1.833(is of the form [)4.332 F F3
+(subscript)A F0(]=)A F3(string)A F0 6.833(.I)C(nde)-6.833 E -.15(xe)-.15
+G 4.333(da).15 G 1.833(rray assignments do not require an)-4.333 F 1.833
+(ything b)-.15 F(ut)-.2 E F3(string)4.333 E F0(.)A .164
+(When assigning to inde)108 420 R -.15(xe)-.15 G 2.663(da).15 G .163
 (rrays, if the optional brack)-2.663 F .163
-(ets and subscript are supplied, that inde)-.1 F 2.664(xi)-.15 G 2.664
-(sa)-2.664 G(ssigned)-2.664 E 1.411(to; otherwise the inde)108 324 R
-3.911(xo)-.15 G 3.911(ft)-3.911 G 1.411
-(he element assigned is the last inde)-3.911 F 3.91(xa)-.15 G 1.41
-(ssigned to by the statement plus one.)-3.91 F(Inde)108 336 Q
-(xing starts at zero.)-.15 E(When assigning to an associati)108 352.8 Q
-.3 -.15(ve a)-.25 H(rray).15 E 2.5(,t)-.65 G(he subscript is required.)
--2.5 E .239(This syntax is also accepted by the)108 369.6 R F1(declar)
-2.739 E(e)-.18 E F0 -.2(bu)2.739 G 2.739(iltin. Indi).2 F .24
-(vidual array elements may be assigned to using the)-.25 F F2(name)108
-381.6 Q F0([)A F2(subscript)A F0(]=)A F2(value)A F0 1.917
-(syntax introduced abo)4.417 F -.15(ve)-.15 G 6.917(.W).15 G 1.917
+(ets and subscript are supplied, that inde)-.1 F 2.663(xi)-.15 G 2.663
+(sa)-2.663 G(ssigned)-2.663 E 1.41(to; otherwise the inde)108 432 R 3.91
+(xo)-.15 G 3.91(ft)-3.91 G 1.41(he element assigned is the last inde)
+-3.91 F 3.911(xa)-.15 G 1.411(ssigned to by the statement plus one.)
+-3.911 F(Inde)108 444 Q(xing starts at zero.)-.15 E
+(When assigning to an associati)108 460.8 Q .3 -.15(ve a)-.25 H(rray).15
+E 2.5(,t)-.65 G(he subscript is required.)-2.5 E .24
+(This syntax is also accepted by the)108 477.6 R F1(declar)2.74 E(e)-.18
+E F0 -.2(bu)2.739 G 2.739(iltin. Indi).2 F .239
+(vidual array elements may be assigned to using the)-.25 F F3(name)108
+489.6 Q F0([)A F3(subscript)A F0(]=)A F3(value)A F0 1.917
+(syntax introduced abo)4.416 F -.15(ve)-.15 G 6.917(.W).15 G 1.917
 (hen assigning to an inde)-6.917 F -.15(xe)-.15 G 4.417(da).15 G(rray)
--4.417 E 4.417(,i)-.65 G(f)-4.417 E F2(name)4.777 E F0 1.916(is sub-)
-4.597 F .115(scripted by a ne)108 393.6 R -.05(ga)-.15 G(ti).05 E .415
--.15(ve n)-.25 H(umber).15 E 2.615(,t)-.4 G .115
-(hat number is interpreted as relati)-2.615 F .415 -.15(ve t)-.25 H
-2.615(oo).15 G .116(ne greater than the maximum inde)-2.615 F(x)-.15 E
-(of)108 405.6 Q F2(name)3.338 E F0 3.338(,s)C 3.338(on)-3.338 G -2.25
+-4.417 E 4.417(,i)-.65 G(f)-4.417 E F3(name)4.777 E F0 1.917(is sub-)
+4.597 F .116(scripted by a ne)108 501.6 R -.05(ga)-.15 G(ti).05 E .416
+-.15(ve n)-.25 H(umber).15 E 2.616(,t)-.4 G .115
+(hat number is interpreted as relati)-2.616 F .415 -.15(ve t)-.25 H
+2.615(oo).15 G .115(ne greater than the maximum inde)-2.615 F(x)-.15 E
+(of)108 513.6 Q F3(name)3.338 E F0 3.338(,s)C 3.338(on)-3.338 G -2.25
 -.15(eg a)-3.338 H(ti).15 E 1.138 -.15(ve i)-.25 H .838
 (ndices count back from the end of the array).15 F 3.338(,a)-.65 G .838
 (nd an inde)-3.338 F 3.338(xo)-.15 G 3.338<66ad>-3.338 G 3.338(1r)-3.338
-G .838(eferences the last)-3.338 F(element.)108 417.6 Q(An)108 434.4 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 446.4 R 4.041(xpansion. If)-.15 F F2
+G .838(eferences the last)-3.338 F(element.)108 525.6 Q(An)108 542.4 Q
+3.576(ye)-.15 G 1.076(lement of an array may be referenced using ${)
+-3.576 F F3(name)A F0([)A F3(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 554.4 R 4.041(xpansion. If)-.15 F F3
 (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 458.4 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 470.4 Q F2(name)A F0 .521([*]} e)B
-.521(xpands to a single w)-.15 F .521(ord with the v)-.1 F .52
+(xpands to all members of)-.15 F F3(name)4.042 E F0(.)A 1.057
+(These subscripts dif)108 566.4 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 578.4 Q F3(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 482.4 R F3(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(there are no array members, ${)108
-494.4 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 506.4 R .759(ord, the e)-.1 F .759
+1.375(of the)108 590.4 R F2(IFS)3.875 E F0 1.375(special v)3.625 F 1.375
+(ariable, and ${)-.25 F F3(name)A F0 1.375([@]} e)B 1.375
+(xpands each element of)-.15 F F3(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
+602.4 R F3(name)A F0 2.028([@]} e)B 2.028(xpands to nothing.)-.15 F
+2.028(If the double-quoted e)7.028 F 2.028(xpansion occurs)-.15 F .759
+(within a w)108 614.4 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
-518.4 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 530.4 R .228(xpansion of the special parameters)-.15
+(ginning part of the original w)-.15 F(ord,)-.1 E .515(and the e)108
+626.4 R .516(xpansion of the last parameter is joined with the last par\
+t of the original w)-.15 F 3.016(ord. This)-.1 F .516(is analogous)3.016
+F .228(to the e)108 638.4 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
-(\). ${#).15 F F2(name)A F0([)A F2(subscript)A F0(]})A -.15(ex)108 542.4
-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)
+(Special P)2.728 F(arameters)-.1 E F0(abo)2.727 E -.15(ve)-.15 G 2.727
+(\). ${#).15 F F3(name)A F0([)A F3(subscript)A F0(]})A -.15(ex)108 650.4
+S .886(pands to the length of ${).15 F F3(name)A F0([)A F3(subscript)A
+F0 3.386(]}. If)B F3(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 .294(ments in the array)108 554.4
-R 5.294(.I)-.65 G 2.794(ft)-5.294 G(he)-2.794 E F2(subscript)3.135 E F0
+(xpansion is the number of ele-)-.15 F .295(ments in the array)108 662.4
+R 5.295(.I)-.65 G 2.795(ft)-5.295 G(he)-2.795 E F3(subscript)3.135 E F0
 .295(used to reference an element of an inde)3.475 F -.15(xe)-.15 G
-2.795(da).15 G .295(rray e)-2.795 F -.25(va)-.25 G .295
-(luates to a number).25 F .629
-(less than zero, it is interpreted as relati)108 566.4 R .929 -.15(ve t)
--.25 H 3.128(oo).15 G .628(ne greater than the maximum inde)-3.128 F
-3.128(xo)-.15 G 3.128(ft)-3.128 G .628(he array)-3.128 F 3.128(,s)-.65 G
-3.128(on)-3.128 G -2.25 -.15(eg a)-3.128 H(ti).15 E -.15(ve)-.25 G
-(indices count back from the end of the array)108 578.4 Q 2.5(,a)-.65 G
+2.794(da).15 G .294(rray e)-2.794 F -.25(va)-.25 G .294
+(luates to a number).25 F .628
+(less than zero, it is interpreted as relati)108 674.4 R .928 -.15(ve t)
+-.25 H 3.128(oo).15 G .629(ne greater than the maximum inde)-3.128 F
+3.129(xo)-.15 G 3.129(ft)-3.129 G .629(he array)-3.129 F 3.129(,s)-.65 G
+3.129(on)-3.129 G -2.25 -.15(eg a)-3.129 H(ti).15 E -.15(ve)-.25 G
+(indices count back from the end of the array)108 686.4 Q 2.5(,a)-.65 G
 (nd an inde)-2.5 E 2.5(xo)-.15 G 2.5<66ad>-2.5 G 2.5(1r)-2.5 G
 (eferences the last element.)-2.5 E .595(Referencing an array v)108
-595.2 R .595(ariable without a subscript is equi)-.25 F -.25(va)-.25 G
+703.2 R .595(ariable without a subscript is equi)-.25 F -.25(va)-.25 G
 .595(lent to referencing the array with a subscript of).25 F 2.5(0. An)
-108 607.2 R 2.5(yr)-.15 G(eference to a v)-2.5 E(ariable using a v)-.25
+108 715.2 R 2.5(yr)-.15 G(eference to a v)-2.5 E(ariable using a v)-.25
 E(alid subscript is le)-.25 E -.05(ga)-.15 G(l, and).05 E F1(bash)2.5 E
-F0(will create an array if necessary)2.5 E(.)-.65 E(An array v)108 624 Q
-(ariable is considered set if a subscript has been assigned a v)-.25 E
+F0(will create an array if necessary)2.5 E(.)-.65 E(GNU Bash 5.0)72 768
+Q(2018 August 7)145.395 E(19)194.555 E 0 Cg EP
+%%Page: 20 20
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 137.14(SH\(1\) General).35 F
+(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E(An array v)108 84
+Q(ariable is considered set if a subscript has been assigned a v)-.25 E
 2.5(alue. The)-.25 F(null string is a v)2.5 E(alid v)-.25 E(alue.)-.25 E
-.418(It is possible to obtain the k)108 640.8 R -.15(ey)-.1 G 2.918(s\()
-.15 G .418(indices\) of an array as well as the v)-2.918 F 2.917
-(alues. ${)-.25 F F1(!)A F2(name)A F0([)A F2(@)A F0 .417(]} and ${)B F1
-(!)A F2(name)A F0([)A F2(*)A F0(]})A -.15(ex)108 652.8 S .749
-(pand to the indices assigned in array v).15 F(ariable)-.25 E F2(name)
-3.249 E F0 5.749(.T)C .75
+.417(It is possible to obtain the k)108 100.8 R -.15(ey)-.1 G 2.918(s\()
+.15 G .418(indices\) of an array as well as the v)-2.918 F 2.918
+(alues. ${)-.25 F/F1 10/Times-Bold@0 SF(!)A/F2 10/Times-Italic@0 SF
+(name)A F0([)A F2(@)A F0 .418(]} and ${)B F1(!)A F2(name)A F0([)A F2(*)A
+F0(]})A -.15(ex)108 112.8 S .75(pand to the indices assigned in array v)
+.15 F(ariable)-.25 E F2(name)3.249 E F0 5.749(.T)C .749
 (he treatment when in double quotes is similar to)-5.749 F(the e)108
-664.8 Q(xpansion of the special parameters)-.15 E F2(@)2.5 E F0(and)2.5
-E F2(*)2.5 E F0(within double quotes.)2.5 E(The)108 681.6 Q F1(unset)
-2.767 E F0 -.2(bu)2.767 G .267(iltin is used to destro).2 F 2.767(ya)-.1
+124.8 Q(xpansion of the special parameters)-.15 E F2(@)2.5 E F0(and)2.5
+E F2(*)2.5 E F0(within double quotes.)2.5 E(The)108 141.6 Q F1(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 693.6 Q F0 3.974(,f)C 1.474
-(or both inde)-3.974 F -.15(xe)-.15 G 3.974(da).15 G 1.474(nd associati)
--3.974 F 1.774 -.15(ve a)-.25 H 3.974(rrays. Ne).15 F -.05(ga)-.15 G(ti)
+-.15 E F2(sub-)2.767 E(script)108 153.6 Q F0 3.975(,f)C 1.475
+(or both inde)-3.975 F -.15(xe)-.15 G 3.975(da).15 G 1.474(nd associati)
+-3.975 F 1.774 -.15(ve a)-.25 H 3.974(rrays. Ne).15 F -.05(ga)-.15 G(ti)
 .05 E 1.774 -.15(ve s)-.25 H 1.474(ubscripts to inde).15 F -.15(xe)-.15
-G 3.975(da).15 G 1.475(rrays are interpreted as)-3.975 F .615
-(described abo)108 705.6 R -.15(ve)-.15 G 5.615(.U).15 G .615
-(nsetting the last element of an array v)-5.615 F .614
-(ariable does not unset the v)-.25 F(ariable.)-.25 E F1(unset)5.614 E F2
-(name)3.114 E F0(,)A(where)108 717.6 Q F2(name)2.5 E F0(is an array)2.5
+G 3.974(da).15 G 1.474(rrays are interpreted as)-3.974 F .614
+(described abo)108 165.6 R -.15(ve)-.15 G 5.614(.U).15 G .614
+(nsetting the last element of an array v)-5.614 F .615
+(ariable does not unset the v)-.25 F(ariable.)-.25 E F1(unset)5.615 E F2
+(name)3.115 E F0(,)A(where)108 177.6 Q F2(name)2.5 E F0(is an array)2.5
 E 2.5(,o)-.65 G(r)-2.5 E F1(unset)2.5 E F2(name)2.5 E F0([)A F2
 (subscript)A F0(], where)A F2(subscript)2.5 E F0(is)2.5 E F1(*)2.5 E F0
 (or)2.5 E F1(@)2.5 E F0 2.5(,r)C(emo)-2.5 E -.15(ve)-.15 G 2.5(st).15 G
-(he entire array)-2.5 E(.)-.65 E(GNU Bash 5.0)72 768 Q(2018 March 15)
-144.29 E(19)193.45 E 0 Cg EP
-%%Page: 20 20
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 137.14(SH\(1\) General).35 F
-(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E .847
-(When using a v)108 84 R .848(ariable name with a subscript as an ar)
--.25 F .848(gument to a command, such as with)-.18 F/F1 10/Times-Bold@0
-SF(unset)3.348 E F0 3.348(,w)C(ithout)-3.348 E .345(using the w)108 96 R
-.345(ord e)-.1 F .345(xpansion syntax described abo)-.15 F -.15(ve)-.15
-G 2.845(,t).15 G .345(he ar)-2.845 F .344
-(gument is subject to pathname e)-.18 F 2.844(xpansion. If)-.15 F(path-)
-2.844 E(name e)108 108 Q(xpansion is not desired, the ar)-.15 E
-(gument should be quoted.)-.18 E(The)108 124.8 Q F1(declar)3.573 E(e)
--.18 E F0(,)A F1(local)3.573 E F0 3.573(,a)C(nd)-3.573 E F1 -.18(re)
-3.573 G(adonly).18 E F0 -.2(bu)3.573 G 1.073(iltins each accept a).2 F
-F1<ad61>3.573 E F0 1.073(option to specify an inde)3.573 F -.15(xe)-.15
-G 3.574(da).15 G 1.074(rray and a)-3.574 F F1<ad41>3.574 E F0 .339
-(option to specify an associati)108 136.8 R .638 -.15(ve a)-.25 H(rray)
+(he entire array)-2.5 E(.)-.65 E .848(When using a v)108 194.4 R .848
+(ariable name with a subscript as an ar)-.25 F .848
+(gument to a command, such as with)-.18 F F1(unset)3.347 E F0 3.347(,w)C
+(ithout)-3.347 E .344(using the w)108 206.4 R .344(ord e)-.1 F .344
+(xpansion syntax described abo)-.15 F -.15(ve)-.15 G 2.845(,t).15 G .345
+(he ar)-2.845 F .345(gument is subject to pathname e)-.18 F 2.845
+(xpansion. If)-.15 F(path-)2.845 E(name e)108 218.4 Q
+(xpansion is not desired, the ar)-.15 E(gument should be quoted.)-.18 E
+(The)108 235.2 Q F1(declar)3.574 E(e)-.18 E F0(,)A F1(local)3.574 E F0
+3.574(,a)C(nd)-3.574 E F1 -.18(re)3.574 G(adonly).18 E F0 -.2(bu)3.574 G
+1.073(iltins each accept a).2 F F1<ad61>3.573 E F0 1.073
+(option to specify an inde)3.573 F -.15(xe)-.15 G 3.573(da).15 G 1.073
+(rray and a)-3.573 F F1<ad41>3.573 E F0 .338
+(option to specify an associati)108 247.2 R .638 -.15(ve a)-.25 H(rray)
 .15 E 5.338(.I)-.65 G 2.838(fb)-5.338 G .338(oth options are supplied,)
 -2.838 F F1<ad41>2.838 E F0(tak)2.838 E .338(es precedence.)-.1 F(The)
-5.338 E F1 -.18(re)2.838 G(ad).18 E F0 -.2(bu)2.838 G(iltin).2 E .44
-(accepts a)108 148.8 R F1<ad61>2.941 E F0 .441
+5.338 E F1 -.18(re)2.839 G(ad).18 E F0 -.2(bu)2.839 G(iltin).2 E .441
+(accepts a)108 259.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
-(bu)108 160.8 S(iltins display array v).2 E(alues in a w)-.25 E
-(ay that allo)-.1 E(ws them to be reused as assignments.)-.25 E/F2 10.95
-/Times-Bold@0 SF(EXP)72 177.6 Q(ANSION)-.81 E F0 .76(Expansion is perfo\
-rmed on the command line after it has been split into w)108 189.6 R 3.26
+-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 271.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/F3 10.95
+/Times-Bold@0 SF(EXP)72 288 Q(ANSION)-.81 E F0 .76(Expansion is perform\
+ed on the command line after it has been split into w)108 300 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 201.6 S .369(pansion performed:).15 F/F3 10
-/Times-Italic@0 SF(br)2.869 E .369(ace e)-.15 F(xpansion)-.2 E F0(,).24
-E F3 .369(tilde e)2.869 F(xpansion)-.2 E F0(,).24 E F3(par)2.869 E .369
-(ameter and variable e)-.15 F(xpansion)-.2 E F0(,).24 E F3 .37
-(command sub-)2.869 F(stitution)108 213.6 Q F0(,).24 E F3(arithmetic e)
-2.5 E(xpansion)-.2 E F0(,).24 E F3(wor)2.5 E 2.5(ds)-.37 G(plitting)-2.5
-E F0 2.5(,a).22 G(nd)-2.5 E F3(pathname e)2.5 E(xpansion)-.2 E F0(.).24
-E .419(The order of e)108 230.4 R .419(xpansions is: brace e)-.15 F .418
-(xpansion; tilde e)-.15 F .418(xpansion, parameter and v)-.15 F .418
-(ariable e)-.25 F .418(xpansion, arithmetic)-.15 F -.15(ex)108 242.4 S
-.195(pansion, and command substitution \(done in a left-to-right f).15 F
-.196(ashion\); w)-.1 F .196(ord splitting; and pathname e)-.1 F(xpan-)
--.15 E(sion.)108 254.4 Q .257
-(On systems that can support it, there is an additional e)108 271.2 R
-.257(xpansion a)-.15 F -.25(va)-.2 G(ilable:).25 E F3(pr)2.757 E .257
-(ocess substitution)-.45 F F0 5.257(.T)C .256(his is per)-5.257 F(-)-.2
-E(formed at the same time as tilde, parameter)108 283.2 Q 2.5(,v)-.4 G
+(inds of)-3.26 F -.15(ex)108 312 S .37(pansion performed:).15 F F2(br)
+2.869 E .369(ace e)-.15 F(xpansion)-.2 E F0(,).24 E F2 .369(tilde e)
+2.869 F(xpansion)-.2 E F0(,).24 E F2(par)2.869 E .369
+(ameter and variable e)-.15 F(xpansion)-.2 E F0(,).24 E F2 .369
+(command sub-)2.869 F(stitution)108 324 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
+.418(The order of e)108 340.8 R .418(xpansions is: brace e)-.15 F .418
+(xpansion; tilde e)-.15 F .419(xpansion, parameter and v)-.15 F .419
+(ariable e)-.25 F .419(xpansion, arithmetic)-.15 F -.15(ex)108 352.8 S
+.196(pansion, and command substitution \(done in a left-to-right f).15 F
+.195(ashion\); w)-.1 F .195(ord splitting; and pathname e)-.1 F(xpan-)
+-.15 E(sion.)108 364.8 Q .257
+(On systems that can support it, there is an additional e)108 381.6 R
+.257(xpansion a)-.15 F -.25(va)-.2 G(ilable:).25 E F2(pr)2.757 E .257
+(ocess substitution)-.45 F F0 5.257(.T)C .257(his is per)-5.257 F(-)-.2
+E(formed at the same time as tilde, parameter)108 393.6 Q 2.5(,v)-.4 G
 (ariable, and arithmetic e)-2.75 E(xpansion and command substitution.)
--.15 E .002(After these e)108 300 R .003
+-.15 E .003(After these e)108 410.4 R .003
 (xpansions are performed, quote characters present in the original w)
--.15 F .003(ord are remo)-.1 F -.15(ve)-.15 G 2.503(du).15 G .003
-(nless the)-2.503 F(y)-.15 E(ha)108 312 Q .3 -.15(ve b)-.2 H
-(een quoted themselv).15 E(es \()-.15 E F3(quote r)A(emo)-.37 E(val)-.1
-E F0(\).)A 1.191(Only brace e)108 328.8 R 1.191(xpansion, w)-.15 F 1.191
+-.15 F .002(ord are remo)-.1 F -.15(ve)-.15 G 2.502(du).15 G .002
+(nless the)-2.502 F(y)-.15 E(ha)108 422.4 Q .3 -.15(ve b)-.2 H
+(een quoted themselv).15 E(es \()-.15 E F2(quote r)A(emo)-.37 E(val)-.1
+E F0(\).)A 1.19(Only brace e)108 439.2 R 1.19(xpansion, w)-.15 F 1.19
 (ord splitting, and pathname e)-.1 F 1.191
-(xpansion can increase the number of w)-.15 F 1.19(ords of the)-.1 F
--.15(ex)108 340.8 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 352.8 S 1.245(pansions of ").15 F F1($@)A F0 3.745
-("a)C 1.245(nd ")-3.745 F F1(${)A F3(name)A F1([@]})A F0 1.245
-(", and, in most cases,)B F1($*)3.745 E F0(and)3.745 E F1(${)3.744 E F3
-(name)A F1([*]})A F0 1.244(as e)3.744 F 1.244(xplained abo)-.15 F 1.544
--.15(ve \()-.15 H(see).15 E/F4 9/Times-Bold@0 SF -.666(PA)108 364.8 S
-(RAMETERS).666 E/F5 9/Times-Roman@0 SF(\).)A F1(Brace Expansion)87 381.6
-Q F3(Br)108.58 393.6 Q .606(ace e)-.15 F(xpansion)-.2 E F0 .606
+(xpansion can increase the number of w)-.15 F 1.191(ords of the)-.1 F
+-.15(ex)108 451.2 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)
+-.15 F -.15(ex)108 463.2 S 1.244(pansions of ").15 F F1($@)A F0 3.744
+("a)C 1.244(nd ")-3.744 F F1(${)A F2(name)A F1([@]})A F0 1.245
+(", and, in most cases,)B F1($*)3.745 E F0(and)3.745 E F1(${)3.745 E F2
+(name)A F1([*]})A F0 1.245(as e)3.745 F 1.245(xplained abo)-.15 F 1.545
+-.15(ve \()-.15 H(see).15 E/F4 9/Times-Bold@0 SF -.666(PA)108 475.2 S
+(RAMETERS).666 E/F5 9/Times-Roman@0 SF(\).)A F1(Brace Expansion)87 492 Q
+F2(Br)108.58 504 Q .606(ace e)-.15 F(xpansion)-.2 E F0 .606
 (is a mechanism by which arbitrary strings may be generated.)3.346 F
-.606(This mechanism is similar)5.606 F(to)108 405.6 Q F3 .415
-(pathname e)2.915 F(xpansion)-.2 E F0 2.915(,b)C .415
+.606(This mechanism is similar)5.606 F(to)108 516 Q F2 .415(pathname e)
+2.915 F(xpansion)-.2 E F0 2.915(,b)C .415
 (ut the \214lenames generated need not e)-3.115 F 2.915(xist. P)-.15 F
 .415(atterns to be brace e)-.15 F .415(xpanded tak)-.15 F 2.915(et)-.1 G
-(he)-2.915 E .151(form of an optional)108 417.6 R F3(pr)2.651 E(eamble)
+(he)-2.915 E .152(form of an optional)108 528 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 429.6 R
-.563(wed by an optional)-.25 F F3(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 441.6 R .659(xpanding left to)-.15 F(right.)
-108 453.6 Q .719(Brace e)108 470.4 R .719(xpansions may be nested.)-.15
-F .719(The results of each e)5.719 F .719
+F(xpres-)-.15 E .563(sion between a pair of braces, follo)108 540 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(co\
+ntained within the braces, and the postscript is then appended to each \
+resulting string, e)108 552 R .658(xpanding left to)-.15 F(right.)108
+564 Q .718(Brace e)108 580.8 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 482.4 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.242(As)
-108 499.2 S .742(equence e)-3.242 F .742(xpression tak)-.15 F .742
-(es the form)-.1 F F1({)3.242 E F3(x)A F1(..)A F3(y)A F1([..)A F3(incr)A
-F1(]})A F0 3.242(,w)C(here)-3.242 E F3(x)3.242 E F0(and)3.243 E F3(y)
-3.243 E F0 .743(are either inte)3.243 F .743(gers or single characters,)
--.15 F(and)108 511.2 Q F3(incr)3.032 E F0 3.032(,a)C 3.032(no)-3.032 G
+108 592.8 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.243(As)
+108 609.6 S .743(equence e)-3.243 F .743(xpression tak)-.15 F .743
+(es the form)-.1 F F1({)3.243 E F2(x)A F1(..)A F2(y)A F1([..)A F2(incr)A
+F1(]})A F0 3.243(,w)C(here)-3.243 E F2(x)3.243 E F0(and)3.242 E F2(y)
+3.242 E F0 .742(are either inte)3.242 F .742(gers or single characters,)
+-.15 F(and)108 621.6 Q F2(incr)3.031 E F0 3.031(,a)C 3.032(no)-3.031 G
 .532(ptional increment, is an inte)-3.032 F(ger)-.15 E 5.532(.W)-.55 G
 .532(hen inte)-5.532 F .532(gers are supplied, the e)-.15 F .532
-(xpression e)-.15 F .531(xpands to each)-.15 F .077(number between)108
-523.2 R F3(x)2.577 E F0(and)2.577 E F3(y)2.577 E F0 2.577(,i)C(nclusi)
--2.577 E -.15(ve)-.25 G 5.077(.S).15 G .077(upplied inte)-5.077 F .077
-(gers may be pre\214x)-.15 F .077(ed with)-.15 F F3(0)2.577 E F0 .078
-(to force each term to ha)2.578 F .378 -.15(ve t)-.2 H(he).15 E .015
-(same width.)108 535.2 R .015(When either)5.015 F F3(x)2.515 E F0(or)
-2.515 E F3(y)2.515 E F0(be)2.515 E .014(gins with a zero, the shell att\
+(xpression e)-.15 F .532(xpands to each)-.15 F .078(number between)108
+633.6 R F2(x)2.578 E F0(and)2.578 E F2(y)2.578 E F0 2.578(,i)C(nclusi)
+-2.578 E -.15(ve)-.25 G 5.078(.S).15 G .078(upplied inte)-5.078 F .077
+(gers may be pre\214x)-.15 F .077(ed with)-.15 F F2(0)2.577 E F0 .077
+(to force each term to ha)2.577 F .377 -.15(ve t)-.2 H(he).15 E .014
+(same width.)108 645.6 R .014(When either)5.014 F F2(x)2.514 E F0(or)
+2.514 E F2(y)2.514 E F0(be)2.514 E .015(gins with a zero, the shell att\
 empts to force all generated terms to contain)-.15 F 1.143
-(the same number of digits, zero-padding where necessary)108 547.2 R
+(the same number of digits, zero-padding where necessary)108 657.6 R
 6.143(.W)-.65 G 1.143(hen characters are supplied, the e)-6.143 F
-(xpression)-.15 E -.15(ex)108 559.2 S 1.064(pands to each character le)
-.15 F 1.064(xicographically between)-.15 F F3(x)3.564 E F0(and)3.564 E
-F3(y)3.564 E F0 3.564(,i)C(nclusi)-3.564 E -.15(ve)-.25 G 3.564(,u).15 G
-1.064(sing the def)-3.564 F 1.064(ault C locale.)-.1 F(Note)6.064 E .983
-(that both)108 571.2 R F3(x)3.483 E F0(and)3.483 E F3(y)3.483 E F0 .983
-(must be of the same type.)3.483 F .984
+(xpression)-.15 E -.15(ex)108 669.6 S 1.064(pands to each character le)
+.15 F 1.064(xicographically between)-.15 F F2(x)3.564 E F0(and)3.564 E
+F2(y)3.564 E F0 3.564(,i)C(nclusi)-3.564 E -.15(ve)-.25 G 3.564(,u).15 G
+1.064(sing the def)-3.564 F 1.064(ault C locale.)-.1 F(Note)6.064 E .984
+(that both)108 681.6 R F2(x)3.484 E F0(and)3.484 E F2(y)3.484 E F0 .983
+(must be of the same type.)3.484 F .983
 (When the increment is supplied, it is used as the dif)5.983 F(ference)
--.25 E(between each term.)108 583.2 Q(The def)5 E
-(ault increment is 1 or \2551 as appropriate.)-.1 E .582(Brace e)108 600
-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 .015
-(are preserv)108 612 R .015(ed in the result.)-.15 F .015
-(It is strictly te)5.015 F(xtual.)-.15 E F1(Bash)5.016 E F0 .016
-(does not apply an)2.516 F 2.516(ys)-.15 G .016
-(yntactic interpretation to the con-)-2.516 F(te)108 624 Q(xt of the e)
--.15 E(xpansion or the te)-.15 E(xt between the braces.)-.15 E 3.633(Ac)
-108 640.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(unquoted comma or a v)108 652.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 664.8 R F1({)2.755 E F0(or)2.755 E F1(,)2.755 E F0
-.255(may be quoted with a backslash to pre)2.755 F -.15(ve)-.25 G .255
-(nt its being considered part of a brace e).15 F(xpres-)-.15 E 2.91
-(sion. T)108 676.8 R 2.91(oa)-.8 G -.2(vo)-3.11 G .41
-(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
-(xpan-)-.15 E(sion, and inhibits brace e)108 688.8 Q
-(xpansion until the closing)-.15 E F1(})2.5 E F0(.)A 1.476(This constru\
-ct is typically used as shorthand when the common pre\214x of the strin\
-gs to be generated is)108 705.6 R(longer than in the abo)108 717.6 Q .3
--.15(ve ex)-.15 H(ample:).15 E(GNU Bash 5.0)72 768 Q(2018 March 15)
-144.29 E(20)193.45 E 0 Cg EP
+-.25 E(between each term.)108 693.6 Q(The def)5 E
+(ault increment is 1 or \2551 as appropriate.)-.1 E .581(Brace e)108
+710.4 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 722.4 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.208
+(yntactic interpretation to the)-3.709 F(GNU Bash 5.0)72 768 Q
+(2018 August 7)145.395 E(20)194.555 E 0 Cg EP
 %%Page: 21 21
 %%BeginPageSetup
 BP
 %%EndPageSetup
 /F0 10/Times-Roman@0 SF -.35(BA)72 48 S 137.14(SH\(1\) General).35 F
-(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E
-(mkdir /usr/local/src/bash/{old,ne)144 84 Q -.65(w,)-.25 G(dist,b).65 E
-(ugs})-.2 E(or)108 96 Q(cho)144 108 Q(wn root /usr/{ucb/{e)-.25 E
-(x,edit},lib/{e)-.15 E(x?.?*,ho)-.15 E(w_e)-.25 E(x}})-.15 E .618
-(Brace e)108 124.8 R .618
+(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(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.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 leas\
+t 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.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.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 .41(is not considered eligible for brace e)2.911 F
+(xpan-)-.15 E(sion, and inhibits brace e)108 148.8 Q
+(xpansion until the closing)-.15 E F1(})2.5 E F0(.)A 1.476(This constru\
+ct is typically used as shorthand when the common pre\214x of the strin\
+gs to be generated is)108 165.6 R(longer than in the abo)108 177.6 Q .3
+-.15(ve ex)-.15 H(ample:).15 E(mkdir /usr/local/src/bash/{old,ne)144
+194.4 Q -.65(w,)-.25 G(dist,b).65 E(ugs})-.2 E(or)108 206.4 Q(cho)144
+218.4 Q(wn root /usr/{ucb/{e)-.25 E(x,edit},lib/{e)-.15 E(x?.?*,ho)-.15
+E(w_e)-.25 E(x}})-.15 E .618(Brace e)108 235.2 R .618
 (xpansion introduces a slight incompatibility with historical v)-.15 F
-.618(ersions of)-.15 F/F1 10/Times-Bold@0 SF(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 136.8 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 148.8 Q -.15
+.618(ersions of)-.15 F F1(sh)3.118 E F0(.)A F1(sh)5.618 E F0 .618
+(does not treat open-)3.118 F .247
+(ing or closing braces specially when the)108 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 160.8 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
-(If strict compatibility with)108 172.8 R F1(sh)2.936 E F0 .436
+3.53 E F0(as)3.53 E/F2 10/Times-Italic@0 SF(\214le{1,2})108 271.2 Q F0
+.514(appears identically in the output.)3.014 F .515(The same w)5.515 F
+.515(ord is output as)-.1 F 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
-(xpansion with the)-.15 F F1(+B)108 184.8 Q F0(option to the)2.5 E F1
+(+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 201.6 S(lde Expansion).18 E F0 1.087(If a w)108 213.6 R 1.087(ord be)
--.1 F 1.087(gins with an unquoted tilde character \(`)-.15 F F1(~)A F0
-1.086('\), all of the characters preceding the \214rst unquoted)B .185(\
-slash \(or all characters, if there is no unquoted slash\) are consider\
-ed a)108 225.6 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 237.6 R
-.725(wing the tilde are treated as a possible)-.25 F F2(lo)108 249.6 Q
-.522(gin name)-.1 F F0 5.522(.I)C 3.022(ft)-5.522 G .522
+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 .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 261.6 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 273.6 Q .092
-(If the tilde-pre\214x is a `~+', the v)108 290.4 R .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 302.4 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 314.4 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
-326.4 R 1.437(ould be displayed by the)-.1 F F1(dirs)3.937 E F0 -.2(bu)
-108 338.4 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 350.4 Q(If the login name is in)108 367.2 Q -.25(va)-.4 G
+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 384 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
-.467(these cases, tilde e)108 396 R .467(xpansion is also performed.)
--.15 F(Consequently)5.467 E 2.967(,o)-.65 G .468
-(ne may use \214lenames with tildes in assign-)-2.967 F(ments to)108 408
-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 424.8 S(rameter Expansion).1 E F0 1.606(The `)108 436.8 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 448.8 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 460.8 R .033(ariable to be e)-.25 F .033
-(xpanded from characters immediately follo)-.15 F .032
-(wing it which could be interpreted as part)-.25 F(of the name.)108
-472.8 Q 1.189
-(When braces are used, the matching ending brace is the \214rst `)108
-489.6 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
-501.6 R 2.15(xpansion, command substitution, or parameter)-.15 F -.15
-(ex)108 513.6 S(pansion.).15 E(${)108 530.4 Q F2(par)A(ameter)-.15 E F0
-(})A 1.204(The v)144 542.4 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 .264
-(parameter with more than one digit, or when)144 554.4 R F2(par)4.014 E
+F0 .167(or the \214rst)2.667 F F1(=)2.667 E F0 5.167(.I)C(n)-5.167 E
+.468(these cases, tilde e)108 506.4 R .468(xpansion is also performed.)
+-.15 F(Consequently)5.467 E 2.967(,o)-.65 G .467
+(ne may use \214lenames with tildes in assign-)-2.967 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 .023(Bash also performs tilde e)108 535.2 R .023
+(xpansion on w)-.15 F .024(ords satisfying the conditions of v)-.1 F
+.024(ariable assignments \(as described)-.25 F(abo)108 547.2 Q .77 -.15
+(ve u)-.15 H(nder).15 E F3 -.666(PA)2.97 G(RAMETERS).666 E F4(\))A F0
+.47(when the)2.72 F 2.969(ya)-.15 G .469(ppear as ar)-2.969 F .469
+(guments to simple commands.)-.18 F .469(Bash does not do this,)5.469 F
+-.15(ex)108 559.2 S(cept for the).15 E F2(declar)2.5 E(ation)-.15 E F0
+(commands listed abo)2.5 E -.15(ve)-.15 G 2.5(,w).15 G(hen in)-2.5 E F2
+(posix mode)2.5 E F0(.)A F1 -.1(Pa)87 576 S(rameter Expansion).1 E F0
+1.605(The `)108 588 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 600 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 612 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 624
+Q 1.19(When braces are used, the matching ending brace is the \214rst `)
+108 640.8 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 652.8 R 2.15
+(xpansion, command substitution, or parameter)-.15 F -.15(ex)108 664.8 S
+(pansion.).15 E(${)108 681.6 Q F2(par)A(ameter)-.15 E F0(})A 1.205
+(The v)144 693.6 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 705.6 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 2.676
-(be interpreted as part of its name.)144 566.4 R(The)7.677 E F2(par)
-5.177 E(ameter)-.15 E F0 2.677(is a shell parameter as described abo)
-5.177 F -.15(ve)-.15 G F1 -.74(PA)144 578.4 S(RAMETERS).74 E F0 2.5(\)o)
+(wed by a character which is not to)-.25 F 2.677
+(be interpreted as part of its name.)144 717.6 R(The)7.677 E F2(par)
+5.177 E(ameter)-.15 E F0 2.676(is a shell parameter as described abo)
+5.177 F -.15(ve)-.15 G F1 -.74(PA)144 729.6 S(RAMETERS).74 E F0 2.5(\)o)
 C 2.5(ra)-2.5 G 2.5(na)-2.5 G(rray reference \()-2.5 E F1(Arrays)A F0
-(\).)A .347(If the \214rst character of)108 595.2 R F2(par)2.846 E
-(ameter)-.15 E F0 .346(is an e)2.846 F .346(xclamation point \()-.15 F
-F1(!)A F0 .346(\), and)B F2(par)2.846 E(ameter)-.15 E F0 .346(is not a)
-2.846 F F2(namer)2.846 E(ef)-.37 E F0 2.846(,i)C 2.846(ti)-2.846 G
-(ntroduces)-2.846 E 2.634(al)108 607.2 S -2.15 -.25(ev e)-2.634 H 2.634
-(lo).25 G 2.634(fv)-2.634 G .134(ariable indirection.)-2.884 F F1(Bash)
-5.134 E F0 .134(uses the v)2.634 F .134(alue of the v)-.25 F .134
-(ariable formed from the rest of)-.25 F F2(par)2.635 E(ameter)-.15 E F0
-.135(as the)2.635 F 1.004(name of the v)108 619.2 R 1.003
-(ariable; this v)-.25 F 1.003(ariable is then e)-.25 F 1.003
-(xpanded and that v)-.15 F 1.003
-(alue is used in the rest of the substitution,)-.25 F .257
-(rather than the v)108 631.2 R .257(alue of)-.25 F F2(par)2.757 E
-(ameter)-.15 E F0 2.757(itself. This)2.757 F .257(is kno)2.757 F .257
-(wn as)-.25 F F2(indir)2.757 E .257(ect e)-.37 F(xpansion)-.2 E F0 5.257
-(.T)C .257(he v)-5.257 F .258(alue is subject to tilde)-.25 F -.15(ex)
-108 643.2 S 2.767(pansion, parameter e).15 F 2.766
-(xpansion, command substitution, and arithmetic e)-.15 F 5.266
-(xpansion. If)-.15 F F2(par)5.266 E(ameter)-.15 E F0 2.766(is a)5.266 F
-.461(nameref, this e)108 655.2 R .461(xpands to the name of the v)-.15 F
-.461(ariable referenced by)-.25 F F2(par)2.961 E(ameter)-.15 E F0 .462
-(instead of performing the com-)2.961 F 2.419(plete indirect e)108 667.2
-R 4.919(xpansion. The)-.15 F -.15(ex)4.919 G 2.418
-(ceptions to this are the e).15 F 2.418(xpansions of ${)-.15 F F1(!)A F2
-(pr)A(e\214x)-.37 E F1(*)A F0 4.918(}a)C 2.418(nd ${)-4.918 F F1(!)A F2
-(name)A F0([)A F2(@)A F0(]})A .464(described belo)108 679.2 R 4.264 -.65
-(w. T)-.25 H .464(he e).65 F .464
-(xclamation point must immediately follo)-.15 F 2.965(wt)-.25 G .465
-(he left brace in order to introduce indi-)-2.965 F(rection.)108 691.2 Q
-.334(In each of the cases belo)108 708 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(and arithmetic e)108 720 Q(xpansion.)-.15 E(GNU Bash 5.0)72 768 Q
-(2018 March 15)144.29 E(21)193.45 E 0 Cg EP
+(\).)A(GNU Bash 5.0)72 768 Q(2018 August 7)145.395 E(21)194.555 E 0 Cg
+EP
 %%Page: 22 22
 %%BeginPageSetup
 BP
 %%EndPageSetup
 /F0 10/Times-Roman@0 SF -.35(BA)72 48 S 137.14(SH\(1\) General).35 F
-(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E 1.089
-(When not performing substring e)108 84 R 1.089
-(xpansion, using the forms documented belo)-.15 F 3.589(w\()-.25 G
-(e.g.,)-3.589 E/F1 10/Times-Bold@0 SF(:-)3.59 E F0(\),)A F1(bash)3.59 E
-F0 1.09(tests for a)3.59 F(parameter that is unset or null.)108 96 Q(Om\
-itting the colon results in a test only for a parameter that is unset.)5
-E(${)108 112.8 Q/F2 10/Times-Italic@0 SF(par)A(ameter)-.15 E F1<3aad>A
-F2(wor)A(d)-.37 E F0(})A F1 .723(Use Default V)144 124.8 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 136.8 Q(alue of)-.25 E F2(par)3.75 E(ameter)-.15 E F0
-(is substituted.)3.23 E(${)108 148.8 Q F2(par)A(ameter)-.15 E F1(:=)A F2
-(wor)A(d)-.37 E F0(})A F1 2.004(Assign Default V)144 160.8 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 172.8 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
+(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E .346
+(If the \214rst character of)108 84 R/F1 10/Times-Italic@0 SF(par)2.846
+E(ameter)-.15 E F0 .346(is an e)2.846 F .346(xclamation point \()-.15 F
+/F2 10/Times-Bold@0 SF(!)A F0 .346(\), and)B F1(par)2.846 E(ameter)-.15
+E F0 .346(is not a)2.846 F F1(namer)2.846 E(ef)-.37 E F0 2.847(,i)C
+2.847(ti)-2.847 G(ntroduces)-2.847 E 2.907(al)108 96 S -2.15 -.25(ev e)
+-2.907 H 2.907(lo).25 G 2.906(fi)-2.907 G(ndirection.)-2.906 E F2(Bash)
+5.406 E F0 .406(uses the v)2.906 F .406(alue formed by e)-.25 F .406
+(xpanding the rest of)-.15 F F1(par)2.906 E(ameter)-.15 E F0 .406
+(as the ne)2.906 F(w)-.25 E F1(par)2.906 E(ame-)-.15 E(ter)108 108 Q F0
+2.578(;t)C .078(his is then e)-2.578 F .078(xpanded and that v)-.15 F
+.079(alue is used in the rest of the e)-.25 F .079
+(xpansion, rather than the e)-.15 F .079(xpansion of the)-.15 F
+(original)108 120 Q F1(par)2.543 E(ameter)-.15 E F0 5.043(.T)C .043
+(his is kno)-5.043 F .043(wn as)-.25 F F1(indir)2.543 E .043(ect e)-.37
+F(xpansion)-.2 E F0 5.043(.T)C .043(he v)-5.043 F .042
+(alue is subject to tilde e)-.25 F .042(xpansion, parameter)-.15 F -.15
+(ex)108 132 S .248(pansion, command substitution, and arithmetic e).15 F
+2.748(xpansion. If)-.15 F F1(par)2.749 E(ameter)-.15 E F0 .249
+(is a nameref, this e)2.749 F .249(xpands to the)-.15 F 1.51
+(name of the parameter referenced by)108 144 R F1(par)4.01 E(ameter)-.15
+E F0 1.51(instead of performing the complete indirect e)4.01 F
+(xpansion.)-.15 E .387(The e)108 156 R .387(xceptions to this are the e)
+-.15 F .387(xpansions of ${)-.15 F F2(!)A F1(pr)A(e\214x)-.37 E F2(*)A
+F0 2.887(}a)C .387(nd ${)-2.887 F F2(!)A F1(name)A F0([)A F1(@)A F0 .387
+(]} described belo)B 4.188 -.65(w. T)-.25 H .388(he e).65 F(xclama-)-.15
+E(tion point must immediately follo)108 168 Q 2.5(wt)-.25 G
+(he left brace in order to introduce indirection.)-2.5 E .334
+(In each of the cases belo)108 184.8 R -.65(w,)-.25 G F1(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(and arithmetic e)108
+196.8 Q(xpansion.)-.15 E 1.089(When not performing substring e)108 213.6
+R 1.089(xpansion, using the forms documented belo)-.15 F 3.589(w\()-.25
+G(e.g.,)-3.589 E F2(:-)3.59 E F0(\),)A F2(bash)3.59 E F0 1.09
+(tests for a)3.59 F(parameter that is unset or null.)108 225.6 Q(Omitti\
+ng the colon results in a test only for a parameter that is unset.)5 E
+(${)108 242.4 Q F1(par)A(ameter)-.15 E F2<3aad>A F1(wor)A(d)-.37 E F0(})
+A F2 .723(Use Default V)144 254.4 R(alues)-.92 E F0 5.723(.I)C(f)-5.723
+E F1(par)4.473 E(ameter)-.15 E F0 .723(is unset or null, the e)3.953 F
+.722(xpansion of)-.15 F F1(wor)3.562 E(d)-.37 E F0 .722(is substituted.)
+3.992 F(Other)5.722 E(-)-.2 E(wise, the v)144 266.4 Q(alue of)-.25 E F1
+(par)3.75 E(ameter)-.15 E F0(is substituted.)3.23 E(${)108 278.4 Q F1
+(par)A(ameter)-.15 E F2(:=)A F1(wor)A(d)-.37 E F0(})A F2 2.004
+(Assign Default V)144 290.4 R(alues)-.92 E F0 7.004(.I)C(f)-7.004 E F1
+(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 F1(wor)4.845 E(d)-.37 E F0 2.005
+(is assigned to)5.275 F F1(par)144 302.4 Q(ameter)-.15 E F0 5.279(.T).73
+G .279(he v)-5.279 F .279(alue of)-.25 F F1(par)4.029 E(ameter)-.15 E F0
+.278(is then substituted.)3.508 F .278
 (Positional parameters and special param-)5.278 F
-(eters may not be assigned to in this w)144 184.8 Q(ay)-.1 E(.)-.65 E
-(${)108 196.8 Q F2(par)A(ameter)-.15 E F1(:?)A F2(wor)A(d)-.37 E F0(})A
-F1 .535(Display Err)144 208.8 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 220.8 R
-.662(fect if)-.25 F F2(wor)3.502 E(d)-.37 E F0 .661(is not present\) is\
+(eters may not be assigned to in this w)144 314.4 Q(ay)-.1 E(.)-.65 E
+(${)108 326.4 Q F1(par)A(ameter)-.15 E F2(:?)A F1(wor)A(d)-.37 E F0(})A
+F2 .535(Display Err)144 338.4 R .535(or if Null or Unset)-.18 F F0 5.535
+(.I)C(f)-5.535 E F1(par)4.285 E(ameter)-.15 E F0 .535
+(is null or unset, the e)3.765 F .535(xpansion of)-.15 F F1(wor)3.035 E
+(d)-.37 E F0 .535(\(or a mes-)3.035 F .662(sage to that ef)144 350.4 R
+.662(fect if)-.25 F F1(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
-(interacti)144 232.8 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 244.8 Q F2(par)A(ameter)-.15 E F1(:+)A F2
-(wor)A(d)-.37 E F0(})A F1 .745(Use Alter)144 256.8 R .745(nate V)-.15 F
-(alue)-.92 E F0 5.745(.I)C(f)-5.745 E F2(par)4.495 E(ameter)-.15 E F0
+(interacti)144 362.4 Q -.15(ve)-.25 G 2.5(,e).15 G 2.5(xits. Otherwise,)
+-2.65 F(the v)2.5 E(alue of)-.25 E F1(par)2.5 E(ameter)-.15 E F0
+(is substituted.)2.5 E(${)108 374.4 Q F1(par)A(ameter)-.15 E F2(:+)A F1
+(wor)A(d)-.37 E F0(})A F2 .745(Use Alter)144 386.4 R .745(nate V)-.15 F
+(alue)-.92 E F0 5.745(.I)C(f)-5.745 E F1(par)4.495 E(ameter)-.15 E F0
 .745(is null or unset, nothing is substituted, otherwise the e)3.975 F
-(xpan-)-.15 E(sion of)144 268.8 Q F2(wor)2.84 E(d)-.37 E F0
-(is substituted.)3.27 E(${)108 280.8 Q F2(par)A(ameter)-.15 E F1(:)A F2
-(of)A(fset)-.18 E F0(})A(${)108 292.8 Q F2(par)A(ameter)-.15 E F1(:)A F2
-(of)A(fset)-.18 E F1(:)A F2(length)A F0(})A F1 .002(Substring Expansion)
-144 304.8 R F0 5.002(.E)C .002(xpands to up to)-5.002 F F2(length)2.502
-E F0 .002(characters of the v)2.502 F .002(alue of)-.25 F F2(par)2.502 E
+(xpan-)-.15 E(sion of)144 398.4 Q F1(wor)2.84 E(d)-.37 E F0
+(is substituted.)3.27 E(${)108 410.4 Q F1(par)A(ameter)-.15 E F2(:)A F1
+(of)A(fset)-.18 E F0(})A(${)108 422.4 Q F1(par)A(ameter)-.15 E F2(:)A F1
+(of)A(fset)-.18 E F2(:)A F1(length)A F0(})A F2 .002(Substring Expansion)
+144 434.4 R F0 5.002(.E)C .002(xpands to up to)-5.002 F F1(length)2.502
+E F0 .002(characters of the v)2.502 F .002(alue of)-.25 F F1(par)2.502 E
 (ameter)-.15 E F0 .002(starting at the)2.502 F 1.081
-(character speci\214ed by)144 316.8 R F2(of)3.581 E(fset)-.18 E F0 6.081
-(.I)C(f)-6.081 E F2(par)3.582 E(ameter)-.15 E F0(is)3.582 E F1(@)3.582 E
+(character speci\214ed by)144 446.4 R F1(of)3.581 E(fset)-.18 E F0 6.081
+(.I)C(f)-6.081 E F1(par)3.582 E(ameter)-.15 E F0(is)3.582 E F2(@)3.582 E
 F0 3.582(,a)C 3.582(ni)-3.582 G(nde)-3.582 E -.15(xe)-.15 G 3.582(da).15
-G 1.082(rray subscripted by)-3.582 F F1(@)3.582 E F0(or)3.582 E F1(*)
-3.582 E F0 3.582(,o)C 3.582(ra)-3.582 G(n)-3.582 E(associati)144 328.8 Q
+G 1.082(rray subscripted by)-3.582 F F2(@)3.582 E F0(or)3.582 E F2(*)
+3.582 E F0 3.582(,o)C 3.582(ra)-3.582 G(n)-3.582 E(associati)144 458.4 Q
 1.022 -.15(ve a)-.25 H .722(rray name, the results dif).15 F .722
-(fer as described belo)-.25 F 4.522 -.65(w. I)-.25 H(f).65 E F2(length)
+(fer as described belo)-.25 F 4.522 -.65(w. I)-.25 H(f).65 E F1(length)
 3.222 E F0 .722(is omitted, e)3.222 F .722(xpands to the)-.15 F .042
-(substring of the v)144 340.8 R .042(alue of)-.25 F F2(par)2.542 E
+(substring of the v)144 470.4 R .042(alue of)-.25 F F1(par)2.542 E
 (ameter)-.15 E F0 .043(starting at the character speci\214ed by)2.542 F
-F2(of)2.543 E(fset)-.18 E F0 .043(and e)2.543 F .043(xtending to the)
--.15 F .847(end of the v)144 352.8 R(alue.)-.25 E F2(length)5.846 E F0
-(and)3.346 E F2(of)3.346 E(fset)-.18 E F0 .846(are arithmetic e)3.346 F
+F1(of)2.543 E(fset)-.18 E F0 .043(and e)2.543 F .043(xtending to the)
+-.15 F .847(end of the v)144 482.4 R(alue.)-.25 E F1(length)5.846 E F0
+(and)3.346 E F1(of)3.346 E(fset)-.18 E F0 .846(are arithmetic e)3.346 F
 .846(xpressions \(see)-.15 F/F3 9/Times-Bold@0 SF .846(ARITHMETIC EV)
-3.346 F(ALU)-1.215 E -.855(AT)-.54 G(ION).855 E F0(belo)144 364.8 Q
-(w\).)-.25 E(If)144 388.8 Q F2(of)3.028 E(fset)-.18 E F0 -.25(eva)3.029
+3.346 F(ALU)-1.215 E -.855(AT)-.54 G(ION).855 E F0(belo)144 494.4 Q
+(w\).)-.25 E(If)144 518.4 Q F1(of)3.028 E(fset)-.18 E F0 -.25(eva)3.029
 G .529(luates to a number less than zero, the v).25 F .529
 (alue is used as an of)-.25 F .529(fset in characters from the)-.25 F
-.046(end of the v)144 400.8 R .046(alue of)-.25 F F2(par)2.546 E(ameter)
--.15 E F0 5.046(.I)C(f)-5.046 E F2(length)2.546 E F0 -.25(eva)2.546 G
+.046(end of the v)144 530.4 R .046(alue of)-.25 F F1(par)2.546 E(ameter)
+-.15 E F0 5.046(.I)C(f)-5.046 E F1(length)2.546 E F0 -.25(eva)2.546 G
 .046(luates to a number less than zero, it is interpreted as an).25 F
-(of)144 412.8 Q .202(fset in characters from the end of the v)-.25 F
-.202(alue of)-.25 F F2(par)2.702 E(ameter)-.15 E F0 .203
-(rather than a number of characters, and)2.702 F .558(the e)144 424.8 R
-.558(xpansion is the characters between)-.15 F F2(of)3.058 E(fset)-.18 E
+(of)144 542.4 Q .202(fset in characters from the end of the v)-.25 F
+.202(alue of)-.25 F F1(par)2.702 E(ameter)-.15 E F0 .203
+(rather than a number of characters, and)2.702 F .558(the e)144 554.4 R
+.558(xpansion is the characters between)-.15 F F1(of)3.058 E(fset)-.18 E
 F0 .558(and that result.)3.058 F .557(Note that a ne)5.557 F -.05(ga)
 -.15 G(ti).05 E .857 -.15(ve o)-.25 H -.25(ff).15 G .557(set must be).25
-F(separated from the colon by at least one space to a)144 436.8 Q -.2
-(vo)-.2 G(id being confused with the).2 E F1(:-)2.5 E F0 -.15(ex)2.5 G
-(pansion.).15 E(If)144 460.8 Q F2(par)2.958 E(ameter)-.15 E F0(is)2.958
-E F1(@)2.958 E F0 2.958(,t)C .458(he result is)-2.958 F F2(length)2.959
-E F0 .459(positional parameters be)2.959 F .459(ginning at)-.15 F F2(of)
+F(separated from the colon by at least one space to a)144 566.4 Q -.2
+(vo)-.2 G(id being confused with the).2 E F2(:-)2.5 E F0 -.15(ex)2.5 G
+(pansion.).15 E(If)144 590.4 Q F1(par)2.958 E(ameter)-.15 E F0(is)2.958
+E F2(@)2.958 E F0 2.958(,t)C .458(he result is)-2.958 F F1(length)2.959
+E F0 .459(positional parameters be)2.959 F .459(ginning at)-.15 F F1(of)
 2.959 E(fset)-.18 E F0 5.459(.A)C(ne)-2.5 E -.05(ga)-.15 G(ti).05 E -.15
-(ve)-.25 G F2(of)3.109 E(fset)-.18 E F0 .6(is tak)144 472.8 R .6
+(ve)-.25 G F1(of)3.109 E(fset)-.18 E F0 .6(is tak)144 602.4 R .6
 (en relati)-.1 F .9 -.15(ve t)-.25 H 3.1(oo).15 G .6
 (ne greater than the greatest positional parameter)-3.1 F 3.1(,s)-.4 G
 3.1(oa)-3.1 G 3.1(no)-3.1 G -.25(ff)-3.1 G .6(set of \2551 e).25 F -.25
-(va)-.25 G(luates).25 E .639(to the last positional parameter)144 484.8
+(va)-.25 G(luates).25 E .639(to the last positional parameter)144 614.4
 R 5.639(.I)-.55 G 3.139(ti)-5.639 G 3.139(sa)-3.139 G 3.139(ne)-3.139 G
-.639(xpansion error if)-3.289 F F2(length)3.14 E F0 -.25(eva)3.14 G .64
-(luates to a number less than).25 F(zero.)144 496.8 Q(If)144 520.8 Q F2
+.639(xpansion error if)-3.289 F F1(length)3.14 E F0 -.25(eva)3.14 G .64
+(luates to a number less than).25 F(zero.)144 626.4 Q(If)144 650.4 Q F1
 (par)3.014 E(ameter)-.15 E F0 .514(is an inde)3.014 F -.15(xe)-.15 G
 3.014(da).15 G .514(rray name subscripted by @ or *, the result is the)
--3.014 F F2(length)3.014 E F0 .513(members of)3.013 F 1.081
-(the array be)144 532.8 R 1.081(ginning with ${)-.15 F F2(par)A(ameter)
--.15 E F0([)A F2(of)A(fset)-.18 E F0 3.581(]}. A)B(ne)3.581 E -.05(ga)
--.15 G(ti).05 E -.15(ve)-.25 G F2(of)3.732 E(fset)-.18 E F0 1.082
+-3.014 F F1(length)3.014 E F0 .513(members of)3.013 F 1.081
+(the array be)144 662.4 R 1.081(ginning with ${)-.15 F F1(par)A(ameter)
+-.15 E F0([)A F1(of)A(fset)-.18 E F0 3.581(]}. A)B(ne)3.581 E -.05(ga)
+-.15 G(ti).05 E -.15(ve)-.25 G F1(of)3.732 E(fset)-.18 E F0 1.082
 (is tak)3.582 F 1.082(en relati)-.1 F 1.382 -.15(ve t)-.25 H 3.582(oo)
-.15 G 1.082(ne greater)-3.582 F 1.08(than the maximum inde)144 544.8 R
+.15 G 1.082(ne greater)-3.582 F 1.08(than the maximum inde)144 674.4 R
 3.58(xo)-.15 G 3.58(ft)-3.58 G 1.08(he speci\214ed array)-3.58 F 6.079
 (.I)-.65 G 3.579(ti)-6.079 G 3.579(sa)-3.579 G 3.579(ne)-3.579 G 1.079
-(xpansion error if)-3.729 F F2(length)3.579 E F0 -.25(eva)3.579 G 1.079
-(luates to a).25 F(number less than zero.)144 556.8 Q(Substring e)144
-580.8 Q(xpansion applied to an associati)-.15 E .3 -.15(ve a)-.25 H
-(rray produces unde\214ned results.).15 E 1.93(Substring inde)144 604.8
-R 1.931(xing is zero-based unless the positional parameters are used, i\
-n which case the)-.15 F(inde)144 616.8 Q .307(xing starts at 1 by def)
--.15 F 2.807(ault. If)-.1 F F2(of)2.807 E(fset)-.18 E F0 .307
-(is 0, and the positional parameters are used,)2.807 F F1($0)2.806 E F0
-.306(is pre\214x)2.806 F(ed)-.15 E(to the list.)144 628.8 Q(${)108 645.6
-Q F1(!)A F2(pr)A(e\214x)-.37 E F1(*)A F0(})A(${)108 657.6 Q F1(!)A F2
-(pr)A(e\214x)-.37 E F1(@)A F0(})A F1 .084(Names matching pr)144 669.6 R
-(e\214x)-.18 E F0 5.084(.E)C .084(xpands to the names of v)-5.084 F .084
-(ariables whose names be)-.25 F .085(gin with)-.15 F F2(pr)2.585 E
-(e\214x)-.37 E F0 2.585(,s)C(epa-)-2.585 E .258
-(rated by the \214rst character of the)144 681.6 R F3(IFS)2.758 E F0
-.257(special v)2.507 F 2.757(ariable. When)-.25 F F2(@)2.757 E F0 .257
-(is used and the e)2.757 F .257(xpansion appears)-.15 F
-(within double quotes, each v)144 693.6 Q(ariable name e)-.25 E
-(xpands to a separate w)-.15 E(ord.)-.1 E(GNU Bash 5.0)72 768 Q
-(2018 March 15)144.29 E(22)193.45 E 0 Cg EP
+(xpansion error if)-3.729 F F1(length)3.579 E F0 -.25(eva)3.579 G 1.079
+(luates to a).25 F(number less than zero.)144 686.4 Q(Substring e)144
+710.4 Q(xpansion applied to an associati)-.15 E .3 -.15(ve a)-.25 H
+(rray produces unde\214ned results.).15 E(GNU Bash 5.0)72 768 Q
+(2018 August 7)145.395 E(22)194.555 E 0 Cg EP
 %%Page: 23 23
 %%BeginPageSetup
 BP
 %%EndPageSetup
 /F0 10/Times-Roman@0 SF -.35(BA)72 48 S 137.14(SH\(1\) General).35 F
-(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(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(]})
-A(${)108 96 Q F1(!)A F2(name)A F0([)A F2(*)A F0(]})A F1 2.035
-(List of array k)144 108 R(eys)-.1 E F0 7.036(.I)C(f)-7.036 E F2(name)
-4.536 E F0 2.036(is an array v)4.536 F 2.036(ariable, e)-.25 F 2.036
+(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E 1.93
+(Substring inde)144 84 R 1.931(xing is zero-based unless the positional\
+ parameters are used, in which case the)-.15 F(inde)144 96 Q .307
+(xing starts at 1 by def)-.15 F 2.807(ault. If)-.1 F/F1 10
+/Times-Italic@0 SF(of)2.807 E(fset)-.18 E F0 .307
+(is 0, and the positional parameters are used,)2.807 F/F2 10
+/Times-Bold@0 SF($0)2.806 E F0 .306(is pre\214x)2.806 F(ed)-.15 E
+(to the list.)144 108 Q(${)108 124.8 Q F2(!)A F1(pr)A(e\214x)-.37 E F2
+(*)A F0(})A(${)108 136.8 Q F2(!)A F1(pr)A(e\214x)-.37 E F2(@)A F0(})A F2
+.084(Names matching pr)144 148.8 R(e\214x)-.18 E F0 5.084(.E)C .084
+(xpands to the names of v)-5.084 F .084(ariables whose names be)-.25 F
+.085(gin with)-.15 F F1(pr)2.585 E(e\214x)-.37 E F0 2.585(,s)C(epa-)
+-2.585 E .258(rated by the \214rst character of the)144 160.8 R/F3 9
+/Times-Bold@0 SF(IFS)2.758 E F0 .257(special v)2.507 F 2.757
+(ariable. When)-.25 F F1(@)2.757 E F0 .257(is used and the e)2.757 F
+.257(xpansion appears)-.15 F(within double quotes, each v)144 172.8 Q
+(ariable name e)-.25 E(xpands to a separate w)-.15 E(ord.)-.1 E(${)108
+189.6 Q F2(!)A F1(name)A F0([)A F1(@)A F0(]})A(${)108 201.6 Q F2(!)A F1
+(name)A F0([)A F1(*)A F0(]})A F2 2.035(List of array k)144 213.6 R(eys)
+-.1 E F0 7.036(.I)C(f)-7.036 E F1(name)4.536 E F0 2.036(is an array v)
+4.536 F 2.036(ariable, e)-.25 F 2.036
 (xpands to the list of array indices \(k)-.15 F -.15(ey)-.1 G(s\)).15 E
-.596(assigned in)144 120 R F2(name)3.096 E F0 5.596(.I)C(f)-5.596 E F2
+.596(assigned in)144 225.6 R F1(name)3.096 E F0 5.596(.I)C(f)-5.596 E F1
 (name)3.096 E F0 .595(is not an array)3.096 F 3.095(,e)-.65 G .595
-(xpands to 0 if)-3.245 F F2(name)3.095 E F0 .595
-(is set and null otherwise.)3.095 F(When)5.595 E F2(@)144 132 Q F0
+(xpands to 0 if)-3.245 F F1(name)3.095 E F0 .595
+(is set and null otherwise.)3.095 F(When)5.595 E F1(@)144 237.6 Q F0
 (is used and the e)2.5 E(xpansion appears within double quotes, each k)
 -.15 E .3 -.15(ey ex)-.1 H(pands to a separate w).15 E(ord.)-.1 E(${)108
-148.8 Q F1(#)A F2(par)A(ameter)-.15 E F0(})A F1 -.1(Pa)144 160.8 S .47
+254.4 Q F2(#)A F1(par)A(ameter)-.15 E F0(})A F2 -.1(Pa)144 266.4 S .47
 (rameter length).1 F F0 5.47(.T)C .471(he length in characters of the v)
--5.47 F .471(alue of)-.25 F F2(par)2.971 E(ameter)-.15 E F0 .471
-(is substituted.)2.971 F(If)5.471 E F2(par)4.221 E(ame-)-.15 E(ter)144
-172.8 Q F0(is)4.439 E F1(*)3.709 E F0(or)3.709 E F1(@)3.709 E F0 3.708
+-5.47 F .471(alue of)-.25 F F1(par)2.971 E(ameter)-.15 E F0 .471
+(is substituted.)2.971 F(If)5.471 E F1(par)4.221 E(ame-)-.15 E(ter)144
+278.4 Q F0(is)4.439 E F2(*)3.709 E F0(or)3.709 E F2(@)3.709 E F0 3.708
 (,t)C 1.208(he v)-3.708 F 1.208
 (alue substituted is the number of positional parameters.)-.25 F(If)
-6.208 E F2(par)4.958 E(ameter)-.15 E F0 1.208(is an)4.438 F .348
-(array name subscripted by)144 184.8 R F1(*)2.849 E F0(or)2.849 E F1(@)
+6.208 E F1(par)4.958 E(ameter)-.15 E F0 1.208(is an)4.438 F .348
+(array name subscripted by)144 290.4 R F2(*)2.849 E F0(or)2.849 E F2(@)
 2.849 E F0 2.849(,t)C .349(he v)-2.849 F .349
 (alue substituted is the number of elements in the array)-.25 F 5.349
-(.I)-.65 G(f)-5.349 E F2(par)145.25 196.8 Q(ameter)-.15 E F0 .456
+(.I)-.65 G(f)-5.349 E F1(par)145.25 302.4 Q(ameter)-.15 E F0 .456
 (is an inde)3.686 F -.15(xe)-.15 G 2.956(da).15 G .456
 (rray name subscripted by a ne)-2.956 F -.05(ga)-.15 G(ti).05 E .756
 -.15(ve n)-.25 H(umber).15 E 2.955(,t)-.4 G .455
-(hat number is interpreted)-2.955 F .972(as relati)144 208.8 R 1.272
+(hat number is interpreted)-2.955 F .972(as relati)144 314.4 R 1.272
 -.15(ve t)-.25 H 3.472(oo).15 G .973(ne greater than the maximum inde)
--3.472 F 3.473(xo)-.15 G(f)-3.473 E F2(par)3.473 E(ameter)-.15 E F0
+-3.472 F 3.473(xo)-.15 G(f)-3.473 E F1(par)3.473 E(ameter)-.15 E F0
 3.473(,s)C 3.473(on)-3.473 G -2.25 -.15(eg a)-3.473 H(ti).15 E 1.273
 -.15(ve i)-.25 H .973(ndices count back).15 F(from the end of the array)
-144 220.8 Q 2.5(,a)-.65 G(nd an inde)-2.5 E 2.5(xo)-.15 G 2.5<66ad>-2.5
-G 2.5(1r)-2.5 G(eferences the last element.)-2.5 E(${)108 237.6 Q F2
-(par)A(ameter)-.15 E F1(#)A F2(wor)A(d)-.37 E F0(})A(${)108 249.6 Q F2
-(par)A(ameter)-.15 E F1(##)A F2(wor)A(d)-.37 E F0(})A F1(Remo)144 261.6
+144 326.4 Q 2.5(,a)-.65 G(nd an inde)-2.5 E 2.5(xo)-.15 G 2.5<66ad>-2.5
+G 2.5(1r)-2.5 G(eferences the last element.)-2.5 E(${)108 343.2 Q F1
+(par)A(ameter)-.15 E F2(#)A F1(wor)A(d)-.37 E F0(})A(${)108 355.2 Q F1
+(par)A(ameter)-.15 E F2(##)A F1(wor)A(d)-.37 E F0(})A F2(Remo)144 367.2
 Q 1.396 -.1(ve m)-.1 H 1.196(atching pr).1 F 1.196(e\214x patter)-.18 F
-(n)-.15 E F0 6.196(.T)C(he)-6.196 E F2(wor)4.036 E(d)-.37 E F0 1.196
+(n)-.15 E F0 6.196(.T)C(he)-6.196 E F1(wor)4.036 E(d)-.37 E F0 1.196
 (is e)4.466 F 1.196(xpanded to produce a pattern just as in path-)-.15 F
-.543(name e)144 273.6 R .544(xpansion, and matched ag)-.15 F .544
-(ainst the e)-.05 F .544(xpanded v)-.15 F .544(alue of)-.25 F F2(par)
+.543(name e)144 379.2 R .544(xpansion, and matched ag)-.15 F .544
+(ainst the e)-.05 F .544(xpanded v)-.15 F .544(alue of)-.25 F F1(par)
 4.294 E(ameter)-.15 E F0 .544(using the rules described)3.774 F(under)
-144 285.6 Q F1 -.1(Pa)3.222 G(tter).1 E 3.222(nM)-.15 G(atching)-3.222 E
+144 391.2 Q F2 -.1(Pa)3.222 G(tter).1 E 3.222(nM)-.15 G(atching)-3.222 E
 F0(belo)3.222 E 4.522 -.65(w. I)-.25 H 3.222(ft).65 G .721
 (he pattern matches the be)-3.222 F .721(ginning of the v)-.15 F .721
-(alue of)-.25 F F2(par)3.221 E(ameter)-.15 E F0(,).73 E 1.151
-(then the result of the e)144 297.6 R 1.151(xpansion is the e)-.15 F
-1.151(xpanded v)-.15 F 1.151(alue of)-.25 F F2(par)4.902 E(ameter)-.15 E
+(alue of)-.25 F F1(par)3.221 E(ameter)-.15 E F0(,).73 E 1.151
+(then the result of the e)144 403.2 R 1.151(xpansion is the e)-.15 F
+1.151(xpanded v)-.15 F 1.151(alue of)-.25 F F1(par)4.902 E(ameter)-.15 E
 F0 1.152(with the shortest matching)4.382 F .184(pattern \(the `)144
-309.6 R(`)-.74 E F1(#)A F0 1.664 -.74('' c)D .184
-(ase\) or the longest matching pattern \(the `).74 F(`)-.74 E F1(##)A F0
-1.664 -.74('' c)D .184(ase\) deleted.).74 F(If)5.183 E F2(par)3.933 E
-(ameter)-.15 E F0(is)3.413 E F1(@)2.683 E F0(or)144 321.6 Q F1(*)3.018 E
+415.2 R(`)-.74 E F2(#)A F0 1.664 -.74('' c)D .184
+(ase\) or the longest matching pattern \(the `).74 F(`)-.74 E F2(##)A F0
+1.664 -.74('' c)D .184(ase\) deleted.).74 F(If)5.183 E F1(par)3.933 E
+(ameter)-.15 E F0(is)3.413 E F2(@)2.683 E F0(or)144 427.2 Q F2(*)3.018 E
 F0 3.018(,t)C .518(he pattern remo)-3.018 F -.25(va)-.15 G 3.018(lo).25
 G .518
 (peration is applied to each positional parameter in turn, and the e)
--3.018 F(xpan-)-.15 E 1.122(sion is the resultant list.)144 333.6 R(If)
-6.121 E F2(par)4.871 E(ameter)-.15 E F0 1.121(is an array v)4.351 F
-1.121(ariable subscripted with)-.25 F F1(@)3.621 E F0(or)3.621 E F1(*)
-3.621 E F0 3.621(,t)C 1.121(he pattern)-3.621 F(remo)144 345.6 Q -.25
+-3.018 F(xpan-)-.15 E 1.122(sion is the resultant list.)144 439.2 R(If)
+6.121 E F1(par)4.871 E(ameter)-.15 E F0 1.121(is an array v)4.351 F
+1.121(ariable subscripted with)-.25 F F2(@)3.621 E F0(or)3.621 E F2(*)
+3.621 E F0 3.621(,t)C 1.121(he pattern)-3.621 F(remo)144 451.2 Q -.25
 (va)-.15 G 2.53(lo).25 G .03
 (peration is applied to each member of the array in turn, and the e)
--2.53 F .03(xpansion is the resultant)-.15 F(list.)144 357.6 Q(${)108
-374.4 Q F2(par)A(ameter)-.15 E F1(%)A F2(wor)A(d)-.37 E F0(})A(${)108
-386.4 Q F2(par)A(ameter)-.15 E F1(%%)A F2(wor)A(d)-.37 E F0(})A F1(Remo)
-144 398.4 Q .347 -.1(ve m)-.1 H .147(atching suf\214x patter).1 F(n)-.15
-E F0 5.147(.T)C(he)-5.147 E F2(wor)2.647 E(d)-.37 E F0 .147(is e)2.647 F
-.146(xpanded to produce a pattern just as in pathname)-.15 F -.15(ex)144
-410.4 S .458(pansion, and matched ag).15 F .458(ainst the e)-.05 F .458
-(xpanded v)-.15 F .458(alue of)-.25 F F2(par)4.209 E(ameter)-.15 E F0
-.459(using the rules described under)3.689 F F1 -.1(Pa)144 422.4 S(tter)
-.1 E 4.593(nM)-.15 G(atching)-4.593 E F0(belo)4.593 E 5.892 -.65(w. I)
--.25 H 4.592(ft).65 G 2.092
-(he pattern matches a trailing portion of the e)-4.592 F 2.092
-(xpanded v)-.15 F 2.092(alue of)-.25 F F2(par)144 434.4 Q(ameter)-.15 E
-F0 3.15(,t).73 G .65(hen the result of the e)-3.15 F .65
-(xpansion is the e)-.15 F .65(xpanded v)-.15 F .65(alue of)-.25 F F2
+-2.53 F .03(xpansion is the resultant)-.15 F(list.)144 463.2 Q(${)108
+480 Q F1(par)A(ameter)-.15 E F2(%)A F1(wor)A(d)-.37 E F0(})A(${)108 492
+Q F1(par)A(ameter)-.15 E F2(%%)A F1(wor)A(d)-.37 E F0(})A F2(Remo)144
+504 Q .347 -.1(ve m)-.1 H .147(atching suf\214x patter).1 F(n)-.15 E F0
+5.147(.T)C(he)-5.147 E F1(wor)2.647 E(d)-.37 E F0 .147(is e)2.647 F .146
+(xpanded to produce a pattern just as in pathname)-.15 F -.15(ex)144 516
+S .458(pansion, and matched ag).15 F .458(ainst the e)-.05 F .458
+(xpanded v)-.15 F .458(alue of)-.25 F F1(par)4.209 E(ameter)-.15 E F0
+.459(using the rules described under)3.689 F F2 -.1(Pa)144 528 S(tter).1
+E 4.593(nM)-.15 G(atching)-4.593 E F0(belo)4.593 E 5.892 -.65(w. I)-.25
+H 4.592(ft).65 G 2.092(he pattern matches a trailing portion of the e)
+-4.592 F 2.092(xpanded v)-.15 F 2.092(alue of)-.25 F F1(par)144 540 Q
+(ameter)-.15 E F0 3.15(,t).73 G .65(hen the result of the e)-3.15 F .65
+(xpansion is the e)-.15 F .65(xpanded v)-.15 F .65(alue of)-.25 F F1
 (par)4.4 E(ameter)-.15 E F0 .65(with the shortest)3.88 F 1.085
-(matching pattern \(the `)144 446.4 R(`)-.74 E F1(%)A F0 2.565 -.74
-('' c)D 1.084(ase\) or the longest matching pattern \(the `).74 F(`)-.74
-E F1(%%)A F0 2.564 -.74('' c)D 1.084(ase\) deleted.).74 F(If)6.084 E F2
-(par)145.25 458.4 Q(ameter)-.15 E F0(is)3.389 E F1(@)2.659 E F0(or)2.659
-E F1(*)2.659 E F0 2.659(,t)C .159(he pattern remo)-2.659 F -.25(va)-.15
-2.659(lo).25 G .16
+(matching pattern \(the `)144 552 R(`)-.74 E F2(%)A F0 2.565 -.74('' c)D
+1.084(ase\) or the longest matching pattern \(the `).74 F(`)-.74 E F2
+(%%)A F0 2.564 -.74('' c)D 1.084(ase\) deleted.).74 F(If)6.084 E F1(par)
+145.25 564 Q(ameter)-.15 E F0(is)3.389 E F2(@)2.659 E F0(or)2.659 E F2
+(*)2.659 E F0 2.659(,t)C .159(he pattern remo)-2.659 F -.25(va)-.15 G
+2.659(lo).25 G .16
 (peration is applied to each positional parameter in turn,)-2.659 F .51
-(and the e)144 470.4 R .51(xpansion is the resultant list.)-.15 F(If)
-5.51 E F2(par)4.259 E(ameter)-.15 E F0 .509(is an array v)3.739 F .509
-(ariable subscripted with)-.25 F F1(@)3.009 E F0(or)3.009 E F1(*)3.009 E
-F0(,)A .422(the pattern remo)144 482.4 R -.25(va)-.15 G 2.922(lo).25 G
+(and the e)144 576 R .51(xpansion is the resultant list.)-.15 F(If)5.51
+E F1(par)4.259 E(ameter)-.15 E F0 .509(is an array v)3.739 F .509
+(ariable subscripted with)-.25 F F2(@)3.009 E F0(or)3.009 E F2(*)3.009 E
+F0(,)A .422(the pattern remo)144 588 R -.25(va)-.15 G 2.922(lo).25 G
 .422(peration is applied to each member of the array in turn, and the e)
--2.922 F .423(xpansion is)-.15 F(the resultant list.)144 494.4 Q(${)108
-511.2 Q F2(par)A(ameter)-.15 E F1(/)A F2(pattern)A F1(/)A F2(string)A F0
-(})A F1 -.1(Pa)144 523.2 S(tter).1 E 3.607(ns)-.15 G(ubstitution)-3.607
-E F0 6.107(.T)C(he)-6.107 E F2(pattern)3.607 E F0 1.107(is e)3.607 F
+-2.922 F .423(xpansion is)-.15 F(the resultant list.)144 600 Q(${)108
+616.8 Q F1(par)A(ameter)-.15 E F2(/)A F1(pattern)A F2(/)A F1(string)A F0
+(})A F2 -.1(Pa)144 628.8 S(tter).1 E 3.607(ns)-.15 G(ubstitution)-3.607
+E F0 6.107(.T)C(he)-6.107 E F1(pattern)3.607 E F0 1.107(is e)3.607 F
 1.106(xpanded to produce a pattern just as in pathname e)-.15 F(xpan-)
--.15 E(sion,)144 535.2 Q F2 -.8(Pa)3.7 G -.15(ra).8 G(meter).15 E F0 1.2
-(is e)3.7 F 1.2(xpanded and the longest match of)-.15 F F2(pattern)3.7 E
-F0(ag)3.7 E 1.2(ainst its v)-.05 F 1.2(alue is replaced with)-.25 F F2
-(string)144 547.2 Q F0 5.397(.T)C .397
-(he match is performed using the rules described under)-5.397 F F1 -.1
+-.15 E(sion,)144 640.8 Q F1 -.8(Pa)3.7 G -.15(ra).8 G(meter).15 E F0 1.2
+(is e)3.7 F 1.2(xpanded and the longest match of)-.15 F F1(pattern)3.7 E
+F0(ag)3.7 E 1.2(ainst its v)-.05 F 1.2(alue is replaced with)-.25 F F1
+(string)144 652.8 Q F0 5.397(.T)C .397
+(he match is performed using the rules described under)-5.397 F F2 -.1
 (Pa)2.896 G(tter).1 E 2.896(nM)-.15 G(atching)-2.896 E F0(belo)2.896 E
-4.196 -.65(w. I)-.25 H(f).65 E F2(pat-)2.896 E(tern)144 559.2 Q F0(be)
-2.569 E .069(gins with)-.15 F F1(/)2.569 E F0 2.569(,a)C .069
-(ll matches of)-2.569 F F2(pattern)2.569 E F0 .069(are replaced with)
-2.569 F F2(string)2.57 E F0 5.07(.N)C .07
-(ormally only the \214rst match is)-5.07 F 2.58(replaced. If)144 571.2 R
-F2(pattern)2.58 E F0(be)2.58 E .08(gins with)-.15 F F1(#)2.58 E F0 2.58
+4.196 -.65(w. I)-.25 H(f).65 E F1(pat-)2.896 E(tern)144 664.8 Q F0(be)
+2.569 E .069(gins with)-.15 F F2(/)2.569 E F0 2.569(,a)C .069
+(ll matches of)-2.569 F F1(pattern)2.569 E F0 .069(are replaced with)
+2.569 F F1(string)2.57 E F0 5.07(.N)C .07
+(ormally only the \214rst match is)-5.07 F 2.58(replaced. If)144 676.8 R
+F1(pattern)2.58 E F0(be)2.58 E .08(gins with)-.15 F F2(#)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 583.2 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
+(ginning of the e)-.15 F .079(xpanded v)-.15 F .079(alue of)-.25 F F1
+(par)2.579 E(am-)-.15 E(eter)144 688.8 Q F0 5.761(.I)C(f)-5.761 E F1
+(pattern)3.261 E F0(be)3.261 E .761(gins with)-.15 F F2(%)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 595.2 Q F0 .958
-(is null, matches of)3.458 F F2(pattern)3.458 E F0 .958
-(are deleted and the)3.458 F F1(/)3.458 E F0(follo)3.458 E(wing)-.25 E
-F2(pattern)3.457 E F0 .957(may be omitted.)3.457 F .957(If the)5.957 F
-F1(nocasematch)144 607.2 Q F0 .492
+.761(xpanded v)-.15 F .761(alue of)-.25 F F1(par)3.262 E(ameter)-.15 E
+F0 5.762(.I)C(f)-5.762 E F1(string)144 700.8 Q F0 .958
+(is null, matches of)3.458 F F1(pattern)3.458 E F0 .958
+(are deleted and the)3.458 F F2(/)3.458 E F0(follo)3.458 E(wing)-.25 E
+F1(pattern)3.457 E F0 .957(may be omitted.)3.457 F .957(If the)5.957 F
+F2(nocasematch)144 712.8 Q F0 .492
 (shell option is enabled, the match is performed without re)2.992 F -.05
 (ga)-.15 G .492(rd to the case of alpha-).05 F .884(betic characters.)
-144 619.2 R(If)5.884 E F2(par)4.634 E(ameter)-.15 E F0(is)4.114 E F1(@)
-3.384 E F0(or)3.383 E F1(*)3.383 E F0 3.383(,t)C .883
-(he substitution operation is applied to each positional)-3.383 F 1.002
-(parameter in turn, and the e)144 631.2 R 1.002
-(xpansion is the resultant list.)-.15 F(If)6.002 E F2(par)4.752 E
-(ameter)-.15 E F0 1.002(is an array v)4.232 F 1.002(ariable sub-)-.25 F
-.159(scripted with)144 643.2 R F1(@)2.659 E F0(or)2.659 E F1(*)2.659 E
-F0 2.659(,t)C .159(he substitution operation is applied to each member \
-of the array in turn, and)-2.659 F(the e)144 655.2 Q
-(xpansion is the resultant list.)-.15 E(${)108 672 Q F2(par)A(ameter)
--.15 E F1(^)A F2(pattern)A F0(})A(${)108 684 Q F2(par)A(ameter)-.15 E F1
-(^^)A F2(pattern)A F0(})A(${)108 696 Q F2(par)A(ameter)-.15 E F1(,)A F2
-(pattern)A F0(})A(GNU Bash 5.0)72 768 Q(2018 March 15)144.29 E(23)193.45
-E 0 Cg EP
+144 724.8 R(If)5.884 E F1(par)4.634 E(ameter)-.15 E F0(is)4.114 E F2(@)
+3.384 E F0(or)3.383 E F2(*)3.383 E F0 3.383(,t)C .883
+(he substitution operation is applied to each positional)-3.383 F
+(GNU Bash 5.0)72 768 Q(2018 August 7)145.395 E(23)194.555 E 0 Cg EP
 %%Page: 24 24
 %%BeginPageSetup
 BP
 %%EndPageSetup
 /F0 10/Times-Roman@0 SF -.35(BA)72 48 S 137.14(SH\(1\) General).35 F
-(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E(${)108 84 Q/F1 10
-/Times-Italic@0 SF(par)A(ameter)-.15 E/F2 10/Times-Bold@0 SF(,,)A F1
-(pattern)A F0(})A F2 .437(Case modi\214cation)144 96 R F0 5.437(.T)C
-.437(his e)-5.437 F .438
+(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E 1.002
+(parameter in turn, and the e)144 84 R 1.002
+(xpansion is the resultant list.)-.15 F(If)6.002 E/F1 10/Times-Italic@0
+SF(par)4.752 E(ameter)-.15 E F0 1.002(is an array v)4.232 F 1.002
+(ariable sub-)-.25 F .159(scripted with)144 96 R/F2 10/Times-Bold@0 SF
+(@)2.659 E F0(or)2.659 E F2(*)2.659 E F0 2.659(,t)C .159(he substitutio\
+n operation is applied to each member of the array in turn, and)-2.659 F
+(the e)144 108 Q(xpansion is the resultant list.)-.15 E(${)108 124.8 Q
+F1(par)A(ameter)-.15 E F2(^)A F1(pattern)A F0(})A(${)108 136.8 Q F1(par)
+A(ameter)-.15 E F2(^^)A F1(pattern)A F0(})A(${)108 148.8 Q F1(par)A
+(ameter)-.15 E F2(,)A F1(pattern)A F0(})A(${)108 160.8 Q F1(par)A
+(ameter)-.15 E F2(,,)A F1(pattern)A F0(})A F2 .437(Case modi\214cation)
+144 172.8 R F0 5.437(.T)C .437(his e)-5.437 F .438
 (xpansion modi\214es the case of alphabetic characters in)-.15 F F1(par)
-2.938 E(ameter)-.15 E F0 5.438(.T)C(he)-5.438 E F1(pattern)144 108 Q F0
-1.407(is e)3.907 F 1.407
+2.938 E(ameter)-.15 E F0 5.438(.T)C(he)-5.438 E F1(pattern)144 184.8 Q
+F0 1.407(is e)3.907 F 1.407
 (xpanded to produce a pattern just as in pathname e)-.15 F 3.906
-(xpansion. Each)-.15 F 1.406(character in the)3.906 F -.15(ex)144 120 S
-1.231(panded v).15 F 1.231(alue of)-.25 F F1(par)3.732 E(ameter)-.15 E
+(xpansion. Each)-.15 F 1.406(character in the)3.906 F -.15(ex)144 196.8
+1.231(panded v).15 F 1.231(alue of)-.25 F F1(par)3.732 E(ameter)-.15 E
 F0 1.232(is tested ag)3.732 F(ainst)-.05 E F1(pattern)3.732 E F0 3.732
 (,a)C 1.232(nd, if it matches the pattern, its case is)-3.732 F(con)144
-132 Q -.15(ve)-.4 G 2.924(rted. The).15 F .424
+208.8 Q -.15(ve)-.4 G 2.924(rted. The).15 F .424
 (pattern should not attempt to match more than one character)2.924 F
 5.424(.T)-.55 G(he)-5.424 E F2(^)2.924 E F0 .424(operator con-)2.924 F
--.15(ve)144 144 S .61(rts lo).15 F .61(wercase letters matching)-.25 F
+-.15(ve)144 220.8 S .61(rts lo).15 F .61(wercase letters matching)-.25 F
 F1(pattern)3.11 E F0 .61(to uppercase; the)3.11 F F2(,)3.11 E F0 .61
 (operator con)3.11 F -.15(ve)-.4 G .61(rts matching uppercase).15 F
-1.548(letters to lo)144 156 R 4.047(wercase. The)-.25 F F2(^^)4.047 E F0
-(and)4.047 E F2(,,)4.047 E F0 -.15(ex)4.047 G 1.547(pansions con).15 F
+1.548(letters to lo)144 232.8 R 4.047(wercase. The)-.25 F F2(^^)4.047 E
+F0(and)4.047 E F2(,,)4.047 E F0 -.15(ex)4.047 G 1.547(pansions con).15 F
 -.15(ve)-.4 G 1.547(rt each matched character in the e).15 F(xpanded)
--.15 E -.25(va)144 168 S .633(lue; the).25 F F2(^)3.133 E F0(and)3.133 E
-F2(,)3.133 E F0 -.15(ex)3.133 G .633(pansions match and con).15 F -.15
+-.15 E -.25(va)144 244.8 S .633(lue; the).25 F F2(^)3.133 E F0(and)3.133
+F2(,)3.133 E F0 -.15(ex)3.133 G .633(pansions match and con).15 F -.15
 (ve)-.4 G .634(rt only the \214rst character in the e).15 F .634
-(xpanded v)-.15 F 3.134(alue. If)-.25 F F1(pattern)144 180 Q F0 .78
+(xpanded v)-.15 F 3.134(alue. If)-.25 F F1(pattern)144 256.8 Q F0 .78
 (is omitted, it is treated lik)3.28 F 3.28(ea)-.1 G F2(?)A F0 3.28(,w)C
 .78(hich matches e)-3.28 F -.15(ve)-.25 G .78(ry character).15 F 5.78
 (.I)-.55 G(f)-5.78 E F1(par)4.53 E(ameter)-.15 E F0(is)4.01 E F2(@)3.28
 E F0(or)3.28 E F2(*)3.28 E F0(,)A .582(the case modi\214cation operatio\
-n is applied to each positional parameter in turn, and the e)144 192 R
-(xpansion)-.15 E .469(is the resultant list.)144 204 R(If)5.469 E F1
+n is applied to each positional parameter in turn, and the e)144 268.8 R
+(xpansion)-.15 E .469(is the resultant list.)144 280.8 R(If)5.469 E F1
 (par)4.218 E(ameter)-.15 E F0 .468(is an array v)3.698 F .468
 (ariable subscripted with)-.25 F F2(@)2.968 E F0(or)2.968 E F2(*)2.968 E
 F0 2.968(,t)C .468(he case modi\214ca-)-2.968 F(tion operation is appli\
-ed to each member of the array in turn, and the e)144 216 Q
-(xpansion is the resultant list.)-.15 E(${)108 232.8 Q F1(par)A(ameter)
--.15 E F2(@)A F1(oper)A(ator)-.15 E F0(})A F2 -.1(Pa)144 244.8 S .86
+ed to each member of the array in turn, and the e)144 292.8 Q
+(xpansion is the resultant list.)-.15 E(${)108 309.6 Q F1(par)A(ameter)
+-.15 E F2(@)A F1(oper)A(ator)-.15 E F0(})A F2 -.1(Pa)144 321.6 S .86
 (rameter transf).1 F(ormation)-.25 E F0 5.86(.T)C .86(he e)-5.86 F .86
 (xpansion is either a transformation of the v)-.15 F .86(alue of)-.25 F
-F1(par)3.36 E(ameter)-.15 E F0 .154(or information about)144 256.8 R F1
+F1(par)3.36 E(ameter)-.15 E F0 .154(or information about)144 333.6 R F1
 (par)2.654 E(ameter)-.15 E F0 .153(itself, depending on the v)2.654 F
 .153(alue of)-.25 F F1(oper)2.653 E(ator)-.15 E F0 5.153(.E)C(ach)-5.153
 E F1(oper)2.653 E(ator)-.15 E F0 .153(is a sin-)2.653 F(gle letter:)144
-268.8 Q F2(Q)144 292.8 Q F0 1.064(The e)180 292.8 R 1.064
+345.6 Q F2(Q)144 369.6 Q F0 1.064(The e)180 369.6 R 1.064
 (xpansion is a string that is the v)-.15 F 1.065(alue of)-.25 F F1(par)
 3.565 E(ameter)-.15 E F0 1.065(quoted in a format that can be)3.565 F
-(reused as input.)180 304.8 Q F2(E)144 316.8 Q F0 .441(The e)180 316.8 R
+(reused as input.)180 381.6 Q F2(E)144 393.6 Q F0 .441(The e)180 393.6 R
 .441(xpansion is a string that is the v)-.15 F .441(alue of)-.25 F F1
 (par)2.941 E(ameter)-.15 E F0 .44(with backslash escape sequences)2.94 F
--.15(ex)180 328.8 S(panded as with the).15 E F2($'...)2.5 E(')-.55 E F0
-(quoting mechanism.)2.5 E F2(P)144 340.8 Q F0 1.072(The e)180 340.8 R
+-.15(ex)180 405.6 S(panded as with the).15 E F2($'...)2.5 E(')-.55 E F0
+(quoting mechanism.)2.5 E F2(P)144 417.6 Q F0 1.072(The e)180 417.6 R
 1.073(xpansion is a string that is the result of e)-.15 F 1.073
 (xpanding the v)-.15 F 1.073(alue of)-.25 F F1(par)3.573 E(ameter)-.15 E
-F0 1.073(as if it)3.573 F(were a prompt string \(see)180 352.8 Q F2(PR)
-2.5 E(OMPTING)-.3 E F0(belo)2.5 E(w\).)-.25 E F2(A)144 364.8 Q F0 1.138
-(The e)180 364.8 R 1.138
+F0 1.073(as if it)3.573 F(were a prompt string \(see)180 429.6 Q F2(PR)
+2.5 E(OMPTING)-.3 E F0(belo)2.5 E(w\).)-.25 E F2(A)144 441.6 Q F0 1.138
+(The e)180 441.6 R 1.138
 (xpansion is a string in the form of an assignment statement or)-.15 F
-F2(declar)3.637 E(e)-.18 E F0(command)3.637 E(that, if e)180 376.8 Q
+F2(declar)3.637 E(e)-.18 E F0(command)3.637 E(that, if e)180 453.6 Q
 -.25(va)-.25 G(luated, will recreate).25 E F1(par)2.5 E(ameter)-.15 E F0
-(with its attrib)2.5 E(utes and v)-.2 E(alue.)-.25 E F2(a)144 388.8 Q F0
-(The e)180 388.8 Q(xpansion is a string consisting of \215ag v)-.15 E
+(with its attrib)2.5 E(utes and v)-.2 E(alue.)-.25 E F2(a)144 465.6 Q F0
+(The e)180 465.6 Q(xpansion is a string consisting of \215ag v)-.15 E
 (alues representing)-.25 E F1(par)2.5 E(ameter)-.15 E F0 1.1 -.55('s a)D
-(ttrib).55 E(utes.)-.2 E(If)144 405.6 Q F1(par)5.33 E(ameter)-.15 E F0
+(ttrib).55 E(utes.)-.2 E(If)144 482.4 Q F1(par)5.33 E(ameter)-.15 E F0
 (is)4.81 E F2(@)4.08 E F0(or)4.08 E F2(*)4.08 E F0 4.08(,t)C 1.581
 (he operation is applied to each positional parameter in turn, and the)
--4.08 F -.15(ex)144 417.6 S .13(pansion is the resultant list.).15 F(If)
+-4.08 F -.15(ex)144 494.4 S .13(pansion is the resultant list.).15 F(If)
 5.13 E F1(par)3.88 E(ameter)-.15 E F0 .129(is an array v)3.36 F .129
 (ariable subscripted with)-.25 F F2(@)2.629 E F0(or)2.629 E F2(*)2.629 E
 F0 2.629(,t)C .129(he oper)-2.629 F(-)-.2 E
 (ation is applied to each member of the array in turn, and the e)144
-429.6 Q(xpansion is the resultant list.)-.15 E 1.849
-(The result of the e)144 453.6 R 1.849(xpansion is subject to w)-.15 F
+506.4 Q(xpansion is the resultant list.)-.15 E 1.849
+(The result of the e)144 530.4 R 1.849(xpansion is subject to w)-.15 F
 1.849(ord splitting and pathname e)-.1 F 1.85(xpansion as described)-.15
-F(belo)144 465.6 Q -.65(w.)-.25 G F2(Command Substitution)87 482.4 Q F1
-1.698(Command substitution)108 494.4 R F0(allo)4.198 E 1.697
+F(belo)144 542.4 Q -.65(w.)-.25 G F2(Command Substitution)87 559.2 Q F1
+1.698(Command substitution)108 571.2 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 506.4 Q F2($\()144 523.2 Q F1
-(command)A F2(\))1.666 E F0(or)108 535.2 Q F2<92>144 547.2 Q F1(command)
-A F2<92>A(Bash)108 564 Q F0 .088(performs the e)2.588 F .088
+(There are tw)6.697 F(o)-.1 E(forms:)108 583.2 Q F2($\()144 600 Q F1
+(command)A F2(\))1.666 E F0(or)108 612 Q F2<92>144 624 Q F1(command)A F2
+<92>A(Bash)108 640.8 Q F0 .088(performs the e)2.588 F .088
 (xpansion by e)-.15 F -.15(xe)-.15 G(cuting).15 E F1(command)2.588 E F0
 .089(in a subshell en)2.589 F .089(vironment and replacing the command)
 -.4 F .41(substitution with the standard output of the command, with an)
-108 576 R 2.91(yt)-.15 G .41(railing ne)-2.91 F .41(wlines deleted.)-.25
-F .41(Embedded ne)5.41 F(w-)-.25 E .191(lines are not deleted, b)108 588
-R .192(ut the)-.2 F 2.692(ym)-.15 G .192(ay be remo)-2.692 F -.15(ve)
--.15 G 2.692(dd).15 G .192(uring w)-2.692 F .192(ord splitting.)-.1 F
-.192(The command substitution)5.192 F F2($\(cat)2.692 E F1(\214le)2.692
-E F2(\))A F0(can be replaced by the equi)108 600 Q -.25(va)-.25 G
-(lent b).25 E(ut f)-.2 E(aster)-.1 E F2($\(<)2.5 E F1(\214le)2.5 E F2
+108 652.8 R 2.91(yt)-.15 G .41(railing ne)-2.91 F .41(wlines deleted.)
+-.25 F .41(Embedded ne)5.41 F(w-)-.25 E .191(lines are not deleted, b)
+108 664.8 R .192(ut the)-.2 F 2.692(ym)-.15 G .192(ay be remo)-2.692 F
+-.15(ve)-.15 G 2.692(dd).15 G .192(uring w)-2.692 F .192(ord splitting.)
+-.1 F .192(The command substitution)5.192 F F2($\(cat)2.692 E F1(\214le)
+2.692 E F2(\))A F0(can be replaced by the equi)108 676.8 Q -.25(va)-.25
+G(lent b).25 E(ut f)-.2 E(aster)-.1 E F2($\(<)2.5 E F1(\214le)2.5 E F2
 (\))A F0(.)A 1.724(When the old-style backquote form of substitution is\
- used, backslash retains its literal meaning e)108 616.8 R(xcept)-.15 E
-.314(when follo)108 628.8 R .314(wed by)-.25 F F2($)2.814 E F0(,)A F2
+ used, backslash retains its literal meaning e)108 693.6 R(xcept)-.15 E
+.314(when follo)108 705.6 R .314(wed by)-.25 F F2($)2.814 E F0(,)A F2
 <92>2.814 E F0 2.814(,o)C(r)-2.814 E F2(\\)2.814 E F0 5.314(.T)C .315(h\
 e \214rst backquote not preceded by a backslash terminates the command \
-sub-)-5.314 F 3.887(stitution. When)108 640.8 R 1.387(using the $\()
+sub-)-5.314 F 3.887(stitution. When)108 717.6 R 1.387(using the $\()
 3.887 F F1(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
-(mand; none are treated specially)108 652.8 Q(.)-.65 E .894
-(Command substitutions may be nested.)108 669.6 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 681.6 Q .422
-(If the substitution appears within double quotes, w)108 698.4 R .422
-(ord splitting and pathname e)-.1 F .422(xpansion are not performed)-.15
-F(on the results.)108 710.4 Q(GNU Bash 5.0)72 768 Q(2018 March 15)144.29
-E(24)193.45 E 0 Cg EP
+(mand; none are treated specially)108 729.6 Q(.)-.65 E(GNU Bash 5.0)72
+768 Q(2018 August 7)145.395 E(24)194.555 E 0 Cg EP
 %%Page: 25 25
 %%BeginPageSetup
 BP
 %%EndPageSetup
 /F0 10/Times-Roman@0 SF -.35(BA)72 48 S 137.14(SH\(1\) General).35 F
-(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E/F1 10/Times-Bold@0
-SF(Arithmetic Expansion)87 84 Q F0 1.034(Arithmetic e)108 96 R 1.034
+(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E .894
+(Command substitutions may be nested.)108 84 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 96 Q .422
+(If the substitution appears within double quotes, w)108 112.8 R .422
+(ord splitting and pathname e)-.1 F .422(xpansion are not performed)-.15
+F(on the results.)108 124.8 Q/F1 10/Times-Bold@0 SF
+(Arithmetic Expansion)87 141.6 Q F0 1.034(Arithmetic e)108 153.6 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
 (xpression and the substitution of the result.)-.15 F
-(The format for arithmetic e)108 108 Q(xpansion is:)-.15 E F1($\(\()144
-124.8 Q/F2 10/Times-Italic@0 SF -.2(ex)C(pr).2 E(ession)-.37 E F1(\)\))A
-F0(The)108 141.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
+(The format for arithmetic e)108 165.6 Q(xpansion is:)-.15 E F1($\(\()
+144 182.4 Q/F2 10/Times-Italic@0 SF -.2(ex)C(pr).2 E(ession)-.37 E F1
+(\)\))A F0(The)108 199.2 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 .23
-(treated specially)108 153.6 R 5.23(.A)-.65 G .23(ll tok)-5.23 F .231
+(treated specially)108 211.2 R 5.23(.A)-.65 G .23(ll tok)-5.23 F .231
 (ens in the e)-.1 F .231(xpression under)-.15 F .231(go parameter and v)
 -.18 F .231(ariable e)-.25 F .231(xpansion, command substi-)-.15 F 1.06
-(tution, and quote remo)108 165.6 R -.25(va)-.15 G 3.56(l. The).25 F
+(tution, and quote remo)108 223.2 R -.25(va)-.15 G 3.56(l. The).25 F
 1.059(result is treated as the arithmetic e)3.56 F 1.059
 (xpression to be e)-.15 F -.25(va)-.25 G 3.559(luated. Arithmetic).25 F
--.15(ex)108 177.6 S(pansions may be nested.).15 E 1.378(The e)108 194.4
--.25(va)-.25 G 1.378
+-.15(ex)108 235.2 S(pansions may be nested.).15 E 1.378(The e)108 252 R
+-.25(va)-.25 G 1.378
 (luation is performed according to the rules listed belo).25 F 3.878(wu)
 -.25 G(nder)-3.878 E/F3 9/Times-Bold@0 SF 1.378(ARITHMETIC EV)3.878 F
 (ALU)-1.215 E -.855(AT)-.54 G(ION).855 E/F4 9/Times-Roman@0 SF(.)A F0
-(If)5.879 E F2 -.2(ex)108 206.4 S(pr).2 E(ession)-.37 E F0(is in)2.74 E
+(If)5.879 E F2 -.2(ex)108 264 S(pr).2 E(ession)-.37 E F0(is in)2.74 E
 -.25(va)-.4 G(lid,).25 E F1(bash)2.5 E F0(prints a message indicating f)
-2.5 E(ailure and no substitution occurs.)-.1 E F1(Pr)87 223.2 Q
-(ocess Substitution)-.18 E F2(Pr)108 235.2 Q .405(ocess substitution)
+2.5 E(ailure and no substitution occurs.)-.1 E F1(Pr)87 280.8 Q
+(ocess Substitution)-.18 E F2(Pr)108 292.8 Q .405(ocess substitution)
 -.45 F F0(allo)2.905 E .405(ws a process')-.25 F 2.905(si)-.55 G .405
 (nput or output to be referred to using a \214lename.)-2.905 F .405
-(It tak)5.405 F .405(es the form)-.1 F(of)108 247.2 Q F1(<\()3.25 E F2
+(It tak)5.405 F .405(es the form)-.1 F(of)108 304.8 Q F1(<\()3.25 E F2
 (list)A F1(\)).833 E F0(or)3.25 E F1(>\()3.25 E F2(list)A F1(\)).833 E
 F0 5.75(.T)C .751(he process)-5.75 F F2(list)3.251 E F0 .751
 (is run asynchronously)3.251 F 3.251(,a)-.65 G .751
 (nd its input or output appears as a \214lename.)-3.251 F .148
-(This \214lename is passed as an ar)108 259.2 R .148
+(This \214lename is passed as an ar)108 316.8 R .148
 (gument to the current command as the result of the e)-.18 F 2.647
 (xpansion. If)-.15 F(the)2.647 E F1(>\()2.647 E F2(list)A F1(\)).833 E
-F0 .559(form is used, writing to the \214le will pro)108 271.2 R .559
+F0 .559(form is used, writing to the \214le will pro)108 328.8 R .559
 (vide input for)-.15 F F2(list)3.059 E F0 5.559(.I)C 3.059(ft)-5.559 G
 (he)-3.059 E F1(<\()3.06 E F2(list)A F1(\)).833 E F0 .56
-(form is used, the \214le passed as an)3.06 F(ar)108 283.2 Q .309
+(form is used, the \214le passed as an)3.06 F(ar)108 340.8 Q .309
 (gument should be read to obtain the output of)-.18 F F2(list)2.808 E F0
 5.308(.P)C .308(rocess substitution is supported on systems that sup-)
--5.308 F(port named pipes \()108 295.2 Q F2(FIFOs)A F0 2.5(\)o)C 2.5(rt)
+-5.308 F(port named pipes \()108 352.8 Q F2(FIFOs)A F0 2.5(\)o)C 2.5(rt)
 -2.5 G(he)-2.5 E F1(/de)2.5 E(v/fd)-.15 E F0
-(method of naming open \214les.)2.5 E .896(When a)108 312 R -.25(va)-.2
-G .896(ilable, process substitution is performed simultaneously with pa\
-rameter and v).25 F .897(ariable e)-.25 F(xpansion,)-.15 E
-(command substitution, and arithmetic e)108 324 Q(xpansion.)-.15 E F1
--.75(Wo)87 340.8 S(rd Splitting).75 E F0 1.143
-(The shell scans the results of parameter e)108 352.8 R 1.142
+(method of naming open \214les.)2.5 E .896(When a)108 369.6 R -.25(va)
+-.2 G .896(ilable, process substitution is performed simultaneously wit\
+h parameter and v).25 F .897(ariable e)-.25 F(xpansion,)-.15 E
+(command substitution, and arithmetic e)108 381.6 Q(xpansion.)-.15 E F1
+-.75(Wo)87 398.4 S(rd Splitting).75 E F0 1.143
+(The shell scans the results of parameter e)108 410.4 R 1.142
 (xpansion, command substitution, and arithmetic e)-.15 F 1.142
-(xpansion that)-.15 F(did not occur within double quotes for)108 364.8 Q
+(xpansion that)-.15 F(did not occur within double quotes for)108 422.4 Q
 F2(wor)2.5 E 2.5(ds)-.37 G(plitting)-2.5 E F0(.).22 E .063
-(The shell treats each character of)108 381.6 R F3(IFS)2.563 E F0 .063
+(The shell treats each character of)108 439.2 R F3(IFS)2.563 E F0 .063
 (as a delimiter)2.313 F 2.563(,a)-.4 G .063
 (nd splits the results of the other e)-2.563 F .063(xpansions into w)
 -.15 F(ords)-.1 E .207(using these characters as \214eld terminators.)
-108 393.6 R(If)5.207 E F3(IFS)2.707 E F0 .207(is unset, or its v)2.457 F
+108 451.2 R(If)5.207 E F3(IFS)2.707 E F0 .207(is unset, or its v)2.457 F
 .207(alue is e)-.25 F(xactly)-.15 E F1(<space><tab><newline>)2.707 E F0
-(,)A .836(the def)108 405.6 R .836(ault, then sequences of)-.1 F F1
+(,)A .836(the def)108 463.2 R .836(ault, then sequences of)-.1 F F1
 (<space>)3.336 E F0(,)A F1(<tab>)3.336 E F0 3.336(,a)C(nd)-3.336 E F1
 (<newline>)3.336 E F0 .837(at the be)3.336 F .837
-(ginning and end of the results of)-.15 F .346(the pre)108 417.6 R .345
+(ginning and end of the results of)-.15 F .346(the pre)108 475.2 R .345
 (vious e)-.25 F .345(xpansions are ignored, and an)-.15 F 2.845(ys)-.15
 G .345(equence of)-2.845 F F3(IFS)2.845 E F0 .345
 (characters not at the be)2.595 F .345(ginning or end serv)-.15 F(es)
--.15 E 1.236(to delimit w)108 429.6 R 3.736(ords. If)-.1 F F3(IFS)3.736
+-.15 E 1.236(to delimit w)108 487.2 R 3.736(ords. If)-.1 F F3(IFS)3.736
 E F0 1.236(has a v)3.486 F 1.236(alue other than the def)-.25 F 1.237
 (ault, then sequences of the whitespace characters)-.1 F F1(space)108
-441.6 Q F0(,)A F1(tab)2.507 E F0 2.507(,a)C(nd)-2.507 E F1(newline)2.507
+499.2 Q F0(,)A F1(tab)2.507 E F0 2.507(,a)C(nd)-2.507 E F1(newline)2.507
 E F0 .007(are ignored at the be)2.507 F .006(ginning and end of the w)
 -.15 F .006(ord, as long as the whitespace charac-)-.1 F .92
-(ter is in the v)108 453.6 R .92(alue of)-.25 F F3(IFS)3.42 E F0(\(an)
+(ter is in the v)108 511.2 R .92(alue of)-.25 F F3(IFS)3.42 E F0(\(an)
 3.17 E F3(IFS)3.42 E F0 .92(whitespace character\).)3.17 F(An)5.92 E
 3.42(yc)-.15 G .92(haracter in)-3.42 F F3(IFS)3.42 E F0 .921
 (that is not)3.17 F F3(IFS)3.421 E F0(whitespace,)3.171 E .429
-(along with an)108 465.6 R 2.928(ya)-.15 G(djacent)-2.928 E F3(IFS)2.928
+(along with an)108 523.2 R 2.928(ya)-.15 G(djacent)-2.928 E F3(IFS)2.928
 E F0 .428(whitespace characters, delimits a \214eld.)2.678 F 2.928(As)
 5.428 G .428(equence of)-2.928 F F3(IFS)2.928 E F0 .428
 (whitespace charac-)2.678 F(ters is also treated as a delimiter)108
-477.6 Q 5(.I)-.55 G 2.5(ft)-5 G(he v)-2.5 E(alue of)-.25 E F3(IFS)2.5 E
+535.2 Q 5(.I)-.55 G 2.5(ft)-5 G(he v)-2.5 E(alue of)-.25 E F3(IFS)2.5 E
 F0(is null, no w)2.25 E(ord splitting occurs.)-.1 E 1.927
-(Explicit null ar)108 494.4 R 1.927(guments \()-.18 F F1 .833("").833 G
-F0(or)3.594 E F1 .833<0808>5.26 G F0 4.427(\)a)C 1.927
+(Explicit null ar)108 552 R 1.927(guments \()-.18 F F1 .833("").833 G F0
+(or)3.594 E F1 .833<0808>5.26 G F0 4.427(\)a)C 1.927
 (re retained and passed to commands as empty strings.)-4.427 F(Unquoted)
-6.927 E .485(implicit null ar)108 506.4 R .485
+6.927 E .485(implicit null ar)108 564 R .485
 (guments, resulting from the e)-.18 F .484
 (xpansion of parameters that ha)-.15 F .784 -.15(ve n)-.2 H 2.984(ov).15
 G .484(alues, are remo)-3.234 F -.15(ve)-.15 G 2.984(d. If).15 F(a)2.984
-E 1.571(parameter with no v)108 518.4 R 1.571(alue is e)-.25 F 1.571
+E 1.571(parameter with no v)108 576 R 1.571(alue is e)-.25 F 1.571
 (xpanded within double quotes, a null ar)-.15 F 1.572
 (gument results and is retained and)-.18 F .724
-(passed to a command as an empty string.)108 530.4 R .724
+(passed to a command as an empty string.)108 588 R .724
 (When a quoted null ar)5.724 F .723(gument appears as part of a w)-.18 F
-.723(ord whose)-.1 F -.15(ex)108 542.4 S .175
+.723(ord whose)-.1 F -.15(ex)108 600 S .175
 (pansion is non-null, the null ar).15 F .176(gument is remo)-.18 F -.15
 (ve)-.15 G 2.676(d. That).15 F .176(is, the w)2.676 F(ord)-.1 E/F5 10
 /Courier@0 SF -5.167<ad64082008>2.676 F F0(becomes)2.676 E F5<ad64>2.676
-E F0 .176(after w)2.676 F .176(ord split-)-.1 F(ting and null ar)108
-554.4 Q(gument remo)-.18 E -.25(va)-.15 G(l.).25 E(Note that if no e)108
-571.2 Q(xpansion occurs, no splitting is performed.)-.15 E F1 -.1(Pa)87
-588 S(thname Expansion).1 E F0 .371(After w)108 600 R .371
+E F0 .176(after w)2.676 F .176(ord split-)-.1 F(ting and null ar)108 612
+Q(gument remo)-.18 E -.25(va)-.15 G(l.).25 E(Note that if no e)108 628.8
+Q(xpansion occurs, no splitting is performed.)-.15 E F1 -.1(Pa)87 645.6
+S(thname Expansion).1 E F0 .371(After w)108 657.6 R .371
 (ord splitting, unless the)-.1 F F1<ad66>2.871 E F0 .371
 (option has been set,)2.871 F F1(bash)2.871 E F0 .37(scans each w)2.87 F
 .37(ord for the characters)-.1 F F1(*)2.87 E F0(,)A F1(?)2.87 E F0 2.87
 (,a)C(nd)-2.87 E F1([)2.87 E F0(.)A .677
-(If one of these characters appears, then the w)108 612 R .677
+(If one of these characters appears, then the w)108 669.6 R .677
 (ord is re)-.1 F -.05(ga)-.15 G .677(rded as a).05 F F2(pattern)3.177 E
 F0 3.177(,a).24 G .678(nd replaced with an alphabeti-)-3.177 F .562
-(cally sorted list of \214lenames matching the pattern \(see)108 624 R
+(cally sorted list of \214lenames matching the pattern \(see)108 681.6 R
 F3 -.09(Pa)3.062 G(tter).09 E 2.812(nM)-.135 G(atching)-2.812 E F0(belo)
 2.812 E 3.062(w\). If)-.25 F .561(no matching \214lenames)3.061 F .008
-(are found, and the shell option)108 636 R F1(nullglob)2.508 E F0 .008
+(are found, and the shell option)108 693.6 R F1(nullglob)2.508 E F0 .008
 (is not enabled, the w)2.508 F .009(ord is left unchanged.)-.1 F .009
 (If the)5.009 F F1(nullglob)2.509 E F0 .009(option is)2.509 F .443
-(set, and no matches are found, the w)108 648 R .443(ord is remo)-.1 F
+(set, and no matches are found, the w)108 705.6 R .443(ord is remo)-.1 F
 -.15(ve)-.15 G 2.943(d. If).15 F(the)2.942 E F1(failglob)2.942 E F0 .442
 (shell option is set, and no matches are)2.942 F 1.38
-(found, an error message is printed and the command is not e)108 660 R
+(found, an error message is printed and the command is not e)108 717.6 R
 -.15(xe)-.15 G 3.88(cuted. If).15 F 1.38(the shell option)3.88 F F1
 (nocaseglob)3.88 E F0(is)3.88 E .104
-(enabled, the match is performed without re)108 672 R -.05(ga)-.15 G
+(enabled, the match is performed without re)108 729.6 R -.05(ga)-.15 G
 .104(rd to the case of alphabetic characters.).05 F .103
-(When a pattern is used)5.103 F .377(for pathname e)108 684 R .377
-(xpansion, the character)-.15 F F1 -.63(``)2.878 G -.55(.').63 G(')-.08
-E F0 .378(at the start of a name or immediately follo)5.378 F .378
-(wing a slash must be)-.25 F 1.354(matched e)108 696 R(xplicitly)-.15 E
+(When a pattern is used)5.103 F(GNU Bash 5.0)72 768 Q(2018 August 7)
+145.395 E(25)194.555 E 0 Cg EP
+%%Page: 26 26
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 137.14(SH\(1\) General).35 F
+(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E .377
+(for pathname e)108 84 R .377(xpansion, the character)-.15 F/F1 10
+/Times-Bold@0 SF -.63(``)2.878 G -.55(.').63 G(')-.08 E F0 .378
+(at the start of a name or immediately follo)5.378 F .378
+(wing a slash must be)-.25 F 1.354(matched e)108 96 R(xplicitly)-.15 E
 3.854(,u)-.65 G 1.354(nless the shell option)-3.854 F F1(dotglob)3.854 E
 F0 1.354(is set.)3.854 F 1.354(The \214lenames)6.354 F F1 -.63(``)3.854
 G -.55(.').63 G(')-.08 E F0(and)6.354 E F1 -.63(``)3.853 G(..).63 E -.63
 ('')-.55 G F0 1.353(must al)6.983 F -.1(wa)-.1 G 1.353(ys be).1 F .485
-(matched e)108 708 R(xplicitly)-.15 E 2.985(,e)-.65 G -.15(ve)-3.235 G
+(matched e)108 108 R(xplicitly)-.15 E 2.985(,e)-.65 G -.15(ve)-3.235 G
 2.985(ni).15 G(f)-2.985 E F1(dotglob)2.985 E F0 .485(is set.)2.985 F
 .485(In other cases, the)5.485 F F1 -.63(``)2.985 G -.55(.').63 G(')-.08
 E F0 .486(character is not treated specially)5.485 F 5.486(.W)-.65 G
 (hen)-5.486 E .115(matching a pathname, the slash character must al)108
-720 R -.1(wa)-.1 G .114(ys be matched e).1 F .114
-(xplicitly by a slash in the pattern, b)-.15 F .114(ut in)-.2 F
-(GNU Bash 5.0)72 768 Q(2018 March 15)144.29 E(25)193.45 E 0 Cg EP
-%%Page: 26 26
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 137.14(SH\(1\) General).35 F
-(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E .581
-(other matching conte)108 84 R .581
+120 R -.1(wa)-.1 G .114(ys be matched e).1 F .114
+(xplicitly by a slash in the pattern, b)-.15 F .114(ut in)-.2 F .581
+(other matching conte)108 132 R .581
 (xts it can be matched by a special pattern character as described belo)
--.15 F 3.081(wu)-.25 G(nder)-3.081 E/F1 9/Times-Bold@0 SF -.09(Pa)3.081
-G(tter).09 E(n)-.135 E(Matching)108 96 Q/F2 9/Times-Roman@0 SF(.)A F0
-.073(See the description of)4.573 F/F3 10/Times-Bold@0 SF(shopt)2.573 E
-F0(belo)2.573 E 2.573(wu)-.25 G(nder)-2.573 E F1 .072(SHELL B)2.572 F
-(UIL)-.09 E .072(TIN COMMANDS)-.828 F F0 .072(for a description of the)
-2.322 F F3(nocaseglob)108 108 Q F0(,)A F3(nullglob)2.5 E F0(,)A F3
-(failglob)2.5 E F0 2.5(,a)C(nd)-2.5 E F3(dotglob)2.5 E F0
-(shell options.)2.5 E(The)108 124.8 Q F1(GLOBIGNORE)2.63 E F0 .13
-(shell v)2.38 F .131
+-.15 F 3.081(wu)-.25 G(nder)-3.081 E/F2 9/Times-Bold@0 SF -.09(Pa)3.081
+G(tter).09 E(n)-.135 E(Matching)108 144 Q/F3 9/Times-Roman@0 SF(.)A F0
+.073(See the description of)4.573 F F1(shopt)2.573 E F0(belo)2.573 E
+2.573(wu)-.25 G(nder)-2.573 E F2 .072(SHELL B)2.572 F(UIL)-.09 E .072
+(TIN COMMANDS)-.828 F F0 .072(for a description of the)2.322 F F1
+(nocaseglob)108 156 Q F0(,)A F1(nullglob)2.5 E F0(,)A F1(failglob)2.5 E
+F0 2.5(,a)C(nd)-2.5 E F1(dotglob)2.5 E F0(shell options.)2.5 E(The)108
+172.8 Q F2(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/F4 10/Times-Italic@0 SF(pattern)2.631 E F0 5.131(.I).24 G(f)-5.131 E
-F1(GLO-)2.631 E(BIGNORE)108 136.8 Q F0 2.015(is set, each matching \214\
-le name that also matches one of the patterns in)4.265 F F1(GLOBIGNORE)
-4.515 E F0(is)4.264 E(remo)108 148.8 Q -.15(ve)-.15 G 3.914(df).15 G
-1.414(rom the list of matches.)-3.914 F 1.415(If the)6.415 F F3
+F2(GLO-)2.631 E(BIGNORE)108 184.8 Q F0 2.015(is set, each matching \214\
+le name that also matches one of the patterns in)4.265 F F2(GLOBIGNORE)
+4.515 E F0(is)4.264 E(remo)108 196.8 Q -.15(ve)-.15 G 3.914(df).15 G
+1.414(rom the list of matches.)-3.914 F 1.415(If the)6.415 F F1
 (nocaseglob)3.915 E F0 1.415(option is set, the matching ag)3.915 F
-1.415(ainst the patterns in)-.05 F F1(GLOBIGNORE)108 160.8 Q F0 .147
+1.415(ainst the patterns in)-.05 F F2(GLOBIGNORE)108 208.8 Q F0 .147
 (is performed without re)2.397 F -.05(ga)-.15 G .147(rd to case.).05 F
-.146(The \214lenames)5.146 F F3 -.63(``)2.646 G -.55(.').63 G(')-.08 E
-F0(and)5.146 E F3 -.63(``)2.646 G(..).63 E -.63('')-.55 G F0 .146
-(are al)5.776 F -.1(wa)-.1 G .146(ys ignored when).1 F F1(GLOBIGNORE)108
-172.8 Q F0 .827(is set and not null.)3.077 F(Ho)5.827 E(we)-.25 E -.15
-(ve)-.25 G 1.627 -.4(r, s).15 H(etting).4 E F1(GLOBIGNORE)3.327 E F0
+.146(The \214lenames)5.146 F F1 -.63(``)2.646 G -.55(.').63 G(')-.08 E
+F0(and)5.146 E F1 -.63(``)2.646 G(..).63 E -.63('')-.55 G F0 .146
+(are al)5.776 F -.1(wa)-.1 G .146(ys ignored when).1 F F2(GLOBIGNORE)108
+220.8 Q F0 .827(is set and not null.)3.077 F(Ho)5.827 E(we)-.25 E -.15
+(ve)-.25 G 1.627 -.4(r, s).15 H(etting).4 E F2(GLOBIGNORE)3.327 E F0
 .827(to a non-null v)3.077 F .827(alue has the ef)-.25 F .827(fect of)
--.25 F .683(enabling the)108 184.8 R F3(dotglob)3.183 E F0 .682
+-.25 F .683(enabling the)108 232.8 R F1(dotglob)3.183 E F0 .682
 (shell option, so all other \214lenames be)3.183 F .682(ginning with a)
--.15 F F3 -.63(``)3.182 G -.55(.').63 G(')-.08 E F0 .682(will match.)
-5.682 F 2.282 -.8(To g)5.682 H .682(et the old).8 F(beha)108 196.8 Q
+-.15 F F1 -.63(``)3.182 G -.55(.').63 G(')-.08 E F0 .682(will match.)
+5.682 F 2.282 -.8(To g)5.682 H .682(et the old).8 F(beha)108 244.8 Q
 1.184(vior of ignoring \214lenames be)-.2 F 1.184(ginning with a)-.15 F
-F3 -.63(``)3.684 G -.55(.').63 G(')-.08 E F0 3.684(,m)C(ak)-3.684 E(e)
--.1 E F3 -.63(``)3.684 G(.*').63 E(')-.63 E F0 1.185
-(one of the patterns in)6.185 F F1(GLOBIGNORE)3.685 E F2(.)A F0(The)108
-208.8 Q F3(dotglob)3.132 E F0 .632(option is disabled when)3.132 F F1
+F1 -.63(``)3.684 G -.55(.').63 G(')-.08 E F0 3.684(,m)C(ak)-3.684 E(e)
+-.1 E F1 -.63(``)3.684 G(.*').63 E(')-.63 E F0 1.185
+(one of the patterns in)6.185 F F2(GLOBIGNORE)3.685 E F3(.)A F0(The)108
+256.8 Q F1(dotglob)3.132 E F0 .632(option is disabled when)3.132 F F2
 (GLOBIGNORE)3.132 E F0 .632(is unset.)2.882 F .631
-(The pattern matching honors the setting of)5.632 F(the)108 220.8 Q F3
-(extglob)2.5 E F0(shell option.)2.5 E F3 -.1(Pa)108 237.6 S(tter).1 E
-2.5(nM)-.15 G(atching)-2.5 E F0(An)108 254.4 Q 3.138(yc)-.15 G .638(har\
+(The pattern matching honors the setting of)5.632 F(the)108 268.8 Q F1
+(extglob)2.5 E F0(shell option.)2.5 E F1 -.1(Pa)108 285.6 S(tter).1 E
+2.5(nM)-.15 G(atching)-2.5 E F0(An)108 302.4 Q 3.138(yc)-.15 G .638(har\
 acter that appears in a pattern, other than the special pattern charact\
 ers described belo)-3.138 F 1.938 -.65(w, m)-.25 H(atches).65 E 3.62
-(itself. The)108 266.4 R 1.12(NUL character may not occur in a pattern.)
+(itself. The)108 314.4 R 1.12(NUL character may not occur in a pattern.)
 3.62 F 3.62(Ab)6.12 G 1.12(ackslash escapes the follo)-3.62 F 1.12
 (wing character; the)-.25 F .576
-(escaping backslash is discarded when matching.)108 278.4 R .576
+(escaping backslash is discarded when matching.)108 326.4 R .576
 (The special pattern characters must be quoted if the)5.576 F 3.076(ya)
--.15 G(re)-3.076 E(to be matched literally)108 290.4 Q(.)-.65 E
-(The special pattern characters ha)108 307.2 Q .3 -.15(ve t)-.2 H
-(he follo).15 E(wing meanings:)-.25 E F3(*)144 324 Q F0 .377(Matches an)
-180 324 R 2.877(ys)-.15 G .376(tring, including the null string.)-2.877
-F .376(When the)5.376 F F3(globstar)2.876 E F0 .376
-(shell option is enabled,)2.876 F(and)180 336 Q F3(*)3.275 E F0 .775
+-.15 G(re)-3.076 E(to be matched literally)108 338.4 Q(.)-.65 E
+(The special pattern characters ha)108 355.2 Q .3 -.15(ve t)-.2 H
+(he follo).15 E(wing meanings:)-.25 E F1(*)144 372 Q F0 .377(Matches an)
+180 372 R 2.877(ys)-.15 G .376(tring, including the null string.)-2.877
+F .376(When the)5.376 F F1(globstar)2.876 E F0 .376
+(shell option is enabled,)2.876 F(and)180 384 Q F1(*)3.275 E F0 .775
 (is used in a pathname e)3.275 F .775(xpansion conte)-.15 F .775(xt, tw)
--.15 F 3.275(oa)-.1 G(djacent)-3.275 E F3(*)3.275 E F0 3.275(su)C .775
+-.15 F 3.275(oa)-.1 G(djacent)-3.275 E F1(*)3.275 E F0 3.275(su)C .775
 (sed as a single pattern)-3.275 F 1.058(will match all \214les and zero\
- or more directories and subdirectories.)180 348 R 1.058(If follo)6.058
-F 1.058(wed by a)-.25 F F3(/)3.558 E F0(,)A(tw)180 360 Q 2.5(oa)-.1 G
-(djacent)-2.5 E F3(*)2.5 E F0 2.5(sw)C
-(ill match only directories and subdirectories.)-2.5 E F3(?)144 372 Q F0
-(Matches an)180 372 Q 2.5(ys)-.15 G(ingle character)-2.5 E(.)-.55 E F3
-([...])144 384 Q F0 .578(Matches an)180 384 R 3.078(yo)-.15 G .578
+ or more directories and subdirectories.)180 396 R 1.058(If follo)6.058
+F 1.058(wed by a)-.25 F F1(/)3.558 E F0(,)A(tw)180 408 Q 2.5(oa)-.1 G
+(djacent)-2.5 E F1(*)2.5 E F0 2.5(sw)C
+(ill match only directories and subdirectories.)-2.5 E F1(?)144 420 Q F0
+(Matches an)180 420 Q 2.5(ys)-.15 G(ingle character)-2.5 E(.)-.55 E F1
+([...])144 432 Q F0 .578(Matches an)180 432 R 3.078(yo)-.15 G .578
 (ne of the enclosed characters.)-3.078 F 3.079(Ap)5.579 G .579
 (air of characters separated by a h)-3.079 F(yphen)-.05 E .685
-(denotes a)180 396 R F4 -.15(ra)3.185 G(ng).15 E 3.184(ee)-.1 G(xpr)
+(denotes a)180 444 R F4 -.15(ra)3.185 G(ng).15 E 3.184(ee)-.1 G(xpr)
 -3.384 E(ession)-.37 E F0 3.184(;a)C .984 -.15(ny c)-3.184 H .684
 (haracter that f).15 F .684(alls between those tw)-.1 F 3.184(oc)-.1 G
-.684(haracters, inclu-)-3.184 F(si)180 408 Q -.15(ve)-.25 G 3.712(,u).15
+.684(haracters, inclu-)-3.184 F(si)180 456 Q -.15(ve)-.25 G 3.712(,u).15
 G 1.212(sing the current locale')-3.712 F 3.712(sc)-.55 G 1.212
 (ollating sequence and character set, is matched.)-3.712 F 1.213(If the)
-6.213 F 1.124(\214rst character follo)180 420 R 1.124(wing the)-.25 F F3
-([)3.624 E F0 1.124(is a)3.624 F F3(!)3.624 E F0 1.124(or a)6.124 F F3
+6.213 F 1.124(\214rst character follo)180 468 R 1.124(wing the)-.25 F F1
+([)3.624 E F0 1.124(is a)3.624 F F1(!)3.624 E F0 1.124(or a)6.124 F F1
 (^)3.623 E F0 1.123(then an)3.623 F 3.623(yc)-.15 G 1.123
 (haracter not enclosed is matched.)-3.623 F .894
-(The sorting order of characters in range e)180 432 R .895
+(The sorting order of characters in range e)180 480 R .895
 (xpressions is determined by the current locale)-.15 F .376(and the v)
-180 444 R .376(alues of the)-.25 F F1(LC_COLLA)2.875 E(TE)-.855 E F0(or)
-2.625 E F1(LC_ALL)2.875 E F0 .375(shell v)2.625 F .375
+180 492 R .376(alues of the)-.25 F F2(LC_COLLA)2.875 E(TE)-.855 E F0(or)
+2.625 E F2(LC_ALL)2.875 E F0 .375(shell v)2.625 F .375
 (ariables, if set.)-.25 F 1.975 -.8(To o)5.375 H .375(btain the tra-).8
-F .067(ditional interpretation of range e)180 456 R .067
-(xpressions, where)-.15 F F3([a\255d])2.567 E F0 .068(is equi)2.568 F
--.25(va)-.25 G .068(lent to).25 F F3([abcd])2.568 E F0 2.568(,s)C .068
-(et v)-2.568 F(alue)-.25 E .157(of the)180 468 R F3(LC_ALL)2.657 E F0
-.157(shell v)2.657 F .157(ariable to)-.25 F F3(C)2.657 E F0 2.657(,o)C
-2.657(re)-2.657 G .157(nable the)-2.657 F F3(globasciiranges)2.657 E F0
-.156(shell option.)2.656 F(A)5.156 E F3<ad>2.656 E F0(may)2.656 E .193(\
+F .067(ditional interpretation of range e)180 504 R .067
+(xpressions, where)-.15 F F1([a\255d])2.567 E F0 .068(is equi)2.568 F
+-.25(va)-.25 G .068(lent to).25 F F1([abcd])2.568 E F0 2.568(,s)C .068
+(et v)-2.568 F(alue)-.25 E .157(of the)180 516 R F1(LC_ALL)2.657 E F0
+.157(shell v)2.657 F .157(ariable to)-.25 F F1(C)2.657 E F0 2.657(,o)C
+2.657(re)-2.657 G .157(nable the)-2.657 F F1(globasciiranges)2.657 E F0
+.156(shell option.)2.656 F(A)5.156 E F1<ad>2.656 E F0(may)2.656 E .193(\
 be matched by including it as the \214rst or last character in the set.)
-180 480 R(A)5.193 E F3(])2.693 E F0 .194(may be matched by)2.693 F
-(including it as the \214rst character in the set.)180 492 Q -.4(Wi)180
-510 S(thin).4 E F3([)3.071 E F0(and)3.071 E F3(])3.071 E F0(,)A F4 -.15
+180 528 R(A)5.193 E F1(])2.693 E F0 .194(may be matched by)2.693 F
+(including it as the \214rst character in the set.)180 540 Q -.4(Wi)180
+558 S(thin).4 E F1([)3.071 E F0(and)3.071 E F1(])3.071 E F0(,)A F4 -.15
 (ch)3.071 G(ar).15 E .571(acter classes)-.15 F F0 .571
-(can be speci\214ed using the syntax)3.071 F F3([:)3.07 E F4(class)A F3
+(can be speci\214ed using the syntax)3.071 F F1([:)3.07 E F4(class)A F1
 (:])A F0 3.07(,w)C(here)-3.07 E F4(class)3.07 E F0(is one of the follo)
-180 522 Q(wing classes de\214ned in the POSIX standard:)-.25 E F3 8.173
-(alnum alpha ascii blank cntrl digit graph lo)180 534 R 8.173
-(wer print punct space)-.1 F 5(upper w)180 546 R 5(ord xdigit)-.1 F F0
-4.29(Ac)180 558 S 1.789(haracter class matches an)-4.29 F 4.289(yc)-.15
-G 1.789(haracter belonging to that class.)-4.289 F(The)6.789 E F3 -.1
+180 570 Q(wing classes de\214ned in the POSIX standard:)-.25 E F1 8.173
+(alnum alpha ascii blank cntrl digit graph lo)180 582 R 8.173
+(wer print punct space)-.1 F 5(upper w)180 594 R 5(ord xdigit)-.1 F F0
+4.29(Ac)180 606 S 1.789(haracter class matches an)-4.29 F 4.289(yc)-.15
+G 1.789(haracter belonging to that class.)-4.289 F(The)6.789 E F1 -.1
 (wo)4.289 G(rd).1 E F0(character)4.289 E
-(class matches letters, digits, and the character _.)180 570 Q -.4(Wi)
-180 588 S(thin).4 E F3([)4.536 E F0(and)4.536 E F3(])4.536 E F0 4.536
+(class matches letters, digits, and the character _.)180 618 Q -.4(Wi)
+180 636 S(thin).4 E F1([)4.536 E F0(and)4.536 E F1(])4.536 E F0 4.536
 (,a)C(n)-4.536 E F4 2.036(equivalence class)4.536 F F0 2.037
-(can be speci\214ed using the syntax)4.536 F F3([=)4.537 E F4(c)A F3(=])
+(can be speci\214ed using the syntax)4.536 F F1([=)4.537 E F4(c)A F1(=])
 A F0 4.537(,w)C(hich)-4.537 E .125(matches all characters with the same\
- collation weight \(as de\214ned by the current locale\) as)180 600 R
-(the character)180 612 Q F4(c)2.5 E F0(.)A -.4(Wi)180 630 S(thin).4 E F3
-([)2.5 E F0(and)2.5 E F3(])2.5 E F0 2.5(,t)C(he syntax)-2.5 E F3([.)2.5
-E F4(symbol)A F3(.])A F0(matches the collating symbol)2.5 E F4(symbol)
-2.5 E F0(.)A .704(If the)108 646.8 R F3(extglob)3.204 E F0 .705
-(shell option is enabled using the)3.204 F F3(shopt)3.205 E F0 -.2(bu)
+ collation weight \(as de\214ned by the current locale\) as)180 648 R
+(the character)180 660 Q F4(c)2.5 E F0(.)A -.4(Wi)180 678 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 F4(symbol)A F1(.])A F0(matches the collating symbol)2.5 E F4(symbol)
+2.5 E F0(.)A .704(If the)108 694.8 R F1(extglob)3.204 E F0 .705
+(shell option is enabled using the)3.204 F F1(shopt)3.205 E F0 -.2(bu)
 3.205 G .705(iltin, se).2 F -.15(ve)-.25 G .705(ral e).15 F .705
 (xtended pattern matching operators)-.15 F .256(are recognized.)108
-658.8 R .256(In the follo)5.256 F .256(wing description, a)-.25 F F4
+706.8 R .256(In the follo)5.256 F .256(wing description, a)-.25 F F4
 (pattern-list)2.755 E F0 .255
-(is a list of one or more patterns separated by a)2.755 F F3(|)2.755 E
+(is a list of one or more patterns separated by a)2.755 F F1(|)2.755 E
 F0(.)A(Composite patterns may be formed using one or more of the follo)
-108 670.8 Q(wing sub-patterns:)-.25 E F3(?\()144 694.8 Q F4
-(pattern-list).833 E F3(\)).833 E F0
-(Matches zero or one occurrence of the gi)180 706.8 Q -.15(ve)-.25 G 2.5
-(np).15 G(atterns)-2.5 E(GNU Bash 5.0)72 768 Q(2018 March 15)144.29 E
-(26)193.45 E 0 Cg EP
+108 718.8 Q(wing sub-patterns:)-.25 E(GNU Bash 5.0)72 768 Q
+(2018 August 7)145.395 E(26)194.555 E 0 Cg EP
 %%Page: 27 27
 %%BeginPageSetup
 BP
 %%EndPageSetup
 /F0 10/Times-Roman@0 SF -.35(BA)72 48 S 137.14(SH\(1\) General).35 F
 (Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E/F1 10/Times-Bold@0
-SF(*\()144 84 Q/F2 10/Times-Italic@0 SF(pattern-list).833 E F1(\)).833 E
-F0(Matches zero or more occurrences of the gi)180 96 Q -.15(ve)-.25 G
-2.5(np).15 G(atterns)-2.5 E F1(+\()144 108 Q F2(pattern-list).833 E F1
-(\)).833 E F0(Matches one or more occurrences of the gi)180 120 Q -.15
-(ve)-.25 G 2.5(np).15 G(atterns)-2.5 E F1(@\()144 132 Q F2(pattern-list)
-.833 E F1(\)).833 E F0(Matches one of the gi)180 144 Q -.15(ve)-.25 G
-2.5(np).15 G(atterns)-2.5 E F1(!\()144 156 Q F2(pattern-list).833 E F1
-(\)).833 E F0(Matches an)180 168 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 .968(Complicated e)108
-184.8 R .968(xtended pattern matching ag)-.15 F .968
-(ainst long strings is slo)-.05 F 2.269 -.65(w, e)-.25 H .969
+SF(?\()144 84 Q/F2 10/Times-Italic@0 SF(pattern-list).833 E F1(\)).833 E
+F0(Matches zero or one occurrence of the gi)180 96 Q -.15(ve)-.25 G 2.5
+(np).15 G(atterns)-2.5 E F1(*\()144 108 Q F2(pattern-list).833 E F1(\))
+.833 E F0(Matches zero or more occurrences of the gi)180 120 Q -.15(ve)
+-.25 G 2.5(np).15 G(atterns)-2.5 E F1(+\()144 132 Q F2(pattern-list).833
+E F1(\)).833 E F0(Matches one or more occurrences of the gi)180 144 Q
+-.15(ve)-.25 G 2.5(np).15 G(atterns)-2.5 E F1(@\()144 156 Q F2
+(pattern-list).833 E F1(\)).833 E F0(Matches one of the gi)180 168 Q
+-.15(ve)-.25 G 2.5(np).15 G(atterns)-2.5 E F1(!\()144 180 Q F2
+(pattern-list).833 E F1(\)).833 E F0(Matches an)180 192 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
+.968(Complicated e)108 208.8 R .968(xtended pattern matching ag)-.15 F
+.968(ainst long strings is slo)-.05 F 2.269 -.65(w, e)-.25 H .969
 (specially when the patterns contain).65 F 1.23
-(alternations and the strings contain multiple matches.)108 196.8 R 1.23
+(alternations and the strings contain multiple matches.)108 220.8 R 1.23
 (Using separate matches ag)6.23 F 1.23(ainst shorter strings, or)-.05 F
 (using arrays of strings instead of a single long string, may be f)108
-208.8 Q(aster)-.1 E(.)-.55 E F1(Quote Remo)87 225.6 Q -.1(va)-.1 G(l).1
-E F0 1.112(After the preceding e)108 237.6 R 1.112
+232.8 Q(aster)-.1 E(.)-.55 E F1(Quote Remo)87 249.6 Q -.1(va)-.1 G(l).1
+E F0 1.112(After the preceding e)108 261.6 R 1.112
 (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 249.6 Q .3
+1.113(that did not result)4.446 F(from one of the abo)108 273.6 Q .3
 -.15(ve ex)-.15 H(pansions are remo).15 E -.15(ve)-.15 G(d.).15 E/F3
-10.95/Times-Bold@0 SF(REDIRECTION)72 266.4 Q F0 .545
-(Before a command is e)108 278.4 R -.15(xe)-.15 G .545
+10.95/Times-Bold@0 SF(REDIRECTION)72 290.4 Q F0 .545
+(Before a command is e)108 302.4 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 .405
-(by the shell.)108 290.4 R .405(Redirection allo)5.405 F .405(ws comman\
+(by the shell.)108 314.4 R .405(Redirection allo)5.405 F .405(ws comman\
 ds' \214le handles to be duplicated, opened, closed, made to refer to)
--.25 F(dif)108 302.4 Q 1.02(ferent \214les, and can change the \214les \
+-.25 F(dif)108 326.4 Q 1.02(ferent \214les, and can change the \214les \
 the command reads from and writes to.)-.25 F 1.019
 (Redirection may also be)6.019 F .215
-(used to modify \214le handles in the current shell e)108 314.4 R -.15
+(used to modify \214le handles in the current shell e)108 338.4 R -.15
 (xe)-.15 G .215(cution en).15 F 2.715(vironment. The)-.4 F(follo)2.715 E
 .215(wing redirection operators)-.25 F .876(may precede or appear an)108
-326.4 R .876(ywhere within a)-.15 F F2 .875(simple command)3.715 F F0
+350.4 R .876(ywhere within a)-.15 F F2 .875(simple command)3.715 F F0
 .875(or may follo)4.145 F 3.375(wa)-.25 G F2(command)A F0 5.875(.R).77 G
-.875(edirections are)-5.875 F(processed in the order the)108 338.4 Q 2.5
+.875(edirections are)-5.875 F(processed in the order the)108 362.4 Q 2.5
 (ya)-.15 G(ppear)-2.5 E 2.5(,f)-.4 G(rom left to right.)-2.5 E .771(Eac\
 h redirection that may be preceded by a \214le descriptor number may in\
-stead be preceded by a w)108 355.2 R .772(ord of)-.1 F .293(the form {)
-108 367.2 R F2(varname)A F0 2.793(}. In)B .293
+stead be preceded by a w)108 379.2 R .772(ord of)-.1 F .293(the form {)
+108 391.2 R F2(varname)A F0 2.793(}. In)B .293
 (this case, for each redirection operator e)2.793 F .293
-(xcept >&- and <&-, the shell will allocate)-.15 F 3.179<618c>108 379.2
+(xcept >&- and <&-, the shell will allocate)-.15 F 3.179<618c>108 403.2
 S .679(le descriptor greater than or equal to 10 and assign it to)-3.179
 F F2(varname)3.179 E F0 5.679(.I)C 3.179(f>)-5.679 G .679
-(&- or <&- is preceded by {)-3.179 F F2(var)A(-)-.2 E(name)108 391.2 Q
+(&- or <&- is preceded by {)-3.179 F F2(var)A(-)-.2 E(name)108 415.2 Q
 F0 .6(}, the v)B .6(alue of)-.25 F F2(varname)3.1 E F0 .599
 (de\214nes the \214le descriptor to close.)3.1 F .599(If {)5.599 F F2
 (varname)A F0 3.099(}i)C 3.099(ss)-3.099 G .599
-(upplied, the redirection)-3.099 F 1.238(persists be)108 403.2 R 1.238
+(upplied, the redirection)-3.099 F 1.238(persists be)108 427.2 R 1.238
 (yond the scope of the command, allo)-.15 F 1.238
 (wing the shell programmer to manage the \214le descriptor)-.25 F
-(himself.)108 415.2 Q .284(In the follo)108 432 R .283(wing description\
+(himself.)108 439.2 Q .284(In the follo)108 456 R .283(wing description\
 s, if the \214le descriptor number is omitted, and the \214rst characte\
-r of the redirect-)-.25 F .512(ion operator is)108 444 R F1(<)3.012 E F0
+r of the redirect-)-.25 F .512(ion operator is)108 468 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 456 Q F1(>)2.5 E F0 2.5(,t)C
+(redirection operator is)108 480 Q F1(>)2.5 E F0 2.5(,t)C
 (he redirection refers to the standard output \(\214le descriptor 1\).)
--2.5 E .825(The w)108 472.8 R .825(ord follo)-.1 F .824
+-2.5 E .825(The w)108 496.8 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 .462
-(jected to brace e)108 484.8 R .462(xpansion, tilde e)-.15 F .463
+(jected to brace e)108 508.8 R .462(xpansion, tilde e)-.15 F .463
 (xpansion, parameter and v)-.15 F .463(ariable e)-.25 F .463
-(xpansion, command substitution, arith-)-.15 F .867(metic e)108 496.8 R
+(xpansion, command substitution, arith-)-.15 F .867(metic e)108 520.8 R
 .867(xpansion, quote remo)-.15 F -.25(va)-.15 G .867(l, pathname e).25 F
 .867(xpansion, and w)-.15 F .867(ord splitting.)-.1 F .867(If it e)5.867
-F .866(xpands to more than one)-.15 F -.1(wo)108 508.8 S(rd,).1 E F1
+F .866(xpands to more than one)-.15 F -.1(wo)108 532.8 S(rd,).1 E F1
 (bash)2.5 E F0(reports an error)2.5 E(.)-.55 E
-(Note that the order of redirections is signi\214cant.)108 525.6 Q -.15
-(Fo)5 G 2.5(re).15 G(xample, the command)-2.65 E(ls)144 542.4 Q F1(>)2.5
+(Note that the order of redirections is signi\214cant.)108 549.6 Q -.15
+(Fo)5 G 2.5(re).15 G(xample, the command)-2.65 E(ls)144 566.4 Q F1(>)2.5
 E F0(dirlist 2)2.5 E F1(>&)A F0(1)A
-(directs both standard output and standard error to the \214le)108 559.2
-Q F2(dirlist)2.5 E F0 2.5(,w).68 G(hile the command)-2.5 E(ls 2)144 576
+(directs both standard output and standard error to the \214le)108 583.2
+Q F2(dirlist)2.5 E F0 2.5(,w).68 G(hile the command)-2.5 E(ls 2)144 600
 Q F1(>&)A F0(1)A F1(>)2.5 E F0(dirlist)2.5 E .527
-(directs only the standard output to \214le)108 592.8 R F2(dirlist)3.027
+(directs only the standard output to \214le)108 616.8 R F2(dirlist)3.027
 E F0 3.027(,b).68 G .527(ecause the standard error w)-3.027 F .527
 (as duplicated from the standard)-.1 F
-(output before the standard output w)108 604.8 Q(as redirected to)-.1 E
-F2(dirlist)2.5 E F0(.).68 E F1(Bash)108 621.6 Q F0 .599(handles se)3.099
+(output before the standard output w)108 628.8 Q(as redirected to)-.1 E
+F2(dirlist)2.5 E F0(.).68 E F1(Bash)108 645.6 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 3.477(table. If)108 633.6 R .977
+(wing)-.25 E 3.477(table. If)108 657.6 R .977
 (the operating system on which)3.477 F F1(bash)3.478 E F0 .978
 (is running pro)3.478 F .978
 (vides these special \214les, bash will use them;)-.15 F
-(otherwise it will emulate them internally with the beha)108 645.6 Q
-(vior described belo)-.2 E -.65(w.)-.25 G F1(/de)144 662.4 Q(v/fd/)-.15
-E F2(fd)A F0(If)180 674.4 Q F2(fd)2.5 E F0(is a v)2.5 E(alid inte)-.25 E
+(otherwise it will emulate them internally with the beha)108 669.6 Q
+(vior described belo)-.2 E -.65(w.)-.25 G F1(/de)144 686.4 Q(v/fd/)-.15
+E F2(fd)A F0(If)180 698.4 Q F2(fd)2.5 E F0(is a v)2.5 E(alid inte)-.25 E
 (ger)-.15 E 2.5<2c8c>-.4 G(le descriptor)-2.5 E F2(fd)2.5 E F0
-(is duplicated.)2.5 E F1(/de)144 686.4 Q(v/stdin)-.15 E F0
-(File descriptor 0 is duplicated.)180 698.4 Q(GNU Bash 5.0)72 768 Q
-(2018 March 15)144.29 E(27)193.45 E 0 Cg EP
+(is duplicated.)2.5 E(GNU Bash 5.0)72 768 Q(2018 August 7)145.395 E(27)
+194.555 E 0 Cg EP
 %%Page: 28 28
 %%BeginPageSetup
 BP
 %%EndPageSetup
 /F0 10/Times-Roman@0 SF -.35(BA)72 48 S 137.14(SH\(1\) General).35 F
 (Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E/F1 10/Times-Bold@0
-SF(/de)144 84 Q(v/stdout)-.15 E F0(File descriptor 1 is duplicated.)180
-96 Q F1(/de)144 108 Q(v/stderr)-.15 E F0
-(File descriptor 2 is duplicated.)180 120 Q F1(/de)144 132 Q(v/tcp/)-.15
-E/F2 10/Times-Italic@0 SF(host)A F1(/)A F2(port)A F0(If)180 144 Q F2
-(host)2.997 E F0 .497(is a v)2.997 F .497
+SF(/de)144 84 Q(v/stdin)-.15 E F0(File descriptor 0 is duplicated.)180
+96 Q F1(/de)144 108 Q(v/stdout)-.15 E F0
+(File descriptor 1 is duplicated.)180 120 Q F1(/de)144 132 Q(v/stderr)
+-.15 E F0(File descriptor 2 is duplicated.)180 144 Q F1(/de)144 156 Q
+(v/tcp/)-.15 E/F2 10/Times-Italic@0 SF(host)A F1(/)A F2(port)A F0(If)180
+168 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 156 Q F1(bash)2.5 E F0
+(vice name,)180 180 Q F1(bash)2.5 E F0
 (attempts to open the corresponding TCP sock)2.5 E(et.)-.1 E F1(/de)144
-168 Q(v/udp/)-.15 E F2(host)A F1(/)A F2(port)A F0(If)180 180 Q F2(host)
+192 Q(v/udp/)-.15 E F2(host)A F1(/)A F2(port)A F0(If)180 204 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 192 Q F1(bash)2.5 E F0
+(vice name,)180 216 Q F1(bash)2.5 E F0
 (attempts to open the corresponding UDP sock)2.5 E(et.)-.1 E 2.5(Af)108
-208.8 S(ailure to open or create a \214le causes the redirection to f)
+232.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 th\
-an 9 should be used with care, as the)108 225.6 R 3.446(ym)-.15 G .946
+an 9 should be used with care, as the)108 249.6 R 3.446(ym)-.15 G .946
 (ay con\215ict with \214le)-3.446 F
-(descriptors the shell uses internally)108 237.6 Q(.)-.65 E F1(Redir)87
-254.4 Q(ecting Input)-.18 E F0 .391
+(descriptors the shell uses internally)108 261.6 Q(.)-.65 E F1(Redir)87
+278.4 Q(ecting Input)-.18 E F0 .391
 (Redirection of input causes the \214le whose name results from the e)
-108 266.4 R .391(xpansion of)-.15 F F2(wor)3.231 E(d)-.37 E F0 .391
-(to be opened for read-)3.661 F(ing on \214le descriptor)108 278.4 Q F2
+108 290.4 R .391(xpansion of)-.15 F F2(wor)3.231 E(d)-.37 E F0 .391
+(to be opened for read-)3.661 F(ing on \214le descriptor)108 302.4 Q F2
 (n)2.5 E F0 2.5(,o).24 G 2.5(rt)-2.5 G
 (he standard input \(\214le descriptor 0\) if)-2.5 E F2(n)2.86 E F0
 (is not speci\214ed.)2.74 E
-(The general format for redirecting input is:)108 295.2 Q([)144 312 Q F2
-(n)A F0(])A F1(<)A F2(wor)A(d)-.37 E F1(Redir)87 328.8 Q(ecting Output)
+(The general format for redirecting input is:)108 319.2 Q([)144 336 Q F2
+(n)A F0(])A F1(<)A F2(wor)A(d)-.37 E F1(Redir)87 352.8 Q(ecting Output)
 -.18 E F0 .175
 (Redirection of output causes the \214le whose name results from the e)
-108 340.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 352.8
+108 364.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 376.8
 R F2(n)3.324 E F0 3.324(,o).24 G 3.324(rt)-3.324 G .824
 (he standard output \(\214le descriptor 1\) if)-3.324 F F2(n)3.684 E F0
 .824(is not speci\214ed.)3.564 F .825(If the \214le does not)5.825 F
--.15(ex)108 364.8 S(ist it is created; if it does e).15 E
+-.15(ex)108 388.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 381.6 Q([)144 398.4 Q
+(The general format for redirecting output is:)108 405.6 Q([)144 422.4 Q
 F2(n)A F0(])A F1(>)A F2(wor)A(d)-.37 E F0 .155
-(If the redirection operator is)108 415.2 R F1(>)2.655 E F0 2.655(,a)C
+(If the redirection operator is)108 439.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 427.2 R
+(iltin has been enabled, the redirection).2 F .657(will f)108 451.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 439.2 R F1(>|)2.909 E F0 2.909(,o)C
+5.658 F .409(rection operator is)108 463.2 R F1(>|)2.909 E F0 2.909(,o)C
 2.909(rt)-2.909 G .409(he redirection operator is)-2.909 F F1(>)2.909 E
 F0 .409(and the)2.909 F F1(noclob)2.909 E(ber)-.1 E F0 .409
 (option to the)2.909 F F1(set)2.909 E F0 -.2(bu)2.908 G .408
 (iltin command).2 F(is not enabled, the redirection is attempted e)108
-451.2 Q -.15(ve)-.25 G 2.5(ni).15 G 2.5(ft)-2.5 G(he \214le named by)
+475.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
-468 S(pending Redir).25 E(ected Output)-.18 E F0 .641
-(Redirection of output in this f)108 480 R .642
+492 S(pending Redir).25 E(ected Output)-.18 E F0 .641
+(Redirection of output in this f)108 504 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 492 R F2(n)2.974 E F0
+(opened for appending on \214le descriptor)108 516 R F2(n)2.974 E F0
 2.974(,o).24 G 2.974(rt)-2.974 G .474
 (he standard output \(\214le descriptor 1\) if)-2.974 F F2(n)3.333 E F0
 .473(is not speci\214ed.)3.213 F(If)5.473 E(the \214le does not e)108
-504 Q(xist it is created.)-.15 E
-(The general format for appending output is:)108 520.8 Q([)144 537.6 Q
-F2(n)A F0(])A F1(>>)A F2(wor)A(d)-.37 E F1(Redir)87 554.4 Q
+528 Q(xist it is created.)-.15 E
+(The general format for appending output is:)108 544.8 Q([)144 561.6 Q
+F2(n)A F0(])A F1(>>)A F2(wor)A(d)-.37 E F1(Redir)87 578.4 Q
 (ecting Standard Output and Standard Err)-.18 E(or)-.18 E F0 .248
-(This construct allo)108 566.4 R .249(ws both the standard output \(\
+(This construct allo)108 590.4 R .249(ws both the standard output \(\
 \214le descriptor 1\) and the standard error output \(\214le descrip-)
 -.25 F(tor 2\) to be redirected to the \214le whose name is the e)108
-578.4 Q(xpansion of)-.15 E F2(wor)2.5 E(d)-.37 E F0(.).77 E
-(There are tw)108 595.2 Q 2.5(of)-.1 G
+602.4 Q(xpansion of)-.15 E F2(wor)2.5 E(d)-.37 E F0(.).77 E
+(There are tw)108 619.2 Q 2.5(of)-.1 G
 (ormats for redirecting standard output and standard error:)-2.5 E F1
-(&>)144 612 Q F2(wor)A(d)-.37 E F0(and)108 624 Q F1(>&)144 636 Q F2(wor)
-A(d)-.37 E F0(Of the tw)108 652.8 Q 2.5(of)-.1 G
+(&>)144 636 Q F2(wor)A(d)-.37 E F0(and)108 648 Q F1(>&)144 660 Q F2(wor)
+A(d)-.37 E F0(Of the tw)108 676.8 Q 2.5(of)-.1 G
 (orms, the \214rst is preferred.)-2.5 E(This is semantically equi)5 E
--.25(va)-.25 G(lent to).25 E F1(>)144 669.6 Q F2(wor)A(d)-.37 E F0(2)2.5
-E F1(>&)A F0(1)A .115(When using the second form,)108 686.4 R F2(wor)
+-.25(va)-.25 G(lent to).25 E F1(>)144 693.6 Q F2(wor)A(d)-.37 E F0(2)2.5
+E F1(>&)A F0(1)A .115(When using the second form,)108 710.4 R F2(wor)
 2.614 E(d)-.37 E F0 .114(may not e)2.614 F .114(xpand to a number or)
 -.15 F F1<ad>2.614 E F0 5.114(.I)C 2.614(fi)-5.114 G 2.614(td)-2.614 G
-.114(oes, other redirection operators)-2.614 F(apply \(see)108 698.4 Q
+.114(oes, other redirection operators)-2.614 F(apply \(see)108 722.4 Q
 F1(Duplicating File Descriptors)2.5 E F0(belo)2.5 E
 (w\) for compatibility reasons.)-.25 E(GNU Bash 5.0)72 768 Q
-(2018 March 15)144.29 E(28)193.45 E 0 Cg EP
+(2018 August 7)145.395 E(28)194.555 E 0 Cg EP
 %%Page: 29 29
 %%BeginPageSetup
 BP
@@ -3779,7 +3805,7 @@ F0 2.754<2c8c>C .254(le descriptor)-2.754 F F2(n)3.114 E F0 .254
 3.466 E F0 3.466(,t)C .965
 (he standard output and standard error are redirected as described)
 -3.466 F(pre)108 691.2 Q(viously)-.25 E(.)-.65 E(GNU Bash 5.0)72 768 Q
-(2018 March 15)144.29 E(29)193.45 E 0 Cg EP
+(2018 August 7)145.395 E(29)194.555 E 0 Cg EP
 %%Page: 30 30
 %%BeginPageSetup
 BP
@@ -3903,8 +3929,8 @@ F1(#)3.033 E F0 .532(is updated to re\215ect the change.)3.033 F .532
 .532(The \214rst ele-)5.532 F(ment of the)108 720 Q F4(FUNCN)2.5 E(AME)
 -.18 E F0 -.25(va)2.25 G
 (riable is set to the name of the function while the function is e).25 E
--.15(xe)-.15 G(cuting.).15 E(GNU Bash 5.0)72 768 Q(2018 March 15)144.29
-E(30)193.45 E 0 Cg EP
+-.15(xe)-.15 G(cuting.).15 E(GNU Bash 5.0)72 768 Q(2018 August 7)145.395
+E(30)194.555 E 0 Cg EP
 %%Page: 31 31
 %%BeginPageSetup
 BP
@@ -4044,7 +4070,7 @@ E F0 -.25(va)2.871 G .371
 -.15(ve)-.25 G .439(ls of equal-precedence operators.).15 F .44(The le)
 5.44 F -.15(ve)-.25 G .44(ls are listed in order).15 F
 (of decreasing precedence.)108 691.2 Q(GNU Bash 5.0)72 768 Q
-(2018 March 15)144.29 E(31)193.45 E 0 Cg EP
+(2018 August 7)145.395 E(31)194.555 E 0 Cg EP
 %%Page: 32 32
 %%BeginPageSetup
 BP
@@ -4144,7 +4170,7 @@ R 3.906(Al)6.406 G 1.406(eading 0x or 0X denotes he)-3.906 F(xadecimal.)
 F2(<)3.595 E F0(and)3.595 E F2(>)3.595 E F0 1.095(operators sort le)
 3.595 F 1.095(xicographically using the current locale.)-.15 F(The)6.096
 E F2(test)3.596 E F0(com-)3.596 E(mand sorts using ASCII ordering.)108
-714 Q(GNU Bash 5.0)72 768 Q(2018 March 15)144.29 E(32)193.45 E 0 Cg EP
+714 Q(GNU Bash 5.0)72 768 Q(2018 August 7)145.395 E(32)194.555 E 0 Cg EP
 %%Page: 33 33
 %%BeginPageSetup
 BP
@@ -4234,7 +4260,7 @@ F0(sorts before)2.5 E F2(string2)2.5 E F0(le)2.5 E(xicographically)-.15
 E(.)-.65 E F2(string1)108 679.2 Q F1(>)2.5 E F2(string2)2.5 E F0 -.35
 (Tr)144 691.2 S(ue if).35 E F2(string1)2.5 E F0(sorts after)2.5 E F2
 (string2)2.5 E F0(le)2.5 E(xicographically)-.15 E(.)-.65 E(GNU Bash 5.0)
-72 768 Q(2018 March 15)144.29 E(33)193.45 E 0 Cg EP
+72 768 Q(2018 August 7)145.395 E(33)194.555 E 0 Cg EP
 %%Page: 34 34
 %%BeginPageSetup
 BP
@@ -4360,8 +4386,8 @@ ful, or if the command name contains one or more slashes, the shell e)
 (subshell reinitializes itself, so that the ef)108 722.4 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(GNU Bash 5.0)72 768 Q(2018 March 15)
-144.29 E(34)193.45 E 0 Cg EP
+(andle the script, with)-2.83 F(GNU Bash 5.0)72 768 Q(2018 August 7)
+145.395 E(34)194.555 E 0 Cg EP
 %%Page: 35 35
 %%BeginPageSetup
 BP
@@ -4450,7 +4476,7 @@ G 2.858(cation. Builtin).2 F .358(commands that are in)2.858 F -.2(vo)
 640.8 R 1.377(wned to e)-.15 F -.15(xe)-.15 G 1.377
 (cute command substitutions inherit the v).15 F 1.377(alue of the)-.25 F
 F1<ad65>3.876 E F0 1.376(option from the parent)3.876 F 2.5(shell. When)
-108 652.8 R(not in)2.5 E F5(posix)2.5 E F0(mode,)2.5 E F1(bash)2.5 E F0
+108 652.8 R(not in)2.5 E F5(posix mode)2.5 E F0(,)A F1(bash)2.5 E F0
 (clears the)2.5 E F1<ad65>2.5 E F0(option in such subshells.)2.5 E .404
 (If a command is follo)108 669.6 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
@@ -4459,7 +4485,7 @@ F1<ad65>3.876 E F0 1.376(option from the parent)3.876 F 2.5(shell. When)
 (.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 693.6 Q(GNU Bash 5.0)72 768
-Q(2018 March 15)144.29 E(35)193.45 E 0 Cg EP
+Q(2018 August 7)145.395 E(35)194.555 E 0 Cg EP
 %%Page: 36 36
 %%BeginPageSetup
 BP
@@ -4595,8 +4621,8 @@ G .93(rom the)-3.43 F 1.357(jobs table with the)108 686.4 R F3(diso)
 (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
-727.2 Q(xits.)-.15 E(GNU Bash 5.0)72 768 Q(2018 March 15)144.29 E(36)
-193.45 E 0 Cg EP
+727.2 Q(xits.)-.15 E(GNU Bash 5.0)72 768 Q(2018 August 7)145.395 E(36)
+194.555 E 0 Cg EP
 %%Page: 37 37
 %%BeginPageSetup
 BP
@@ -4738,7 +4764,8 @@ R -.15(ve)-.25 G 2.631(raj).15 G .131(ob changes state.)-2.631 F
 (reports such changes immediately)2.648 F 5.147(.A)-.65 G .447 -.15
 (ny t)-5.147 H .147(rap on).15 F F4(SIGCHLD)2.647 E F0 .147(is e)2.397 F
 -.15(xe)-.15 G(-).15 E(cuted for each child that e)108 715.2 Q(xits.)
--.15 E(GNU Bash 5.0)72 768 Q(2018 March 15)144.29 E(37)193.45 E 0 Cg EP
+-.15 E(GNU Bash 5.0)72 768 Q(2018 August 7)145.395 E(37)194.555 E 0 Cg
+EP
 %%Page: 38 38
 %%BeginPageSetup
 BP
@@ -4839,7 +4866,8 @@ story \214le \(see)108 650.4 R F3(HIST)4.085 E(OR)-.162 E(Y)-.315 E F0
 (pr)2.852 E(omptv)-.18 E(ars)-.1 E F0 .351(shell option \(see the)2.852
 F(description of the)108 698.4 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(GNU Bash 5.0)72 768 Q(2018 March 15)144.29 E(38)193.45 E 0 Cg EP
+-.25 E(GNU Bash 5.0)72 768 Q(2018 August 7)145.395 E(38)194.555 E 0 Cg
+EP
 %%Page: 39 39
 %%BeginPageSetup
 BP
@@ -4964,8 +4992,8 @@ E F4(macr)2.66 E(o)-.45 E F0(,)A F4 -.1(ke)2.66 G(yname)-.2 E F0 .161
 .15 F 2.5(lish. F)108 676.8 R(or e)-.15 E(xample:)-.15 E(Control-u: uni)
 144 700.8 Q -.15(ve)-.25 G(rsal\255ar).15 E(gument)-.18 E
 (Meta-Rubout: backw)144 712.8 Q(ard-kill-w)-.1 E(ord)-.1 E
-(Control-o: "> output")144 724.8 Q(GNU Bash 5.0)72 768 Q(2018 March 15)
-144.29 E(39)193.45 E 0 Cg EP
+(Control-o: "> output")144 724.8 Q(GNU Bash 5.0)72 768 Q(2018 August 7)
+145.395 E(39)194.555 E 0 Cg EP
 %%Page: 40 40
 %%BeginPageSetup
 BP
@@ -5060,7 +5088,8 @@ E F0 2.51(,r)C .01(eadline ne)-2.51 F -.15(ve)-.25 G(r).15 E .94
 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 708 Q 2.5(sb)-.55 G(ell.)
--2.5 E(GNU Bash 5.0)72 768 Q(2018 March 15)144.29 E(40)193.45 E 0 Cg EP
+-2.5 E(GNU Bash 5.0)72 768 Q(2018 August 7)145.395 E(40)194.555 E 0 Cg
+EP
 %%Page: 41 41
 %%BeginPageSetup
 BP
@@ -5165,8 +5194,8 @@ R -.15(ve)-.25 G 5.622(.T).15 G .622(he v)-5.622 F .622(alue is e)-.25 F
 (ailable. Use)-.05 F .298(the \\1 and \\2 escapes to be)2.798 F .298
 (gin and end sequences of non-printing characters, which)-.15 F
 (can be used to embed a terminal control sequence into the mode string.)
-144 720 Q(GNU Bash 5.0)72 768 Q(2018 March 15)144.29 E(41)193.45 E 0 Cg
-EP
+144 720 Q(GNU Bash 5.0)72 768 Q(2018 August 7)145.395 E(41)194.555 E 0
+Cg EP
 %%Page: 42 42
 %%BeginPageSetup
 BP
@@ -5276,8 +5305,8 @@ E F2 -.37(re)2.551 G(adline).37 E F0 .051(will w)2.551 F .051
 .15 E F1(mark\255modi\214ed\255lines \(Off\))108 684 Q F0(If set to)144
 696 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(GNU Bash 5.0)72 768 Q(2018 March 15)144.29 E(42)193.45 E 0
-Cg EP
+(*)A F0(\).)A(GNU Bash 5.0)72 768 Q(2018 August 7)145.395 E(42)194.555 E
+Cg EP
 %%Page: 43 43
 %%BeginPageSetup
 BP
@@ -5382,8 +5411,8 @@ F .186(last line of the primary prompt when vi editing mode is acti)144
 -.2 G 2.815(ilable. Use).25 F .314(the \\1 and \\2 escapes to be)2.815 F
 .314(gin and end sequences of non-print-)-.15 F(ing characters, which c\
 an be used to embed a terminal control sequence into the mode string.)
-144 708 Q(GNU Bash 5.0)72 768 Q(2018 March 15)144.29 E(43)193.45 E 0 Cg
-EP
+144 708 Q(GNU Bash 5.0)72 768 Q(2018 August 7)145.395 E(43)194.555 E 0
+Cg EP
 %%Page: 44 44
 %%BeginPageSetup
 BP
@@ -5483,7 +5512,7 @@ Q F0 .356(This directi)144 684 R .656 -.15(ve t)-.25 H(ak).15 E .356
 144 696 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 720 Q F2(/etc/inputr)5.833 E(c)-.37 E F0(GNU Bash 5.0)72
-768 Q(2018 March 15)144.29 E(44)193.45 E 0 Cg EP
+768 Q(2018 August 7)145.395 E(44)194.555 E 0 Cg EP
 %%Page: 45 45
 %%BeginPageSetup
 BP
@@ -5587,7 +5616,7 @@ idth.)-.05 E F1(next\255scr)108 700.8 Q(een\255line)-.18 E F0 .638
 144 724.8 R .309 -.15(ve t)-.2 H .009(he desired ef).15 F .009
 (fect if the current Readline line does not tak)-.25 F 2.509(eu)-.1 G
 2.509(pm)-2.509 G .009(ore than one ph)-2.509 F(ysical)-.05 E
-(GNU Bash 5.0)72 768 Q(2018 March 15)144.29 E(45)193.45 E 0 Cg EP
+(GNU Bash 5.0)72 768 Q(2018 August 7)145.395 E(45)194.555 E 0 Cg EP
 %%Page: 46 46
 %%BeginPageSetup
 BP
@@ -5673,7 +5702,7 @@ F .622(ord on the pre)-.1 F .622(vious line\))-.25 F .794(at point.)144
 (is computed, the ar)2.781 F .281(gument is e)-.18 F .282
 (xtracted as if the "!)-.15 F F3(n)A F0(")A(history e)144 700.8 Q
 (xpansion had been speci\214ed.)-.15 E(GNU Bash 5.0)72 768 Q
-(2018 March 15)144.29 E(46)193.45 E 0 Cg EP
+(2018 August 7)145.395 E(46)194.555 E 0 Cg EP
 %%Page: 47 47
 %%BeginPageSetup
 BP
@@ -5773,7 +5802,7 @@ G .779(nsert characters lik)-3.279 F(e)-.1 E F1(C\255q)3.278 E F0 3.278
 (Insert a tab character)144 676.8 Q(.)-.55 E F1
 (self\255insert \(a, b, A, 1, !, ...\))108 688.8 Q F0
 (Insert the character typed.)144 700.8 Q(GNU Bash 5.0)72 768 Q
-(2018 March 15)144.29 E(47)193.45 E 0 Cg EP
+(2018 August 7)145.395 E(47)194.555 E 0 Cg EP
 %%Page: 48 48
 %%BeginPageSetup
 BP
@@ -5867,8 +5896,8 @@ F 5.365(.T)-.65 G .365(he killed te)-5.365 F .365(xt is sa)-.15 F -.15
 -2.5 E F1(delete\255horizontal\255space \(M\255\\\))108 676.8 Q F0
 (Delete all spaces and tabs around point.)144 688.8 Q F1(kill\255r)108
 700.8 Q(egion)-.18 E F0(Kill the te)144 712.8 Q(xt in the current re)
--.15 E(gion.)-.15 E(GNU Bash 5.0)72 768 Q(2018 March 15)144.29 E(48)
-193.45 E 0 Cg EP
+-.15 E(gion.)-.15 E(GNU Bash 5.0)72 768 Q(2018 August 7)145.395 E(48)
+194.555 E 0 Cg EP
 %%Page: 49 49
 %%BeginPageSetup
 BP
@@ -5970,7 +5999,7 @@ F1(delete\255char\255or\255list)108 633.6 Q F0 .234
 -.15 E F1(possible\255\214lename\255completions \(C\255x /\))108 705.6 Q
 F0(List the possible completions of the te)144 717.6 Q
 (xt before point, treating it as a \214lename.)-.15 E(GNU Bash 5.0)72
-768 Q(2018 March 15)144.29 E(49)193.45 E 0 Cg EP
+768 Q(2018 August 7)145.395 E(49)194.555 E 0 Cg EP
 %%Page: 50 50
 %%BeginPageSetup
 BP
@@ -6060,7 +6089,7 @@ SF(ESC)5 E F1(f)2.25 E F0(is equi)2.5 E -.25(va)-.25 G(lent to).25 E F1
 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 729.6 Q(GNU Bash 5.0)72 768 Q
-(2018 March 15)144.29 E(50)193.45 E 0 Cg EP
+(2018 August 7)145.395 E(50)194.555 E 0 Cg EP
 %%Page: 51 51
 %%BeginPageSetup
 BP
@@ -6167,7 +6196,8 @@ F2(compspec)108 724.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(GNU Bash 5.0)72 768 Q(2018 March 15)144.29 E(51)193.45 E 0 Cg EP
+-.25 F(GNU Bash 5.0)72 768 Q(2018 August 7)145.395 E(51)194.555 E 0 Cg
+EP
 %%Page: 52 52
 %%BeginPageSetup
 BP
@@ -6307,7 +6337,7 @@ ode as the list of possible completions.)108 660 Q .246(If the pre)108
 (when the compspec w)2.962 F .462(as de\214ned, directory name com-)-.1
 F(pletion is attempted and an)108 717.6 Q 2.5(ym)-.15 G
 (atches are added to the results of the other actions.)-2.5 E
-(GNU Bash 5.0)72 768 Q(2018 March 15)144.29 E(52)193.45 E 0 Cg EP
+(GNU Bash 5.0)72 768 Q(2018 August 7)145.395 E(52)194.555 E 0 Cg EP
 %%Page: 53 53
 %%BeginPageSetup
 BP
@@ -6439,7 +6469,7 @@ F0 3.257(lines. If)3.007 F F5(HISTFILESIZE)3.257 E F0 .757
 (When using command-line editing, search commands are a)5.001 F -.25(va)
 -.2 G .002(ilable in each edit-).25 F(ing mode that pro)108 717.6 Q
 (vide access to the history list.)-.15 E(GNU Bash 5.0)72 768 Q
-(2018 March 15)144.29 E(53)193.45 E 0 Cg EP
+(2018 August 7)145.395 E(53)194.555 E 0 Cg EP
 %%Page: 54 54
 %%BeginPageSetup
 BP
@@ -6569,8 +6599,8 @@ Q F0 1.607(Start a history substitution, e)144 638.4 R 1.607
 (This is a synon)5 E(ym for `!\2551'.)-.15 E F2(!)108 698.4 Q F4(string)
 A F0 .865(Refer to the most recent command preceding the current positi\
 on in the history list starting with)144 698.4 R F4(string)144 710.4 Q
-F0(.).22 E(GNU Bash 5.0)72 768 Q(2018 March 15)144.29 E(54)193.45 E 0 Cg
-EP
+F0(.).22 E(GNU Bash 5.0)72 768 Q(2018 August 7)145.395 E(54)194.555 E 0
+Cg EP
 %%Page: 55 55
 %%BeginPageSetup
 BP
@@ -6690,8 +6720,8 @@ F1(let)2.961 E F0 2.961(,a)C(nd)-2.961 E F1(shift)2.961 E F0 -.2(bu)
 (guments be)-.18 F .26(ginning with)-.15 F F1<ad>2.76 E F0 .261
 (without requiring)2.76 F F1<adad>2.761 E F0 5.261(.O)C .261(ther b)
 -5.261 F .261(uiltins that accept ar)-.2 F .261(guments b)-.18 F .261
-(ut are not)-.2 F(GNU Bash 5.0)72 768 Q(2018 March 15)144.29 E(55)193.45
-E 0 Cg EP
+(ut are not)-.2 F(GNU Bash 5.0)72 768 Q(2018 August 7)145.395 E(55)
+194.555 E 0 Cg EP
 %%Page: 56 56
 %%BeginPageSetup
 BP
@@ -6826,7 +6856,7 @@ Q F0(List current)180 685.2 Q F1 -.18(re)2.5 G(adline).18 E F0
 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 709.2 S 2.5(yt).1 G
 (hat the)-2.5 E 2.5(yc)-.15 G(an be re-read.)-2.5 E(GNU Bash 5.0)72 768
-Q(2018 March 15)144.29 E(56)193.45 E 0 Cg EP
+Q(2018 August 7)145.395 E(56)194.555 E 0 Cg EP
 %%Page: 57 57
 %%BeginPageSetup
 BP
@@ -6959,7 +6989,7 @@ F0 .468(will return an unsuccessful status.)2.968 F .468(On systems)
 144 720 R .71(gument of)-.18 F F1<ad>3.21 E F0 .71(is con)3.21 F -.15
 (ve)-.4 G .71(rted to).15 F F3($OLDPWD)3.21 E F0 .71
 (before the directory change is attempted.)2.96 F .71(If a non-)5.71 F
-(GNU Bash 5.0)72 768 Q(2018 March 15)144.29 E(57)193.45 E 0 Cg EP
+(GNU Bash 5.0)72 768 Q(2018 August 7)145.395 E(57)194.555 E 0 Cg EP
 %%Page: 58 58
 %%BeginPageSetup
 BP
@@ -7021,2609 +7051,2633 @@ em directly from a completion speci\214cation with the same \215ags.)144
 (will be displayed.)2.5 E(The return v)144 369.6 Q
 (alue is true unless an in)-.25 E -.25(va)-.4 G
 (lid option is supplied, or no matches were generated.).25 E F2
-(complete)108 386.4 Q F0([)3.728 E F2(\255abcdefgjksuv)A F0 3.728(][)C
-F2<ad6f>-3.728 E F3(comp-option)3.728 E F0 3.728(][)C F2(\255DE)-3.728 E
-F0 3.728(][)C F2<ad41>-3.728 E F3(action)3.728 E F0 3.728(][)C F2<ad47>
--3.728 E F3(globpat)3.728 E F0 3.729(][)C F2<ad57>-3.729 E F3(wor)3.729
-E(dlist)-.37 E F0 3.729(][)C F2<ad46>-3.729 E F3(func-)3.729 E(tion)108
-398.4 Q F0 2.5(][)C F2<ad43>-2.5 E F3(command)2.5 E F0(])A([)144 410.4 Q
-F2<ad58>A F3(\214lterpat)2.5 E F0 2.5(][)C F2<ad50>-2.5 E F3(pr)2.5 E
-(e\214x)-.37 E F0 2.5(][)C F2<ad53>-2.5 E F3(suf)2.5 E<8c78>-.18 E F0(])
-A F3(name)2.5 E F0([)2.5 E F3(name ...)A F0(])A F2(complete \255pr)108
-422.4 Q F0([)2.5 E F2(\255DE)A F0 2.5(][)C F3(name)-2.5 E F0(...])2.5 E
-.634(Specify ho)144 434.4 R 3.134(wa)-.25 G -.18(rg)-3.134 G .634
-(uments to each).18 F F3(name)3.134 E F0 .634(should be completed.)3.134
-F .633(If the)5.634 F F2<ad70>3.133 E F0 .633
-(option is supplied, or if no)3.133 F .139(options are supplied, e)144
-446.4 R .139(xisting completion speci\214cations are printed in a w)-.15
-F .14(ay that allo)-.1 F .14(ws them to be)-.25 F .31(reused as input.)
-144 458.4 R(The)5.31 E F2<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 F3
-(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
-F3(name)2.81 E F0(s)A 1.346
-(are supplied, all completion speci\214cations.)144 470.4 R(The)6.347 E
-F2<ad44>3.847 E F0 1.347(option indicates that the remaining options)
-3.847 F .5(and actions should apply to the `)144 482.4 R(`def)-.74 E
+(complete)108 386.4 Q F0([)3.404 E F2(\255abcdefgjksuv)A F0 3.404(][)C
+F2<ad6f>-3.404 E F3(comp-option)3.404 E F0 3.404(][)C F2(\255DEI)-3.404
+E F0 3.404(][)C F2<ad41>-3.404 E F3(action)3.404 E F0 3.404(][)C F2
+<ad47>-3.404 E F3(globpat)3.404 E F0 3.404(][)C F2<ad57>-3.404 E F3(wor)
+3.404 E(dlist)-.37 E F0 3.405(][)C F2<ad46>-3.405 E F3(func-)3.405 E
+(tion)108 398.4 Q F0 2.5(][)C F2<ad43>-2.5 E F3(command)2.5 E F0(])A([)
+144 410.4 Q F2<ad58>A F3(\214lterpat)2.5 E F0 2.5(][)C F2<ad50>-2.5 E F3
+(pr)2.5 E(e\214x)-.37 E F0 2.5(][)C F2<ad53>-2.5 E F3(suf)2.5 E<8c78>
+-.18 E F0(])A F3(name)2.5 E F0([)2.5 E F3(name ...)A F0(])A F2
+(complete \255pr)108 422.4 Q F0([)2.5 E F2(\255DEI)A F0 2.5(][)C F3
+(name)-2.5 E F0(...])2.5 E .634(Specify ho)144 434.4 R 3.134(wa)-.25 G
+-.18(rg)-3.134 G .634(uments to each).18 F F3(name)3.134 E F0 .634
+(should be completed.)3.134 F .633(If the)5.634 F F2<ad70>3.133 E F0
+.633(option is supplied, or if no)3.133 F .139(options are supplied, e)
+144 446.4 R .139(xisting completion speci\214cations are printed in a w)
+-.15 F .14(ay that allo)-.1 F .14(ws them to be)-.25 F .31
+(reused as input.)144 458.4 R(The)5.31 E F2<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 F3(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 F3(name)2.81 E F0(s)A 1.207
+(are supplied, all completion speci\214cations.)144 470.4 R(The)6.207 E
+F2<ad44>3.707 E F0 1.208(option indicates that other supplied options)
+3.708 F .5(and actions should apply to the `)144 482.4 R(`def)-.74 E
 (ault')-.1 E 3('c)-.74 G .5
 (ommand completion; that is, completion attempted on)-3 F 3.455(ac)144
 494.4 S .955(ommand for which no completion has pre)-3.455 F .955
 (viously been de\214ned.)-.25 F(The)5.955 E F2<ad45>3.455 E F0 .955
-(option indicates that)3.455 F .065
-(the remaining options and actions should apply to `)144 506.4 R
-(`empty')-.74 E 2.564('c)-.74 G .064
-(ommand completion; that is, comple-)-2.564 F
-(tion attempted on a blank line.)144 518.4 Q 1.437
+(option indicates that)3.455 F .876
+(other supplied options and actions should apply to `)144 506.4 R
+(`empty')-.74 E 3.376('c)-.74 G .876(ommand completion; that is, com-)
+-3.376 F .447(pletion attempted on a blank line.)144 518.4 R(The)5.447 E
+F2<ad49>2.947 E F0 .448
+(option indicates that other supplied options and actions)2.947 F 1.335
+(should apply to completion on the inital non-assignment w)144 530.4 R
+1.334(ord on the line, or after a command)-.1 F .43(delimiter such as)
+144 542.4 R F2(;)2.93 E F0(or)2.93 E F2(|)2.93 E F0 2.93(,w)C .431
+(hich is usually command name completion.)-2.93 F .431
+(If multiple options are sup-)5.431 F .708(plied, the)144 554.4 R F2
+<ad44>3.208 E F0 .708(option tak)3.208 F .708(es precedence o)-.1 F -.15
+(ve)-.15 G(r).15 E F2<ad45>3.208 E F0 3.208(,a)C .708(nd both tak)-3.208
+F 3.208(ep)-.1 G .707(recedence o)-3.208 F -.15(ve)-.15 G(r).15 E F2
+<ad49>3.207 E F0 5.707(.I)C 3.207(fa)-5.707 G 1.007 -.15(ny o)-3.207 H
+(f).15 E F2<ad44>3.207 E F0(,)A F2<ad45>144 566.4 Q F0 2.603(,o)C(r)
+-2.603 E F2<ad49>2.603 E F0 .103(are supplied, an)2.603 F 2.603(yo)-.15
+G(ther)-2.603 E F3(name)2.603 E F0(ar)2.603 E .103
+(guments are ignored; these completions only apply to the)-.18 F
+(case speci\214ed by the option.)144 578.4 Q 1.438
 (The process of applying these completion speci\214cations when w)144
-542.4 R 1.438(ord completion is attempted is)-.1 F(described abo)144
-554.4 Q .3 -.15(ve u)-.15 H(nder).15 E F2(Pr)2.5 E
-(ogrammable Completion)-.18 E F0(.)A .556
-(Other options, if speci\214ed, ha)144 578.4 R .856 -.15(ve t)-.2 H .555
+602.4 R 1.437(ord completion is attempted is)-.1 F(described abo)144
+614.4 Q .3 -.15(ve u)-.15 H(nder).15 E F2(Pr)2.5 E
+(ogrammable Completion)-.18 E F0(.)A .555
+(Other options, if speci\214ed, ha)144 638.4 R .855 -.15(ve t)-.2 H .555
 (he follo).15 F .555(wing meanings.)-.25 F .555(The ar)5.555 F .555
-(guments to the)-.18 F F2<ad47>3.055 E F0(,)A F2<ad57>3.055 E F0 3.055
-(,a)C(nd)-3.055 E F2<ad58>3.055 E F0 .722(options \(and, if necessary)
-144 590.4 R 3.222(,t)-.65 G(he)-3.222 E F2<ad50>3.222 E F0(and)3.222 E
-F2<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 602.4 Q F2(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 F2<ad6f>144 614.4 Q
-F3(comp-option)2.5 E F0(The)184 626.4 Q F3(comp-option)2.791 E F0 .291
+(guments to the)-.18 F F2<ad47>3.056 E F0(,)A F2<ad57>3.056 E F0 3.056
+(,a)C(nd)-3.056 E F2<ad58>3.056 E F0 .723(options \(and, if necessary)
+144 650.4 R 3.223(,t)-.65 G(he)-3.223 E F2<ad50>3.223 E F0(and)3.223 E
+F2<ad53>3.223 E F0 .722
+(options\) should be quoted to protect them from e)3.223 F(xpan-)-.15 E
+(sion before the)144 662.4 Q F2(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 F2<ad6f>144 674.4 Q
+F3(comp-option)2.5 E F0(The)184 686.4 Q F3(comp-option)2.79 E F0 .291
 (controls se)2.791 F -.15(ve)-.25 G .291(ral aspects of the compspec')
 .15 F 2.791(sb)-.55 G(eha)-2.791 E .291(vior be)-.2 F .291
-(yond the simple)-.15 F(generation of completions.)184 638.4 Q F3
-(comp-option)5 E F0(may be one of:)2.5 E F2(bashdefault)184 650.4 Q F0
-.281(Perform the rest of the def)224 662.4 R(ault)-.1 E F2(bash)2.781 E
-F0 .281(completions if the compspec generates no)2.781 F(matches.)224
-674.4 Q F2(default)184 686.4 Q F0 2.876(Use readline')224 686.4 R 5.376
-(sd)-.55 G(ef)-5.376 E 2.875
-(ault \214lename completion if the compspec generates no)-.1 F(matches.)
-224 698.4 Q(GNU Bash 5.0)72 768 Q(2018 March 15)144.29 E(58)193.45 E 0
-Cg EP
+(yond the simple)-.15 F(generation of completions.)184 698.4 Q F3
+(comp-option)5 E F0(may be one of:)2.5 E(GNU Bash 5.0)72 768 Q
+(2018 August 7)145.395 E(58)194.555 E 0 Cg EP
 %%Page: 59 59
 %%BeginPageSetup
 BP
 %%EndPageSetup
 /F0 10/Times-Roman@0 SF -.35(BA)72 48 S 137.14(SH\(1\) General).35 F
 (Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E/F1 10/Times-Bold@0
-SF(dir)184 84 Q(names)-.15 E F0(Perform directory name completion if th\
-e compspec generates no matches.)224 96 Q F1(\214lenames)184 108 Q F0
--.7(Te)224 120 S .137(ll readline that the compspec generates \214lenam\
-es, so it can perform an).7 F 2.637<798c>-.15 G(le-)-2.637 E .134
-(name\255speci\214c processing \(lik)224 132 R 2.634(ea)-.1 G .134
-(dding a slash to directory names, quoting spe-)-2.634 F .45
-(cial characters, or suppressing trailing spaces\).)224 144 R .45
-(Intended to be used with shell)5.45 F(functions.)224 156 Q F1(noquote)
-184 168 Q F0 -.7(Te)224 168 S .814
+SF(bashdefault)184 84 Q F0 .281(Perform the rest of the def)224 96 R
+(ault)-.1 E F1(bash)2.781 E F0 .281
+(completions if the compspec generates no)2.781 F(matches.)224 108 Q F1
+(default)184 120 Q F0 2.875(Use readline')224 120 R 5.375(sd)-.55 G(ef)
+-5.375 E 2.876(ault \214lename completion if the compspec generates no)
+-.1 F(matches.)224 132 Q F1(dir)184 144 Q(names)-.15 E F0(Perform direc\
+tory name completion if the compspec generates no matches.)224 156 Q F1
+(\214lenames)184 168 Q F0 -.7(Te)224 180 S .137(ll readline that the co\
+mpspec generates \214lenames, so it can perform an).7 F 2.636<798c>-.15
+G(le-)-2.636 E .134(name\255speci\214c processing \(lik)224 192 R 2.634
+(ea)-.1 G .134(dding a slash to directory names, quoting spe-)-2.634 F
+.45(cial characters, or suppressing trailing spaces\).)224 204 R .45
+(Intended to be used with shell)5.45 F(functions.)224 216 Q F1(noquote)
+184 228 Q F0 -.7(Te)224 228 S .814
 (ll readline not to quote the completed w).7 F .814(ords if the)-.1 F
-3.314(ya)-.15 G .814(re \214lenames \(quoting)-3.314 F
-(\214lenames is the def)224 180 Q(ault\).)-.1 E F1(nosort)184 192 Q F0
--.7(Te)224 192 S(ll readline not to sort the list of possible completio\
-ns alphabetically).7 E(.)-.65 E F1(nospace)184 204 Q F0 -.7(Te)224 204 S
+3.314(ya)-.15 G .815(re \214lenames \(quoting)-3.314 F
+(\214lenames is the def)224 240 Q(ault\).)-.1 E F1(nosort)184 252 Q F0
+-.7(Te)224 252 S(ll readline not to sort the list of possible completio\
+ns alphabetically).7 E(.)-.65 E F1(nospace)184 264 Q F0 -.7(Te)224 264 S
 .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 216 Q F1
-(plusdirs)184 228 Q F0 1.985(After an)224 228 R 4.485(ym)-.15 G 1.985
+F .22(ords completed at the end)-.1 F(of the line.)224 276 Q F1
+(plusdirs)184 288 Q F0 1.985(After an)224 288 R 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 240 R 3.084(ym)-.15 G .584
-(atches are added to the results of the other)-3.084 F(actions.)224 252
-Q F1<ad41>144 264 Q/F2 10/Times-Italic@0 SF(action)2.5 E F0(The)184 276
+.584(completion is attempted and an)224 300 R 3.084(ym)-.15 G .584
+(atches are added to the results of the other)-3.084 F(actions.)224 312
+Q F1<ad41>144 324 Q/F2 10/Times-Italic@0 SF(action)2.5 E F0(The)184 336
 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
-288 Q F0(Alias names.)224 288 Q(May also be speci\214ed as)5 E F1<ad61>
-2.5 E F0(.)A F1(arrayv)184 300 Q(ar)-.1 E F0(Array v)224 312 Q
-(ariable names.)-.25 E F1(binding)184 324 Q(Readline)224 324 Q F0 -.1
-(ke)2.5 G 2.5(yb)-.05 G(inding names.)-2.5 E F1 -.2(bu)184 336 S(iltin)
-.2 E F0(Names of shell b)224 336 Q(uiltin commands.)-.2 E
-(May also be speci\214ed as)5 E F1<ad62>2.5 E F0(.)A F1(command)184 348
-Q F0(Command names.)224 360 Q(May also be speci\214ed as)5 E F1<ad63>2.5
-E F0(.)A F1(dir)184 372 Q(ectory)-.18 E F0(Directory names.)224 384 Q
-(May also be speci\214ed as)5 E F1<ad64>2.5 E F0(.)A F1(disabled)184 396
-Q F0(Names of disabled shell b)224 408 Q(uiltins.)-.2 E F1(enabled)184
-420 Q F0(Names of enabled shell b)224 420 Q(uiltins.)-.2 E F1(export)184
-432 Q F0(Names of e)224 432 Q(xported shell v)-.15 E 2.5(ariables. May)
+348 Q F0(Alias names.)224 348 Q(May also be speci\214ed as)5 E F1<ad61>
+2.5 E F0(.)A F1(arrayv)184 360 Q(ar)-.1 E F0(Array v)224 372 Q
+(ariable names.)-.25 E F1(binding)184 384 Q(Readline)224 384 Q F0 -.1
+(ke)2.5 G 2.5(yb)-.05 G(inding names.)-2.5 E F1 -.2(bu)184 396 S(iltin)
+.2 E F0(Names of shell b)224 396 Q(uiltin commands.)-.2 E
+(May also be speci\214ed as)5 E F1<ad62>2.5 E F0(.)A F1(command)184 408
+Q F0(Command names.)224 420 Q(May also be speci\214ed as)5 E F1<ad63>2.5
+E F0(.)A F1(dir)184 432 Q(ectory)-.18 E F0(Directory names.)224 444 Q
+(May also be speci\214ed as)5 E F1<ad64>2.5 E F0(.)A F1(disabled)184 456
+Q F0(Names of disabled shell b)224 468 Q(uiltins.)-.2 E F1(enabled)184
+480 Q F0(Names of enabled shell b)224 480 Q(uiltins.)-.2 E F1(export)184
+492 Q F0(Names of e)224 492 Q(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
-444 Q F0(File names.)224 444 Q(May also be speci\214ed as)5 E F1<ad66>
-2.5 E F0(.)A F1(function)184 456 Q F0(Names of shell functions.)224 468
-Q F1(gr)184 480 Q(oup)-.18 E F0(Group names.)224 480 Q
+504 Q F0(File names.)224 504 Q(May also be speci\214ed as)5 E F1<ad66>
+2.5 E F0(.)A F1(function)184 516 Q F0(Names of shell functions.)224 528
+Q F1(gr)184 540 Q(oup)-.18 E F0(Group names.)224 540 Q
 (May also be speci\214ed as)5 E F1<ad67>2.5 E F0(.)A F1(helptopic)184
-492 Q F0(Help topics as accepted by the)224 504 Q F1(help)2.5 E F0 -.2
-(bu)2.5 G(iltin.).2 E F1(hostname)184 516 Q F0(Hostnames, as tak)224 528
+552 Q F0(Help topics as accepted by the)224 564 Q F1(help)2.5 E F0 -.2
+(bu)2.5 G(iltin.).2 E F1(hostname)184 576 Q F0(Hostnames, as tak)224 588
 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 540 Q F0
-(Job names, if job control is acti)224 540 Q -.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 552 S
-(yw).1 E(ord)-.1 E F0(Shell reserv)224 564 Q(ed w)-.15 E 2.5(ords. May)
+(HOSTFILE)2.5 E F0(shell v)2.25 E(ariable.)-.25 E F1(job)184 600 Q F0
+(Job names, if job control is acti)224 600 Q -.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 612 S
+(yw).1 E(ord)-.1 E F0(Shell reserv)224 624 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
-576 Q F0(Names of running jobs, if job control is acti)224 576 Q -.15
-(ve)-.25 G(.).15 E F1(ser)184 588 Q(vice)-.1 E F0(Service names.)224 588
-Q(May also be speci\214ed as)5 E F1<ad73>2.5 E F0(.)A F1(setopt)184 600
-Q F0 -1.11(Va)224 600 S(lid ar)1.11 E(guments for the)-.18 E F1<ad6f>2.5
+636 Q F0(Names of running jobs, if job control is acti)224 636 Q -.15
+(ve)-.25 G(.).15 E F1(ser)184 648 Q(vice)-.1 E F0(Service names.)224 648
+Q(May also be speci\214ed as)5 E F1<ad73>2.5 E F0(.)A F1(setopt)184 660
+Q F0 -1.11(Va)224 660 S(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 612 Q F0(Shell option names as accepted by the)224 612 Q F1
-(shopt)2.5 E F0 -.2(bu)2.5 G(iltin.).2 E F1(signal)184 624 Q F0
-(Signal names.)224 624 Q F1(stopped)184 636 Q F0
-(Names of stopped jobs, if job control is acti)224 636 Q -.15(ve)-.25 G
-(.).15 E F1(user)184 648 Q F0(User names.)224 648 Q
-(May also be speci\214ed as)5 E F1<ad75>2.5 E F0(.)A F1 -.1(va)184 660 S
-(riable).1 E F0(Names of all shell v)224 660 Q 2.5(ariables. May)-.25 F
-(also be speci\214ed as)2.5 E F1<ad76>2.5 E F0(.)A F1<ad43>144 672 Q F2
-(command)2.5 E(command)184 684 Q F0 1.056(is e)3.556 F -.15(xe)-.15 G
-1.056(cuted in a subshell en).15 F 1.056
-(vironment, and its output is used as the possible)-.4 F(completions.)
-184 696 Q(GNU Bash 5.0)72 768 Q(2018 March 15)144.29 E(59)193.45 E 0 Cg
-EP
+(shopt)184 672 Q F0(Shell option names as accepted by the)224 672 Q F1
+(shopt)2.5 E F0 -.2(bu)2.5 G(iltin.).2 E F1(signal)184 684 Q F0
+(Signal names.)224 684 Q F1(stopped)184 696 Q F0
+(Names of stopped jobs, if job control is acti)224 696 Q -.15(ve)-.25 G
+(.).15 E F1(user)184 708 Q F0(User names.)224 708 Q
+(May also be speci\214ed as)5 E F1<ad75>2.5 E F0(.)A(GNU Bash 5.0)72 768
+Q(2018 August 7)145.395 E(59)194.555 E 0 Cg EP
 %%Page: 60 60
 %%BeginPageSetup
 BP
 %%EndPageSetup
 /F0 10/Times-Roman@0 SF -.35(BA)72 48 S 137.14(SH\(1\) General).35 F
 (Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E/F1 10/Times-Bold@0
-SF<ad46>144 84 Q/F2 10/Times-Italic@0 SF(function)2.5 E F0 .113
-(The shell function)184 96 R F2(function)2.614 E F0 .114(is e)2.614 F
+SF -.1(va)184 84 S(riable).1 E F0(Names of all shell v)224 84 Q 2.5
+(ariables. May)-.25 F(also be speci\214ed as)2.5 E F1<ad76>2.5 E F0(.)A
+F1<ad43>144 96 Q/F2 10/Times-Italic@0 SF(command)2.5 E(command)184 108 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 120 Q F1<ad46>144 132 Q F2(function)2.5 E F0 .114
+(The shell function)184 144 R F2(function)2.614 E F0 .114(is e)2.614 F
 -.15(xe)-.15 G .114(cuted in the current shell en).15 F 2.614
-(vironment. When)-.4 F .114(the func-)2.614 F .817(tion is e)184 108 R
--.15(xe)-.15 G .817(cuted, the \214rst ar).15 F .817(gument \()-.18 F F1
-($1)A F0 3.316(\)i)C 3.316(st)-3.316 G .816
+(vironment. When)-.4 F .113(the func-)2.613 F .816(tion is e)184 156 R
+-.15(xe)-.15 G .816(cuted, the \214rst ar).15 F .816(gument \()-.18 F F1
+($1)A F0 3.316(\)i)C 3.316(st)-3.316 G .817
 (he name of the command whose ar)-3.316 F(guments)-.18 E 1.407
-(are being completed, the second ar)184 120 R 1.407(gument \()-.18 F F1
+(are being completed, the second ar)184 168 R 1.407(gument \()-.18 F F1
 ($2)A F0 3.907(\)i)C 3.907(st)-3.907 G 1.407(he w)-3.907 F 1.407
-(ord being completed, and the)-.1 F .104(third ar)184 132 R .104
-(gument \()-.18 F F1($3)A F0 2.604(\)i)C 2.604(st)-2.604 G .104(he w)
--2.604 F .104(ord preceding the w)-.1 F .103
-(ord being completed on the current com-)-.1 F .101(mand line.)184 144 R
-.101(When it \214nishes, the possible completions are retrie)5.101 F
--.15(ve)-.25 G 2.602(df).15 G .102(rom the v)-2.602 F .102(alue of the)
--.25 F/F3 9/Times-Bold@0 SF(COMPREPL)184 156 Q(Y)-.828 E F0(array v)2.25
-E(ariable.)-.25 E F1<ad47>144 168 Q F2(globpat)2.5 E F0 1.008
-(The pathname e)184 180 R 1.008(xpansion pattern)-.15 F F2(globpat)3.507
-E F0 1.007(is e)3.507 F 1.007(xpanded to generate the possible comple-)
--.15 F(tions.)184 192 Q F1<ad50>144 204 Q F2(pr)2.5 E(e\214x)-.37 E(pr)
-184 216 Q(e\214x)-.37 E F0 .534(is added at the be)3.034 F .534
+(ord being completed, and the)-.1 F .103(third ar)184 180 R .103
+(gument \()-.18 F F1($3)A F0 2.603(\)i)C 2.603(st)-2.603 G .103(he w)
+-2.603 F .104(ord preceding the w)-.1 F .104
+(ord being completed on the current com-)-.1 F .102(mand line.)184 192 R
+.102(When it \214nishes, the possible completions are retrie)5.102 F
+-.15(ve)-.25 G 2.601(df).15 G .101(rom the v)-2.601 F .101(alue of the)
+-.25 F/F3 9/Times-Bold@0 SF(COMPREPL)184 204 Q(Y)-.828 E F0(array v)2.25
+E(ariable.)-.25 E F1<ad47>144 216 Q F2(globpat)2.5 E F0 1.007
+(The pathname e)184 228 R 1.007(xpansion pattern)-.15 F F2(globpat)3.507
+E F0 1.007(is e)3.507 F 1.008(xpanded to generate the possible comple-)
+-.15 F(tions.)184 240 Q F1<ad50>144 252 Q F2(pr)2.5 E(e\214x)-.37 E(pr)
+184 264 Q(e\214x)-.37 E F0 .535(is added at the be)3.035 F .534
 (ginning of each possible completion after all other options ha)-.15 F
--.15(ve)-.2 G(been applied.)184 228 Q F1<ad53>144 240 Q F2(suf)2.5 E
-<8c78>-.18 E(suf)184 240 Q<8c78>-.18 E F0
+-.15(ve)-.2 G(been applied.)184 276 Q F1<ad53>144 288 Q F2(suf)2.5 E
+<8c78>-.18 E(suf)184 288 Q<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 F1<ad57>144 252 Q F2(wor)2.5 E
-(dlist)-.37 E F0(The)184 264 Q F2(wor)3.64 E(dlist)-.37 E F0 1.14
-(is split using the characters in the)3.64 F F3(IFS)3.64 E F0 1.139
-(special v)3.39 F 1.139(ariable as delimiters, and)-.25 F .98
-(each resultant w)184 276 R .98(ord is e)-.1 F 3.481(xpanded. Shell)-.15
-F .981(quoting is honored within)3.481 F F2(wor)3.481 E(dlist)-.37 E F0
-3.481(,i)C 3.481(no)-3.481 G .981(rder to)-3.481 F(pro)184 288 Q .766
-(vide a mechanism for the w)-.15 F .765
+E .3 -.15(ve b)-.2 H(een applied.).15 E F1<ad57>144 300 Q F2(wor)2.5 E
+(dlist)-.37 E F0(The)184 312 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 .981
+(each resultant w)184 324 R .981(ord is e)-.1 F 3.481(xpanded. Shell)
+-.15 F .981(quoting is honored within)3.481 F F2(wor)3.481 E(dlist)-.37
+E F0 3.48(,i)C 3.48(no)-3.48 G .98(rder to)-3.48 F(pro)184 336 Q .765
+(vide a mechanism for the w)-.15 F .766
 (ords to contain shell metacharacters or characters in the)-.1 F -.25
-(va)184 300 S 1.964(lue of).25 F F3(IFS)4.464 E/F4 9/Times-Roman@0 SF(.)
+(va)184 348 S 1.965(lue of).25 F F3(IFS)4.465 E/F4 9/Times-Roman@0 SF(.)
 A F0 1.964
 (The possible completions are the members of the resultant list which)
-6.464 F(match the w)184 312 Q(ord being completed.)-.1 E F1<ad58>144 324
-Q F2(\214lterpat)2.5 E(\214lterpat)184 336 Q F0 .456
-(is a pattern as used for pathname e)2.956 F 2.956(xpansion. It)-.15 F
-.455(is applied to the list of possible)2.956 F 1.596
-(completions generated by the preceding options and ar)184 348 R 1.596
-(guments, and each completion)-.18 F(matching)184 360 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 372 Q 2.5(yc)-.15 G
+6.465 F(match the w)184 360 Q(ord being completed.)-.1 E F1<ad58>144 372
+Q F2(\214lterpat)2.5 E(\214lterpat)184 384 Q F0 .455
+(is a pattern as used for pathname e)2.955 F 2.956(xpansion. It)-.15 F
+.456(is applied to the list of possible)2.956 F 1.596
+(completions generated by the preceding options and ar)184 396 R 1.596
+(guments, and each completion)-.18 F(matching)184 408 Q F2(\214lterpat)
+3.204 E F0 .704(is remo)3.204 F -.15(ve)-.15 G 3.204(df).15 G .704
+(rom the list.)-3.204 F 3.204(Al)5.704 G(eading)-3.204 E F1(!)3.204 E F0
+(in)3.204 E F2(\214lterpat)3.205 E F0(ne)3.205 E -.05(ga)-.15 G .705
+(tes the pattern;).05 F(in this case, an)184 420 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 .466(The return v)144 388.8 R .466
+-.15(ve)-.15 G(d.).15 E .467(The return v)144 436.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.967 E F0
-(or)2.967 E F1<ad72>2.967 E F0 .467(is sup-)2.967 F 1.362
-(plied without a)144 400.8 R F2(name)3.862 E F0(ar)3.862 E 1.361
-(gument, an attempt is made to remo)-.18 F 1.661 -.15(ve a c)-.15 H
-1.361(ompletion speci\214cation for a).15 F F2(name)144 412.8 Q F0
+(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 448.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 460.8 Q F0
 (for which no speci\214cation e)2.5 E
 (xists, or an error occurs adding a completion speci\214cation.)-.15 E
-F1(compopt)108 429.6 Q F0([)2.5 E F1<ad6f>A F2(option)2.5 E F0 2.5(][)C
-F1(\255DE)-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 441.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(cuting).15 E .726
-(completion if no)144 453.6 R F2(name)3.226 E F0 3.226(sa)C .726
-(re supplied.)-3.226 F .725(If no)5.725 F F2(option)3.225 E F0 3.225(sa)
-C .725(re gi)-3.225 F -.15(ve)-.25 G .725
-(n, display the completion options for).15 F(each)144 465.6 Q F2(name)
-3.223 E F0 .723(or the current completion.)3.223 F .724(The possible v)
+F1(compopt)108 477.6 Q F0([)2.5 E F1<ad6f>A F2(option)2.5 E F0 2.5(][)C
+F1(\255DEI)-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 489.6
+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(cuting).15 E .725
+(completion if no)144 501.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 513.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 .724(alid for the)-.25 F F1(com-)3.224 E(plete)144 477.6 Q F0 -.2(bu)
-2.798 G .298(iltin described abo).2 F -.15(ve)-.15 G 5.297(.T).15 G(he)
--5.297 E F1<ad44>2.797 E F0 .297
-(option indicates that the remaining options should apply to)2.797 F
-1.227(the `)144 489.6 R(`def)-.74 E(ault')-.1 E 3.727('c)-.74 G 1.228(o\
+F .723(alid for the)-.25 F F1(com-)3.223 E(plete)144 525.6 Q F0 -.2(bu)
+2.677 G .177(iltin described abo).2 F -.15(ve)-.15 G 5.178(.T).15 G(he)
+-5.178 E F1<ad44>2.678 E F0 .178
+(option indicates that other supplied options should apply to)2.678 F
+1.228(the `)144 537.6 R(`def)-.74 E(ault')-.1 E 3.728('c)-.74 G 1.228(o\
 mmand completion; that is, completion attempted on a command for which \
-no)-3.727 F 2.178(completion has pre)144 501.6 R 2.178
-(viously been de\214ned.)-.25 F(The)7.178 E F1<ad45>4.678 E F0 2.177
-(option indicates that the remaining options)4.677 F(should apply to `)
-144 513.6 Q(`empty')-.74 E 2.5('c)-.74 G
-(ommand completion; that is, completion attempted on a blank line.)-2.5
-E 1.387(The return v)144 537.6 R 1.387(alue is true unless an in)-.25 F
--.25(va)-.4 G 1.388
+no)-3.728 F 2.038(completion has pre)144 549.6 R 2.038
+(viously been de\214ned.)-.25 F(The)7.038 E F1<ad45>4.538 E F0 2.039
+(option indicates that other supplied options)4.538 F 1.539
+(should apply to `)144 561.6 R(`empty')-.74 E 4.039('c)-.74 G 1.538
+(ommand completion; that is, completion attempted on a blank line.)
+-4.039 F(The)144 573.6 Q F1<ad49>3.205 E F0 .705(option indicates that \
+other supplied options should apply to completion on the inital non-)
+3.205 F .868(assignment w)144 585.6 R .868
+(ord on the line, or after a command delimiter such as)-.1 F F1(;)3.368
+E F0(or)3.368 E F1(|)3.368 E F0 3.367(,w)C .867(hich is usually com-)
+-3.367 F(mand name completion.)144 597.6 Q 1.387(The return v)144 621.6
+R 1.387(alue is true unless an in)-.25 F -.25(va)-.4 G 1.388
 (lid option is supplied, an attempt is made to modify the).25 F
-(options for a)144 549.6 Q F2(name)2.5 E F0
+(options for a)144 633.6 Q F2(name)2.5 E F0
 (for which no completion speci\214cation e)2.5 E
-(xists, or an output error occurs.)-.15 E F1(continue)108 566.4 Q F0([)
-2.5 E F2(n)A F0(])A 1.754(Resume the ne)144 578.4 R 1.754
+(xists, or an output error occurs.)-.15 E F1(continue)108 650.4 Q F0([)
+2.5 E F2(n)A F0(])A 1.754(Resume the ne)144 662.4 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 590.4 R F2(n)3.709 E F0
+(is speci\214ed,)4.493 F 1.208(resume at the)144 674.4 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/F5 10
 /Symbol SF<b3>3.709 E F0 3.709(1. If)3.709 F F2(n)4.069 E F0 1.209
 (is greater than the number of enclosing)3.949 F .514
-(loops, the last enclosing loop \(the `)144 602.4 R(`top-le)-.74 E -.15
+(loops, the last enclosing loop \(the `)144 686.4 R(`top-le)-.74 E -.15
 (ve)-.25 G(l').15 E 3.014('l)-.74 G .514(oop\) is resumed.)-3.014 F .513
 (The return v)5.513 F .513(alue is 0 unless)-.25 F F2(n)3.013 E F0(is)
-3.013 E(not greater than or equal to 1.)144 614.4 Q F1(declar)108 631.2
-Q(e)-.18 E F0([)2.5 E F1(\255aAfFgilnrtux)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 643.2 Q F0([)2.5 E F1(\255aAfFgilnrtux)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 655.2 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 667.2 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 679.2 Q F2(name)2.774 E
-F0(ar)2.774 E .274(guments, additional options, other than)-.18 F F1
-<ad66>2.775 E F0(and)2.775 E F1<ad46>2.775 E F0 2.775(,a)C .275
-(re ignored.)-2.775 F(When)5.275 E F1<ad70>2.775 E F0 .275(is supplied)
-2.775 F(without)144 691.2 Q F2(name)4.814 E F0(ar)4.814 E 2.314
-(guments, it will display the attrib)-.18 F 2.314(utes and v)-.2 F 2.313
-(alues of all v)-.25 F 2.313(ariables ha)-.25 F 2.313(ving the)-.2 F
-(attrib)144 703.2 Q 1.181(utes speci\214ed by the additional options.)
--.2 F 1.182(If no other options are supplied with)6.181 F F1<ad70>3.682
-E F0(,)A F1(declar)3.682 E(e)-.18 E F0 .62(will display the attrib)144
-715.2 R .62(utes and v)-.2 F .62(alues of all shell v)-.25 F 3.12
-(ariables. The)-.25 F F1<ad66>3.12 E F0 .62
-(option will restrict the display)3.12 F 1.29(to shell functions.)144
-727.2 R(The)6.29 E F1<ad46>3.79 E F0 1.291(option inhibits the display \
-of function de\214nitions; only the function)3.791 F(GNU Bash 5.0)72 768
-Q(2018 March 15)144.29 E(60)193.45 E 0 Cg EP
+3.013 E(not greater than or equal to 1.)144 698.4 Q(GNU Bash 5.0)72 768
+Q(2018 August 7)145.395 E(60)194.555 E 0 Cg EP
 %%Page: 61 61
 %%BeginPageSetup
 BP
 %%EndPageSetup
 /F0 10/Times-Roman@0 SF -.35(BA)72 48 S 137.14(SH\(1\) General).35 F
-(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E .948
-(name and attrib)144 84 R .948(utes are printed.)-.2 F .948(If the)5.948
-F/F1 10/Times-Bold@0 SF(extdeb)3.448 E(ug)-.2 E F0 .948
+(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E/F1 10/Times-Bold@0
+SF(declar)108 84 Q(e)-.18 E F0([)2.5 E F1(\255aAfFgilnrtux)A F0 2.5(][)C
+F1<ad70>-2.5 E F0 2.5(][)C/F2 10/Times-Italic@0 SF(name)-2.5 E F0([=)A
+F2(value)A F0 2.5(].)C(..])-2.5 E F1(typeset)108 96 Q F0([)2.5 E F1
+(\255aAfFgilnrtux)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 108 R
+1.264(ariables and/or gi)-.25 F 1.564 -.15(ve t)-.25 H 1.264(hem attrib)
+.15 F 3.765(utes. If)-.2 F(no)3.765 E F2(name)3.765 E F0 3.765(sa)C
+1.265(re gi)-3.765 F -.15(ve)-.25 G 3.765(nt).15 G 1.265
+(hen display the v)-3.765 F 1.265(alues of)-.25 F -.25(va)144 120 S
+3.483(riables. The).25 F F1<ad70>3.483 E F0 .983
+(option will display the attrib)3.483 F .983(utes and v)-.2 F .982
+(alues of each)-.25 F F2(name)3.482 E F0 5.982(.W).18 G(hen)-5.982 E F1
+<ad70>3.482 E F0 .982(is used)3.482 F(with)144 132 Q F2(name)2.774 E F0
+(ar)2.774 E .274(guments, additional options, other than)-.18 F F1<ad66>
+2.775 E F0(and)2.775 E F1<ad46>2.775 E F0 2.775(,a)C .275(re ignored.)
+-2.775 F(When)5.275 E F1<ad70>2.775 E F0 .275(is supplied)2.775 F
+(without)144 144 Q F2(name)4.814 E F0(ar)4.814 E 2.314
+(guments, it will display the attrib)-.18 F 2.314(utes and v)-.2 F 2.313
+(alues of all v)-.25 F 2.313(ariables ha)-.25 F 2.313(ving the)-.2 F
+(attrib)144 156 Q 1.181(utes speci\214ed by the additional options.)-.2
+F 1.182(If no other options are supplied with)6.181 F F1<ad70>3.682 E F0
+(,)A F1(declar)3.682 E(e)-.18 E F0 .62(will display the attrib)144 168 R
+.62(utes and v)-.2 F .62(alues of all shell v)-.25 F 3.12(ariables. The)
+-.25 F F1<ad66>3.12 E F0 .62(option will restrict the display)3.12 F
+1.29(to shell functions.)144 180 R(The)6.29 E F1<ad46>3.79 E F0 1.291(o\
+ption inhibits the display of function de\214nitions; only the function)
+3.791 F .948(name and attrib)144 192 R .948(utes are printed.)-.2 F .948
+(If the)5.948 F F1(extdeb)3.448 E(ug)-.2 E F0 .948
 (shell option is enabled using)3.448 F F1(shopt)3.448 E F0 3.448(,t)C
 .948(he source)-3.448 F 1.69(\214le name and line number where each)144
-96 R/F2 10/Times-Italic@0 SF(name)4.19 E F0 1.69
-(is de\214ned are displayed as well.)4.19 F(The)6.69 E F1<ad46>4.19 E F0
-(option)4.19 E(implies)144 108 Q F1<ad66>3.892 E F0 6.392(.T)C(he)-6.392
-E F1<ad67>3.892 E F0 1.391(option forces v)3.892 F 1.391
+204 R F2(name)4.19 E F0 1.69(is de\214ned are displayed as well.)4.19 F
+(The)6.69 E F1<ad46>4.19 E F0(option)4.19 E(implies)144 216 Q F1<ad66>
+3.892 E F0 6.392(.T)C(he)-6.392 E F1<ad67>3.892 E F0 1.391
+(option forces v)3.892 F 1.391
 (ariables to be created or modi\214ed at the global scope, e)-.25 F -.15
-(ve)-.25 G(n).15 E(when)144 120 Q F1(declar)4.382 E(e)-.18 E F0 1.882
+(ve)-.25 G(n).15 E(when)144 228 Q F1(declar)4.382 E(e)-.18 E F0 1.882
 (is e)4.382 F -.15(xe)-.15 G 1.882(cuted in a shell function.).15 F
 1.883(It is ignored in all other cases.)6.882 F 1.883(The follo)6.883 F
-(wing)-.25 E .794(options can be used to restrict output to v)144 132 R
+(wing)-.25 E .794(options can be used to restrict output to v)144 240 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 144 Q(utes:)-.2 E F1
-<ad61>144 156 Q F0(Each)180 156 Q F2(name)2.5 E F0(is an inde)2.5 E -.15
+1.093 -.15(ve v)-.25 H(ariables)-.1 E(attrib)144 252 Q(utes:)-.2 E F1
+<ad61>144 264 Q F0(Each)180 264 Q F2(name)2.5 E F0(is an inde)2.5 E -.15
 (xe)-.15 G 2.5(da).15 G(rray v)-2.5 E(ariable \(see)-.25 E F1(Arrays)2.5
-E F0(abo)2.5 E -.15(ve)-.15 G(\).).15 E F1<ad41>144 168 Q F0(Each)180
-168 Q F2(name)2.5 E F0(is an associati)2.5 E .3 -.15(ve a)-.25 H(rray v)
+E F0(abo)2.5 E -.15(ve)-.15 G(\).).15 E F1<ad41>144 276 Q F0(Each)180
+276 Q F2(name)2.5 E F0(is an associati)2.5 E .3 -.15(ve a)-.25 H(rray v)
 .15 E(ariable \(see)-.25 E F1(Arrays)2.5 E F0(abo)2.5 E -.15(ve)-.15 G
-(\).).15 E F1<ad66>144 180 Q F0(Use function names only)180 180 Q(.)-.65
-E F1<ad69>144 192 Q F0 .557(The v)180 192 R .558
+(\).).15 E F1<ad66>144 288 Q F0(Use function names only)180 288 Q(.)-.65
+E F1<ad69>144 300 Q F0 .557(The v)180 300 R .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 204 Q F0(abo)2.25
+(ARITHMETIC EV)3.058 F(ALU)-1.215 E(A-)-.54 E(TION)180 312 Q F0(abo)2.25
 E -.15(ve)-.15 G 2.5(\)i).15 G 2.5(sp)-2.5 G(erformed when the v)-2.5 E
-(ariable is assigned a v)-.25 E(alue.)-.25 E F1<ad6c>144 216 Q F0 .91
-(When the v)180 216 R .909(ariable is assigned a v)-.25 F .909
+(ariable is assigned a v)-.25 E(alue.)-.25 E F1<ad6c>144 324 Q F0 .91
+(When the v)180 324 R .909(ariable is assigned a v)-.25 F .909
 (alue, all upper)-.25 F .909(-case characters are con)-.2 F -.15(ve)-.4
-G .909(rted to lo).15 F(wer)-.25 E(-)-.2 E 2.5(case. The)180 228 R
-(upper)2.5 E(-case attrib)-.2 E(ute is disabled.)-.2 E F1<ad6e>144 240 Q
-F0(Gi)180 240 Q 1.619 -.15(ve e)-.25 H(ach).15 E F2(name)3.819 E F0(the)
+G .909(rted to lo).15 F(wer)-.25 E(-)-.2 E 2.5(case. The)180 336 R
+(upper)2.5 E(-case attrib)-.2 E(ute is disabled.)-.2 E F1<ad6e>144 348 Q
+F0(Gi)180 348 Q 1.619 -.15(ve e)-.25 H(ach).15 E F2(name)3.819 E F0(the)
 3.819 E F2(namer)3.819 E(ef)-.37 E F0(attrib)3.819 E 1.319
 (ute, making it a name reference to another v)-.2 F(ariable.)-.25 E
-1.519(That other v)180 252 R 1.519(ariable is de\214ned by the v)-.25 F
+1.519(That other v)180 360 R 1.519(ariable is de\214ned by the v)-.25 F
 1.518(alue of)-.25 F F2(name)4.018 E F0 6.518(.A)C 1.518
-(ll references, assignments, and)-6.518 F(attrib)180 264 Q .226
+(ll references, assignments, and)-6.518 F(attrib)180 372 Q .226
 (ute modi\214cations to)-.2 F F2(name)2.726 E F0 2.726(,e)C .226
 (xcept those using or changing the)-2.876 F F1<ad6e>2.726 E F0(attrib)
-2.726 E .227(ute itself, are)-.2 F .809(performed on the v)180 276 R
+2.726 E .227(ute itself, are)-.2 F .809(performed on the v)180 384 R
 .809(ariable referenced by)-.25 F F2(name)3.308 E F0 1.908 -.55('s v)D
 3.308(alue. The).3 F .808(nameref attrib)3.308 F .808(ute cannot be)-.2
-F(applied to array v)180 288 Q(ariables.)-.25 E F1<ad72>144 300 Q F0
-(Mak)180 300 Q(e)-.1 E F2(name)5.046 E F0 5.046(sr)C(eadonly)-5.046 E
+F(applied to array v)180 396 Q(ariables.)-.25 E F1<ad72>144 408 Q F0
+(Mak)180 408 Q(e)-.1 E F2(name)5.046 E F0 5.046(sr)C(eadonly)-5.046 E
 7.546(.T)-.65 G 2.546(hese names cannot then be assigned v)-7.546 F
-2.547(alues by subsequent)-.25 F(assignment statements or unset.)180 312
-Q F1<ad74>144 324 Q F0(Gi)180 324 Q .73 -.15(ve e)-.25 H(ach).15 E F2
+2.547(alues by subsequent)-.25 F(assignment statements or unset.)180 420
+Q F1<ad74>144 432 Q F0(Gi)180 432 Q .73 -.15(ve e)-.25 H(ach).15 E F2
 (name)2.93 E F0(the)2.929 E F2(tr)2.929 E(ace)-.15 E F0(attrib)2.929 E
 2.929(ute. T)-.2 F .429(raced functions inherit the)-.35 F F1(DEB)2.929
 E(UG)-.1 E F0(and)2.929 E F1(RETURN)2.929 E F0
-(traps from the calling shell.)180 336 Q(The trace attrib)5 E
-(ute has no special meaning for v)-.2 E(ariables.)-.25 E F1<ad75>144 348
-Q F0 .909(When the v)180 348 R .909(ariable is assigned a v)-.25 F .909
+(traps from the calling shell.)180 444 Q(The trace attrib)5 E
+(ute has no special meaning for v)-.2 E(ariables.)-.25 E F1<ad75>144 456
+Q F0 .909(When the v)180 456 R .909(ariable is assigned a v)-.25 F .909
 (alue, all lo)-.25 F(wer)-.25 E .909(-case characters are con)-.2 F -.15
-(ve)-.4 G .91(rted to upper).15 F(-)-.2 E 2.5(case. The)180 360 R(lo)2.5
-E(wer)-.25 E(-case attrib)-.2 E(ute is disabled.)-.2 E F1<ad78>144 372 Q
-F0(Mark)180 372 Q F2(name)2.5 E F0 2.5(sf)C(or e)-2.5 E
+(ve)-.4 G .91(rted to upper).15 F(-)-.2 E 2.5(case. The)180 468 R(lo)2.5
+E(wer)-.25 E(-case attrib)-.2 E(ute is disabled.)-.2 E F1<ad78>144 480 Q
+F0(Mark)180 480 Q 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 388.8 R 2.621(ft)-.25 G .121
+(Using `+' instead of `\255' turns of)144 496.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 .644
-(to destro)144 400.8 R 3.144(ya)-.1 G 3.144(na)-3.144 G .644(rray v)
+(to destro)144 508.8 R 3.144(ya)-.1 G 3.144(na)-3.144 G .644(rray v)
 -3.144 F .644(ariable and)-.25 F F1(+r)3.145 E F0 .645(will not remo)
 3.145 F .945 -.15(ve t)-.15 H .645(he readonly attrib).15 F 3.145
-(ute. When)-.2 F .645(used in a func-)3.145 F(tion,)144 412.8 Q F1
+(ute. When)-.2 F .645(used in a func-)3.145 F(tion,)144 520.8 Q F1
 (declar)2.835 E(e)-.18 E F0(and)2.835 E F1(typeset)2.835 E F0(mak)2.835
 E 2.835(ee)-.1 G(ach)-2.835 E F2(name)2.835 E F0 .335
 (local, as with the)2.835 F F1(local)2.835 E F0 .335
 (command, unless the)2.835 F F1<ad67>2.835 E F0(option)2.835 E 1.282
-(is supplied.)144 424.8 R 1.282(If a v)6.282 F 1.283
+(is supplied.)144 532.8 R 1.282(If a v)6.282 F 1.283
 (ariable name is follo)-.25 F 1.283(wed by =)-.25 F F2(value)A F0 3.783
 (,t)C 1.283(he v)-3.783 F 1.283(alue of the v)-.25 F 1.283
 (ariable is set to)-.25 F F2(value)3.783 E F0(.)A .927(When using)144
-436.8 R F1<ad61>3.427 E F0(or)3.427 E F1<ad41>3.427 E F0 .926
+544.8 R F1<ad61>3.427 E F0(or)3.427 E F1<ad41>3.427 E F0 .926
 (and the compound assignment syntax to create array v)3.427 F .926
-(ariables, additional)-.25 F(attrib)144 448.8 Q .592(utes do not tak)-.2
+(ariables, additional)-.25 F(attrib)144 556.8 Q .592(utes do not tak)-.2
 F 3.092(ee)-.1 G -.25(ff)-3.092 G .592
 (ect until subsequent assignments.).25 F .592(The return v)5.592 F .592
 (alue is 0 unless an in)-.25 F -.25(va)-.4 G(lid).25 E .429
 (option is encountered, an attempt is made to de\214ne a function using)
-144 460.8 R/F4 10/Courier@0 SF .428(\255f foo=bar)2.929 F F0 2.928(,a)C
+144 568.8 R/F4 10/Courier@0 SF .428(\255f foo=bar)2.929 F F0 2.928(,a)C
 2.928(na)-2.928 G .428(ttempt is)-2.928 F .062(made to assign a v)144
-472.8 R .062(alue to a readonly v)-.25 F .063
+580.8 R .062(alue to a readonly v)-.25 F .063
 (ariable, an attempt is made to assign a v)-.25 F .063
 (alue to an array v)-.25 F(ari-)-.25 E .102
-(able without using the compound assignment syntax \(see)144 484.8 R F1
+(able without using the compound assignment syntax \(see)144 592.8 R F1
 (Arrays)2.602 E F0(abo)2.602 E -.15(ve)-.15 G .102(\), one of the).15 F
-F2(names)2.602 E F0 .101(is not a)2.602 F -.25(va)144 496.8 S .171
+F2(names)2.602 E F0 .101(is not a)2.602 F -.25(va)144 604.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 508.8 R 3.46(fa)
+(ariable, an)-.25 F .96(attempt is made to turn of)144 616.8 R 3.46(fa)
 -.25 G .96(rray status for an array v)-3.46 F .96
-(ariable, or an attempt is made to display a)-.25 F(non-e)144 520.8 Q
+(ariable, or an attempt is made to display a)-.25 F(non-e)144 628.8 Q
 (xistent function with)-.15 E F1<ad66>2.5 E F0(.)A F1
-(dirs [\255clpv] [+)108 537.6 Q F2(n)A F1 2.5(][)C<ad>-2.5 E F2(n)A F1
-(])A F0 -.4(Wi)144 549.6 S .328
+(dirs [\255clpv] [+)108 645.6 Q F2(n)A F1 2.5(][)C<ad>-2.5 E F2(n)A F1
+(])A F0 -.4(Wi)144 657.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 561.6 R 1.238
-(Directories are added to the list with the)6.238 F F1(pushd)144 573.6 Q
+(single line with directory names separated by spaces.)144 669.6 R 1.238
+(Directories are added to the list with the)6.238 F F1(pushd)144 681.6 Q
 F0 2.003(command; the)4.503 F F1(popd)4.503 E F0 2.003(command remo)
 4.503 F -.15(ve)-.15 G 4.503(se).15 G 2.003(ntries from the list.)-4.503
-F 2.003(The current directory is)7.003 F(al)144 585.6 Q -.1(wa)-.1 G
-(ys the \214rst directory in the stack.).1 E F1<ad63>144 597.6 Q F0
-(Clears the directory stack by deleting all of the entries.)180 597.6 Q
-F1<ad6c>144 609.6 Q F0 .882
-(Produces a listing using full pathnames; the def)180 609.6 R .881
+F 2.003(The current directory is)7.003 F(al)144 693.6 Q -.1(wa)-.1 G
+(ys the \214rst directory in the stack.).1 E F1<ad63>144 705.6 Q F0
+(Clears the directory stack by deleting all of the entries.)180 705.6 Q
+F1<ad6c>144 717.6 Q F0 .882
+(Produces a listing using full pathnames; the def)180 717.6 R .881
 (ault listing format uses a tilde to denote)-.1 F(the home directory)180
-621.6 Q(.)-.65 E F1<ad70>144 633.6 Q F0
-(Print the directory stack with one entry per line.)180 633.6 Q F1<ad76>
-144 645.6 Q F0 .272(Print the directory stack with one entry per line, \
-pre\214xing each entry with its inde)180 645.6 R 2.773(xi)-.15 G 2.773
-(nt)-2.773 G(he)-2.773 E(stack.)180 657.6 Q F1(+)144 669.6 Q F2(n)A F0
-1.565(Displays the)180 669.6 R F2(n)4.065 E F0 1.565
-(th entry counting from the left of the list sho)B 1.564(wn by)-.25 F F1
-(dirs)4.064 E F0 1.564(when in)4.064 F -.2(vo)-.4 G -.1(ke).2 G(d).1 E
-(without options, starting with zero.)180 681.6 Q F1<ad>144 693.6 Q F2
-(n)A F0 1.194(Displays the)180 693.6 R 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 705.6 Q 1.707(The return v)144
-722.4 R 1.707(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.206 E -.15(xe)
--.15 G 4.206(sb).15 G -.15(ey)-4.206 G 1.706(ond the end of the).15 F
-(GNU Bash 5.0)72 768 Q(2018 March 15)144.29 E(61)193.45 E 0 Cg EP
+729.6 Q(.)-.65 E(GNU Bash 5.0)72 768 Q(2018 August 7)145.395 E(61)
+194.555 E 0 Cg EP
 %%Page: 62 62
 %%BeginPageSetup
 BP
 %%EndPageSetup
 /F0 10/Times-Roman@0 SF -.35(BA)72 48 S 137.14(SH\(1\) General).35 F
-(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 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 F2(pid)2.5 E F0(... ])2.5 E -.4(Wi)144
-112.8 S .121(thout options, remo).4 F .422 -.15(ve e)-.15 H(ach).15 E F2
-(jobspec)4.362 E F0 .122(from the table of acti)2.932 F .422 -.15(ve j)
--.25 H 2.622(obs. If).15 F F2(jobspec)4.362 E F0 .122
-(is not present, and)2.932 F .096(neither the)144 124.8 R F1<ad61>2.596
-E F0 .096(nor the)2.596 F F1<ad72>2.596 E F0 .096
-(option is supplied, the)2.596 F F2(curr)2.596 E .096(ent job)-.37 F F0
-.096(is used.)2.596 F .096(If the)5.096 F F1<ad68>2.596 E F0 .096
-(option is gi)2.596 F -.15(ve)-.25 G .096(n, each).15 F F2(jobspec)
-145.74 136.8 Q F0 .585(is not remo)3.395 F -.15(ve)-.15 G 3.085(df).15 G
-.585(rom the table, b)-3.085 F .585(ut is mark)-.2 F .585(ed so that)-.1
-F/F3 9/Times-Bold@0 SF(SIGHUP)3.085 E F0 .586
-(is not sent to the job if the)2.835 F .962(shell recei)144 148.8 R -.15
+(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E/F1 10/Times-Bold@0
+SF<ad70>144 84 Q F0(Print the directory stack with one entry per line.)
+180 84 Q F1<ad76>144 96 Q F0 .272(Print the directory stack with one en\
+try per line, pre\214xing each entry with its inde)180 96 R 2.773(xi)
+-.15 G 2.773(nt)-2.773 G(he)-2.773 E(stack.)180 108 Q F1(+)144 120 Q/F2
+10/Times-Italic@0 SF(n)A F0 1.565(Displays the)180 120 R F2(n)4.065 E F0
+1.565(th entry counting from the left of the list sho)B 1.564(wn by)-.25
+F F1(dirs)4.064 E F0 1.564(when in)4.064 F -.2(vo)-.4 G -.1(ke).2 G(d).1
+E(without options, starting with zero.)180 132 Q F1<ad>144 144 Q F2(n)A
+F0 1.194(Displays the)180 144 R 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 156 Q .258(The return v)144
+172.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 184.8 Q F1(diso)108 201.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 F2(pid)2.5 E F0(... ])2.5 E -.4(Wi)144 213.6 S .121
+(thout options, remo).4 F .422 -.15(ve e)-.15 H(ach).15 E F2(jobspec)
+4.362 E F0 .122(from the table of acti)2.932 F .422 -.15(ve j)-.25 H
+2.622(obs. If).15 F F2(jobspec)4.362 E F0 .122(is not present, and)2.932
+F .096(neither the)144 225.6 R F1<ad61>2.596 E F0 .096(nor the)2.596 F
+F1<ad72>2.596 E F0 .096(option is supplied, the)2.596 F F2(curr)2.596 E
+.096(ent job)-.37 F F0 .096(is used.)2.596 F .096(If the)5.096 F F1
+<ad68>2.596 E F0 .096(option is gi)2.596 F -.15(ve)-.25 G .096(n, each)
+.15 F F2(jobspec)145.74 237.6 Q F0 .585(is not remo)3.395 F -.15(ve)-.15
+G 3.085(df).15 G .585(rom the table, b)-3.085 F .585(ut is mark)-.2 F
+.585(ed so that)-.1 F/F3 9/Times-Bold@0 SF(SIGHUP)3.085 E F0 .586
+(is not sent to the job if the)2.835 F .962(shell recei)144 249.6 R -.15
 (ve)-.25 G 3.462(sa).15 G F3(SIGHUP)A/F4 9/Times-Roman@0 SF(.)A F0 .962
 (If no)5.462 F F2(jobspec)5.202 E F0 .962(is supplied, the)3.772 F F1
 <ad61>3.462 E F0 .962(option means to remo)3.462 F 1.262 -.15(ve o)-.15
-H 3.462(rm).15 G .962(ark all)-3.462 F 1.358(jobs; the)144 160.8 R F1
+H 3.462(rm).15 G .962(ark all)-3.462 F 1.358(jobs; the)144 261.6 R F1
 <ad72>3.858 E F0 1.358(option without a)3.858 F F2(jobspec)5.598 E F0
 (ar)4.169 E 1.359(gument restricts operation to running jobs.)-.18 F
-1.359(The return)6.359 F -.25(va)144 172.8 S(lue is 0 unless a).25 E F2
+1.359(The return)6.359 F -.25(va)144 273.6 S(lue is 0 unless a).25 E F2
 (jobspec)4.24 E F0(does not specify a v)2.81 E(alid job)-.25 E(.)-.4 E
-F1(echo)108 189.6 Q F0([)2.5 E F1(\255neE)A F0 2.5(][)C F2(ar)-2.5 E(g)
--.37 E F0(...])2.5 E .425(Output the)144 201.6 R F2(ar)2.925 E(g)-.37 E
+F1(echo)108 290.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 .425(Output the)144 302.4 R F2(ar)2.925 E(g)-.37 E
 F0 .424(s, separated by spaces, follo)B .424(wed by a ne)-.25 F 2.924
 (wline. The)-.25 F .424(return status is 0 unless a write)2.924 F .307
-(error occurs.)144 213.6 R(If)5.307 E F1<ad6e>2.807 E F0 .307
+(error occurs.)144 314.4 R(If)5.307 E F1<ad6e>2.807 E F0 .307
 (is speci\214ed, the trailing ne)2.807 F .308(wline is suppressed.)-.25
 F .308(If the)5.308 F F1<ad65>2.808 E F0 .308(option is gi)2.808 F -.15
 (ve)-.25 G .308(n, inter).15 F(-)-.2 E 1.349(pretation of the follo)144
-225.6 R 1.348(wing backslash-escaped characters is enabled.)-.25 F(The)
+326.4 R 1.348(wing backslash-escaped characters is enabled.)-.25 F(The)
 6.348 E F1<ad45>3.848 E F0 1.348(option disables the)3.848 F 1.054
-(interpretation of these escape characters, e)144 237.6 R -.15(ve)-.25 G
+(interpretation of these escape characters, e)144 338.4 R -.15(ve)-.25 G
 3.555(no).15 G 3.555(ns)-3.555 G 1.055(ystems where the)-3.555 F 3.555
 (ya)-.15 G 1.055(re interpreted by def)-3.555 F(ault.)-.1 E(The)144
-249.6 Q F1(xpg_echo)3.459 E F0 .959
+350.4 Q F1(xpg_echo)3.459 E F0 .959
 (shell option may be used to dynamically determine whether or not)3.459
 F F1(echo)3.458 E F0 -.15(ex)3.458 G(pands).15 E .715
-(these escape characters by def)144 261.6 R(ault.)-.1 E F1(echo)5.715 E
+(these escape characters by def)144 362.4 R(ault.)-.1 E F1(echo)5.715 E
 F0 .716(does not interpret)3.215 F F1<adad>3.216 E F0 .716
 (to mean the end of options.)3.216 F F1(echo)5.716 E F0
-(interprets the follo)144 273.6 Q(wing escape sequences:)-.25 E F1(\\a)
-144 285.6 Q F0(alert \(bell\))180 285.6 Q F1(\\b)144 297.6 Q F0
-(backspace)180 297.6 Q F1(\\c)144 309.6 Q F0(suppress further output)180
-309.6 Q F1(\\e)144 321.6 Q(\\E)144 333.6 Q F0(an escape character)180
-333.6 Q F1(\\f)144 345.6 Q F0(form feed)180 345.6 Q F1(\\n)144 357.6 Q
-F0(ne)180 357.6 Q 2.5(wl)-.25 G(ine)-2.5 E F1(\\r)144 369.6 Q F0
-(carriage return)180 369.6 Q F1(\\t)144 381.6 Q F0(horizontal tab)180
-381.6 Q F1(\\v)144 393.6 Q F0 -.15(ve)180 393.6 S(rtical tab).15 E F1
-(\\\\)144 405.6 Q F0(backslash)180 405.6 Q F1(\\0)144 417.6 Q F2(nnn)A
-F0(the eight-bit character whose v)180 417.6 Q(alue is the octal v)-.25
+(interprets the follo)144 374.4 Q(wing escape sequences:)-.25 E F1(\\a)
+144 386.4 Q F0(alert \(bell\))180 386.4 Q F1(\\b)144 398.4 Q F0
+(backspace)180 398.4 Q F1(\\c)144 410.4 Q F0(suppress further output)180
+410.4 Q F1(\\e)144 422.4 Q(\\E)144 434.4 Q F0(an escape character)180
+434.4 Q F1(\\f)144 446.4 Q F0(form feed)180 446.4 Q F1(\\n)144 458.4 Q
+F0(ne)180 458.4 Q 2.5(wl)-.25 G(ine)-2.5 E F1(\\r)144 470.4 Q F0
+(carriage return)180 470.4 Q F1(\\t)144 482.4 Q F0(horizontal tab)180
+482.4 Q F1(\\v)144 494.4 Q F0 -.15(ve)180 494.4 S(rtical tab).15 E F1
+(\\\\)144 506.4 Q F0(backslash)180 506.4 Q F1(\\0)144 518.4 Q F2(nnn)A
+F0(the eight-bit character whose v)180 518.4 Q(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(the eight-bit character whose v)180 429.6 Q
+(\\x)144 530.4 Q F2(HH)A F0(the eight-bit character whose v)180 530.4 Q
 (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
-(\\u)144 441.6 Q F2(HHHH)A F0 1.507
-(the Unicode \(ISO/IEC 10646\) character whose v)180 453.6 R 1.506
+(\\u)144 542.4 Q F2(HHHH)A F0 1.507
+(the Unicode \(ISO/IEC 10646\) character whose v)180 554.4 R 1.506
 (alue is the he)-.25 F 1.506(xadecimal v)-.15 F(alue)-.25 E F2(HHHH)
-4.006 E F0(\(one to four he)180 465.6 Q 2.5(xd)-.15 G(igits\))-2.5 E F1
-(\\U)144 477.6 Q F2(HHHHHHHH)A F0 .547
-(the Unicode \(ISO/IEC 10646\) character whose v)180 489.6 R .547
+4.006 E F0(\(one to four he)180 566.4 Q 2.5(xd)-.15 G(igits\))-2.5 E F1
+(\\U)144 578.4 Q F2(HHHHHHHH)A F0 .547
+(the Unicode \(ISO/IEC 10646\) character whose v)180 590.4 R .547
 (alue is the he)-.25 F .548(xadecimal v)-.15 F(alue)-.25 E F2(HHHHH-)
-3.048 E(HHH)180 501.6 Q F0(\(one to eight he)2.5 E 2.5(xd)-.15 G
-(igits\))-2.5 E F1(enable)108 518.4 Q F0([)2.5 E F1<ad61>A F0 2.5(][)C
+3.048 E(HHH)180 602.4 Q F0(\(one to eight he)2.5 E 2.5(xd)-.15 G
+(igits\))-2.5 E F1(enable)108 619.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 530.4 R
+(][)C F2(name)-2.5 E F0(...])2.5 E .278(Enable and disable b)144 631.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 542.4 R .834(uiltin to be e)-.2 F -.15
+(the same name as a shell b)144 643.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 554.4 R .989
+(the shell normally searches for b)144 655.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 566.4 R F2(names)4.082 E F0 1.582(are enabled.)
+(abled; otherwise,)144 667.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 578.4 R .081(uiltin v)
+G(TH)-.189 E F0 .081(instead of the shell b)144 679.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 590.4 S 1.524
+(option means to load the ne)2.58 F(w)-.25 E -.2(bu)144 691.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 602.4 Q F1<ad64>
+(ystems that support dynamic loading.)-4.024 F(The)144 703.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 614.4 R F1<ad70>
+-.18 F -.15(ve)-.25 G .366(n, or).15 F .398(if the)144 715.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
-626.4 R 2.598(uiltins. If)-.2 F F1<ad6e>2.598 E F0 .098
+727.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 638.4 R 1.916
-(uiltins, with an indication of whether or not each is)-.2 F 2.879
-(enabled. If)144 650.4 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 662.4 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
-674.4 Q F1 -2.3 -.15(ev a)108 691.2 T(l).15 E F0([)2.5 E F2(ar)A(g)-.37
-E F0(...])2.5 E(The)144 703.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 715.2 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 727.2 Q
-(guments,)-.18 E F1 -2.3 -.15(ev a)2.5 H(l).15 E F0(returns 0.)2.5 E
-(GNU Bash 5.0)72 768 Q(2018 March 15)144.29 E(62)193.45 E 0 Cg EP
+(If)5.098 E F1<ad61>2.598 E F0(GNU Bash 5.0)72 768 Q(2018 August 7)
+145.395 E(62)194.555 E 0 Cg EP
 %%Page: 63 63
 %%BeginPageSetup
 BP
 %%EndPageSetup
 /F0 10/Times-Roman@0 SF -.35(BA)72 48 S 137.14(SH\(1\) General).35 F
-(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E/F1 10/Times-Bold@0
-SF(exec)108 84 Q F0([)2.5 E F1(\255cl)A F0 2.5(][)C F1<ad61>-2.5 E/F2 10
-/Times-Italic@0 SF(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 96 Q F2(command)3.006 E F0 .306
+(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E 1.916
+(is supplied, the list printed includes all b)144 84 R 1.916
+(uiltins, with an indication of whether or not each is)-.2 F 2.879
+(enabled. If)144 96 R/F1 10/Times-Bold@0 SF<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 108 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 120 Q F1 -2.3 -.15(ev a)108
+136.8 T(l).15 E F0([)2.5 E F2(ar)A(g)-.37 E F0(...])2.5 E(The)144 148.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 160.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 172.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 189.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 201.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 108 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 213.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 120 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 132 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 225.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 237.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 1.078(zeroth ar)144 144 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 156 Q .876 -.15(ve s)-.25 H .576(hell e).15 F .576
-(xits, unless the)-.15 F F1(execfail)3.076 E F0 .577
+3.319 F 1.078(zeroth ar)144 249.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 261.6 Q .876 -.15(ve s)-.25 H .576(hell e).15 F
+.576(xits, unless the)-.15 F F1(execfail)3.076 E F0 .577
 (shell option is enabled.)3.077 F .577(In that case, it returns f)5.577
-F(ail-)-.1 E 3.32(ure. An)144 168 R(interacti)3.32 E 1.12 -.15(ve s)-.25
-H .82(hell returns f).15 F .82(ailure if the \214le cannot be e)-.1 F
--.15(xe)-.15 G 3.32(cuted. A).15 F .82(subshell e)3.32 F .82
-(xits uncondi-)-.15 F .287(tionally if)144 180 R F1(exec)2.787 E F0 -.1
-(fa)2.787 G 2.787(ils. If).1 F F2(command)2.987 E F0 .287
+F(ail-)-.1 E 3.32(ure. An)144 273.6 R(interacti)3.32 E 1.12 -.15(ve s)
+-.25 H .82(hell returns f).15 F .82(ailure if the \214le cannot be e)-.1
+-.15(xe)-.15 G 3.32(cuted. A).15 F .82(subshell e)3.32 F .82
+(xits uncondi-)-.15 F .287(tionally if)144 285.6 R F1(exec)2.787 E F0
+-.1(fa)2.787 G 2.787(ils. If).1 F F2(command)2.987 E F0 .287
 (is not speci\214ed, an)3.557 F 2.788(yr)-.15 G .288(edirections tak)
 -2.788 F 2.788(ee)-.1 G -.25(ff)-2.788 G .288(ect in the current shell,)
-.25 F(and the return status is 0.)144 192 Q
+.25 F(and the return status is 0.)144 297.6 Q
 (If there is a redirection error)5 E 2.5(,t)-.4 G
-(he return status is 1.)-2.5 E F1(exit)108 208.8 Q F0([)2.5 E F2(n)A F0
-(])A .096(Cause the shell to e)144 208.8 R .096(xit with a status of)
+(he return status is 1.)-2.5 E F1(exit)108 314.4 Q F0([)2.5 E F2(n)A F0
+(])A .096(Cause the shell to e)144 314.4 R .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 220.8 S 2.5(cuted. A).15 F(trap on)2.5 E/F3 9
+-.15 F -.15(exe)144 326.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 237.6 Q F0([)2.5
+(cuted before the shell terminates.).15 E F1(export)108 343.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 249.6 Q F0 .256(The supplied)144 261.6 R
+F0(]] ...)A F1(export \255p)108 355.2 Q F0 .256(The supplied)144 367.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 273.6 R(the)2.627 E F1
+(xe)-.15 G(cuted).15 E 2.627(commands. If)144 379.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 285.6 Q F0 .048
+(n, or if the).15 F F1<ad70>144 391.2 Q F0 .048
 (option is supplied, a list of names of all e)2.547 F .048(xported v)
 -.15 F .048(ariables is printed.)-.25 F(The)5.048 E F1<ad6e>2.548 E F0
-.048(option causes the)2.548 F -.15(ex)144 297.6 S 1.447
+.048(option causes the)2.548 F -.15(ex)144 403.2 S 1.447
 (port property to be remo).15 F -.15(ve)-.15 G 3.947(df).15 G 1.447
 (rom each)-3.947 F F2(name)3.947 E F0 6.447(.I)C 3.947(fav)-6.447 G
 1.447(ariable name is follo)-4.197 F 1.447(wed by =)-.25 F F2(wor)A(d)
--.37 E F0 3.946(,t)C(he)-3.946 E -.25(va)144 309.6 S .741(lue of the v)
+-.37 E F0 3.946(,t)C(he)-3.946 E -.25(va)144 415.2 S .741(lue of the v)
 .25 F .741(ariable is set to)-.25 F F2(wor)3.241 E(d)-.37 E F0(.)A F1
 (export)5.741 E F0 .742(returns an e)3.242 F .742
 (xit status of 0 unless an in)-.15 F -.25(va)-.4 G .742(lid option is)
-.25 F .032(encountered, one of the)144 321.6 R F2(names)2.532 E F0 .032
+.25 F .032(encountered, one of the)144 427.2 R F2(names)2.532 E F0 .032
 (is not a v)2.532 F .032(alid shell v)-.25 F .032(ariable name, or)-.25
 F F1<ad66>2.531 E F0 .031(is supplied with a)2.531 F F2(name)2.891 E F0
-(that)2.711 E(is not a function.)144 333.6 Q F1(fc)108 350.4 Q F0([)2.5
-F1<ad65>A F2(ename)2.5 E F0 2.5(][)C F1(\255lnr)-2.5 E F0 2.5(][)C F2
+(that)2.711 E(is not a function.)144 439.2 Q F1(fc)108 456 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
-362.4 Q F0([)2.5 E F2(pat)A F0(=)A F2 -.37(re)C(p).37 E F0 2.5(][)C F2
+468 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 .431
-(The \214rst form selects a range of commands from)144 374.4 R F2<8c72>
+(The \214rst form selects a range of commands from)144 480 R F2<8c72>
 4.842 E(st)-.1 E F0(to)3.612 E F2(last)3.022 E F0 .432
 (from the history list and displays or)3.612 F .142(edits and re-e)144
-386.4 R -.15(xe)-.15 G .142(cutes them.).15 F F2 -.45(Fi)5.141 G -.1(rs)
+492 R -.15(xe)-.15 G .142(cutes them.).15 F F2 -.45(Fi)5.141 G -.1(rs)
 .45 G(t).1 E F0(and)3.321 E F2(last)2.731 E F0 .141
 (may be speci\214ed as a string \(to locate the last command)3.321 F(be)
-144 398.4 Q .31(ginning with that string\) or as a number \(an inde)-.15
-F 2.811(xi)-.15 G .311(nto the history list, where a ne)-2.811 F -.05
-(ga)-.15 G(ti).05 E .611 -.15(ve n)-.25 H(umber).15 E .19
-(is used as an of)144 410.4 R .19
-(fset from the current command number\).)-.25 F(If)5.19 E F2(last)2.779
-E F0 .189(is not speci\214ed, it is set to the cur)3.369 F(-)-.2 E .948
-(rent command for listing \(so that)144 422.4 R/F4 10/Courier@0 SF .948
-(fc \255l \25510)3.448 F F0 .948(prints the last 10 commands\) and to)
-3.448 F F2<8c72>5.359 E(st)-.1 E F0(other)4.129 E(-)-.2 E 2.5(wise. If)
-144 434.4 R F2<8c72>4.41 E(st)-.1 E F0
-(is not speci\214ed, it is set to the pre)3.18 E
-(vious command for editing and \25516 for listing.)-.25 E(The)144 458.4
-Q F1<ad6e>2.522 E F0 .022
+144 504 Q .31(ginning with that string\) or as a number \(an inde)-.15 F
+2.811(xi)-.15 G .311(nto the history list, where a ne)-2.811 F -.05(ga)
+-.15 G(ti).05 E .611 -.15(ve n)-.25 H(umber).15 E .19(is used as an of)
+144 516 R .19(fset from the current command number\).)-.25 F(If)5.19 E
+F2(last)2.779 E F0 .189(is not speci\214ed, it is set to the cur)3.369 F
+(-)-.2 E .948(rent command for listing \(so that)144 528 R/F4 10
+/Courier@0 SF .948(fc \255l \25510)3.448 F F0 .948
+(prints the last 10 commands\) and to)3.448 F F2<8c72>5.359 E(st)-.1 E
+F0(other)4.129 E(-)-.2 E 2.5(wise. If)144 540 R F2<8c72>4.41 E(st)-.1 E
+F0(is not speci\214ed, it is set to the pre)3.18 E
+(vious command for editing and \25516 for listing.)-.25 E(The)144 564 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 470.4 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
+(rses the order of).15 F .438(the commands.)144 576 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 482.4 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 494.4 R .63(alue of the)-.25 F F3(FCEDIT)3.13 E
-F0 -.25(va)2.88 G .631(riable is used, and the v).25 F .631(alue of)-.25
-F F3(EDIT)3.131 E(OR)-.162 E F0(if)2.881 E F3(FCEDIT)3.131 E F0 .631
-(is not set.)2.881 F .631(If nei-)5.631 F .951(ther v)144 506.4 R .951
+.335(the editor gi)144 588 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 600 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 612 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 518.4 S(cuted.).15 E .788(In the second form,)144 542.4 R
-F2(command)3.288 E F0 .788(is re-e)3.288 F -.15(xe)-.15 G .788
+-.15(exe)144 624 S(cuted.).15 E .788(In the second form,)144 648 R F2
+(command)3.288 E F0 .788(is re-e)3.288 F -.15(xe)-.15 G .788
 (cuted after each instance of).15 F F2(pat)3.288 E F0 .788
 (is replaced by)3.288 F F2 -.37(re)3.289 G(p).37 E F0(.)A F2(Com-)5.789
-E(mand)144 554.4 Q F0 .172(is interpreted the same as)2.672 F F2<8c72>
+E(mand)144 660 Q F0 .172(is interpreted the same as)2.672 F F2<8c72>
 2.672 E(st)-.1 E F0(abo)2.672 E -.15(ve)-.15 G 5.172(.A).15 G .171
 (useful alias to use with this is)-2.5 F F4 .171(r='fc \255s')2.671 F F0
-2.671(,s)C 2.671(ot)-2.671 G(hat)-2.671 E(typing)144 566.4 Q F4 7.165
-(rc)3.665 G(c)-7.165 E F0 1.165(runs the last command be)3.665 F 1.166
+2.671(,s)C 2.671(ot)-2.671 G(hat)-2.671 E(typing)144 672 Q F4 7.165(rc)
+3.665 G(c)-7.165 E F0 1.165(runs the last command be)3.665 F 1.166
 (ginning with)-.15 F F4(cc)3.666 E F0 1.166(and typing)3.666 F F4(r)
 3.666 E F0(re-e)3.666 E -.15(xe)-.15 G 1.166(cutes the last com-).15 F
-(mand.)144 578.4 Q .142(If the \214rst form is used, the return v)144
-602.4 R .142(alue is 0 unless an in)-.25 F -.25(va)-.4 G .142
+(mand.)144 684 Q .142(If the \214rst form is used, the return v)144 708
+R .142(alue is 0 unless an in)-.25 F -.25(va)-.4 G .142
 (lid option is encountered or).25 F F2<8c72>4.552 E(st)-.1 E F0(or)3.322
-E F2(last)2.732 E F0 .454(specify history lines out of range.)144 614.4
-.454(If the)5.454 F F1<ad65>2.954 E F0 .454
+E F2(last)2.732 E F0 .454(specify history lines out of range.)144 720 R
+.454(If the)5.454 F F1<ad65>2.954 E F0 .454
 (option is supplied, the return v)2.954 F .455(alue is the v)-.25 F .455
-(alue of the)-.25 F .788(last command e)144 626.4 R -.15(xe)-.15 G .788
-(cuted or f).15 F .787
+(alue of the)-.25 F(GNU Bash 5.0)72 768 Q(2018 August 7)145.395 E(63)
+194.555 E 0 Cg EP
+%%Page: 64 64
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 137.14(SH\(1\) General).35 F
+(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E .788
+(last command e)144 84 R -.15(xe)-.15 G .788(cuted or f).15 F .787
 (ailure if an error occurs with the temporary \214le of commands.)-.1 F
 .787(If the)5.787 F 1.135
 (second form is used, the return status is that of the command re-e)144
-638.4 R -.15(xe)-.15 G 1.136(cuted, unless).15 F F2(cmd)3.836 E F0 1.136
-(does not)4.406 F(specify a v)144 650.4 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 667.2 Q F0([)2.5 E F2(jobspec)A F0(])A(Resume)
-144 679.2 Q F2(jobspec)5.654 E F0 1.413(in the fore)4.224 F 1.413
-(ground, and mak)-.15 F 3.913(ei)-.1 G 3.913(tt)-3.913 G 1.413
-(he current job)-3.913 F 6.413(.I)-.4 G(f)-6.413 E F2(jobspec)5.653 E F0
-1.413(is not present, the)4.223 F(shell')144 691.2 Q 3.116(sn)-.55 G
-.616(otion of the)-3.116 F F2(curr)3.116 E .616(ent job)-.37 F F0 .617
-(is used.)3.116 F .617(The return v)5.617 F .617
-(alue is that of the command placed into the)-.25 F(fore)144 703.2 Q
+96 R -.15(xe)-.15 G 1.136(cuted, unless).15 F/F1 10/Times-Italic@0 SF
+(cmd)3.836 E F0 1.136(does not)4.406 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.654 E F0 1.413
+(in the fore)4.224 F 1.413(ground, and mak)-.15 F 3.913(ei)-.1 G 3.913
+(tt)-3.913 G 1.413(he current job)-3.913 F 6.413(.I)-.4 G(f)-6.413 E F1
+(jobspec)5.653 E F0 1.413(is not present, the)4.223 F(shell')144 148.8 Q
+3.116(sn)-.55 G .616(otion of the)-3.116 F F1(curr)3.116 E .616(ent job)
+-.37 F F0 .617(is used.)3.116 F .617(The return v)5.617 F .617
+(alue is that of the command placed into the)-.25 F(fore)144 160.8 Q
 .363(ground, or f)-.15 F .363
 (ailure if run when job control is disabled or)-.1 F 2.862(,w)-.4 G .362
-(hen run with job control enabled, if)-2.862 F F2(jobspec)145.74 715.2 Q
-F0(does not specify a v)2.81 E(alid job or)-.25 E F2(jobspec)4.24 E F0
+(hen run with job control enabled, if)-2.862 F F1(jobspec)145.74 172.8 Q
+F0(does not specify a v)2.81 E(alid job or)-.25 E F1(jobspec)4.24 E F0
 (speci\214es a job that w)2.81 E(as started without job control.)-.1 E
-(GNU Bash 5.0)72 768 Q(2018 March 15)144.29 E(63)193.45 E 0 Cg EP
-%%Page: 64 64
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 137.14(SH\(1\) General).35 F
-(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E/F1 10/Times-Bold@0
-SF(getopts)108 84 Q/F2 10/Times-Italic@0 SF(optstring name)2.5 E F0([)
-2.5 E F2(ar)A(gs)-.37 E F0(])A F1(getopts)144 96 Q F0 .793
-(is used by shell procedures to parse positional parameters.)3.293 F F2
+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
 (optstring)6.023 E F0 .793(contains the option)3.513 F .15
-(characters to be recognized; if a character is follo)144 108 R .149
+(characters to be recognized; if a character is follo)144 213.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 120 Q .578
+-.15(ve a)-.2 H(n).15 E(ar)144 225.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 132 R 1.665
-(Each time it is in)6.665 F -.2(vo)-.4 G -.1(ke).2 G(d,).1 E F1(getopts)
+(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)
 4.165 E F0 1.665(places the ne)4.165 F(xt)-.15 E .796
-(option in the shell v)144 144 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 156 Q .085
+(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
+(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 168 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
+(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
 (getopts)3.346 E F0 .846(places that ar)3.346 F(gument)-.18 E .804
-(into the v)144 180 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 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
 (automatically; it must be manually)3.053 F .293
-(reset between multiple calls to)144 192 R F1(getopts)2.793 E F0 .293
+(reset between multiple calls to)144 297.6 R F2(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 204 Q
-2.044(When the end of options is encountered,)144 228 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 F3(OPTIND)144 240 Q F0
+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)
+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 345.6 Q F0
 (is set to the inde)2.25 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 F1(getopts)144 264 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 F2(getopts)144 369.6 Q F0 2.392
 (normally parses the positional parameters, b)4.892 F 2.392
 (ut if more ar)-.2 F 2.393(guments are gi)-.18 F -.15(ve)-.25 G 4.893
-(ni).15 G(n)-4.893 E F2(ar)4.893 E(gs)-.37 E F0(,).27 E F1(getopts)144
-276 Q F0(parses those instead.)2.5 E F1(getopts)144 300 Q F0 1.166
+(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
 (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.07
-(reporting is used.)144 312 R 1.071
+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.07
+(reporting is used.)144 417.6 R 1.071
 (In normal operation, diagnostic messages are printed when in)6.07 F
--.25(va)-.4 G 1.071(lid options or).25 F .394(missing option ar)144 324
-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 336 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 360 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 372 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
-384 Q 1.241(If a required ar)144 408 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 420 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 432 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 456 Q F0 .902
+-.25(va)-.4 G 1.071(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
+-.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
 (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 468 Q F1(hash)108 484.8
-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 .858
-(Each time)144 496.8 R F1(hash)3.358 E F0 .858(is in)3.358 F -.2(vo)-.4
-G -.1(ke).2 G .858(d, the full pathname of the command).1 F F2(name)
+(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
+.858(Each time)144 602.4 R F2(hash)3.358 E F0 .858(is in)3.358 F -.2(vo)
+-.4 G -.1(ke).2 G .858(d, the full pathname of the command).1 F F1(name)
 3.718 E F0 .858(is determined by searching)3.538 F .956
-(the directories in)144 508.8 R F1($P)3.456 E -.95(AT)-.74 G(H).95 E F0
+(the directories in)144 614.4 R F2($P)3.456 E -.95(AT)-.74 G(H).95 E F0
 .956(and remembered.)3.456 F(An)5.956 E 3.456(yp)-.15 G(re)-3.456 E .956
-(viously-remembered pathname is discarded.)-.25 F .243(If the)144 520.8
-R F1<ad70>2.743 E F0 .243
-(option is supplied, no path search is performed, and)2.743 F F2
+(viously-remembered pathname is discarded.)-.25 F .243(If the)144 626.4
+R F2<ad70>2.743 E F0 .243
+(option is supplied, no path search is performed, and)2.743 F F1
 (\214lename)4.653 E F0 .242(is used as the full \214lename)2.923 F 1.711
-(of the command.)144 532.8 R(The)6.711 E F1<ad72>4.211 E F0 1.711
+(of the command.)144 638.4 R(The)6.711 E F2<ad72>4.211 E F0 1.711
 (option causes the shell to for)4.211 F 1.712
-(get all remembered locations.)-.18 F(The)6.712 E F1<ad64>4.212 E F0
-.833(option causes the shell to for)144 544.8 R .833
-(get the remembered location of each)-.18 F F2(name)3.333 E F0 5.833(.I)
-C 3.333(ft)-5.833 G(he)-3.333 E F1<ad74>3.333 E F0 .833(option is sup-)
-3.333 F .703(plied, the full pathname to which each)144 556.8 R F2(name)
+(get all remembered locations.)-.18 F(The)6.712 E F2<ad64>4.212 E F0
+.833(option causes the shell to for)144 650.4 R .833
+(get the remembered location of each)-.18 F F1(name)3.333 E F0 5.833(.I)
+C 3.333(ft)-5.833 G(he)-3.333 E F2<ad74>3.333 E F0 .833(option is sup-)
+3.333 F .703(plied, the full pathname to which each)144 662.4 R F1(name)
 3.204 E F0 .704(corresponds is printed.)3.204 F .704(If multiple)5.704 F
-F2(name)3.204 E F0(ar)3.204 E(guments)-.18 E .795(are supplied with)144
-568.8 R F1<ad74>3.295 E F0 3.295(,t)C(he)-3.295 E F2(name)3.295 E F0
-.795(is printed before the hashed full pathname.)3.295 F(The)5.795 E F1
+F1(name)3.204 E F0(ar)3.204 E(guments)-.18 E .795(are supplied with)144
+674.4 R F2<ad74>3.295 E F0 3.295(,t)C(he)-3.295 E F1(name)3.295 E F0
+.795(is printed before the hashed full pathname.)3.295 F(The)5.795 E F2
 <ad6c>3.295 E F0 .795(option causes)3.295 F .934
 (output to be displayed in a format that may be reused as input.)144
-580.8 R .934(If no ar)5.934 F .935(guments are gi)-.18 F -.15(ve)-.25 G
-.935(n, or if).15 F(only)144 592.8 Q F1<ad6c>2.822 E F0 .322
+686.4 R .934(If no ar)5.934 F .935(guments are gi)-.18 F -.15(ve)-.25 G
+.935(n, or if).15 F(only)144 698.4 Q F2<ad6c>2.822 E F0 .322
 (is supplied, information about remembered commands is printed.)2.822 F
-.321(The return status is true)5.321 F(unless a)144 604.8 Q F2(name)2.86
+.321(The return status is true)5.321 F(unless a)144 710.4 Q F1(name)2.86
 E F0(is not found or an in)2.68 E -.25(va)-.4 G(lid option is supplied.)
-.25 E F1(help)108 621.6 Q F0([)2.5 E F1(\255dms)A F0 2.5(][)C F2
-(pattern)-2.5 E F0(])A .866(Display helpful information about b)144
-633.6 R .867(uiltin commands.)-.2 F(If)5.867 E F2(pattern)4.617 E F0
-.867(is speci\214ed,)3.607 F F1(help)3.367 E F0(gi)3.367 E -.15(ve)-.25
-G 3.367(sd).15 G(etailed)-3.367 E .307(help on all commands matching)144
-645.6 R F2(pattern)2.807 E F0 2.807(;o).24 G .307
-(therwise help for all the b)-2.807 F .306
-(uiltins and shell control struc-)-.2 F(tures is printed.)144 657.6 Q F1
-<ad64>144 669.6 Q F0(Display a short description of each)180 669.6 Q F2
-(pattern)2.5 E F1<ad6d>144 681.6 Q F0(Display the description of each)
-180 681.6 Q F2(pattern)2.5 E F0(in a manpage-lik)2.5 E 2.5(ef)-.1 G
-(ormat)-2.5 E F1<ad73>144 693.6 Q F0
-(Display only a short usage synopsis for each)180 693.6 Q F2(pattern)2.5
-E F0(The return status is 0 unless no command matches)144 710.4 Q F2
-(pattern)2.5 E F0(.).24 E(GNU Bash 5.0)72 768 Q(2018 March 15)144.29 E
-(64)193.45 E 0 Cg EP
+.25 E(GNU Bash 5.0)72 768 Q(2018 August 7)145.395 E(64)194.555 E 0 Cg EP
 %%Page: 65 65
 %%BeginPageSetup
 BP
 %%EndPageSetup
 /F0 10/Times-Roman@0 SF -.35(BA)72 48 S 137.14(SH\(1\) General).35 F
 (Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 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 \255d)108 120 Q F2(start)2.5 E F0<ad>A F2(end)A F1
-(history \255anrw)108 132 Q F0([)2.5 E F2(\214lename)A F0(])A F1
-(history \255p)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 F1(history \255s)108 156 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 168 S .752
+SF(help)108 84 Q F0([)2.5 E F1(\255dms)A F0 2.5(][)C/F2 10
+/Times-Italic@0 SF(pattern)-2.5 E F0(])A .866
+(Display helpful information about b)144 96 R .867(uiltin commands.)-.2
+F(If)5.867 E F2(pattern)4.617 E F0 .867(is speci\214ed,)3.607 F F1(help)
+3.367 E F0(gi)3.367 E -.15(ve)-.25 G 3.367(sd).15 G(etailed)-3.367 E
+.307(help on all commands matching)144 108 R F2(pattern)2.807 E F0 2.807
+(;o).24 G .307(therwise help for all the b)-2.807 F .306
+(uiltins and shell control struc-)-.2 F(tures is printed.)144 120 Q F1
+<ad64>144 132 Q F0(Display a short description of each)180 132 Q F2
+(pattern)2.5 E F1<ad6d>144 144 Q F0(Display the description of each)180
+144 Q F2(pattern)2.5 E F0(in a manpage-lik)2.5 E 2.5(ef)-.1 G(ormat)-2.5
+E F1<ad73>144 156 Q F0(Display only a short usage synopsis for each)180
+156 Q F2(pattern)2.5 E F0
+(The return status is 0 unless no command matches)144 172.8 Q F2
+(pattern)2.5 E F0(.).24 E F1(history [)108 189.6 Q F2(n)A F1(])A
+(history \255c)108 201.6 Q(history \255d)108 213.6 Q F2(of)2.5 E(fset)
+-.18 E F1(history \255d)108 225.6 Q F2(start)2.5 E F0<ad>A F2(end)A F1
+(history \255anrw)108 237.6 Q F0([)2.5 E F2(\214lename)A F0(])A F1
+(history \255p)108 249.6 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 261.6 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
+273.6 S .752
 (th no options, display the command history list with line numbers.).4 F
 .752(Lines listed with a)5.752 F F1(*)3.252 E F0(ha)3.252 E -.15(ve)-.2
-G .381(been modi\214ed.)144 180 R .38(An ar)5.38 F .38(gument of)-.18 F
-F2(n)3.24 E F0 .38(lists only the last)3.12 F F2(n)3.24 E F0 2.88
+G .381(been modi\214ed.)144 285.6 R .38(An ar)5.38 F .38(gument of)-.18
+F F2(n)3.24 E F0 .38(lists only the last)3.12 F F2(n)3.24 E F0 2.88
 (lines. If)3.12 F .38(the shell v)2.88 F(ariable)-.25 E/F3 9
-/Times-Bold@0 SF(HISTTIMEFOR-)2.88 E(MA)144 192 Q(T)-.855 E F0 .264
+/Times-Bold@0 SF(HISTTIMEFOR-)2.88 E(MA)144 297.6 Q(T)-.855 E F0 .264
 (is set and not null, it is used as a format string for)2.514 F F2
 (strftime)2.765 E F0 .265(\(3\) to display the time stamp asso-)B 1.02
-(ciated with each displayed history entry)144 204 R 6.019(.N)-.65 G
+(ciated with each displayed history entry)144 309.6 R 6.019(.N)-.65 G
 3.519(oi)-6.019 G(nterv)-3.519 E 1.019
 (ening blank is printed between the formatted)-.15 F .176
-(time stamp and the history line.)144 216 R(If)5.176 E F2(\214lename)
+(time stamp and the history line.)144 321.6 R(If)5.176 E F2(\214lename)
 2.676 E F0 .176
 (is supplied, it is used as the name of the history \214le; if)2.676 F
-(not, the v)144 228 Q(alue of)-.25 E F3(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 240 Q F0
-(Clear the history list by deleting all the entries.)180 240 Q F1<ad64>
-144 252 Q F2(of)2.5 E(fset)-.18 E F0 .39
-(Delete the history entry at position)180 264 R F2(of)2.889 E(fset)-.18
-E F0 5.389(.I)C(f)-5.389 E F2(of)2.889 E(fset)-.18 E F0 .389(is ne)2.889
-F -.05(ga)-.15 G(ti).05 E -.15(ve)-.25 G 2.889(,i).15 G 2.889(ti)-2.889
-G 2.889(si)-2.889 G .389(nterpreted as relati)-2.889 F -.15(ve)-.25 G
-.598(to one greater than the last history position, so ne)180 276 R -.05
-(ga)-.15 G(ti).05 E .899 -.15(ve i)-.25 H .599
-(ndices count back from the end).15 F(of the history)180 288 Q 2.5(,a)
+(not, the v)144 333.6 Q(alue of)-.25 E F3(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 345.6 Q F0
+(Clear the history list by deleting all the entries.)180 345.6 Q F1
+<ad64>144 357.6 Q F2(of)2.5 E(fset)-.18 E F0 .39
+(Delete the history entry at position)180 369.6 R F2(of)2.889 E(fset)
+-.18 E F0 5.389(.I)C(f)-5.389 E F2(of)2.889 E(fset)-.18 E F0 .389(is ne)
+2.889 F -.05(ga)-.15 G(ti).05 E -.15(ve)-.25 G 2.889(,i).15 G 2.889(ti)
+-2.889 G 2.889(si)-2.889 G .389(nterpreted as relati)-2.889 F -.15(ve)
+-.25 G .598(to one greater than the last history position, so ne)180
+381.6 R -.05(ga)-.15 G(ti).05 E .899 -.15(ve i)-.25 H .599
+(ndices count back from the end).15 F(of the history)180 393.6 Q 2.5(,a)
 -.65 G(nd an inde)-2.5 E 2.5(xo)-.15 G 2.5<66ad>-2.5 G 2.5(1r)-2.5 G
 (efers to the current)-2.5 E F1(history -d)2.5 E F0(command.)2.5 E F1
-<ad64>144 300 Q F2(start)2.5 E F0<ad>A F2(end)A F0 .758
-(Delete the history entries between positions)180 312 R F2(start)3.258 E
-F0(and)3.257 E F2(end)3.257 E F0 3.257(,i)C(nclusi)-3.257 E -.15(ve)-.25
-G 5.757(.P).15 G(ositi)-5.757 E 1.057 -.15(ve a)-.25 H .757(nd ne).15 F
--.05(ga)-.15 G(-).05 E(ti)180 324 Q .3 -.15(ve v)-.25 H(alues for)-.1 E
-F2(start)2.5 E F0(and)2.5 E F2(end)2.5 E F0
+<ad64>144 405.6 Q F2(start)2.5 E F0<ad>A F2(end)A F0 .758
+(Delete the history entries between positions)180 417.6 R F2(start)3.258
+E F0(and)3.257 E F2(end)3.257 E F0 3.257(,i)C(nclusi)-3.257 E -.15(ve)
+-.25 G 5.757(.P).15 G(ositi)-5.757 E 1.057 -.15(ve a)-.25 H .757(nd ne)
+.15 F -.05(ga)-.15 G(-).05 E(ti)180 429.6 Q .3 -.15(ve v)-.25 H
+(alues for)-.1 E F2(start)2.5 E F0(and)2.5 E F2(end)2.5 E F0
 (are interpreted as described abo)2.5 E -.15(ve)-.15 G(.).15 E F1<ad61>
-144 336 Q F0 .564(Append the `)180 336 R(`ne)-.74 E(w')-.25 E 3.064('h)
--.74 G .564(istory lines to the history \214le.)-3.064 F .565
-(These are history lines entered since)5.564 F(the be)180 348 Q
+144 441.6 Q F0 .564(Append the `)180 441.6 R(`ne)-.74 E(w')-.25 E 3.064
+('h)-.74 G .564(istory lines to the history \214le.)-3.064 F .565
+(These are history lines entered since)5.564 F(the be)180 453.6 Q
 (ginning of the current)-.15 E F1(bash)2.5 E F0(session, b)2.5 E
-(ut not already appended to the history \214le.)-.2 E F1<ad6e>144 360 Q
-F0 .854(Read the history lines not already read from the history \214le\
- into the current history list.)180 360 R .772
-(These are lines appended to the history \214le since the be)180 372 R
+(ut not already appended to the history \214le.)-.2 E F1<ad6e>144 465.6
+Q F0 .854(Read the history lines not already read from the history \214\
+le into the current history list.)180 465.6 R .772
+(These are lines appended to the history \214le since the be)180 477.6 R
 .773(ginning of the current)-.15 F F1(bash)3.273 E F0(ses-)3.273 E
-(sion.)180 384 Q F1<ad72>144 396 Q F0(Read the contents of the history \
-\214le and append them to the current history list.)180 396 Q F1<ad77>
-144 408 Q F0(Write the current history list to the history \214le, o)180
-408 Q -.15(ve)-.15 G(rwriting the history \214le').15 E 2.5(sc)-.55 G
-(ontents.)-2.5 E F1<ad70>144 420 Q F0 .626
-(Perform history substitution on the follo)180 420 R(wing)-.25 E F2(ar)
-3.125 E(gs)-.37 E F0 .625(and display the result on the standard)3.125 F
-2.975(output. Does)180 432 R .475
+(sion.)180 489.6 Q F1<ad72>144 501.6 Q F0(Read the contents of the hist\
+ory \214le and append them to the current history list.)180 501.6 Q F1
+<ad77>144 513.6 Q F0
+(Write the current history list to the history \214le, o)180 513.6 Q
+-.15(ve)-.15 G(rwriting the history \214le').15 E 2.5(sc)-.55 G
+(ontents.)-2.5 E F1<ad70>144 525.6 Q F0 .626
+(Perform history substitution on the follo)180 525.6 R(wing)-.25 E F2
+(ar)3.125 E(gs)-.37 E F0 .625(and display the result on the standard)
+3.125 F 2.975(output. Does)180 537.6 R .475
 (not store the results in the history list.)2.975 F(Each)5.475 E F2(ar)
 2.975 E(g)-.37 E F0 .475(must be quoted to disable)2.975 F
-(normal history e)180 444 Q(xpansion.)-.15 E F1<ad73>144 456 Q F0 .363
-(Store the)180 456 R F2(ar)3.193 E(gs)-.37 E F0 .363
+(normal history e)180 549.6 Q(xpansion.)-.15 E F1<ad73>144 561.6 Q F0
+.363(Store the)180 561.6 R F2(ar)3.193 E(gs)-.37 E F0 .363
 (in the history list as a single entry)3.133 F 5.363(.T)-.65 G .362
-(he last command in the history list is)-5.363 F(remo)180 468 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 .145(If the)144 484.8 R F3(HISTTIMEFORMA)2.645 E(T)
+(he last command in the history list is)-5.363 F(remo)180 573.6 Q -.15
+(ve)-.15 G 2.5(db).15 G(efore the)-2.5 E F2(ar)2.83 E(gs)-.37 E F0
+(are added.)2.77 E .145(If the)144 590.4 R F3(HISTTIMEFORMA)2.645 E(T)
 -.855 E F0 -.25(va)2.395 G .145
 (riable is set, the time stamp information associated with each history)
-.25 F .669(entry is written to the history \214le, mark)144 496.8 R .669
+.25 F .669(entry is written to the history \214le, mark)144 602.4 R .669
 (ed with the history comment character)-.1 F 5.668(.W)-.55 G .668
-(hen the history)-5.668 F .955(\214le is read, lines be)144 508.8 R .956
+(hen the history)-5.668 F .955(\214le is read, lines be)144 614.4 R .956
 (ginning with the history comment character follo)-.15 F .956
 (wed immediately by a digit)-.25 F 1.796
-(are interpreted as timestamps for the follo)144 520.8 R 1.795
+(are interpreted as timestamps for the follo)144 626.4 R 1.795
 (wing history entry)-.25 F 6.795(.T)-.65 G 1.795(he return v)-6.795 F
-1.795(alue is 0 unless an)-.25 F(in)144 532.8 Q -.25(va)-.4 G .768(lid \
+1.795(alue is 0 unless an)-.25 F(in)144 638.4 Q -.25(va)-.4 G .768(lid \
 option is encountered, an error occurs while reading or writing the his\
-tory \214le, an in).25 F -.25(va)-.4 G(lid).25 E F2(of)144 544.8 Q(fset)
+tory \214le, an in).25 F -.25(va)-.4 G(lid).25 E F2(of)144 650.4 Q(fset)
 -.18 E F0 1.032(is supplied as an ar)3.532 F 1.031(gument to)-.18 F F1
 <ad64>3.531 E F0 3.531(,o)C 3.531(rt)-3.531 G 1.031(he history e)-3.531
 F 1.031(xpansion supplied as an ar)-.15 F 1.031(gument to)-.18 F F1
-<ad70>3.531 E F0 -.1(fa)144 556.8 S(ils.).1 E F1(jobs)108 573.6 Q F0([)
+<ad70>3.531 E F0 -.1(fa)144 662.4 S(ils.).1 E F1(jobs)108 679.2 Q F0([)
 2.5 E F1(\255lnprs)A F0 2.5(][)C F2(jobspec)A F0(... ])2.5 E F1
-(jobs \255x)108 585.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 597.6 Q .3 -.15
+(jobs \255x)108 691.2 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 703.2 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 609.6 Q F0
-(List process IDs in addition to the normal information.)180 609.6 Q F1
-<ad6e>144 621.6 Q F0 .193(Display information only about jobs that ha)
-180 621.6 R .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 633.6 Q F1<ad70>
-144 645.6 Q F0(List only the process ID of the job')180 645.6 Q 2.5(sp)
--.55 G(rocess group leader)-2.5 E(.)-.55 E F1<ad72>144 657.6 Q F0
-(Display only running jobs.)180 657.6 Q F1<ad73>144 669.6 Q F0
-(Display only stopped jobs.)180 669.6 Q(If)144 686.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 698.4 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 715.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 727.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
-(GNU Bash 5.0)72 768 Q(2018 March 15)144.29 E(65)193.45 E 0 Cg EP
+(he follo).15 E(wing meanings:)-.25 E F1<ad6c>144 715.2 Q F0
+(List process IDs in addition to the normal information.)180 715.2 Q
+(GNU Bash 5.0)72 768 Q(2018 August 7)145.395 E(65)194.555 E 0 Cg EP
 %%Page: 66 66
 %%BeginPageSetup
 BP
 %%EndPageSetup
 /F0 10/Times-Roman@0 SF -.35(BA)72 48 S 137.14(SH\(1\) General).35 F
 (Commands Manual)2.5 E -.35(BA)139.64 G(SH\(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(|)A F1<ad4c>A 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
+SF<ad6e>144 84 Q F0 .193(Display information only about jobs that ha)180
+84 R .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 96 Q F1<ad70>144 108 Q
+F0(List only the process ID of the job')180 108 Q 2.5(sp)-.55 G
+(rocess group leader)-2.5 E(.)-.55 E F1<ad72>144 120 Q F0
+(Display only running jobs.)180 120 Q F1<ad73>144 132 Q F0
+(Display only stopped jobs.)180 132 Q(If)144 148.8 Q/F2 10
+/Times-Italic@0 SF(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 160.8 Q
+-.25(va)-.4 G(lid option is encountered or an in).25 E -.25(va)-.4 G
+(lid).25 E F2(jobspec)4.24 E F0(is supplied.)2.81 E .394(If the)144
+177.6 R F1<ad78>2.894 E F0 .394(option is supplied,)2.894 F F1(jobs)
+2.894 E F0 .394(replaces an)2.894 F(y)-.15 E F2(jobspec)4.634 E F0 .394
+(found in)3.204 F F2(command)3.094 E F0(or)3.664 E F2(ar)3.224 E(gs)-.37
+E F0 .395(with the corre-)3.164 F(sponding process group ID, and e)144
+189.6 Q -.15(xe)-.15 G(cutes).15 E F2(command)2.7 E F0(passing it)3.27 E
+F2(ar)2.5 E(gs)-.37 E F0 2.5(,r).27 G(eturning its e)-2.5 E(xit status.)
+-.15 E F1(kill)108 206.4 Q F0([)2.5 E F1<ad73>A F2(sigspec)2.5 E F0(|)
+2.5 E F1<ad6e>2.5 E F2(signum)2.5 E F0(|)2.5 E F1<ad>2.5 E F2(sigspec)A
+F0 2.5(][)C F2(pid)-2.5 E F0(|)2.5 E F2(jobspec)2.5 E F0 2.5(].)C(..)
+-2.5 E F1(kill \255l)108 218.4 Q F0(|)A F1<ad4c>A 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 230.4 R F2(sigspec)2.96 E F0(or)2.93 E F2
 (signum)2.96 E F0 .119(to the processes named by)2.939 F F2(pid)3.869 E
 F0(or)3.389 E F2(jobspec)2.619 E F0(.).31 E F2(sigspec)5.459 E F0(is)
-2.929 E .318(either a case-insensiti)144 120 R .618 -.15(ve s)-.25 H
+2.929 E .318(either a case-insensiti)144 242.4 R .618 -.15(ve s)-.25 H
 .318(ignal name such as).15 F/F3 9/Times-Bold@0 SF(SIGKILL)2.818 E F0
 .319(\(with or without the)2.569 F F3(SIG)2.819 E F0 .319
-(pre\214x\) or a signal)2.569 F(number;)144 132 Q F2(signum)4.189 E F0
+(pre\214x\) or a signal)2.569 F(number;)144 254.4 Q F2(signum)4.189 E F0
 1.349(is a signal number)4.169 F 6.349(.I)-.55 G(f)-6.349 E F2(sigspec)
 4.189 E F0 1.349(is not present, then)4.159 F F3(SIGTERM)3.849 E F0
-1.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 266.4 Q .522(gument of)-.18
+F F1<ad6c>3.023 E F0 .523(lists the signal names.)3.023 F .523(If an)
+5.523 F 3.023(ya)-.15 G -.18(rg)-3.023 G .523(uments are supplied when)
+.18 F F1<ad6c>3.023 E F0 .523(is gi)3.023 F -.15(ve)-.25 G .523
+(n, the names).15 F .28(of the signals corresponding to the ar)144 278.4
+R .28(guments are listed, and the return status is 0.)-.18 F(The)5.28 E
+F2 -.2(ex)2.78 G(it_status).2 E F0(ar)144 290.4 Q .377(gument to)-.18 F
+F1<ad6c>2.877 E F0 .378
 (is a number specifying either a signal number or the e)2.877 F .378
-(xit status of a process termi-)-.15 F .963(nated by a signal.)144 180 R
-(The)5.962 E F1<ad4c>3.462 E F0 .962(option is equi)3.462 F -.25(va)-.25
-G .962(lent to).25 F F1<ad6c>3.462 E F0(.)A F1(kill)5.962 E F0 .962
+(xit status of a process termi-)-.15 F .963(nated by a signal.)144 302.4
+R(The)5.962 E F1<ad4c>3.462 E F0 .962(option is equi)3.462 F -.25(va)
+-.25 G .962(lent to).25 F F1<ad6c>3.462 E F0(.)A F1(kill)5.962 E F0 .962
 (returns true if at least one signal w)3.462 F(as)-.1 E
-(successfully sent, or f)144 192 Q(alse if an error occurs or an in)-.1
-E -.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.026 E(g)-.37 E F0 .196(is an arithmetic e)2.916 F .197
+(successfully sent, or f)144 314.4 Q(alse if an error occurs or an in)
+-.1 E -.25(va)-.4 G(lid option is encountered.).25 E F1(let)108 331.2 Q
+F2(ar)2.5 E(g)-.37 E F0([)2.5 E F2(ar)A(g)-.37 E F0(...])2.5 E(Each)144
+343.2 Q F2(ar)3.026 E(g)-.37 E F0 .196(is an arithmetic e)2.916 F .197
 (xpression to be e)-.15 F -.25(va)-.25 G .197(luated \(see).25 F F3 .197
 (ARITHMETIC EV)2.697 F(ALU)-1.215 E -.855(AT)-.54 G(ION).855 E F0(abo)
-2.447 E -.15(ve)-.15 G 2.697(\). If).15 F(the last)144 232.8 Q F2(ar)
+2.447 E -.15(ve)-.15 G 2.697(\). If).15 F(the last)144 355.2 Q F2(ar)
 2.83 E(g)-.37 E F0 -.25(eva)2.72 G(luates to 0,).25 E F1(let)2.5 E F0
-(returns 1; 0 is returned otherwise.)2.5 E F1(local)108 249.6 Q F0([)2.5
-F2(option)A F0 2.5(][)C F2(name)-2.5 E F0([=)A F2(value)A F0 2.5(].)C
-(.. | \255 ])-2.5 E -.15(Fo)144 261.6 S 2.56(re).15 G .06(ach ar)-2.56 F
+(returns 1; 0 is returned otherwise.)2.5 E F1(local)108 372 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
+(.. | \255 ])-2.5 E -.15(Fo)144 384 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
+-5.06 E F2(option)2.56 E F0 .06(can be)2.56 F(an)144 396 Q 3.152(yo)-.15
+G 3.152(ft)-3.152 G .652(he options accepted by)-3.152 F F1(declar)3.152
+E(e)-.18 E F0 5.652(.W)C(hen)-5.652 E F1(local)3.152 E F0 .653
 (is used within a function, it causes the v)3.152 F(ari-)-.25 E(able)144
-285.6 Q F2(name)3.282 E F0 .422(to ha)3.102 F .722 -.15(ve a v)-.2 H
-.422(isible scope restricted to that function and its children.).15 F
-(If)5.421 E F2(name)2.921 E F0 .421(is \255, the set)2.921 F 1.461
-(of shell options is made local to the function in which)144 297.6 R F1
+408 Q F2(name)3.282 E F0 .422(to ha)3.102 F .722 -.15(ve a v)-.2 H .422
+(isible scope restricted to that function and its children.).15 F(If)
+5.421 E F2(name)2.921 E F0 .421(is \255, the set)2.921 F 1.461
+(of shell options is made local to the function in which)144 420 R F1
 (local)3.961 E F0 1.462(is in)3.961 F -.2(vo)-.4 G -.1(ke).2 G 1.462
-(d: shell options changed).1 F 1.563(using the)144 309.6 R F1(set)4.063
-F0 -.2(bu)4.063 G 1.563
+(d: shell options changed).1 F 1.563(using the)144 432 R F1(set)4.063 E
+F0 -.2(bu)4.063 G 1.563
 (iltin inside the function are restored to their original v).2 F 1.562
-(alues when the function)-.25 F 3.743(returns. W)144 321.6 R 1.243
+(alues when the function)-.25 F 3.743(returns. W)144 444 R 1.243
 (ith no operands,)-.4 F F1(local)3.743 E F0 1.243
 (writes a list of local v)3.743 F 1.244
 (ariables to the standard output.)-.25 F 1.244(It is an)6.244 F .42
-(error to use)144 333.6 R F1(local)2.92 E F0 .42
+(error to use)144 456 R F1(local)2.92 E F0 .42
 (when not within a function.)2.92 F .42(The return status is 0 unless)
 5.42 F F1(local)2.92 E F0 .42(is used outside a)2.92 F(function, an in)
-144 345.6 Q -.25(va)-.4 G(lid).25 E F2(name)2.86 E F0(is supplied, or)
-2.68 E F2(name)2.5 E F0(is a readonly v)2.5 E(ariable.)-.25 E F1(logout)
-108 362.4 Q F0(Exit a login shell.)144 362.4 Q F1(map\214le)108 379.2 Q
-F0([)2.5 E F1<ad64>A F2(delim)2.5 E F0 2.5(][)C F1<ad6e>-2.5 E F2(count)
+144 468 Q -.25(va)-.4 G(lid).25 E F2(name)2.86 E F0(is supplied, or)2.68
+E F2(name)2.5 E F0(is a readonly v)2.5 E(ariable.)-.25 E F1(logout)108
+484.8 Q F0(Exit a login shell.)144 484.8 Q F1(map\214le)108 501.6 Q F0
+([)2.5 E F1<ad64>A F2(delim)2.5 E F0 2.5(][)C F1<ad6e>-2.5 E F2(count)
 2.5 E F0 2.5(][)C F1<ad4f>-2.5 E F2(origin)2.5 E F0 2.5(][)C F1<ad73>
 -2.5 E F2(count)2.5 E F0 2.5(][)C F1<ad74>-2.5 E F0 2.5(][)C F1<ad75>
 -2.5 E F2(fd)2.5 E F0 2.5(][)C F1<ad43>-2.5 E F2(callbac)2.5 E(k)-.2 E
 F0 2.5(][)C F1<ad63>-2.5 E F2(quantum)2.5 E F0 2.5(][)C F2(arr)-2.5 E
-(ay)-.15 E F0(])A F1 -.18(re)108 391.2 S(adarray).18 E F0([)2.5 E F1
+(ay)-.15 E F0(])A F1 -.18(re)108 513.6 S(adarray).18 E F0([)2.5 E F1
 <ad64>A F2(delim)2.5 E F0 2.5(][)C F1<ad6e>-2.5 E F2(count)2.5 E F0 2.5
 (][)C F1<ad4f>-2.5 E F2(origin)2.5 E F0 2.5(][)C F1<ad73>-2.5 E F2
 (count)2.5 E F0 2.5(][)C F1<ad74>-2.5 E F0 2.5(][)C F1<ad75>-2.5 E F2
 (fd)2.5 E F0 2.5(][)C F1<ad43>-2.5 E F2(callbac)2.5 E(k)-.2 E F0 2.5(][)
 C F1<ad63>-2.5 E F2(quantum)2.5 E F0 2.5(][)C F2(arr)-2.5 E(ay)-.15 E F0
-(])A .179(Read lines from the standard input into the inde)144 403.2 R
+(])A .179(Read lines from the standard input into the inde)144 525.6 R
 -.15(xe)-.15 G 2.679(da).15 G .179(rray v)-2.679 F(ariable)-.25 E F2
 (arr)2.68 E(ay)-.15 E F0 2.68(,o).32 G 2.68(rf)-2.68 G .18
-(rom \214le descriptor)-2.68 F F2(fd)4.65 E F0 1.249(if the)144 415.2 R
+(rom \214le descriptor)-2.68 F F2(fd)4.65 E F0 1.249(if the)144 537.6 R
 F1<ad75>3.749 E F0 1.249(option is supplied.)3.749 F 1.249(The v)6.249 F
 (ariable)-.25 E F3(MAPFILE)3.749 E F0 1.249(is the def)3.499 F(ault)-.1
 E F2(arr)3.748 E(ay)-.15 E F0 6.248(.O)C 1.248(ptions, if supplied,)
--6.248 F(ha)144 427.2 Q .3 -.15(ve t)-.2 H(he follo).15 E
-(wing meanings:)-.25 E F1<ad64>144 439.2 Q F0 .91
-(The \214rst character of)180 439.2 R F2(delim)3.41 E F0 .911
+-6.248 F(ha)144 549.6 Q .3 -.15(ve t)-.2 H(he follo).15 E
+(wing meanings:)-.25 E F1<ad64>144 561.6 Q F0 .91
+(The \214rst character of)180 561.6 R F2(delim)3.41 E F0 .911
 (is used to terminate each input line, rather than ne)3.41 F 3.411
-(wline. If)-.25 F F2(delim)180 451.2 Q F0(is the empty string,)2.5 E F1
+(wline. If)-.25 F F2(delim)180 573.6 Q F0(is the empty string,)2.5 E F1
 (map\214le)2.5 E F0(will terminate a line when it reads a NUL character)
-2.5 E(.)-.55 E F1<ad6e>144 463.2 Q F0(Cop)180 463.2 Q 2.5(ya)-.1 G 2.5
+2.5 E(.)-.55 E F1<ad6e>144 585.6 Q F0(Cop)180 585.6 Q 2.5(ya)-.1 G 2.5
 (tm)-2.5 G(ost)-2.5 E F2(count)2.7 E F0 2.5(lines. If)3.18 F F2(count)
-2.5 E F0(is 0, all lines are copied.)2.5 E F1<ad4f>144 475.2 Q F0(Be)180
-475.2 Q(gin assigning to)-.15 E F2(arr)2.83 E(ay)-.15 E F0(at inde)2.82
+2.5 E F0(is 0, all lines are copied.)2.5 E F1<ad4f>144 597.6 Q F0(Be)180
+597.6 Q(gin assigning to)-.15 E F2(arr)2.83 E(ay)-.15 E F0(at inde)2.82
 E(x)-.15 E F2(origin)2.5 E F0 5(.T).24 G(he def)-5 E(ault inde)-.1 E 2.5
-(xi)-.15 G 2.5(s0)-2.5 G(.)-2.5 E F1<ad73>144 487.2 Q F0
-(Discard the \214rst)180 487.2 Q F2(count)2.5 E F0(lines read.)2.5 E F1
-<ad74>144 499.2 Q F0(Remo)180 499.2 Q .3 -.15(ve a t)-.15 H(railing).15
+(xi)-.15 G 2.5(s0)-2.5 G(.)-2.5 E F1<ad73>144 609.6 Q F0
+(Discard the \214rst)180 609.6 Q F2(count)2.5 E F0(lines read.)2.5 E F1
+<ad74>144 621.6 Q F0(Remo)180 621.6 Q .3 -.15(ve a t)-.15 H(railing).15
 E F2(delim)2.5 E F0(\(def)2.5 E(ault ne)-.1 E
-(wline\) from each line read.)-.25 E F1<ad75>144 511.2 Q F0
-(Read lines from \214le descriptor)180 511.2 Q F2(fd)2.5 E F0
-(instead of the standard input.)2.5 E F1<ad43>144 523.2 Q F0(Ev)180
-523.2 Q(aluate)-.25 E F2(callbac)2.7 E(k)-.2 E F0(each time)3.17 E F2
+(wline\) from each line read.)-.25 E F1<ad75>144 633.6 Q F0
+(Read lines from \214le descriptor)180 633.6 Q F2(fd)2.5 E F0
+(instead of the standard input.)2.5 E F1<ad43>144 645.6 Q F0(Ev)180
+645.6 Q(aluate)-.25 E F2(callbac)2.7 E(k)-.2 E F0(each time)3.17 E F2
 (quantum)2.5 E F0(lines are read.)2.5 E(The)5 E F1<ad63>2.5 E F0
-(option speci\214es)2.5 E F2(quantum)2.5 E F0(.).32 E F1<ad63>144 535.2
-Q F0(Specify the number of lines read between each call to)180 535.2 Q
-F2(callbac)2.5 E(k)-.2 E F0(.).67 E(If)144 552 Q F1<ad43>2.968 E F0 .467
-(is speci\214ed without)2.967 F F1<ad63>2.967 E F0 2.967(,t)C .467
+(option speci\214es)2.5 E F2(quantum)2.5 E F0(.).32 E F1<ad63>144 657.6
+Q F0(Specify the number of lines read between each call to)180 657.6 Q
+F2(callbac)2.5 E(k)-.2 E F0(.).67 E(If)144 674.4 Q F1<ad43>2.968 E F0
+.467(is speci\214ed without)2.967 F F1<ad63>2.967 E F0 2.967(,t)C .467
 (he def)-2.967 F .467(ault quantum is 5000.)-.1 F(When)5.467 E F2
 (callbac)2.967 E(k)-.2 E F0 .467(is e)2.967 F -.25(va)-.25 G .467
-(luated, it is sup-).25 F .261(plied the inde)144 564 R 2.761(xo)-.15 G
-2.761(ft)-2.761 G .261(he ne)-2.761 F .262(xt array element to be assig\
-ned and the line to be assigned to that element)-.15 F .275
-(as additional ar)144 576 R(guments.)-.18 E F2(callbac)5.275 E(k)-.2 E
+(luated, it is sup-).25 F .261(plied the inde)144 686.4 R 2.761(xo)-.15
+G 2.761(ft)-2.761 G .261(he ne)-2.761 F .262(xt array element to be ass\
+igned and the line to be assigned to that element)-.15 F .275
+(as additional ar)144 698.4 R(guments.)-.18 E F2(callbac)5.275 E(k)-.2 E
 F0 .275(is e)2.775 F -.25(va)-.25 G .274
 (luated after the line is read b).25 F .274
-(ut before the array element is)-.2 F(assigned.)144 588 Q
-(If not supplied with an e)144 604.8 Q(xplicit origin,)-.15 E F1
+(ut before the array element is)-.2 F(assigned.)144 710.4 Q
+(If not supplied with an e)144 727.2 Q(xplicit origin,)-.15 E F1
 (map\214le)2.5 E F0(will clear)2.5 E F2(arr)2.5 E(ay)-.15 E F0
-(before assigning to it.)2.5 E F1(map\214le)144 621.6 Q F0 1.905
-(returns successfully unless an in)4.405 F -.25(va)-.4 G 1.905
-(lid option or option ar).25 F 1.906(gument is supplied,)-.18 F F2(arr)
-4.406 E(ay)-.15 E F0(is)4.406 E(in)144 633.6 Q -.25(va)-.4 G
-(lid or unassignable, or if).25 E F2(arr)2.5 E(ay)-.15 E F0
-(is not an inde)2.5 E -.15(xe)-.15 G 2.5(da).15 G(rray)-2.5 E(.)-.65 E
-F1(popd)108 650.4 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 662.4 Q -.15(ve)-.15 G 2.8(se)
-.15 G .3(ntries from the directory stack.)-2.8 F -.4(Wi)5.299 G .299
-(th no ar).4 F .299(guments, remo)-.18 F -.15(ve)-.15 G 2.799(st).15 G
-.299(he top directory from the)-2.799 F 1.478(stack, and performs a)144
-674.4 R F1(cd)3.978 E F0 1.479(to the ne)3.978 F 3.979(wt)-.25 G 1.479
-(op directory)-3.979 F 6.479(.A)-.65 G -.18(rg)-6.479 G 1.479
-(uments, if supplied, ha).18 F 1.779 -.15(ve t)-.2 H 1.479(he follo).15
-F(wing)-.25 E(meanings:)144 686.4 Q F1<ad6e>144 698.4 Q F0 .551
-(Suppresses the normal change of directory when remo)180 698.4 R .551
-(ving directories from the stack, so)-.15 F
-(that only the stack is manipulated.)180 710.4 Q(GNU Bash 5.0)72 768 Q
-(2018 March 15)144.29 E(66)193.45 E 0 Cg EP
+(before assigning to it.)2.5 E(GNU Bash 5.0)72 768 Q(2018 August 7)
+145.395 E(66)194.555 E 0 Cg EP
 %%Page: 67 67
 %%BeginPageSetup
 BP
 %%EndPageSetup
 /F0 10/Times-Roman@0 SF -.35(BA)72 48 S 137.14(SH\(1\) General).35 F
 (Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E/F1 10/Times-Bold@0
-SF(+)144 84 Q/F2 10/Times-Italic@0 SF(n)A F0(Remo)180 84 Q -.15(ve)-.15
-G 2.64(st).15 G(he)-2.64 E F2(n)2.64 E F0 .14
-(th entry counting from the left of the list sho)B .14(wn by)-.25 F F1
-(dirs)2.64 E F0 2.64(,s)C .14(tarting with zero.)-2.64 F -.15(Fo)180 96
-S 2.5(re).15 G(xample:)-2.65 E/F3 10/Courier@0 SF(popd +0)2.5 E F0(remo)
-2.5 E -.15(ve)-.15 G 2.5(st).15 G(he \214rst directory)-2.5 E(,)-.65 E
-F3(popd +1)2.5 E F0(the second.)2.5 E F1<ad>144 108 Q F2(n)A F0(Remo)180
-108 Q -.15(ve)-.15 G 3.76(st).15 G(he)-3.76 E F2(n)3.76 E F0 1.259
-(th entry counting from the right of the list sho)B 1.259(wn by)-.25 F
-F1(dirs)3.759 E F0 3.759(,s)C 1.259(tarting with)-3.759 F 2.5(zero. F)
-180 120 R(or e)-.15 E(xample:)-.15 E F3(popd -0)2.5 E F0(remo)2.5 E -.15
-(ve)-.15 G 2.5(st).15 G(he last directory)-2.5 E(,)-.65 E F3(popd -1)2.5
-E F0(the ne)2.5 E(xt to last.)-.15 E .643(If the)144 136.8 R F1(popd)
-3.143 E F0 .643(command is successful, a)3.143 F F1(dirs)3.143 E F0 .644
-(is performed as well, and the return status is 0.)3.143 F F1(popd)5.644
-E F0 .416(returns f)144 148.8 R .416(alse if an in)-.1 F -.25(va)-.4 G
-.415(lid option is encountered, the directory stack is empty).25 F 2.915
+SF(map\214le)144 84 Q F0 1.905(returns successfully unless an in)4.405 F
+-.25(va)-.4 G 1.905(lid option or option ar).25 F 1.906
+(gument is supplied,)-.18 F/F2 10/Times-Italic@0 SF(arr)4.406 E(ay)-.15
+E F0(is)4.406 E(in)144 96 Q -.25(va)-.4 G(lid or unassignable, or if).25
+E F2(arr)2.5 E(ay)-.15 E F0(is not an inde)2.5 E -.15(xe)-.15 G 2.5(da)
+.15 G(rray)-2.5 E(.)-.65 E F1(popd)108 112.8 Q F0<5bad>2.5 E F1(n)A F0
+2.5(][)C(+)-2.5 E F2(n)A F0 2.5(][)C<ad>-2.5 E F2(n)A F0(])A(Remo)144
+124.8 Q -.15(ve)-.15 G 2.8(se).15 G .3(ntries from the directory stack.)
+-2.8 F -.4(Wi)5.299 G .299(th no ar).4 F .299(guments, remo)-.18 F -.15
+(ve)-.15 G 2.799(st).15 G .299(he top directory from the)-2.799 F 1.478
+(stack, and performs a)144 136.8 R F1(cd)3.978 E F0 1.479(to the ne)
+3.978 F 3.979(wt)-.25 G 1.479(op directory)-3.979 F 6.479(.A)-.65 G -.18
+(rg)-6.479 G 1.479(uments, if supplied, ha).18 F 1.779 -.15(ve t)-.2 H
+1.479(he follo).15 F(wing)-.25 E(meanings:)144 148.8 Q F1<ad6e>144 160.8
+Q F0 .551(Suppresses the normal change of directory when remo)180 160.8
+R .551(ving directories from the stack, so)-.15 F
+(that only the stack is manipulated.)180 172.8 Q F1(+)144 184.8 Q F2(n)A
+F0(Remo)180 184.8 Q -.15(ve)-.15 G 2.64(st).15 G(he)-2.64 E F2(n)2.64 E
+F0 .14(th entry counting from the left of the list sho)B .14(wn by)-.25
+F F1(dirs)2.64 E F0 2.64(,s)C .14(tarting with zero.)-2.64 F -.15(Fo)180
+196.8 S 2.5(re).15 G(xample:)-2.65 E/F3 10/Courier@0 SF(popd +0)2.5 E F0
+(remo)2.5 E -.15(ve)-.15 G 2.5(st).15 G(he \214rst directory)-2.5 E(,)
+-.65 E F3(popd +1)2.5 E F0(the second.)2.5 E F1<ad>144 208.8 Q F2(n)A F0
+(Remo)180 208.8 Q -.15(ve)-.15 G 3.76(st).15 G(he)-3.76 E F2(n)3.76 E F0
+1.259(th entry counting from the right of the list sho)B 1.259(wn by)
+-.25 F F1(dirs)3.759 E F0 3.759(,s)C 1.259(tarting with)-3.759 F 2.5
+(zero. F)180 220.8 R(or e)-.15 E(xample:)-.15 E F3(popd -0)2.5 E F0
+(remo)2.5 E -.15(ve)-.15 G 2.5(st).15 G(he last directory)-2.5 E(,)-.65
+E F3(popd -1)2.5 E F0(the ne)2.5 E(xt to last.)-.15 E .643(If the)144
+237.6 R F1(popd)3.143 E F0 .643(command is successful, a)3.143 F F1
+(dirs)3.143 E F0 .644(is performed as well, and the return status is 0.)
+3.143 F F1(popd)5.644 E F0 .416(returns f)144 249.6 R .416
+(alse if an in)-.1 F -.25(va)-.4 G .415
+(lid option is encountered, the directory stack is empty).25 F 2.915
 (,an)-.65 G(on-e)-2.915 E .415(xistent direc-)-.15 F
-(tory stack entry is speci\214ed, or the directory change f)144 160.8 Q
-(ails.)-.1 E F1(printf)108 177.6 Q F0([)2.5 E F1<ad76>A F2(var)2.5 E F0
+(tory stack entry is speci\214ed, or the directory change f)144 261.6 Q
+(ails.)-.1 E F1(printf)108 278.4 Q F0([)2.5 E F1<ad76>A F2(var)2.5 E F0
 (])A F2(format)2.5 E F0([)2.5 E F2(ar)A(guments)-.37 E F0(])A 1.436
-(Write the formatted)144 189.6 R F2(ar)3.936 E(guments)-.37 E F0 1.437
+(Write the formatted)144 290.4 R F2(ar)3.936 E(guments)-.37 E F0 1.437
 (to the standard output under the control of the)3.936 F F2(format)3.937
 E F0 6.437(.T)C(he)-6.437 E F1<ad76>3.937 E F0 .126
-(option causes the output to be assigned to the v)144 201.6 R(ariable)
+(option causes the output to be assigned to the v)144 302.4 R(ariable)
 -.25 E F2(var)2.626 E F0 .126(rather than being printed to the standard)
-2.626 F(output.)144 213.6 Q(The)144 237.6 Q F2(format)3.017 E F0 .517(i\
+2.626 F(output.)144 314.4 Q(The)144 338.4 Q F2(format)3.017 E F0 .517(i\
 s a character string which contains three types of objects: plain chara\
 cters, which are)3.017 F .704(simply copied to standard output, charact\
-er escape sequences, which are con)144 249.6 R -.15(ve)-.4 G .703
+er escape sequences, which are con)144 350.4 R -.15(ve)-.4 G .703
 (rted and copied to).15 F .036(the standard output, and format speci\
-\214cations, each of which causes printing of the ne)144 261.6 R .037
-(xt successi)-.15 F -.15(ve)-.25 G F2(ar)144 273.6 Q(gument)-.37 E F0
+\214cations, each of which causes printing of the ne)144 362.4 R .037
+(xt successi)-.15 F -.15(ve)-.25 G F2(ar)144 374.4 Q(gument)-.37 E F0
 5.532(.I)C 3.032(na)-5.532 G .532(ddition to the standard)-3.032 F F2
 (printf)3.032 E F0 .532(\(1\) format speci\214cations,)B F1(printf)3.031
-E F0 .531(interprets the follo)3.031 F(w-)-.25 E(ing e)144 285.6 Q
-(xtensions:)-.15 E F1(%b)144 297.6 Q F0(causes)180 297.6 Q F1(printf)
+E F0 .531(interprets the follo)3.031 F(w-)-.25 E(ing e)144 386.4 Q
+(xtensions:)-.15 E F1(%b)144 398.4 Q F0(causes)180 398.4 Q F1(printf)
 2.595 E F0 .096(to e)2.595 F .096
 (xpand backslash escape sequences in the corresponding)-.15 F F2(ar)
-2.596 E(gument)-.37 E F0 .096(in the)2.596 F(same w)180 309.6 Q(ay as)
--.1 E F1(echo \255e)2.5 E F0(.)A F1(%q)144 321.6 Q F0(causes)180 321.6 Q
+2.596 E(gument)-.37 E F0 .096(in the)2.596 F(same w)180 410.4 Q(ay as)
+-.1 E F1(echo \255e)2.5 E F0(.)A F1(%q)144 422.4 Q F0(causes)180 422.4 Q
 F1(printf)2.51 E F0 .01(to output the corresponding)2.51 F F2(ar)2.51 E
 (gument)-.37 E F0 .01(in a format that can be reused as shell)2.51 F
-(input.)180 333.6 Q F1(%\()144 345.6 Q F2(datefmt)A F1(\)T)A F0(causes)
-180 357.6 Q F1(printf)4.403 E F0 1.904
+(input.)180 434.4 Q F1(%\()144 446.4 Q F2(datefmt)A F1(\)T)A F0(causes)
+180 458.4 Q F1(printf)4.403 E F0 1.904
 (to output the date-time string resulting from using)4.403 F F2(datefmt)
-4.404 E F0 1.904(as a format)4.404 F .381(string for)180 369.6 R F2
+4.404 E F0 1.904(as a format)4.404 F .381(string for)180 470.4 R F2
 (strftime)2.881 E F0 2.881(\(3\). The)B(corresponding)2.881 E F2(ar)
 2.881 E(gument)-.37 E F0 .381(is an inte)2.881 F .381
 (ger representing the number)-.15 F .292(of seconds since the epoch.)180
-381.6 R -1 -.8(Tw o)5.293 H .293(special ar)3.593 F .293(gument v)-.18 F
+482.4 R -1 -.8(Tw o)5.293 H .293(special ar)3.593 F .293(gument v)-.18 F
 .293(alues may be used: \2551 represents the)-.25 F .694
-(current time, and \2552 represents the time the shell w)180 393.6 R
+(current time, and \2552 represents the time the shell w)180 494.4 R
 .693(as in)-.1 F -.2(vo)-.4 G -.1(ke).2 G 3.193(d. If).1 F .693(no ar)
-3.193 F .693(gument is speci-)-.18 F .21(\214ed, con)180 405.6 R -.15
+3.193 F .693(gument is speci-)-.18 F .21(\214ed, con)180 506.4 R -.15
 (ve)-.4 G .21(rsion beha).15 F -.15(ve)-.2 G 2.71(sa).15 G 2.71(si)-2.71
 G 2.71<66ad>-2.71 G 2.71(1h)-2.71 G .21(ad been gi)-2.71 F -.15(ve)-.25
 G 2.71(n. This).15 F .21(is an e)2.71 F .21(xception to the usual)-.15 F
-F1(printf)2.71 E F0(beha)180 417.6 Q(vior)-.2 E(.)-.55 E(Ar)144 434.4 Q
+F1(printf)2.71 E F0(beha)180 518.4 Q(vior)-.2 E(.)-.55 E(Ar)144 535.2 Q
 .464(guments to non-string format speci\214ers are treated as C constan\
 ts, e)-.18 F .463(xcept that a leading plus or)-.15 F 1.258
-(minus sign is allo)144 446.4 R 1.259
+(minus sign is allo)144 547.2 R 1.259
 (wed, and if the leading character is a single or double quote, the v)
--.25 F 1.259(alue is the)-.25 F(ASCII v)144 458.4 Q(alue of the follo)
--.25 E(wing character)-.25 E(.)-.55 E(The)144 475.2 Q F2(format)3.424 E
-F0 .923(is reused as necessary to consume all of the)3.424 F F2(ar)3.423
-E(guments)-.37 E F0 5.923(.I)C 3.423(ft)-5.923 G(he)-3.423 E F2(format)
-3.423 E F0 .923(requires more)3.423 F F2(ar)144 487.2 Q(guments)-.37 E
-F0 .033(than are supplied, the e)2.533 F .033
+-.25 F 1.259(alue is the)-.25 F(ASCII v)144 559.2 Q(alue of the follo)
+-.25 E(wing character)-.25 E(.)-.55 E(The)144 576 Q F2(format)3.424 E F0
+.923(is reused as necessary to consume all of the)3.424 F F2(ar)3.423 E
+(guments)-.37 E F0 5.923(.I)C 3.423(ft)-5.923 G(he)-3.423 E F2(format)
+3.423 E F0 .923(requires more)3.423 F F2(ar)144 588 Q(guments)-.37 E F0
+.033(than are supplied, the e)2.533 F .033
 (xtra format speci\214cations beha)-.15 F .333 -.15(ve a)-.2 H 2.533(si)
 .15 G 2.533(faz)-2.533 G .033(ero v)-2.533 F .034(alue or null string,)
--.25 F(as appropriate, had been supplied.)144 499.2 Q(The return v)5 E
+-.25 F(as appropriate, had been supplied.)144 600 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 .64(Adds a directory to the top of the direc\
-tory stack, or rotates the stack, making the ne)144 540 R 3.139(wt)-.25
-G .639(op of the)-3.139 F .416(stack the current w)144 552 R .416
+108 616.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 628.8 Q F0([)2.5 E F1<ad6e>A F0
+2.5(][)C F2(dir)-2.5 E F0(])A .64(Adds a directory to the top of the di\
+rectory stack, or rotates the stack, making the ne)144 640.8 R 3.139(wt)
+-.25 G .639(op of the)-3.139 F .416(stack the current w)144 652.8 R .416
 (orking directory)-.1 F 5.416(.W)-.65 G .416(ith no ar)-5.816 F
 (guments,)-.18 E F1(pushd)2.916 E F0 -.15(ex)2.916 G .416
 (changes the top tw).15 F 2.917(od)-.1 G(irectories)-2.917 E 1.625
-(and returns 0, unless the directory stack is empty)144 564 R 6.625(.A)
--.65 G -.18(rg)-6.625 G 1.625(uments, if supplied, ha).18 F 1.925 -.15
-(ve t)-.2 H 1.625(he follo).15 F(wing)-.25 E(meanings:)144 576 Q F1
-<ad6e>144 588 Q F0 1.811(Suppresses the normal change of directory when\
- rotating or adding directories to the)180 588 R
-(stack, so that only the stack is manipulated.)180 600 Q F1(+)144 612 Q
-F2(n)A F0 1.268(Rotates the stack so that the)180 612 R F2(n)3.768 E F0
-1.267(th directory \(counting from the left of the list sho)B 1.267
-(wn by)-.25 F F1(dirs)180 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)180 636 R F2(n)3.42 E F0 .92
+(and returns 0, unless the directory stack is empty)144 664.8 R 6.625
+(.A)-.65 G -.18(rg)-6.625 G 1.625(uments, if supplied, ha).18 F 1.925
+-.15(ve t)-.2 H 1.625(he follo).15 F(wing)-.25 E(meanings:)144 676.8 Q
+F1<ad6e>144 688.8 Q F0 1.811(Suppresses the normal change of directory \
+when rotating or adding directories to the)180 688.8 R
+(stack, so that only the stack is manipulated.)180 700.8 Q F1(+)144
+712.8 Q F2(n)A F0 1.268(Rotates the stack so that the)180 712.8 R F2(n)
+3.768 E F0 1.267(th directory \(counting from the left of the list sho)B
+1.267(wn by)-.25 F F1(dirs)180 724.8 Q F0 2.5(,s)C
+(tarting with zero\) is at the top.)-2.5 E(GNU Bash 5.0)72 768 Q
+(2018 August 7)145.395 E(67)194.555 E 0 Cg EP
+%%Page: 68 68
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 137.14(SH\(1\) General).35 F
+(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E/F1 10/Times-Bold@0
+SF<ad>144 84 Q/F2 10/Times-Italic@0 SF(n)A F0 .92
+(Rotates the stack so that the)180 84 R 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)180 660 Q F2(dir)3.138 E F0 .288
+F F1(dirs)180 96 Q F0 2.5(,s)C(tarting with zero\) is at the top.)-2.5 E
+F2(dir)144.35 108 Q F0(Adds)180 108 Q F2(dir)3.138 E F0 .288
 (to the directory stack at the top, making it the ne)3.518 F 2.787(wc)
 -.25 G .287(urrent w)-2.787 F .287(orking directory as)-.1 F
-(if it had been supplied as the ar)180 672 Q(gument to the)-.18 E F1(cd)
-2.5 E F0 -.2(bu)2.5 G(iltin.).2 E .488(If the)144 688.8 R F1(pushd)2.988
+(if it had been supplied as the ar)180 120 Q(gument to the)-.18 E F1(cd)
+2.5 E F0 -.2(bu)2.5 G(iltin.).2 E .488(If the)144 136.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 700.8 R F2(dir)
+F1(pushd)2.989 E F0 1.04(returns 0 unless the cd to)144 148.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 712.8 R 3.346(,an)-.65 G(on-e)-3.346 E .847(xistent\
+(stack is empty)144 160.8 R 3.346(,an)-.65 G(on-e)-3.346 E .847(xistent\
  directory stack element is speci\214ed, or the directory change to the)
--.15 F(speci\214ed ne)144 724.8 Q 2.5(wc)-.25 G(urrent directory f)-2.5
-E(ails.)-.1 E(GNU Bash 5.0)72 768 Q(2018 March 15)144.29 E(67)193.45 E 0
-Cg EP
-%%Page: 68 68
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 137.14(SH\(1\) General).35 F
-(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 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
+-.15 F(speci\214ed ne)144 172.8 Q 2.5(wc)-.25 G(urrent directory f)-2.5
+E(ails.)-.1 E F1(pwd)108 189.6 Q F0([)2.5 E F1(\255LP)A F0(])A .845
+(Print the absolute pathname of the current w)144 201.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
+213.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 225.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([)3.817 E F1(\255ers)A F0 3.817(][)C F1<ad61>-3.817 E/F2 10
-/Times-Italic@0 SF(aname)3.817 E F0 3.817(][)C F1<ad64>-3.817 E F2
-(delim)3.817 E F0 3.817(][)C F1<ad69>-3.817 E F2(te)3.817 E(xt)-.2 E F0
-3.817(][)C F1<ad6e>-3.817 E F2(nc)3.816 E(har)-.15 E(s)-.1 E F0 3.816
-(][)C F1<ad4e>-3.816 E F2(nc)3.816 E(har)-.15 E(s)-.1 E F0 3.816(][)C F1
-<ad70>-3.816 E F2(pr)3.816 E(ompt)-.45 E F0 3.816(][)C F1<ad74>-3.816 E
-F2(timeout)3.816 E F0 3.816(][)C F1<ad75>-3.816 E F2(fd)3.816 E F0(])A
-([)108 172.8 Q F2(name)A F0(...])2.5 E .516(One line is read from the s\
-tandard input, or from the \214le descriptor)144 184.8 R F2(fd)3.016 E
-F0 .516(supplied as an ar)3.016 F .517(gument to)-.18 F(the)144 196.8 Q
-F1<ad75>3.848 E F0 1.348(option, split into w)3.848 F 1.348
-(ords as described abo)-.1 F 1.647 -.15(ve u)-.15 H(nder).15 E F1 -.75
-(Wo)3.847 G 1.347(rd Splitting).75 F F0 3.847(,a)C 1.347
-(nd the \214rst w)-3.847 F 1.347(ord is)-.1 F 1.465
-(assigned to the \214rst)144 208.8 R F2(name)3.965 E F0 3.965(,t).18 G
+ reading the name of the current directory or an in)144 237.6 R -.25(va)
+-.4 G(lid).25 E(option is supplied.)144 249.6 Q F1 -.18(re)108 266.4 S
+(ad).18 E F0([)3.817 E F1(\255ers)A F0 3.817(][)C F1<ad61>-3.817 E F2
+(aname)3.817 E F0 3.817(][)C F1<ad64>-3.817 E F2(delim)3.817 E F0 3.817
+(][)C F1<ad69>-3.817 E F2(te)3.817 E(xt)-.2 E F0 3.817(][)C F1<ad6e>
+-3.817 E F2(nc)3.816 E(har)-.15 E(s)-.1 E F0 3.816(][)C F1<ad4e>-3.816 E
+F2(nc)3.816 E(har)-.15 E(s)-.1 E F0 3.816(][)C F1<ad70>-3.816 E F2(pr)
+3.816 E(ompt)-.45 E F0 3.816(][)C F1<ad74>-3.816 E F2(timeout)3.816 E F0
+3.816(][)C F1<ad75>-3.816 E F2(fd)3.816 E F0(])A([)108 278.4 Q F2(name)A
+F0(...])2.5 E .516(One line is read from the standard input, or from th\
+e \214le descriptor)144 290.4 R F2(fd)3.016 E F0 .516(supplied as an ar)
+3.016 F .517(gument to)-.18 F(the)144 302.4 Q F1<ad75>3.848 E F0 1.348
+(option, split into w)3.848 F 1.348(ords as described abo)-.1 F 1.647
+-.15(ve u)-.15 H(nder).15 E F1 -.75(Wo)3.847 G 1.347(rd Splitting).75 F
+F0 3.847(,a)C 1.347(nd the \214rst w)-3.847 F 1.347(ord is)-.1 F 1.465
+(assigned to the \214rst)144 314.4 R F2(name)3.965 E F0 3.965(,t).18 G
 1.465(he second w)-3.965 F 1.465(ord to the second)-.1 F F2(name)3.965 E
 F0 3.965(,a).18 G 1.465(nd so on.)-3.965 F 1.465(If there are more)6.465
-F -.1(wo)144 220.8 S 1.112(rds than names, the remaining w).1 F 1.112
+F -.1(wo)144 326.4 S 1.112(rds than names, the remaining w).1 F 1.112
 (ords and their interv)-.1 F 1.112
-(ening delimiters are assigned to the last)-.15 F F2(name)144 232.8 Q F0
+(ening delimiters are assigned to the last)-.15 F F2(name)144 338.4 Q F0
 5.722(.I).18 G 3.222(ft)-5.722 G .722(here are fe)-3.222 F .722(wer w)
 -.25 F .723
 (ords read from the input stream than names, the remaining names are)-.1
-F .532(assigned empty v)144 244.8 R 3.032(alues. The)-.25 F .532
+F .532(assigned empty v)144 350.4 R 3.032(alues. The)-.25 F .532
 (characters in)3.032 F/F3 9/Times-Bold@0 SF(IFS)3.032 E F0 .531
 (are used to split the line into w)2.782 F .531(ords using the same)-.1
-F .197(rules the shell uses for e)144 256.8 R .197
+F .197(rules the shell uses for e)144 362.4 R .197
 (xpansion \(described abo)-.15 F .497 -.15(ve u)-.15 H(nder).15 E F1
 -.75(Wo)2.697 G .197(rd Splitting).75 F F0 2.697(\). The)B .197
-(backslash charac-)2.697 F .157(ter \()144 268.8 R F1(\\)A F0 2.657(\)m)
+(backslash charac-)2.697 F .157(ter \()144 374.4 R F1(\\)A F0 2.657(\)m)
 C .157(ay be used to remo)-2.657 F .457 -.15(ve a)-.15 H .457 -.15(ny s)
 .15 H .157(pecial meaning for the ne).15 F .156
 (xt character read and for line continu-)-.15 F 2.5(ation. Options,)144
-280.8 R(if supplied, ha)2.5 E .3 -.15(ve t)-.2 H(he follo).15 E
-(wing meanings:)-.25 E F1<ad61>144 292.8 Q F2(aname)2.5 E F0 1.049
-(The w)180 304.8 R 1.049
+386.4 R(if supplied, ha)2.5 E .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.049
+(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.55 E F0 3.55(,s).18 G 1.05(tarting at 0.)-3.55 F F2
-(aname)180.33 316.8 Q F0(is unset before an)2.68 E 2.5(yn)-.15 G .5 -.25
+(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 328.8 Q F2(delim)2.5 E F0
-1.318(The \214rst character of)180 340.8 R F2(delim)3.818 E F0 1.317
+E(guments are ignored.)-.18 E F1<ad64>144 434.4 Q F2(delim)2.5 E F0
+1.318(The \214rst character of)180 446.4 R F2(delim)3.818 E F0 1.317
 (is used to terminate the input line, rather than ne)3.818 F 3.817
-(wline. If)-.25 F F2(delim)180 352.8 Q F0(is the empty string,)2.5 E F1
+(wline. If)-.25 F F2(delim)180 458.4 Q F0(is the empty string,)2.5 E F1
 -.18(re)2.5 G(ad).18 E F0
 (will terminate a line when it reads a NUL character)2.5 E(.)-.55 E F1
-<ad65>144 364.8 Q F0 .372
-(If the standard input is coming from a terminal,)180 364.8 R F1 -.18
+<ad65>144 470.4 Q F0 .372
+(If the standard input is coming from a terminal,)180 470.4 R F1 -.18
 (re)2.873 G(adline).18 E F0(\(see)2.873 E F3(READLINE)2.873 E F0(abo)
 2.623 E -.15(ve)-.15 G 2.873(\)i).15 G 2.873(su)-2.873 G(sed)-2.873 E
-.218(to obtain the line.)180 376.8 R .218
+.218(to obtain the line.)180 482.4 R .218
 (Readline uses the current \(or def)5.218 F .218
 (ault, if line editing w)-.1 F .218(as not pre)-.1 F(viously)-.25 E
-(acti)180 388.8 Q -.15(ve)-.25 G 2.5(\)e).15 G(diting settings, b)-2.5 E
+(acti)180 494.4 Q -.15(ve)-.25 G 2.5(\)e).15 G(diting settings, b)-2.5 E
 (ut uses Readline')-.2 E 2.5(sd)-.55 G(ef)-2.5 E
-(ault \214lename completion.)-.1 E F1<ad69>144 400.8 Q F2(te)2.5 E(xt)
--.2 E F0(If)180 400.8 Q F1 -.18(re)2.715 G(adline).18 E F0 .216
+(ault \214lename completion.)-.1 E F1<ad69>144 506.4 Q F2(te)2.5 E(xt)
+-.2 E F0(If)180 506.4 Q F1 -.18(re)2.715 G(adline).18 E F0 .216
 (is being used to read the line,)2.715 F F2(te)2.716 E(xt)-.2 E F0 .216
 (is placed into the editing b)2.716 F(uf)-.2 E .216(fer before edit-)
--.25 F(ing be)180 412.8 Q(gins.)-.15 E F1<ad6e>144 424.8 Q F2(nc)2.5 E
-(har)-.15 E(s)-.1 E F1 -.18(re)180 436.8 S(ad).18 E F0 1.395
+-.25 F(ing be)180 518.4 Q(gins.)-.15 E F1<ad6e>144 530.4 Q F2(nc)2.5 E
+(har)-.15 E(s)-.1 E F1 -.18(re)180 542.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, b)180 448.8 Q(ut honors a delimiter if fe)-.2 E(wer than)
+-.1 F(input, b)180 554.4 Q(ut honors a delimiter if fe)-.2 E(wer than)
 -.25 E F2(nc)2.5 E(har)-.15 E(s)-.1 E F0
 (characters are read before the delimiter)2.5 E(.)-.55 E F1<ad4e>144
-460.8 Q F2(nc)2.5 E(har)-.15 E(s)-.1 E F1 -.18(re)180 472.8 S(ad).18 E
+566.4 Q F2(nc)2.5 E(har)-.15 E(s)-.1 E F1 -.18(re)180 578.4 S(ad).18 E
 F0 1.269(returns after reading e)3.769 F(xactly)-.15 E F2(nc)3.769 E
 (har)-.15 E(s)-.1 E F0 1.269(characters rather than w)3.769 F 1.27
 (aiting for a complete)-.1 F .275
-(line of input, unless EOF is encountered or)180 484.8 R F1 -.18(re)
+(line of input, unless EOF is encountered or)180 590.4 R F1 -.18(re)
 2.775 G(ad).18 E F0 .274(times out.)2.774 F .274
 (Delimiter characters encoun-)5.274 F 1.002
-(tered in the input are not treated specially and do not cause)180 496.8
+(tered in the input are not treated specially and do not cause)180 602.4
 R F1 -.18(re)3.503 G(ad).18 E F0 1.003(to return until)3.503 F F2(nc)
-3.503 E(har)-.15 E(s)-.1 E F0 .609(characters are read.)180 508.8 R .608
+3.503 E(har)-.15 E(s)-.1 E F0 .609(characters are read.)180 614.4 R .608
 (The result is not split on the characters in)5.609 F F1(IFS)3.108 E F0
-3.108(;t)C .608(he intent is that the)-3.108 F -.25(va)180 520.8 S .669
+3.108(;t)C .608(he intent is that the)-3.108 F -.25(va)180 626.4 S .669
 (riable is assigned e).25 F .669
 (xactly the characters read \(with the e)-.15 F .67
-(xception of backslash; see the)-.15 F F1<ad72>180 532.8 Q F0
-(option belo)2.5 E(w\).)-.25 E F1<ad70>144 544.8 Q F2(pr)2.5 E(ompt)-.45
-E F0(Display)180 556.8 Q F2(pr)3.661 E(ompt)-.45 E F0 1.161
+(xception of backslash; see the)-.15 F F1<ad72>180 638.4 Q F0
+(option belo)2.5 E(w\).)-.25 E F1<ad70>144 650.4 Q F2(pr)2.5 E(ompt)-.45
+E F0(Display)180 662.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 568.8 Q
+-3.661 F 1.161(wline, before attempting to read)-.25 F(an)180 674.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 580.8 Q F0 .543(Backslash does not act as an escape character)
-180 580.8 R 5.543(.T)-.55 G .544
-(he backslash is considered to be part of)-5.543 F(the line.)180 592.8 Q
+<ad72>144 686.4 Q F0 .543(Backslash does not act as an escape character)
+180 686.4 R 5.543(.T)-.55 G .544
+(he backslash is considered to be part of)-5.543 F(the line.)180 698.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
-604.8 Q F0(Silent mode.)180 604.8 Q
-(If input is coming from a terminal, characters are not echoed.)5 E F1
-<ad74>144 616.8 Q F2(timeout)2.5 E F0(Cause)180 628.8 Q F1 -.18(re)2.929
-G(ad).18 E F0 .428(to time out and return f)2.929 F .428
-(ailure if a complete line of input \(or a speci\214ed num-)-.1 F .56
-(ber of characters\) is not read within)180 640.8 R F2(timeout)3.061 E
+710.4 Q F0(Silent mode.)180 710.4 Q
+(If input is coming from a terminal, characters are not echoed.)5 E
+(GNU Bash 5.0)72 768 Q(2018 August 7)145.395 E(68)194.555 E 0 Cg EP
+%%Page: 69 69
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 137.14(SH\(1\) General).35 F
+(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E/F1 10/Times-Bold@0
+SF<ad74>144 84 Q/F2 10/Times-Italic@0 SF(timeout)2.5 E F0(Cause)180 96 Q
+F1 -.18(re)2.929 G(ad).18 E F0 .428(to time out and return f)2.929 F
+.428(ailure if a complete line of input \(or a speci\214ed num-)-.1 F
+.56(ber of characters\) is not read within)180 108 R F2(timeout)3.061 E
 F0(seconds.)3.061 E F2(timeout)5.561 E F0 .561(may be a decimal number)
-3.061 F(with a fractional portion follo)180 652.8 Q
+3.061 F(with a fractional portion follo)180 120 Q
 (wing the decimal point.)-.25 E(This option is only ef)5 E(fecti)-.25 E
 .3 -.15(ve i)-.25 H(f).15 E F1 -.18(re)2.5 G(ad).18 E F0 .506(is readin\
 g input from a terminal, pipe, or other special \214le; it has no ef)180
-664.8 R .506(fect when reading)-.25 F .59(from re)180 676.8 R .59
+132 R .506(fect when reading)-.25 F .59(from re)180 144 R .59
 (gular \214les.)-.15 F(If)5.59 E F1 -.18(re)3.09 G(ad).18 E F0 .589
 (times out,)3.09 F F1 -.18(re)3.089 G(ad).18 E F0(sa)3.089 E -.15(ve)-.2
 G 3.089(sa).15 G .889 -.15(ny p)-3.089 H .589
-(artial input read into the speci\214ed).15 F -.25(va)180 688.8 S
-(riable).25 E F2(name)2.77 E F0 5.27(.I)C(f)-5.27 E F2(timeout)2.77 E F0
-.27(is 0,)2.77 F F1 -.18(re)2.77 G(ad).18 E F0 .27(returns immediately)
-2.77 F 2.77(,w)-.65 G .27(ithout trying to read an)-2.77 F 2.77(yd)-.15
-G(ata.)-2.77 E 1.12(The e)180 700.8 R 1.12
-(xit status is 0 if input is a)-.15 F -.25(va)-.2 G 1.12
-(ilable on the speci\214ed \214le descriptor).25 F 3.62(,n)-.4 G 1.12
-(on-zero other)-3.62 F(-)-.2 E 2.5(wise. The)180 712.8 R -.15(ex)2.5 G
-(it status is greater than 128 if the timeout is e).15 E(xceeded.)-.15 E
-(GNU Bash 5.0)72 768 Q(2018 March 15)144.29 E(68)193.45 E 0 Cg EP
-%%Page: 69 69
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 137.14(SH\(1\) General).35 F
-(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E/F1 10/Times-Bold@0
-SF<ad75>144 84 Q/F2 10/Times-Italic@0 SF(fd)2.5 E F0
-(Read input from \214le descriptor)180 84 Q F2(fd)2.5 E F0(.)A .476
-(If no)144 100.8 R F2(names)3.336 E F0 .476
+(artial input read into the speci\214ed).15 F -.25(va)180 156 S(riable)
+.25 E F2(name)2.77 E F0 5.27(.I)C(f)-5.27 E F2(timeout)2.77 E F0 .27
+(is 0,)2.77 F F1 -.18(re)2.77 G(ad).18 E F0 .27(returns immediately)2.77
+F 2.77(,w)-.65 G .27(ithout trying to read an)-2.77 F 2.77(yd)-.15 G
+(ata.)-2.77 E 1.12(The e)180 168 R 1.12(xit status is 0 if input is a)
+-.15 F -.25(va)-.2 G 1.12(ilable on the speci\214ed \214le descriptor)
+.25 F 3.62(,n)-.4 G 1.12(on-zero other)-3.62 F(-)-.2 E 2.5(wise. The)180
+180 R -.15(ex)2.5 G(it status is greater than 128 if the timeout is e)
+.15 E(xceeded.)-.15 E F1<ad75>144 192 Q F2(fd)2.5 E F0
+(Read input from \214le descriptor)180 192 Q F2(fd)2.5 E F0(.)A .476
+(If no)144 208.8 R F2(names)3.336 E F0 .476
 (are supplied, the line read is assigned to the v)3.246 F(ariable)-.25 E
 /F3 9/Times-Bold@0 SF(REPL)2.977 E(Y)-.828 E/F4 9/Times-Roman@0 SF(.)A
 F0 .477(The e)4.977 F .477(xit status is zero,)-.15 F .773
-(unless end-of-\214le is encountered,)144 112.8 R F1 -.18(re)3.273 G(ad)
+(unless end-of-\214le is encountered,)144 220.8 R F1 -.18(re)3.273 G(ad)
 .18 E F0 .772
 (times out \(in which case the status is greater than 128\), a)3.273 F
--.25(va)144 124.8 S 2.004
+-.25(va)144 232.8 S 2.004
 (riable assignment error \(such as assigning to a readonly v).25 F 2.005
 (ariable\) occurs, or an in)-.25 F -.25(va)-.4 G 2.005(lid \214le).25 F
-(descriptor is supplied as the ar)144 136.8 Q(gument to)-.18 E F1<ad75>
-2.5 E F0(.)A F1 -.18(re)108 153.6 S(adonly).18 E F0([)2.5 E F1(\255aAf)A
+(descriptor is supplied as the ar)144 244.8 Q(gument to)-.18 E F1<ad75>
+2.5 E F0(.)A F1 -.18(re)108 261.6 S(adonly).18 E F0([)2.5 E F1(\255aAf)A
 F0 2.5(][)C F1<ad70>-2.5 E 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 165.6 R -.15(ve)-.25 G
+(d)-.37 E F0 2.5(].)C(..])-2.5 E .77(The gi)144 273.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 177.6 R
+(may not be changed by subse-)3.54 F 1.096(quent assignment.)144 285.6 R
 1.096(If the)6.096 F F1<ad66>3.596 E F0 1.097
 (option is supplied, the functions corresponding to the)3.596 F F2
-(names)3.597 E F0 1.097(are so)3.597 F(mark)144 189.6 Q 3.334(ed. The)
+(names)3.597 E F0 1.097(are so)3.597 F(mark)144 297.6 Q 3.334(ed. The)
 -.1 F F1<ad61>3.334 E F0 .834(option restricts the v)3.334 F .834
 (ariables to inde)-.25 F -.15(xe)-.15 G 3.334(da).15 G .834(rrays; the)
 -3.334 F F1<ad41>3.334 E F0 .834(option restricts the v)3.334 F(ari-)
--.25 E .776(ables to associati)144 201.6 R 1.076 -.15(ve a)-.25 H 3.276
+-.25 E .776(ables to associati)144 309.6 R 1.076 -.15(ve a)-.25 H 3.276
 (rrays. If).15 F .777(both options are supplied,)3.276 F F1<ad41>3.277 E
 F0(tak)3.277 E .777(es precedence.)-.1 F .777(If no)5.777 F F2(name)
-3.637 E F0(ar)3.457 E(gu-)-.18 E .522(ments are gi)144 213.6 R -.15(ve)
+3.637 E F0(ar)3.457 E(gu-)-.18 E .522(ments are gi)144 321.6 R -.15(ve)
 -.25 G .521(n, or if the).15 F F1<ad70>3.021 E F0 .521
 (option is supplied, a list of all readonly names is printed.)3.021 F
 .521(The other)5.521 F .295(options may be used to restrict the output \
-to a subset of the set of readonly names.)144 225.6 R(The)5.296 E F1
+to a subset of the set of readonly names.)144 333.6 R(The)5.296 E F1
 <ad70>2.796 E F0(option)2.796 E .786
 (causes output to be displayed in a format that may be reused as input.)
-144 237.6 R .786(If a v)5.786 F .785(ariable name is fol-)-.25 F(lo)144
-249.6 Q .717(wed by =)-.25 F F2(wor)A(d)-.37 E F0 3.218(,t)C .718(he v)
+144 345.6 R .786(If a v)5.786 F .785(ariable name is fol-)-.25 F(lo)144
+357.6 Q .717(wed by =)-.25 F F2(wor)A(d)-.37 E F0 3.218(,t)C .718(he v)
 -3.218 F .718(alue of the v)-.25 F .718(ariable is set to)-.25 F F2(wor)
 3.218 E(d)-.37 E F0 5.718(.T)C .718(he return status is 0 unless an in)
 -5.718 F -.25(va)-.4 G(lid).25 E .26(option is encountered, one of the)
-144 261.6 R F2(names)3.12 E F0 .26(is not a v)3.03 F .26(alid shell v)
+144 369.6 R F2(names)3.12 E F0 .26(is not a v)3.03 F .26(alid shell v)
 -.25 F .26(ariable name, or)-.25 F F1<ad66>2.76 E F0 .26
-(is supplied with a)2.76 F F2(name)144.36 273.6 Q F0
-(that is not a function.)2.68 E F1 -.18(re)108 290.4 S(tur).18 E(n)-.15
-E F0([)2.5 E F2(n)A F0(])A .02(Causes a function to stop e)144 302.4 R
+(is supplied with a)2.76 F F2(name)144.36 381.6 Q F0
+(that is not a function.)2.68 E F1 -.18(re)108 398.4 S(tur).18 E(n)-.15
+E F0([)2.5 E F2(n)A F0(])A .02(Causes a function to stop e)144 410.4 R
 -.15(xe)-.15 G .02(cuting and return the v).15 F .021
 (alue speci\214ed by)-.25 F F2(n)2.881 E F0 .021(to its caller)2.761 F
 5.021(.I)-.55 G(f)-5.021 E F2(n)2.881 E F0 .021(is omitted,)2.761 F .597
-(the return status is that of the last command e)144 314.4 R -.15(xe)
+(the return status is that of the last command e)144 422.4 R -.15(xe)
 -.15 G .596(cuted in the function body).15 F 5.596(.I)-.65 G(f)-5.596 E
 F1 -.18(re)3.096 G(tur).18 E(n)-.15 E F0 .596(is e)3.096 F -.15(xe)-.15
-G(cuted).15 E 1.238(by a trap handler)144 326.4 R 3.738(,t)-.4 G 1.238
+G(cuted).15 E 1.238(by a trap handler)144 434.4 R 3.738(,t)-.4 G 1.238
 (he last command used to determine the status is the last command e)
 -3.738 F -.15(xe)-.15 G(cuted).15 E 1.033(before the trap handler)144
-338.4 R 6.033(.I)-.55 G(f)-6.033 E F1 -.18(re)3.533 G(tur).18 E(n)-.15 E
+446.4 R 6.033(.I)-.55 G(f)-6.033 E F1 -.18(re)3.533 G(tur).18 E(n)-.15 E
 F0 1.033(is e)3.533 F -.15(xe)-.15 G 1.033(cuted during a).15 F F1(DEB)
 3.532 E(UG)-.1 E F0 1.032(trap, the last command used to)3.532 F .389
-(determine the status is the last command e)144 350.4 R -.15(xe)-.15 G
+(determine the status is the last command e)144 458.4 R -.15(xe)-.15 G
 .389(cuted by the trap handler before).15 F F1 -.18(re)2.89 G(tur).18 E
 (n)-.15 E F0 -.1(wa)2.89 G 2.89(si).1 G -1.9 -.4(nv o)-2.89 H -.1(ke).4
-G(d.).1 E(If)144 362.4 Q F1 -.18(re)2.584 G(tur).18 E(n)-.15 E F0 .084
+G(d.).1 E(If)144 470.4 Q F1 -.18(re)2.584 G(tur).18 E(n)-.15 E F0 .084
 (is used outside a function, b)2.584 F .084(ut during e)-.2 F -.15(xe)
 -.15 G .084(cution of a script by the).15 F F1(.)2.584 E F0(\()5.084 E
 F1(sour)A(ce)-.18 E F0 2.583(\)c)C .083(ommand, it)-2.583 F .588
-(causes the shell to stop e)144 374.4 R -.15(xe)-.15 G .588
+(causes the shell to stop e)144 482.4 R -.15(xe)-.15 G .588
 (cuting that script and return either).15 F F2(n)3.448 E F0 .589
 (or the e)3.329 F .589(xit status of the last com-)-.15 F .326(mand e)
-144 386.4 R -.15(xe)-.15 G .326(cuted within the script as the e).15 F
+144 494.4 R -.15(xe)-.15 G .326(cuted within the script as the e).15 F
 .326(xit status of the script.)-.15 F(If)5.326 E F2(n)2.826 E F0 .325
 (is supplied, the return v)2.826 F .325(alue is)-.25 F .444
-(its least signi\214cant 8 bits.)144 398.4 R .444
+(its least signi\214cant 8 bits.)144 506.4 R .444
 (The return status is non-zero if)5.444 F F1 -.18(re)2.945 G(tur).18 E
 (n)-.15 E F0 .445(is supplied a non-numeric ar)2.945 F(gu-)-.18 E .381
-(ment, or is used outside a function and not during e)144 410.4 R -.15
+(ment, or is used outside a function and not during e)144 518.4 R -.15
 (xe)-.15 G .381(cution of a script by).15 F F1(.)2.881 E F0(or)3.714 E
 F1(sour)2.881 E(ce)-.18 E F0 5.38(.A)C .68 -.15(ny c)-5.38 H(om-).15 E
-.749(mand associated with the)144 422.4 R F1(RETURN)3.249 E F0 .749
+.749(mand associated with the)144 530.4 R F1(RETURN)3.249 E F0 .749
 (trap is e)3.249 F -.15(xe)-.15 G .749(cuted before e).15 F -.15(xe)-.15
-G .75(cution resumes after the function).15 F(or script.)144 434.4 Q F1
-(set)108 451.2 Q F0([)2.5 E F1(\255\255abefhkmnptuvxBCEHPT)A F0 2.5(][)C
+G .75(cution resumes after the function).15 F(or script.)144 542.4 Q F1
+(set)108 559.2 Q F0([)2.5 E F1(\255\255abefhkmnptuvxBCEHPT)A F0 2.5(][)C
 F1<ad6f>-2.5 E F2(option\255name)2.5 E F0 2.5(][)C F2(ar)-2.5 E(g)-.37 E
-F0(...])2.5 E F1(set)108 463.2 Q F0([)2.5 E F1(+abefhkmnptuvxBCEHPT)A F0
+F0(...])2.5 E F1(set)108 571.2 Q F0([)2.5 E F1(+abefhkmnptuvxBCEHPT)A F0
 2.5(][)C F1(+o)-2.5 E F2(option\255name)2.5 E F0 2.5(][)C F2(ar)-2.5 E
-(g)-.37 E F0(...])2.5 E -.4(Wi)144 475.2 S .836
+(g)-.37 E F0(...])2.5 E -.4(Wi)144 583.2 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 487.2
+(reused as input for setting or resetting the currently-set v)144 595.2
 R 3.284(ariables. Read-only)-.25 F -.25(va)3.284 G .784
-(riables cannot be).25 F 2.912(reset. In)144 499.2 R F2(posix)2.912 E F0
-.412(mode, only shell v)2.912 F .412(ariables are listed.)-.25 F .412
-(The output is sorted according to the current)5.412 F 3.53
-(locale. When)144 511.2 R 1.031(options are speci\214ed, the)3.53 F
+(riables cannot be).25 F 2.947(reset. In)144 607.2 R F2 .447(posix mode)
+2.947 F F0 2.947(,o)C .447(nly shell v)-2.947 F .447
+(ariables are listed.)-.25 F .447
+(The output is sorted according to the current)5.447 F 3.53
+(locale. When)144 619.2 R 1.031(options are speci\214ed, the)3.53 F
 3.531(ys)-.15 G 1.031(et or unset shell attrib)-3.531 F 3.531(utes. An)
 -.2 F 3.531(ya)-.15 G -.18(rg)-3.531 G 1.031(uments remaining).18 F
-1.624(after option processing are treated as v)144 523.2 R 1.623
+1.624(after option processing are treated as v)144 631.2 R 1.623
 (alues for the positional parameters and are assigned, in)-.25 F(order)
-144 535.2 Q 2.5(,t)-.4 G(o)-2.5 E F1($1)2.5 E F0(,)A F1($2)2.5 E F0(,)A
+144 643.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 547.2 Q
-F0 1.377(Each v)184 547.2 R 1.377
+-.15(ve t)-.2 H(he follo).15 E(wing meanings:)-.25 E F1<ad61>144 655.2 Q
+F0 1.377(Each v)184 655.2 R 1.377
 (ariable or function that is created or modi\214ed is gi)-.25 F -.15(ve)
 -.25 G 3.877(nt).15 G 1.377(he e)-3.877 F 1.378(xport attrib)-.15 F
-1.378(ute and)-.2 F(mark)184 559.2 Q(ed for e)-.1 E(xport to the en)-.15
-E(vironment of subsequent commands.)-.4 E F1<ad62>144 571.2 Q F0 .132
-(Report the status of terminated background jobs immediately)184 571.2 R
+1.378(ute and)-.2 F(mark)184 667.2 Q(ed for e)-.1 E(xport to the en)-.15
+E(vironment of subsequent commands.)-.4 E F1<ad62>144 679.2 Q F0 .132
+(Report the status of terminated background jobs immediately)184 679.2 R
 2.632(,r)-.65 G .131(ather than before the ne)-2.632 F(xt)-.15 E
-(primary prompt.)184 583.2 Q(This is ef)5 E(fecti)-.25 E .3 -.15(ve o)
--.25 H(nly when job control is enabled.).15 E F1<ad65>144 595.2 Q F0
-.087(Exit immediately if a)184 595.2 R F2(pipeline)2.587 E F0 .087
+(primary prompt.)184 691.2 Q(This is ef)5 E(fecti)-.25 E .3 -.15(ve o)
+-.25 H(nly when job control is enabled.).15 E F1<ad65>144 703.2 Q F0
+.087(Exit immediately if a)184 703.2 R F2(pipeline)2.587 E F0 .087
 (\(which may consist of a single)2.587 F F2 .088(simple command)2.588 F
-F0 .088(\), a)B F2(list)2.588 E F0 2.588(,o)C(r)-2.588 E(a)184 607.2 Q
+F0 .088(\), a)B F2(list)2.588 E F0 2.588(,o)C(r)-2.588 E(a)184 715.2 Q
 F2 1.521(compound command)4.021 F F0(\(see)4.021 E F3 1.521
 (SHELL GRAMMAR)4.021 F F0(abo)3.771 E -.15(ve)-.15 G 1.521(\), e).15 F
 1.521(xits with a non-zero status.)-.15 F .079(The shell does not e)184
-619.2 R .079(xit if the command that f)-.15 F .08
-(ails is part of the command list immediately)-.1 F(follo)184 631.2 Q
-1.655(wing a)-.25 F F1(while)4.155 E F0(or)4.155 E F1(until)4.155 E F0
--.1(ke)4.155 G(yw)-.05 E 1.655(ord, part of the test follo)-.1 F 1.654
-(wing the)-.25 F F1(if)4.154 E F0(or)4.154 E F1(elif)4.154 E F0(reserv)
-4.154 E(ed)-.15 E -.1(wo)184 643.2 S .581(rds, part of an).1 F 3.081(yc)
--.15 G .581(ommand e)-3.081 F -.15(xe)-.15 G .581(cuted in a).15 F F1
-(&&)3.081 E F0(or)3.081 E F1(||)3.081 E F0 .582(list e)3.082 F .582
-(xcept the command follo)-.15 F(wing)-.25 E .918(the \214nal)184 655.2 R
-F1(&&)3.418 E F0(or)3.418 E F1(||)3.418 E F0 3.418(,a)C 1.218 -.15(ny c)
--3.418 H .918(ommand in a pipeline b).15 F .917
-(ut the last, or if the command')-.2 F 3.417(sr)-.55 G(eturn)-3.417 E
--.25(va)184 667.2 S .66(lue is being in).25 F -.15(ve)-.4 G .66
+727.2 R .079(xit if the command that f)-.15 F .08
+(ails is part of the command list immediately)-.1 F(GNU Bash 5.0)72 768
+Q(2018 August 7)145.395 E(69)194.555 E 0 Cg EP
+%%Page: 70 70
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 137.14(SH\(1\) General).35 F
+(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E(follo)184 84 Q
+1.655(wing a)-.25 F/F1 10/Times-Bold@0 SF(while)4.155 E F0(or)4.155 E F1
+(until)4.155 E F0 -.1(ke)4.155 G(yw)-.05 E 1.655
+(ord, part of the test follo)-.1 F 1.654(wing the)-.25 F F1(if)4.154 E
+F0(or)4.154 E F1(elif)4.154 E F0(reserv)4.154 E(ed)-.15 E -.1(wo)184 96
+S .581(rds, part of an).1 F 3.081(yc)-.15 G .581(ommand e)-3.081 F -.15
+(xe)-.15 G .581(cuted in a).15 F F1(&&)3.081 E F0(or)3.081 E F1(||)3.081
+E F0 .582(list e)3.082 F .582(xcept the command follo)-.15 F(wing)-.25 E
+.918(the \214nal)184 108 R F1(&&)3.418 E F0(or)3.418 E F1(||)3.418 E F0
+3.418(,a)C 1.218 -.15(ny c)-3.418 H .918(ommand in a pipeline b).15 F
+.917(ut the last, or if the command')-.2 F 3.417(sr)-.55 G(eturn)-3.417
+E -.25(va)184 120 S .66(lue is being in).25 F -.15(ve)-.4 G .66
 (rted with).15 F F1(!)3.16 E F0 5.661(.I)C 3.161(fac)-5.661 G .661
 (ompound command other than a subshell returns a)-3.161 F 1.113
-(non-zero status because a command f)184 679.2 R 1.112(ailed while)-.1 F
+(non-zero status because a command f)184 132 R 1.112(ailed while)-.1 F
 F1<ad65>3.612 E F0 -.1(wa)3.612 G 3.612(sb).1 G 1.112
-(eing ignored, the shell does)-3.612 F .177(not e)184 691.2 R 2.677
+(eing ignored, the shell does)-3.612 F .177(not e)184 144 R 2.677
 (xit. A)-.15 F .177(trap on)2.677 F F1(ERR)2.677 E F0 2.677(,i)C 2.678
 (fs)-2.677 G .178(et, is e)-2.678 F -.15(xe)-.15 G .178
 (cuted before the shell e).15 F 2.678(xits. This)-.15 F .178
-(option applies to)2.678 F .618(the shell en)184 703.2 R .617
+(option applies to)2.678 F .618(the shell en)184 156 R .617
 (vironment and each subshell en)-.4 F .617(vironment separately \(see)
--.4 F F3 .617(COMMAND EXE-)3.117 F .642(CUTION ENVIR)184 715.2 R(ONMENT)
--.27 E F0(abo)2.893 E -.15(ve)-.15 G .643
+-.4 F/F2 9/Times-Bold@0 SF .617(COMMAND EXE-)3.117 F .642(CUTION ENVIR)
+184 168 R(ONMENT)-.27 E F0(abo)2.893 E -.15(ve)-.15 G .643
 (\), and may cause subshells to e).15 F .643(xit before e)-.15 F -.15
-(xe)-.15 G .643(cuting all).15 F(the commands in the subshell.)184 727.2
-Q(GNU Bash 5.0)72 768 Q(2018 March 15)144.29 E(69)193.45 E 0 Cg EP
-%%Page: 70 70
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 137.14(SH\(1\) General).35 F
-(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E 2.042
-(If a compound command or shell function e)184 84 R -.15(xe)-.15 G 2.042
-(cutes in a conte).15 F 2.042(xt where)-.15 F/F1 10/Times-Bold@0 SF
-<ad65>4.542 E F0 2.042(is being)4.542 F 1.435
-(ignored, none of the commands e)184 96 R -.15(xe)-.15 G 1.436
-(cuted within the compound command or function).15 F .194
-(body will be af)184 108 R .194(fected by the)-.25 F F1<ad65>2.694 E F0
-.193(setting, e)2.693 F -.15(ve)-.25 G 2.693(ni).15 G(f)-2.693 E F1
+(xe)-.15 G .643(cuting all).15 F(the commands in the subshell.)184 180 Q
+2.042(If a compound command or shell function e)184 198 R -.15(xe)-.15 G
+2.042(cutes in a conte).15 F 2.042(xt where)-.15 F F1<ad65>4.542 E F0
+2.042(is being)4.542 F 1.435(ignored, none of the commands e)184 210 R
+-.15(xe)-.15 G 1.436(cuted within the compound command or function).15 F
+.194(body will be af)184 222 R .194(fected by the)-.25 F F1<ad65>2.694 E
+F0 .193(setting, e)2.693 F -.15(ve)-.25 G 2.693(ni).15 G(f)-2.693 E F1
 <ad65>2.693 E F0 .193(is set and a command returns a f)2.693 F(ailure)
--.1 E 3.39(status. If)184 120 R 3.39(ac)3.39 G .89
+-.1 E 3.39(status. If)184 234 R 3.39(ac)3.39 G .89
 (ompound command or shell function sets)-3.39 F F1<ad65>3.39 E F0 .89
 (while e)3.39 F -.15(xe)-.15 G .89(cuting in a conte).15 F(xt)-.15 E
-(where)184 132 Q F1<ad65>3.154 E F0 .654
+(where)184 246 Q F1<ad65>3.154 E F0 .654
 (is ignored, that setting will not ha)3.154 F .953 -.15(ve a)-.2 H .953
 -.15(ny e).15 H -.25(ff).15 G .653(ect until the compound command).25 F
-(or the command containing the function call completes.)184 144 Q F1
-<ad66>144 156 Q F0(Disable pathname e)184 156 Q(xpansion.)-.15 E F1
-<ad68>144 168 Q F0 2.238(Remember the location of commands as the)184
-168 R 4.738(ya)-.15 G 2.239(re look)-4.738 F 2.239(ed up for e)-.1 F
+(or the command containing the function call completes.)184 258 Q F1
+<ad66>144 270 Q F0(Disable pathname e)184 270 Q(xpansion.)-.15 E F1
+<ad68>144 282 Q F0 2.238(Remember the location of commands as the)184
+282 R 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
-180 Q(ault.)-.1 E F1<ad6b>144 192 Q F0 .514(All ar)184 192 R .514
+294 Q(ault.)-.1 E F1<ad6b>144 306 Q F0 .514(All ar)184 306 R .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 204 Q F1
-<ad6d>144 216 Q F0 .148(Monitor mode.)184 216 R .148
+(command, not just those that precede the command name.)184 318 Q F1
+<ad6d>144 330 Q F0 .148(Monitor mode.)184 330 R .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 .651
-(on systems that support it \(see)184 228 R/F2 9/Times-Bold@0 SF .651
-(JOB CONTR)3.151 F(OL)-.27 E F0(abo)2.901 E -.15(ve)-.15 G 3.151
-(\). All).15 F .65(processes run in a separate)3.151 F .678
-(process group.)184 240 R .679(When a background job completes, the she\
-ll prints a line containing its)5.678 F -.15(ex)184 252 S(it status.).15
-E F1<ad6e>144 264 Q F0 .653(Read commands b)184 264 R .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
-276 Q(This is ignored by interacti)5 E .3 -.15(ve s)-.25 H(hells.).15 E
-F1<ad6f>144 288 Q/F3 10/Times-Italic@0 SF(option\255name)2.5 E F0(The)
-184 300 Q F3(option\255name)2.5 E F0(can be one of the follo)2.5 E
-(wing:)-.25 E F1(allexport)184 312 Q F0(Same as)224 324 Q F1<ad61>2.5 E
-F0(.)A F1(braceexpand)184 336 Q F0(Same as)224 348 Q F1<ad42>2.5 E F0(.)
-A F1(emacs)184 360 Q F0 .089
-(Use an emacs-style command line editing interf)224 360 R 2.589
+(on systems that support it \(see)184 342 R F2 .651(JOB CONTR)3.151 F
+(OL)-.27 E F0(abo)2.901 E -.15(ve)-.15 G 3.151(\). All).15 F .65
+(processes run in a separate)3.151 F .678(process group.)184 354 R .679
+(When a background job completes, the shell prints a line containing it\
+s)5.678 F -.15(ex)184 366 S(it status.).15 E F1<ad6e>144 378 Q F0 .653
+(Read commands b)184 378 R .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 390 Q(This is ignored by interacti)5 E .3
+-.15(ve s)-.25 H(hells.).15 E F1<ad6f>144 402 Q/F3 10/Times-Italic@0 SF
+(option\255name)2.5 E F0(The)184 414 Q F3(option\255name)2.5 E F0
+(can be one of the follo)2.5 E(wing:)-.25 E F1(allexport)184 426 Q F0
+(Same as)224 438 Q F1<ad61>2.5 E F0(.)A F1(braceexpand)184 450 Q F0
+(Same as)224 462 Q F1<ad42>2.5 E F0(.)A F1(emacs)184 474 Q F0 .089
+(Use an emacs-style command line editing interf)224 474 R 2.589
 (ace. This)-.1 F .089(is enabled by def)2.589 F(ault)-.1 E .95
-(when the shell is interacti)224 372 R -.15(ve)-.25 G 3.45(,u).15 G .95
+(when the shell is interacti)224 486 R -.15(ve)-.25 G 3.45(,u).15 G .95
 (nless the shell is started with the)-3.45 F F1(\255\255noediting)3.45 E
-F0 2.5(option. This)224 384 R(also af)2.5 E(fects the editing interf)
+F0 2.5(option. This)224 498 R(also af)2.5 E(fects the editing interf)
 -.25 E(ace used for)-.1 E F1 -.18(re)2.5 G(ad \255e).18 E F0(.)A F1(err)
-184 396 Q(exit)-.18 E F0(Same as)224 396 Q F1<ad65>2.5 E F0(.)A F1
-(errtrace)184 408 Q F0(Same as)224 408 Q F1<ad45>2.5 E F0(.)A F1
-(functrace)184 420 Q F0(Same as)224 432 Q F1<ad54>2.5 E F0(.)A F1
-(hashall)184 444 Q F0(Same as)224 444 Q F1<ad68>2.5 E F0(.)A F1
-(histexpand)184 456 Q F0(Same as)224 468 Q F1<ad48>2.5 E F0(.)A F1
-(history)184 480 Q F0 .586(Enable command history)224 480 R 3.087(,a)
+184 510 Q(exit)-.18 E F0(Same as)224 510 Q F1<ad65>2.5 E F0(.)A F1
+(errtrace)184 522 Q F0(Same as)224 522 Q F1<ad45>2.5 E F0(.)A F1
+(functrace)184 534 Q F0(Same as)224 546 Q F1<ad54>2.5 E F0(.)A F1
+(hashall)184 558 Q F0(Same as)224 558 Q F1<ad68>2.5 E F0(.)A F1
+(histexpand)184 570 Q F0(Same as)224 582 Q F1<ad48>2.5 E F0(.)A F1
+(history)184 594 Q F0 .586(Enable command history)224 594 R 3.087(,a)
 -.65 G 3.087(sd)-3.087 G .587(escribed abo)-3.087 F .887 -.15(ve u)-.15
 H(nder).15 E F2(HIST)3.087 E(OR)-.162 E(Y)-.315 E/F4 9/Times-Roman@0 SF
-(.)A F0 .587(This option is)5.087 F(on by def)224 492 Q
+(.)A F0 .587(This option is)5.087 F(on by def)224 606 Q
 (ault in interacti)-.1 E .3 -.15(ve s)-.25 H(hells.).15 E F1(ignor)184
-504 Q(eeof)-.18 E F0 1.657(The ef)224 516 R 1.657
+618 Q(eeof)-.18 E F0 1.657(The ef)224 630 R 1.657
 (fect is as if the shell command)-.25 F/F5 10/Courier@0 SF(IGNOREEOF=10)
 4.156 E F0 1.656(had been e)4.156 F -.15(xe)-.15 G(cuted).15 E(\(see)224
-528 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 540 S(yw).1 E(ord)-.1 E F0(Same as)224 552 Q F1
-<ad6b>2.5 E F0(.)A F1(monitor)184 564 Q F0(Same as)224 564 Q F1<ad6d>2.5
-E F0(.)A F1(noclob)184 576 Q(ber)-.1 E F0(Same as)224 588 Q F1<ad43>2.5
-E F0(.)A F1(noexec)184 600 Q F0(Same as)224 600 Q F1<ad6e>2.5 E F0(.)A
-F1(noglob)184 612 Q F0(Same as)224 612 Q F1<ad66>2.5 E F0(.)A F1(nolog)
-184 624 Q F0(Currently ignored.)224 624 Q F1(notify)184 636 Q F0
-(Same as)224 636 Q F1<ad62>2.5 E F0(.)A F1(nounset)184 648 Q F0(Same as)
-224 648 Q F1<ad75>2.5 E F0(.)A F1(onecmd)184 660 Q F0(Same as)224 660 Q
-F1<ad74>2.5 E F0(.)A F1(ph)184 672 Q(ysical)-.15 E F0(Same as)224 672 Q
-F1<ad50>2.5 E F0(.)A F1(pipefail)184 684 Q F0 1.029
-(If set, the return v)224 684 R 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 696
-R 1.136
-(xit with a non-zero status, or zero if all commands in the pipeline)
--.15 F -.15(ex)224 708 S(it successfully).15 E 5(.T)-.65 G
-(his option is disabled by def)-5 E(ault.)-.1 E(GNU Bash 5.0)72 768 Q
-(2018 March 15)144.29 E(70)193.45 E 0 Cg EP
+642 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 654 S(yw).1 E(ord)-.1 E F0(Same as)224 666 Q F1
+<ad6b>2.5 E F0(.)A F1(monitor)184 678 Q F0(Same as)224 678 Q F1<ad6d>2.5
+E F0(.)A F1(noclob)184 690 Q(ber)-.1 E F0(Same as)224 702 Q F1<ad43>2.5
+E F0(.)A F1(noexec)184 714 Q F0(Same as)224 714 Q F1<ad6e>2.5 E F0(.)A
+(GNU Bash 5.0)72 768 Q(2018 August 7)145.395 E(70)194.555 E 0 Cg EP
 %%Page: 71 71
 %%BeginPageSetup
 BP
 %%EndPageSetup
 /F0 10/Times-Roman@0 SF -.35(BA)72 48 S 137.14(SH\(1\) General).35 F
 (Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E/F1 10/Times-Bold@0
-SF(posix)184 84 Q F0 2.09(Change the beha)224 84 R 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 1.212
-(POSIX standard to match the standard \()224 96 R/F2 10/Times-Italic@0
-SF 1.212(posix mode)B F0 3.712(\). See)B/F3 9/Times-Bold@0 SF 1.212
-(SEE ALSO)3.712 F F0(belo)3.462 E(w)-.25 E 2.306
-(for a reference to a document that details ho)224 108 R 4.807(wp)-.25 G
+SF(noglob)184 84 Q F0(Same as)224 84 Q F1<ad66>2.5 E F0(.)A F1(nolog)184
+96 Q F0(Currently ignored.)224 96 Q F1(notify)184 108 Q F0(Same as)224
+108 Q F1<ad62>2.5 E F0(.)A F1(nounset)184 120 Q F0(Same as)224 120 Q F1
+<ad75>2.5 E F0(.)A F1(onecmd)184 132 Q F0(Same as)224 132 Q F1<ad74>2.5
+E F0(.)A F1(ph)184 144 Q(ysical)-.15 E F0(Same as)224 144 Q F1<ad50>2.5
+E F0(.)A F1(pipefail)184 156 Q F0 1.029(If set, the return v)224 156 R
+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 168 R
+1.136
+(xit with a non-zero status, or zero if all commands in the pipeline)
+-.15 F -.15(ex)224 180 S(it successfully).15 E 5(.T)-.65 G
+(his option is disabled by def)-5 E(ault.)-.1 E F1(posix)184 192 Q F0
+2.09(Change the beha)224 192 R 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 1.212(POSIX standard to match the standard \()224
+204 R/F2 10/Times-Italic@0 SF 1.212(posix mode)B F0 3.712(\). See)B/F3 9
+/Times-Bold@0 SF 1.212(SEE ALSO)3.712 F F0(belo)3.462 E(w)-.25 E 2.306
+(for a reference to a document that details ho)224 216 R 4.807(wp)-.25 G
 2.307(osix mode af)-4.807 F 2.307(fects bash')-.25 F(s)-.55 E(beha)224
-120 Q(vior)-.2 E(.)-.55 E F1(pri)184 132 Q(vileged)-.1 E F0(Same as)224
-144 Q F1<ad70>2.5 E F0(.)A F1 -.1(ve)184 156 S(rbose).1 E F0(Same as)224
-156 Q F1<ad76>2.5 E F0(.)A F1(vi)184 168 Q F0 1.466
-(Use a vi-style command line editing interf)224 168 R 3.965(ace. This)
+228 Q(vior)-.2 E(.)-.55 E F1(pri)184 240 Q(vileged)-.1 E F0(Same as)224
+252 Q F1<ad70>2.5 E F0(.)A F1 -.1(ve)184 264 S(rbose).1 E F0(Same as)224
+264 Q F1<ad76>2.5 E F0(.)A F1(vi)184 276 Q F0 1.466
+(Use a vi-style command line editing interf)224 276 R 3.965(ace. This)
 -.1 F 1.465(also af)3.965 F 1.465(fects the editing)-.25 F(interf)224
-180 Q(ace used for)-.1 E F1 -.18(re)2.5 G(ad \255e).18 E F0(.)A F1
-(xtrace)184 192 Q F0(Same as)224 192 Q F1<ad78>2.5 E F0(.)A(If)184 210 Q
+288 Q(ace used for)-.1 E F1 -.18(re)2.5 G(ad \255e).18 E F0(.)A F1
+(xtrace)184 300 Q F0(Same as)224 300 Q F1<ad78>2.5 E F0(.)A(If)184 318 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
-222 Q F0 1.072(is supplied with no)3.572 F F2(option\255name)3.572 E F0
+330 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 234 Q F1<ad70>
-144 246 Q F0 -.45(Tu)184 246 S 1.071(rn on).45 F F2(privile)4.821 E -.1
+(option settings is displayed on the standard output.)184 342 Q F1<ad70>
+144 354 Q F0 -.45(Tu)184 354 S 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($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.501
-(cessed, shell functions are not inherited from the en)184 258 R 1.5
+(cessed, shell functions are not inherited from the en)184 366 R 1.5
 (vironment, and the)-.4 F F3(SHELLOPTS)4 E/F4 9/Times-Roman@0 SF(,)A F3
--.27(BA)184 270 S(SHOPTS).27 E F4(,)A F3(CDP)2.774 E -.855(AT)-.666 G(H)
+-.27(BA)184 378 S(SHOPTS).27 E F4(,)A F3(CDP)2.774 E -.855(AT)-.666 G(H)
 .855 E F4(,)A F0(and)2.774 E F3(GLOBIGNORE)3.024 E F0 -.25(va)2.774 G
 .524(riables, if the).25 F 3.025(ya)-.15 G .525(ppear in the en)-3.025 F
-(vironment,)-.4 E .38(are ignored.)184 282 R .38
+(vironment,)-.4 E .38(are ignored.)184 390 R .38
 (If the shell is started with the ef)5.38 F(fecti)-.25 E .679 -.15(ve u)
 -.25 H .379(ser \(group\) id not equal to the real).15 F .461
-(user \(group\) id, and the)184 294 R F1<ad70>2.961 E F0 .461
+(user \(group\) id, and the)184 402 R F1<ad70>2.961 E F0 .461
 (option is not supplied, these actions are tak)2.961 F .462
-(en and the ef)-.1 F(fec-)-.25 E(ti)184 306 Q .695 -.15(ve u)-.25 H .395
+(en and the ef)-.1 F(fec-)-.25 E(ti)184 414 Q .695 -.15(ve u)-.25 H .395
 (ser id is set to the real user id.).15 F .395(If the)5.395 F F1<ad70>
 2.895 E F0 .394(option is supplied at startup, the ef)2.895 F(fecti)-.25
-E -.15(ve)-.25 G .386(user id is not reset.)184 318 R -.45(Tu)5.386 G
+E -.15(ve)-.25 G .386(user id is not reset.)184 426 R -.45(Tu)5.386 G
 .386(rning this option of).45 F 2.886(fc)-.25 G .387(auses the ef)-2.886
 F(fecti)-.25 E .687 -.15(ve u)-.25 H .387(ser and group ids to be).15 F
-(set to the real user and group ids.)184 330 Q F1<ad74>144 342 Q F0
-(Exit after reading and e)184 342 Q -.15(xe)-.15 G(cuting one command.)
-.15 E F1<ad75>144 354 Q F0 -.35(Tr)184 354 S .044(eat unset v).35 F .044
+(set to the real user and group ids.)184 438 Q F1<ad74>144 450 Q F0
+(Exit after reading and e)184 450 Q -.15(xe)-.15 G(cuting one command.)
+.15 E F1<ad75>144 462 Q F0 -.35(Tr)184 462 S .044(eat unset v).35 F .044
 (ariables and parameters other than the special parameters "@" and "*" \
-as an)-.25 F .182(error when performing parameter e)184 366 R 2.682
+as an)-.25 F .182(error when performing parameter e)184 474 R 2.682
 (xpansion. If)-.15 F -.15(ex)2.682 G .183
 (pansion is attempted on an unset v).15 F(ari-)-.25 E .746
-(able or parameter)184 378 R 3.246(,t)-.4 G .746
+(able or parameter)184 486 R 3.246(,t)-.4 G .746
 (he shell prints an error message, and, if not interacti)-3.246 F -.15
 (ve)-.25 G 3.246(,e).15 G .746(xits with a)-3.396 F(non-zero status.)184
-390 Q F1<ad76>144 402 Q F0(Print shell input lines as the)184 402 Q 2.5
-(ya)-.15 G(re read.)-2.5 E F1<ad78>144 414 Q F0 .315(After e)184 414 R
+498 Q F1<ad76>144 510 Q F0(Print shell input lines as the)184 510 Q 2.5
+(ya)-.15 G(re read.)-2.5 E F1<ad78>144 522 Q F0 .315(After e)184 522 R
 .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
-426 R F1 -.25(fo)3.736 G(r).25 E F0 1.236(command, display the e)3.736 F
+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(,)A F0
-(follo)3.486 E 1.236(wed by the com-)-.25 F(mand and its e)184 438 Q
+(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 450 Q F0 2.578(The shell performs brace e)184 450 R 2.578
+<ad42>144 558 Q F0 2.578(The shell performs brace e)184 558 R 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 462 Q
-(ault.)-.1 E F1<ad43>144 474 Q F0 .214(If set,)184 474 R F1(bash)2.714 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,)184 582 R 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 486 R .553(may be o)3.053 F -.15(ve)-.15 G .553
+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 498 Q F1(>|)2.5 E F0(instead of)2.5 E F1(>)2.5 E F0(.)A F1
-<ad45>144 510 Q F0 .104(If set, an)184 510 R 2.604(yt)-.15 G .104
+.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)184 618 R 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 522 R -.15(xe)-.15 G .838(cuted in a subshell en).15
+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 534 Q F1
-<ad48>144 546 Q F0(Enable)184 546 Q F1(!)3.032 E F0 .532
+(trap is normally not inherited in)3.339 F(such cases.)184 642 Q F1
+<ad48>144 654 Q F0(Enable)184 654 Q 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 558 Q -.15
-(ve)-.25 G(.).15 E F1<ad50>144 570 Q F0 .959
-(If set, the shell does not resolv)184 570 R 3.459(es)-.15 G .959
+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 .959
+(If set, the shell does not resolv)184 678 R 3.459(es)-.15 G .959
 (ymbolic links when e)-3.459 F -.15(xe)-.15 G .96
 (cuting commands such as).15 F F1(cd)3.46 E F0 2.822
-(that change the current w)184 582 R 2.822(orking directory)-.1 F 7.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 594 R(def)2.685
+(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 606 Q(.)-.65 E F1<ad54>144
-618 Q F0 .89(If set, an)184 618 R 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
+(mands which change the current directory)184 714 Q(.)-.65 E
+(GNU Bash 5.0)72 768 Q(2018 August 7)145.395 E(71)194.555 E 0 Cg EP
+%%Page: 72 72
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 137.14(SH\(1\) General).35 F
+(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E/F1 10/Times-Bold@0
+SF<ad54>144 84 Q F0 .89(If set, an)184 84 R 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 630 R -.15(xe)-.15 G 1.932
+(substitutions, and commands e)184 96 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 642 Q F0
-(traps are normally not inherited in such cases.)2.5 E F1<adad>144 654 Q
-F0 .401(If no ar)184 654 R .401(guments follo)-.18 F 2.901(wt)-.25 G
+(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)184 120 R .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 666 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
-678 Q F0 1.944(Signal the end of options, cause all remaining)184 678 R
-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 690 R
-F1<ad78>3.446 E F0(and)3.446 E F1<ad76>3.446 E F0 .945
+(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)184 144 R 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 702 Q .425(The options are of)144
-718.8 R 2.925(fb)-.25 G 2.925(yd)-2.925 G(ef)-2.925 E .425
+(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
 (ault unless otherwise noted.)-.1 F .425
 (Using + rather than \255 causes these options)5.425 F .178
-(to be turned of)144 730.8 R 2.678(f. The)-.25 F .178
+(to be turned of)144 196.8 R 2.678(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
-(GNU Bash 5.0)72 768 Q(2018 March 15)144.29 E(71)193.45 E 0 Cg EP
-%%Page: 72 72
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 137.14(SH\(1\) General).35 F
-(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E .066
-(current set of options may be found in)144 84 R/F1 10/Times-Bold@0 SF
-<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 96 Q F1(shift)108 112.8 Q F0([)2.5 E/F2 10
-/Times-Italic@0 SF(n)A F0(])A .429(The positional parameters from)144
-124.8 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 136.8 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 148.8
-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 160.8 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 172.8 Q F1(shopt)108 189.6 Q F0([)
+-.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
+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
+.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([)
 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 201.6 S .64(ggle the v).8 F .639
+-2.5 E F0(...])2.5 E -.8(To)144 326.4 S .64(ggle the v).8 F .639
 (alues of settings controlling optional shell beha)-.25 F(vior)-.2 E
 5.639(.T)-.55 G .639(he settings can be either those)-5.639 F .374
-(listed belo)144 213.6 R 1.674 -.65(w, o)-.25 H 1.174 -.4(r, i).65 H
+(listed belo)144 338.4 R 1.674 -.65(w, o)-.25 H 1.174 -.4(r, i).65 H
 2.874(ft).4 G(he)-2.874 E F1<ad6f>2.874 E F0 .375
 (option is used, those a)2.875 F -.25(va)-.2 G .375(ilable with the).25
 F F1<ad6f>2.875 E F0 .375(option to the)2.875 F F1(set)2.875 E F0 -.2
-(bu)2.875 G .375(iltin com-).2 F 3.326(mand. W)144 225.6 R .826
+(bu)2.875 G .375(iltin com-).2 F 3.326(mand. W)144 350.4 R .826
 (ith no options, or with the)-.4 F F1<ad70>3.326 E F0 .825
 (option, a list of all settable options is displayed, with an)3.326 F
-.551(indication of whether or not each is set; if)144 237.6 R F2
+.551(indication of whether or not each is set; if)144 362.4 R F2
 (optnames)3.052 E F0 .552
 (are supplied, the output is restricted to those)3.052 F 2.55
-(options. The)144 249.6 R F1<ad70>2.55 E F0 .049(option causes output t\
+(options. The)144 374.4 R F1<ad70>2.55 E F0 .049(option causes output t\
 o be displayed in a form that may be reused as input.)2.55 F(Other)5.049
-E(options ha)144 261.6 Q .3 -.15(ve t)-.2 H(he follo).15 E
-(wing meanings:)-.25 E F1<ad73>144 273.6 Q F0(Enable \(set\) each)180
-273.6 Q F2(optname)2.5 E F0(.)A F1<ad75>144 285.6 Q F0
-(Disable \(unset\) each)180 285.6 Q F2(optname)2.5 E F0(.)A F1<ad71>144
-297.6 Q F0 .003(Suppresses normal output \(quiet mode\); the return sta\
-tus indicates whether the)180 297.6 R F2(optname)2.504 E F0(is)2.504 E
-.256(set or unset.)180 309.6 R .256(If multiple)5.256 F F2(optname)2.756
+E(options ha)144 386.4 Q .3 -.15(ve t)-.2 H(he follo).15 E
+(wing meanings:)-.25 E F1<ad73>144 398.4 Q F0(Enable \(set\) each)180
+398.4 Q F2(optname)2.5 E F0(.)A F1<ad75>144 410.4 Q F0
+(Disable \(unset\) each)180 410.4 Q F2(optname)2.5 E F0(.)A F1<ad71>144
+422.4 Q F0 .003(Suppresses normal output \(quiet mode\); the return sta\
+tus indicates whether the)180 422.4 R F2(optname)2.504 E F0(is)2.504 E
+.256(set or unset.)180 434.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 321.6 Q F2(optnames)2.5 E
-F0(are enabled; non-zero otherwise.)2.5 E F1<ad6f>144 333.6 Q F0
-(Restricts the v)180 333.6 Q(alues of)-.25 E F2(optname)2.5 E F0
+(he return status is zero if)-2.755 F(all)180 446.4 Q F2(optnames)2.5 E
+F0(are enabled; non-zero otherwise.)2.5 E F1<ad6f>144 458.4 Q F0
+(Restricts the v)180 458.4 Q(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 .624(If either)144 350.4 R F1
+E F1(set)2.5 E F0 -.2(bu)2.5 G(iltin.).2 E .624(If either)144 475.2 R F1
 <ad73>3.124 E F0(or)3.124 E F1<ad75>3.124 E F0 .624(is used with no)
 3.124 F F2(optname)3.124 E F0(ar)3.124 E(guments,)-.18 E F1(shopt)3.124
 E F0(sho)3.124 E .624(ws only those options which are)-.25 F 2.234
-(set or unset, respecti)144 362.4 R -.15(ve)-.25 G(ly).15 E 7.234(.U)
+(set or unset, respecti)144 487.2 R -.15(ve)-.25 G(ly).15 E 7.234(.U)
 -.65 G 2.234(nless otherwise noted, the)-7.234 F F1(shopt)4.734 E F0
-2.234(options are disabled \(unset\) by)4.734 F(def)144 374.4 Q(ault.)
+2.234(options are disabled \(unset\) by)4.734 F(def)144 499.2 Q(ault.)
 -.1 E 1.544(The return status when listing options is zero if all)144
-391.2 R F2(optnames)4.044 E F0 1.545(are enabled, non-zero otherwise.)
+516 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 403.2 R F2(optname)3.196 E F0 .696(is not a v)3.196 F .695
-(alid shell)-.25 F(option.)144 415.2 Q(The list of)144 432 Q F1(shopt)
-2.5 E F0(options is:)2.5 E F1(assoc_expand_once)144 450 Q F0 1.944
-(If set, the shell suppresses multiple e)184 462 R -.25(va)-.25 G 1.945
-(luation of associati).25 F 2.245 -.15(ve a)-.25 H 1.945
-(rray subscripts during).15 F .857(arithmetic e)184 474 R .857
+144 528 R F2(optname)3.196 E F0 .696(is not a v)3.196 F .695(alid shell)
+-.25 F(option.)144 540 Q(The list of)144 556.8 Q F1(shopt)2.5 E F0
+(options is:)2.5 E F1(assoc_expand_once)144 574.8 Q F0 1.944
+(If set, the shell suppresses multiple e)184 586.8 R -.25(va)-.25 G
+1.945(luation of associati).25 F 2.245 -.15(ve a)-.25 H 1.945
+(rray subscripts during).15 F .857(arithmetic e)184 598.8 R .857
 (xpression e)-.15 F -.25(va)-.25 G .857(luation and while e).25 F -.15
 (xe)-.15 G .857(cuting b).15 F .857(uiltins that can perform v)-.2 F
-(ariable)-.25 E(assignments.)184 486 Q F1(autocd)144 498 Q F0 .199
-(If set, a command name that is the name of a directory is e)184 498 R
+(ariable)-.25 E(assignments.)184 610.8 Q F1(autocd)144 622.8 Q F0 .199
+(If set, a command name that is the name of a directory is e)184 622.8 R
 -.15(xe)-.15 G .2(cuted as if it were the ar).15 F(gu-)-.18 E
-(ment to the)184 510 Q F1(cd)2.5 E F0 2.5(command. This)2.5 F
+(ment to the)184 634.8 Q F1(cd)2.5 E F0 2.5(command. This)2.5 F
 (option is only used by interacti)2.5 E .3 -.15(ve s)-.25 H(hells.).15 E
-F1(cdable_v)144 522 Q(ars)-.1 E F0 .156(If set, an ar)184 534 R .156
+F1(cdable_v)144 646.8 Q(ars)-.1 E F0 .156(If set, an ar)184 658.8 R .156
 (gument to the)-.18 F F1(cd)2.656 E F0 -.2(bu)2.656 G .155
 (iltin command that is not a directory is assumed to be the).2 F
-(name of a v)184 546 Q(ariable whose v)-.25 E
-(alue is the directory to change to.)-.25 E F1(cdspell)144 558 Q F0
+(name of a v)184 670.8 Q(ariable whose v)-.25 E
+(alue is the directory to change to.)-.25 E F1(cdspell)144 682.8 Q F0
 1.055
 (If set, minor errors in the spelling of a directory component in a)184
-558 R F1(cd)3.555 E F0 1.055(command will be)3.555 F 3.988
-(corrected. The)184 570 R 1.488(errors check)3.988 F 1.487
+682.8 R F1(cd)3.555 E F0 1.055(command will be)3.555 F 3.988
+(corrected. The)184 694.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 .77(one character too man)184 582 R 4.57 -.65(y. I)
+-.4 G(nd)-3.987 E .77(one character too man)184 706.8 R 4.57 -.65(y. I)
 -.15 H 3.27(fac).65 G .77
 (orrection is found, the corrected \214lename is printed, and)-3.27 F
-(the command proceeds.)184 594 Q(This option is only used by interacti)5
-E .3 -.15(ve s)-.25 H(hells.).15 E F1(checkhash)144 606 Q F0 .737
-(If set,)184 618 R F1(bash)3.237 E F0 .736
+(the command proceeds.)184 718.8 Q
+(This option is only used by interacti)5 E .3 -.15(ve s)-.25 H(hells.)
+.15 E(GNU Bash 5.0)72 768 Q(2018 August 7)145.395 E(72)194.555 E 0 Cg EP
+%%Page: 73 73
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 137.14(SH\(1\) General).35 F
+(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E/F1 10/Times-Bold@0
+SF(checkhash)144 84 Q F0 .737(If set,)184 96 R F1(bash)3.237 E F0 .736
 (checks that a command found in the hash table e)3.237 F .736
-(xists before trying to e)-.15 F -.15(xe)-.15 G(-).15 E(cute it.)184 630
+(xists before trying to e)-.15 F -.15(xe)-.15 G(-).15 E(cute it.)184 108
 Q(If a hashed command no longer e)5 E
-(xists, a normal path search is performed.)-.15 E F1(checkjobs)144 642 Q
-F0 .448(If set,)184 654 R F1(bash)2.948 E F0 .448
+(xists, a normal path search is performed.)-.15 E F1(checkjobs)144 120 Q
+F0 .448(If set,)184 132 R F1(bash)2.948 E F0 .448
 (lists the status of an)2.948 F 2.949(ys)-.15 G .449
 (topped and running jobs before e)-2.949 F .449(xiting an interacti)-.15
-F -.15(ve)-.25 G 3.439(shell. If)184 666 R(an)3.439 E 3.439(yj)-.15 G
+F -.15(ve)-.25 G 3.439(shell. If)184 144 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 2.203
-(attempted without an interv)184 678 R 2.203(ening command \(see)-.15 F
-/F3 9/Times-Bold@0 SF 2.203(JOB CONTR)4.703 F(OL)-.27 E F0(abo)4.453 E
--.15(ve)-.15 G 4.703(\). The).15 F(shell)4.704 E(al)184 690 Q -.1(wa)-.1
+(attempted without an interv)184 156 R 2.203(ening command \(see)-.15 F
+/F2 9/Times-Bold@0 SF 2.203(JOB CONTR)4.703 F(OL)-.27 E F0(abo)4.453 E
+-.15(ve)-.15 G 4.703(\). The).15 F(shell)4.704 E(al)184 168 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 702 Q F0 1.09(If set,)184
-714 R F1(bash)3.59 E F0 1.09(checks the windo)3.59 F 3.59(ws)-.25 G 1.09
+(obs are stopped.)-2.5 E F1(checkwinsize)144 180 Q F0 1.09(If set,)184
+192 R F1(bash)3.59 E F0 1.09(checks the windo)3.59 F 3.59(ws)-.25 G 1.09
 (ize after each e)-3.59 F 1.09(xternal \(non-b)-.15 F 1.09
-(uiltin\) command and, if)-.2 F(necessary)184 726 Q 2.5(,u)-.65 G
-(pdates the v)-2.5 E(alues of)-.25 E F3(LINES)2.5 E F0(and)2.25 E F3
-(COLUMNS)2.5 E/F4 9/Times-Roman@0 SF(.)A F0(GNU Bash 5.0)72 768 Q
-(2018 March 15)144.29 E(72)193.45 E 0 Cg EP
-%%Page: 73 73
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 137.14(SH\(1\) General).35 F
-(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E/F1 10/Times-Bold@0
-SF(cmdhist)144 84 Q F0 1.202(If set,)184 84 R F1(bash)3.702 E F0 1.202
-(attempts to sa)3.702 F 1.502 -.15(ve a)-.2 H 1.202
+(uiltin\) command and, if)-.2 F(necessary)184 204 Q 2.5(,u)-.65 G
+(pdates the v)-2.5 E(alues of)-.25 E F2(LINES)2.5 E F0(and)2.25 E F2
+(COLUMNS)2.5 E/F3 9/Times-Roman@0 SF(.)A F1(cmdhist)144 216 Q F0 1.202
+(If set,)184 216 R 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
-96 Q 6.133(.T)-.65 G 1.133(his allo)-6.133 F 1.133
+228 Q 6.133(.T)-.65 G 1.133(his allo)-6.133 F 1.133
 (ws easy re-editing of multi-line commands.)-.25 F 1.132
-(This option is enabled by)6.132 F(def)184 108 Q .613(ault, b)-.1 F .613
+(This option is enabled by)6.132 F(def)184 240 Q .613(ault, b)-.1 F .613
 (ut only has an ef)-.2 F .614
 (fect if command history is enabled, as described abo)-.25 F .914 -.15
-(ve u)-.15 H(nder).15 E/F2 9/Times-Bold@0 SF(HIST)184 120 Q(OR)-.162 E
-(Y)-.315 E/F3 9/Times-Roman@0 SF(.)A F1(compat31)144 132 Q F0 .42
-(If set,)184 144 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 .461(to the)184 156 R F1([[)2.961 E F0 .462
-(conditional command')2.962 F(s)-.55 E F1(=~)2.962 E F0 .462
+(ve u)-.15 H(nder).15 E F2(HIST)184 252 Q(OR)-.162 E(Y)-.315 E F3(.)A F1
+(compat31)144 264 Q F0 .42(If set,)184 276 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 .461(to the)
+184 288 R F1([[)2.961 E F0 .462(conditional command')2.962 F(s)-.55 E F1
+(=~)2.962 E F0 .462
 (operator and locale-speci\214c string comparison when)2.962 F .71
-(using the)184 168 R F1([[)3.21 E F0 .71(conditional command')3.21 F(s)
+(using the)184 300 R F1([[)3.21 E F0 .71(conditional command')3.21 F(s)
 -.55 E F1(<)3.21 E F0(and)3.21 E F1(>)3.21 E F0 3.21(operators. Bash)
 3.21 F -.15(ve)3.21 G .71(rsions prior to bash-4.1).15 F .82
-(use ASCII collation and)184 180 R/F4 10/Times-Italic@0 SF(str)3.321 E
+(use ASCII collation and)184 312 R/F4 10/Times-Italic@0 SF(str)3.321 E
 (cmp)-.37 E F0 .821(\(3\); bash-4.1 and later use the current locale')
-.19 F 3.321(sc)-.55 G(ollation)-3.321 E(sequence and)184 192 Q F4(str)
-2.5 E(coll)-.37 E F0(\(3\).).51 E F1(compat32)144 204 Q F0 1.41(If set,)
-184 216 R F1(bash)3.91 E F0 1.41(changes its beha)3.91 F 1.409
+.19 F 3.321(sc)-.55 G(ollation)-3.321 E(sequence and)184 324 Q F4(str)
+2.5 E(coll)-.37 E F0(\(3\).).51 E F1(compat32)144 336 Q F0 1.41(If set,)
+184 348 R F1(bash)3.91 E F0 1.41(changes its beha)3.91 F 1.409
 (vior to that of v)-.2 F 1.409
 (ersion 3.2 with respect to locale-speci\214c)-.15 F .422
-(string comparison when using the)184 228 R F1([[)2.922 E F0 .422
+(string comparison when using the)184 360 R F1([[)2.922 E F0 .422
 (conditional command')2.922 F(s)-.55 E F1(<)2.922 E F0(and)2.922 E F1(>)
 2.923 E F0 .423(operators \(see pre-)2.923 F .481
-(vious item\) and the ef)184 240 R .481
+(vious item\) and the ef)184 372 R .481
 (fect of interrupting a command list.)-.25 F .48(Bash v)5.481 F .48
-(ersions 3.2 and earlier)-.15 F(continue with the ne)184 252 Q
+(ersions 3.2 and earlier)-.15 F(continue with the ne)184 384 Q
 (xt command in the list after one terminates due to an interrupt.)-.15 E
-F1(compat40)144 264 Q F0 1.409(If set,)184 276 R F1(bash)3.909 E F0
+F1(compat40)144 396 Q F0 1.409(If set,)184 408 R F1(bash)3.909 E F0
 1.409(changes its beha)3.909 F 1.409(vior to that of v)-.2 F 1.41
 (ersion 4.0 with respect to locale-speci\214c)-.15 F 2.008
-(string comparison when using the)184 288 R F1([[)4.508 E F0 2.007
+(string comparison when using the)184 420 R F1([[)4.508 E F0 2.007
 (conditional command')4.508 F(s)-.55 E F1(<)4.507 E F0(and)4.507 E F1(>)
-4.507 E F0 2.007(operators \(see)4.507 F .769(description of)184 300 R
+4.507 E F0 2.007(operators \(see)4.507 F .769(description of)184 432 R
 F1(compat31)3.269 E F0 3.269(\)a)C .769(nd the ef)-3.269 F .769
 (fect of interrupting a command list.)-.25 F .77(Bash v)5.77 F(ersions)
 -.15 E .087(4.0 and later interrupt the list as if the shell recei)184
-312 R -.15(ve)-.25 G 2.586(dt).15 G .086(he interrupt; pre)-2.586 F .086
-(vious v)-.25 F .086(ersions con-)-.15 F(tinue with the ne)184 324 Q
-(xt command in the list.)-.15 E F1(compat41)144 336 Q F0 1.483(If set,)
-184 348 R F1(bash)3.983 E F0 3.983(,w)C 1.483(hen in)-3.983 F F4(posix)
-3.983 E F0 1.484
-(mode, treats a single quote in a double-quoted parameter)3.983 F -.15
-(ex)184 360 S .959(pansion as a special character).15 F 5.959(.T)-.55 G
-.958(he single quotes must match \(an e)-5.959 F -.15(ve)-.25 G 3.458
-(nn).15 G .958(umber\) and)-3.458 F .59
-(the characters between the single quotes are considered quoted.)184 372
+444 R -.15(ve)-.25 G 2.586(dt).15 G .086(he interrupt; pre)-2.586 F .086
+(vious v)-.25 F .086(ersions con-)-.15 F(tinue with the ne)184 456 Q
+(xt command in the list.)-.15 E F1(compat41)144 468 Q F0 1.523(If set,)
+184 480 R F1(bash)4.023 E F0 4.023(,w)C 1.523(hen in)-4.023 F F4 1.523
+(posix mode)4.023 F F0 4.024(,t)C 1.524
+(reats a single quote in a double-quoted parameter)-4.024 F -.15(ex)184
+492 S .959(pansion as a special character).15 F 5.959(.T)-.55 G .958
+(he single quotes must match \(an e)-5.959 F -.15(ve)-.25 G 3.458(nn).15
+G .958(umber\) and)-3.458 F .59
+(the characters between the single quotes are considered quoted.)184 504
 R .59(This is the beha)5.59 F .59(vior of)-.2 F .59
-(posix mode through v)184 384 R .589(ersion 4.1.)-.15 F .589(The def)
+(posix mode through v)184 516 R .589(ersion 4.1.)-.15 F .589(The def)
 5.589 F .589(ault bash beha)-.1 F .589(vior remains as in pre)-.2 F .589
-(vious v)-.25 F(er)-.15 E(-)-.2 E(sions.)184 396 Q F1(compat42)144 408 Q
-F0 1.796(If set,)184 420 R F1(bash)4.296 E F0 1.796
+(vious v)-.25 F(er)-.15 E(-)-.2 E(sions.)184 528 Q F1(compat42)144 540 Q
+F0 1.796(If set,)184 552 R F1(bash)4.296 E F0 1.796
 (does not process the replacement string in the pattern substitution w)
-4.296 F(ord)-.1 E -.15(ex)184 432 S(pansion using quote remo).15 E -.25
-(va)-.15 G(l.).25 E F1(compat43)144 444 Q F0 .141(If set,)184 456 R F1
+4.296 F(ord)-.1 E -.15(ex)184 564 S(pansion using quote remo).15 E -.25
+(va)-.15 G(l.).25 E F1(compat43)144 576 Q F0 .141(If set,)184 588 R F1
 (bash)2.641 E F0 .141(does not print a w)2.641 F .14
 (arning message if an attempt is made to use a quoted com-)-.1 F .912
-(pound array assignment as an ar)184 468 R .912(gument to)-.18 F F1
+(pound array assignment as an ar)184 600 R .912(gument to)-.18 F F1
 (declar)3.413 E(e)-.18 E F0 3.413(,m)C(ak)-3.413 E .913(es w)-.1 F .913
-(ord e)-.1 F .913(xpansion errors non-)-.15 F -.1(fa)184 480 S .353
+(ord e)-.1 F .913(xpansion errors non-)-.15 F -.1(fa)184 612 S .353
 (tal errors that cause the current command to f).1 F .353(ail \(the def)
 -.1 F .352(ault beha)-.1 F .352(vior is to mak)-.2 F 2.852(et)-.1 G(hem)
--2.852 E -.1(fa)184 492 S 1.057(tal errors that cause the shell to e).1
+-2.852 E -.1(fa)184 624 S 1.057(tal errors that cause the shell to e).1
 F 1.058(xit\), and does not reset the loop state when a shell)-.15 F
-.375(function is e)184 504 R -.15(xe)-.15 G .375(cuted \(this allo).15 F
+.375(function is e)184 636 R -.15(xe)-.15 G .375(cuted \(this allo).15 F
 (ws)-.25 E F1(br)2.875 E(eak)-.18 E F0(or)2.875 E F1(continue)2.875 E F0
 .374(in a shell function to af)2.875 F .374(fect loops in)-.25 F
-(the caller')184 516 Q 2.5(sc)-.55 G(onte)-2.5 E(xt\).)-.15 E F1
-(compat44)144 528 Q F0 .441(If set,)184 540 R F1(bash)2.941 E F0(sa)
+(the caller')184 648 Q 2.5(sc)-.55 G(onte)-2.5 E(xt\).)-.15 E F1
+(compat44)144 660 Q F0 .441(If set,)184 672 R F1(bash)2.941 E F0(sa)
 2.942 E -.15(ve)-.2 G 2.942(st).15 G .442(he positional parameters to B)
 -2.942 F .442(ASH_ARGV and B)-.35 F .442(ASH_ARGC before)-.35 F(the)184
-552 Q 2.5(ya)-.15 G(re used, re)-2.5 E -.05(ga)-.15 G
+684 Q 2.5(ya)-.15 G(re used, re)-2.5 E -.05(ga)-.15 G
 (rdless of whether or not e).05 E(xtended deb)-.15 E
-(ugging mode is enabled.)-.2 E F1(complete_fullquote)144 564 Q F0 .654
-(If set,)184 576 R F1(bash)3.153 E F0 .653(quotes all shell metacharact\
+(ugging mode is enabled.)-.2 E F1(complete_fullquote)144 696 Q F0 .654
+(If set,)184 708 R F1(bash)3.153 E F0 .653(quotes all shell metacharact\
 ers in \214lenames and directory names when per)3.153 F(-)-.2 E 1.524
-(forming completion.)184 588 R 1.524(If not set,)6.524 F F1(bash)4.024 E
+(forming completion.)184 720 R 1.524(If not set,)6.524 F F1(bash)4.024 E
 F0(remo)4.024 E -.15(ve)-.15 G 4.024(sm).15 G 1.524
-(etacharacters such as the dollar sign)-4.024 F 2.667(from the set of c\
-haracters that will be quoted in completed \214lenames when these)184
-600 R .028(metacharacters appear in shell v)184 612 R .028
+(etacharacters such as the dollar sign)-4.024 F(GNU Bash 5.0)72 768 Q
+(2018 August 7)145.395 E(73)194.555 E 0 Cg EP
+%%Page: 74 74
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 137.14(SH\(1\) General).35 F
+(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E 2.667(from the se\
+t of characters that will be quoted in completed \214lenames when these)
+184 84 R .028(metacharacters appear in shell v)184 96 R .028
 (ariable references in w)-.25 F .029(ords to be completed.)-.1 F .029
-(This means)5.029 F 1.073(that dollar signs in v)184 624 R 1.073
+(This means)5.029 F 1.073(that dollar signs in v)184 108 R 1.073
 (ariable names that e)-.25 F 1.073
 (xpand to directories will not be quoted; ho)-.15 F(w-)-.25 E -2.15 -.25
-(ev e)184 636 T 1.922 -.4(r, a).25 H 1.422 -.15(ny d).4 H 1.123
+(ev e)184 120 T 1.922 -.4(r, a).25 H 1.422 -.15(ny d).4 H 1.123
 (ollar signs appearing in \214lenames will not be quoted, either).15 F
 6.123(.T)-.55 G 1.123(his is acti)-6.123 F -.15(ve)-.25 G .59
 (only when bash is using backslashes to quote completed \214lenames.)184
-648 R .59(This v)5.59 F .59(ariable is set)-.25 F(by def)184 660 Q
+132 R .59(This v)5.59 F .59(ariable is set)-.25 F(by def)184 144 Q
 (ault, which is the def)-.1 E(ault bash beha)-.1 E(vior in v)-.2 E
-(ersions through 4.2.)-.15 E F1(dir)144 672 Q(expand)-.18 E F0 .486
-(If set,)184 684 R F1(bash)2.986 E F0 .486
+(ersions through 4.2.)-.15 E/F1 10/Times-Bold@0 SF(dir)144 156 Q(expand)
+-.18 E F0 .486(If set,)184 168 R F1(bash)2.986 E F0 .486
 (replaces directory names with the results of w)2.986 F .486(ord e)-.1 F
 .487(xpansion when perform-)-.15 F .18(ing \214lename completion.)184
-696 R .179(This changes the contents of the readline editing b)5.18 F
+180 R .179(This changes the contents of the readline editing b)5.18 F
 (uf)-.2 E(fer)-.25 E 5.179(.I)-.55 G 2.679(fn)-5.179 G(ot)-2.679 E(set,)
-184 708 Q F1(bash)2.5 E F0(attempts to preserv)2.5 E 2.5(ew)-.15 G
-(hat the user typed.)-2.5 E(GNU Bash 5.0)72 768 Q(2018 March 15)144.29 E
-(73)193.45 E 0 Cg EP
-%%Page: 74 74
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 137.14(SH\(1\) General).35 F
-(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E/F1 10/Times-Bold@0
-SF(dirspell)144 84 Q F0 .858(If set,)184 84 R F1(bash)3.358 E F0 .858
+184 192 Q F1(bash)2.5 E F0(attempts to preserv)2.5 E 2.5(ew)-.15 G
+(hat the user typed.)-2.5 E F1(dirspell)144 204 Q F0 .858(If set,)184
+204 R F1(bash)3.358 E F0 .858
 (attempts spelling correction on directory names during w)3.358 F .859
 (ord completion if)-.1 F
-(the directory name initially supplied does not e)184 96 Q(xist.)-.15 E
-F1(dotglob)144 108 Q F0 .165(If set,)184 108 R F1(bash)2.665 E F0 .165
+(the directory name initially supplied does not e)184 216 Q(xist.)-.15 E
+F1(dotglob)144 228 Q F0 .165(If set,)184 228 R 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(The \214lenames)184 120 Q F1 -.63(``)2.5 G -.55(.').63
+(xpansion.)-.15 E(The \214lenames)184 240 Q F1 -.63(``)2.5 G -.55(.').63
 G(')-.08 E F0(and)5 E F1 -.63(``)2.5 G(..).63 E -.63('')-.55 G F0
 (must al)5.63 E -.1(wa)-.1 G(ys be matched e).1 E(xplicitly)-.15 E 2.5
 (,e)-.65 G -.15(ve)-2.75 G 2.5(ni).15 G(f)-2.5 E F1(dotglob)2.5 E F0
-(is set.)2.5 E F1(execfail)144 132 Q F0 1.386(If set, a non-interacti)
-184 132 R 1.686 -.15(ve s)-.25 H 1.386(hell will not e).15 F 1.386
+(is set.)2.5 E F1(execfail)144 252 Q F0 1.386(If set, a non-interacti)
+184 252 R 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.387
-(cute the \214le speci\214ed as an).15 F(ar)184 144 Q(gument to the)-.18
+(cute the \214le speci\214ed as an).15 F(ar)184 264 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 156 Q F0 .717
-(If set, aliases are e)184 168 R .717(xpanded as described abo)-.15 F
+-.1(fa)2.5 G(ils.).1 E F1(expand_aliases)144 276 Q F0 .717
+(If set, aliases are e)184 288 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 180 Q(ault for interacti)-.1 E .3 -.15(ve s)-.25 H(hells.)
-.15 E F1(extdeb)144 192 Q(ug)-.2 E F0 .671(If set at shell in)184 204 R
+(by def)184 300 Q(ault for interacti)-.1 E .3 -.15(ve s)-.25 H(hells.)
+.15 E F1(extdeb)144 312 Q(ug)-.2 E F0 .671(If set at shell in)184 324 R
 -.2(vo)-.4 G .671(cation, arrange to e).2 F -.15(xe)-.15 G .671
 (cute the deb).15 F .672(ugger pro\214le before the shell starts,)-.2 F
-.221(identical to the)184 216 R F1<adad646562>2.721 E(ugger)-.2 E F0
+.221(identical to the)184 336 R F1<adad646562>2.721 E(ugger)-.2 E F0
 2.721(option. If)2.721 F .221(set after in)2.721 F -.2(vo)-.4 G .221
-(cation, beha).2 F .22(vior intended for use by)-.2 F(deb)184 228 Q
-(uggers is enabled:)-.2 E F1(1.)184 240 Q F0(The)220 240 Q F1<ad46>4.25
+(cation, beha).2 F .22(vior intended for use by)-.2 F(deb)184 348 Q
+(uggers is enabled:)-.2 E F1(1.)184 360 Q F0(The)220 360 Q 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 252 Q
-(gument.)-.18 E F1(2.)184 264 Q F0 1.667(If the command run by the)220
-264 R 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 276
-Q -.15(xe)-.15 G(cuted.).15 E F1(3.)184 288 Q F0 .84
-(If the command run by the)220 288 R F1(DEB)3.34 E(UG)-.1 E F0 .841
+(number corresponding to each function name supplied as an ar)220 372 Q
+(gument.)-.18 E F1(2.)184 384 Q F0 1.667(If the command run by the)220
+384 R 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 396
+Q -.15(xe)-.15 G(cuted.).15 E F1(3.)184 408 Q F0 .84
+(If the command run by the)220 408 R 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 300 S .488
+(exe)220 420 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 312 Q(ce)-.18 E F0 -.2(bu)2.5 G
+(sour)220 432 Q(ce)-.18 E F0 -.2(bu)2.5 G
 (iltins\), the shell simulates a call to).2 E F1 -.18(re)2.5 G(tur).18 E
-(n)-.15 E F0(.)A F1(4.)184 324 Q F2 -.27(BA)220 324 S(SH_ARGC).27 E F0
+(n)-.15 E F0(.)A F1(4.)184 444 Q F2 -.27(BA)220 444 S(SH_ARGC).27 E F0
 (and)3.153 E F2 -.27(BA)3.403 G(SH_ARGV).27 E F0 .904
-(are updated as described in their descriptions)3.154 F(abo)220 336 Q
--.15(ve)-.15 G(.).15 E F1(5.)184 348 Q F0 1.637(Function tracing is ena\
-bled: command substitution, shell functions, and sub-)220 348 R
-(shells in)220 360 Q -.2(vo)-.4 G -.1(ke).2 G 2.5(dw).1 G(ith)-2.5 E F1
+(are updated as described in their descriptions)3.154 F(abo)220 456 Q
+-.15(ve)-.15 G(.).15 E F1(5.)184 468 Q F0 1.637(Function tracing is ena\
+bled: command substitution, shell functions, and sub-)220 468 R
+(shells in)220 480 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 372 Q F0 1.082(Error tracing is enabled: comman\
-d substitution, shell functions, and subshells)220 372 R(in)220 384 Q
+(traps.)2.5 E F1(6.)184 492 Q F0 1.082(Error tracing is enabled: comman\
+d substitution, shell functions, and subshells)220 492 R(in)220 504 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 F0(trap.)2.5 E F1
-(extglob)144 396 Q F0 .4(If set, the e)184 396 R .4
+(extglob)144 516 Q F0 .4(If set, the e)184 516 R .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 408 Q
-F0(are enabled.)2.5 E F1(extquote)144 420 Q F0 2.473(If set,)184 432 R
+-.15 H(nder).15 E F1 -.1(Pa)2.9 G .4(thname Expan-).1 F(sion)184 528 Q
+F0(are enabled.)2.5 E F1(extquote)144 540 Q F0 2.473(If set,)184 552 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 444 Q
-(This option is enabled by def)5 E(ault.)-.1 E F1(failglob)144 456 Q F0
-1.425(If set, patterns which f)184 456 R 1.425
+(pansions).15 E(enclosed in double quotes.)184 564 Q
+(This option is enabled by def)5 E(ault.)-.1 E F1(failglob)144 576 Q F0
+1.425(If set, patterns which f)184 576 R 1.425
 (ail to match \214lenames during pathname e)-.1 F 1.424
-(xpansion result in an)-.15 F -.15(ex)184 468 S(pansion error).15 E(.)
--.55 E F1 -.25(fo)144 480 S -.18(rc).25 G(e_\214gnor).18 E(e)-.18 E F0
-.936(If set, the suf)184 492 R<8c78>-.25 E .936(es speci\214ed by the)
+(xpansion result in an)-.15 F -.15(ex)184 588 S(pansion error).15 E(.)
+-.55 E F1 -.25(fo)144 600 S -.18(rc).25 G(e_\214gnor).18 E(e)-.18 E F0
+.936(If set, the suf)184 612 R<8c78>-.25 E .936(es speci\214ed by the)
 -.15 F F2(FIGNORE)3.436 E F0 .936(shell v)3.186 F .936(ariable cause w)
--.25 F .937(ords to be ignored)-.1 F .32(when performing w)184 504 R .32
+-.25 F .937(ords to be ignored)-.1 F .32(when performing w)184 624 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 2.947
-(pletions. See)184 516 R F2 .447(SHELL V)2.947 F(ARIABLES)-1.215 E F0
+(pletions. See)184 636 R F2 .447(SHELL V)2.947 F(ARIABLES)-1.215 E F0
 (abo)2.697 E .747 -.15(ve f)-.15 H .448(or a description of).15 F F2
 (FIGNORE)2.948 E F3(.)A F0 .448(This option is)4.948 F(enabled by def)
-184 528 Q(ault.)-.1 E F1(globasciiranges)144 540 Q F0 2.519
-(If set, range e)184 552 R 2.519
+184 648 Q(ault.)-.1 E F1(globasciiranges)144 660 Q F0 2.519
+(If set, range e)184 672 R 2.519
 (xpressions used in pattern matching brack)-.15 F 2.518(et e)-.1 F 2.518
 (xpressions \(see)-.15 F F2 -.09(Pa)5.018 G(tter).09 E(n)-.135 E
-(Matching)184 564 Q F0(abo)2.964 E -.15(ve)-.15 G 3.214(\)b).15 G(eha)
+(Matching)184 684 Q F0(abo)2.964 E -.15(ve)-.15 G 3.214(\)b).15 G(eha)
 -3.214 E 1.014 -.15(ve a)-.2 H 3.214(si).15 G 3.214(fi)-3.214 G 3.214
 (nt)-3.214 G .714(he traditional C locale when performing comparisons.)
--3.214 F 1.02(That is, the current locale')184 576 R 3.52(sc)-.55 G 1.02
+-3.214 F 1.02(That is, the current locale')184 696 R 3.52(sc)-.55 G 1.02
 (ollating sequence is not tak)-3.52 F 1.02(en into account, so)-.1 F F1
-(b)3.52 E F0 1.02(will not)3.52 F .956(collate between)184 588 R F1(A)
+(b)3.52 E F0 1.02(will not)3.52 F .956(collate between)184 708 R F1(A)
 3.456 E F0(and)3.456 E F1(B)3.456 E F0 3.457(,a)C .957(nd upper)-3.457 F
 .957(-case and lo)-.2 F(wer)-.25 E .957
-(-case ASCII characters will collate)-.2 F(together)184 600 Q(.)-.55 E
-F1(globstar)144 612 Q F0 .519(If set, the pattern)184 612 R F1(**)3.019
-E F0 .519(used in a pathname e)3.019 F .519(xpansion conte)-.15 F .518
-(xt will match all \214les and zero)-.15 F .431
-(or more directories and subdirectories.)184 624 R .431
-(If the pattern is follo)5.431 F .432(wed by a)-.25 F F1(/)2.932 E F0
-2.932(,o)C .432(nly directories)-2.932 F(and subdirectories match.)184
-636 Q F1(gnu_errfmt)144 648 Q F0(If set, shell error messages are writt\
-en in the standard GNU error message format.)184 660 Q F1(histappend)144
-672 Q F0 .676
-(If set, the history list is appended to the \214le named by the v)184
-684 R .676(alue of the)-.25 F F2(HISTFILE)3.176 E F0 -.25(va)2.926 G
-(ri-).25 E(able when the shell e)184 696 Q(xits, rather than o)-.15 E
--.15(ve)-.15 G(rwriting the \214le.).15 E(GNU Bash 5.0)72 768 Q
-(2018 March 15)144.29 E(74)193.45 E 0 Cg EP
+(-case ASCII characters will collate)-.2 F(together)184 720 Q(.)-.55 E
+(GNU Bash 5.0)72 768 Q(2018 August 7)145.395 E(74)194.555 E 0 Cg EP
 %%Page: 75 75
 %%BeginPageSetup
 BP
 %%EndPageSetup
 /F0 10/Times-Roman@0 SF -.35(BA)72 48 S 137.14(SH\(1\) General).35 F
 (Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E/F1 10/Times-Bold@0
-SF(histr)144 84 Q(eedit)-.18 E F0 .575(If set, and)184 96 R F1 -.18(re)
+SF(globstar)144 84 Q F0 .519(If set, the pattern)184 84 R F1(**)3.019 E
+F0 .519(used in a pathname e)3.019 F .519(xpansion conte)-.15 F .518
+(xt will match all \214les and zero)-.15 F .431
+(or more directories and subdirectories.)184 96 R .431
+(If the pattern is follo)5.431 F .432(wed by a)-.25 F F1(/)2.932 E F0
+2.932(,o)C .432(nly directories)-2.932 F(and subdirectories match.)184
+108 Q F1(gnu_errfmt)144 120 Q F0(If set, shell error messages are writt\
+en in the standard GNU error message format.)184 132 Q F1(histappend)144
+144 Q F0 .676
+(If set, the history list is appended to the \214le named by the v)184
+156 R .676(alue of the)-.25 F/F2 9/Times-Bold@0 SF(HISTFILE)3.176 E F0
+-.25(va)2.926 G(ri-).25 E(able when the shell e)184 168 Q
+(xits, rather than o)-.15 E -.15(ve)-.15 G(rwriting the \214le.).15 E F1
+(histr)144 180 Q(eedit)-.18 E F0 .575(If set, and)184 192 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 108 Q F1(histv)144 120 Q
-(erify)-.1 E F0 .403(If set, and)184 132 R F1 -.18(re)2.903 G(adline).18
+.576(ailed his-)-.1 F(tory substitution.)184 204 Q F1(histv)144 216 Q
+(erify)-.1 E F0 .403(If set, and)184 228 R F1 -.18(re)2.903 G(adline).18
 E F0 .403
 (is being used, the results of history substitution are not immediately)
-2.903 F .661(passed to the shell parser)184 144 R 5.661(.I)-.55 G .662
+2.903 F .661(passed to the shell parser)184 240 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 156 S -.25(ff).2 G(er).25 E
+G(adline).18 E F0(editing)3.162 E -.2(bu)184 252 S -.25(ff).2 G(er).25 E
 2.5(,a)-.4 G(llo)-2.5 E(wing further modi\214cation.)-.25 E F1
-(hostcomplete)144 168 Q F0 1.182(If set, and)184 180 R F1 -.18(re)3.682
+(hostcomplete)144 264 Q F0 1.182(If set, and)184 276 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
-192 R 1.38(ord containing a)-.1 F F1(@)3.881 E F0 1.381
+288 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 9/Times-Bold@0 SF(READLINE)3.881 E F0(abo)184 204 Q -.15(ve)-.15 G
-2.5(\). This).15 F(is enabled by def)2.5 E(ault.)-.1 E F1(huponexit)144
-216 Q F0(If set,)184 228 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(inherit_err)144 240 Q(exit)-.18 E F0
-.22(If set, command substitution inherits the v)184 252 R .219
-(alue of the)-.25 F F1(err)2.719 E(exit)-.18 E F0 .219
-(option, instead of unsetting)2.719 F(it in the subshell en)184 264 Q
-2.5(vironment. This)-.4 F(option is enabled when)2.5 E/F3 10
-/Times-Italic@0 SF(posix mode)2.5 E F0(is enabled.)2.5 E F1(interacti)
-144 276 Q -.1(ve)-.1 G(_comments).1 E F0 .33(If set, allo)184 288 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 300 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
-312 Q(ault.)-.1 E F1(lastpipe)144 324 Q F0 .066
-(If set, and job control is not acti)184 324 R -.15(ve)-.25 G 2.566(,t)
+F2(READLINE)3.881 E F0(abo)184 300 Q -.15(ve)-.15 G 2.5(\). This).15 F
+(is enabled by def)2.5 E(ault.)-.1 E F1(huponexit)144 312 Q F0(If set,)
+184 324 Q F1(bash)2.5 E F0(will send)2.5 E F2(SIGHUP)2.5 E F0
+(to all jobs when an interacti)2.25 E .3 -.15(ve l)-.25 H(ogin shell e)
+.15 E(xits.)-.15 E F1(inherit_err)144 336 Q(exit)-.18 E F0 .22
+(If set, command substitution inherits the v)184 348 R .219(alue of the)
+-.25 F F1(err)2.719 E(exit)-.18 E F0 .219(option, instead of unsetting)
+2.719 F(it in the subshell en)184 360 Q 2.5(vironment. This)-.4 F
+(option is enabled when)2.5 E/F3 10/Times-Italic@0 SF(posix mode)2.5 E
+F0(is enabled.)2.5 E F1(interacti)144 372 Q -.1(ve)-.1 G(_comments).1 E
+F0 .33(If set, allo)184 384 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 396 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 408 Q
+(ault.)-.1 E F1(lastpipe)144 420 Q F0 .066
+(If set, and job control is not acti)184 420 R -.15(ve)-.25 G 2.566(,t)
 .15 G .066(he shell runs the last command of a pipeline not e)-2.566 F
 -.15(xe)-.15 G(-).15 E(cuted in the background in the current shell en)
-184 336 Q(vironment.)-.4 E F1(lithist)144 348 Q F0 .655(If set, and the)
-184 348 R F1(cmdhist)3.155 E F0 .654
+184 432 Q(vironment.)-.4 E F1(lithist)144 444 Q F0 .655(If set, and the)
+184 444 R 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 360 Q
+(with embedded ne)184 456 Q
 (wlines rather than using semicolon separators where possible.)-.25 E F1
-(localv)144 372 Q(ar_inherit)-.1 E F0 .421(If set, local v)184 384 R
+(localv)144 468 Q(ar_inherit)-.1 E F0 .421(If set, local v)184 480 R
 .422(ariables inherit the v)-.25 F .422(alue and attrib)-.25 F .422
 (utes of a v)-.2 F .422(ariable of the same name that)-.25 F -.15(ex)184
-396 S .174(ists at a pre).15 F .174(vious scope before an)-.25 F 2.673
+492 S .174(ists at a pre).15 F .174(vious scope before an)-.25 F 2.673
 (yn)-.15 G .673 -.25(ew va)-2.673 H .173(lue is assigned.).25 F .173
-(The nameref attrib)5.173 F .173(ute is not)-.2 F(inherited.)184 408 Q
-F1(login_shell)144 420 Q F0 .486
+(The nameref attrib)5.173 F .173(ute is not)-.2 F(inherited.)184 504 Q
+F1(login_shell)144 516 Q F0 .486
 (The shell sets this option if it is started as a login shell \(see)184
-432 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 444 S(lue may not be changed.).25
-E F1(mailwar)144 456 Q(n)-.15 E F0 .815(If set, and a \214le that)184
-468 R F1(bash)3.315 E F0 .814
+528 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 540 S(lue may not be changed.).25
+E F1(mailwar)144 552 Q(n)-.15 E F0 .815(If set, and a \214le that)184
+564 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 480 S 2.5(sc).1 G(heck)-2.5 E(ed, the message `)-.1 E
+-.1(wa)184 576 S 2.5(sc).1 G(heck)-2.5 E(ed, the message `)-.1 E
 (`The mail in)-.74 E F3(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 492
-Q F0 .324(If set, and)184 504 R F1 -.18(re)2.824 G(adline).18 E F0 .324
+-.74 G 2.5(sd)-2.5 G(isplayed.)-2.5 E F1(no_empty_cmd_completion)144 588
+Q F0 .324(If set, and)184 600 R F1 -.18(re)2.824 G(adline).18 E F0 .324
 (is being used,)2.824 F F1(bash)2.824 E F0 .324
 (will not attempt to search the)2.824 F F2 -.666(PA)2.825 G(TH)-.189 E
 F0 .325(for possible)2.575 F
-(completions when completion is attempted on an empty line.)184 516 Q F1
-(nocaseglob)144 528 Q F0 .437(If set,)184 540 R F1(bash)2.937 E F0 .436
+(completions when completion is attempted on an empty line.)184 612 Q F1
+(nocaseglob)144 624 Q F0 .437(If set,)184 636 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 552 S
+H .436(ashion when performing pathname).05 F -.15(ex)184 648 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 564 Q F0 1.193(If set,)184
-576 R F1(bash)3.693 E F0 1.194(matches patterns in a case\255insensiti)
+-.15(ve)-.15 G(\).).15 E F1(nocasematch)144 660 Q F0 1.193(If set,)184
+672 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 .551(while e)184 588 R -.15(xe)-.15 G(cuting).15 E F1(case)3.051 E F0
+F .551(while e)184 684 R -.15(xe)-.15 G(cuting).15 E F1(case)3.051 E F0
 (or)3.051 E F1([[)3.051 E F0 .551
 (conditional commands, when performing pattern substitution)3.051 F -.1
-(wo)184 600 S .622(rd e).1 F .623(xpansions, or when \214ltering possib\
-le completions as part of programmable com-)-.15 F(pletion.)184 612 Q F1
-(nullglob)144 624 Q F0 .855(If set,)184 636 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 648 S
-(pand to a null string, rather than themselv).15 E(es.)-.15 E F1(pr)144
-660 Q(ogcomp)-.18 E F0 .676(If set, the programmable completion f)184
-672 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 684 Q(This option is enabled by def)5 E(ault.)-.1 E F1
-(pr)144 696 Q(omptv)-.18 E(ars)-.1 E F0 1.448
-(If set, prompt strings under)184 708 R 1.448(go parameter e)-.18 F
-1.447(xpansion, command substitution, arithmetic)-.15 F -.15(ex)184 720
-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(GNU Bash 5.0)72
-768 Q(2018 March 15)144.29 E(75)193.45 E 0 Cg EP
+(wo)184 696 S .622(rd e).1 F .623(xpansions, or when \214ltering possib\
+le completions as part of programmable com-)-.15 F(pletion.)184 708 Q
+(GNU Bash 5.0)72 768 Q(2018 August 7)145.395 E(75)194.555 E 0 Cg EP
 %%Page: 76 76
 %%BeginPageSetup
 BP
 %%EndPageSetup
 /F0 10/Times-Roman@0 SF -.35(BA)72 48 S 137.14(SH\(1\) General).35 F
-(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E
-(This option is enabled by def)184 84 Q(ault.)-.1 E/F1 10/Times-Bold@0
-SF -.18(re)144 96 S(stricted_shell).18 E F0 1.069
+(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E/F1 10/Times-Bold@0
+SF(nullglob)144 84 Q F0 .855(If set,)184 96 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 108 S
+(pand to a null string, rather than themselv).15 E(es.)-.15 E F1(pr)144
+120 Q(ogcomp)-.18 E F0 .676(If set, the programmable completion f)184
+132 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 144 Q(This option is enabled by def)5 E(ault.)-.1 E F1
+(pr)144 156 Q(omptv)-.18 E(ars)-.1 E F0 1.448
+(If set, prompt strings under)184 168 R 1.448(go parameter e)-.18 F
+1.447(xpansion, command substitution, arithmetic)-.15 F -.15(ex)184 180
+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 9
+/Times-Bold@0 SF(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 192 Q(ault.)-.1 E F1 -.18(re)
+144 204 S(stricted_shell).18 E F0 1.069
 (The shell sets this option if it is started in restricted mode \(see)
-184 108 R/F2 9/Times-Bold@0 SF 1.069(RESTRICTED SHELL)3.569 F F0(belo)
-184 120 Q 2.86(w\). The)-.25 F -.25(va)2.86 G .36
-(lue may not be changed.).25 F .36
+184 216 R F2 1.069(RESTRICTED SHELL)3.569 F F0(belo)184 228 Q 2.86
+(w\). The)-.25 F -.25(va)2.86 G .36(lue may not be changed.).25 F .36
 (This is not reset when the startup \214les are e)5.36 F -.15(xe)-.15 G
-(-).15 E(cuted, allo)184 132 Q(wing the startup \214les to disco)-.25 E
+(-).15 E(cuted, allo)184 240 Q(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 144 Q(erbose)-.1 E F0 .502(If set, the)184 156 R F1
+F1(shift_v)144 252 Q(erbose)-.1 E F0 .502(If set, the)184 264 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 168 Q F1(sour)
-144 180 Q(cepath)-.18 E F0 .77(If set, the)184 192 R F1(sour)3.27 E(ce)
+(xceeds the number)-.15 F(of positional parameters.)184 276 Q F1(sour)
+144 288 Q(cepath)-.18 E F0 .77(If set, the)184 300 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 204 Q 2.5(gument. This)-.18 F
-(option is enabled by def)2.5 E(ault.)-.1 E F1(xpg_echo)144 216 Q F0
-(If set, the)184 228 Q F1(echo)2.5 E F0 -.2(bu)2.5 G(iltin e).2 E
+(\214le supplied as an ar)184 312 Q 2.5(gument. This)-.18 F
+(option is enabled by def)2.5 E(ault.)-.1 E F1(xpg_echo)144 324 Q F0
+(If set, the)184 336 Q F1(echo)2.5 E F0 -.2(bu)2.5 G(iltin e).2 E
 (xpands backslash-escape sequences by def)-.15 E(ault.)-.1 E F1(suspend)
-108 244.8 Q F0([)2.5 E F1<ad66>A F0(])A 1.002(Suspend the e)144 256.8 R
+108 352.8 Q F0([)2.5 E F1<ad66>A F0(])A 1.002(Suspend the e)144 364.8 R
 -.15(xe)-.15 G 1.002(cution of this shell until it recei).15 F -.15(ve)
 -.25 G 3.501(sa).15 G F2(SIGCONT)A F0 3.501(signal. A)3.251 F 1.001
-(login shell cannot be)3.501 F .022(suspended; the)144 268.8 R F1<ad66>
+(login shell cannot be)3.501 F .022(suspended; the)144 376.8 R F1<ad66>
 2.522 E F0 .022(option can be used to o)2.522 F -.15(ve)-.15 G .022
 (rride this and force the suspension.).15 F .023(The return status is)
-5.023 F 2.5(0u)144 280.8 S(nless the shell is a login shell and)-2.5 E
+5.023 F 2.5(0u)144 388.8 S(nless the shell is a login shell and)-2.5 E
 F1<ad66>2.5 E F0(is not supplied, or if job control is not enabled.)2.5
-E F1(test)108 297.6 Q/F3 10/Times-Italic@0 SF -.2(ex)2.5 G(pr).2 E F1([)
-108 309.6 Q F3 -.2(ex)2.5 G(pr).2 E F1(])2.5 E F0 .878
-(Return a status of 0 \(true\) or 1 \(f)144 309.6 R .877
+E F1(test)108 405.6 Q/F3 10/Times-Italic@0 SF -.2(ex)2.5 G(pr).2 E F1([)
+108 417.6 Q F3 -.2(ex)2.5 G(pr).2 E F1(])2.5 E F0 .878
+(Return a status of 0 \(true\) or 1 \(f)144 417.6 R .877
 (alse\) depending on the e)-.1 F -.25(va)-.25 G .877
-(luation of the conditional e).25 F(xpression)-.15 E F3 -.2(ex)144 321.6
+(luation of the conditional e).25 F(xpression)-.15 E F3 -.2(ex)144 429.6
 S(pr).2 E F0 5.53(.E).73 G .53
 (ach operator and operand must be a separate ar)-5.53 F 3.03
 (gument. Expressions)-.18 F .53(are composed of the)3.03 F 3.08
-(primaries described abo)144 333.6 R 3.38 -.15(ve u)-.15 H(nder).15 E F2
+(primaries described abo)144 441.6 R 3.38 -.15(ve u)-.15 H(nder).15 E F2
 (CONDITION)5.58 E 3.079(AL EXPRESSIONS)-.18 F/F4 9/Times-Roman@0 SF(.)A
 F1(test)7.579 E F0 3.079(does not accept an)5.579 F(y)-.15 E
-(options, nor does it accept and ignore an ar)144 345.6 Q(gument of)-.18
+(options, nor does it accept and ignore an ar)144 453.6 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 363.6 R .786
+(Expressions may be combined using the follo)144 471.6 R .786
 (wing operators, listed in decreasing order of prece-)-.25 F 3.412
-(dence. The)144 375.6 R -.25(eva)3.412 G .912
+(dence. The)144 483.6 R -.25(eva)3.412 G .912
 (luation depends on the number of ar).25 F .911(guments; see belo)-.18 F
 4.711 -.65(w. O)-.25 H .911(perator precedence is).65 F
-(used when there are \214v)144 387.6 Q 2.5(eo)-.15 G 2.5(rm)-2.5 G
-(ore ar)-2.5 E(guments.)-.18 E F1(!)144 399.6 Q F3 -.2(ex)2.5 G(pr).2 E
-F0 -.35(Tr)180 399.6 S(ue if).35 E F3 -.2(ex)2.5 G(pr).2 E F0(is f)3.23
-E(alse.)-.1 E F1(\()144 411.6 Q F3 -.2(ex)2.5 G(pr).2 E F1(\))2.5 E F0
-.26(Returns the v)180 411.6 R .26(alue of)-.25 F F3 -.2(ex)2.76 G(pr).2
+(used when there are \214v)144 495.6 Q 2.5(eo)-.15 G 2.5(rm)-2.5 G
+(ore ar)-2.5 E(guments.)-.18 E F1(!)144 507.6 Q F3 -.2(ex)2.5 G(pr).2 E
+F0 -.35(Tr)180 507.6 S(ue if).35 E F3 -.2(ex)2.5 G(pr).2 E F0(is f)3.23
+E(alse.)-.1 E F1(\()144 519.6 Q F3 -.2(ex)2.5 G(pr).2 E F1(\))2.5 E F0
+.26(Returns the v)180 519.6 R .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 423.6 Q F3 -.2
-(ex)144 435.6 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 447.6 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 459.6 S
+(rride the normal precedence of opera-).15 F(tors.)180 531.6 Q F3 -.2
+(ex)144 543.6 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 555.6 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 567.6 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
-471.6 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 488.4 Q F0(and)2.5 E
+579.6 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 596.4 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 506.4 S -.18(rg)-2.5 G(uments).18 E(The e)
-180 518.4 Q(xpression is f)-.15 E(alse.)-.1 E 2.5(1a)144 530.4 S -.18
-(rg)-2.5 G(ument).18 E(The e)180 542.4 Q
+(guments.)-.18 E 2.5(0a)144 614.4 S -.18(rg)-2.5 G(uments).18 E(The e)
+180 626.4 Q(xpression is f)-.15 E(alse.)-.1 E 2.5(1a)144 638.4 S -.18
+(rg)-2.5 G(ument).18 E(The e)180 650.4 Q
 (xpression is true if and only if the ar)-.15 E(gument is not null.)-.18
-E 2.5(2a)144 554.4 S -.18(rg)-2.5 G(uments).18 E .37(If the \214rst ar)
-180 566.4 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 662.4 S -.18(rg)-2.5 G(uments).18 E .37(If the \214rst ar)
+180 674.4 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 578.4 R .38
+(gument is null.)-.18 F .379(If the \214rst ar)180 686.4 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 590.4 Q .553
+-.15(ve u)-.15 H(nder).15 E F2(CONDI-)2.88 E(TION)180 698.4 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 602.4 Q
+(If the \214rst ar)5.552 F(gu-)-.18 E(ment is not a v)180 710.4 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 614.4 S -.18(rg)-2.5 G
-(uments).18 E .236(The follo)180 626.4 R .236
-(wing conditions are applied in the order listed.)-.25 F .236
-(If the second ar)5.236 F .236(gument is one of)-.18 F .855
-(the binary conditional operators listed abo)180 638.4 R 1.155 -.15
-(ve u)-.15 H(nder).15 E F2(CONDITION)3.355 E .855(AL EXPRESSIONS)-.18 F
-F4(,)A F0(the)3.104 E .578(result of the e)180 650.4 R .578(xpression i\
-s the result of the binary test using the \214rst and third ar)-.15 F
-(guments)-.18 E 1.333(as operands.)180 662.4 R(The)6.333 E F1<ad61>3.833
-E F0(and)3.833 E F1<ad6f>3.832 E F0 1.332
-(operators are considered binary operators when there are)3.832 F .558
-(three ar)180 674.4 R 3.058(guments. If)-.18 F .558(the \214rst ar)3.058
-F .558(gument is)-.18 F F1(!)3.058 E F0 3.058(,t)C .558(he v)-3.058 F
-.558(alue is the ne)-.25 F -.05(ga)-.15 G .558(tion of the tw).05 F
-(o-ar)-.1 E(gument)-.18 E .521(test using the second and third ar)180
-686.4 R 3.021(guments. If)-.18 F .521(the \214rst ar)3.021 F .52
-(gument is e)-.18 F(xactly)-.15 E F1(\()3.02 E F0 .52(and the third)3.02
-F(ar)180 698.4 Q .485(gument is e)-.18 F(xactly)-.15 E F1(\))2.985 E F0
-2.985(,t)C .485(he result is the one-ar)-2.985 F .485
-(gument test of the second ar)-.18 F 2.985(gument. Other)-.18 F(-)-.2 E
-(wise, the e)180 710.4 Q(xpression is f)-.15 E(alse.)-.1 E(GNU Bash 5.0)
-72 768 Q(2018 March 15)144.29 E(76)193.45 E 0 Cg EP
+(xpression is f)-.15 E(alse.)-.1 E(GNU Bash 5.0)72 768 Q(2018 August 7)
+145.395 E(76)194.555 E 0 Cg EP
 %%Page: 77 77
 %%BeginPageSetup
 BP
 %%EndPageSetup
 /F0 10/Times-Roman@0 SF -.35(BA)72 48 S 137.14(SH\(1\) General).35 F
-(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E 2.5(4a)144 84 S
--.18(rg)-2.5 G(uments).18 E .385(If the \214rst ar)180 96 R .385
-(gument is)-.18 F/F1 10/Times-Bold@0 SF(!)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 108 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(When used with)144 174 Q F1(test)2.5 E F0(or)
-2.5 E F1([)2.5 E F0 2.5(,t)C(he)-2.5 E F1(<)2.5 E F0(and)2.5 E F1(>)2.5
-E F0(operators sort le)2.5 E(xicographically using ASCII ordering.)-.15
-E F1(times)108 190.8 Q F0 1.229(Print the accumulated user and system t\
-imes for the shell and for processes run from the shell.)144 190.8 R
-(The return status is 0.)144 202.8 Q F1(trap)108 219.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 231.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
+(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E 2.5(3a)144 84 S
+-.18(rg)-2.5 G(uments).18 E .236(The follo)180 96 R .236
+(wing conditions are applied in the order listed.)-.25 F .236
+(If the second ar)5.236 F .236(gument is one of)-.18 F .855
+(the binary conditional operators listed abo)180 108 R 1.155 -.15(ve u)
+-.15 H(nder).15 E/F1 9/Times-Bold@0 SF(CONDITION)3.355 E .855
+(AL EXPRESSIONS)-.18 F/F2 9/Times-Roman@0 SF(,)A F0(the)3.104 E .578
+(result of the e)180 120 R .578(xpression is the result of the binary t\
+est using the \214rst and third ar)-.15 F(guments)-.18 E 1.333
+(as operands.)180 132 R(The)6.333 E/F3 10/Times-Bold@0 SF<ad61>3.833 E
+F0(and)3.833 E F3<ad6f>3.832 E F0 1.332
+(operators are considered binary operators when there are)3.832 F .558
+(three ar)180 144 R 3.058(guments. If)-.18 F .558(the \214rst ar)3.058 F
+.558(gument is)-.18 F F3(!)3.058 E F0 3.058(,t)C .558(he v)-3.058 F .558
+(alue is the ne)-.25 F -.05(ga)-.15 G .558(tion of the tw).05 F(o-ar)-.1
+E(gument)-.18 E .521(test using the second and third ar)180 156 R 3.021
+(guments. If)-.18 F .521(the \214rst ar)3.021 F .52(gument is e)-.18 F
+(xactly)-.15 E F3(\()3.02 E F0 .52(and the third)3.02 F(ar)180 168 Q
+.485(gument is e)-.18 F(xactly)-.15 E F3(\))2.985 E F0 2.985(,t)C .485
+(he result is the one-ar)-2.985 F .485(gument test of the second ar)-.18
+F 2.985(gument. Other)-.18 F(-)-.2 E(wise, the e)180 180 Q
+(xpression is f)-.15 E(alse.)-.1 E 2.5(4a)144 192 S -.18(rg)-2.5 G
+(uments).18 E .385(If the \214rst ar)180 204 R .385(gument is)-.18 F F3
+(!)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 216 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 228 Q -.15(ve)
+-.15 G(.).15 E 2.5(5o)144 240 S 2.5(rm)-2.5 G(ore ar)-2.5 E(guments)-.18
+E 1.635(The e)180 252 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 264 Q -.15(ve)-.15 G(.).15 E(When used with)144 282 Q F3(test)
+2.5 E F0(or)2.5 E F3([)2.5 E F0 2.5(,t)C(he)-2.5 E F3(<)2.5 E F0(and)2.5
+E F3(>)2.5 E F0(operators sort le)2.5 E
+(xicographically using ASCII ordering.)-.15 E F3(times)108 298.8 Q F0
+1.229(Print the accumulated user and system times for the shell and for\
+ processes run from the shell.)144 298.8 R(The return status is 0.)144
+310.8 Q F3(trap)108 327.6 Q F0([)2.5 E F3(\255lp)A F0 2.5(][)C([)-2.5 E
+/F4 10/Times-Italic@0 SF(ar)A(g)-.37 E F0(])A F4(sigspec)2.5 E F0(...])
+2.5 E .703(The command)144 339.6 R F4(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
+(ignal\(s\))-3.202 E F4(sigspec)3.202 E F0 5.702(.I).31 G(f)-5.702 E F4
 (ar)3.532 E(g)-.37 E F0(is)3.422 E .608(absent \(and there is a single)
-144 243.6 R F2(sigspec)3.108 E F0 3.108(\)o)C(r)-3.108 E F1<ad>3.108 E
+144 351.6 R F4(sigspec)3.108 E F0 3.108(\)o)C(r)-3.108 E F3<ad>3.108 E
 F0 3.108(,e)C .608
 (ach speci\214ed signal is reset to its original disposition)-3.108 F
-.659(\(the v)144 255.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 267.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 279.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 291.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 363.6 R .659(alue it had upon entrance to the shell\).)
+-.25 F(If)5.658 E F4(ar)3.488 E(g)-.37 E F0 .658
+(is the null string the signal speci\214ed by each)3.378 F F4(sigspec)
+144.34 375.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 F4(ar)3.411 E(g)-.37 E
+F0 .581(is not present and)3.301 F F3<ad70>3.081 E F0(has)3.081 E 1.215
+(been supplied, then the trap commands associated with each)144 387.6 R
+F4(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 399.6 R F3<ad70>3.36
+E F0 .86(is gi)3.36 F -.15(ve)-.25 G(n,).15 E F3(trap)3.36 E F0 .86
 (prints the list of commands associated with each)3.36 F 2.83
-(signal. The)144 303.6 R F1<ad6c>2.83 E F0 .33(option causes the shell \
+(signal. The)144 411.6 R F3<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 315.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
+(bers. Each)144 423.6 R F4(sigspec)4.65 E F0 1.811
+(is either a signal name de\214ned in <)4.62 F F4(signal.h)A F0 1.811
 (>, or a signal number)B 6.811(.S)-.55 G(ignal)-6.811 E
-(names are case insensiti)144 327.6 Q .3 -.15(ve a)-.25 H(nd the).15 E
-/F3 9/Times-Bold@0 SF(SIG)2.5 E F0(pre\214x is optional.)2.25 E 1.649
-(If a)144 345.6 R F2(sigspec)4.489 E F0(is)4.459 E F3(EXIT)4.149 E F0
-1.649(\(0\) the command)3.899 F F2(ar)4.479 E(g)-.37 E F0 1.649(is e)
-4.369 F -.15(xe)-.15 G 1.649(cuted on e).15 F 1.648(xit from the shell.)
--.15 F 1.648(If a)6.648 F F2(sigspec)4.488 E F0(is)4.458 E F3(DEB)144
-357.6 Q(UG)-.09 E/F4 9/Times-Roman@0 SF(,)A F0 1.167(the command)3.417 F
-F2(ar)3.997 E(g)-.37 E F0 1.167(is e)3.887 F -.15(xe)-.15 G 1.167
-(cuted before e).15 F -.15(ve)-.25 G(ry).15 E F2 1.168(simple command)
-3.667 F F0(,)A F2(for)3.668 E F0(command,)3.668 E F2(case)3.668 E F0
-(com-)3.668 E(mand,)144 369.6 Q F2(select)2.647 E F0 .147(command, e)
-2.647 F -.15(ve)-.25 G .147(ry arithmetic).15 F F2(for)2.647 E F0 .146
+(names are case insensiti)144 435.6 Q .3 -.15(ve a)-.25 H(nd the).15 E
+F1(SIG)2.5 E F0(pre\214x is optional.)2.25 E 1.649(If a)144 453.6 R F4
+(sigspec)4.489 E F0(is)4.459 E F1(EXIT)4.149 E F0 1.649
+(\(0\) the command)3.899 F F4(ar)4.479 E(g)-.37 E F0 1.649(is e)4.369 F
+-.15(xe)-.15 G 1.649(cuted on e).15 F 1.648(xit from the shell.)-.15 F
+1.648(If a)6.648 F F4(sigspec)4.488 E F0(is)4.458 E F1(DEB)144 465.6 Q
+(UG)-.09 E F2(,)A F0 1.167(the command)3.417 F F4(ar)3.997 E(g)-.37 E F0
+1.167(is e)3.887 F -.15(xe)-.15 G 1.167(cuted before e).15 F -.15(ve)
+-.25 G(ry).15 E F4 1.168(simple command)3.667 F F0(,)A F4(for)3.668 E F0
+(command,)3.668 E F4(case)3.668 E F0(com-)3.668 E(mand,)144 477.6 Q F4
+(select)2.647 E F0 .147(command, e)2.647 F -.15(ve)-.25 G .147
+(ry arithmetic).15 F F4(for)2.647 E F0 .146
 (command, and before the \214rst command e)2.647 F -.15(xe)-.15 G .146
-(cutes in a).15 F .145(shell function \(see)144 381.6 R F3 .145
+(cutes in a).15 F .145(shell function \(see)144 489.6 R F1 .145
 (SHELL GRAMMAR)2.645 F F0(abo)2.395 E -.15(ve)-.15 G 2.646(\). Refer).15
-F .146(to the description of the)2.646 F F1(extdeb)2.646 E(ug)-.2 E F0
-.146(option to)2.646 F(the)144 393.6 Q F1(shopt)3.201 E F0 -.2(bu)3.201
-G .7(iltin for details of its ef).2 F .7(fect on the)-.25 F F1(DEB)3.2 E
-(UG)-.1 E F0 3.2(trap. If)3.2 F(a)3.2 E F2(sigspec)3.54 E F0(is)3.51 E
-F3(RETURN)3.2 E F4(,)A F0 .7(the com-)2.95 F(mand)144 405.6 Q F2(ar)
+F .146(to the description of the)2.646 F F3(extdeb)2.646 E(ug)-.2 E F0
+.146(option to)2.646 F(the)144 501.6 Q F3(shopt)3.201 E F0 -.2(bu)3.201
+G .7(iltin for details of its ef).2 F .7(fect on the)-.25 F F3(DEB)3.2 E
+(UG)-.1 E F0 3.2(trap. If)3.2 F(a)3.2 E F4(sigspec)3.54 E F0(is)3.51 E
+F1(RETURN)3.2 E F2(,)A F0 .7(the com-)2.95 F(mand)144 513.6 Q F4(ar)
 3.473 E(g)-.37 E F0 .643(is e)3.363 F -.15(xe)-.15 G .643
 (cuted each time a shell function or a script e).15 F -.15(xe)-.15 G
-.644(cuted with the).15 F F1(.)3.144 E F0(or)3.144 E F1(sour)3.144 E(ce)
--.18 E F0 -.2(bu)3.144 G(iltins).2 E(\214nishes e)144 417.6 Q -.15(xe)
--.15 G(cuting.).15 E .961(If a)144 435.6 R F2(sigspec)3.801 E F0(is)
-3.771 E F3(ERR)3.461 E F4(,)A F0 .961(the command)3.211 F F2(ar)3.791 E
+.644(cuted with the).15 F F3(.)3.144 E F0(or)3.144 E F3(sour)3.144 E(ce)
+-.18 E F0 -.2(bu)3.144 G(iltins).2 E(\214nishes e)144 525.6 Q -.15(xe)
+-.15 G(cuting.).15 E .961(If a)144 543.6 R F4(sigspec)3.801 E F0(is)
+3.771 E F1(ERR)3.461 E F2(,)A F0 .961(the command)3.211 F F4(ar)3.791 E
 (g)-.37 E F0 .961(is e)3.681 F -.15(xe)-.15 G .961(cuted whene).15 F
 -.15(ve)-.25 G 3.461(ra).15 G .96(pipeline \(which may consist of a)
 -.001 F .185(single simple command\), a list, or a compound command ret\
-urns a non\255zero e)144 447.6 R .185(xit status, subject to)-.15 F .452
-(the follo)144 459.6 R .452(wing conditions.)-.25 F(The)5.452 E F3(ERR)
+urns a non\255zero e)144 555.6 R .185(xit status, subject to)-.15 F .452
+(the follo)144 567.6 R .452(wing conditions.)-.25 F(The)5.452 E F1(ERR)
 2.952 E F0 .451(trap is not e)2.701 F -.15(xe)-.15 G .451
 (cuted if the f).15 F .451(ailed command is part of the com-)-.1 F .387
-(mand list immediately follo)144 471.6 R .387(wing a)-.25 F F1(while)
-2.887 E F0(or)2.887 E F1(until)2.888 E F0 -.1(ke)2.888 G(yw)-.05 E .388
-(ord, part of the test in an)-.1 F F2(if)2.898 E F0 .388
-(statement, part)4.848 F .778(of a command e)144 483.6 R -.15(xe)-.15 G
-.778(cuted in a).15 F F1(&&)3.278 E F0(or)3.278 E F1(||)3.278 E F0 .778
+(mand list immediately follo)144 579.6 R .387(wing a)-.25 F F3(while)
+2.887 E F0(or)2.887 E F3(until)2.888 E F0 -.1(ke)2.888 G(yw)-.05 E .388
+(ord, part of the test in an)-.1 F F4(if)2.898 E F0 .388
+(statement, part)4.848 F .778(of a command e)144 591.6 R -.15(xe)-.15 G
+.778(cuted in a).15 F F3(&&)3.278 E F0(or)3.278 E F3(||)3.278 E F0 .778
 (list e)3.278 F .778(xcept the command follo)-.15 F .778
-(wing the \214nal)-.25 F F1(&&)3.278 E F0(or)3.278 E F1(||)3.277 E F0
-3.277(,a)C -.15(ny)-3.277 G 1.28(command in a pipeline b)144 495.6 R
+(wing the \214nal)-.25 F F3(&&)3.278 E F0(or)3.278 E F3(||)3.277 E F0
+3.277(,a)C -.15(ny)-3.277 G 1.28(command in a pipeline b)144 603.6 R
 1.28(ut the last, or if the command')-.2 F 3.78(sr)-.55 G 1.28(eturn v)
 -3.78 F 1.28(alue is being in)-.25 F -.15(ve)-.4 G 1.28(rted using).15 F
-F1(!)3.78 E F0(.)A(These are the same conditions obe)144 507.6 Q
-(yed by the)-.15 E F1(err)2.5 E(exit)-.18 E F0(\()2.5 E F1<ad65>A F0 2.5
+F3(!)3.78 E F0(.)A(These are the same conditions obe)144 615.6 Q
+(yed by the)-.15 E F3(err)2.5 E(exit)-.18 E F0(\()2.5 E F3<ad65>A F0 2.5
 (\)o)C(ption.)-2.5 E 1.095
 (Signals ignored upon entry to the shell cannot be trapped or reset.)144
-525.6 R -.35(Tr)6.095 G 1.095(apped signals that are not).35 F .662
-(being ignored are reset to their original v)144 537.6 R .662
+633.6 R -.35(Tr)6.095 G 1.095(apped signals that are not).35 F .662
+(being ignored are reset to their original v)144 645.6 R .662
 (alues in a subshell or subshell en)-.25 F .662(vironment when one is)
--.4 F 2.5(created. The)144 549.6 R(return status is f)2.5 E(alse if an)
--.1 E(y)-.15 E F2(sigspec)2.84 E F0(is in)2.81 E -.25(va)-.4 G
-(lid; otherwise).25 E F1(trap)2.5 E F0(returns true.)2.5 E F1(type)108
-566.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 578.4 S .174
-(th no options, indicate ho).4 F 2.674(we)-.25 G(ach)-2.674 E F2(name)
+-.4 F 2.5(created. The)144 657.6 R(return status is f)2.5 E(alse if an)
+-.1 E(y)-.15 E F4(sigspec)2.84 E F0(is in)2.81 E -.25(va)-.4 G
+(lid; otherwise).25 E F3(trap)2.5 E F0(returns true.)2.5 E F3(type)108
+674.4 Q F0([)2.5 E F3(\255aftpP)A F0(])A F4(name)2.5 E F0([)2.5 E F4
+(name)A F0(...])2.5 E -.4(Wi)144 686.4 S .174
+(th no options, indicate ho).4 F 2.674(we)-.25 G(ach)-2.674 E F4(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 590.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 602.4 Q F0 .087
+F3<ad74>144 698.4 Q F0 .842(option is used,)3.342 F F3(type)3.342 E F0
+.843(prints a string which is one of)3.343 F F4(alias)3.343 E F0(,).27 E
+F4 -.1(ke)3.343 G(ywor)-.2 E(d)-.37 E F0(,).77 E F4(function)3.343 E F0
+(,).24 E F4 -.2(bu)3.343 G(iltin).2 E F0 3.343(,o).24 G(r)-3.343 E F4
+(\214le)5.253 E F0(if)3.523 E F4(name)144.36 710.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
+(ve)-.25 G(ly).15 E 5.086(.I)-.65 G 2.586(ft)-5.086 G(he)-2.586 E F4
 (name)2.946 E F0 .086(is not)2.766 F .118
-(found, then nothing is printed, and an e)144 614.4 R .118
+(found, then nothing is printed, and an e)144 722.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 626.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
-638.4 R/F5 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 650.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 F5 .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 662.4 Q F1<ad50>3.23 E F0 .73(print the hashed v)3.23
-F .731
-(alue, which is not necessarily the \214le that appears \214rst in)-.25
-F F3 -.666(PA)3.231 G(TH)-.189 E F4(.)A F0 .731(If the)5.231 F F1<ad61>
-144 674.4 Q F0 1.749(option is used,)4.249 F F1(type)4.248 E F0 1.748
-(prints all of the places that contain an e)4.248 F -.15(xe)-.15 G 1.748
-(cutable named).15 F F2(name)4.248 E F0 6.748(.T).18 G(his)-6.748 E .744
-(includes aliases and functions, if and only if the)144 686.4 R F1<ad70>
-3.244 E F0 .744(option is not also used.)3.244 F .744
-(The table of hashed)5.744 F 1.223(commands is not consulted when using)
-144 698.4 R F1<ad61>3.723 E F0 6.223(.T)C(he)-6.223 E F1<ad66>3.723 E F0
-1.223(option suppresses shell function lookup, as)3.723 F .325(with the)
-144 710.4 R F1(command)2.825 E F0 -.2(bu)2.825 G(iltin.).2 E F1(type)
-5.325 E F0 .325(returns true if all of the ar)2.825 F .326
-(guments are found, f)-.18 F .326(alse if an)-.1 F 2.826(ya)-.15 G .326
-(re not)-2.826 F(found.)144 722.4 Q(GNU Bash 5.0)72 768 Q(2018 March 15)
-144.29 E(77)193.45 E 0 Cg EP
+F3<ad70>2.619 E F0 .119(option is used,)2.619 F F3(type)2.619 E F0
+(GNU Bash 5.0)72 768 Q(2018 August 7)145.395 E(77)194.555 E 0 Cg EP
 %%Page: 78 78
 %%BeginPageSetup
 BP
 %%EndPageSetup
 /F0 10/Times-Roman@0 SF -.35(BA)72 48 S 137.14(SH\(1\) General).35 F
-(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E/F1 10/Times-Bold@0
-SF(ulimit)108 84 Q F0([)2.5 E F1(\255HSabcde\214klmnpqrstuvxPT)A F0([)
-2.5 E/F2 10/Times-Italic@0 SF(limit)A F0(]])A(Pro)144 96 Q .244
-(vides control o)-.15 F -.15(ve)-.15 G 2.744(rt).15 G .244
+(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E .855
+(either returns the name of the disk \214le that w)144 84 R .855
+(ould be e)-.1 F -.15(xe)-.15 G .855(cuted if).15 F/F1 10/Times-Italic@0
+SF(name)3.715 E F0 .855(were speci\214ed as a com-)3.535 F .64
+(mand name, or nothing if)144 96 R/F2 10/Courier@0 SF .64(type -t name)
+3.14 F F0 -.1(wo)3.14 G .641(uld not return).1 F F1(\214le)3.141 E F0
+5.641(.T).18 G(he)-5.641 E/F3 10/Times-Bold@0 SF<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 108 R F1(name)2.613 E F0 2.613(,e)C -.15
+(ve)-2.863 G 2.613(ni).15 G(f)-2.613 E F2 .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(fa)-5.113 G .112(command is hashed,)-.001 F F3<ad70>2.612 E
+F0(and)144 120 Q F3<ad50>3.23 E F0 .73(print the hashed v)3.23 F .731
+(alue, which is not necessarily the \214le that appears \214rst in)-.25
+F F4 -.666(PA)3.231 G(TH)-.189 E/F5 9/Times-Roman@0 SF(.)A F0 .731
+(If the)5.231 F F3<ad61>144 132 Q F0 1.749(option is used,)4.249 F F3
+(type)4.248 E F0 1.748(prints all of the places that contain an e)4.248
+F -.15(xe)-.15 G 1.748(cutable named).15 F F1(name)4.248 E F0 6.748(.T)
+.18 G(his)-6.748 E .744
+(includes aliases and functions, if and only if the)144 144 R F3<ad70>
+3.244 E F0 .744(option is not also used.)3.244 F .744
+(The table of hashed)5.744 F 1.223(commands is not consulted when using)
+144 156 R F3<ad61>3.723 E F0 6.223(.T)C(he)-6.223 E F3<ad66>3.723 E F0
+1.223(option suppresses shell function lookup, as)3.723 F .325(with the)
+144 168 R F3(command)2.825 E F0 -.2(bu)2.825 G(iltin.).2 E F3(type)5.325
+E F0 .325(returns true if all of the ar)2.825 F .326
+(guments are found, f)-.18 F .326(alse if an)-.1 F 2.826(ya)-.15 G .326
+(re not)-2.826 F(found.)144 180 Q F3(ulimit)108 196.8 Q F0([)2.5 E F3
+(\255HSabcde\214klmnpqrstuvxPT)A F0([)2.5 E F1(limit)A F0(]])A(Pro)144
+208.8 Q .244(vides control o)-.15 F -.15(ve)-.15 G 2.744(rt).15 G .244
 (he resources a)-2.744 F -.25(va)-.2 G .244
 (ilable to the shell and to processes started by it, on systems).25 F
-.943(that allo)144 108 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
+.943(that allo)144 220.8 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
 (options specify that the hard or soft limit is set for the)3.444 F(gi)
-144 120 Q -.15(ve)-.25 G 2.709(nr).15 G 2.709(esource. A)-2.709 F .208(\
-hard limit cannot be increased by a non-root user once it is set; a sof\
-t limit may)2.709 F .425(be increased up to the v)144 132 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
+144 232.8 Q -.15(ve)-.25 G 2.709(nr).15 G 2.709(esource. A)-2.709 F .208
+(hard limit cannot be increased by a non-root user once it is set; a so\
+ft limit may)2.709 F .425(be increased up to the v)144 244.8 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
-144 R .139(The v)5.139 F .139(alue of)-.25 F F2(limit)2.729 E F0 .139
+256.8 R .139(The v)5.139 F .139(alue of)-.25 F F1(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 156 R(alues)-.25 E F1(hard)3.241 E F0(,)A F1
-(soft)3.241 E F0 3.241(,o)C(r)-3.241 E F1(unlimited)3.241 E F0 3.241(,w)
+.741(of the special v)144 268.8 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)
 C .741(hich stand for the current hard limit, the current)-3.241 F .78
-(soft limit, and no limit, respecti)144 168 R -.15(ve)-.25 G(ly).15 E
-5.78(.I)-.65 G(f)-5.78 E F2(limit)3.37 E F0 .78
+(soft limit, and no limit, respecti)144 280.8 R -.15(ve)-.25 G(ly).15 E
+5.78(.I)-.65 G(f)-5.78 E F1(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 180 R F1<ad48>2.999 E F0 .499
-(option is gi)2.999 F -.15(ve)-.25 G 2.999(n. When).15 F .499
+F .498(resource is printed, unless the)144 292.8 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
 (more than one resource is speci\214ed, the)2.999 F
-(limit name and unit are printed before the v)144 192 Q 2.5(alue. Other)
--.25 F(options are interpreted as follo)2.5 E(ws:)-.25 E F1<ad61>144 204
-Q F0(All current limits are reported)180 204 Q F1<ad62>144 216 Q F0
-(The maximum sock)180 216 Q(et b)-.1 E(uf)-.2 E(fer size)-.25 E F1<ad63>
-144 228 Q F0(The maximum size of core \214les created)180 228 Q F1<ad64>
-144 240 Q F0(The maximum size of a process')180 240 Q 2.5(sd)-.55 G
-(ata se)-2.5 E(gment)-.15 E F1<ad65>144 252 Q F0
-(The maximum scheduling priority \("nice"\))180 252 Q F1<ad66>144 264 Q
-F0(The maximum size of \214les written by the shell and its children)180
-264 Q F1<ad69>144 276 Q F0(The maximum number of pending signals)180 276
-Q F1<ad6b>144 288 Q F0
-(The maximum number of kqueues that may be allocated)180 288 Q F1<ad6c>
-144 300 Q F0(The maximum size that may be lock)180 300 Q(ed into memory)
--.1 E F1<ad6d>144 312 Q F0(The maximum resident set size \(man)180 312 Q
-2.5(ys)-.15 G(ystems do not honor this limit\))-2.5 E F1<ad6e>144 324 Q
-F0 .791(The maximum number of open \214le descriptors \(most systems do\
- not allo)180 324 R 3.29(wt)-.25 G .79(his v)-3.29 F .79(alue to)-.25 F
-(be set\))180 336 Q F1<ad70>144 348 Q F0
-(The pipe size in 512-byte blocks \(this may not be set\))180 348 Q F1
-<ad71>144 360 Q F0(The maximum number of bytes in POSIX message queues)
-180 360 Q F1<ad72>144 372 Q F0
-(The maximum real-time scheduling priority)180 372 Q F1<ad73>144 384 Q
-F0(The maximum stack size)180 384 Q F1<ad74>144 396 Q F0
-(The maximum amount of cpu time in seconds)180 396 Q F1<ad75>144 408 Q
-F0(The maximum number of processes a)180 408 Q -.25(va)-.2 G
-(ilable to a single user).25 E F1<ad76>144 420 Q F0 .47
-(The maximum amount of virtual memory a)180 420 R -.25(va)-.2 G .47
-(ilable to the shell and, on some systems, to).25 F(its children)180 432
-Q F1<ad78>144 444 Q F0(The maximum number of \214le locks)180 444 Q F1
-<ad50>144 456 Q F0(The maximum number of pseudoterminals)180 456 Q F1
-<ad54>144 468 Q F0(The maximum number of threads)180 468 Q(If)144 484.8
-Q F2(limit)3.058 E F0 .468(is gi)3.648 F -.15(ve)-.25 G .468(n, and the)
-.15 F F1<ad61>2.968 E F0 .468(option is not used,)2.968 F F2(limit)2.968
-E F0 .468(is the ne)2.968 F 2.968(wv)-.25 G .468
+(limit name and unit are printed before the v)144 304.8 Q 2.5
+(alue. Other)-.25 F(options are interpreted as follo)2.5 E(ws:)-.25 E F3
+<ad61>144 316.8 Q F0(All current limits are reported)180 316.8 Q F3
+<ad62>144 328.8 Q F0(The maximum sock)180 328.8 Q(et b)-.1 E(uf)-.2 E
+(fer size)-.25 E F3<ad63>144 340.8 Q F0
+(The maximum size of core \214les created)180 340.8 Q F3<ad64>144 352.8
+Q F0(The maximum size of a process')180 352.8 Q 2.5(sd)-.55 G(ata se)
+-2.5 E(gment)-.15 E F3<ad65>144 364.8 Q F0
+(The maximum scheduling priority \("nice"\))180 364.8 Q F3<ad66>144
+376.8 Q F0
+(The maximum size of \214les written by the shell and its children)180
+376.8 Q F3<ad69>144 388.8 Q F0(The maximum number of pending signals)180
+388.8 Q F3<ad6b>144 400.8 Q F0
+(The maximum number of kqueues that may be allocated)180 400.8 Q F3
+<ad6c>144 412.8 Q F0(The maximum size that may be lock)180 412.8 Q
+(ed into memory)-.1 E F3<ad6d>144 424.8 Q F0
+(The maximum resident set size \(man)180 424.8 Q 2.5(ys)-.15 G
+(ystems do not honor this limit\))-2.5 E F3<ad6e>144 436.8 Q F0 .791(Th\
+e maximum number of open \214le descriptors \(most systems do not allo)
+180 436.8 R 3.29(wt)-.25 G .79(his v)-3.29 F .79(alue to)-.25 F
+(be set\))180 448.8 Q F3<ad70>144 460.8 Q F0
+(The pipe size in 512-byte blocks \(this may not be set\))180 460.8 Q F3
+<ad71>144 472.8 Q F0
+(The maximum number of bytes in POSIX message queues)180 472.8 Q F3
+<ad72>144 484.8 Q F0(The maximum real-time scheduling priority)180 484.8
+Q F3<ad73>144 496.8 Q F0(The maximum stack size)180 496.8 Q F3<ad74>144
+508.8 Q F0(The maximum amount of cpu time in seconds)180 508.8 Q F3
+<ad75>144 520.8 Q F0(The maximum number of processes a)180 520.8 Q -.25
+(va)-.2 G(ilable to a single user).25 E F3<ad76>144 532.8 Q F0 .47
+(The maximum amount of virtual memory a)180 532.8 R -.25(va)-.2 G .47
+(ilable to the shell and, on some systems, to).25 F(its children)180
+544.8 Q F3<ad78>144 556.8 Q F0(The maximum number of \214le locks)180
+556.8 Q F3<ad50>144 568.8 Q F0(The maximum number of pseudoterminals)180
+568.8 Q F3<ad54>144 580.8 Q F0(The maximum number of threads)180 580.8 Q
+(If)144 597.6 Q F1(limit)3.058 E F0 .468(is gi)3.648 F -.15(ve)-.25 G
+.468(n, and the).15 F F3<ad61>2.968 E F0 .468(option is not used,)2.968
+F F1(limit)2.968 E F0 .468(is the ne)2.968 F 2.968(wv)-.25 G .468
 (alue of the speci\214ed resource.)-3.218 F(If)5.468 E .044
-(no option is gi)144 496.8 R -.15(ve)-.25 G .044(n, then).15 F F1<ad66>
+(no option is gi)144 609.6 R -.15(ve)-.25 G .044(n, then).15 F F3<ad66>
 2.544 E F0 .045(is assumed.)2.545 F -1.11(Va)5.045 G .045
-(lues are in 1024-byte increments, e)1.11 F .045(xcept for)-.15 F F1
+(lues are in 1024-byte increments, e)1.11 F .045(xcept for)-.15 F F3
 <ad74>2.545 E F0 2.545(,w)C .045(hich is)-2.545 F 1.589(in seconds;)144
-508.8 R F1<ad70>4.089 E F0 4.089(,w)C 1.589
-(hich is in units of 512-byte blocks;)-4.089 F F1<ad50>4.089 E F0(,)A F1
-<ad54>4.089 E F0(,)A F1<ad62>4.089 E F0(,)A F1<ad6b>4.089 E F0(,)A F1
-<ad6e>4.089 E F0 4.089(,a)C(nd)-4.089 E F1<ad75>4.089 E F0 4.088(,w)C
-1.588(hich are)-4.088 F 1.438(unscaled v)144 520.8 R 1.438
-(alues; and, when in Posix mode,)-.25 F F1<ad63>3.939 E F0(and)3.939 E
-F1<ad66>3.939 E F0 3.939(,w)C 1.439(hich are in 512-byte increments.)
--3.939 F(The)6.439 E .404(return status is 0 unless an in)144 532.8 R
+621.6 R F3<ad70>4.089 E F0 4.089(,w)C 1.589
+(hich is in units of 512-byte blocks;)-4.089 F F3<ad50>4.089 E F0(,)A F3
+<ad54>4.089 E F0(,)A F3<ad62>4.089 E F0(,)A F3<ad6b>4.089 E F0(,)A F3
+<ad6e>4.089 E F0 4.089(,a)C(nd)-4.089 E F3<ad75>4.089 E F0 4.088(,w)C
+1.588(hich are)-4.088 F 1.476(unscaled v)144 633.6 R 1.476
+(alues; and, when in posix mode,)-.25 F F3<ad63>3.976 E F0(and)3.976 E
+F3<ad66>3.976 E F0 3.976(,w)C 1.476(hich are in 512-byte increments.)
+-3.976 F(The)6.476 E .404(return status is 0 unless an in)144 645.6 R
 -.25(va)-.4 G .404(lid option or ar).25 F .404
 (gument is supplied, or an error occurs while setting)-.18 F 2.5(an)144
-544.8 S .5 -.25(ew l)-2.5 H(imit.).25 E F1(umask)108 561.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 573.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
+657.6 S .5 -.25(ew l)-2.5 H(imit.).25 E F3(umask)108 674.4 Q F0([)2.5 E
+F3<ad70>A F0 2.5(][)C F3<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 686.4 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
 (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 585.6 R F2 -.15(ch)2.566 G(mod).15 E F0(\(1\).).77 E(If)144
-597.6 Q F2(mode)3.262 E F0 .382(is omitted, the current v)3.062 F .382
-(alue of the mask is printed.)-.25 F(The)5.382 E F1<ad53>2.882 E F0 .382
+pted by)144 698.4 R F1 -.15(ch)2.566 G(mod).15 E F0(\(1\).).77 E(If)144
+710.4 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 F3<ad53>2.882 E F0 .382
 (option causes the mask to be)2.882 F .547
-(printed in symbolic form; the def)144 609.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 F1<ad70>3.047 E F0 .547(option is supplied, and)3.047 F F2
-(mode)144.38 621.6 Q F0 .551
+(he)-3.047 E F3<ad70>3.047 E F0 .547(option is supplied, and)3.047 F
+(GNU Bash 5.0)72 768 Q(2018 August 7)145.395 E(78)194.555 E 0 Cg EP
+%%Page: 79 79
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 137.14(SH\(1\) General).35 F
+(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E/F1 10
+/Times-Italic@0 SF(mode)144.38 84 Q F0 .551
 (is omitted, the output is in a form that may be reused as input.)3.231
-F .552(The return status is 0 if the)5.552 F(mode w)144 633.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 650.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 662.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 674.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 691.2 Q F0<5bad>2.5 E F1
-(fv)A F0 2.5(][)C<ad>-2.5 E F1(n)A F0 2.5(][)C F2(name)-2.5 E F0(...])
-2.5 E -.15(Fo)144 703.2 S 3.827(re).15 G(ach)-3.827 E F2(name)3.827 E F0
+F .552(The return status is 0 if the)5.552 F(mode w)144 96 Q
+(as successfully changed or if no)-.1 E F1(mode)2.5 E F0(ar)2.5 E
+(gument w)-.18 E(as supplied, and f)-.1 E(alse otherwise.)-.1 E/F2 10
+/Times-Bold@0 SF(unalias)108 112.8 Q F0<5bad>2.5 E F2(a)A F0 2.5(][)C F1
+(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 153.6 Q F0<5bad>2.5 E F2
+(fv)A F0 2.5(][)C<ad>-2.5 E F2(n)A F0 2.5(][)C F1(name)-2.5 E F0(...])
+2.5 E -.15(Fo)144 165.6 S 3.827(re).15 G(ach)-3.827 E F1(name)3.827 E F0
 3.827(,r).18 G(emo)-3.827 E 1.627 -.15(ve t)-.15 H 1.327
 (he corresponding v).15 F 1.327(ariable or function.)-.25 F 1.327
-(If the)6.327 F F1<ad76>3.828 E F0 1.328(option is gi)3.828 F -.15(ve)
--.25 G 1.328(n, each).15 F F2(name)144.36 715.2 Q F0 1.551
+(If the)6.327 F F2<ad76>3.828 E F0 1.328(option is gi)3.828 F -.15(ve)
+-.25 G 1.328(n, each).15 F F1(name)144.36 177.6 Q F0 1.551
 (refers to a shell v)4.231 F 1.551(ariable, and that v)-.25 F 1.551
 (ariable is remo)-.25 F -.15(ve)-.15 G 4.05(d. Read-only).15 F -.25(va)
-4.05 G 1.55(riables may not be).25 F 4.641(unset. If)144 727.2 R F1
-<ad66>4.641 E F0 2.141(is speci\214ed, each)4.641 F F2(name)5.001 E F0
+4.05 G 1.55(riables may not be).25 F 4.641(unset. If)144 189.6 R F2
+<ad66>4.641 E F0 2.141(is speci\214ed, each)4.641 F F1(name)5.001 E F0
 2.141(refers to a shell function, and the function de\214nition is)4.821
-F(GNU Bash 5.0)72 768 Q(2018 March 15)144.29 E(78)193.45 E 0 Cg EP
-%%Page: 79 79
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 137.14(SH\(1\) General).35 F
-(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E(remo)144 84 Q -.15
-(ve)-.15 G 2.538(d. If).15 F(the)2.537 E/F1 10/Times-Bold@0 SF<ad6e>
-2.537 E F0 .037(option is supplied, and)2.537 F/F2 10/Times-Italic@0 SF
-(name)2.537 E F0 .037(is a v)2.537 F .037(ariable with the)-.25 F F2
-(namer)2.537 E(ef)-.37 E F0(attrib)2.537 E(ute,)-.2 E F2(name)2.537 E F0
-(will)2.537 E .492(be unset rather than the v)144 96 R .492
-(ariable it references.)-.25 F F1<ad6e>5.492 E F0 .492(has no ef)2.992 F
-.492(fect if the)-.25 F F1<ad66>2.992 E F0 .492(option is supplied.)
-2.992 F .493(If no)5.493 F .221(options are supplied, each)144 108 R F2
-(name)2.721 E F0 .221(refers to a v)2.721 F .22
-(ariable; if there is no v)-.25 F .22(ariable by that name, an)-.25 F
-2.72(yf)-.15 G(unc-)-2.72 E 1.188(tion with that name is unset.)144 120
-R 1.189(Each unset v)6.189 F 1.189(ariable or function is remo)-.25 F
--.15(ve)-.15 G 3.689(df).15 G 1.189(rom the en)-3.689 F(vironment)-.4 E
-3.206(passed to subsequent commands.)144 132 R 3.206(If an)8.206 F 5.706
+F(remo)144 201.6 Q -.15(ve)-.15 G 2.538(d. If).15 F(the)2.537 E F2<ad6e>
+2.537 E F0 .037(option is supplied, and)2.537 F F1(name)2.537 E F0 .037
+(is a v)2.537 F .037(ariable with the)-.25 F F1(namer)2.537 E(ef)-.37 E
+F0(attrib)2.537 E(ute,)-.2 E F1(name)2.537 E F0(will)2.537 E .492
+(be unset rather than the v)144 213.6 R .492(ariable it references.)-.25
+F F2<ad6e>5.492 E F0 .492(has no ef)2.992 F .492(fect if the)-.25 F F2
+<ad66>2.992 E F0 .492(option is supplied.)2.992 F .493(If no)5.493 F
+.221(options are supplied, each)144 225.6 R F1(name)2.721 E F0 .221
+(refers to a v)2.721 F .22(ariable; if there is no v)-.25 F .22
+(ariable by that name, an)-.25 F 2.72(yf)-.15 G(unc-)-2.72 E 1.188
+(tion with that name is unset.)144 237.6 R 1.189(Each unset v)6.189 F
+1.189(ariable or function is remo)-.25 F -.15(ve)-.15 G 3.689(df).15 G
+1.189(rom the en)-3.689 F(vironment)-.4 E 3.206
+(passed to subsequent commands.)144 249.6 R 3.206(If an)8.206 F 5.706
 (yo)-.15 G(f)-5.706 E/F3 9/Times-Bold@0 SF(COMP_W)5.706 E(ORDBREAKS)-.09
 E/F4 9/Times-Roman@0 SF(,)A F3(RANDOM)5.455 E F4(,)A F3(SECONDS)5.455 E
-F4(,)A F3(LINENO)144 144 Q F4(,)A F3(HISTCMD)4.347 E F4(,)A F3(FUNCN)
+F4(,)A F3(LINENO)144 261.6 Q F4(,)A F3(HISTCMD)4.347 E F4(,)A F3(FUNCN)
 4.347 E(AME)-.18 E F4(,)A F3(GR)4.347 E(OUPS)-.27 E F4(,)A F0(or)4.348 E
 F3(DIRST)4.598 E -.495(AC)-.81 G(K).495 E F0 2.098(are unset, the)4.348
-F 4.598(yl)-.15 G 2.098(ose their special)-4.598 F(properties, e)144 156
-Q -.15(ve)-.25 G 2.5(ni).15 G 2.5(ft)-2.5 G(he)-2.5 E 2.5(ya)-.15 G
-(re subsequently reset.)-2.5 E(The e)5 E(xit status is true unless a)
--.15 E F2(name)2.86 E F0(is readonly)2.68 E(.)-.65 E F1(wait)108 172.8 Q
-F0([)2.5 E F1(\255fn)A F0 2.5(][)C F2(id ...)-2.5 E F0(])A -.8(Wa)144
-184.8 S .659(it for each speci\214ed child process and return its termi\
-nation status.).8 F(Each)5.659 E F2(id)3.169 E F0 .658(may be a process)
-3.928 F .008(ID or a job speci\214cation; if a job spec is gi)144 196.8
+F 4.598(yl)-.15 G 2.098(ose their special)-4.598 F(properties, e)144
+273.6 Q -.15(ve)-.25 G 2.5(ni).15 G 2.5(ft)-2.5 G(he)-2.5 E 2.5(ya)-.15
+G(re subsequently reset.)-2.5 E(The e)5 E(xit status is true unless a)
+-.15 E F1(name)2.86 E F0(is readonly)2.68 E(.)-.65 E F2(wait)108 290.4 Q
+F0([)2.5 E F2(\255fn)A F0 2.5(][)C F1(id ...)-2.5 E F0(])A -.8(Wa)144
+302.4 S .659(it for each speci\214ed child process and return its termi\
+nation status.).8 F(Each)5.659 E F1(id)3.169 E F0 .658(may be a process)
+3.928 F .008(ID or a job speci\214cation; if a job spec is gi)144 314.4
 R -.15(ve)-.25 G .009(n, all processes in that job').15 F 2.509(sp)-.55
 G .009(ipeline are w)-2.509 F .009(aited for)-.1 F 5.009(.I)-.55 G(f)
--5.009 E F2(id)144.01 208.8 Q F0 .522(is not gi)3.792 F -.15(ve)-.25 G
+-5.009 E F1(id)144.01 326.4 Q F0 .522(is not gi)3.792 F -.15(ve)-.25 G
 .521(n, all currently acti).15 F .821 -.15(ve c)-.25 H .521
 (hild processes are w).15 F .521(aited for)-.1 F 3.021(,a)-.4 G .521
-(nd the return status is zero.)-3.021 F(If)5.521 E(the)144 220.8 Q F1
-<ad6e>3.056 E F0 .556(option is supplied,)3.056 F F1(wait)3.057 E F0 -.1
+(nd the return status is zero.)-3.021 F(If)5.521 E(the)144 338.4 Q F2
+<ad6e>3.056 E F0 .556(option is supplied,)3.056 F F2(wait)3.057 E F0 -.1
 (wa)3.057 G .557(its for an).1 F 3.057(yj)-.15 G .557
 (ob to terminate and returns its e)-3.057 F .557(xit status.)-.15 F .557
-(If the)5.557 F F1<ad66>3.057 E F0 .587
-(option is supplied, and job control is enabled,)144 232.8 R F1(wait)
-3.086 E F0(forces)3.086 E F2(id)3.086 E F0 .586
+(If the)5.557 F F2<ad66>3.057 E F0 .587
+(option is supplied, and job control is enabled,)144 350.4 R F2(wait)
+3.086 E F0(forces)3.086 E F1(id)3.086 E F0 .586
 (to terminate before returning its sta-)3.086 F .755
-(tus, instead of returning when it changes status.)144 244.8 R(If)5.756
-E F2(id)3.266 E F0 .756(speci\214es a non-e)4.026 F .756
-(xistent process or job, the)-.15 F .365(return status is 127.)144 256.8
+(tus, instead of returning when it changes status.)144 362.4 R(If)5.756
+E F1(id)3.266 E F0 .756(speci\214es a non-e)4.026 F .756
+(xistent process or job, the)-.15 F .365(return status is 127.)144 374.4
 R .365(Otherwise, the return status is the e)5.365 F .365
 (xit status of the last process or job w)-.15 F(aited)-.1 E(for)144
-268.8 Q(.)-.55 E/F5 10.95/Times-Bold@0 SF(RESTRICTED SHELL)72 285.6 Q F0
-(If)108 297.6 Q F1(bash)4.396 E F0 1.896(is started with the name)4.396
-F F1(rbash)4.397 E F0 4.397(,o)C 4.397(rt)-4.397 G(he)-4.397 E F1<ad72>
+386.4 Q(.)-.55 E/F5 10.95/Times-Bold@0 SF(RESTRICTED SHELL)72 403.2 Q F0
+(If)108 415.2 Q F2(bash)4.396 E F0 1.896(is started with the name)4.396
+F F2(rbash)4.397 E F0 4.397(,o)C 4.397(rt)-4.397 G(he)-4.397 E F2<ad72>
 4.397 E F0 1.897(option is supplied at in)4.397 F -.2(vo)-.4 G 1.897
-(cation, the shell becomes).2 F 3.446(restricted. A)108 309.6 R .945
+(cation, the shell becomes).2 F 3.446(restricted. A)108 427.2 R .945
 (restricted shell is used to set up an en)3.446 F .945
 (vironment more controlled than the standard shell.)-.4 F(It)5.945 E
-(beha)108 321.6 Q -.15(ve)-.2 G 2.5(si).15 G(dentically to)-2.5 E F1
+(beha)108 439.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<83>108 338.4 Q
-(changing directories with)144 338.4 Q F1(cd)2.5 E F0<83>108 355.2 Q
-(setting or unsetting the v)144 355.2 Q(alues of)-.25 E F3(SHELL)2.5 E
+(wing are disallo)-.25 E(wed or not performed:)-.25 E<83>108 456 Q
+(changing directories with)144 456 Q F2(cd)2.5 E F0<83>108 472.8 Q
+(setting or unsetting the v)144 472.8 Q(alues of)-.25 E F3(SHELL)2.5 E
 F4(,)A F3 -.666(PA)2.25 G(TH)-.189 E F4(,)A F3(ENV)2.25 E F4(,)A F0(or)
-2.25 E F3 -.27(BA)2.5 G(SH_ENV).27 E F0<83>108 372 Q
-(specifying command names containing)144 372 Q F1(/)2.5 E F0<83>108
-388.8 Q(specifying a \214lename containing a)144 388.8 Q F1(/)2.5 E F0
-(as an ar)2.5 E(gument to the)-.18 E F1(.)2.5 E F0 -.2(bu)5 G
-(iltin command).2 E<83>108 405.6 Q .449
-(specifying a \214lename containing a slash as an ar)144 405.6 R .449
-(gument to the)-.18 F F1<ad70>2.95 E F0 .45(option to the)2.95 F F1
-(hash)2.95 E F0 -.2(bu)2.95 G .45(iltin com-).2 F(mand)144 417.6 Q<83>
-108 434.4 Q(importing function de\214nitions from the shell en)144 434.4
-Q(vironment at startup)-.4 E<83>108 451.2 Q(parsing the v)144 451.2 Q
+2.25 E F3 -.27(BA)2.5 G(SH_ENV).27 E F0<83>108 489.6 Q
+(specifying command names containing)144 489.6 Q F2(/)2.5 E F0<83>108
+506.4 Q(specifying a \214lename containing a)144 506.4 Q 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<83>108 523.2 Q .449
+(specifying a \214lename containing a slash as an ar)144 523.2 R .449
+(gument to the)-.18 F F2<ad70>2.95 E F0 .45(option to the)2.95 F F2
+(hash)2.95 E F0 -.2(bu)2.95 G .45(iltin com-).2 F(mand)144 535.2 Q<83>
+108 552 Q(importing function de\214nitions from the shell en)144 552 Q
+(vironment at startup)-.4 E<83>108 568.8 Q(parsing the v)144 568.8 Q
 (alue of)-.25 E F3(SHELLOPTS)2.5 E F0(from the shell en)2.25 E
-(vironment at startup)-.4 E<83>108 468 Q(redirecting output using the >\
-, >|, <>, >&, &>, and >> redirection operators)144 468 Q<83>108 484.8 Q
-(using the)144 484.8 Q F1(exec)2.5 E F0 -.2(bu)2.5 G
+(vironment at startup)-.4 E<83>108 585.6 Q(redirecting output using the\
+ >, >|, <>, >&, &>, and >> redirection operators)144 585.6 Q<83>108
+602.4 Q(using the)144 602.4 Q F2(exec)2.5 E F0 -.2(bu)2.5 G
 (iltin command to replace the shell with another command).2 E<83>108
-501.6 Q(adding or deleting b)144 501.6 Q(uiltin commands with the)-.2 E
-F1<ad66>2.5 E F0(and)2.5 E F1<ad64>2.5 E F0(options to the)2.5 E F1
-(enable)2.5 E F0 -.2(bu)2.5 G(iltin command).2 E<83>108 518.4 Q
-(using the)144 518.4 Q F1(enable)2.5 E F0 -.2(bu)2.5 G
+619.2 Q(adding or deleting b)144 619.2 Q(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<83>108 636 Q(using the)
+144 636 Q F2(enable)2.5 E F0 -.2(bu)2.5 G
 (iltin command to enable disabled shell b).2 E(uiltins)-.2 E<83>108
-535.2 Q(specifying the)144 535.2 Q F1<ad70>2.5 E F0(option to the)2.5 E
-F1(command)2.5 E F0 -.2(bu)2.5 G(iltin command).2 E<83>108 552 Q
-(turning of)144 552 Q 2.5(fr)-.25 G(estricted mode with)-2.5 E F1
-(set +r)2.5 E F0(or)2.5 E F1(set +o r)2.5 E(estricted)-.18 E F0(.)A
-(These restrictions are enforced after an)108 568.8 Q 2.5(ys)-.15 G
+652.8 Q(specifying the)144 652.8 Q 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<83>108 669.6 Q
+(turning of)144 669.6 Q 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 686.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 585.6 R -.15
+(When a command that is found to be a shell script is e)108 703.2 R -.15
 (xe)-.15 G 1.566(cuted \(see).15 F F3 1.566(COMMAND EXECUTION)4.066 F F0
-(abo)3.816 E -.15(ve)-.15 G(\),).15 E F1(rbash)108 597.6 Q F0(turns of)
+(abo)3.816 E -.15(ve)-.15 G(\),).15 E F2(rbash)108 715.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
-614.4 Q F2(Bash Refer)108 626.4 Q(ence Manual)-.37 E F0 2.5(,B)C(rian F)
--2.5 E(ox and Chet Rame)-.15 E(y)-.15 E F2(The Gnu Readline Libr)108
-638.4 Q(ary)-.15 E F0 2.5(,B)C(rian F)-2.5 E(ox and Chet Rame)-.15 E(y)
--.15 E F2(The Gnu History Libr)108 650.4 Q(ary)-.15 E F0 2.5(,B)C
-(rian F)-2.5 E(ox and Chet Rame)-.15 E(y)-.15 E F2 -.8(Po)108 662.4 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
-(http://pubs.opengroup.or)144 674.4 Q(g/onlinepubs/9699919799/)-.18 E
-(http://tiswww)108 686.4 Q
-(.case.edu/~chet/bash/POSIX -- a description of posix mode)-.65 E F2(sh)
-108 698.4 Q F0(\(1\),)A F2(ksh)2.5 E F0(\(1\),)A F2(csh)2.5 E F0(\(1\))A
-(GNU Bash 5.0)72 768 Q(2018 March 15)144.29 E(79)193.45 E 0 Cg EP
+E(wned to e)-.15 E -.15(xe)-.15 G(cute the script.).15 E(GNU Bash 5.0)72
+768 Q(2018 August 7)145.395 E(79)194.555 E 0 Cg EP
 %%Page: 80 80
 %%BeginPageSetup
 BP
 %%EndPageSetup
 /F0 10/Times-Roman@0 SF -.35(BA)72 48 S 137.14(SH\(1\) General).35 F
-(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E/F1 10
-/Times-Italic@0 SF(emacs)108 84 Q F0(\(1\),)A F1(vi)2.5 E F0(\(1\))A F1
--.37(re)108 96 S(adline).37 E F0(\(3\))A/F2 10.95/Times-Bold@0 SF(FILES)
-72 112.8 Q F1(/bin/bash)109.666 124.8 Q F0(The)144 136.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 148.8 Q(o\214le)-.45 E F0
-(The systemwide initialization \214le, e)144 160.8 Q -.15(xe)-.15 G
-(cuted for login shells).15 E F1(~/.bash_pr)109.666 172.8 Q(o\214le)-.45
-E F0(The personal initialization \214le, e)144 184.8 Q -.15(xe)-.15 G
-(cuted for login shells).15 E F1(~/.bashr)109.666 196.8 Q(c)-.37 E F0
-(The indi)144 208.8 Q(vidual per)-.25 E(-interacti)-.2 E -.15(ve)-.25 G
-(-shell startup \214le).15 E F1(~/.bash_lo)109.666 220.8 Q(gout)-.1 E F0
-(The indi)144 232.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 244.8 Q(c)-.37 E F0(Indi)144 256.8 Q(vidual)-.25 E F1 -.37(re)
-2.5 G(adline).37 E F0(initialization \214le)2.5 E F2 -.548(AU)72 273.6 S
-(THORS).548 E F0(Brian F)108 285.6 Q(ox, Free Softw)-.15 E(are F)-.1 E
-(oundation)-.15 E(bfox@gnu.or)108 297.6 Q(g)-.18 E(Chet Rame)108 314.4 Q
+(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E/F1 10.95
+/Times-Bold@0 SF(SEE ALSO)72 84 Q/F2 10/Times-Italic@0 SF(Bash Refer)108
+96 Q(ence Manual)-.37 E F0 2.5(,B)C(rian F)-2.5 E(ox and Chet Rame)-.15
+E(y)-.15 E F2(The Gnu Readline Libr)108 108 Q(ary)-.15 E F0 2.5(,B)C
+(rian F)-2.5 E(ox and Chet Rame)-.15 E(y)-.15 E F2(The Gnu History Libr)
+108 120 Q(ary)-.15 E F0 2.5(,B)C(rian F)-2.5 E(ox and Chet Rame)-.15 E
+(y)-.15 E F2 -.8(Po)108 132 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(http://pubs.opengroup.or)144 144 Q
+(g/onlinepubs/9699919799/)-.18 E(http://tiswww)108 156 Q
+(.case.edu/~chet/bash/POSIX -- a description of posix mode)-.65 E F2(sh)
+108 168 Q F0(\(1\),)A F2(ksh)2.5 E F0(\(1\),)A F2(csh)2.5 E F0(\(1\))A
+F2(emacs)108 180 Q F0(\(1\),)A F2(vi)2.5 E F0(\(1\))A F2 -.37(re)108 192
+S(adline).37 E F0(\(3\))A F1(FILES)72 208.8 Q F2(/bin/bash)109.666 220.8
+Q F0(The)144 232.8 Q/F3 10/Times-Bold@0 SF(bash)2.5 E F0 -.15(exe)2.5 G
+(cutable).15 E F2(/etc/pr)109.666 244.8 Q(o\214le)-.45 E F0
+(The systemwide initialization \214le, e)144 256.8 Q -.15(xe)-.15 G
+(cuted for login shells).15 E F2(~/.bash_pr)109.666 268.8 Q(o\214le)-.45
+E F0(The personal initialization \214le, e)144 280.8 Q -.15(xe)-.15 G
+(cuted for login shells).15 E F2(~/.bashr)109.666 292.8 Q(c)-.37 E F0
+(The indi)144 304.8 Q(vidual per)-.25 E(-interacti)-.2 E -.15(ve)-.25 G
+(-shell startup \214le).15 E F2(~/.bash_lo)109.666 316.8 Q(gout)-.1 E F0
+(The indi)144 328.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 F2(~/.inputr)
+109.666 340.8 Q(c)-.37 E F0(Indi)144 352.8 Q(vidual)-.25 E F2 -.37(re)
+2.5 G(adline).37 E F0(initialization \214le)2.5 E F1 -.548(AU)72 369.6 S
+(THORS).548 E F0(Brian F)108 381.6 Q(ox, Free Softw)-.15 E(are F)-.1 E
+(oundation)-.15 E(bfox@gnu.or)108 393.6 Q(g)-.18 E(Chet Rame)108 410.4 Q
 1.3 -.65(y, C)-.15 H(ase W).65 E(estern Reserv)-.8 E 2.5(eU)-.15 G(ni)
--2.5 E -.15(ve)-.25 G(rsity).15 E(chet.rame)108 326.4 Q(y@case.edu)-.15
-E F2 -.11(BU)72 343.2 S 2.738(GR).11 G(EPOR)-2.738 E(TS)-.438 E F0 .567
-(If you \214nd a b)108 355.2 R .568(ug in)-.2 F F3(bash,)3.068 E F0 .568
+-2.5 E -.15(ve)-.25 G(rsity).15 E(chet.rame)108 422.4 Q(y@case.edu)-.15
+E F1 -.11(BU)72 439.2 S 2.738(GR).11 G(EPOR)-2.738 E(TS)-.438 E F0 .567
+(If you \214nd a b)108 451.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 .568(ug, and)-.2
-F 5.626(that it appears in the latest v)108 367.2 R 5.625(ersion of)-.15
+F 5.626(that it appears in the latest v)108 463.2 R 5.625(ersion of)-.15
 F F3(bash)8.125 E F0 10.625(.T)C 5.625(he latest v)-10.625 F 5.625
 (ersion is al)-.15 F -.1(wa)-.1 G 5.625(ys a).1 F -.25(va)-.2 G 5.625
-(ilable from).25 F F1(ftp://ftp.gnu.or)108 379.2 Q(g/pub/gnu/bash/)-.37
-E F0(.)A .41(Once you ha)108 396 R .71 -.15(ve d)-.2 H .41
+(ilable from).25 F F2(ftp://ftp.gnu.or)108 475.2 Q(g/pub/gnu/bash/)-.37
+E F0(.)A .41(Once you ha)108 492 R .71 -.15(ve d)-.2 H .41
 (etermined that a b).15 F .41(ug actually e)-.2 F .411(xists, use the)
--.15 F F1(bashb)3.181 E(ug)-.2 E F0 .411(command to submit a b)3.131 F
-.411(ug report.)-.2 F(If)5.411 E .595(you ha)108 408 R .895 -.15
+-.15 F F2(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 504 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 420 Q F1 -.2(bu)2.5 G(g-bash@gnu.or).2 E(g)-.37 E F0
+(be mailed to)108 516 Q F2 -.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 436.8 Q(ug reports should include:)-.2 E(The v)
-108 453.6 Q(ersion number of)-.15 E F3(bash)2.5 E F0(The hardw)108 465.6
-Q(are and operating system)-.1 E(The compiler used to compile)108 477.6
-Q 2.5(Ad)108 489.6 S(escription of the b)-2.5 E(ug beha)-.2 E(viour)-.2
-E 2.5(As)108 501.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 518.4 Q(ug)-.2 E F0
+-.2 E F0(.)A(ALL b)108 532.8 Q(ug reports should include:)-.2 E(The v)
+108 549.6 Q(ersion number of)-.15 E F3(bash)2.5 E F0(The hardw)108 561.6
+Q(are and operating system)-.1 E(The compiler used to compile)108 573.6
+Q 2.5(Ad)108 585.6 S(escription of the b)-2.5 E(ug beha)-.2 E(viour)-.2
+E 2.5(As)108 597.6 S(hort script or `recipe' which e)-2.5 E -.15(xe)-.15
+G(rcises the b).15 E(ug)-.2 E F2(bashb)108.27 614.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
-535.2 Q(ug reports concerning this manual page should be directed to)-.2
-E F1 -.15(ch)2.5 G(et.r).15 E(ame)-.15 E(y@case)-.3 E(.edu)-.15 E F0(.)
-.25 E F2 -.11(BU)72 552 S(GS).11 E F0(It')108 564 Q 2.5(st)-.55 G
+631.2 Q(ug reports concerning this manual page should be directed to)-.2
+E F2 -.15(ch)2.5 G(et.r).15 E(ame)-.15 E(y@case)-.3 E(.edu)-.15 E F0(.)
+.25 E F1 -.11(BU)72 648 S(GS).11 E F0(It')108 660 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 580.8 R 1.868(ferences between)-.25 F F3
+(There are some subtle dif)108 676.8 R 1.868(ferences between)-.25 F F3
 (bash)4.369 E F0 1.869(and traditional v)4.369 F 1.869(ersions of)-.15 F
 F3(sh)4.369 E F0 4.369(,m)C 1.869(ostly because of the)-4.369 F/F4 9
-/Times-Bold@0 SF(POSIX)108 592.8 Q F0(speci\214cation.)2.25 E
-(Aliases are confusing in some uses.)108 609.6 Q(Shell b)108 626.4 Q
+/Times-Bold@0 SF(POSIX)108 688.8 Q F0(speci\214cation.)2.25 E
+(Aliases are confusing in some uses.)108 705.6 Q(Shell b)108 722.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 643.2 R .389
-(process suspension is attempted.)108 655.2 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 667.2 R .192(It suf)5.193 F .192(\214ces to place the sequence of c\
-ommands between parentheses to force it into a)-.25 F
-(subshell, which may be stopped as a unit.)108 679.2 Q(Array v)108 696 Q
-(ariables may not \(yet\) be e)-.25 E(xported.)-.15 E
-(There may be only one acti)108 712.8 Q .3 -.15(ve c)-.25 H
-(oprocess at a time.).15 E(GNU Bash 5.0)72 768 Q(2018 March 15)144.29 E
-(80)193.45 E 0 Cg EP
+(GNU Bash 5.0)72 768 Q(2018 August 7)145.395 E(80)194.555 E 0 Cg EP
+%%Page: 81 81
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 137.14(SH\(1\) General).35 F
+(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E 1.315(Compound co\
+mmands and command sequences of the form `a ; b ; c' are not handled gr\
+acefully when)108 84 R .389(process suspension is attempted.)108 96 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 108 R .192(It suf)5.193 F .192(\214ces to pl\
+ace the sequence of commands between parentheses to force it into a)-.25
+F(subshell, which may be stopped as a unit.)108 120 Q(Array v)108 136.8
+Q(ariables may not \(yet\) be e)-.25 E(xported.)-.15 E
+(There may be only one acti)108 153.6 Q .3 -.15(ve c)-.25 H
+(oprocess at a time.).15 E(GNU Bash 5.0)72 768 Q(2018 August 7)145.395 E
+(81)194.555 E 0 Cg EP
 %%Trailer
 end
 %%EOF
index f79cc8ed553fb622081d28a5b54a28aa92ee0617..a270d0826976253eab6db8ad387f582652255536 100644 (file)
Binary files a/doc/bashref.dvi and b/doc/bashref.dvi differ
index f494f344e7fa21eb227baa7c40b87310bc0566c0..13d9294c175889753e8aa2bfa7190f7940a3de1e 100644 (file)
@@ -1,9 +1,9 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 <html>
 <!-- This text is a brief description of the features that are present in
-the Bash shell (version 5.0, 15 March 2018).
+the Bash shell (version 5.0, 7 August 2018).
 
-This is Edition 5.0, last updated 15 March 2018,
+This is Edition 5.0, last updated 7 August 2018,
 of The GNU Bash Reference Manual,
 for Bash, Version 5.0.
 
@@ -284,10 +284,10 @@ Next: <a href="#Introduction" accesskey="n" rel="next">Introduction</a>, Previou
 <h1 class="top">Bash Features</h1>
 
 <p>This text is a brief description of the features that are present in
-the Bash shell (version 5.0, 15 March 2018).
+the Bash shell (version 5.0, 7 August 2018).
 The Bash home page is <a href="http://www.gnu.org/software/bash/">http://www.gnu.org/software/bash/</a>.
 </p>
-<p>This is Edition 5.0, last updated 15 March 2018,
+<p>This is Edition 5.0, last updated 7 August 2018,
 of <cite>The GNU Bash Reference Manual</cite>,
 for <code>Bash</code>, Version 5.0.
 </p>
@@ -1297,7 +1297,9 @@ zero if no condition tested true.
 <p>The syntax of the <code>case</code> command is:
 </p>
 <div class="example">
-<pre class="example">case <var>word</var> in [ [(] <var>pattern</var> [| <var>pattern</var>]&hellip;) <var>command-list</var> ;;]&hellip; esac
+<pre class="example">case <var>word</var> in
+    [ [(] <var>pattern</var> [| <var>pattern</var>]&hellip;) <var>command-list</var> ;;]&hellip;
+esac
 </pre></div>
 
 <p><code>case</code> will selectively execute the <var>command-list</var> corresponding to
@@ -1443,14 +1445,15 @@ If the <code>nocasematch</code> shell option
 is enabled, the match is performed without regard to the case
 of alphabetic characters.
 The return value is 0 if the string matches (&lsquo;<samp>==</samp>&rsquo;) or does not
-match (&lsquo;<samp>!=</samp>&rsquo;)the pattern, and 1 otherwise.
+match (&lsquo;<samp>!=</samp>&rsquo;) the pattern, and 1 otherwise.
 Any part of the pattern may be quoted to force the quoted portion
 to be matched as a string.
 </p>
 <p>An additional binary operator, &lsquo;<samp>=~</samp>&rsquo;, is available, with the same
 precedence as &lsquo;<samp>==</samp>&rsquo; and &lsquo;<samp>!=</samp>&rsquo;.
 When it is used, the string to the right of the operator is considered
-an extended regular expression and matched accordingly (as in <i>regex</i>3)).
+a <small>POSIX</small> extended regular expression and matched accordingly
+(as in <i>regex</i>3)).
 The return value is 0 if the string matches
 the pattern, and 1 otherwise.
 If the regular expression is syntactically incorrect, the conditional
@@ -1722,7 +1725,8 @@ from a file (in this case, filenames listed one per line):
 
 <p>with a more compact syntax reminiscent of lambdas:
 </p><div class="example">
-<pre class="example">cat list | parallel &quot;do-something1 {} config-{} ; do-something2 &lt; {}&quot; | process-output
+<pre class="example">cat list | parallel &quot;do-something1 {} config-{} ; do-something2 &lt; {}&quot; |
+           process-output
 </pre></div>
 
 <p>Parallel provides a built-in mechanism to remove filename extensions, which
@@ -1744,12 +1748,20 @@ written as
 <p>If a command generates output, you may want to preserve the input order in
 the output.  For instance, the following command
 </p><div class="example">
-<pre class="example">{ echo foss.org.my ; echo debian.org; echo freenetproject.org; } | parallel traceroute
+<pre class="example">{
+    echo foss.org.my ;
+    echo debian.org ;
+    echo freenetproject.org ;
+} | parallel traceroute
 </pre></div>
 <p>will display as output the traceroute invocation that finishes first.
 Adding the <samp>-k</samp> option 
 </p><div class="example">
-<pre class="example">{ echo foss.org.my ; echo debian.org; echo freenetproject.org; } | parallel -k traceroute
+<pre class="example">{
+    echo foss.org.my ;
+    echo debian.org ;
+    echo freenetproject.org ;
+} | parallel -k traceroute
 </pre></div>
 <p>will ensure that the output of <code>traceroute foss.org.my</code> is displayed first.
 </p>
@@ -2126,8 +2138,16 @@ separators.
 <a name="index-_0040"></a>
 </dt>
 <dd><a name="index-_0024_0040"></a>
-<p>($@) Expands to the positional parameters, starting from one.  When the
-expansion occurs within double quotes, each parameter expands to a
+<p>($@) Expands to the positional parameters, starting from one.
+In contexts where word splitting is performed, this expands each
+positional parameter to a separate word; if not within double
+quotes, these words are subject to word splitting.
+In contexts where word splitting is not performed,
+this expands to a single word
+with each positional parameter separated by a space.
+When the
+expansion occurs within double quotes, and word splitting is performed,
+each parameter expands to a
 separate word.  That is, <code>&quot;$@&quot;</code> is equivalent to
 <code>&quot;$1&quot; &quot;$2&quot; &hellip;</code>.
 If the double-quoted expansion occurs within a word, the expansion of
@@ -2446,6 +2466,12 @@ and the shell assigns the expanded value.
 </p></dd>
 </dl>
 
+<p>Bash also performs tilde expansion on words satisfying the conditions of
+variable assignments (see <a href="#Shell-Parameters">Shell Parameters</a>)
+when they appear as arguments to simple commands.
+Bash does not do this, except for the <var>declaration</var> commands listed
+above, when in <small>POSIX</small> mode.
+</p>
 <hr>
 <a name="Shell-Parameter-Expansion"></a>
 <div class="header">
@@ -2480,11 +2506,11 @@ interpreted as part of its name.
 </p>
 <p>If the first character of <var>parameter</var> is an exclamation point (!),
 and <var>parameter</var> is not a <var>nameref</var>,
-it introduces a level of variable indirection.
-Bash uses the value of the variable formed from the rest of
-<var>parameter</var> 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 <var>parameter</var> itself.
+it introduces a level of indirection.
+Bash uses the value formed by expanding the rest of
+<var>parameter</var> as the new <var>parameter</var>; this is then
+expanded and that value is used in the rest of the expansion, rather
+than the expansion of the original <var>parameter</var>.
 This is known as <code>indirect expansion</code>.
 The value is subject to tilde expansion,
 parameter expansion, command substitution, and arithmetic expansion.
@@ -5078,8 +5104,8 @@ parent.
 <dt><code>mapfile</code></dt>
 <dd><a name="index-mapfile"></a>
 <div class="example">
-<pre class="example">mapfile [-d <var>delim</var>] [-n <var>count</var>] [-O <var>origin</var>] [-s <var>count</var>] [-t] [-u <var>fd</var>]
-    [-C <var>callback</var>] [-c <var>quantum</var>] [<var>array</var>]
+<pre class="example">mapfile [-d <var>delim</var>] [-n <var>count</var>] [-O <var>origin</var>] [-s <var>count</var>]
+    [-t] [-u <var>fd</var>] [-C <var>callback</var>] [-c <var>quantum</var>] [<var>array</var>]
 </pre></div>
 
 <p>Read lines from the standard input into the indexed array variable <var>array</var>,
@@ -5309,8 +5335,8 @@ The exit status is greater than 128 if the timeout is exceeded.
 <dt><code>readarray</code></dt>
 <dd><a name="index-readarray"></a>
 <div class="example">
-<pre class="example">readarray [-d <var>delim</var>] [-n <var>count</var>] [-O <var>origin</var>] [-s <var>count</var>] [-t] [-u <var>fd</var>]
-    [-C <var>callback</var>] [-c <var>quantum</var>] [<var>array</var>]
+<pre class="example">readarray [-d <var>delim</var>] [-n <var>count</var>] [-O <var>origin</var>] [-s <var>count</var>]
+    [-t] [-u <var>fd</var>] [-C <var>callback</var>] [-c <var>quantum</var>] [<var>array</var>]
 </pre></div>
 
 <p>Read lines from the standard input into the indexed array variable <var>array</var>,
@@ -6574,7 +6600,8 @@ The shell sets <code>BASH_ARGC</code> only when in extended debugging mode
 (see <a href="#The-Shopt-Builtin">The Shopt Builtin</a>
 for a description of the <code>extdebug</code> option to the <code>shopt</code>
 builtin).
-Setting <code>extdebug</code> after the shell has started to execute a script
+Setting <code>extdebug</code> after the shell has started to execute a script,
+or referencing this variable when <code>extdebug</code> is not set,
 may result in inconsistent values.
 </p>
 </dd>
@@ -6590,7 +6617,8 @@ The shell sets <code>BASH_ARGV</code> only when in extended debugging mode
 (see <a href="#The-Shopt-Builtin">The Shopt Builtin</a>
 for a description of the <code>extdebug</code> option to the <code>shopt</code>
 builtin).
-Setting <code>extdebug</code> after the shell has started to execute a script
+Setting <code>extdebug</code> after the shell has started to execute a script,
+or referencing this variable when <code>extdebug</code> is not set,
 may result in inconsistent values.
 </p>
 </dd>
@@ -7180,7 +7208,7 @@ as the sole input.  If set, the value denotes the number
 of consecutive <code>EOF</code> characters that can be read as the
 first character on an input line
 before the shell will exit.  If the variable exists but does not
-have a numeric value (or has no value) then the default is 10.
+have a numeric value, or has no value, then the default is 10.
 If the variable does not exist, then <code>EOF</code> signifies the end of 
 input to the shell.  This is only in effect for interactive shells.
 </p>
@@ -7192,6 +7220,14 @@ input to the shell.  This is only in effect for interactive shells.
 of <samp>~/.inputrc</samp>.
 </p>
 </dd>
+<dt><code>INSIDE_EMACS</code>
+<a name="index-INSIDE_005fEMACS"></a>
+</dt>
+<dd><p>If Bash finds this variable in the environment when the shell
+starts, it assumes that the shell is running in an Emacs shell buffer
+and may disable line editing depending on the value of <code>TERM</code>.
+</p>
+</dd>
 <dt><code>LANG</code>
 <a name="index-LANG"></a>
 </dt>
@@ -7324,7 +7360,9 @@ as if the command
 </p><div class="example">
 <pre class="example"><code>set -o posix</code>
 </pre></div>
-<p>had been executed.  
+<p>had been executed.
+When the shell enters <small>POSIX</small> mode, it sets this variable if it was
+not already set.
 </p>
 </dd>
 <dt><code>PPID</code>
@@ -7583,9 +7621,12 @@ Next: <a href="#Bash-Startup-Files" accesskey="n" rel="next">Bash Startup Files<
 <h3 class="section">6.1 Invoking Bash</h3>
 
 <div class="example">
-<pre class="example">bash [long-opt] [-ir] [-abefhkmnptuvxdBCDHP] [-o <var>option</var>] [-O <var>shopt_option</var>] [<var>argument</var> &hellip;]
-bash [long-opt] [-abefhkmnptuvxdBCDHP] [-o <var>option</var>] [-O <var>shopt_option</var>] -c <var>string</var> [<var>argument</var> &hellip;]
-bash [long-opt] -s [-abefhkmnptuvxdBCDHP] [-o <var>option</var>] [-O <var>shopt_option</var>] [<var>argument</var> &hellip;]
+<pre class="example">bash [long-opt] [-ir] [-abefhkmnptuvxdBCDHP] [-o <var>option</var>]
+    [-O <var>shopt_option</var>] [<var>argument</var> &hellip;]
+bash [long-opt] [-abefhkmnptuvxdBCDHP] [-o <var>option</var>]
+    [-O <var>shopt_option</var>] -c <var>string</var> [<var>argument</var> &hellip;]
+bash [long-opt] -s [-abefhkmnptuvxdBCDHP] [-o <var>option</var>]
+    [-O <var>shopt_option</var>] [<var>argument</var> &hellip;]
 </pre></div>
 
 <p>All of the single-character options used with the <code>set</code> builtin
@@ -8014,7 +8055,7 @@ when a shell with history enabled exits.
 (see <a href="#Signals">Signals</a>).
 
 </li><li> In the absence of any traps, <code>SIGINT</code> is caught and handled
-((see <a href="#Signals">Signals</a>).
+(see <a href="#Signals">Signals</a>).
 <code>SIGINT</code> will interrupt some shell builtins.
 
 </li><li> An interactive login shell sends a <code>SIGHUP</code> to all jobs on exit
@@ -8843,7 +8884,7 @@ shell session.
 <p>After the string is decoded, it is expanded via
 parameter expansion, command substitution, arithmetic
 expansion, and quote removal, subject to the value of the
-<code>promptvars</code> shell option (see <a href="#Bash-Builtins">Bash Builtins</a>).
+<code>promptvars</code> shell option (see <a href="#The-Shopt-Builtin">The Shopt Builtin</a>).
 </p>
 <hr>
 <a name="The-Restricted-Shell"></a>
@@ -8913,7 +8954,9 @@ startup files.
 <p>The following list is what&rsquo;s changed when &lsquo;<small>POSIX</small> mode&rsquo; is in effect:
 </p>
 <ol>
-<li> When a command in the hash table no longer exists, Bash will re-search
+<li> Bash ensures that the <code>POSIXLY_CORRECT</code> variable is set.
+
+</li><li> When a command in the hash table no longer exists, Bash will re-search
 <code>$PATH</code> to find the new location.  This is also available with
 &lsquo;<samp>shopt -s checkhash</samp>&rsquo;.
 
@@ -10004,6 +10047,7 @@ The default value is &lsquo;<samp>off</samp>&rsquo;.
 <p>If set to &lsquo;<samp>on</samp>&rsquo;, and <var>completion-ignore-case</var> is enabled, Readline
 treats hyphens (&lsquo;<samp>-</samp>&rsquo;) and underscores (&lsquo;<samp>_</samp>&rsquo;) as equivalent when
 performing case-insensitive filename matching and completion.
+The default value is &lsquo;<samp>off</samp>&rsquo;.
 </p>
 </dd>
 <dt><code>completion-prefix-display-length</code></dt>
@@ -10365,7 +10409,7 @@ Meta-Rubout: backward-kill-word
 Control-o: &quot;&gt; output&quot;
 </pre></div>
 
-<p>In the above example, <kbd>C-u</kbd> is bound to the function
+<p>In the example above, <kbd>C-u</kbd> is bound to the function
 <code>universal-argument</code>,
 <kbd>M-DEL</kbd> is bound to the function <code>backward-kill-word</code>, and
 <kbd>C-o</kbd> is bound to run the macro
@@ -11068,7 +11112,7 @@ how to insert key sequences like <kbd>C-q</kbd>, for example.
 sequence sent by some terminals, and such a binding is assigned by default.
 It allows Readline to insert the pasted text as a single unit without treating
 each character as if it had been read from the keyboard.  The characters
-are inserted as if each one was bound to <code>self-insert</code>) instead of
+are inserted as if each one was bound to <code>self-insert</code> instead of
 executing any editing commands.
 </p>
 </dd>
@@ -11973,10 +12017,10 @@ matches were generated.
 <dt><code>complete</code></dt>
 <dd><a name="index-complete"></a>
 <div class="example">
-<pre class="example"><code>complete [-abcdefgjksuv] [-o <var>comp-option</var>] [-DE] [-A <var>action</var>] [-G <var>globpat</var>] [-W <var>wordlist</var>]
-[-F <var>function</var>] [-C <var>command</var>] [-X <var>filterpat</var>]
+<pre class="example"><code>complete [-abcdefgjksuv] [-o <var>comp-option</var>] [-DEI] [-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> &hellip;]</code>
-<code>complete -pr [-DE] [<var>name</var> &hellip;]</code>
+<code>complete -pr [-DEI] [<var>name</var> &hellip;]</code>
 </pre></div>
 
 <p>Specify how arguments to each <var>name</var> should be completed.
@@ -11986,16 +12030,24 @@ reused as input.
 The <samp>-r</samp> option removes a completion specification for
 each <var>name</var>, or, if no <var>name</var>s are supplied, all
 completion specifications.
-The <samp>-D</samp> option indicates that the remaining options and actions should
+The <samp>-D</samp> option indicates that other supplied options and actions should
 apply to the &ldquo;default&rdquo; command completion; that is, completion attempted
 on a command for which no completion has previously been defined.
-The <samp>-E</samp> option indicates that the remaining options and actions should
+The <samp>-E</samp> option indicates that other supplied options and actions should
 apply to &ldquo;empty&rdquo; command completion; that is, completion attempted on a 
 blank line.
+The <samp>-I</samp> option indicates that other supplied options and actions should
+apply to completion on the inital non-assignment word on the line, or after a
+command delimiter such as &lsquo;<samp>;</samp>&rsquo; or &lsquo;<samp>|</samp>&rsquo;, which is usually command
+name completion.
+If multiple options are supplied, the <samp>-D</samp> option takes precedence
+over <samp>-E</samp>, and both take precedence over <samp>-I</samp>.
+If any of <samp>-D</samp>, <samp>-E</samp>, or <samp>-I</samp> are supplied, any other
+<var>name</var> arguments are ignored; these completions only apply to the case
+specified by the option.
 </p>
 <p>The process of applying these completion specifications when word completion
-is attempted is described above (see <a href="#Programmable-Completion">Programmable Completion</a>).  The
-<samp>-D</samp> option takes precedence over <samp>-E</samp>.
+is attempted is described above (see <a href="#Programmable-Completion">Programmable Completion</a>).
 </p>
 <p>Other options, if specified, have the following meanings.
 The arguments to the <samp>-G</samp>, <samp>-W</samp>, and <samp>-X</samp> options
@@ -12027,7 +12079,7 @@ no matches.
 </dd>
 <dt><code>filenames</code></dt>
 <dd><p>Tell Readline that the compspec generates filenames, so it can perform any
-filename-specific processing (like adding a slash to directory names
+filename-specific processing (like adding a slash to directory names,
 quoting special characters, or suppressing trailing spaces).
 This option is intended to be used with shell functions specified
 with <samp>-F</samp>.
@@ -12221,7 +12273,7 @@ an error occurs adding a completion specification.
 <dt><code>compopt</code></dt>
 <dd><a name="index-compopt"></a>
 <div class="example">
-<pre class="example"><code>compopt</code> [-o <var>option</var>] [-DE] [+o <var>option</var>] [<var>name</var>]
+<pre class="example"><code>compopt</code> [-o <var>option</var>] [-DEI] [+o <var>option</var>] [<var>name</var>]
 </pre></div>
 <p>Modify completion options for each <var>name</var> according to the
 <var>option</var>s, or for the currently-executing completion if no <var>name</var>s
@@ -12230,14 +12282,19 @@ 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.
-The <samp>-D</samp> option indicates that the remaining options should
+The <samp>-D</samp> option indicates that other supplied options should
 apply to the &ldquo;default&rdquo; command completion; that is, completion attempted
 on a command for which no completion has previously been defined.
-The <samp>-E</samp> option indicates that the remaining options should
+The <samp>-E</samp> option indicates that other supplied options should
 apply to &ldquo;empty&rdquo; command completion; that is, completion attempted on a 
 blank line.
+The <samp>-I</samp> option indicates that other supplied options should
+apply to completion on the inital non-assignment word on the line, or after a
+command delimiter such as &lsquo;<samp>;</samp>&rsquo; or &lsquo;<samp>|</samp>&rsquo;, which is usually command
+name completion.
 </p>
-<p>The <samp>-D</samp> option takes precedence over <samp>-E</samp>.
+<p>If multiple options are supplied, the <samp>-D</samp> option takes precedence
+over <samp>-E</samp>, and both take precedence over <samp>-I</samp>
 </p>
 <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
@@ -12291,7 +12348,7 @@ _comp_cd()
     local cur _skipdot _cdpath
     local i j k
 
-    # Tilde expansion, with side effect of expanding tilde to full pathname
+    # Tilde expansion, which also expands tilde to full pathname
     case &quot;$2&quot; in
     \~*)    eval cur=&quot;$2&quot; ;;
     *)      cur=$2 ;;
@@ -12626,8 +12683,8 @@ fix errors in previous commands quickly.
 </p>
 <p>History expansion is performed immediately after a complete line
 is read, before the shell breaks it into words, and is performed
-on each line individually without taking quoting on previous lines into
-account.
+on each line individually.  Bash attempts to inform the history
+expansion functions about quoting still in effect from previous lines.
 </p>
 <p>History expansion takes place in two parts.  The first is to determine
 which line from the history list should be used during substitution.
@@ -12640,8 +12697,18 @@ that Bash does, so that several words
 surrounded by quotes are considered one word.
 History expansions are introduced by the appearance of the
 history expansion character, which is &lsquo;<samp>!</samp>&rsquo; by default.
-Only &lsquo;<samp>\</samp>&rsquo; and &lsquo;<samp>'</samp>&rsquo; may be used to escape the history expansion
-character, but the history expansion character is
+</p>
+<p>History expansion implements shell-like quoting conventions:
+a backslash can be used to remove the special handling for the next character;
+single quotes enclose verbatim sequences of characters, and can be used to
+inhibit history expansion;
+and characters enclosed within double quotes may be subject to history
+expansion, since backslash can escape the history expansion character,
+but single quotes may not, since they are not treated specially within
+double quotes.
+</p>
+<p>When using the shell, only &lsquo;<samp>\</samp>&rsquo; and &lsquo;<samp>'</samp>&rsquo; may be used to escape the
+history expansion character, but the history expansion character is
 also treated as quoted if it immediately precedes the closing double quote
 in a double-quoted string. 
 </p>
@@ -13285,7 +13352,7 @@ compiled and linked, rather than changing run-time features.
 </p>
 <dl compact="compact">
 <dt><code>--enable-largefile</code></dt>
-<dd><p>Enable support for <a href="http://www.sas.com/standards/large_file/x_open.20Mar96.html">large files</a> if the operating system requires special compiler options
+<dd><p>Enable support for <a href="http://www.unix.org/version2/whatsnew/lfs20mar.html">large files</a> if the operating system requires special compiler options
 to build programs which can access large files.  This is enabled by
 default, if the operating system provides large file support.
 </p>
@@ -14991,6 +15058,7 @@ Next: <a href="#Function-Index" accesskey="n" rel="next">Function Index</a>, Pre
 <tr><td></td><td valign="top"><a href="#index-IGNOREEOF"><code>IGNOREEOF</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="#Bash-Variables">Bash Variables</a></td></tr>
 <tr><td></td><td valign="top"><a href="#index-input_002dmeta"><code>input-meta</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="#Readline-Init-File-Syntax">Readline Init File Syntax</a></td></tr>
 <tr><td></td><td valign="top"><a href="#index-INPUTRC"><code>INPUTRC</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="#Bash-Variables">Bash Variables</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-INSIDE_005fEMACS"><code>INSIDE_EMACS</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="#Bash-Variables">Bash Variables</a></td></tr>
 <tr><td></td><td valign="top"><a href="#index-isearch_002dterminators"><code>isearch-terminators</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="#Readline-Init-File-Syntax">Readline Init File Syntax</a></td></tr>
 <tr><td colspan="4"> <hr></td></tr>
 <tr><th><a name="Variable-Index_vr_letter-K">K</a></th><td></td><td></td></tr>
index 29dd0effe718f032683ac65a73e3b48ad87b8460..866163df1b80cf55f58f8c22bb27b44bbdaad9c1 100644 (file)
@@ -2,9 +2,9 @@ This is bashref.info, produced by makeinfo version 6.5 from
 bashref.texi.
 
 This text is a brief description of the features that are present in the
-Bash shell (version 5.0, 15 March 2018).
+Bash shell (version 5.0, 7 August 2018).
 
-   This is Edition 5.0, last updated 15 March 2018, of 'The GNU Bash
+   This is Edition 5.0, last updated 7 August 2018, of 'The GNU Bash
 Reference Manual', for 'Bash', Version 5.0.
 
    Copyright (C) 1988-2018 Free Software Foundation, Inc.
@@ -27,10 +27,10 @@ Bash Features
 *************
 
 This text is a brief description of the features that are present in the
-Bash shell (version 5.0, 15 March 2018).  The Bash home page is
+Bash shell (version 5.0, 7 August 2018).  The Bash home page is
 <http://www.gnu.org/software/bash/>.
 
-   This is Edition 5.0, last updated 15 March 2018, of 'The GNU Bash
+   This is Edition 5.0, last updated 7 August 2018, of 'The GNU Bash
 Reference Manual', for 'Bash', Version 5.0.
 
    Bash contains features that appear in other popular shells, and some
@@ -768,7 +768,9 @@ File: bashref.info,  Node: Conditional Constructs,  Next: Command Grouping,  Pre
 'case'
      The syntax of the 'case' command is:
 
-          case WORD in [ [(] PATTERN [| PATTERN]...) COMMAND-LIST ;;]... esac
+          case WORD in
+              [ [(] PATTERN [| PATTERN]...) COMMAND-LIST ;;]...
+          esac
 
      'case' will selectively execute the COMMAND-LIST corresponding to
      the first PATTERN that matches WORD.  The match is performed
@@ -883,30 +885,30 @@ File: bashref.info,  Node: Conditional Constructs,  Next: Command Grouping,  Pre
      'shopt' in *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 be
-     quoted to force the quoted portion to be matched as a string.
+     ('!=') the pattern, and 1 otherwise.  Any part of the pattern may
+     be quoted to force the quoted portion to be matched as a string.
 
      An additional binary operator, '=~', is available, with the same
      precedence as '==' and '!='.  When it is used, the string to the
-     right of the operator is considered an extended regular expression
-     and matched accordingly (as in regex3)).  The return value is 0 if
-     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 'nocasematch' shell option (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 the
-     quoted portion to be matched as a string.  Bracket expressions in
-     regular expressions must be treated carefully, since normal quoting
-     characters lose their meanings between brackets.  If the pattern is
-     stored in a shell variable, quoting the variable expansion forces
-     the entire pattern to be matched as a string.  Substrings matched
-     by parenthesized subexpressions within the regular expression are
-     saved in the array variable 'BASH_REMATCH'.  The element of
-     'BASH_REMATCH' with index 0 is the portion of the string matching
-     the entire regular expression.  The element of 'BASH_REMATCH' with
-     index N is the portion of the string matching the Nth parenthesized
-     subexpression.
+     right of the operator is considered a POSIX extended regular
+     expression and matched accordingly (as in regex3)).  The return
+     value is 0 if 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 'nocasematch' shell option
+     (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 the quoted portion to be matched as a string.  Bracket
+     expressions in regular expressions must be treated carefully, since
+     normal quoting characters lose their meanings between brackets.  If
+     the pattern is stored in a shell variable, quoting the variable
+     expansion forces the entire pattern to be matched as a string.
+     Substrings matched by parenthesized subexpressions within the
+     regular expression are saved in the array variable 'BASH_REMATCH'.
+     The element of 'BASH_REMATCH' with index 0 is the portion of the
+     string matching the entire regular expression.  The element of
+     'BASH_REMATCH' with index N is the portion of the string matching
+     the Nth parenthesized subexpression.
 
      For example, the following will match a line (stored in the shell
      variable LINE) if there is a sequence of characters in the value
@@ -1103,7 +1105,8 @@ read from a file (in this case, filenames listed one per line):
        done < file | process-output
 
 with a more compact syntax reminiscent of lambdas:
-     cat list | parallel "do-something1 {} config-{} ; do-something2 < {}" | process-output
+     cat list | parallel "do-something1 {} config-{} ; do-something2 < {}" |
+                process-output
 
    Parallel provides a built-in mechanism to remove filename extensions,
 which lends itself to batch file transformations or renaming:
@@ -1118,10 +1121,18 @@ take arguments from the command line; the above can also be written as
 
    If a command generates output, you may want to preserve the input
 order in the output.  For instance, the following command
-     { echo foss.org.my ; echo debian.org; echo freenetproject.org; } | parallel traceroute
+     {
+         echo foss.org.my ;
+         echo debian.org ;
+         echo freenetproject.org ;
+     } | parallel traceroute
 will display as output the traceroute invocation that finishes first.
 Adding the '-k' option
-     { echo foss.org.my ; echo debian.org; echo freenetproject.org; } | parallel -k traceroute
+     {
+         echo foss.org.my ;
+         echo debian.org ;
+         echo freenetproject.org ;
+     } | parallel -k traceroute
 will ensure that the output of 'traceroute foss.org.my' is displayed
 first.
 
@@ -1406,15 +1417,21 @@ only be referenced; assignment to them is not allowed.
      is null, the parameters are joined without intervening separators.
 
 '@'
-     ($@) Expands to the positional parameters, starting from one.  When
-     the expansion occurs within double quotes, each parameter expands
-     to a separate word.  That is, '"$@"' is equivalent to '"$1" "$2"
-     ...'.  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.  When there are no
-     positional parameters, '"$@"' and '$@' expand to nothing (i.e.,
-     they are removed).
+     ($@) Expands to the positional parameters, starting from one.  In
+     contexts where word splitting is performed, this expands each
+     positional parameter to a separate word; if not within double
+     quotes, these words are subject to word splitting.  In contexts
+     where word splitting is not performed, this expands to a single
+     word with each positional parameter separated by a space.  When the
+     expansion occurs within double quotes, and word splitting is
+     performed, each parameter expands to a separate word.  That is,
+     '"$@"' is equivalent to '"$1" "$2" ...'.  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.  When there are no positional
+     parameters, '"$@"' and '$@' expand to nothing (i.e., they are
+     removed).
 
 '#'
      ($#) Expands to the number of positional parameters in decimal.
@@ -1628,6 +1645,11 @@ assigns the expanded value.
 '~-N'
      The string that would be displayed by 'dirs -N'
 
+   Bash also performs tilde expansion on words satisfying the conditions
+of variable assignments (*note Shell Parameters::) when they appear as
+arguments to simple commands.  Bash does not do this, except for the
+DECLARATION commands listed above, when in POSIX mode.
+
 \1f
 File: bashref.info,  Node: Shell Parameter Expansion,  Next: Command Substitution,  Prev: Tilde Expansion,  Up: Shell Expansions
 
@@ -1653,18 +1675,17 @@ parameter with more than one digit, or when PARAMETER is followed by a
 character that is not to be interpreted as part of its name.
 
    If the first character of PARAMETER is an exclamation point (!), and
-PARAMETER is not a NAMEREF, it introduces a level of variable
-indirection.  Bash uses the value of the variable formed from the rest
-of PARAMETER 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 PARAMETER itself.  This is known as 'indirect expansion'.  The
-value is subject to tilde expansion, parameter expansion, command
-substitution, and arithmetic expansion.  If PARAMETER is a nameref, this
-expands to the name of the variable referenced by PARAMETER instead of
-performing the complete indirect expansion.  The exceptions to this are
-the expansions of ${!PREFIX*} and ${!NAME[@]} described below.  The
-exclamation point must immediately follow the left brace in order to
-introduce indirection.
+PARAMETER is not a NAMEREF, it introduces a level of indirection.  Bash
+uses the value formed by expanding the rest of PARAMETER as the new
+PARAMETER; this is then expanded and that value is used in the rest of
+the expansion, rather than the expansion of the original PARAMETER.
+This is known as 'indirect expansion'.  The value is subject to tilde
+expansion, parameter expansion, command substitution, and arithmetic
+expansion.  If PARAMETER is a nameref, this expands to the name of the
+variable referenced by PARAMETER instead of performing the complete
+indirect expansion.  The exceptions to this are the expansions of
+${!PREFIX*} and ${!NAME[@]} described below.  The exclamation point must
+immediately follow the left brace in order to introduce indirection.
 
    In each of the cases below, WORD is subject to tilde expansion,
 parameter expansion, command substitution, and arithmetic expansion.
@@ -3662,8 +3683,8 @@ standard.
      Exit a login shell, returning a status of N to the shell's parent.
 
 'mapfile'
-          mapfile [-d DELIM] [-n COUNT] [-O ORIGIN] [-s COUNT] [-t] [-u FD]
-              [-C CALLBACK] [-c QUANTUM] [ARRAY]
+          mapfile [-d DELIM] [-n COUNT] [-O ORIGIN] [-s COUNT]
+              [-t] [-u FD] [-C CALLBACK] [-c QUANTUM] [ARRAY]
 
      Read lines from the standard input into the indexed array variable
      ARRAY, or from file descriptor FD if the '-u' option is supplied.
@@ -3846,8 +3867,8 @@ standard.
           Read input from file descriptor FD.
 
 'readarray'
-          readarray [-d DELIM] [-n COUNT] [-O ORIGIN] [-s COUNT] [-t] [-u FD]
-              [-C CALLBACK] [-c QUANTUM] [ARRAY]
+          readarray [-d DELIM] [-n COUNT] [-O ORIGIN] [-s COUNT]
+              [-t] [-u FD] [-C CALLBACK] [-c QUANTUM] [ARRAY]
 
      Read lines from the standard input into the indexed array variable
      ARRAY, or from file descriptor FD if the '-u' option is supplied.
@@ -4826,7 +4847,8 @@ Variables::).
      onto 'BASH_ARGC'.  The shell sets 'BASH_ARGC' only when in extended
      debugging mode (see *note The Shopt Builtin:: for a description of
      the 'extdebug' option to the 'shopt' builtin).  Setting 'extdebug'
-     after the shell has started to execute a script may result in
+     after the shell has started to execute a script, or referencing
+     this variable when 'extdebug' is not set, may result in
      inconsistent values.
 
 'BASH_ARGV'
@@ -4838,7 +4860,8 @@ Variables::).
      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).  Setting 'extdebug' after the shell has
-     started to execute a script may result in inconsistent values.
+     started to execute a script, or referencing this variable when
+     'extdebug' is not set, may result in inconsistent values.
 
 'BASH_ARGV0'
      When referenced, this variable expands to the name of the shell or
@@ -5228,7 +5251,7 @@ Variables::).
      as the sole input.  If set, the value denotes the number of
      consecutive 'EOF' characters that can be read as the first
      character on an input line before the shell will exit.  If the
-     variable exists but does not have a numeric value (or has no value)
+     variable exists but does not have a numeric value, or has no value,
      then the default is 10.  If the variable does not exist, then 'EOF'
      signifies the end of input to the shell.  This is only in effect
      for interactive shells.
@@ -5237,6 +5260,12 @@ Variables::).
      The name of the Readline initialization file, overriding the
      default of '~/.inputrc'.
 
+'INSIDE_EMACS'
+     If Bash finds this variable in the environment when the shell
+     starts, it assumes that the shell is running in an Emacs shell
+     buffer and may disable line editing depending on the value of
+     'TERM'.
+
 'LANG'
      Used to determine the locale category for any category not
      specifically selected with a variable starting with 'LC_'.
@@ -5317,7 +5346,8 @@ Variables::).
      supplied.  If it is set while the shell is running, Bash enables
      POSIX mode, as if the command
           set -o posix
-     had been executed.
+     had been executed.  When the shell enters POSIX mode, it sets this
+     variable if it was not already set.
 
 'PPID'
      The process ID of the shell's parent process.  This variable is
@@ -5484,9 +5514,12 @@ File: bashref.info,  Node: Invoking Bash,  Next: Bash Startup Files,  Up: Bash F
 6.1 Invoking Bash
 =================
 
-     bash [long-opt] [-ir] [-abefhkmnptuvxdBCDHP] [-o OPTION] [-O SHOPT_OPTION] [ARGUMENT ...]
-     bash [long-opt] [-abefhkmnptuvxdBCDHP] [-o OPTION] [-O SHOPT_OPTION] -c STRING [ARGUMENT ...]
-     bash [long-opt] -s [-abefhkmnptuvxdBCDHP] [-o OPTION] [-O SHOPT_OPTION] [ARGUMENT ...]
+     bash [long-opt] [-ir] [-abefhkmnptuvxdBCDHP] [-o OPTION]
+         [-O SHOPT_OPTION] [ARGUMENT ...]
+     bash [long-opt] [-abefhkmnptuvxdBCDHP] [-o OPTION]
+         [-O SHOPT_OPTION] -c STRING [ARGUMENT ...]
+     bash [long-opt] -s [-abefhkmnptuvxdBCDHP] [-o OPTION]
+         [-O SHOPT_OPTION] [ARGUMENT ...]
 
    All of the single-character options used with the 'set' builtin
 (*note The Set Builtin::) can be used as options when the shell is
@@ -5832,8 +5865,8 @@ several ways.
   9. In the absence of any traps, Bash ignores 'SIGTERM' (*note
      Signals::).
 
-  10. In the absence of any traps, 'SIGINT' is caught and handled
-     ((*note Signals::).  'SIGINT' will interrupt some shell builtins.
+  10. In the absence of any traps, 'SIGINT' is caught and handled (*note
+     Signals::).  'SIGINT' will interrupt some shell builtins.
 
   11. An interactive login shell sends a 'SIGHUP' to all jobs on exit if
      the 'huponexit' shell option has been enabled (*note Signals::).
@@ -6453,7 +6486,8 @@ of commands executed during the current shell session.
 
    After the string is decoded, it is expanded via parameter expansion,
 command substitution, arithmetic expansion, and quote removal, subject
-to the value of the 'promptvars' shell option (*note Bash Builtins::).
+to the value of the 'promptvars' shell option (*note The Shopt
+Builtin::).
 
 \1f
 File: bashref.info,  Node: The Restricted Shell,  Next: Bash POSIX Mode,  Prev: Controlling the Prompt,  Up: Bash Features
@@ -6511,212 +6545,214 @@ startup files.
 
    The following list is what's changed when 'POSIX mode' is in effect:
 
-  1. When a command in the hash table no longer exists, Bash will
+  1. Bash ensures that the 'POSIXLY_CORRECT' variable is set.
+
+  2. When a command in the hash table no longer exists, Bash will
      re-search '$PATH' to find the new location.  This is also available
      with 'shopt -s checkhash'.
 
-  2. The message printed by the job control code and builtins when a job
+  3. The message printed by the job control code and builtins when a job
      exits with a non-zero status is 'Done(status)'.
 
-  3. The message printed by the job control code and builtins when a job
+  4. The message printed by the job control code and builtins when a job
      is stopped is 'Stopped(SIGNAME)', where SIGNAME is, for example,
      'SIGTSTP'.
 
-  4. Alias expansion is always enabled, even in non-interactive shells.
+  5. Alias expansion is always enabled, even in non-interactive shells.
 
-  5. Reserved words appearing in a context where reserved words are
+  6. Reserved words appearing in a context where reserved words are
      recognized do not undergo alias expansion.
 
-  6. The POSIX 'PS1' and 'PS2' expansions of '!' to the history number
+  7. The POSIX 'PS1' and 'PS2' expansions of '!' to the history number
      and '!!' to '!' are enabled, and parameter expansion is performed
      on the values of 'PS1' and 'PS2' regardless of the setting of the
      'promptvars' option.
 
-  7. The POSIX startup files are executed ('$ENV') rather than the
+  8. The POSIX startup files are executed ('$ENV') rather than the
      normal Bash files.
 
-  8. Tilde expansion is only performed on assignments preceding a
+  9. Tilde expansion is only performed on assignments preceding a
      command name, rather than on all assignment statements on the line.
 
-  9. The default history file is '~/.sh_history' (this is the default
+  10. The default history file is '~/.sh_history' (this is the default
      value of '$HISTFILE').
 
-  10. Redirection operators do not perform filename expansion on the
+  11. Redirection operators do not perform filename expansion on the
      word in the redirection unless the shell is interactive.
 
-  11. Redirection operators do not perform word splitting on the word in
+  12. Redirection operators do not perform word splitting on the word in
      the redirection.
 
-  12. Function names must be valid shell 'name's.  That is, they may not
+  13. Function names must be valid shell 'name's.  That is, they may not
      contain characters other than letters, digits, and underscores, and
      may not start with a digit.  Declaring a function with an invalid
      name causes a fatal syntax error in non-interactive shells.
 
-  13. Function names may not be the same as one of the POSIX special
+  14. Function names may not be the same as one of the POSIX special
      builtins.
 
-  14. POSIX special builtins are found before shell functions during
+  15. POSIX special builtins are found before shell functions during
      command lookup.
 
-  15. When printing shell function definitions (e.g., by 'type'), Bash
+  16. When printing shell function definitions (e.g., by 'type'), Bash
      does not print the 'function' keyword.
 
-  16. Literal tildes that appear as the first character in elements of
+  17. Literal tildes that appear as the first character in elements of
      the 'PATH' variable are not expanded as described above under *note
      Tilde Expansion::.
 
-  17. The 'time' reserved word may be used by itself as a command.  When
+  18. The 'time' reserved word may be used by itself as a command.  When
      used in this way, it displays timing statistics for the shell and
      its completed children.  The 'TIMEFORMAT' variable controls the
      format of the timing information.
 
-  18. When parsing and expanding a ${...} expansion that appears within
+  19. When parsing and expanding a ${...} expansion that appears within
      double quotes, single quotes are no longer special and cannot be
      used to quote a closing brace or other special character, unless
      the operator is one of those defined to perform pattern removal.
      In this case, they do not have to appear as matched pairs.
 
-  19. The parser does not recognize 'time' as a reserved word if the
+  20. The parser does not recognize 'time' as a reserved word if the
      next token begins with a '-'.
 
-  20. The '!' character does not introduce history expansion within a
+  21. The '!' character does not introduce history expansion within a
      double-quoted string, even if the 'histexpand' option is enabled.
 
-  21. If a POSIX special builtin returns an error status, a
+  22. If a POSIX special builtin returns an error status, a
      non-interactive shell exits.  The fatal errors are those listed in
      the POSIX standard, and include things like passing incorrect
      options, redirection errors, variable assignment errors for
      assignments preceding the command name, and so on.
 
-  22. A non-interactive shell exits with an error status if a variable
+  23. A non-interactive shell exits with an error status if a variable
      assignment error occurs when no command name follows the assignment
      statements.  A variable assignment error occurs, for example, when
      trying to assign a value to a readonly variable.
 
-  23. A non-interactive shell exits with an error status if a variable
+  24. A non-interactive shell exits with an error status if a variable
      assignment error occurs in an assignment statement preceding a
      special builtin, but not with any other simple command.
 
-  24. A non-interactive shell exits with an error status if the
+  25. A non-interactive shell exits with an error status if the
      iteration variable in a 'for' statement or the selection variable
      in a 'select' statement is a readonly variable.
 
-  25. Non-interactive shells exit if FILENAME in '.'  FILENAME is not
+  26. Non-interactive shells exit if FILENAME in '.'  FILENAME is not
      found.
 
-  26. Non-interactive shells exit if a syntax error in an arithmetic
+  27. Non-interactive shells exit if a syntax error in an arithmetic
      expansion results in an invalid expression.
 
-  27. Non-interactive shells exit if a parameter expansion error occurs.
+  28. Non-interactive shells exit if a parameter expansion error occurs.
 
-  28. Non-interactive shells exit if there is a syntax error in a script
+  29. Non-interactive shells exit if there is a syntax error in a script
      read with the '.' or 'source' builtins, or in a string processed by
      the 'eval' builtin.
 
-  29. Process substitution is not available.
+  30. Process substitution is not available.
 
-  30. While variable indirection is available, it may not be applied to
+  31. While variable indirection is available, it may not be applied to
      the '#' and '?' special parameters.
 
-  31. When expanding the '*' special parameter in a pattern context
+  32. When expanding the '*' special parameter in a pattern context
      where the expansion is double-quoted does not treat the '$*' as if
      it were double-quoted.
 
-  32. Assignment statements preceding POSIX special builtins persist in
+  33. Assignment statements preceding POSIX special builtins persist in
      the shell environment after the builtin completes.
 
-  33. Assignment statements preceding shell function calls persist in
+  34. Assignment statements preceding shell function calls persist in
      the shell environment after the function returns, as if a POSIX
      special builtin command had been executed.
 
-  34. The 'command' builtin does not prevent builtins that take
+  35. The 'command' builtin does not prevent builtins that take
      assignment statements as arguments from expanding them as
      assignment statements; when not in POSIX mode, assignment builtins
      lose their assignment statement expansion properties when preceded
      by 'command'.
 
-  35. The 'bg' builtin uses the required format to describe each job
+  36. The 'bg' builtin uses the required format to describe each job
      placed in the background, which does not include an indication of
      whether the job is the current or previous job.
 
-  36. The output of 'kill -l' prints all the signal names on a single
+  37. The output of 'kill -l' prints all the signal names on a single
      line, separated by spaces, without the 'SIG' prefix.
 
-  37. The 'kill' builtin does not accept signal names with a 'SIG'
+  38. The 'kill' builtin does not accept signal names with a 'SIG'
      prefix.
 
-  38. The 'export' and 'readonly' builtin commands display their output
+  39. The 'export' and 'readonly' builtin commands display their output
      in the format required by POSIX.
 
-  39. The 'trap' builtin displays signal names without the leading
+  40. The 'trap' builtin displays signal names without the leading
      'SIG'.
 
-  40. The 'trap' builtin doesn't check the first argument for a possible
+  41. The 'trap' builtin doesn't check the first argument for a possible
      signal specification and revert the signal handling to the original
      disposition if it is, unless that argument consists solely of
      digits and is a valid signal number.  If users want to reset the
      handler for a given signal to the original disposition, they should
      use '-' as the first argument.
 
-  41. The '.' and 'source' builtins do not search the current directory
+  42. The '.' and 'source' builtins do not search the current directory
      for the filename argument if it is not found by searching 'PATH'.
 
-  42. Enabling POSIX mode has the effect of setting the
+  43. Enabling POSIX mode has the effect of setting the
      'inherit_errexit' option, so subshells spawned to execute command
      substitutions inherit the value of the '-e' option from the parent
      shell.  When the 'inherit_errexit' option is not enabled, Bash
      clears the '-e' option in such subshells.
 
-  43. When the 'alias' builtin displays alias definitions, it does not
+  44. When the 'alias' builtin displays alias definitions, it does not
      display them with a leading 'alias ' unless the '-p' option is
      supplied.
 
-  44. When the 'set' builtin is invoked without options, it does not
+  45. When the 'set' builtin is invoked without options, it does not
      display shell function names and definitions.
 
-  45. When the 'set' builtin is invoked without options, it displays
+  46. When the 'set' builtin is invoked without options, it displays
      variable values without quotes, unless they contain shell
      metacharacters, even if the result contains nonprinting characters.
 
-  46. When the 'cd' builtin is invoked in LOGICAL mode, and the pathname
+  47. When the 'cd' builtin is invoked in LOGICAL mode, and the pathname
      constructed from '$PWD' and the directory name supplied as an
      argument does not refer to an existing directory, 'cd' will fail
      instead of falling back to PHYSICAL mode.
 
-  47. The 'pwd' builtin verifies that the value it prints is the same as
+  48. The 'pwd' builtin verifies that the value it prints is the same as
      the current directory, even if it is not asked to check the file
      system with the '-P' option.
 
-  48. When listing the history, the 'fc' builtin does not include an
+  49. When listing the history, the 'fc' builtin does not include an
      indication of whether or not a history entry has been modified.
 
-  49. The default editor used by 'fc' is 'ed'.
+  50. The default editor used by 'fc' is 'ed'.
 
-  50. The 'type' and 'command' builtins will not report a non-executable
+  51. The 'type' and 'command' builtins will not report a non-executable
      file as having been found, though the shell will attempt to execute
      such a file if it is the only so-named file found in '$PATH'.
 
-  51. The 'vi' editing mode will invoke the 'vi' editor directly when
+  52. The 'vi' editing mode will invoke the 'vi' editor directly when
      the 'v' command is run, instead of checking '$VISUAL' and
      '$EDITOR'.
 
-  52. When the 'xpg_echo' option is enabled, Bash does not attempt to
+  53. When the 'xpg_echo' option is enabled, Bash does not attempt to
      interpret any arguments to 'echo' as options.  Each argument is
      displayed, after escape characters are converted.
 
-  53. The 'ulimit' builtin uses a block size of 512 bytes for the '-c'
+  54. The 'ulimit' builtin uses a block size of 512 bytes for the '-c'
      and '-f' options.
 
-  54. The arrival of 'SIGCHLD' when a trap is set on 'SIGCHLD' does not
+  55. The arrival of 'SIGCHLD' when a trap is set on 'SIGCHLD' does not
      interrupt the 'wait' builtin and cause it to return immediately.
      The trap command is run once for each child that exits.
 
-  55. The 'read' builtin may be interrupted by a signal for which a trap
+  56. The 'read' builtin may be interrupted by a signal for which a trap
      has been set.  If Bash receives a trapped signal while executing
      'read', the trap handler executes and 'read' returns an exit status
      greater than 128.
 
-  56. Bash removes an exited background process's status from the list
+  57. Bash removes an exited background process's status from the list
      of such statuses after the 'wait' builtin is used to obtain it.
 
    There is other POSIX behavior that Bash does not implement by default
@@ -7374,7 +7410,7 @@ Variable Settings
           If set to 'on', and COMPLETION-IGNORE-CASE is enabled,
           Readline treats hyphens ('-') and underscores ('_') as
           equivalent when performing case-insensitive filename matching
-          and completion.
+          and completion.  The default value is 'off'.
 
      'completion-prefix-display-length'
           The length in characters of the common prefix of a list of
@@ -7650,7 +7686,7 @@ Key Bindings
                Meta-Rubout: backward-kill-word
                Control-o: "> output"
 
-          In the above example, 'C-u' is bound to the function
+          In the example above, 'C-u' is bound to the function
           'universal-argument', 'M-DEL' is bound to the function
           'backward-kill-word', and 'C-o' is bound to run the macro
           expressed on the right hand side (that is, to insert the text
@@ -8141,7 +8177,7 @@ File: bashref.info,  Node: Commands For Text,  Next: Commands For Killing,  Prev
      assigned by default.  It allows Readline to insert the pasted text
      as a single unit without treating each character as if it had been
      read from the keyboard.  The characters are inserted as if each one
-     was bound to 'self-insert') instead of executing any editing
+     was bound to 'self-insert' instead of executing any editing
      commands.
 
 'transpose-chars (C-t)'
@@ -8737,26 +8773,34 @@ happening.
      no matches were generated.
 
 'complete'
-          complete [-abcdefgjksuv] [-o COMP-OPTION] [-DE] [-A ACTION] [-G GLOBPAT] [-W WORDLIST]
-          [-F FUNCTION] [-C COMMAND] [-X FILTERPAT]
+          complete [-abcdefgjksuv] [-o COMP-OPTION] [-DEI] [-A ACTION] [-G GLOBPAT]
+          [-W WORDLIST] [-F FUNCTION] [-C COMMAND] [-X FILTERPAT]
           [-P PREFIX] [-S SUFFIX] NAME [NAME ...]
-          complete -pr [-DE] [NAME ...]
+          complete -pr [-DEI] [NAME ...]
 
      Specify how arguments to each NAME should be completed.  If the
      '-p' option is supplied, or if no options are supplied, existing
      completion specifications are printed in a way that allows them to
      be reused as input.  The '-r' option removes a completion
      specification for each NAME, or, if no NAMEs are supplied, all
-     completion specifications.  The '-D' option indicates that the
-     remaining options and actions should apply to the "default" command
+     completion specifications.  The '-D' option indicates that other
+     supplied options and actions should apply to the "default" command
      completion; that is, completion attempted on a command for which no
      completion has previously been defined.  The '-E' option indicates
-     that the remaining options and actions should apply to "empty"
+     that other supplied options and actions should apply to "empty"
      command completion; that is, completion attempted on a blank line.
+     The '-I' option indicates that other supplied options and actions
+     should apply to completion on the inital non-assignment word on the
+     line, or after a command delimiter such as ';' or '|', which is
+     usually command name completion.  If multiple options are supplied,
+     the '-D' option takes precedence over '-E', and both take
+     precedence over '-I'.  If any of '-D', '-E', or '-I' are supplied,
+     any other NAME arguments are ignored; these completions only apply
+     to the case specified by the option.
 
      The process of applying these completion specifications when word
      completion is attempted is described above (*note Programmable
-     Completion::).  The '-D' option takes precedence over '-E'.
+     Completion::).
 
      Other options, if specified, have the following meanings.  The
      arguments to the '-G', '-W', and '-X' options (and, if necessary,
@@ -8783,7 +8827,7 @@ happening.
           'filenames'
                Tell Readline that the compspec generates filenames, so
                it can perform any filename-specific processing (like
-               adding a slash to directory names quoting special
+               adding a slash to directory names, quoting special
                characters, or suppressing trailing spaces).  This option
                is intended to be used with shell functions specified
                with '-F'.
@@ -8936,20 +8980,24 @@ happening.
      completion specification.
 
 'compopt'
-          compopt [-o OPTION] [-DE] [+o OPTION] [NAME]
+          compopt [-o OPTION] [-DEI] [+o OPTION] [NAME]
      Modify completion options for each NAME according to the OPTIONs,
      or for the currently-executing 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 '-D'
-     option indicates that the remaining options should apply to the
+     option indicates that other supplied options should apply to the
      "default" command completion; that is, completion attempted on a
      command for which no completion has previously been defined.  The
-     '-E' option indicates that the remaining options should apply to
+     '-E' option indicates that other supplied options should apply to
      "empty" command completion; that is, completion attempted on a
-     blank line.
+     blank line.  The '-I' option indicates that other supplied options
+     should apply to completion on the inital non-assignment word on the
+     line, or after a command delimiter such as ';' or '|', which is
+     usually command name completion.
 
-     The '-D' option takes precedence over '-E'.
+     If multiple options are supplied, the '-D' option takes precedence
+     over '-E', and both take precedence over '-I'
 
      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
@@ -8993,7 +9041,7 @@ retrieves the completions from there when the function returns.
          local cur _skipdot _cdpath
          local i j k
 
-         # Tilde expansion, with side effect of expanding tilde to full pathname
+         # Tilde expansion, which also expands tilde to full pathname
          case "$2" in
          \~*)    eval cur="$2" ;;
          *)      cur=$2 ;;
@@ -9263,7 +9311,8 @@ previous commands quickly.
 
    History expansion is performed immediately after a complete line is
 read, before the shell breaks it into words, and is performed on each
-line individually without taking quoting on previous lines into account.
+line individually.  Bash attempts to inform the history expansion
+functions about quoting still in effect from previous lines.
 
    History expansion takes place in two parts.  The first is to
 determine which line from the history list should be used during
@@ -9274,10 +9323,20 @@ are called "words".  Various "modifiers" are available to manipulate the
 selected words.  The line is broken into words in the same fashion that
 Bash does, so that several words surrounded by quotes are considered one
 word.  History expansions are introduced by the appearance of the
-history expansion character, which is '!' by default.  Only '\' and '''
-may be used to escape the history expansion character, but the history
-expansion character is also treated as quoted if it immediately precedes
-the closing double quote in a double-quoted string.
+history expansion character, which is '!' by default.
+
+   History expansion implements shell-like quoting conventions: a
+backslash can be used to remove the special handling for the next
+character; single quotes enclose verbatim sequences of characters, and
+can be used to inhibit history expansion; and characters enclosed within
+double quotes may be subject to history expansion, since backslash can
+escape the history expansion character, but single quotes may not, since
+they are not treated specially within double quotes.
+
+   When using the shell, only '\' and ''' may be used to escape the
+history expansion character, but the history expansion character is also
+treated as quoted if it immediately precedes the closing double quote in
+a double-quoted string.
 
    Several shell options settable with the 'shopt' builtin (*note The
 Shopt Builtin::) may be used to tailor the behavior of history
@@ -9760,8 +9819,8 @@ and linked, rather than changing run-time features.
 
 '--enable-largefile'
      Enable support for large files
-     (http://www.sas.com/standards/large_file/x_open.20Mar96.html) if
-     the operating system requires special compiler options to build
+     (http://www.unix.org/version2/whatsnew/lfs20mar.html) if the
+     operating system requires special compiler options to build
      programs which can access large files.  This is enabled by default,
      if the operating system provides large file support.
 
@@ -10881,7 +10940,7 @@ D.1 Index of Shell Builtin Commands
 * complete:                              Programmable Completion Builtins.
                                                               (line  30)
 * compopt:                               Programmable Completion Builtins.
-                                                              (line 229)
+                                                              (line 237)
 * continue:                              Bourne Shell Builtins.
                                                               (line  85)
 * declare:                               Bash Builtins.       (line 148)
@@ -10966,9 +11025,9 @@ D.2 Index of Shell Reserved Words
 
 * !:                                     Pipelines.           (line   9)
 * [[:                                    Conditional Constructs.
-                                                              (line 122)
+                                                              (line 124)
 * ]]:                                    Conditional Constructs.
-                                                              (line 122)
+                                                              (line 124)
 * {:                                     Command Grouping.    (line  21)
 * }:                                     Command Grouping.    (line  21)
 * case:                                  Conditional Constructs.
@@ -10990,7 +11049,7 @@ D.2 Index of Shell Reserved Words
 * in:                                    Conditional Constructs.
                                                               (line  28)
 * select:                                Conditional Constructs.
-                                                              (line  80)
+                                                              (line  82)
 * then:                                  Conditional Constructs.
                                                               (line   7)
 * time:                                  Pipelines.           (line   9)
@@ -11006,24 +11065,24 @@ D.3 Parameter and Variable Index
 \0\b[index\0\b]
 * Menu:
 
-* !:                                     Special Parameters.  (line  50)
-* #:                                     Special Parameters.  (line  33)
-* $:                                     Special Parameters.  (line  45)
-* $!:                                    Special Parameters.  (line  51)
-* $#:                                    Special Parameters.  (line  34)
-* $$:                                    Special Parameters.  (line  46)
+* !:                                     Special Parameters.  (line  56)
+* #:                                     Special Parameters.  (line  39)
+* $:                                     Special Parameters.  (line  51)
+* $!:                                    Special Parameters.  (line  57)
+* $#:                                    Special Parameters.  (line  40)
+* $$:                                    Special Parameters.  (line  52)
 * $*:                                    Special Parameters.  (line  10)
-* $-:                                    Special Parameters.  (line  41)
-* $0:                                    Special Parameters.  (line  56)
-* $?:                                    Special Parameters.  (line  37)
+* $-:                                    Special Parameters.  (line  47)
+* $0:                                    Special Parameters.  (line  62)
+* $?:                                    Special Parameters.  (line  43)
 * $@:                                    Special Parameters.  (line  23)
-* $_:                                    Special Parameters.  (line  65)
+* $_:                                    Special Parameters.  (line  71)
 * *:                                     Special Parameters.  (line   9)
-* -:                                     Special Parameters.  (line  40)
-* 0:                                     Special Parameters.  (line  55)
-* ?:                                     Special Parameters.  (line  36)
+* -:                                     Special Parameters.  (line  46)
+* 0:                                     Special Parameters.  (line  61)
+* ?:                                     Special Parameters.  (line  42)
 * @:                                     Special Parameters.  (line  22)
-* _:                                     Special Parameters.  (line  64)
+* _:                                     Special Parameters.  (line  70)
 * auto_resume:                           Job Control Variables.
                                                               (line   6)
 * BASH:                                  Bash Variables.      (line  13)
@@ -11031,21 +11090,21 @@ D.3 Parameter and Variable Index
 * BASHPID:                               Bash Variables.      (line  25)
 * BASH_ALIASES:                          Bash Variables.      (line  32)
 * BASH_ARGC:                             Bash Variables.      (line  41)
-* BASH_ARGV:                             Bash Variables.      (line  53)
-* BASH_ARGV0:                            Bash Variables.      (line  64)
-* BASH_CMDS:                             Bash Variables.      (line  72)
-* BASH_COMMAND:                          Bash Variables.      (line  81)
-* BASH_COMPAT:                           Bash Variables.      (line  86)
-* BASH_ENV:                              Bash Variables.      (line 101)
-* BASH_EXECUTION_STRING:                 Bash Variables.      (line 107)
-* BASH_LINENO:                           Bash Variables.      (line 110)
-* BASH_LOADABLES_PATH:                   Bash Variables.      (line 118)
-* BASH_REMATCH:                          Bash Variables.      (line 122)
-* BASH_SOURCE:                           Bash Variables.      (line 130)
-* BASH_SUBSHELL:                         Bash Variables.      (line 137)
-* BASH_VERSINFO:                         Bash Variables.      (line 142)
-* BASH_VERSION:                          Bash Variables.      (line 165)
-* BASH_XTRACEFD:                         Bash Variables.      (line 168)
+* BASH_ARGV:                             Bash Variables.      (line  54)
+* BASH_ARGV0:                            Bash Variables.      (line  66)
+* BASH_CMDS:                             Bash Variables.      (line  74)
+* BASH_COMMAND:                          Bash Variables.      (line  83)
+* BASH_COMPAT:                           Bash Variables.      (line  88)
+* BASH_ENV:                              Bash Variables.      (line 103)
+* BASH_EXECUTION_STRING:                 Bash Variables.      (line 109)
+* BASH_LINENO:                           Bash Variables.      (line 112)
+* BASH_LOADABLES_PATH:                   Bash Variables.      (line 120)
+* BASH_REMATCH:                          Bash Variables.      (line 124)
+* BASH_SOURCE:                           Bash Variables.      (line 132)
+* BASH_SUBSHELL:                         Bash Variables.      (line 139)
+* BASH_VERSINFO:                         Bash Variables.      (line 144)
+* BASH_VERSION:                          Bash Variables.      (line 167)
+* BASH_XTRACEFD:                         Bash Variables.      (line 170)
 * bell-style:                            Readline Init File Syntax.
                                                               (line  38)
 * bind-tty-special-chars:                Readline Init File Syntax.
@@ -11054,12 +11113,12 @@ D.3 Parameter and Variable Index
                                                               (line  50)
 * CDPATH:                                Bourne Shell Variables.
                                                               (line   9)
-* CHILD_MAX:                             Bash Variables.      (line 179)
+* CHILD_MAX:                             Bash Variables.      (line 181)
 * colored-completion-prefix:             Readline Init File Syntax.
                                                               (line  55)
 * colored-stats:                         Readline Init File Syntax.
                                                               (line  62)
-* COLUMNS:                               Bash Variables.      (line 186)
+* COLUMNS:                               Bash Variables.      (line 188)
 * comment-begin:                         Readline Init File Syntax.
                                                               (line  68)
 * completion-display-width:              Readline Init File Syntax.
@@ -11072,90 +11131,91 @@ D.3 Parameter and Variable Index
                                                               (line  91)
 * completion-query-items:                Readline Init File Syntax.
                                                               (line  98)
-* COMPREPLY:                             Bash Variables.      (line 238)
-* COMP_CWORD:                            Bash Variables.      (line 192)
-* COMP_KEY:                              Bash Variables.      (line 221)
-* COMP_LINE:                             Bash Variables.      (line 198)
-* COMP_POINT:                            Bash Variables.      (line 203)
-* COMP_TYPE:                             Bash Variables.      (line 211)
-* COMP_WORDBREAKS:                       Bash Variables.      (line 225)
-* COMP_WORDS:                            Bash Variables.      (line 231)
+* COMPREPLY:                             Bash Variables.      (line 240)
+* COMP_CWORD:                            Bash Variables.      (line 194)
+* COMP_KEY:                              Bash Variables.      (line 223)
+* COMP_LINE:                             Bash Variables.      (line 200)
+* COMP_POINT:                            Bash Variables.      (line 205)
+* COMP_TYPE:                             Bash Variables.      (line 213)
+* COMP_WORDBREAKS:                       Bash Variables.      (line 227)
+* COMP_WORDS:                            Bash Variables.      (line 233)
 * convert-meta:                          Readline Init File Syntax.
                                                               (line 108)
-* COPROC:                                Bash Variables.      (line 244)
-* DIRSTACK:                              Bash Variables.      (line 248)
+* COPROC:                                Bash Variables.      (line 246)
+* DIRSTACK:                              Bash Variables.      (line 250)
 * disable-completion:                    Readline Init File Syntax.
                                                               (line 116)
 * echo-control-characters:               Readline Init File Syntax.
                                                               (line 121)
 * editing-mode:                          Readline Init File Syntax.
                                                               (line 126)
-* EMACS:                                 Bash Variables.      (line 258)
+* EMACS:                                 Bash Variables.      (line 260)
 * emacs-mode-string:                     Readline Init File Syntax.
                                                               (line 132)
 * enable-bracketed-paste:                Readline Init File Syntax.
                                                               (line 142)
 * enable-keypad:                         Readline Init File Syntax.
                                                               (line 150)
-* ENV:                                   Bash Variables.      (line 263)
-* EPOCHREALTIME:                         Bash Variables.      (line 267)
-* EPOCHSECONDS:                          Bash Variables.      (line 275)
-* EUID:                                  Bash Variables.      (line 282)
-* EXECIGNORE:                            Bash Variables.      (line 286)
+* ENV:                                   Bash Variables.      (line 265)
+* EPOCHREALTIME:                         Bash Variables.      (line 269)
+* EPOCHSECONDS:                          Bash Variables.      (line 277)
+* EUID:                                  Bash Variables.      (line 284)
+* EXECIGNORE:                            Bash Variables.      (line 288)
 * expand-tilde:                          Readline Init File Syntax.
                                                               (line 161)
-* FCEDIT:                                Bash Variables.      (line 299)
-* FIGNORE:                               Bash Variables.      (line 303)
-* FUNCNAME:                              Bash Variables.      (line 309)
-* FUNCNEST:                              Bash Variables.      (line 326)
-* GLOBIGNORE:                            Bash Variables.      (line 331)
-* GROUPS:                                Bash Variables.      (line 338)
-* histchars:                             Bash Variables.      (line 344)
-* HISTCMD:                               Bash Variables.      (line 359)
-* HISTCONTROL:                           Bash Variables.      (line 364)
-* HISTFILE:                              Bash Variables.      (line 380)
-* HISTFILESIZE:                          Bash Variables.      (line 384)
-* HISTIGNORE:                            Bash Variables.      (line 395)
+* FCEDIT:                                Bash Variables.      (line 301)
+* FIGNORE:                               Bash Variables.      (line 305)
+* FUNCNAME:                              Bash Variables.      (line 311)
+* FUNCNEST:                              Bash Variables.      (line 328)
+* GLOBIGNORE:                            Bash Variables.      (line 333)
+* GROUPS:                                Bash Variables.      (line 340)
+* histchars:                             Bash Variables.      (line 346)
+* HISTCMD:                               Bash Variables.      (line 361)
+* HISTCONTROL:                           Bash Variables.      (line 366)
+* HISTFILE:                              Bash Variables.      (line 382)
+* HISTFILESIZE:                          Bash Variables.      (line 386)
+* HISTIGNORE:                            Bash Variables.      (line 397)
 * history-preserve-point:                Readline Init File Syntax.
                                                               (line 165)
 * history-size:                          Readline Init File Syntax.
                                                               (line 171)
-* HISTSIZE:                              Bash Variables.      (line 415)
-* HISTTIMEFORMAT:                        Bash Variables.      (line 422)
+* HISTSIZE:                              Bash Variables.      (line 417)
+* HISTTIMEFORMAT:                        Bash Variables.      (line 424)
 * HOME:                                  Bourne Shell Variables.
                                                               (line  13)
 * horizontal-scroll-mode:                Readline Init File Syntax.
                                                               (line 180)
-* HOSTFILE:                              Bash Variables.      (line 430)
-* HOSTNAME:                              Bash Variables.      (line 441)
-* HOSTTYPE:                              Bash Variables.      (line 444)
+* HOSTFILE:                              Bash Variables.      (line 432)
+* HOSTNAME:                              Bash Variables.      (line 443)
+* HOSTTYPE:                              Bash Variables.      (line 446)
 * IFS:                                   Bourne Shell Variables.
                                                               (line  18)
-* IGNOREEOF:                             Bash Variables.      (line 447)
+* IGNOREEOF:                             Bash Variables.      (line 449)
 * input-meta:                            Readline Init File Syntax.
                                                               (line 187)
-* INPUTRC:                               Bash Variables.      (line 457)
+* INPUTRC:                               Bash Variables.      (line 459)
+* INSIDE_EMACS:                          Bash Variables.      (line 463)
 * isearch-terminators:                   Readline Init File Syntax.
                                                               (line 195)
 * keymap:                                Readline Init File Syntax.
                                                               (line 202)
-* LANG:                                  Bash Variables.      (line 461)
-* LC_ALL:                                Bash Variables.      (line 465)
-* LC_COLLATE:                            Bash Variables.      (line 469)
-* LC_CTYPE:                              Bash Variables.      (line 476)
+* LANG:                                  Bash Variables.      (line 469)
+* LC_ALL:                                Bash Variables.      (line 473)
+* LC_COLLATE:                            Bash Variables.      (line 477)
+* LC_CTYPE:                              Bash Variables.      (line 484)
 * LC_MESSAGES:                           Locale Translation.  (line  11)
-* LC_MESSAGES <1>:                       Bash Variables.      (line 481)
-* LC_NUMERIC:                            Bash Variables.      (line 485)
-* LC_TIME:                               Bash Variables.      (line 489)
-* LINENO:                                Bash Variables.      (line 493)
-* LINES:                                 Bash Variables.      (line 497)
-* MACHTYPE:                              Bash Variables.      (line 503)
+* LC_MESSAGES <1>:                       Bash Variables.      (line 489)
+* LC_NUMERIC:                            Bash Variables.      (line 493)
+* LC_TIME:                               Bash Variables.      (line 497)
+* LINENO:                                Bash Variables.      (line 501)
+* LINES:                                 Bash Variables.      (line 505)
+* MACHTYPE:                              Bash Variables.      (line 511)
 * MAIL:                                  Bourne Shell Variables.
                                                               (line  22)
-* MAILCHECK:                             Bash Variables.      (line 507)
+* MAILCHECK:                             Bash Variables.      (line 515)
 * MAILPATH:                              Bourne Shell Variables.
                                                               (line  27)
-* MAPFILE:                               Bash Variables.      (line 515)
+* MAPFILE:                               Bash Variables.      (line 523)
 * mark-modified-lines:                   Readline Init File Syntax.
                                                               (line 232)
 * mark-symlinked-directories:            Readline Init File Syntax.
@@ -11166,42 +11226,42 @@ D.3 Parameter and Variable Index
                                                               (line 249)
 * meta-flag:                             Readline Init File Syntax.
                                                               (line 187)
-* OLDPWD:                                Bash Variables.      (line 519)
+* OLDPWD:                                Bash Variables.      (line 527)
 * OPTARG:                                Bourne Shell Variables.
                                                               (line  34)
-* OPTERR:                                Bash Variables.      (line 522)
+* OPTERR:                                Bash Variables.      (line 530)
 * OPTIND:                                Bourne Shell Variables.
                                                               (line  38)
-* OSTYPE:                                Bash Variables.      (line 526)
+* OSTYPE:                                Bash Variables.      (line 534)
 * output-meta:                           Readline Init File Syntax.
                                                               (line 254)
 * page-completions:                      Readline Init File Syntax.
                                                               (line 260)
 * PATH:                                  Bourne Shell Variables.
                                                               (line  42)
-* PIPESTATUS:                            Bash Variables.      (line 529)
-* POSIXLY_CORRECT:                       Bash Variables.      (line 534)
-* PPID:                                  Bash Variables.      (line 543)
-* PROMPT_COMMAND:                        Bash Variables.      (line 547)
-* PROMPT_DIRTRIM:                        Bash Variables.      (line 551)
-* PS0:                                   Bash Variables.      (line 557)
+* PIPESTATUS:                            Bash Variables.      (line 537)
+* POSIXLY_CORRECT:                       Bash Variables.      (line 542)
+* PPID:                                  Bash Variables.      (line 552)
+* PROMPT_COMMAND:                        Bash Variables.      (line 556)
+* PROMPT_DIRTRIM:                        Bash Variables.      (line 560)
+* PS0:                                   Bash Variables.      (line 566)
 * PS1:                                   Bourne Shell Variables.
                                                               (line  48)
 * PS2:                                   Bourne Shell Variables.
                                                               (line  53)
-* PS3:                                   Bash Variables.      (line 562)
-* PS4:                                   Bash Variables.      (line 567)
-* PWD:                                   Bash Variables.      (line 575)
-* RANDOM:                                Bash Variables.      (line 578)
-* READLINE_LINE:                         Bash Variables.      (line 583)
-* READLINE_POINT:                        Bash Variables.      (line 587)
-* REPLY:                                 Bash Variables.      (line 591)
+* PS3:                                   Bash Variables.      (line 571)
+* PS4:                                   Bash Variables.      (line 576)
+* PWD:                                   Bash Variables.      (line 584)
+* RANDOM:                                Bash Variables.      (line 587)
+* READLINE_LINE:                         Bash Variables.      (line 592)
+* READLINE_POINT:                        Bash Variables.      (line 596)
+* REPLY:                                 Bash Variables.      (line 600)
 * revert-all-at-newline:                 Readline Init File Syntax.
                                                               (line 270)
-* SECONDS:                               Bash Variables.      (line 594)
-* SHELL:                                 Bash Variables.      (line 600)
-* SHELLOPTS:                             Bash Variables.      (line 605)
-* SHLVL:                                 Bash Variables.      (line 614)
+* SECONDS:                               Bash Variables.      (line 603)
+* SHELL:                                 Bash Variables.      (line 609)
+* SHELLOPTS:                             Bash Variables.      (line 614)
+* SHLVL:                                 Bash Variables.      (line 623)
 * show-all-if-ambiguous:                 Readline Init File Syntax.
                                                               (line 276)
 * show-all-if-unmodified:                Readline Init File Syntax.
@@ -11212,10 +11272,10 @@ D.3 Parameter and Variable Index
                                                               (line 297)
 * TEXTDOMAIN:                            Locale Translation.  (line  11)
 * TEXTDOMAINDIR:                         Locale Translation.  (line  11)
-* TIMEFORMAT:                            Bash Variables.      (line 619)
-* TMOUT:                                 Bash Variables.      (line 657)
-* TMPDIR:                                Bash Variables.      (line 669)
-* UID:                                   Bash Variables.      (line 673)
+* TIMEFORMAT:                            Bash Variables.      (line 628)
+* TMOUT:                                 Bash Variables.      (line 666)
+* TMPDIR:                                Bash Variables.      (line 678)
+* UID:                                   Bash Variables.      (line 682)
 * vi-cmd-mode-string:                    Readline Init File Syntax.
                                                               (line 310)
 * vi-ins-mode-string:                    Readline Init File Syntax.
@@ -11512,7 +11572,7 @@ D.5 Concept Index
 * installation:                          Basic Installation.  (line   6)
 * interaction, readline:                 Readline Interaction.
                                                               (line   6)
-* interactive shell:                     Invoking Bash.       (line 128)
+* interactive shell:                     Invoking Bash.       (line 131)
 * interactive shell <1>:                 Interactive Shells.  (line   6)
 * internationalization:                  Locale Translation.  (line   6)
 * job:                                   Definitions.         (line  38)
@@ -11523,7 +11583,7 @@ D.5 Concept Index
 * killing text:                          Readline Killing Commands.
                                                               (line   6)
 * localization:                          Locale Translation.  (line   6)
-* login shell:                           Invoking Bash.       (line 125)
+* login shell:                           Invoking Bash.       (line 128)
 * matching, pattern:                     Pattern Matching.    (line   6)
 * metacharacter:                         Definitions.         (line  46)
 * name:                                  Definitions.         (line  51)
@@ -11606,112 +11666,112 @@ Node: Lists\7f23781
 Node: Compound Commands\7f25520
 Node: Looping Constructs\7f26532
 Node: Conditional Constructs\7f29027
-Node: Command Grouping\7f40082
-Node: Coprocesses\7f41561
-Node: GNU Parallel\7f43464
-Node: Shell Functions\7f47438
-Node: Shell Parameters\7f54521
-Node: Positional Parameters\7f58934
-Node: Special Parameters\7f59834
-Node: Shell Expansions\7f63171
-Node: Brace Expansion\7f65294
-Node: Tilde Expansion\7f68018
-Node: Shell Parameter Expansion\7f70366
-Node: Command Substitution\7f84849
-Node: Arithmetic Expansion\7f86204
-Node: Process Substitution\7f87136
-Node: Word Splitting\7f88256
-Node: Filename Expansion\7f90200
-Node: Pattern Matching\7f92730
-Node: Quote Removal\7f96716
-Node: Redirections\7f97011
-Node: Executing Commands\7f106569
-Node: Simple Command Expansion\7f107239
-Node: Command Search and Execution\7f109169
-Node: Command Execution Environment\7f111545
-Node: Environment\7f114529
-Node: Exit Status\7f116188
-Node: Signals\7f117858
-Node: Shell Scripts\7f119825
-Node: Shell Builtin Commands\7f122340
-Node: Bourne Shell Builtins\7f124378
-Node: Bash Builtins\7f145036
-Node: Modifying Shell Behavior\7f173944
-Node: The Set Builtin\7f174289
-Node: The Shopt Builtin\7f184702
-Node: Special Builtins\7f201572
-Node: Shell Variables\7f202551
-Node: Bourne Shell Variables\7f202988
-Node: Bash Variables\7f205092
-Node: Bash Features\7f235106
-Node: Invoking Bash\7f236005
-Node: Bash Startup Files\7f241991
-Node: Interactive Shells\7f247094
-Node: What is an Interactive Shell?\7f247504
-Node: Is this Shell Interactive?\7f248153
-Node: Interactive Shell Behavior\7f248968
-Node: Bash Conditional Expressions\7f252456
-Node: Shell Arithmetic\7f256822
-Node: Aliases\7f259639
-Node: Arrays\7f262187
-Node: The Directory Stack\7f267553
-Node: Directory Stack Builtins\7f268337
-Node: Controlling the Prompt\7f271305
-Node: The Restricted Shell\7f274067
-Node: Bash POSIX Mode\7f275892
-Node: Job Control\7f286243
-Node: Job Control Basics\7f286703
-Node: Job Control Builtins\7f291671
-Node: Job Control Variables\7f296398
-Node: Command Line Editing\7f297554
-Node: Introduction and Notation\7f299225
-Node: Readline Interaction\7f300848
-Node: Readline Bare Essentials\7f302039
-Node: Readline Movement Commands\7f303822
-Node: Readline Killing Commands\7f304782
-Node: Readline Arguments\7f306700
-Node: Searching\7f307744
-Node: Readline Init File\7f309930
-Node: Readline Init File Syntax\7f311077
-Node: Conditional Init Constructs\7f331448
-Node: Sample Init File\7f335644
-Node: Bindable Readline Commands\7f338761
-Node: Commands For Moving\7f339965
-Node: Commands For History\7f341814
-Node: Commands For Text\7f346109
-Node: Commands For Killing\7f349498
-Node: Numeric Arguments\7f351979
-Node: Commands For Completion\7f353118
-Node: Keyboard Macros\7f357309
-Node: Miscellaneous Commands\7f357996
-Node: Readline vi Mode\7f363949
-Node: Programmable Completion\7f364856
-Node: Programmable Completion Builtins\7f372450
-Node: A Programmable Completion Example\7f382336
-Node: Using History Interactively\7f387587
-Node: Bash History Facilities\7f388271
-Node: Bash History Builtins\7f391276
-Node: History Interaction\7f395807
-Node: Event Designators\7f398874
-Node: Word Designators\7f400093
-Node: Modifiers\7f401730
-Node: Installing Bash\7f403132
-Node: Basic Installation\7f404269
-Node: Compilers and Options\7f407527
-Node: Compiling For Multiple Architectures\7f408268
-Node: Installation Names\7f409961
-Node: Specifying the System Type\7f410779
-Node: Sharing Defaults\7f411495
-Node: Operation Controls\7f412168
-Node: Optional Features\7f413126
-Node: Reporting Bugs\7f423652
-Node: Major Differences From The Bourne Shell\7f424846
-Node: GNU Free Documentation License\7f441698
-Node: Indexes\7f466875
-Node: Builtin Index\7f467329
-Node: Reserved Word Index\7f474156
-Node: Variable Index\7f476604
-Node: Function Index\7f492282
-Node: Concept Index\7f505585
+Node: Command Grouping\7f40110
+Node: Coprocesses\7f41589
+Node: GNU Parallel\7f43492
+Node: Shell Functions\7f47550
+Node: Shell Parameters\7f54633
+Node: Positional Parameters\7f59046
+Node: Special Parameters\7f59946
+Node: Shell Expansions\7f63660
+Node: Brace Expansion\7f65783
+Node: Tilde Expansion\7f68507
+Node: Shell Parameter Expansion\7f71124
+Node: Command Substitution\7f85580
+Node: Arithmetic Expansion\7f86935
+Node: Process Substitution\7f87867
+Node: Word Splitting\7f88987
+Node: Filename Expansion\7f90931
+Node: Pattern Matching\7f93461
+Node: Quote Removal\7f97447
+Node: Redirections\7f97742
+Node: Executing Commands\7f107300
+Node: Simple Command Expansion\7f107970
+Node: Command Search and Execution\7f109900
+Node: Command Execution Environment\7f112276
+Node: Environment\7f115260
+Node: Exit Status\7f116919
+Node: Signals\7f118589
+Node: Shell Scripts\7f120556
+Node: Shell Builtin Commands\7f123071
+Node: Bourne Shell Builtins\7f125109
+Node: Bash Builtins\7f145767
+Node: Modifying Shell Behavior\7f174675
+Node: The Set Builtin\7f175020
+Node: The Shopt Builtin\7f185433
+Node: Special Builtins\7f202303
+Node: Shell Variables\7f203282
+Node: Bourne Shell Variables\7f203719
+Node: Bash Variables\7f205823
+Node: Bash Features\7f236283
+Node: Invoking Bash\7f237182
+Node: Bash Startup Files\7f243195
+Node: Interactive Shells\7f248298
+Node: What is an Interactive Shell?\7f248708
+Node: Is this Shell Interactive?\7f249357
+Node: Interactive Shell Behavior\7f250172
+Node: Bash Conditional Expressions\7f253659
+Node: Shell Arithmetic\7f258025
+Node: Aliases\7f260842
+Node: Arrays\7f263390
+Node: The Directory Stack\7f268756
+Node: Directory Stack Builtins\7f269540
+Node: Controlling the Prompt\7f272508
+Node: The Restricted Shell\7f275274
+Node: Bash POSIX Mode\7f277099
+Node: Job Control\7f287514
+Node: Job Control Basics\7f287974
+Node: Job Control Builtins\7f292942
+Node: Job Control Variables\7f297669
+Node: Command Line Editing\7f298825
+Node: Introduction and Notation\7f300496
+Node: Readline Interaction\7f302119
+Node: Readline Bare Essentials\7f303310
+Node: Readline Movement Commands\7f305093
+Node: Readline Killing Commands\7f306053
+Node: Readline Arguments\7f307971
+Node: Searching\7f309015
+Node: Readline Init File\7f311201
+Node: Readline Init File Syntax\7f312348
+Node: Conditional Init Constructs\7f332748
+Node: Sample Init File\7f336944
+Node: Bindable Readline Commands\7f340061
+Node: Commands For Moving\7f341265
+Node: Commands For History\7f343114
+Node: Commands For Text\7f347409
+Node: Commands For Killing\7f350797
+Node: Numeric Arguments\7f353278
+Node: Commands For Completion\7f354417
+Node: Keyboard Macros\7f358608
+Node: Miscellaneous Commands\7f359295
+Node: Readline vi Mode\7f365248
+Node: Programmable Completion\7f366155
+Node: Programmable Completion Builtins\7f373749
+Node: A Programmable Completion Example\7f384442
+Node: Using History Interactively\7f389682
+Node: Bash History Facilities\7f390366
+Node: Bash History Builtins\7f393371
+Node: History Interaction\7f397902
+Node: Event Designators\7f401522
+Node: Word Designators\7f402741
+Node: Modifiers\7f404378
+Node: Installing Bash\7f405780
+Node: Basic Installation\7f406917
+Node: Compilers and Options\7f410175
+Node: Compiling For Multiple Architectures\7f410916
+Node: Installation Names\7f412609
+Node: Specifying the System Type\7f413427
+Node: Sharing Defaults\7f414143
+Node: Operation Controls\7f414816
+Node: Optional Features\7f415774
+Node: Reporting Bugs\7f426292
+Node: Major Differences From The Bourne Shell\7f427486
+Node: GNU Free Documentation License\7f444338
+Node: Indexes\7f469515
+Node: Builtin Index\7f469969
+Node: Reserved Word Index\7f476796
+Node: Variable Index\7f479244
+Node: Function Index\7f494995
+Node: Concept Index\7f508298
 \1f
 End Tag Table
index 9686b72e954bfa2f28a9c6cf401916c6fda7dda5..6bab612221397470fe0c0430a3365f820594f35d 100644 (file)
Binary files a/doc/bashref.pdf and b/doc/bashref.pdf differ
index 7b2de8cee26b9e40936f021ee4702bf7d405c9e0..108332c5ccac6e8178addedfc11785b74edb1fa3 100644 (file)
@@ -1,8 +1,8 @@
 %!PS-Adobe-2.0
-%%Creator: dvips(k) 5.997 Copyright 2017 Radical Eye Software
+%%Creator: dvips(k) 5.998 Copyright 2018 Radical Eye Software
 %%Title: bashref.dvi
-%%CreationDate: Mon Mar 19 13:43:29 2018
-%%Pages: 182
+%%CreationDate: Fri Sep  7 20:15:25 2018
+%%Pages: 183
 %%PageOrder: Ascend
 %%BoundingBox: 0 0 612 792
 %%DocumentFonts: CMBX12 CMR10 CMTT10 CMSL10 CMSY10 CMMI12 CMMI10 CMCSC10
@@ -12,7 +12,7 @@
 %DVIPSWebPage: (www.radicaleye.com)
 %DVIPSCommandLine: dvips -D 600 -t letter -o bashref.ps bashref.dvi
 %DVIPSParameters: dpi=600
-%DVIPSSource:  TeX output 2018.03.19:0943
+%DVIPSSource:  TeX output 2018.09.07:1615
 %%BeginProcSet: tex.pro 0 0
 %!
 /TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S
@@ -3453,6 +3453,11 @@ end readonly def
 dup 45 /hyphen put
 dup 47 /slash put
 dup 50 /two put
+dup 73 /I put
+dup 79 /O put
+dup 80 /P put
+dup 83 /S put
+dup 88 /X put
 dup 97 /a put
 dup 98 /b put
 dup 99 /c put
@@ -3655,125 +3660,157 @@ BBBDDBCC34B65A7D17B8BE932148C39084A9C71516582BCE25EBF7C1E0D84314
 095B1E04CC60718A2DC2BCD99B34202878786A58AE7C2F43D985874AB8A3F204
 4DBD4B9240EE96F0487CB687830972BF302F262C6381B2C79773EEB152B712E9
 34E8229E0B59788EB9B9FC1AC1E123751D1FF032610410F0847E6B9B9A575306
-53FC00ED82D0BDA8EB008F2380FDBA06D2F8C0210A261508BA95DD600436E0BF
-5E8A00CE3C92859961557763D413E79CDD37FDB07131FDC420EF525CC0B5377F
-9772D3876DBFDB57FE6275D187832F2B7A635967B201E70B532E85838ED3874B
-82B36AB9EAB7DD4D2B5C4140419CA04E87316E802CC93DE6336C22FEBE80C3A5
-D43A0F808E5E6A17F7BCF812FF5EE5AC1959E07F36B24C9192E375FCA3C0A84C
-1D1DD2093D4F151B9FEFBA90DB4E94A1D68E49DF5A715A5BE04E7B7D8C384D61
-5DDD71F057FEF51DE7D002AB3BFE0096C47EB3AAC7B89EEEB9E2F9CFC6BCDFD9
-A438C1097D5253E49DC0DE5B6E8F976AE8894914BF8CAB5236C8A3BB2A437CE6
-374D96AFC592F1238357817E1F2836EA763A3C0DEA2DD3F7D758BA61307C21F4
-796A18638504797DD9A5131EC48DB0D23FC9A3E069B2FECA5B36A2260C6FED2E
-6EBDE3AED119EDFA96B837C56202ADF7F7747291A43CDDED6EB7DB5B9373CB78
-F6FA0B92BB2C17AD8DA549E878D8DEA681028539E5E2A223E2F9BA4CA09A6FF4
-EA195F1EAE62CC33F2282888962B9032D1C83EC4EDD832866A472426EBA6080A
-75E02F39CE0421C5C06B9D593022C23D675D7BE879FCE0B20A9CBB394F9D3815
-9C847518BB8DDBF3A89D699C1FA84E704B02BC85D61ADA5E548CD8DBE269A3E7
-03626A0FEE75E116F95B5D31C73BC852C5FDCF524542BFD9D05D8EB4B2A114E0
-C2FFCE282CBD87D82C1D4E64772B0492068B139B1795E287899CED7791EF5C8F
-E77391C51552FF08DAA85BC8B9896CB5C792C3E1C4D44E3CAC1EAEC02E4B986F
-E5059463613DD3643F8DCE2264FA66D712A0DACCF86DDAB315393219F5EBD18E
-E220AD61CE3C67664615A5F9734421152382E8EA9CBED8269ACFFC37873BA329
-20649A6F684D31BF37194952496E8B962B75B83CEDE72F0DAAB761120B710677
-F3AECF2A67F512F7C423B1DA012D0D0D44F009346C4953447950F514731830D1
-59D01BFF4511CD0257D5ECC2CC4A859E0ED92627F659547C8F137DC0F49F06D6
-02F624EEBDBC779FBECB1816A88F02B3565A9C3D42E919F755F3D80F6FAB681B
-585B5A49F62581EDE1D1DF1906007A8926932FE74FA2A94B92026DE9D678EA3B
-ABC3C2EE5A3757317AD5F5CD361A511F4019CAF77C46C8FFE4615CD6CFDF7F8C
-8CD06F1A2DDBD3BBA03FBBF8DCC898EE71E7D19CDE66971150359310D0BB68B8
-65F3E41D34C8D063A71C27B6C0F27753A9E35D291477858E5B734D72C40C4573
-203C5529340CB56BC00EA0E02B3DB54173E6480D29D957E6735146163980F0A8
-CA4086192E6095F411939DD3FF19854F8F58B39A23D3ABA22BEAE05C4B6B6845
-98968C08559A037DE955F77359FC39249C1149BC4634D10DAABB086A23D9A37A
-73A61EAB63BE3B1A8D8E76ED94E731169E892B469056757EC885D8AC4FF50E5C
-1D80EFE20E40E26006953C53D765B3BCB4C5396646DB3AEF01F939BD163ADD87
-FEB1E55A73722A0866DEC922EFF8B06AFDF2FC742EB1CA422822BB378310A994
-794062BE62D5BC4D44C25655C902F4FB4FA63CE21E095E4DF3723CFE7D2D961F
-10A715B194ED855942588BDA460A28F1B5D849A34D85756CC8CE874E2384AD9F
-3A1C348996EA94927BCE9715A8B229C0D7FCC2C07592052796D7BAE23DF895DA
-1CF991E912EAC97601FD79F35616A1F23D82647BCB49C360740CF010CA4E8ADF
-97A9CAC032D12919CC167CA4C2E6C60EBB4AB87C8F2BDF71E28E91A9BC96056F
-5D905902AE964E5336CFDACC8C5CFC5607D75CA5F364AB8E9A65FD372BF15FA9
-0CE1519CD7DBF31F92D2A078754E4BF90F3121F6F698DEC238404EDDD4EEA153
-0335941E4EB8F08DE0104FD8633BE277E9ED26FC65D28FC1D604D8504B2F788A
-11E2206ACE8AB33D14CE9D4CFC917008D44AFA2B1877C3D42455593889867784
-7CE696EABDEF95872F065DAFEFAC253F367D47127CE76FCB85BBF0684DD1663C
-876E68EC35B21593A10EA5553311880B8EF744014CD1ACFC067FDFD46978BA23
-C86FBA05CEB66E67621680BEE0ABF82364D4E3235A20033437C6B84A71FB34E6
-F8A160AC477A1302B4F98D00FDDB2A35ED9B315700669D9D8A3D254F786316AF
-882CAC6555A766281A0836CD45D8CD8245CA69729260D54C11DB43032A0FAC0B
-05869ED0A432CEF854FE665BACB0F780C9123B4DA1E1895F8717DDE4A58BD3FD
-D214195066D4587463E839EDF667E475BC04EEDAEC41422AC9BC27C238E88318
-7DFFED5D04AAFB1F63AC651B1A4113B7CE9838ABAF75632EDA8B5EE0C8474678
-58898AD595ACD99029DC34EB4BADE834C04444941C3D8280B93951A9E8554EF9
-5F0FAA218DD8224B94807CE2D8DF7E4A5E2B28C44A551DB0708B5D6D5F000B96
-0422A8E953233296B6E5EA698921F1EEEBDF0C5CC72263663895940B4C1EA28E
-E0E3AF21698D5430D6495E32E0D5F5E538EF835FBCF4A96DAD8F011B145584EF
-1C33809372DF602D1FB3D80A4EAB65897F672642E4317926DF178BAB6F9851C7
-63613B3DB11FF07F9C7582592B620C7767D005D7B0C28AF2D309E6CAC222055F
-2C20A58AC1B407641B483D571B9E959A3AE0DEF316EFF7A4514D5313C47AAFBE
-82CC583BEB32F20E4C3A5650B58812EF357B68F26882D30A6BBEBDE64E2FD910
-AB8D974CE5C968C7D34390529F4714A9F1D2373DB1D912D418225932541FB250
-9C74346749DE9C5662B1C40437E783A78A283AD6EF43B2C111DEFBEECEB17ED7
-3630AE404B310F1148C82F4969A794D945CA5E1C18F39BB6F9C46EDC8BC3C88B
-FAC2116B2338E1AF9C975ECC8474BCA351E3FDF89ED4352FF6A3D6C7EF7A7BDC
-DD4B2DA9E7C77F8A6623B670963D2B9B9A80F8445E17B85194AD45E02FF10484
-85E0A700BDE9F574487F9494B424646D48999EA67D469A22B9CB72123F31EA5E
-51C07370BFB1C5EDB4ADE75E7111A0116C212920F1362353BF58F33D7E8EE680
-DBF8085B46AFC40ED9FFD7AE756CB267D0F321FDB71F2DD35FBD3003E91E2758
-3DED65748BE5CD0D2D244E8FA187749FED44ED0C71056AD954FCF656DE28E70B
-93A79EB4D7BD59E92911EC64EA794732A79B9908B7C6DD42C99BDF07AAA06E07
-5CD6497C489BC56B09E44D22D0FE69521A9BA20ACBFDAB8EE718625711BF479E
-512FEC4A8F9EC7CF66D4CC44E2D0EA1235BF17C3D0AD6859385CECA3D4A640B0
-762D325D3A449BF7115CE8469A493C494721D6636BCB9C55ACF1D0F3489E5534
-4A76A8F3E3AD6252D8CBD3EDFDAC890A7B497286241AFE35B2261B66018A1523
-4B9FD31AE07A6CCA6B91A176BC38BC03F97D71F80270E14B83B012FA5270B7B4
-73F889DED2D4BFB24536E495F96BDF408E3840AF1567E9960A4F22F0B749749B
-C156336BD7F349F2F82CE54B459462CB7C9846CC090E752DCDC871FF0873076E
-8885B0AEF490DB0C9FA98A8FDF84EDFD52AB0F992EEB236A79FB8FB52718EBA6
-E0D586512F81079D468A75336540163B966670B437304F3272CF6E49252662C6
-419E8B2B14D240A1DB0CF6EF14E024F9D8C6882F865D7E007B46DB65E2E6AB1A
-22C5F096B255E91CABA7C441A3149FFB4E19BA97E5D43779C2A80208E279A91E
-8B8A281C079B819BBB6A5B1A62F34D59B7223D9FBB5F5E96F0D9AFEBD3CE3D57
-A4C4D2345776FCA140EA95242C8AF1EE7B93D2676209B750ABFCFC8CAF50F578
-4C364CF8BC46839A4379624D56B7B917743E9D6A284E7B315D461ED66B262413
-A9AE1741C633A92061DF92AAF78A18586CDCA41248C586F7D272378F9CA76980
-202A391CC9FD46794140F06CC75AF2F4986D690939E083CDF9B96D066B1EC8F3
-DE3B68AC8FAB84970B1A199B3F3AA5BE27ED8119F306CC5F26230C16E9D9FB31
-1EE9D3F5175E4D4D7A8A2945000C37BC73816AEDE6F2AC0F09B788C9988BA69B
-82CF336482F490F05725696EB080E460FC03B3E28C1B3613C8E5FE3DEA048D97
-4AC72C9955FDE282FA8C8385B30E3A7EFE247B48B370DCB439FA721BED19AF4C
-FDC3D3543A25A4E0273419B6CDD7209FB336C1542BA56257E5D31B70529C12D7
-524617868F4F3B49799322EDF504750D1BAAE307ABC4843704B64ED8AD4996B7
-5193CEA660390527734BF1448AC09998E70FF15BD70F8B6388B0A987CBC783FC
-990F7A5EA016EBC024F12BC9812C7C4DD6E991DB89415A49D0B265E453732F4D
-2B6BB50E995E719B00DEBE74E7D1E291A739C4EAB39B5A61763DDB65BDA6E1C9
-17C49BF1A76546BE0EDAAA17310AB2D01BDF059B066263C8FFBDA53281C882DA
-E2DA35ECE5B4454C8031DBECD8675B60E54261A7D1F70560C6D8CBAB436EF058
-5A0189426AF00AD7EB43FBD13976D8D769ED2639ACBF613A308C941CDB5A632F
-F76E14224909A8E7E45B9B5A47BDC9B7B3E3616AEC4DEEAF2899A59B6E144802
-534109EB0E3ECD270E417B2E9CD8D27DE637AC798ED5CCF791061297A0B218A6
-1188C03BAC8DD8DD783BBBF8C4C9AE98E8F1EFC4684CA4BEE6D533458BB229ED
-4E31392DC4591DF2D2D07632EBEC0A5FA2C4508C1FD48D56EE871EAF4A84AC07
-A1E34CA2CD81ED369043998A23DD01301D41C582963F07EC3417F09ABF45844E
-A74F386BA813F0AC462FE268407B9D2A8813FFCA604C342CE82493DAF631B2B3
-B6D3E9F3398761C4B958569F0D833D27973B07F9DA9D84AC512C284844C04866
-74A325E4ED894F640B8F802097B7C6C4F04BBBC8A7BC6EAECC60EBBF4E676A30
-4A5D0DE4AB45D0C913CCEEB8032D1946A35928BFB0FD76AE324E7E3CEB5B99C9
-0A0A6EBAA6F6D8E4292F9C5408D3859CFDEBFC9413032FA1A6E194C5F616A3D6
-FB0FEB8966534CCC9E6D67DFCA105E8994810D8EE414DAFC80B8A95CAFA254CA
-CCAA72B84130B5E485529013A35040074072A8A63B2F4384D976BBFA0A743C5A
-0A079A2CD15E598801AD121303CC37A2FD3942776FD1AA0805BED2B646D4D1CD
-9DE65CB859735EDC177C5A4D1A54C3E8BE7A91BCA91AB93A9DACAC90204CC207
-8432E95B2C47654DA02EC1664566E2137860F16F798E0A1EFFC819F4304B0FE2
-AA54AFE0AF6CC26D417B0CC9E3F5F6B9BD6DDDE6A2D7FC4C840E4AEF73452D16
-241FF01413DF2125BA3563B3A49EECC8EC4D0BF06283B3C8242F362A546E71B6
-21F3C6DA63882992A14E295926387D66EA6D9F296455276D4FEF0CDC706FBC25
-57169AAF546A1BC72114A3A6DC3A1A76CE001962D771C267864A987188BF6087
-183573E3E9DED10D7023965D29F19C8950B6B9B83E680010995360E54911AAAB
-44D07524518EE59F58E49485E885F56FF2CF8D30FC5779770685C305AEC4262C
-B8C0C194C26F5E122DF5E4153316C971460C3B3B336C1B72
+53FC00ED82D0BDA8EB008F2380FDBA06D2F8C0210A261508BBB19DFBEC179B30
+7096FFA89BF7951FBACEF0966A91BD315A7E26E57749072B3F38583C06A5F183
+08BFF3CDCD59AC365E3B4C4F34AC30366CF2BD15F19CBCE5F93259A6C4A8CAD5
+0B9186BF146124C758FAEDA8362FE97F209BA5C9FCC5C2A7FC3981F26D28B3A6
+7F1D6C440909613246CF1D25767D45EDC8FE21582D6C4C2C678BB9E98974E303
+402F0394B17CF3F4CCF6940D3ED7668AB6C9DAD83D75B11DD3BBF2619239BED9
+A82B053CDB66086058524A379BA308D5043498471B6B043923A40F6C1BB0B71B
+20D261D529E3FCCE19871D097C7A434CE18673A6BE20C67AFA21F48213B6342E
+4E069367C51173364B697E890FB9E4FA1E8FE0EE6A8E8176F6ECC5DE736D4272
+3B640EBD341D5DA2B2F64F46339F7612D1CD04D5598F2286A87F83220DB31878
+F7E83F90D003AFE46B3B9103BE3E344FA1025DA3F45D309641C3FDFCB8815C36
+A563F017E5EFE9E9F15262C5F676C8602EF3F7AF6F4EFD60CA78847679729FD1
+C3837760E538338DA5F0EB8B24758E4FCDC922904A2740D145935233DDE03DFD
+17610BEE7050CAEEE6C705A22C3BA7FA1EB44D82ECCE837422363147ACE218F2
+DE186AA197D71524186FEB923E2AD093B00AF017AED4BBF997093F5ED44FF286
+124A6256DAB404B36D596739F883F7465E6C0DDDD8970909777818CD73650C3D
+8CE623AD60CF2CDAEEEF25B6FE0C7ACA99C3AEC768A4544E0FC120821BA349C1
+986ECB6F6D69ED8B6B3F77465665BA74AD091397F6BBF6F48A1E0974377D4586
+5C3DA4BE5F33CB86CDFDBF253C4D08382BD6D9D92945136DD376CF76ECA37560
+67729573F060DE73497A3B48229E45E17852459096FE82AAEBCF5DDBE92A7F9D
+8D1B7F8813106BEB2DEDD4E220717F25FCEA468F8E5B975813C48B30734139D7
+F7D65F4ABF157C7E13C16BF304CECBE2367511BF14030602BFDED6D2D0F40AB9
+5FD1EADCB2FF72F2BA0BA7E726E7C21FB9B4E0B094FDD6FD7912BC389C9C3C62
+57616605E5B8064E1DB19FF9805D872840C9B3F7873FD61951E87BB298B525A7
+30F4E7883EFC51B92A60AA1E5D6565E4F2D349E6083500BB8867977E2BBB0CD5
+7FB86FB5FE38E8A066E102E5326502EF581C9CA461E6A75170AD698EC27839F0
+ECA5AC6ACEB4AA6EF4DD71A0FE4154A1043E38D1923036D998A064082C293B41
+3D2440FB88F1CC166DA6BEE7B0BE62441F3D21BAB31CD80788DD1713D4F7D87F
+F130A1DF211A3795A903FEE48EDD3E34F6AB66413AF77418D222B3DC62EC4E9F
+B53937B944ADC8E5A90176FBC7EA949E02FE996A8B2F6879F0B4193A47B6FA15
+6A23805F40ACB43D778A4ECA2529054A2EE6D95495F280DE27D04505A5F3ED46
+3F9B87B8F8F4EBE0FB5A36F3038E16F5773181E6FFDF3230B26B41279BC3E29E
+02B0A4C6671381E680629DD54FA396BEB597E90CC554F3715D599185F787683A
+0C1C1BC30F40205C90398240DF656D5E8E79A4FB9E53ED69E6CCE72A43D675C5
+86EA8939F02CC6359A78314B3662A30F8F48DF1823CD44CB569D3CB9E8F0924B
+15B682E9787827EB92F340E548961011152520DF15CEE47994555961414D80FD
+6FF51E7F4AD38A7FA670CE31210F1D57FC3B06953D2E098B711B0D354793A804
+61D7ABDD46872F370D14F8EEDE07E9DA2F2F6F5A0B6017FC62D6AE57A5C61D2C
+EE55183B80853D1D4D8C08572E9A15F753DBC75A000CFBA6D7B1C04A2FC07E69
+EBF9833C6C76E8DF9345B1C7FB73DA67CF85757621D36EF0D33F392103DE58F3
+C0D7ED8003E2EFDC8383FA42FD054AF7E3025B6CE9A21D7FF94D9E2653498186
+81621CCCF53F7D922007692CFC3E88AADFF7CDDFD85B3A3DF27721B89D0F26CB
+34F987919D2B3F1FDF2400528A426010FD67481F336BFED8C546104CFE0DA536
+7E2056AB878E59CEB3D7B836AA794E98F7DC6B3F00B8B803F1D62E8837A27A9F
+CDEBB3D8C50E71E146FD39D15071674D0D4A1CC2F7D8E050DDEAA9CDE1A60CC8
+BA54B64C6AB7760439573412C781F04CB5E4C143AD7440819B35AD3872E8A07E
+687F96086AB326022E120AE62242CC62982612AF4C7E99C991AF793A24A36E3A
+21D30A9E9C475E97645A9141417FB632EE51258A3F7C52C12A5656C7B3BF2D64
+E6887418B020A6FCEA184FE311DD77F8CAAC3E1E8BCA9473E52236582A3AD1EB
+6DC2725757EB9E348AF2E31AE4035D0B3A17852673C97EA8E105D2426A28D367
+1BFB95DD775FA2E70E571BDDE80AFC982D9AD1F5E6E2671087262D565C0E3BC0
+EE89D0FF1CBFF7095238CB4A031FCEAE085F0BD31CD2B90DED17D8CBCE81FFF4
+4E77C1848E10BBE71B25B5D323139308D7499C0532F956866B8F056C3BF893E3
+9F029CA58F0B7A029FE944F791C0D644FDA80F1497E9FC7319ABBBDE8B47E9DB
+CF6F71E7AB2C8C0AAB6140A5F165F462DB2CF40060DDFF908A52760C9EE72286
+09161743C5F8C342C97CF14F67ED86F2D723FB605BCFC43760B3ABE9C88A549A
+8BB4B01D73821FA191D028E44FB2938417485BF4037170D45D2ED840A3838D6A
+4C514FD4BFC2818EC64C4725E4F1C7D72CC8D3982BC50C5A4ED5995E17DB6E20
+9350D86CC8FAF93F854ADBCC42E26B85CB15343CEA1AA2DC43E40AA823418D1D
+92DD7EBBF041EC62DA9764840D46A414B7EB95B5505147BDC31D40A157FE2B7B
+4C641B398A6039F9EFE1E929301E38805C26D1FB0E32212505B1B954C9CAF259
+E440C327D8239B1FE0BD976DE222C38AF2F3FDFB5DEA74954199CBEAC621D611
+30C13591B9C183BAF93DE896C497E461F4CA33455D4B41FD4C77BE7E7A8968B9
+7602BD7B2989667EB31D56C3169BAD6D48D1CC5DBA8819E88A7339CC92D3DD26
+EC81ED5155345321B9DD8BBC25B3A53D95531098CCAEA8617EED83815AE6DB19
+A2E97160B2226B11665020D19F419A851AF73C19785433AE958B68D48D3EAFA3
+77DD833E47592E39F6C5C159595C32CD08DF326BDEAA4BEBA3587F017AFEA9A3
+A3473BD086862E87B5AFEBF06A4419878BDEC99686D125EE11E76AD881E10D0A
+F5C18041C26CF62F07B89E7DE6D6691127CCF83F7BC7E7AB501324C2D44C05CB
+D0B2754F2AA37FE707C3D2979648BE7FB3C85813E0389FBAB87810BECB5438E2
+9082705FB9BCCC4CC31DACAA5CC95B4876601D8617BC0B0E8F006638DA8545AF
+DA33E5D59C056AACE716466544DC0CFDAD5E5EE60F2A68723FB9DD7C107E6C2F
+4DD97E89BE2EC827052011B1042C724CEB4968ED5DFA9EAAAF88A4C4160143E9
+0EFADC700B31D030E52609ACCD3F5BF346F642B702C298E11DD837B5FF0615E0
+F5E1239C6A6C8964A575533F9B939C17FC99EB384DC725B2CE842C9331A90D31
+3344936CEEFAD1CF2281FFA21110457F21705DAB57B28C24995C73542396D5C3
+927D082DD0B4C220E0680B547A5E3220A6F506A2A94267B32B26004FEFB5AD1D
+7519969EFFDD0540D5BB3F499CBA8ACF8BA23BF054D51271F958CCB03A3E5B46
+E8CA77CE6835B84071916CA149B8BADD510C8226825F3915BE719F1BF30D7640
+4B86BCA2ED6E43CF3DC32861A475B5C555DA7C34B1ACBB71DA16F1D9AC1AC459
+C0A217197561A827F2E625FDE90BE83B718583CB018BAD5A49DFC6FBC573129D
+28B466BF5A889FDCE2F5DE2B413BED566E49CA2374BF587F9B6C87F79A286B0C
+A13A7770DEF8E0CBDB53F20731E870162E3913581AD2F2893D8D4BD1C3AC473F
+66C20BCF90DE4C711D051B6A2D3A5A57C0DE38BC0ABC739E4ACD1E91E156246E
+6776B3EA66C3418144EA76297793E67D7C4A75605F612F832CBDCCBE60279236
+7E5E8D59A9C390D31764FBD10A8671BE3628DD9FA203C90B000D8867D56C13D0
+5123366778DFD71829A064EA9CC3CBE9C7E0493307129F99702BC522211BE363
+F9A19038EC98672E3B467BFCCEDCFE7C89865C832E4A0939CD1701D6B2E7D88E
+0211CB61AF49A4A7142F3C4142489D11CAC418AEC20A706080B7B81425783794
+A68040FD847CC21F70D67A07867AD6384380DB4021AE764EDD2CB3F963399A4A
+81DCBB3488D16096631DC2CB4F419E9049D9A79B4ABD73A8E774A7255B69885E
+47D0CE20B65E837CF0EEAD9D373058A6B2569C55BB949C4C566D4607F01D8428
+FFE577130A2F9D401898847307E445D60B8BD6AEB7ED7385108036FF1F4EAE5D
+52CDA197065FBD2F70749E38E5A90E313F059B24776F9A749F846788C2AD1439
+CACDC874C20C9BF9A6615C7C897600F2E3BF821E1799E40445E29AA9BD63B91F
+61B9AFF3B82634D1454696315961BC8E2D7AE1BE4E5080E721E8DEA53F44B690
+5704CF886FCFC26E2838BE675D1014723E4D56189B5A7E65A3C20A0AC3A0134A
+A44CE1A7441BE18660C783BE5813723D0AACD76CF8F076B58CA069FFB73AD779
+47ED97053C750072022CCA6655BD40FD8C55299505F4185CFB01C7C31761A75C
+3CDC009FDD666D82C15897007321F13C88D316CC39A262A30DF71F417035A0A6
+691BB4CC99ABA64602D8175999CF835AD999550F90699BC6B8195E5C5DFBF12E
+CA83FB05CACA501A66F49E65F5283883EC4827914CB72B9FEF723B010CD58192
+5528BDAA88B52B362B02FB31F32AECF4CBBBD6719187339F8F5A199663F56A26
+A90574A586FEA95BF0A3ED3B4DAA223F5D5FEC7B4782E6DBE7ED76E2575CEE2A
+49FFD60D976E6069F98F933F6CCB517220D05C9343AD7E6153EBFB31FC84D40D
+582274C484B16742CC4EC64E63A8B8D6E9372FC62976456B78F16184086BD180
+08FBCBCFDF94C777F3905BAE198090AB09C85130C07160FD111DCDA5E095247D
+A647ED88D7B75A2265F819D82FDA474FB08C08DB58B6B6B821382BC9A6D5FDF6
+1EFF0CA350A463EF9B651CBF84EDBFE2AC986AF8636D1D9A9963D401CEEEFEBE
+BFEBAD3B9DFE073BDC21933323E704182AC95D3D5C85E6E47800AF01B244267F
+2B5BC626B5CB796D2EC7A0A9C8878C1FE14ECC924D1E791561073DED0F14F7C3
+B64AC2D28F396A4C9B93DACF026619D3F8BDB54FD04BD9CC183FE4CC7474976A
+60320C568E9F3850C21FD2240914E4262B370E6D47367E2B15EC09F377FF2F4C
+D46518B529835A89A8FE1A70E24DB827D7BBBD756A50603099BE248B318E8D32
+96CFD61B9710B3A2D60B5027020807951138ECC206C626C3691589935F681851
+779ACB632AC58641E5B59ED49B72A5B3B3CDB2E5D88FBB113C6C4807AA344EA5
+F1B3AB548C7DEFC57DA52F4BCD41CCB04ABA2570DF9758CD55A622C533826EB3
+43F42A28A5A348FC056E974D1BBB4D7213FED3D8C2F862130F299481091D46E2
+2DAABFA91A9F8115DE79D2CABBB7686CC7571251CE6876D8EBE71C9EB45BEDA6
+1F845F7AAB768498557F45F5B94DE6E59BFF0B336D901D4503A0064F64169DD3
+6BF1D67C73C1365924B876F94C7484C8909D567300AC73AA4246D043A301E80E
+5E38A79B2090D5548B633FBB39509B346D2E7510FF6F70E54EA642BF2765DBE0
+3495C66A2E9F3DBCBBA5851F0D3764780499D416E002237702C32E492EA02909
+5ADDA6E8FC7314ECE22F586A05FBEA7F35D96CB2D1892AC9A78656C2AAD47182
+9029C3145F208608B4508AFF111EAFBCD37690D07E31ED18AA94C10D62A12844
+C3808AC8DA5CA8F2D99394693E190F6C02AEFC60A637AD8ED2DFEBCEF08EC3D8
+86725D3F852A90FA74F9CAFBC12DD0146EF2A741B9491A43BCA08B9D68765233
+247B74F12712204D2E66AD91F44B392002B57E691D541EC46B0692A963C07496
+1B8BE15305139D77C92580FA06D9C809B263029117B82A0A78ABE9C6DC0F61C3
+A8ECD12138927031B9D1CCF9A7BFCB7F37873249A7CEE6E49998420B4466B06A
+448EDC2F4B00C73FEF997171AA4364DC49DD5E3D59F31C9DC29064CBC0503FA4
+0188BAE53D62C5BFAA13835C14536C07547DECFD8DB00B7B9590B69D29733E4C
+27B3D020EC1843ECBFD4F1C74D210F7E886407874F52893D5E4D960C311056E5
+AAB46CE02CDB2D14F5BA22AA8AAC05CAF62CA950D6CC279AD6FB80BA1194EA2C
+B380CE9D6F03613542860AD8A21D35C300FF5881885B73745A87228642D981B9
+A19DBD36CFDA547468F0259715F564807E1BF59FC29D4ED8F8A394AAC4609C24
+FBE3F169EB8BC230B5788BE64846AA1E4A92EF1DBF768AEEB465025CA94DAB15
+5068385CE16A9995FA5B117AE9B7BC9A21A40EDFECB2CF53E48FDBAAC9B73C73
+D1129088EEB0C16CED9F042A1375A6E28586C7CCF7A7798CC4F14FD6AEBE9341
+DA1222BA55114253A32A7DE2FD81A269D801E61694A7A5549FDF6555F064AE3B
+DE3B689D8A89840976988D9AB4E9FA38F6F1F563AD72E769CE32AD3764F86226
+327CF11586E8711493731FCBD0F88A02BDA98D73EBD6AD50BD2E1416E01ED0E4
+618A830F6CA2DA58CA47680F705E026B53063D0DF143C59C06066F4A4F0B4707
+C28414153F1001B54E7C470938B972C249EB2B65782FCD0FE61ECAE1B7459F23
+FD9637BD0DAFBFEC2F1E0C715A21F13B6EAAD1017938169122C459F1BB9B56A9
+6D93C017E2FFCB4F81DBA0933A2F37C42C0673336124F0A696F24A58021D9D77
+AC5E73816149EDD6EA75AC1E485CE60E08B84059CAD12A6D9D4C969F0C9153F7
+DCDDF6DC1D409A14539FF828799AC16339106C783DD589E71274B5CB35A5EA3B
+ACEE350AFF93B457C0659CE844783EC57C26BFB35CD43EF81190B9773280878F
+6AA50BD9833F4D7DB73A8BE384A08C9A45401E6FC9E1E3ADF70FC5A0BBBA001A
+2A5ED51A820ACEF131B5EF9E21EA84945F9D
 0000000000000000000000000000000000000000000000000000000000000000
 0000000000000000000000000000000000000000000000000000000000000000
 0000000000000000000000000000000000000000000000000000000000000000
@@ -7549,37 +7586,38 @@ TeXDict begin 40258431 52099146 1000 600 600 (bashref.dvi)
 /CMBX12 rf /Fl 135[42 1[42 1[30 37 38 1[46 46 51 74 23
 2[28 1[42 1[42 46 42 1[46 51[33 32[51 12[{}18 90.9091
 /CMTI10 rf /Fm 135[56 2[56 1[42 55 1[51 58 56 68 47 2[27
-1[58 49 51 57 54 53 56 46[50 2[50 1[34 45[{}20 90.9091
-/CMCSC10 rf /Fn 197[25 58[{}1 90.9091 /CMMI10 rf /Fo
-197[33 58[{}1 119.552 /CMMI12 rf /Fp 134[85 85 1[85 90
-63 64 66 1[90 81 90 134 45 1[49 45 90 81 49 74 90 72
-90 78 10[122 124 112 90 120 3[126 153 97 1[83 60 126
-127 101 106 124 117 115 122 7[81 81 81 81 81 81 81 81
-81 81 35[90 94 11[{}52 143.462 /CMBX12 rf /Fq 200[0 21[91
-17[45 1[91 12[71{}5 90.9091 /CMSY10 rf /Fr 133[40 48
-48 66 48 51 35 36 36 48 51 45 51 76 25 48 28 25 51 45
-28 40 51 40 51 45 7[68 68 93 1[68 66 51 67 1[62 71 68
-83 57 71 1[33 68 71 59 62 69 66 64 68 12[45 45 45 45
-3[30 8[45 21[76 1[51 53 11[{}57 90.9091 /CMSL10 rf /Fs
-132[67 1[71 71 97 71 75 52 53 55 1[75 67 75 112 37 71
-41 37 75 67 41 61 75 60 75 65 3[37 1[37 1[102 102 139
-102 103 94 75 100 101 92 101 105 128 81 105 69 50 105
-106 85 88 103 97 96 102 105 64 4[37 67 67 67 67 67 67
-67 67 67 67 1[37 1[37 1[67 5[67 112 1[41 20[75 78 11[{}73
-119.552 /CMBX12 rf /Ft 129[48 48 48 48 48 48 48 48 48
+1[58 49 51 57 54 53 56 8[74 4[56 2[67 77 5[37 22[50 2[50
+1[34 45[{}25 90.9091 /CMCSC10 rf /Fn 197[25 58[{}1 90.9091
+/CMMI10 rf /Fo 197[33 58[{}1 119.552 /CMMI12 rf /Fp 134[85
+85 1[85 90 63 64 66 1[90 81 90 134 45 1[49 45 90 81 49
+74 90 72 90 78 10[122 124 112 90 120 3[126 153 97 1[83
+60 126 127 101 106 124 117 115 122 7[81 81 81 81 81 81
+81 81 81 81 35[90 94 11[{}52 143.462 /CMBX12 rf /Fq 200[0
+21[91 17[45 1[91 12[71{}5 90.9091 /CMSY10 rf /Fr 133[40
+48 48 66 48 51 35 36 36 48 51 45 51 76 25 48 28 25 51
+45 28 40 51 40 51 45 7[68 68 93 1[68 66 51 67 1[62 71
+68 83 57 71 1[33 68 71 59 62 69 66 64 68 12[45 45 45
+45 3[30 8[45 21[76 1[51 53 11[{}57 90.9091 /CMSL10 rf
+/Fs 132[67 1[71 71 97 71 75 52 53 55 1[75 67 75 112 37
+71 41 37 75 67 41 61 75 60 75 65 3[37 1[37 1[102 102
+139 102 103 94 75 100 101 92 101 105 128 81 105 69 50
+105 106 85 88 103 97 96 102 105 64 4[37 67 67 67 67 67
+67 67 67 67 67 1[37 1[37 1[67 5[67 112 1[41 20[75 78
+11[{}73 119.552 /CMBX12 rf /Ft 129[48 48 48 48 48 48
 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48
 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48
-48 48 48 48 48 48 48 1[48 48 48 48 48 48 48 48 48 48
+48 48 48 48 48 48 48 48 48 48 1[48 48 48 48 48 48 48
 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48
-48 48 48 48 48 48 48 48 48 48 48 48 48 33[{}93 90.9091
-/CMTT10 rf /Fu 131[91 45 40 48 48 66 48 51 35 36 36 48
-51 45 51 76 25 48 28 25 51 45 28 40 51 40 51 45 25 2[25
-45 25 56 68 68 93 68 68 66 51 67 71 62 71 68 83 57 71
-47 33 68 71 59 62 69 66 64 68 71 43 1[71 1[25 25 45 45
-45 45 45 45 45 45 45 45 45 25 30 25 1[45 35 35 25 71
-76 45 76 45 25 18[76 51 51 53 11[{}91 90.9091 /CMR10
-rf /Fv 138[108 1[76 79 3[108 1[54 3[108 1[59 88 1[86
-1[94 14[144 4[184 10[138 66[{}13 172.154 /CMBX12 rf end
+48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 33[{}93
+90.9091 /CMTT10 rf /Fu 131[91 45 40 48 48 66 48 51 35
+36 36 48 51 45 51 76 25 48 28 25 51 45 28 40 51 40 51
+45 25 2[25 45 25 56 68 68 93 68 68 66 51 67 71 62 71
+68 83 57 71 47 33 68 71 59 62 69 66 64 68 71 43 1[71
+1[25 25 45 45 45 45 45 45 45 45 45 45 45 25 30 25 1[45
+35 35 25 71 76 45 76 45 25 18[76 51 51 53 11[{}91 90.9091
+/CMR10 rf /Fv 138[108 1[76 79 3[108 1[54 3[108 1[59 88
+1[86 1[94 14[144 4[184 10[138 66[{}13 172.154 /CMBX12
+rf end
 %%EndProlog
 %%BeginSetup
 %%Feature: *Resolution 600dpi
@@ -7596,7 +7634,7 @@ ifelse
 TeXDict begin 1 0 bop 150 1318 a Fv(Bash)64 b(Reference)j(Man)-5
 b(ual)p 150 1385 3600 34 v 2361 1481 a Fu(Reference)31
 b(Do)s(cumen)m(tation)i(for)d(Bash)2428 1589 y(Edition)h(5.0,)g(for)f
-Ft(Bash)g Fu(V)-8 b(ersion)31 b(5.0.)3285 1697 y(Marc)m(h)g(2018)150
+Ft(Bash)g Fu(V)-8 b(ersion)31 b(5.0.)3252 1697 y(August)f(2018)150
 4927 y Fs(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
@@ -7604,10 +7642,10 @@ b(oundation)p 150 5141 3600 17 v eop end
 %%Page: 2 2
 TeXDict begin 2 1 bop 150 4279 a Fu(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 4389 y(5.0,)c(15)f(Marc)m(h)g
-(2018\).)150 4523 y(This)f(is)h(Edition)f(5.0,)i(last)g(up)s(dated)d
-(15)j(Marc)m(h)f(2018,)i(of)e Fr(The)f(GNU)h(Bash)g(Reference)g(Man)m
-(ual)p Fu(,)h(for)150 4633 y Ft(Bash)p Fu(,)d(V)-8 b(ersion)31
+(the)h(Bash)f(shell)h(\(v)m(ersion)150 4389 y(5.0,)c(7)e(August)h
+(2018\).)150 4523 y(This)g(is)g(Edition)h(5.0,)h(last)f(up)s(dated)e(7)
+i(August)f(2018,)j(of)e Fr(The)e(GNU)j(Bash)e(Reference)h(Man)m(ual)p
+Fu(,)h(for)150 4633 y Ft(Bash)p Fu(,)c(V)-8 b(ersion)31
 b(5.0.)150 4767 y(Cop)m(yrigh)m(t)602 4764 y(c)577 4767
 y Fq(\015)f Fu(1988{2018)35 b(F)-8 b(ree)31 b(Soft)m(w)m(are)h(F)-8
 b(oundation,)31 b(Inc.)390 4902 y(P)m(ermission)21 b(is)f(gran)m(ted)h
@@ -7717,7 +7755,7 @@ h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)38 b
 Fu(19)399 3863 y(3.4.1)93 b(P)m(ositional)32 b(P)m(arameters)8
 b Fn(:)17 b(:)f(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h
 (:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)
-h(:)f(:)h(:)21 b Fu(20)399 3973 y(3.4.2)93 b(Sp)s(ecial)30
+h(:)f(:)h(:)21 b Fu(21)399 3973 y(3.4.2)93 b(Sp)s(ecial)30
 b(P)m(arameters)c Fn(:)16 b(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f
 (:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)
 g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)37 b Fu(21)275 4082
@@ -7728,7 +7766,7 @@ f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f
 b(Expansion)9 b Fn(:)15 b(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g
 (:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)
 h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)22 b
-Fu(22)399 4301 y(3.5.2)93 b(Tilde)30 b(Expansion)18 b
+Fu(23)399 4301 y(3.5.2)93 b(Tilde)30 b(Expansion)18 b
 Fn(:)d(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f
 (:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)
 f(:)h(:)f(:)g(:)h(:)f(:)h(:)31 b Fu(23)399 4411 y(3.5.3)93
@@ -7741,27 +7779,27 @@ g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)33 b Fu(30)399 4630
 y(3.5.5)93 b(Arithmetic)31 b(Expansion)c Fn(:)15 b(:)h(:)f(:)g(:)h(:)f
 (:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)
 g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)40 b
-Fu(30)399 4740 y(3.5.6)93 b(Pro)s(cess)30 b(Substitution)15
+Fu(31)399 4740 y(3.5.6)93 b(Pro)s(cess)30 b(Substitution)15
 b Fn(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)
 h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h
-(:)f(:)g(:)h(:)28 b Fu(30)399 4849 y(3.5.7)93 b(W)-8
+(:)f(:)g(:)h(:)28 b Fu(31)399 4849 y(3.5.7)93 b(W)-8
 b(ord)31 b(Splitting)d Fn(:)15 b(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)
 g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g
 (:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)41
 b Fu(31)399 4959 y(3.5.8)93 b(Filename)32 b(Expansion)22
 b Fn(:)14 b(:)h(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f
 (:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)
-f(:)h(:)f(:)g(:)35 b Fu(31)524 5068 y(3.5.8.1)93 b(P)m(attern)31
+f(:)h(:)f(:)g(:)35 b Fu(32)524 5068 y(3.5.8.1)93 b(P)m(attern)31
 b(Matc)m(hing)14 b Fn(:)k(:)d(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g
 (:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)
-h(:)f(:)g(:)h(:)f(:)h(:)27 b Fu(32)399 5178 y(3.5.9)93
+h(:)f(:)g(:)h(:)f(:)h(:)27 b Fu(33)399 5178 y(3.5.9)93
 b(Quote)31 b(Remo)m(v)-5 b(al)17 b Fn(:)g(:)e(:)h(:)f(:)h(:)f(:)g(:)h
 (:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)
 f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)30
-b Fu(33)275 5288 y(3.6)92 b(Redirections)14 b Fn(:)i(:)f(:)g(:)h(:)f(:)
+b Fu(34)275 5288 y(3.6)92 b(Redirections)14 b Fn(:)i(:)f(:)g(:)h(:)f(:)
 h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g
 (:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)
-h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)27 b Fu(33)p
+h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)27 b Fu(34)p
 eop end
 %%Page: -2 4
 TeXDict begin -2 3 bop 3699 -116 a Fu(ii)399 83 y(3.6.1)93
@@ -7774,9 +7812,9 @@ h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h
 (:)f(:)g(:)h(:)f(:)28 b Fu(35)399 302 y(3.6.3)93 b(App)s(ending)28
 b(Redirected)k(Output)20 b Fn(:)14 b(:)h(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)
 g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f
-(:)33 b Fu(35)399 412 y(3.6.4)93 b(Redirecting)31 b(Standard)e(Output)h
+(:)33 b Fu(36)399 412 y(3.6.4)93 b(Redirecting)31 b(Standard)e(Output)h
 (and)f(Standard)h(Error)16 b Fn(:)e(:)i(:)f(:)g(:)h(:)f(:)h(:)f(:)29
-b Fu(35)399 521 y(3.6.5)93 b(App)s(ending)28 b(Standard)i(Output)f(and)
+b Fu(36)399 521 y(3.6.5)93 b(App)s(ending)28 b(Standard)i(Output)f(and)
 h(Standard)f(Error)d Fn(:)15 b(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)40
 b Fu(36)399 631 y(3.6.6)93 b(Here)31 b(Do)s(cumen)m(ts)15
 b Fn(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)
@@ -7785,10 +7823,10 @@ h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h
 b(Here)31 b(Strings)16 b Fn(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f
 (:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)
 f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)29
-b Fu(36)399 850 y(3.6.8)93 b(Duplicating)32 b(File)f(Descriptors)25
+b Fu(37)399 850 y(3.6.8)93 b(Duplicating)32 b(File)f(Descriptors)25
 b Fn(:)15 b(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h
 (:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)37
-b Fu(36)399 960 y(3.6.9)93 b(Mo)m(ving)32 b(File)f(Descriptors)d
+b Fu(37)399 960 y(3.6.9)93 b(Mo)m(ving)32 b(File)f(Descriptors)d
 Fn(:)16 b(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h
 (:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)
 40 b Fu(37)399 1069 y(3.6.10)93 b(Op)s(ening)29 b(File)j(Descriptors)f
@@ -7796,26 +7834,26 @@ Fn(:)16 b(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h
 (:)41 b Fu(37)275 1179 y(3.7)92 b(Executing)31 b(Commands)24
 b Fn(:)15 b(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f
 (:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)
-g(:)h(:)f(:)h(:)f(:)g(:)h(:)38 b Fu(37)399 1289 y(3.7.1)93
+g(:)h(:)f(:)h(:)f(:)g(:)h(:)38 b Fu(38)399 1289 y(3.7.1)93
 b(Simple)30 b(Command)f(Expansion)11 b Fn(:)k(:)g(:)h(:)f(:)g(:)h(:)f
 (:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)
-h(:)f(:)g(:)h(:)f(:)24 b Fu(37)399 1398 y(3.7.2)93 b(Command)29
+h(:)f(:)g(:)h(:)f(:)24 b Fu(38)399 1398 y(3.7.2)93 b(Command)29
 b(Searc)m(h)i(and)f(Execution)15 b Fn(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g
 (:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)
 28 b Fu(38)399 1508 y(3.7.3)93 b(Command)29 b(Execution)i(En)m
 (vironmen)m(t)17 b Fn(:)e(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f
-(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)30 b Fu(38)399
+(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)30 b Fu(39)399
 1617 y(3.7.4)93 b(En)m(vironmen)m(t)26 b Fn(:)16 b(:)f(:)g(:)h(:)f(:)h
 (:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)
 h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h
-(:)f(:)g(:)h(:)39 b Fu(39)399 1727 y(3.7.5)93 b(Exit)31
+(:)f(:)g(:)h(:)39 b Fu(40)399 1727 y(3.7.5)93 b(Exit)31
 b(Status)16 b Fn(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)
 f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f
 (:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)29
 b Fu(40)399 1836 y(3.7.6)93 b(Signals)23 b Fn(:)15 b(:)h(:)f(:)h(:)f(:)
 g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f
 (:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)
-h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)36 b Fu(40)275
+h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)36 b Fu(41)275
 1946 y(3.8)92 b(Shell)30 b(Scripts)12 b Fn(:)i(:)i(:)f(:)h(:)f(:)h(:)f
 (:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)
 f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f
@@ -8033,66 +8071,66 @@ h(:)f(:)h(:)f(:)g(:)29 b Fu(144)p eop end
 TeXDict begin -4 5 bop 3677 -116 a Fu(iv)150 83 y Fs(10)135
 b(Installing)46 b(Bash)16 b Fo(:)j(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f
 (:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)
-f(:)h(:)f(:)29 b Fs(145)275 220 y Fu(10.1)92 b(Basic)32
+f(:)h(:)f(:)29 b Fs(146)275 220 y Fu(10.1)92 b(Basic)32
 b(Installation)8 b Fn(:)17 b(:)f(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)
 h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g
 (:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)22
-b Fu(145)275 330 y(10.2)92 b(Compilers)30 b(and)g(Options)17
+b Fu(146)275 330 y(10.2)92 b(Compilers)30 b(and)g(Options)17
 b Fn(:)d(:)i(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)
 f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h
-(:)f(:)h(:)f(:)30 b Fu(146)275 439 y(10.3)92 b(Compiling)30
+(:)f(:)h(:)f(:)30 b Fu(147)275 439 y(10.3)92 b(Compiling)30
 b(F)-8 b(or)32 b(Multiple)f(Arc)m(hitectures)10 b Fn(:)16
 b(:)f(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f
-(:)g(:)h(:)f(:)h(:)f(:)23 b Fu(146)275 549 y(10.4)92
+(:)g(:)h(:)f(:)h(:)f(:)23 b Fu(147)275 549 y(10.4)92
 b(Installation)32 b(Names)22 b Fn(:)16 b(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)
 f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h
 (:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)35
-b Fu(146)275 658 y(10.5)92 b(Sp)s(ecifying)30 b(the)g(System)h(T)m(yp)s
+b Fu(147)275 658 y(10.5)92 b(Sp)s(ecifying)30 b(the)g(System)h(T)m(yp)s
 (e)21 b Fn(:)14 b(:)i(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h
 (:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)
-h(:)34 b Fu(147)275 768 y(10.6)92 b(Sharing)30 b(Defaults)24
+h(:)34 b Fu(148)275 768 y(10.6)92 b(Sharing)30 b(Defaults)24
 b Fn(:)16 b(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f
 (:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)
-f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)37 b Fu(147)275
+f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)37 b Fu(148)275
 878 y(10.7)92 b(Op)s(eration)30 b(Con)m(trols)12 b Fn(:)k(:)f(:)h(:)f
 (:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)
 f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f
-(:)h(:)f(:)25 b Fu(147)275 987 y(10.8)92 b(Optional)31
+(:)h(:)f(:)25 b Fu(148)275 987 y(10.8)92 b(Optional)31
 b(F)-8 b(eatures)19 b Fn(:)d(:)g(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)
 h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h
 (:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)32
-b Fu(148)150 1238 y Fs(App)t(endix)44 b(A)119 b(Rep)t(orting)46
+b Fu(149)150 1238 y Fs(App)t(endix)44 b(A)119 b(Rep)t(orting)46
 b(Bugs)21 b Fo(:)f(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)h
-(:)f(:)g(:)h(:)f(:)35 b Fs(153)150 1498 y(App)t(endix)44
+(:)f(:)g(:)h(:)f(:)35 b Fs(154)150 1498 y(App)t(endix)44
 b(B)125 b(Ma)7 b(jor)46 b(Di\013erences)g(F)-11 b(rom)284
 1639 y(The)45 b(Bourne)f(Shell)35 b Fo(:)19 b(:)h(:)f(:)h(:)f(:)h(:)f
 (:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)h(:)
-f(:)g(:)h(:)f(:)h(:)47 b Fs(154)275 1776 y Fu(B.1)92
+f(:)g(:)h(:)f(:)h(:)47 b Fs(155)275 1776 y Fu(B.1)92
 b(Implemen)m(tation)31 b(Di\013erences)h(F)-8 b(rom)31
 b(The)e(SVR4.2)j(Shell)22 b Fn(:)15 b(:)g(:)g(:)h(:)f(:)h(:)f(:)g(:)h
-(:)35 b Fu(158)150 2027 y Fs(App)t(endix)44 b(C)124 b(GNU)36
+(:)35 b Fu(159)150 2027 y Fs(App)t(endix)44 b(C)124 b(GNU)36
 b(F)-11 b(ree)35 b(Do)t(cumen)l(tation)i(License)25 b
-Fo(:)20 b(:)29 b Fs(160)150 2305 y(App)t(endix)44 b(D)118
+Fo(:)20 b(:)29 b Fs(161)150 2305 y(App)t(endix)44 b(D)118
 b(Indexes)27 b Fo(:)20 b(:)g(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)
 h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)40
-b Fs(168)275 2442 y Fu(D.1)92 b(Index)29 b(of)i(Shell)f(Builtin)h
+b Fs(169)275 2442 y Fu(D.1)92 b(Index)29 b(of)i(Shell)f(Builtin)h
 (Commands)23 b Fn(:)16 b(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)
 g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)38
-b Fu(168)275 2552 y(D.2)92 b(Index)29 b(of)i(Shell)f(Reserv)m(ed)h(W)-8
+b Fu(169)275 2552 y(D.2)92 b(Index)29 b(of)i(Shell)f(Reserv)m(ed)h(W)-8
 b(ords)20 b Fn(:)c(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f
 (:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)34
-b Fu(169)275 2661 y(D.3)92 b(P)m(arameter)31 b(and)f(V)-8
+b Fu(170)275 2661 y(D.3)92 b(P)m(arameter)31 b(and)f(V)-8
 b(ariable)32 b(Index)27 b Fn(:)16 b(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g
 (:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)
-h(:)f(:)g(:)42 b Fu(170)275 2771 y(D.4)92 b(F)-8 b(unction)31
+h(:)f(:)g(:)42 b Fu(171)275 2771 y(D.4)92 b(F)-8 b(unction)31
 b(Index)24 b Fn(:)15 b(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h
 (:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)
 f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)38
-b Fu(172)275 2880 y(D.5)92 b(Concept)30 b(Index)15 b
+b Fu(173)275 2880 y(D.5)92 b(Concept)30 b(Index)15 b
 Fn(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h
 (:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)
 h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)29 b
-Fu(174)p eop end
+Fu(175)p eop end
 %%Page: 1 7
 TeXDict begin 1 6 bop 3705 -116 a Fu(1)150 299 y Fp(1)80
 b(In)l(tro)t(duction)150 604 y Fs(1.1)68 b(What)45 b(is)g(Bash?)150
@@ -8241,7 +8279,7 @@ b(and)e(function)h(names.)630 4020 y(Also)31 b(referred)f(to)h(as)f(an)
 h Ft(identifier)p Fu(.)150 4186 y Ft(operator)96 b Fu(A)38
 b Ft(control)28 b(operator)36 b Fu(or)h(a)i Ft(redirection)27
 b(operator)p Fu(.)61 b(See)38 b(Section)g(3.6)h([Redirec-)630
-4295 y(tions],)f(page)f(33,)i(for)d(a)g(list)h(of)f(redirection)h(op)s
+4295 y(tions],)f(page)f(34,)i(for)d(a)g(list)h(of)f(redirection)h(op)s
 (erators.)58 b(Op)s(erators)35 b(con)m(tain)j(at)f(least)630
 4405 y(one)31 b(unquoted)e Ft(metacharacter)p Fu(.)150
 4570 y Ft(process)f(group)630 4680 y Fu(A)i(collection)k(of)c(related)h
@@ -8331,13 +8369,13 @@ b(the)h(v)-5 b(arious)40 b(shell)h(expansions)f(\(see)h(Section)g(3.5)g
 ([Shell)g(Expansions],)h(page)f(22\),)330 4551 y(breaking)35
 b(the)g(expanded)g(tok)m(ens)h(in)m(to)g(lists)f(of)g(\014lenames)h
 (\(see)g(Section)f(3.5.8)i([Filename)g(Ex-)330 4661 y(pansion],)30
-b(page)h(31\))h(and)e(commands)g(and)g(argumen)m(ts.)199
+b(page)h(32\))h(and)e(commands)g(and)g(argumen)m(ts.)199
 4807 y(5.)61 b(P)m(erforms)36 b(an)m(y)i(necessary)f(redirections)g
-(\(see)h(Section)f(3.6)h([Redirections],)i(page)e(33\))g(and)e(re-)330
+(\(see)h(Section)f(3.6)h([Redirections],)i(page)e(34\))g(and)e(re-)330
 4916 y(mo)m(v)m(es)c(the)e(redirection)h(op)s(erators)g(and)f(their)g
 (op)s(erands)f(from)h(the)h(argumen)m(t)f(list.)199 5062
 y(6.)61 b(Executes)31 b(the)g(command)f(\(see)h(Section)g(3.7)h
-([Executing)f(Commands],)f(page)h(37\).)199 5208 y(7.)61
+([Executing)f(Commands],)f(page)h(38\).)199 5208 y(7.)61
 b(Optionally)40 b(w)m(aits)g(for)f(the)g(command)g(to)h(complete)g(and)
 f(collects)i(its)f(exit)g(status)f(\(see)h(Sec-)330 5317
 y(tion)31 b(3.7.5)h([Exit)f(Status],)g(page)g(40\).)p
@@ -8581,7 +8619,7 @@ b(Basic)32 b(Shell)e(F)-8 b(eatures)2292 b(9)275 299
 y(Eac)m(h)29 b(command)g(in)g(a)g(pip)s(eline)g(is)g(executed)h(in)e
 (its)i(o)m(wn)f(subshell,)f(whic)m(h)h(is)g(a)g(separate)h(pro)s(cess)
 150 408 y(\(see)g(Section)g(3.7.3)h([Command)e(Execution)h(En)m
-(vironmen)m(t],)g(page)g(38\).)41 b(If)29 b(the)g Ft(lastpipe)e
+(vironmen)m(t],)g(page)g(39\).)41 b(If)29 b(the)g Ft(lastpipe)e
 Fu(option)j(is)150 518 y(enabled)35 b(using)g(the)g Ft(shopt)f
 Fu(builtin)g(\(see)i(Section)g(4.3.2)h([The)e(Shopt)f(Builtin],)j(page)
 f(65\),)i(the)d(last)150 628 y(elemen)m(t)d(of)e(a)h(pip)s(eline)f(ma)m
@@ -8652,7 +8690,7 @@ Fu(Comp)s(ound)29 b(commands)h(are)i(the)f(shell)g(programming)f
 (op)s(erator)f(and)g(is)g(terminated)g(b)m(y)g(a)g(corresp)s(onding)f
 (reserv)m(ed)150 5121 y(w)m(ord)i(or)g(op)s(erator.)40
 b(An)m(y)26 b(redirections)g(\(see)i(Section)f(3.6)g([Redirections],)h
-(page)f(33\))h(asso)s(ciated)f(with)150 5230 y(a)k(comp)s(ound)f
+(page)f(34\))h(asso)s(ciated)f(with)150 5230 y(a)k(comp)s(ound)f
 (command)h(apply)f(to)i(all)g(commands)f(within)f(that)i(comp)s(ound)d
 (command)i(unless)f(ex-)150 5340 y(plicitly)i(o)m(v)m(erridden.)p
 eop end
@@ -8759,2440 +8797,2462 @@ y(executed.)k(The)34 b(return)g(status)h(is)f(the)h(exit)h(status)f(of)
 g(the)g(last)g(command)g(executed,)630 2060 y(or)30 b(zero)i(if)e(no)g
 (condition)h(tested)g(true.)150 2222 y Ft(case)288 b
 Fu(The)30 b(syn)m(tax)h(of)f(the)h Ft(case)e Fu(command)h(is:)870
-2358 y Ft(case)47 b Fj(word)f Ft(in)h([)h([\(])f Fj(pattern)f
-Ft([|)h Fj(pattern)p Ft(]...)m(\))g Fj(command-list)e
-Ft(;;]...)h(esac)630 2494 y(case)20 b Fu(will)i(selectiv)m(ely)j
-(execute)e(the)e Fr(command-list)k Fu(corresp)s(onding)20
-b(to)i(the)g(\014rst)f Fr(pattern)630 2604 y Fu(that)h(matc)m(hes)h
+2358 y Ft(case)47 b Fj(word)f Ft(in)1061 2468 y([)h([\(])g
+Fj(pattern)f Ft([|)h Fj(pattern)p Ft(]...)m(\))h Fj(command-list)c
+Ft(;;]...)870 2577 y(esac)630 2713 y(case)20 b Fu(will)i(selectiv)m
+(ely)j(execute)e(the)e Fr(command-list)k Fu(corresp)s(onding)20
+b(to)i(the)g(\014rst)f Fr(pattern)630 2823 y Fu(that)h(matc)m(hes)h
 Fr(w)m(ord)p Fu(.)38 b(The)21 b(matc)m(h)h(is)g(p)s(erformed)e
 (according)j(to)f(the)g(rules)g(describ)s(ed)e(b)s(e-)630
-2713 y(lo)m(w)25 b(in)e(Section)i(3.5.8.1)h([P)m(attern)f(Matc)m
-(hing],)i(page)e(32.)39 b(If)23 b(the)h Ft(nocasematch)d
-Fu(shell)j(op-)630 2823 y(tion)j(\(see)g(the)f(description)g(of)g
+2933 y(lo)m(w)25 b(in)e(Section)i(3.5.8.1)h([P)m(attern)f(Matc)m
+(hing],)i(page)e(33.)39 b(If)23 b(the)h Ft(nocasematch)d
+Fu(shell)j(op-)630 3042 y(tion)j(\(see)g(the)f(description)g(of)g
 Ft(shopt)f Fu(in)g(Section)i(4.3.2)h([The)e(Shopt)f(Builtin],)j(page)f
-(65\))630 2933 y(is)40 b(enabled,)i(the)e(matc)m(h)h(is)e(p)s(erformed)
+(65\))630 3152 y(is)40 b(enabled,)i(the)e(matc)m(h)h(is)e(p)s(erformed)
 g(without)g(regard)h(to)h(the)f(case)g(of)g(alphab)s(etic)630
-3042 y(c)m(haracters.)48 b(The)32 b(`)p Ft(|)p Fu(')g(is)h(used)e(to)i
+3261 y(c)m(haracters.)48 b(The)32 b(`)p Ft(|)p Fu(')g(is)h(used)e(to)i
 (separate)h(m)m(ultiple)f(patterns,)g(and)f(the)g(`)p
-Ft(\))p Fu(')h(op)s(erator)630 3152 y(terminates)f(a)f(pattern)g(list.)
+Ft(\))p Fu(')h(op)s(erator)630 3371 y(terminates)f(a)f(pattern)g(list.)
 43 b(A)31 b(list)g(of)g(patterns)g(and)f(an)h(asso)s(ciated)h
-(command-list)g(is)630 3261 y(kno)m(wn)e(as)g(a)h Fr(clause)p
-Fu(.)630 3397 y(Eac)m(h)42 b(clause)g(m)m(ust)f(b)s(e)g(terminated)h
+(command-list)g(is)630 3481 y(kno)m(wn)e(as)g(a)h Fr(clause)p
+Fu(.)630 3617 y(Eac)m(h)42 b(clause)g(m)m(ust)f(b)s(e)g(terminated)h
 (with)e(`)p Ft(;;)p Fu(',)45 b(`)p Ft(;&)p Fu(',)f(or)d(`)p
 Ft(;;&)p Fu('.)73 b(The)41 b Fr(w)m(ord)j Fu(under-)630
-3507 y(go)s(es)35 b(tilde)f(expansion,)h(parameter)g(expansion,)g
-(command)f(substitution,)h(arithmetic)630 3617 y(expansion,)g(and)f
+3726 y(go)s(es)35 b(tilde)f(expansion,)h(parameter)g(expansion,)g
+(command)f(substitution,)h(arithmetic)630 3836 y(expansion,)g(and)f
 (quote)g(remo)m(v)-5 b(al)36 b(\(see)f(Section)g(3.5.3)h([Shell)e(P)m
-(arameter)h(Expansion],)630 3726 y(page)22 b(24\))g(b)s(efore)f(matc)m
+(arameter)h(Expansion],)630 3945 y(page)22 b(24\))g(b)s(efore)f(matc)m
 (hing)h(is)g(attempted.)38 b(Eac)m(h)22 b Fr(pattern)g
-Fu(undergo)s(es)e(tilde)i(expansion,)630 3836 y(parameter)31
+Fu(undergo)s(es)e(tilde)i(expansion,)630 4055 y(parameter)31
 b(expansion,)f(command)g(substitution,)h(and)f(arithmetic)h(expansion.)
-630 3972 y(There)f(ma)m(y)g(b)s(e)f(an)h(arbitrary)g(n)m(um)m(b)s(er)f
+630 4191 y(There)f(ma)m(y)g(b)s(e)f(an)h(arbitrary)g(n)m(um)m(b)s(er)f
 (of)h Ft(case)f Fu(clauses,)i(eac)m(h)g(terminated)g(b)m(y)e(a)i(`)p
-Ft(;;)p Fu(',)630 4082 y(`)p Ft(;&)p Fu(',)c(or)e(`)p
+Ft(;;)p Fu(',)630 4301 y(`)p Ft(;&)p Fu(',)c(or)e(`)p
 Ft(;;&)p Fu('.)39 b(The)25 b(\014rst)g(pattern)h(that)g(matc)m(hes)h
-(determines)e(the)h(command-list)g(that)630 4191 y(is)35
+(determines)e(the)h(command-list)g(that)630 4410 y(is)35
 b(executed.)55 b(It's)35 b(a)g(common)g(idiom)g(to)g(use)g(`)p
 Ft(*)p Fu(')g(as)g(the)g(\014nal)f(pattern)h(to)h(de\014ne)e(the)630
-4301 y(default)d(case,)g(since)g(that)g(pattern)f(will)h(alw)m(a)m(ys)h
-(matc)m(h.)630 4437 y(Here)j(is)g(an)g(example)h(using)e
+4520 y(default)d(case,)g(since)g(that)g(pattern)f(will)h(alw)m(a)m(ys)h
+(matc)m(h.)630 4656 y(Here)j(is)g(an)g(example)h(using)e
 Ft(case)g Fu(in)g(a)h(script)g(that)h(could)f(b)s(e)f(used)g(to)h
-(describ)s(e)g(one)630 4546 y(in)m(teresting)d(feature)f(of)f(an)g
-(animal:)870 4682 y Ft(echo)47 b(-n)g("Enter)f(the)h(name)f(of)i(an)f
-(animal:)f(")870 4792 y(read)h(ANIMAL)870 4902 y(echo)g(-n)g("The)f
-($ANIMAL)g(has)h(")870 5011 y(case)g($ANIMAL)e(in)965
-5121 y(horse)i(|)g(dog)g(|)h(cat\))e(echo)h(-n)g("four";;)965
-5230 y(man)g(|)h(kangaroo)d(\))j(echo)e(-n)i("two";;)965
-5340 y(*\))g(echo)e(-n)h("an)g(unknown)f(number)g(of";;)p
+(describ)s(e)g(one)630 4766 y(in)m(teresting)d(feature)f(of)f(an)g
+(animal:)870 4902 y Ft(echo)47 b(-n)g("Enter)f(the)h(name)f(of)i(an)f
+(animal:)f(")870 5011 y(read)h(ANIMAL)870 5121 y(echo)g(-n)g("The)f
+($ANIMAL)g(has)h(")870 5230 y(case)g($ANIMAL)e(in)965
+5340 y(horse)i(|)g(dog)g(|)h(cat\))e(echo)h(-n)g("four";;)p
 eop end
 %%Page: 12 18
 TeXDict begin 12 17 bop 150 -116 a Fu(Chapter)30 b(3:)41
-b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(12)870 299
-y Ft(esac)870 408 y(echo)47 b(")g(legs.")630 560 y Fu(If)25
+b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(12)965 299
+y Ft(man)47 b(|)h(kangaroo)d(\))j(echo)e(-n)i("two";;)965
+408 y(*\))g(echo)e(-n)h("an)g(unknown)f(number)g(of";;)870
+518 y(esac)870 628 y(echo)h(")g(legs.")630 781 y Fu(If)25
 b(the)h(`)p Ft(;;)p Fu(')g(op)s(erator)g(is)g(used,)g(no)g(subsequen)m
 (t)f(matc)m(hes)i(are)f(attempted)h(after)g(the)f(\014rst)630
-669 y(pattern)g(matc)m(h.)40 b(Using)26 b(`)p Ft(;&)p
+891 y(pattern)g(matc)m(h.)40 b(Using)26 b(`)p Ft(;&)p
 Fu(')f(in)h(place)g(of)g(`)p Ft(;;)p Fu(')g(causes)g(execution)h(to)f
-(con)m(tin)m(ue)h(with)f(the)630 779 y Fr(command-list)39
+(con)m(tin)m(ue)h(with)f(the)630 1000 y Fr(command-list)39
 b Fu(asso)s(ciated)f(with)e(the)g(next)g(clause,)j(if)d(an)m(y)-8
 b(.)59 b(Using)37 b(`)p Ft(;;&)p Fu(')f(in)g(place)h(of)630
-889 y(`)p Ft(;;)p Fu(')30 b(causes)g(the)g(shell)g(to)g(test)h(the)f
+1110 y(`)p Ft(;;)p Fu(')30 b(causes)g(the)g(shell)g(to)g(test)h(the)f
 (patterns)g(in)f(the)h(next)g(clause,)h(if)e(an)m(y)-8
-b(,)31 b(and)f(execute)630 998 y(an)m(y)h(asso)s(ciated)h
+b(,)31 b(and)f(execute)630 1219 y(an)m(y)h(asso)s(ciated)h
 Fr(command-list)h Fu(on)d(a)h(successful)f(matc)m(h.)630
-1129 y(The)c(return)f(status)h(is)g(zero)h(if)f(no)g
+1351 y(The)c(return)f(status)h(is)g(zero)h(if)f(no)g
 Fr(pattern)g Fu(is)g(matc)m(hed.)40 b(Otherwise,)27 b(the)g(return)e
-(status)630 1238 y(is)30 b(the)h(exit)g(status)g(of)f(the)h
-Fr(command-list)i Fu(executed.)150 1390 y Ft(select)630
-1520 y Fu(The)g Ft(select)f Fu(construct)i(allo)m(ws)h(the)f(easy)g
+(status)630 1461 y(is)30 b(the)h(exit)g(status)g(of)f(the)h
+Fr(command-list)i Fu(executed.)150 1614 y Ft(select)630
+1745 y Fu(The)g Ft(select)f Fu(construct)i(allo)m(ws)h(the)f(easy)g
 (generation)h(of)e(men)m(us.)50 b(It)34 b(has)f(almost)i(the)630
-1630 y(same)c(syn)m(tax)g(as)f(the)h Ft(for)e Fu(command:)870
-1760 y Ft(select)46 b Fj(name)h Ft([in)g Fj(words)f Ft(...)o(];)h(do)h
-Fj(commands)p Ft(;)d(done)630 1891 y Fu(The)25 b(list)h(of)f(w)m(ords)g
+1855 y(same)c(syn)m(tax)g(as)f(the)h Ft(for)e Fu(command:)870
+1987 y Ft(select)46 b Fj(name)h Ft([in)g Fj(words)f Ft(...)o(];)h(do)h
+Fj(commands)p Ft(;)d(done)630 2118 y Fu(The)25 b(list)h(of)f(w)m(ords)g
 (follo)m(wing)i Ft(in)d Fu(is)h(expanded,)h(generating)h(a)e(list)h(of)
-g(items.)39 b(The)25 b(set)h(of)630 2000 y(expanded)i(w)m(ords)h(is)g
+g(items.)39 b(The)25 b(set)h(of)630 2228 y(expanded)i(w)m(ords)h(is)g
 (prin)m(ted)f(on)h(the)g(standard)f(error)h(output)f(stream,)i(eac)m(h)
-g(preceded)630 2110 y(b)m(y)21 b(a)g(n)m(um)m(b)s(er.)37
+g(preceded)630 2337 y(b)m(y)21 b(a)g(n)m(um)m(b)s(er.)37
 b(If)20 b(the)i(`)p Ft(in)30 b Fj(words)p Fu(')20 b(is)h(omitted,)j
 (the)d(p)s(ositional)h(parameters)g(are)f(prin)m(ted,)630
-2219 y(as)28 b(if)f(`)p Ft(in)j("$@")p Fu(')d(had)f(b)s(een)h(sp)s
+2447 y(as)28 b(if)f(`)p Ft(in)j("$@")p Fu(')d(had)f(b)s(een)h(sp)s
 (eci\014ed.)39 b(The)27 b Ft(PS3)g Fu(prompt)f(is)i(then)f(displa)m(y)m
-(ed)h(and)f(a)h(line)630 2329 y(is)h(read)f(from)h(the)f(standard)g
+(ed)h(and)f(a)h(line)630 2556 y(is)h(read)f(from)h(the)f(standard)g
 (input.)39 b(If)29 b(the)g(line)g(consists)g(of)g(a)g(n)m(um)m(b)s(er)e
-(corresp)s(onding)630 2438 y(to)36 b(one)f(of)h(the)f(displa)m(y)m(ed)h
+(corresp)s(onding)630 2666 y(to)36 b(one)f(of)h(the)f(displa)m(y)m(ed)h
 (w)m(ords,)g(then)f(the)g(v)-5 b(alue)36 b(of)f Fr(name)40
-b Fu(is)35 b(set)h(to)g(that)g(w)m(ord.)54 b(If)630 2548
+b Fu(is)35 b(set)h(to)g(that)g(w)m(ord.)54 b(If)630 2776
 y(the)37 b(line)h(is)f(empt)m(y)-8 b(,)39 b(the)e(w)m(ords)g(and)f
 (prompt)g(are)i(displa)m(y)m(ed)f(again.)62 b(If)37 b
-Ft(EOF)f Fu(is)h(read,)630 2658 y(the)c Ft(select)e Fu(command)i
+Ft(EOF)f Fu(is)h(read,)630 2885 y(the)c Ft(select)e Fu(command)i
 (completes.)50 b(An)m(y)33 b(other)g(v)-5 b(alue)33 b(read)g(causes)g
-Fr(name)38 b Fu(to)c(b)s(e)e(set)630 2767 y(to)f(n)m(ull.)41
+Fr(name)38 b Fu(to)c(b)s(e)e(set)630 2995 y(to)f(n)m(ull.)41
 b(The)30 b(line)g(read)h(is)f(sa)m(v)m(ed)h(in)g(the)f(v)-5
-b(ariable)31 b Ft(REPLY)p Fu(.)630 2898 y(The)42 b Fr(commands)j
+b(ariable)31 b Ft(REPLY)p Fu(.)630 3126 y(The)42 b Fr(commands)j
 Fu(are)d(executed)h(after)g(eac)m(h)g(selection)h(un)m(til)e(a)h
-Ft(break)d Fu(command)i(is)630 3007 y(executed,)32 b(at)f(whic)m(h)f(p)
+Ft(break)d Fu(command)i(is)630 3236 y(executed,)32 b(at)f(whic)m(h)f(p)
 s(oin)m(t)g(the)h Ft(select)d Fu(command)i(completes.)630
-3138 y(Here)39 b(is)g(an)g(example)h(that)f(allo)m(ws)i(the)e(user)f
+3367 y(Here)39 b(is)g(an)g(example)h(that)f(allo)m(ws)i(the)e(user)f
 (to)i(pic)m(k)f(a)g(\014lename)h(from)e(the)h(curren)m(t)630
-3247 y(directory)-8 b(,)32 b(and)d(displa)m(ys)i(the)f(name)h(and)f
-(index)f(of)i(the)g(\014le)f(selected.)870 3378 y Ft(select)46
-b(fname)g(in)i(*;)870 3487 y(do)870 3597 y(echo)f(you)g(picked)f
-($fname)g(\\\($REPLY\\\))870 3707 y(break;)870 3816 y(done)150
-3968 y(\(\(...)o(\)\))870 4098 y(\(\()h Fj(expression)e
-Ft(\)\))630 4228 y Fu(The)33 b(arithmetic)i Fr(expression)f
+3477 y(directory)-8 b(,)32 b(and)d(displa)m(ys)i(the)f(name)h(and)f
+(index)f(of)i(the)g(\014le)f(selected.)870 3608 y Ft(select)46
+b(fname)g(in)i(*;)870 3718 y(do)870 3828 y(echo)f(you)g(picked)f
+($fname)g(\\\($REPLY\\\))870 3937 y(break;)870 4047 y(done)150
+4200 y(\(\(...)o(\)\))870 4332 y(\(\()h Fj(expression)e
+Ft(\)\))630 4463 y Fu(The)33 b(arithmetic)i Fr(expression)f
 Fu(is)f(ev)-5 b(aluated)35 b(according)g(to)f(the)g(rules)f(describ)s
-(ed)g(b)s(elo)m(w)630 4338 y(\(see)j(Section)f(6.5)h([Shell)f
+(ed)g(b)s(elo)m(w)630 4573 y(\(see)j(Section)f(6.5)h([Shell)f
 (Arithmetic],)i(page)f(91\).)55 b(If)34 b(the)h(v)-5
-b(alue)35 b(of)g(the)g(expression)g(is)630 4448 y(non-zero,)27
+b(alue)35 b(of)g(the)g(expression)g(is)630 4682 y(non-zero,)27
 b(the)f(return)e(status)i(is)g(0;)h(otherwise)f(the)g(return)e(status)i
-(is)g(1.)39 b(This)25 b(is)g(exactly)630 4557 y(equiv)-5
-b(alen)m(t)32 b(to)870 4688 y Ft(let)47 b(")p Fj(expression)p
-Ft(")630 4818 y Fu(See)25 b(Section)h(4.2)h([Bash)e(Builtins],)i(page)f
+(is)g(1.)39 b(This)25 b(is)g(exactly)630 4792 y(equiv)-5
+b(alen)m(t)32 b(to)870 4924 y Ft(let)47 b(")p Fj(expression)p
+Ft(")630 5055 y Fu(See)25 b(Section)h(4.2)h([Bash)e(Builtins],)i(page)f
 (50,)i(for)c(a)i(full)f(description)g(of)g(the)h Ft(let)e
-Fu(builtin.)150 4969 y Ft([[...)o(]])870 5100 y([[)47
-b Fj(expression)e Ft(]])630 5230 y Fu(Return)25 b(a)h(status)f(of)h(0)g
-(or)g(1)g(dep)s(ending)e(on)h(the)h(ev)-5 b(aluation)27
-b(of)e(the)h(conditional)h(expres-)630 5340 y(sion)j
-Fr(expression)p Fu(.)41 b(Expressions)29 b(are)i(comp)s(osed)f(of)g
-(the)h(primaries)f(describ)s(ed)f(b)s(elo)m(w)h(in)p
-eop end
+Fu(builtin.)150 5208 y Ft([[...)o(]])870 5340 y([[)47
+b Fj(expression)e Ft(]])p eop end
 %%Page: 13 19
 TeXDict begin 13 18 bop 150 -116 a Fu(Chapter)30 b(3:)41
 b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(13)630 299
-y(Section)36 b(6.4)h([Bash)f(Conditional)g(Expressions],)h(page)f(89.)
-57 b(W)-8 b(ord)36 b(splitting)h(and)e(\014le-)630 408
-y(name)d(expansion)g(are)h(not)g(p)s(erformed)d(on)j(the)f(w)m(ords)g
-(b)s(et)m(w)m(een)h(the)f Ft([[)g Fu(and)f Ft(]])p Fu(;)i(tilde)630
-518 y(expansion,)e(parameter)g(and)f(v)-5 b(ariable)31
-b(expansion,)g(arithmetic)g(expansion,)g(command)630
-628 y(substitution,)40 b(pro)s(cess)f(substitution,)h(and)e(quote)h
+y(Return)25 b(a)h(status)f(of)h(0)g(or)g(1)g(dep)s(ending)e(on)h(the)h
+(ev)-5 b(aluation)27 b(of)e(the)h(conditional)h(expres-)630
+408 y(sion)j Fr(expression)p Fu(.)41 b(Expressions)29
+b(are)i(comp)s(osed)f(of)g(the)h(primaries)f(describ)s(ed)f(b)s(elo)m
+(w)h(in)630 518 y(Section)36 b(6.4)h([Bash)f(Conditional)g
+(Expressions],)h(page)f(89.)57 b(W)-8 b(ord)36 b(splitting)h(and)e
+(\014le-)630 628 y(name)d(expansion)g(are)h(not)g(p)s(erformed)d(on)j
+(the)f(w)m(ords)g(b)s(et)m(w)m(een)h(the)f Ft([[)g Fu(and)f
+Ft(]])p Fu(;)i(tilde)630 737 y(expansion,)e(parameter)g(and)f(v)-5
+b(ariable)31 b(expansion,)g(arithmetic)g(expansion,)g(command)630
+847 y(substitution,)40 b(pro)s(cess)f(substitution,)h(and)e(quote)h
 (remo)m(v)-5 b(al)40 b(are)f(p)s(erformed.)63 b(Condi-)630
-737 y(tional)32 b(op)s(erators)e(suc)m(h)g(as)h(`)p Ft(-f)p
+956 y(tional)32 b(op)s(erators)e(suc)m(h)g(as)h(`)p Ft(-f)p
 Fu(')f(m)m(ust)g(b)s(e)g(unquoted)g(to)h(b)s(e)e(recognized)j(as)f
-(primaries.)630 878 y(When)k(used)f(with)h Ft([[)p Fu(,)h(the)f(`)p
+(primaries.)630 1097 y(When)k(used)f(with)h Ft([[)p Fu(,)h(the)f(`)p
 Ft(<)p Fu(')g(and)g(`)p Ft(>)p Fu(')g(op)s(erators)g(sort)g
-(lexicographically)j(using)d(the)630 988 y(curren)m(t)30
-b(lo)s(cale.)630 1129 y(When)22 b(the)h(`)p Ft(==)p Fu(')f(and)g(`)p
+(lexicographically)j(using)d(the)630 1207 y(curren)m(t)30
+b(lo)s(cale.)630 1348 y(When)22 b(the)h(`)p Ft(==)p Fu(')f(and)g(`)p
 Ft(!=)p Fu(')g(op)s(erators)h(are)g(used,)g(the)g(string)f(to)i(the)e
-(righ)m(t)h(of)g(the)g(op)s(erator)630 1238 y(is)31 b(considered)g(a)h
+(righ)m(t)h(of)g(the)g(op)s(erator)630 1457 y(is)31 b(considered)g(a)h
 (pattern)f(and)g(matc)m(hed)h(according)g(to)g(the)g(rules)f(describ)s
-(ed)f(b)s(elo)m(w)h(in)630 1348 y(Section)d(3.5.8.1)h([P)m(attern)f
-(Matc)m(hing],)h(page)f(32,)g(as)f(if)g(the)g Ft(extglob)d
-Fu(shell)j(option)g(w)m(ere)630 1457 y(enabled.)46 b(The)31
+(ed)f(b)s(elo)m(w)h(in)630 1567 y(Section)d(3.5.8.1)h([P)m(attern)f
+(Matc)m(hing],)h(page)f(33,)g(as)f(if)g(the)g Ft(extglob)d
+Fu(shell)j(option)g(w)m(ere)630 1677 y(enabled.)46 b(The)31
 b(`)p Ft(=)p Fu(')h(op)s(erator)h(is)f(iden)m(tical)h(to)g(`)p
 Ft(==)p Fu('.)46 b(If)31 b(the)h Ft(nocasematch)d Fu(shell)j(option)630
-1567 y(\(see)42 b(the)f(description)g(of)h Ft(shopt)d
+1786 y(\(see)42 b(the)f(description)g(of)h Ft(shopt)d
 Fu(in)i(Section)h(4.3.2)h([The)e(Shopt)f(Builtin],)45
-b(page)d(65\))630 1677 y(is)e(enabled,)i(the)e(matc)m(h)h(is)e(p)s
+b(page)d(65\))630 1896 y(is)e(enabled,)i(the)e(matc)m(h)h(is)e(p)s
 (erformed)g(without)g(regard)h(to)h(the)f(case)g(of)g(alphab)s(etic)630
-1786 y(c)m(haracters.)h(The)28 b(return)e(v)-5 b(alue)28
+2005 y(c)m(haracters.)h(The)28 b(return)e(v)-5 b(alue)28
 b(is)g(0)g(if)g(the)g(string)g(matc)m(hes)h(\(`)p Ft(==)p
-Fu('\))f(or)g(do)s(es)f(not)h(matc)m(h)630 1896 y(\(`)p
-Ft(!=)p Fu('\)the)33 b(pattern,)g(and)f(1)g(otherwise.)47
-b(An)m(y)32 b(part)g(of)h(the)f(pattern)g(ma)m(y)h(b)s(e)f(quoted)g(to)
-630 2005 y(force)f(the)g(quoted)f(p)s(ortion)g(to)h(b)s(e)f(matc)m(hed)
-h(as)g(a)f(string.)630 2146 y(An)j(additional)i(binary)e(op)s(erator,)i
+Fu('\))f(or)g(do)s(es)f(not)h(matc)m(h)630 2115 y(\(`)p
+Ft(!=)p Fu('\))j(the)f(pattern,)h(and)e(1)i(otherwise.)41
+b(An)m(y)30 b(part)g(of)h(the)f(pattern)g(ma)m(y)h(b)s(e)f(quoted)g(to)
+630 2225 y(force)h(the)g(quoted)f(p)s(ortion)g(to)h(b)s(e)f(matc)m(hed)
+h(as)g(a)f(string.)630 2365 y(An)j(additional)i(binary)e(op)s(erator,)i
 (`)p Ft(=~)p Fu(',)g(is)f(a)m(v)-5 b(ailable,)37 b(with)c(the)h(same)g
-(precedence)h(as)630 2256 y(`)p Ft(==)p Fu(')29 b(and)f(`)p
-Ft(!=)p Fu('.)40 b(When)29 b(it)g(is)g(used,)f(the)h(string)g(to)h(the)
-e(righ)m(t)i(of)f(the)g(op)s(erator)g(is)g(consid-)630
-2365 y(ered)34 b(an)g(extended)g(regular)g(expression)g(and)f(matc)m
-(hed)i(accordingly)g(\(as)f(in)g Fl(r)-5 b(e)g(gex)11
-b Fu(3\)\).)630 2475 y(The)29 b(return)f(v)-5 b(alue)30
-b(is)g(0)g(if)f(the)h(string)g(matc)m(hes)g(the)g(pattern,)g(and)f(1)h
-(otherwise.)41 b(If)29 b(the)630 2585 y(regular)e(expression)g(is)h
-(syn)m(tactically)i(incorrect,)f(the)e(conditional)i(expression's)e
-(return)630 2694 y(v)-5 b(alue)40 b(is)g(2.)68 b(If)39
-b(the)h Ft(nocasematch)c Fu(shell)k(option)g(\(see)g(the)g(description)
-g(of)f Ft(shopt)f Fu(in)630 2804 y(Section)32 b(4.3.2)g([The)f(Shopt)f
-(Builtin],)i(page)g(65\))g(is)f(enabled,)g(the)g(matc)m(h)h(is)e(p)s
-(erformed)630 2913 y(without)36 b(regard)g(to)h(the)f(case)h(of)f
-(alphab)s(etic)h(c)m(haracters.)59 b(An)m(y)36 b(part)g(of)h(the)f
-(pattern)630 3023 y(ma)m(y)31 b(b)s(e)f(quoted)h(to)g(force)g(the)g
-(quoted)g(p)s(ortion)f(to)h(b)s(e)f(matc)m(hed)h(as)g(a)g(string.)41
-b(Brac)m(k)m(et)630 3133 y(expressions)27 b(in)f(regular)i(expressions)
-e(m)m(ust)h(b)s(e)g(treated)h(carefully)-8 b(,)29 b(since)e(normal)g
-(quot-)630 3242 y(ing)38 b(c)m(haracters)h(lose)f(their)g(meanings)f(b)
-s(et)m(w)m(een)h(brac)m(k)m(ets.)64 b(If)37 b(the)h(pattern)f(is)h
-(stored)630 3352 y(in)33 b(a)i(shell)f(v)-5 b(ariable,)35
-b(quoting)f(the)g(v)-5 b(ariable)35 b(expansion)e(forces)i(the)f(en)m
-(tire)g(pattern)g(to)630 3461 y(b)s(e)h(matc)m(hed)i(as)f(a)g(string.)
-56 b(Substrings)34 b(matc)m(hed)j(b)m(y)f(paren)m(thesized)g(sub)s
-(expressions)630 3571 y(within)k(the)g(regular)g(expression)g(are)g(sa)
-m(v)m(ed)i(in)d(the)i(arra)m(y)f(v)-5 b(ariable)41 b
-Ft(BASH_REMATCH)p Fu(.)630 3680 y(The)30 b(elemen)m(t)i(of)e
-Ft(BASH_REMATCH)d Fu(with)j(index)g(0)h(is)g(the)f(p)s(ortion)g(of)h
-(the)f(string)h(matc)m(h-)630 3790 y(ing)j(the)g(en)m(tire)g(regular)g
-(expression.)50 b(The)34 b(elemen)m(t)h(of)f Ft(BASH_REMATCH)c
-Fu(with)j(index)g Fr(n)630 3900 y Fu(is)d(the)h(p)s(ortion)f(of)g(the)h
-(string)f(matc)m(hing)i(the)e Fr(n)p Fu(th)g(paren)m(thesized)h(sub)s
-(expression.)630 4041 y(F)-8 b(or)28 b(example,)h(the)e(follo)m(wing)i
+(precedence)h(as)630 2475 y(`)p Ft(==)p Fu(')g(and)g(`)p
+Ft(!=)p Fu('.)55 b(When)35 b(it)g(is)h(used,)f(the)h(string)f(to)h(the)
+f(righ)m(t)h(of)f(the)h(op)s(erator)f(is)g(con-)630 2585
+y(sidered)43 b(a)h Fm(POSIX)f Fu(extended)h(regular)g(expression)f(and)
+g(matc)m(hed)i(accordingly)f(\(as)630 2694 y(in)d Fl(r)-5
+b(e)g(gex)11 b Fu(3\)\).)76 b(The)41 b(return)f(v)-5
+b(alue)42 b(is)g(0)f(if)h(the)f(string)h(matc)m(hes)g(the)g(pattern,)j
+(and)c(1)630 2804 y(otherwise.)59 b(If)35 b(the)i(regular)f(expression)
+g(is)g(syn)m(tactically)j(incorrect,)g(the)e(conditional)630
+2913 y(expression's)27 b(return)f(v)-5 b(alue)28 b(is)f(2.)40
+b(If)27 b(the)g Ft(nocasematch)e Fu(shell)i(option)h(\(see)g(the)f
+(descrip-)630 3023 y(tion)41 b(of)g Ft(shopt)f Fu(in)h(Section)g(4.3.2)
+i([The)e(Shopt)f(Builtin],)k(page)e(65\))g(is)f(enabled,)j(the)630
+3133 y(matc)m(h)36 b(is)f(p)s(erformed)e(without)i(regard)g(to)h(the)f
+(case)h(of)f(alphab)s(etic)g(c)m(haracters.)56 b(An)m(y)630
+3242 y(part)25 b(of)h(the)g(pattern)f(ma)m(y)h(b)s(e)f(quoted)h(to)g
+(force)g(the)g(quoted)f(p)s(ortion)g(to)i(b)s(e)d(matc)m(hed)j(as)630
+3352 y(a)34 b(string.)49 b(Brac)m(k)m(et)36 b(expressions)c(in)h
+(regular)h(expressions)f(m)m(ust)g(b)s(e)f(treated)j(carefully)-8
+b(,)630 3461 y(since)37 b(normal)f(quoting)h(c)m(haracters)g(lose)g
+(their)g(meanings)f(b)s(et)m(w)m(een)h(brac)m(k)m(ets.)60
+b(If)36 b(the)630 3571 y(pattern)e(is)g(stored)g(in)f(a)i(shell)f(v)-5
+b(ariable,)36 b(quoting)e(the)g(v)-5 b(ariable)35 b(expansion)e(forces)
+i(the)630 3680 y(en)m(tire)30 b(pattern)e(to)i(b)s(e)e(matc)m(hed)h(as)
+g(a)g(string.)40 b(Substrings)27 b(matc)m(hed)j(b)m(y)e(paren)m
+(thesized)630 3790 y(sub)s(expressions)40 b(within)h(the)g(regular)h
+(expression)f(are)h(sa)m(v)m(ed)h(in)e(the)h(arra)m(y)g(v)-5
+b(ariable)630 3900 y Ft(BASH_REMATCH)p Fu(.)56 b(The)37
+b(elemen)m(t)h(of)f Ft(BASH_REMATCH)c Fu(with)j(index)h(0)g(is)g(the)f
+(p)s(ortion)h(of)630 4009 y(the)22 b(string)f(matc)m(hing)h(the)g(en)m
+(tire)g(regular)g(expression.)37 b(The)21 b(elemen)m(t)i(of)e
+Ft(BASH_REMATCH)630 4119 y Fu(with)26 b(index)h Fr(n)f
+Fu(is)h(the)g(p)s(ortion)f(of)h(the)g(string)g(matc)m(hing)h(the)f
+Fr(n)p Fu(th)f(paren)m(thesized)h(sub)s(ex-)630 4228
+y(pression.)630 4369 y(F)-8 b(or)28 b(example,)h(the)e(follo)m(wing)i
 (will)e(matc)m(h)h(a)g(line)f(\(stored)h(in)e(the)i(shell)f(v)-5
-b(ariable)28 b Fr(line)5 b Fu(\))28 b(if)630 4150 y(there)22
+b(ariable)28 b Fr(line)5 b Fu(\))28 b(if)630 4479 y(there)22
 b(is)g(a)h(sequence)f(of)h(c)m(haracters)g(in)f(the)g(v)-5
 b(alue)23 b(consisting)g(of)f(an)m(y)h(n)m(um)m(b)s(er,)f(including)630
-4260 y(zero,)31 b(of)g(space)g(c)m(haracters,)h(zero)f(or)g(one)f
+4589 y(zero,)31 b(of)g(space)g(c)m(haracters,)h(zero)f(or)g(one)f
 (instances)h(of)g(`)p Ft(a)p Fu(',)f(then)g(a)h(`)p Ft(b)p
-Fu(':)870 4401 y Ft([[)47 b($line)g(=~)g([[:space:]]*?\(a\)b)c(]])630
-4542 y Fu(That)24 b(means)g(v)-5 b(alues)24 b(lik)m(e)h(`)p
+Fu(':)870 4729 y Ft([[)47 b($line)g(=~)g([[:space:]]*?\(a\)b)c(]])630
+4870 y Fu(That)24 b(means)g(v)-5 b(alues)24 b(lik)m(e)h(`)p
 Ft(aab)p Fu(')e(and)h(`)30 b Ft(aaaaaab)p Fu(')22 b(will)i(matc)m(h,)j
-(as)d(will)g(a)g(line)g(con)m(taining)630 4651 y(a)31
+(as)d(will)g(a)g(line)g(con)m(taining)630 4980 y(a)31
 b(`)p Ft(b)p Fu(')f(an)m(ywhere)h(in)f(its)g(v)-5 b(alue.)630
-4792 y(Storing)31 b(the)g(regular)g(expression)f(in)h(a)g(shell)g(v)-5
+5121 y(Storing)31 b(the)g(regular)g(expression)f(in)h(a)g(shell)g(v)-5
 b(ariable)31 b(is)g(often)g(a)g(useful)f(w)m(a)m(y)i(to)f(a)m(v)m(oid)
-630 4902 y(problems)f(with)g(quoting)h(c)m(haracters)i(that)e(are)g(sp)
+630 5230 y(problems)f(with)g(quoting)h(c)m(haracters)i(that)e(are)g(sp)
 s(ecial)g(to)h(the)f(shell.)41 b(It)31 b(is)g(sometimes)630
-5011 y(di\016cult)24 b(to)h(sp)s(ecify)f(a)h(regular)g(expression)f
-(literally)i(without)f(using)e(quotes,)k(or)d(to)h(k)m(eep)630
-5121 y(trac)m(k)33 b(of)g(the)f(quoting)g(used)g(b)m(y)g(regular)g
+5340 y(di\016cult)24 b(to)h(sp)s(ecify)f(a)h(regular)g(expression)f
+(literally)i(without)f(using)e(quotes,)k(or)d(to)h(k)m(eep)p
+eop end
+%%Page: 14 20
+TeXDict begin 14 19 bop 150 -116 a Fu(Chapter)30 b(3:)41
+b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(14)630 299
+y(trac)m(k)33 b(of)g(the)f(quoting)g(used)g(b)m(y)g(regular)g
 (expressions)g(while)g(pa)m(ying)h(atten)m(tion)h(to)f(the)630
-5230 y(shell's)25 b(quote)g(remo)m(v)-5 b(al.)40 b(Using)25
+408 y(shell's)25 b(quote)g(remo)m(v)-5 b(al.)40 b(Using)25
 b(a)g(shell)g(v)-5 b(ariable)26 b(to)f(store)g(the)g(pattern)g
-(decreases)g(these)630 5340 y(problems.)40 b(F)-8 b(or)31
+(decreases)g(these)630 518 y(problems.)40 b(F)-8 b(or)31
 b(example,)g(the)g(follo)m(wing)h(is)e(equiv)-5 b(alen)m(t)32
-b(to)f(the)g(ab)s(o)m(v)m(e:)p eop end
-%%Page: 14 20
-TeXDict begin 14 19 bop 150 -116 a Fu(Chapter)30 b(3:)41
-b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(14)870 299
-y Ft(pattern='[[:space:]]*?\(a)o(\)b')870 408 y([[)47
-b($line)g(=~)g($pattern)e(]])630 543 y Fu(If)28 b(y)m(ou)h(w)m(an)m(t)g
-(to)g(matc)m(h)h(a)e(c)m(haracter)j(that's)e(sp)s(ecial)g(to)g(the)g
-(regular)f(expression)g(gram-)630 652 y(mar,)g(it)g(has)g(to)g(b)s(e)f
-(quoted)h(to)g(remo)m(v)m(e)h(its)f(sp)s(ecial)g(meaning.)40
-b(This)27 b(means)g(that)h(in)g(the)630 762 y(pattern)e(`)p
-Ft(xxx.txt)p Fu(',)g(the)h(`)p Ft(.)p Fu(')f(matc)m(hes)i(an)m(y)e(c)m
-(haracter)i(in)e(the)h(string)f(\(its)h(usual)f(regular)630
-872 y(expression)g(meaning\),)i(but)e(in)g(the)h(pattern)f(`)p
-Ft("xxx.txt")p Fu(')f(it)i(can)g(only)f(matc)m(h)i(a)e(literal)630
-981 y(`)p Ft(.)p Fu('.)56 b(Shell)35 b(programmers)f(should)h(tak)m(e)i
-(sp)s(ecial)e(care)i(with)e(bac)m(kslashes,)i(since)f(bac)m(k-)630
-1091 y(slashes)27 b(are)g(used)f(b)s(oth)g(b)m(y)h(the)f(shell)h(and)f
-(regular)h(expressions)g(to)g(remo)m(v)m(e)h(the)f(sp)s(ecial)630
-1200 y(meaning)h(from)f(the)h(follo)m(wing)i(c)m(haracter.)41
-b(The)27 b(follo)m(wing)j(t)m(w)m(o)f(sets)f(of)g(commands)g(are)630
-1310 y Fl(not)40 b Fu(equiv)-5 b(alen)m(t:)870 1444 y
-Ft(pattern='\\.')870 1663 y([[)47 b(.)h(=~)f($pattern)e(]])870
-1773 y([[)i(.)h(=~)f(\\.)g(]])870 1992 y([[)g(.)h(=~)f("$pattern")e(]])
-870 2102 y([[)i(.)h(=~)f('\\.')f(]])630 2236 y Fu(The)28
-b(\014rst)h(t)m(w)m(o)h(matc)m(hes)g(will)f(succeed,)h(but)f(the)g
-(second)g(t)m(w)m(o)h(will)f(not,)h(b)s(ecause)f(in)g(the)630
-2346 y(second)39 b(t)m(w)m(o)i(the)e(bac)m(kslash)h(will)f(b)s(e)g
-(part)g(of)g(the)h(pattern)f(to)h(b)s(e)e(matc)m(hed.)68
-b(In)39 b(the)630 2455 y(\014rst)31 b(t)m(w)m(o)h(examples,)h(the)e
+b(to)f(the)g(ab)s(o)m(v)m(e:)870 649 y Ft(pattern='[[:space:]]*?\(a)o
+(\)b')870 758 y([[)47 b($line)g(=~)g($pattern)e(]])630
+889 y Fu(If)28 b(y)m(ou)h(w)m(an)m(t)g(to)g(matc)m(h)h(a)e(c)m
+(haracter)j(that's)e(sp)s(ecial)g(to)g(the)g(regular)f(expression)g
+(gram-)630 999 y(mar,)g(it)g(has)g(to)g(b)s(e)f(quoted)h(to)g(remo)m(v)
+m(e)h(its)f(sp)s(ecial)g(meaning.)40 b(This)27 b(means)g(that)h(in)g
+(the)630 1108 y(pattern)e(`)p Ft(xxx.txt)p Fu(',)g(the)h(`)p
+Ft(.)p Fu(')f(matc)m(hes)i(an)m(y)e(c)m(haracter)i(in)e(the)h(string)f
+(\(its)h(usual)f(regular)630 1218 y(expression)g(meaning\),)i(but)e(in)
+g(the)h(pattern)f(`)p Ft("xxx.txt")p Fu(')f(it)i(can)g(only)f(matc)m(h)
+i(a)e(literal)630 1328 y(`)p Ft(.)p Fu('.)56 b(Shell)35
+b(programmers)f(should)h(tak)m(e)i(sp)s(ecial)e(care)i(with)e(bac)m
+(kslashes,)i(since)f(bac)m(k-)630 1437 y(slashes)27 b(are)g(used)f(b)s
+(oth)g(b)m(y)h(the)f(shell)h(and)f(regular)h(expressions)g(to)g(remo)m
+(v)m(e)h(the)f(sp)s(ecial)630 1547 y(meaning)h(from)f(the)h(follo)m
+(wing)i(c)m(haracter.)41 b(The)27 b(follo)m(wing)j(t)m(w)m(o)f(sets)f
+(of)g(commands)g(are)630 1656 y Fl(not)40 b Fu(equiv)-5
+b(alen)m(t:)870 1787 y Ft(pattern='\\.')870 2006 y([[)47
+b(.)h(=~)f($pattern)e(]])870 2116 y([[)i(.)h(=~)f(\\.)g(]])870
+2335 y([[)g(.)h(=~)f("$pattern")e(]])870 2445 y([[)i(.)h(=~)f('\\.')f
+(]])630 2576 y Fu(The)28 b(\014rst)h(t)m(w)m(o)h(matc)m(hes)g(will)f
+(succeed,)h(but)f(the)g(second)g(t)m(w)m(o)h(will)f(not,)h(b)s(ecause)f
+(in)g(the)630 2685 y(second)39 b(t)m(w)m(o)i(the)e(bac)m(kslash)h(will)
+f(b)s(e)g(part)g(of)g(the)h(pattern)f(to)h(b)s(e)e(matc)m(hed.)68
+b(In)39 b(the)630 2795 y(\014rst)31 b(t)m(w)m(o)h(examples,)h(the)e
 (bac)m(kslash)h(remo)m(v)m(es)h(the)f(sp)s(ecial)g(meaning)f(from)g(`)p
-Ft(.)p Fu(',)h(so)g(the)630 2565 y(literal)f(`)p Ft(.)p
+Ft(.)p Fu(',)h(so)g(the)630 2904 y(literal)f(`)p Ft(.)p
 Fu(')e(matc)m(hes.)42 b(If)28 b(the)i(string)f(in)g(the)g(\014rst)g
 (examples)g(w)m(ere)h(an)m(ything)g(other)f(than)630
-2675 y(`)p Ft(.)p Fu(',)g(sa)m(y)g(`)p Ft(a)p Fu(',)g(the)f(pattern)g
+3014 y(`)p Ft(.)p Fu(',)g(sa)m(y)g(`)p Ft(a)p Fu(',)g(the)f(pattern)g
 (w)m(ould)g(not)h(matc)m(h,)h(b)s(ecause)e(the)g(quoted)g(`)p
-Ft(.)p Fu(')h(in)e(the)i(pattern)630 2784 y(loses)i(its)g(sp)s(ecial)g
+Ft(.)p Fu(')h(in)e(the)i(pattern)630 3124 y(loses)i(its)g(sp)s(ecial)g
 (meaning)f(of)h(matc)m(hing)g(an)m(y)g(single)g(c)m(haracter.)630
-2919 y(Expressions)23 b(ma)m(y)h(b)s(e)e(com)m(bined)i(using)f(the)h
+3254 y(Expressions)23 b(ma)m(y)h(b)s(e)e(com)m(bined)i(using)f(the)h
 (follo)m(wing)h(op)s(erators,)g(listed)f(in)f(decreasing)630
-3028 y(order)30 b(of)g(precedence:)630 3187 y Ft(\()g
-Fj(expression)e Ft(\))1110 3297 y Fu(Returns)i(the)h(v)-5
+3364 y(order)30 b(of)g(precedence:)630 3516 y Ft(\()g
+Fj(expression)e Ft(\))1110 3626 y Fu(Returns)i(the)h(v)-5
 b(alue)31 b(of)g Fr(expression)p Fu(.)42 b(This)30 b(ma)m(y)i(b)s(e)e
-(used)g(to)i(o)m(v)m(erride)g(the)1110 3406 y(normal)e(precedence)h(of)
-g(op)s(erators.)630 3566 y Ft(!)f Fj(expression)1110
-3675 y Fu(T)-8 b(rue)30 b(if)g Fr(expression)g Fu(is)h(false.)630
-3834 y Fj(expression1)c Ft(&&)j Fj(expression2)1110 3944
+(used)g(to)i(o)m(v)m(erride)g(the)1110 3735 y(normal)e(precedence)h(of)
+g(op)s(erators.)630 3887 y Ft(!)f Fj(expression)1110
+3997 y Fu(T)-8 b(rue)30 b(if)g Fr(expression)g Fu(is)h(false.)630
+4149 y Fj(expression1)c Ft(&&)j Fj(expression2)1110 4259
 y Fu(T)-8 b(rue)30 b(if)g(b)s(oth)g Fr(expression1)38
 b Fu(and)29 b Fr(expression2)38 b Fu(are)31 b(true.)630
-4103 y Fj(expression1)c Ft(||)j Fj(expression2)1110 4213
+4411 y Fj(expression1)c Ft(||)j Fj(expression2)1110 4520
 y Fu(T)-8 b(rue)30 b(if)g(either)h Fr(expression1)38
 b Fu(or)30 b Fr(expression2)38 b Fu(is)30 b(true.)630
-4372 y(The)24 b Ft(&&)h Fu(and)f Ft(||)g Fu(op)s(erators)h(do)g(not)g
+4672 y(The)24 b Ft(&&)h Fu(and)f Ft(||)g Fu(op)s(erators)h(do)g(not)g
 (ev)-5 b(aluate)27 b Fr(expression2)32 b Fu(if)25 b(the)g(v)-5
-b(alue)25 b(of)g Fr(expression1)630 4481 y Fu(is)30 b(su\016cien)m(t)h
+b(alue)25 b(of)g Fr(expression1)630 4782 y Fu(is)30 b(su\016cien)m(t)h
 (to)g(determine)g(the)f(return)g(v)-5 b(alue)31 b(of)f(the)h(en)m(tire)
-g(conditional)h(expression.)150 4680 y Fk(3.2.4.3)63
-b(Grouping)43 b(Commands)150 4827 y Fu(Bash)30 b(pro)m(vides)g(t)m(w)m
+g(conditional)h(expression.)150 4974 y Fk(3.2.4.3)63
+b(Grouping)43 b(Commands)150 5121 y Fu(Bash)30 b(pro)m(vides)g(t)m(w)m
 (o)h(w)m(a)m(ys)f(to)h(group)e(a)h(list)g(of)g(commands)f(to)i(b)s(e)e
-(executed)h(as)g(a)h(unit.)40 b(When)29 b(com-)150 4937
+(executed)h(as)g(a)h(unit.)40 b(When)29 b(com-)150 5230
 y(mands)h(are)i(group)s(ed,)f(redirections)h(ma)m(y)g(b)s(e)e(applied)i
 (to)g(the)f(en)m(tire)h(command)g(list.)44 b(F)-8 b(or)32
-b(example,)150 5046 y(the)f(output)f(of)g(all)h(the)g(commands)f(in)g
-(the)h(list)g(ma)m(y)g(b)s(e)e(redirected)i(to)g(a)g(single)g(stream.)
-150 5206 y Ft(\(\))870 5340 y(\()47 b Fj(list)g Ft(\))p
+b(example,)150 5340 y(the)f(output)f(of)g(all)h(the)g(commands)f(in)g
+(the)h(list)g(ma)m(y)g(b)s(e)e(redirected)i(to)g(a)g(single)g(stream.)p
 eop end
 %%Page: 15 21
 TeXDict begin 15 20 bop 150 -116 a Fu(Chapter)30 b(3:)41
-b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(15)630 299
-y(Placing)30 b(a)f(list)g(of)g(commands)f(b)s(et)m(w)m(een)i(paren)m
+b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(15)150 299
+y Ft(\(\))870 437 y(\()47 b Fj(list)g Ft(\))630 574 y
+Fu(Placing)30 b(a)f(list)g(of)g(commands)f(b)s(et)m(w)m(een)i(paren)m
 (theses)e(causes)i(a)f(subshell)e(en)m(vironmen)m(t)630
-408 y(to)k(b)s(e)e(created)j(\(see)f(Section)g(3.7.3)h([Command)d
-(Execution)i(En)m(vironmen)m(t],)g(page)f(38\),)630 518
+684 y(to)k(b)s(e)e(created)j(\(see)f(Section)g(3.7.3)h([Command)d
+(Execution)i(En)m(vironmen)m(t],)g(page)f(39\),)630 793
 y(and)d(eac)m(h)h(of)g(the)f(commands)g(in)g Fr(list)j
 Fu(to)f(b)s(e)d(executed)j(in)e(that)h(subshell.)38 b(Since)28
-b(the)f Fr(list)630 628 y Fu(is)i(executed)g(in)f(a)h(subshell,)g(v)-5
+b(the)f Fr(list)630 903 y Fu(is)i(executed)g(in)f(a)h(subshell,)g(v)-5
 b(ariable)29 b(assignmen)m(ts)g(do)g(not)g(remain)f(in)g(e\013ect)j
-(after)e(the)630 737 y(subshell)g(completes.)150 905
-y Ft({})870 1044 y({)47 b Fj(list)p Ft(;)g(})630 1183
+(after)e(the)630 1013 y(subshell)g(completes.)150 1178
+y Ft({})870 1316 y({)47 b Fj(list)p Ft(;)g(})630 1453
 y Fu(Placing)30 b(a)g(list)g(of)g(commands)f(b)s(et)m(w)m(een)h(curly)f
 (braces)g(causes)h(the)f(list)h(to)g(b)s(e)f(executed)630
-1292 y(in)d(the)h(curren)m(t)g(shell)f(con)m(text.)42
+1563 y(in)d(the)h(curren)m(t)g(shell)f(con)m(text.)42
 b(No)27 b(subshell)f(is)g(created.)41 b(The)26 b(semicolon)i(\(or)f
-(newline\))630 1402 y(follo)m(wing)32 b Fr(list)h Fu(is)d(required.)275
-1574 y(In)44 b(addition)h(to)h(the)f(creation)i(of)e(a)g(subshell,)j
+(newline\))630 1673 y(follo)m(wing)32 b Fr(list)h Fu(is)d(required.)275
+1841 y(In)44 b(addition)h(to)h(the)f(creation)i(of)e(a)g(subshell,)j
 (there)e(is)f(a)g(subtle)g(di\013erence)h(b)s(et)m(w)m(een)f(these)150
-1683 y(t)m(w)m(o)c(constructs)e(due)g(to)g(historical)i(reasons.)67
+1951 y(t)m(w)m(o)c(constructs)e(due)g(to)g(historical)i(reasons.)67
 b(The)39 b(braces)g(are)h Ft(reserved)28 b(words)p Fu(,)40
-b(so)g(they)f(m)m(ust)150 1793 y(b)s(e)d(separated)h(from)f(the)g
+b(so)g(they)f(m)m(ust)150 2061 y(b)s(e)d(separated)h(from)f(the)g
 Fr(list)j Fu(b)m(y)e Ft(blank)p Fu(s)e(or)h(other)h(shell)f(metac)m
-(haracters.)62 b(The)36 b(paren)m(theses)h(are)150 1903
+(haracters.)62 b(The)36 b(paren)m(theses)h(are)150 2170
 y Ft(operators)p Fu(,)23 b(and)h(are)g(recognized)i(as)e(separate)i
 (tok)m(ens)f(b)m(y)f(the)g(shell)h(ev)m(en)g(if)f(they)g(are)h(not)f
-(separated)150 2012 y(from)30 b(the)g Fr(list)j Fu(b)m(y)e(whitespace.)
-275 2155 y(The)e(exit)j(status)e(of)h(b)s(oth)f(of)g(these)h
+(separated)150 2280 y(from)30 b(the)g Fr(list)j Fu(b)m(y)e(whitespace.)
+275 2421 y(The)e(exit)j(status)e(of)h(b)s(oth)f(of)g(these)h
 (constructs)g(is)f(the)h(exit)g(status)f(of)h Fr(list)p
-Fu(.)150 2363 y Fk(3.2.5)63 b(Copro)s(cesses)150 2510
+Fu(.)150 2626 y Fk(3.2.5)63 b(Copro)s(cesses)150 2773
 y Fu(A)37 b Ft(coprocess)c Fu(is)k(a)g(shell)f(command)h(preceded)f(b)m
 (y)g(the)h Ft(coproc)d Fu(reserv)m(ed)j(w)m(ord.)59 b(A)36
-b(copro)s(cess)h(is)150 2619 y(executed)g(async)m(hronously)g(in)f(a)h
+b(copro)s(cess)h(is)150 2883 y(executed)g(async)m(hronously)g(in)f(a)h
 (subshell,)g(as)g(if)g(the)f(command)h(had)f(b)s(een)f(terminated)i
-(with)g(the)150 2729 y(`)p Ft(&)p Fu(')d(con)m(trol)h(op)s(erator,)g
+(with)g(the)150 2992 y(`)p Ft(&)p Fu(')d(con)m(trol)h(op)s(erator,)g
 (with)f(a)g(t)m(w)m(o-w)m(a)m(y)i(pip)s(e)d(established)h(b)s(et)m(w)m
-(een)h(the)f(executing)h(shell)f(and)f(the)150 2838 y(copro)s(cess.)275
-2981 y(The)c(format)i(for)f(a)h(copro)s(cess)g(is:)390
-3124 y Ft(coproc)46 b([)p Fj(NAME)p Ft(])g Fj(command)g
-Ft([)p Fj(redirections)p Ft(])150 3267 y Fu(This)39 b(creates)j(a)e
+(een)h(the)f(executing)h(shell)f(and)f(the)150 3102 y(copro)s(cess.)275
+3243 y(The)c(format)i(for)f(a)h(copro)s(cess)g(is:)390
+3383 y Ft(coproc)46 b([)p Fj(NAME)p Ft(])g Fj(command)g
+Ft([)p Fj(redirections)p Ft(])150 3524 y Fu(This)39 b(creates)j(a)e
 (copro)s(cess)h(named)f Fr(NAME)p Fu(.)70 b(If)40 b Fr(NAME)46
 b Fu(is)40 b(not)g(supplied,)i(the)e(default)h(name)f(is)150
-3377 y Fr(COPR)m(OC)p Fu(.)d Fr(NAME)28 b Fu(m)m(ust)23
+3634 y Fr(COPR)m(OC)p Fu(.)d Fr(NAME)28 b Fu(m)m(ust)23
 b(not)g(b)s(e)e(supplied)h(if)g Fr(command)k Fu(is)d(a)g(simple)f
-(command)g(\(see)i(Section)f(3.2.1)150 3486 y([Simple)39
+(command)g(\(see)i(Section)f(3.2.1)150 3743 y([Simple)39
 b(Commands],)h(page)g(8\);)k(otherwise,)e(it)d(is)g(in)m(terpreted)h
 (as)f(the)g(\014rst)f(w)m(ord)h(of)g(the)g(simple)150
-3596 y(command.)275 3739 y(When)j(the)i(copro)s(cess)f(is)g(executed,)
+3853 y(command.)275 3994 y(When)j(the)i(copro)s(cess)f(is)g(executed,)
 48 b(the)43 b(shell)g(creates)i(an)e(arra)m(y)g(v)-5
-b(ariable)44 b(\(see)g(Section)g(6.7)150 3849 y([Arra)m(ys],)32
+b(ariable)44 b(\(see)g(Section)g(6.7)150 4103 y([Arra)m(ys],)32
 b(page)g(93\))h(named)e Ft(NAME)f Fu(in)h(the)h(con)m(text)h(of)e(the)h
 (executing)g(shell.)44 b(The)31 b(standard)f(output)150
-3958 y(of)39 b Fr(command)j Fu(is)d(connected)g(via)g(a)g(pip)s(e)f(to)
+4213 y(of)39 b Fr(command)j Fu(is)d(connected)g(via)g(a)g(pip)s(e)f(to)
 i(a)f(\014le)f(descriptor)h(in)f(the)h(executing)h(shell,)h(and)d(that)
-150 4068 y(\014le)i(descriptor)h(is)f(assigned)h(to)g
+150 4322 y(\014le)i(descriptor)h(is)f(assigned)h(to)g
 Ft(NAME)p Fu([0].)70 b(The)40 b(standard)f(input)h(of)g
-Fr(command)k Fu(is)c(connected)h(via)150 4177 y(a)h(pip)s(e)f(to)i(a)f
+Fr(command)k Fu(is)c(connected)h(via)150 4432 y(a)h(pip)s(e)f(to)i(a)f
 (\014le)g(descriptor)g(in)f(the)h(executing)i(shell,)h(and)c(that)h
-(\014le)g(descriptor)g(is)g(assigned)g(to)150 4287 y
+(\014le)g(descriptor)g(is)g(assigned)g(to)150 4542 y
 Ft(NAME)p Fu([1].)69 b(This)39 b(pip)s(e)g(is)h(established)g(b)s
 (efore)f(an)m(y)h(redirections)h(sp)s(eci\014ed)e(b)m(y)g(the)h
-(command)g(\(see)150 4397 y(Section)45 b(3.6)h([Redirections],)k(page)
-45 b(33\).)84 b(The)44 b(\014le)h(descriptors)f(can)h(b)s(e)f(utilized)
-h(as)g(argumen)m(ts)150 4506 y(to)d(shell)g(commands)f(and)g
+(command)g(\(see)150 4651 y(Section)45 b(3.6)h([Redirections],)k(page)
+45 b(34\).)84 b(The)44 b(\014le)h(descriptors)f(can)h(b)s(e)f(utilized)
+h(as)g(argumen)m(ts)150 4761 y(to)d(shell)g(commands)f(and)g
 (redirections)h(using)f(standard)g(w)m(ord)g(expansions.)74
-b(Other)41 b(than)g(those)150 4616 y(created)27 b(to)g(execute)g
+b(Other)41 b(than)g(those)150 4870 y(created)27 b(to)g(execute)g
 (command)f(and)f(pro)s(cess)h(substitutions,)h(the)f(\014le)g
-(descriptors)g(are)g(not)h(a)m(v)-5 b(ailable)150 4725
-y(in)30 b(subshells.)275 4868 y(The)d(pro)s(cess)h(ID)h(of)f(the)h
+(descriptors)g(are)g(not)h(a)m(v)-5 b(ailable)150 4980
+y(in)30 b(subshells.)275 5121 y(The)d(pro)s(cess)h(ID)h(of)f(the)h
 (shell)f(spa)m(wned)g(to)h(execute)h(the)e(copro)s(cess)h(is)f(a)m(v)-5
-b(ailable)31 b(as)d(the)h(v)-5 b(alue)29 b(of)150 4978
-y(the)k(v)-5 b(ariable)33 b Ft(NAME)p 850 4978 28 4 v
+b(ailable)31 b(as)d(the)h(v)-5 b(alue)29 b(of)150 5230
+y(the)k(v)-5 b(ariable)33 b Ft(NAME)p 850 5230 28 4 v
 39 w Fu(PID.)g(The)f Ft(wait)f Fu(builtin)h(command)g(ma)m(y)h(b)s(e)f
-(used)g(to)h(w)m(ait)h(for)e(the)h(copro)s(cess)150 5087
-y(to)e(terminate.)275 5230 y(Since)20 b(the)g(copro)s(cess)h(is)g
-(created)g(as)g(an)f(async)m(hronous)g(command,)i(the)f
-Ft(coproc)d Fu(command)i(alw)m(a)m(ys)150 5340 y(returns)29
-b(success.)41 b(The)30 b(return)f(status)i(of)f(a)h(copro)s(cess)g(is)f
-(the)h(exit)g(status)g(of)f Fr(command)p Fu(.)p eop end
+(used)g(to)h(w)m(ait)h(for)e(the)h(copro)s(cess)150 5340
+y(to)e(terminate.)p eop end
 %%Page: 16 22
 TeXDict begin 16 21 bop 150 -116 a Fu(Chapter)30 b(3:)41
-b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(16)150 299
-y Fk(3.2.6)63 b(GNU)41 b(P)m(arallel)150 446 y Fu(There)30
-b(are)h(w)m(a)m(ys)g(to)g(run)f(commands)g(in)g(parallel)h(that)h(are)e
-(not)h(built)g(in)m(to)g(Bash.)41 b(GNU)31 b(P)m(arallel)i(is)150
-555 y(a)e(to)s(ol)g(to)g(do)f(just)g(that.)275 685 y(GNU)e(P)m
-(arallel,)i(as)e(its)g(name)f(suggests,)j(can)d(b)s(e)g(used)g(to)h
-(build)f(and)g(run)f(commands)h(in)h(parallel.)150 795
-y(Y)-8 b(ou)41 b(ma)m(y)g(run)e(the)h(same)h(command)f(with)g
-(di\013eren)m(t)h(argumen)m(ts,)j(whether)39 b(they)i(are)g
-(\014lenames,)150 904 y(usernames,)27 b(hostnames,)h(or)e(lines)h(read)
-f(from)h(\014les.)39 b(GNU)27 b(P)m(arallel)i(pro)m(vides)d(shorthand)g
-(references)150 1014 y(to)38 b(man)m(y)g(of)g(the)g(most)g(common)g(op)
-s(erations)g(\(input)f(lines,)j(v)-5 b(arious)38 b(p)s(ortions)f(of)h
-(the)g(input)e(line,)150 1123 y(di\013eren)m(t)f(w)m(a)m(ys)h(to)f(sp)s
-(ecify)f(the)h(input)f(source,)i(and)e(so)h(on\).)54
-b(P)m(arallel)36 b(can)f(replace)h Ft(xargs)d Fu(or)i(feed)150
-1233 y(commands)30 b(from)g(its)h(input)e(sources)h(to)i(sev)m(eral)f
-(di\013eren)m(t)g(instances)g(of)g(Bash.)275 1363 y(F)-8
-b(or)33 b(a)g(complete)h(description,)g(refer)e(to)i(the)f(GNU)g(P)m
-(arallel)i(do)s(cumen)m(tation.)48 b(A)33 b(few)f(examples)150
-1472 y(should)d(pro)m(vide)i(a)g(brief)e(in)m(tro)s(duction)i(to)g(its)
-g(use.)275 1602 y(F)-8 b(or)37 b(example,)i(it)e(is)f(easy)h(to)g
-(replace)h Ft(xargs)d Fu(to)i(gzip)g(all)g(h)m(tml)g(\014les)f(in)h
-(the)f(curren)m(t)g(directory)150 1711 y(and)30 b(its)h(sub)s
-(directories:)390 1841 y Ft(find)47 b(.)g(-type)f(f)i(-name)e('*.html')
-g(-print)g(|)h(parallel)f(gzip)150 1971 y Fu(If)30 b(y)m(ou)h(need)f
-(to)h(protect)h(sp)s(ecial)f(c)m(haracters)g(suc)m(h)g(as)f(newlines)h
-(in)f(\014le)g(names,)h(use)f(\014nd's)f Ft(-print0)150
-2080 y Fu(option)i(and)f(parallel's)h Ft(-0)f Fu(option.)275
-2210 y(Y)-8 b(ou)34 b(can)g(use)f(P)m(arallel)j(to)e(mo)m(v)m(e)h
-(\014les)f(from)f(the)h(curren)m(t)f(directory)h(when)f(the)h(n)m(um)m
-(b)s(er)e(of)i(\014les)150 2320 y(is)c(to)s(o)i(large)f(to)g(pro)s
-(cess)f(with)g(one)h Ft(mv)f Fu(in)m(v)m(o)s(cation:)390
-2449 y Ft(ls)47 b(|)h(parallel)d(mv)i({})h(destdir)275
-2579 y Fu(As)28 b(y)m(ou)h(can)g(see,)g(the)g Fi({})g
-Fu(is)g(replaced)g(with)f(eac)m(h)i(line)f(read)f(from)g(standard)g
-(input.)39 b(While)29 b(using)150 2688 y Ft(ls)g Fu(will)h(w)m(ork)g
-(in)f(most)h(instances,)h(it)f(is)g(not)g(su\016cien)m(t)g(to)h(deal)f
-(with)f(all)i(\014lenames.)40 b(If)30 b(y)m(ou)g(need)f(to)150
-2798 y(accommo)s(date)j(sp)s(ecial)f(c)m(haracters)h(in)e(\014lenames,)
-h(y)m(ou)f(can)h(use)390 2928 y Ft(find)47 b(.)g(-depth)f(1)i(\\!)f
-(-name)f('.*')h(-print0)f(|)h(parallel)f(-0)h(mv)g({})g(destdir)150
-3057 y Fu(as)31 b(alluded)f(to)h(ab)s(o)m(v)m(e.)275
-3187 y(This)e(will)i(run)e(as)h(man)m(y)h Ft(mv)e Fu(commands)h(as)h
-(there)f(are)h(\014les)f(in)h(the)f(curren)m(t)g(directory)-8
-b(.)42 b(Y)-8 b(ou)31 b(can)150 3297 y(em)m(ulate)h(a)f(parallel)g
-Ft(xargs)e Fu(b)m(y)h(adding)g(the)h Ft(-X)f Fu(option:)390
-3426 y Ft(find)47 b(.)g(-depth)f(1)i(\\!)f(-name)f('.*')h(-print0)f(|)h
-(parallel)f(-0)h(-X)g(mv)g({})g(destdir)275 3556 y Fu(GNU)31
-b(P)m(arallel)i(can)e(replace)h(certain)g(common)g(idioms)f(that)g(op)s
-(erate)h(on)f(lines)g(read)g(from)f(a)i(\014le)150 3665
-y(\(in)e(this)h(case,)g(\014lenames)g(listed)g(one)f(p)s(er)g(line\):)
-390 3795 y Ft(while)46 b(IFS=)h(read)g(-r)g(x;)g(do)390
-3905 y(do-something1)d("$x")j("config-$x")390 4014 y(do-something2)d(<)
-k("$x")390 4124 y(done)f(<)g(file)g(|)g(process-output)150
-4253 y Fu(with)30 b(a)h(more)f(compact)i(syn)m(tax)f(reminiscen)m(t)g
-(of)g(lam)m(b)s(das:)390 4383 y Ft(cat)47 b(list)g(|)g(parallel)f
-("do-something1)d({})48 b(config-{})d(;)i(do-something2)e(<)i({}")g(|)g
-(process-output)275 4513 y Fu(P)m(arallel)31 b(pro)m(vides)e(a)h
-(built-in)g(mec)m(hanism)g(to)g(remo)m(v)m(e)h(\014lename)e
-(extensions,)i(whic)m(h)e(lends)g(itself)150 4622 y(to)i(batc)m(h)g
-(\014le)g(transformations)f(or)g(renaming:)390 4752 y
-Ft(ls)47 b(*.gz)g(|)g(parallel)f(-j+0)g("zcat)h({})g(|)g(bzip2)g
-(>{.}.bz2)e(&&)j(rm)f({}")150 4882 y Fu(This)28 b(will)i(recompress)e
-(all)i(\014les)f(in)g(the)g(curren)m(t)g(directory)g(with)g(names)g
-(ending)f(in)h(.gz)h(using)f(bzip2,)150 4991 y(running)37
-b(one)i(job)f(p)s(er)f(CPU)h(\(-j)p Ft(+)p Fu(0\))i(in)e(parallel.)66
-b(\(W)-8 b(e)40 b(use)e Ft(ls)g Fu(for)h(brevit)m(y)g(here;)j(using)c
-Ft(find)g Fu(as)150 5101 y(ab)s(o)m(v)m(e)e(is)g(more)f(robust)f(in)h
-(the)h(face)g(of)f(\014lenames)h(con)m(taining)g(unexp)s(ected)f(c)m
-(haracters.\))57 b(P)m(arallel)150 5210 y(can)31 b(tak)m(e)h(argumen)m
-(ts)e(from)g(the)h(command)f(line;)h(the)f(ab)s(o)m(v)m(e)i(can)f(also)
-g(b)s(e)f(written)g(as)390 5340 y Ft(parallel)46 b("zcat)g({})h(|)h
-(bzip2)e(>{.}.bz2)f(&&)j(rm)f({}")g(:::)g(*.gz)p eop
-end
+b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(16)275 299
+y(Since)20 b(the)g(copro)s(cess)h(is)g(created)g(as)g(an)f(async)m
+(hronous)g(command,)i(the)f Ft(coproc)d Fu(command)i(alw)m(a)m(ys)150
+408 y(returns)29 b(success.)41 b(The)30 b(return)f(status)i(of)f(a)h
+(copro)s(cess)g(is)f(the)h(exit)g(status)g(of)f Fr(command)p
+Fu(.)150 612 y Fk(3.2.6)63 b(GNU)41 b(P)m(arallel)150
+759 y Fu(There)30 b(are)h(w)m(a)m(ys)g(to)g(run)f(commands)g(in)g
+(parallel)h(that)h(are)e(not)h(built)g(in)m(to)g(Bash.)41
+b(GNU)31 b(P)m(arallel)i(is)150 869 y(a)e(to)s(ol)g(to)g(do)f(just)g
+(that.)275 1007 y(GNU)e(P)m(arallel,)i(as)e(its)g(name)f(suggests,)j
+(can)d(b)s(e)g(used)g(to)h(build)f(and)g(run)f(commands)h(in)h
+(parallel.)150 1117 y(Y)-8 b(ou)41 b(ma)m(y)g(run)e(the)h(same)h
+(command)f(with)g(di\013eren)m(t)h(argumen)m(ts,)j(whether)39
+b(they)i(are)g(\014lenames,)150 1227 y(usernames,)27
+b(hostnames,)h(or)e(lines)h(read)f(from)h(\014les.)39
+b(GNU)27 b(P)m(arallel)i(pro)m(vides)d(shorthand)g(references)150
+1336 y(to)38 b(man)m(y)g(of)g(the)g(most)g(common)g(op)s(erations)g
+(\(input)f(lines,)j(v)-5 b(arious)38 b(p)s(ortions)f(of)h(the)g(input)e
+(line,)150 1446 y(di\013eren)m(t)f(w)m(a)m(ys)h(to)f(sp)s(ecify)f(the)h
+(input)f(source,)i(and)e(so)h(on\).)54 b(P)m(arallel)36
+b(can)f(replace)h Ft(xargs)d Fu(or)i(feed)150 1555 y(commands)30
+b(from)g(its)h(input)e(sources)h(to)i(sev)m(eral)f(di\013eren)m(t)g
+(instances)g(of)g(Bash.)275 1694 y(F)-8 b(or)33 b(a)g(complete)h
+(description,)g(refer)e(to)i(the)f(GNU)g(P)m(arallel)i(do)s(cumen)m
+(tation.)48 b(A)33 b(few)f(examples)150 1804 y(should)d(pro)m(vide)i(a)
+g(brief)e(in)m(tro)s(duction)i(to)g(its)g(use.)275 1943
+y(F)-8 b(or)37 b(example,)i(it)e(is)f(easy)h(to)g(replace)h
+Ft(xargs)d Fu(to)i(gzip)g(all)g(h)m(tml)g(\014les)f(in)h(the)f(curren)m
+(t)g(directory)150 2052 y(and)30 b(its)h(sub)s(directories:)390
+2191 y Ft(find)47 b(.)g(-type)f(f)i(-name)e('*.html')g(-print)g(|)h
+(parallel)f(gzip)150 2330 y Fu(If)30 b(y)m(ou)h(need)f(to)h(protect)h
+(sp)s(ecial)f(c)m(haracters)g(suc)m(h)g(as)f(newlines)h(in)f(\014le)g
+(names,)h(use)f(\014nd's)f Ft(-print0)150 2439 y Fu(option)i(and)f
+(parallel's)h Ft(-0)f Fu(option.)275 2578 y(Y)-8 b(ou)34
+b(can)g(use)f(P)m(arallel)j(to)e(mo)m(v)m(e)h(\014les)f(from)f(the)h
+(curren)m(t)f(directory)h(when)f(the)h(n)m(um)m(b)s(er)e(of)i(\014les)
+150 2688 y(is)c(to)s(o)i(large)f(to)g(pro)s(cess)f(with)g(one)h
+Ft(mv)f Fu(in)m(v)m(o)s(cation:)390 2827 y Ft(ls)47 b(|)h(parallel)d
+(mv)i({})h(destdir)275 2965 y Fu(As)28 b(y)m(ou)h(can)g(see,)g(the)g
+Fi({})g Fu(is)g(replaced)g(with)f(eac)m(h)i(line)f(read)f(from)g
+(standard)g(input.)39 b(While)29 b(using)150 3075 y Ft(ls)g
+Fu(will)h(w)m(ork)g(in)f(most)h(instances,)h(it)f(is)g(not)g
+(su\016cien)m(t)g(to)h(deal)f(with)f(all)i(\014lenames.)40
+b(If)30 b(y)m(ou)g(need)f(to)150 3185 y(accommo)s(date)j(sp)s(ecial)f
+(c)m(haracters)h(in)e(\014lenames,)h(y)m(ou)f(can)h(use)390
+3323 y Ft(find)47 b(.)g(-depth)f(1)i(\\!)f(-name)f('.*')h(-print0)f(|)h
+(parallel)f(-0)h(mv)g({})g(destdir)150 3462 y Fu(as)31
+b(alluded)f(to)h(ab)s(o)m(v)m(e.)275 3601 y(This)e(will)i(run)e(as)h
+(man)m(y)h Ft(mv)e Fu(commands)h(as)h(there)f(are)h(\014les)f(in)h(the)
+f(curren)m(t)g(directory)-8 b(.)42 b(Y)-8 b(ou)31 b(can)150
+3711 y(em)m(ulate)h(a)f(parallel)g Ft(xargs)e Fu(b)m(y)h(adding)g(the)h
+Ft(-X)f Fu(option:)390 3850 y Ft(find)47 b(.)g(-depth)f(1)i(\\!)f
+(-name)f('.*')h(-print0)f(|)h(parallel)f(-0)h(-X)g(mv)g({})g(destdir)
+275 3988 y Fu(GNU)31 b(P)m(arallel)i(can)e(replace)h(certain)g(common)g
+(idioms)f(that)g(op)s(erate)h(on)f(lines)g(read)g(from)f(a)i(\014le)150
+4098 y(\(in)e(this)h(case,)g(\014lenames)g(listed)g(one)f(p)s(er)g
+(line\):)390 4237 y Ft(while)46 b(IFS=)h(read)g(-r)g(x;)g(do)390
+4346 y(do-something1)d("$x")j("config-$x")390 4456 y(do-something2)d(<)
+k("$x")390 4566 y(done)f(<)g(file)g(|)g(process-output)150
+4704 y Fu(with)30 b(a)h(more)f(compact)i(syn)m(tax)f(reminiscen)m(t)g
+(of)g(lam)m(b)s(das:)390 4843 y Ft(cat)47 b(list)g(|)g(parallel)f
+("do-something1)d({})48 b(config-{})d(;)i(do-something2)e(<)i({}")g(|)
+915 4953 y(process-output)275 5092 y Fu(P)m(arallel)31
+b(pro)m(vides)e(a)h(built-in)g(mec)m(hanism)g(to)g(remo)m(v)m(e)h
+(\014lename)e(extensions,)i(whic)m(h)e(lends)g(itself)150
+5201 y(to)i(batc)m(h)g(\014le)g(transformations)f(or)g(renaming:)390
+5340 y Ft(ls)47 b(*.gz)g(|)g(parallel)f(-j+0)g("zcat)h({})g(|)g(bzip2)g
+(>{.}.bz2)e(&&)j(rm)f({}")p eop end
 %%Page: 17 23
 TeXDict begin 17 22 bop 150 -116 a Fu(Chapter)30 b(3:)41
-b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(17)275 299
-y(If)24 b(a)i(command)f(generates)h(output,)g(y)m(ou)g(ma)m(y)f(w)m(an)
-m(t)h(to)g(preserv)m(e)g(the)f(input)f(order)h(in)g(the)g(output.)150
-408 y(F)-8 b(or)31 b(instance,)g(the)g(follo)m(wing)h(command)390
-543 y Ft({)47 b(echo)g(foss.org.my)e(;)i(echo)g(debian.org;)e(echo)h
-(freenetproject.org;)d(})k(|)h(parallel)d(traceroute)150
-677 y Fu(will)31 b(displa)m(y)f(as)h(output)f(the)g(traceroute)i(in)m
-(v)m(o)s(cation)h(that)e(\014nishes)e(\014rst.)40 b(Adding)30
-b(the)g Ft(-k)g Fu(option)390 811 y Ft({)47 b(echo)g(foss.org.my)e(;)i
-(echo)g(debian.org;)e(echo)h(freenetproject.org;)d(})k(|)h(parallel)d
-(-k)i(traceroute)150 945 y Fu(will)31 b(ensure)e(that)i(the)g(output)f
-(of)g Ft(traceroute)e(foss.org.my)f Fu(is)k(displa)m(y)m(ed)g(\014rst.)
-275 1079 y(Finally)-8 b(,)31 b(P)m(arallel)h(can)e(b)s(e)f(used)g(to)i
-(run)d(a)i(sequence)h(of)f(shell)g(commands)f(in)h(parallel,)h(similar)
-f(to)150 1189 y(`)p Ft(cat)g(file)f(|)h(bash)p Fu('.)53
-b(It)35 b(is)g(not)g(uncommon)f(to)i(tak)m(e)g(a)f(list)h(of)f
-(\014lenames,)h(create)g(a)g(series)f(of)g(shell)150
-1298 y(commands)24 b(to)h(op)s(erate)h(on)e(them,)i(and)e(feed)g(that)h
-(list)h(of)e(commands)g(to)i(a)f(shell.)39 b(P)m(arallel)26
-b(can)f(sp)s(eed)150 1408 y(this)30 b(up.)40 b(Assuming)30
-b(that)h Ft(file)e Fu(con)m(tains)i(a)g(list)g(of)g(shell)f(commands,)h
-(one)f(p)s(er)g(line,)390 1542 y Ft(parallel)46 b(-j)h(10)g(<)g(file)
-150 1676 y Fu(will)37 b(ev)-5 b(aluate)38 b(the)f(commands)f(using)g
-(the)h(shell)g(\(since)g(no)f(explicit)i(command)e(is)h(supplied)e(as)i
-(an)150 1786 y(argumen)m(t\),)31 b(in)f(blo)s(c)m(ks)h(of)g(ten)f
-(shell)h(jobs)f(at)h(a)g(time.)150 2026 y Fs(3.3)68 b(Shell)45
-b(F)-11 b(unctions)150 2185 y Fu(Shell)35 b(functions)h(are)g(a)g(w)m
+b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(17)150 299
+y(This)28 b(will)i(recompress)e(all)i(\014les)f(in)g(the)g(curren)m(t)g
+(directory)g(with)g(names)g(ending)f(in)h(.gz)h(using)f(bzip2,)150
+408 y(running)37 b(one)i(job)f(p)s(er)f(CPU)h(\(-j)p
+Ft(+)p Fu(0\))i(in)e(parallel.)66 b(\(W)-8 b(e)40 b(use)e
+Ft(ls)g Fu(for)h(brevit)m(y)g(here;)j(using)c Ft(find)g
+Fu(as)150 518 y(ab)s(o)m(v)m(e)e(is)g(more)f(robust)f(in)h(the)h(face)g
+(of)f(\014lenames)h(con)m(taining)g(unexp)s(ected)f(c)m(haracters.\))57
+b(P)m(arallel)150 628 y(can)31 b(tak)m(e)h(argumen)m(ts)e(from)g(the)h
+(command)f(line;)h(the)f(ab)s(o)m(v)m(e)i(can)f(also)g(b)s(e)f(written)
+g(as)390 770 y Ft(parallel)46 b("zcat)g({})h(|)h(bzip2)e(>{.}.bz2)f(&&)
+j(rm)f({}")g(:::)g(*.gz)275 913 y Fu(If)24 b(a)i(command)f(generates)h
+(output,)g(y)m(ou)g(ma)m(y)f(w)m(an)m(t)h(to)g(preserv)m(e)g(the)f
+(input)f(order)h(in)g(the)g(output.)150 1023 y(F)-8 b(or)31
+b(instance,)g(the)g(follo)m(wing)h(command)390 1165 y
+Ft({)581 1275 y(echo)47 b(foss.org.my)d(;)581 1385 y(echo)j(debian.org)
+e(;)581 1494 y(echo)i(freenetproject.org)42 b(;)390 1604
+y(})47 b(|)h(parallel)d(traceroute)150 1747 y Fu(will)31
+b(displa)m(y)f(as)h(output)f(the)g(traceroute)i(in)m(v)m(o)s(cation)h
+(that)e(\014nishes)e(\014rst.)40 b(Adding)30 b(the)g
+Ft(-k)g Fu(option)390 1889 y Ft({)581 1999 y(echo)47
+b(foss.org.my)d(;)581 2108 y(echo)j(debian.org)e(;)581
+2218 y(echo)i(freenetproject.org)42 b(;)390 2328 y(})47
+b(|)h(parallel)d(-k)j(traceroute)150 2470 y Fu(will)31
+b(ensure)e(that)i(the)g(output)f(of)g Ft(traceroute)e(foss.org.my)f
+Fu(is)k(displa)m(y)m(ed)g(\014rst.)275 2613 y(Finally)-8
+b(,)31 b(P)m(arallel)h(can)e(b)s(e)f(used)g(to)i(run)d(a)i(sequence)h
+(of)f(shell)g(commands)f(in)h(parallel,)h(similar)f(to)150
+2723 y(`)p Ft(cat)g(file)f(|)h(bash)p Fu('.)53 b(It)35
+b(is)g(not)g(uncommon)f(to)i(tak)m(e)g(a)f(list)h(of)f(\014lenames,)h
+(create)g(a)g(series)f(of)g(shell)150 2832 y(commands)24
+b(to)h(op)s(erate)h(on)e(them,)i(and)e(feed)g(that)h(list)h(of)e
+(commands)g(to)i(a)f(shell.)39 b(P)m(arallel)26 b(can)f(sp)s(eed)150
+2942 y(this)30 b(up.)40 b(Assuming)30 b(that)h Ft(file)e
+Fu(con)m(tains)i(a)g(list)g(of)g(shell)f(commands,)h(one)f(p)s(er)g
+(line,)390 3085 y Ft(parallel)46 b(-j)h(10)g(<)g(file)150
+3227 y Fu(will)37 b(ev)-5 b(aluate)38 b(the)f(commands)f(using)g(the)h
+(shell)g(\(since)g(no)f(explicit)i(command)e(is)h(supplied)e(as)i(an)
+150 3337 y(argumen)m(t\),)31 b(in)f(blo)s(c)m(ks)h(of)g(ten)f(shell)h
+(jobs)f(at)h(a)g(time.)150 3590 y Fs(3.3)68 b(Shell)45
+b(F)-11 b(unctions)150 3750 y Fu(Shell)35 b(functions)h(are)g(a)g(w)m
 (a)m(y)g(to)h(group)e(commands)g(for)h(later)g(execution)h(using)e(a)h
-(single)g(name)g(for)150 2295 y(the)f(group.)55 b(They)35
+(single)g(name)g(for)150 3859 y(the)f(group.)55 b(They)35
 b(are)g(executed)h(just)f(lik)m(e)h(a)g Ft(")p Fu(regular)p
 Ft(")f Fu(command.)54 b(When)35 b(the)h(name)f(of)g(a)h(shell)150
-2404 y(function)j(is)g(used)f(as)h(a)h(simple)f(command)g(name,)i(the)e
+3969 y(function)j(is)g(used)f(as)h(a)h(simple)f(command)g(name,)i(the)e
 (list)h(of)f(commands)g(asso)s(ciated)i(with)d(that)150
-2514 y(function)25 b(name)h(is)g(executed.)40 b(Shell)25
+4078 y(function)25 b(name)h(is)g(executed.)40 b(Shell)25
 b(functions)g(are)i(executed)f(in)f(the)h(curren)m(t)g(shell)g(con)m
-(text;)j(no)c(new)150 2623 y(pro)s(cess)30 b(is)g(created)i(to)f(in)m
-(terpret)g(them.)275 2757 y(F)-8 b(unctions)30 b(are)h(declared)g
-(using)f(this)g(syn)m(tax:)390 2892 y Fj(name)47 b Ft(\(\))g
+(text;)j(no)c(new)150 4188 y(pro)s(cess)30 b(is)g(created)i(to)f(in)m
+(terpret)g(them.)275 4331 y(F)-8 b(unctions)30 b(are)h(declared)g
+(using)f(this)g(syn)m(tax:)390 4473 y Fj(name)47 b Ft(\(\))g
 Fj(compound-command)c Ft([)48 b Fj(redirections)c Ft(])275
-3026 y Fu(or)390 3160 y Ft(function)i Fj(name)g Ft([\(\)])h
+4616 y Fu(or)390 4759 y Ft(function)i Fj(name)g Ft([\(\)])h
 Fj(compound-command)c Ft([)48 b Fj(redirections)c Ft(])275
-3294 y Fu(This)31 b(de\014nes)h(a)h(shell)g(function)g(named)f
+4902 y Fu(This)31 b(de\014nes)h(a)h(shell)g(function)g(named)f
 Fr(name)p Fu(.)48 b(The)32 b(reserv)m(ed)h(w)m(ord)f
-Ft(function)f Fu(is)h(optional.)49 b(If)150 3403 y(the)39
+Ft(function)f Fu(is)h(optional.)49 b(If)150 5011 y(the)39
 b Ft(function)f Fu(reserv)m(ed)h(w)m(ord)g(is)g(supplied,)i(the)e
 (paren)m(theses)h(are)f(optional.)69 b(The)39 b Fr(b)s(o)s(dy)45
-b Fu(of)40 b(the)150 3513 y(function)h(is)h(the)g(comp)s(ound)e
+b Fu(of)40 b(the)150 5121 y(function)h(is)h(the)g(comp)s(ound)e
 (command)h Fr(comp)s(ound-command)j Fu(\(see)e(Section)h(3.2.4)g([Comp)
-s(ound)150 3623 y(Commands],)33 b(page)h(9\).)49 b(That)33
+s(ound)150 5230 y(Commands],)33 b(page)h(9\).)49 b(That)33
 b(command)f(is)h(usually)g(a)g Fr(list)j Fu(enclosed)e(b)s(et)m(w)m
 (een)f Fi({)h Fu(and)e Fi(})p Fu(,)i(but)e(ma)m(y)150
-3732 y(b)s(e)39 b(an)m(y)h(comp)s(ound)e(command)i(listed)g(ab)s(o)m(v)
+5340 y(b)s(e)39 b(an)m(y)h(comp)s(ound)e(command)i(listed)g(ab)s(o)m(v)
 m(e,)j(with)d(one)g(exception:)60 b(If)39 b(the)h Ft(function)e
-Fu(reserv)m(ed)150 3842 y(w)m(ord)g(is)g(used,)h(but)f(the)g(paren)m
-(theses)h(are)f(not)h(supplied,)g(the)f(braces)g(are)h(required.)63
-b Fr(comp)s(ound-)150 3951 y(command)39 b Fu(is)c(executed)h(whenev)m
-(er)f Fr(name)41 b Fu(is)35 b(sp)s(eci\014ed)g(as)g(the)h(name)f(of)h
-(a)f(command.)56 b(When)35 b(the)150 4061 y(shell)d(is)h(in)f
-Fm(posix)f Fu(mo)s(de)h(\(see)h(Section)g(6.11)h([Bash)f(POSIX)e(Mo)s
-(de],)j(page)f(98\),)h Fr(name)j Fu(ma)m(y)c(not)g(b)s(e)150
-4171 y(the)k(same)g(as)g(one)g(of)g(the)f(sp)s(ecial)i(builtins)e
-(\(see)h(Section)h(4.4)g([Sp)s(ecial)f(Builtins],)i(page)e(71\).)61
-b(An)m(y)150 4280 y(redirections)32 b(\(see)g(Section)h(3.6)f
-([Redirections],)i(page)e(33\))h(asso)s(ciated)g(with)e(the)h(shell)f
-(function)h(are)150 4390 y(p)s(erformed)d(when)g(the)i(function)f(is)g
-(executed.)275 4524 y(A)44 b(function)g(de\014nition)h(ma)m(y)g(b)s(e)f
-(deleted)h(using)f(the)h Ft(-f)f Fu(option)h(to)g(the)g
-Ft(unset)e Fu(builtin)h(\(see)150 4633 y(Section)31 b(4.1)h([Bourne)e
-(Shell)g(Builtins],)h(page)h(43\).)275 4768 y(The)26
-b(exit)i(status)g(of)f(a)h(function)f(de\014nition)g(is)g(zero)h
-(unless)f(a)g(syn)m(tax)h(error)f(o)s(ccurs)g(or)g(a)h(readonly)150
-4877 y(function)k(with)f(the)i(same)f(name)g(already)h(exists.)46
-b(When)32 b(executed,)h(the)f(exit)h(status)g(of)f(a)g(function)150
-4987 y(is)e(the)h(exit)g(status)g(of)f(the)h(last)g(command)f(executed)
-i(in)e(the)g(b)s(o)s(dy)-8 b(.)275 5121 y(Note)22 b(that)f(for)f
-(historical)i(reasons,)h(in)e(the)g(most)g(common)g(usage)g(the)g
-(curly)f(braces)h(that)g(surround)150 5230 y(the)38 b(b)s(o)s(dy)d(of)j
-(the)f(function)g(m)m(ust)g(b)s(e)g(separated)h(from)f(the)g(b)s(o)s
-(dy)f(b)m(y)h Ft(blank)p Fu(s)f(or)h(newlines.)62 b(This)150
-5340 y(is)38 b(b)s(ecause)g(the)h(braces)f(are)h(reserv)m(ed)f(w)m
-(ords)g(and)f(are)i(only)f(recognized)i(as)e(suc)m(h)g(when)f(they)i
-(are)p eop end
+Fu(reserv)m(ed)p eop end
 %%Page: 18 24
 TeXDict begin 18 23 bop 150 -116 a Fu(Chapter)30 b(3:)41
 b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(18)150 299
-y(separated)26 b(from)f(the)h(command)f(list)i(b)m(y)e(whitespace)h(or)
-g(another)g(shell)g(metac)m(haracter.)41 b(Also,)28 b(when)150
-408 y(using)i(the)g(braces,)h(the)g Fr(list)i Fu(m)m(ust)d(b)s(e)g
+y(w)m(ord)38 b(is)g(used,)h(but)f(the)g(paren)m(theses)h(are)f(not)h
+(supplied,)g(the)f(braces)g(are)h(required.)63 b Fr(comp)s(ound-)150
+408 y(command)39 b Fu(is)c(executed)h(whenev)m(er)f Fr(name)41
+b Fu(is)35 b(sp)s(eci\014ed)g(as)g(the)h(name)f(of)h(a)f(command.)56
+b(When)35 b(the)150 518 y(shell)d(is)h(in)f Fm(posix)f
+Fu(mo)s(de)h(\(see)h(Section)g(6.11)h([Bash)f(POSIX)e(Mo)s(de],)j(page)
+f(98\),)h Fr(name)j Fu(ma)m(y)c(not)g(b)s(e)150 628 y(the)k(same)g(as)g
+(one)g(of)g(the)f(sp)s(ecial)i(builtins)e(\(see)h(Section)h(4.4)g([Sp)s
+(ecial)f(Builtins],)i(page)e(71\).)61 b(An)m(y)150 737
+y(redirections)32 b(\(see)g(Section)h(3.6)f([Redirections],)i(page)e
+(34\))h(asso)s(ciated)g(with)e(the)h(shell)f(function)h(are)150
+847 y(p)s(erformed)d(when)g(the)i(function)f(is)g(executed.)275
+981 y(A)44 b(function)g(de\014nition)h(ma)m(y)g(b)s(e)f(deleted)h
+(using)f(the)h Ft(-f)f Fu(option)h(to)g(the)g Ft(unset)e
+Fu(builtin)h(\(see)150 1090 y(Section)31 b(4.1)h([Bourne)e(Shell)g
+(Builtins],)h(page)h(43\).)275 1224 y(The)26 b(exit)i(status)g(of)f(a)h
+(function)f(de\014nition)g(is)g(zero)h(unless)f(a)g(syn)m(tax)h(error)f
+(o)s(ccurs)g(or)g(a)h(readonly)150 1334 y(function)k(with)f(the)i(same)
+f(name)g(already)h(exists.)46 b(When)32 b(executed,)h(the)f(exit)h
+(status)g(of)f(a)g(function)150 1443 y(is)e(the)h(exit)g(status)g(of)f
+(the)h(last)g(command)f(executed)i(in)e(the)g(b)s(o)s(dy)-8
+b(.)275 1577 y(Note)22 b(that)f(for)f(historical)i(reasons,)h(in)e(the)
+g(most)g(common)g(usage)g(the)g(curly)f(braces)h(that)g(surround)150
+1687 y(the)38 b(b)s(o)s(dy)d(of)j(the)f(function)g(m)m(ust)g(b)s(e)g
+(separated)h(from)f(the)g(b)s(o)s(dy)f(b)m(y)h Ft(blank)p
+Fu(s)f(or)h(newlines.)62 b(This)150 1797 y(is)38 b(b)s(ecause)g(the)h
+(braces)f(are)h(reserv)m(ed)f(w)m(ords)g(and)f(are)i(only)f(recognized)
+i(as)e(suc)m(h)g(when)f(they)i(are)150 1906 y(separated)26
+b(from)f(the)h(command)f(list)i(b)m(y)e(whitespace)h(or)g(another)g
+(shell)g(metac)m(haracter.)41 b(Also,)28 b(when)150 2016
+y(using)i(the)g(braces,)h(the)g Fr(list)i Fu(m)m(ust)d(b)s(e)g
 (terminated)h(b)m(y)f(a)h(semicolon,)h(a)e(`)p Ft(&)p
-Fu(',)h(or)g(a)f(newline.)275 548 y(When)i(a)i(function)f(is)g
+Fu(',)h(or)g(a)f(newline.)275 2150 y(When)i(a)i(function)f(is)g
 (executed,)i(the)e(argumen)m(ts)h(to)g(the)f(function)g(b)s(ecome)g
-(the)h(p)s(ositional)g(pa-)150 658 y(rameters)42 b(during)e(its)i
+(the)h(p)s(ositional)g(pa-)150 2259 y(rameters)42 b(during)e(its)i
 (execution)h(\(see)f(Section)g(3.4.1)h([P)m(ositional)h(P)m
-(arameters],)i(page)c(20\).)75 b(The)150 767 y(sp)s(ecial)37
+(arameters],)i(page)c(21\).)75 b(The)150 2369 y(sp)s(ecial)37
 b(parameter)f(`)p Ft(#)p Fu(')g(that)h(expands)e(to)i(the)f(n)m(um)m(b)
 s(er)f(of)h(p)s(ositional)h(parameters)f(is)g(up)s(dated)f(to)150
-877 y(re\015ect)h(the)f(c)m(hange.)56 b(Sp)s(ecial)35
+2478 y(re\015ect)h(the)f(c)m(hange.)56 b(Sp)s(ecial)35
 b(parameter)h Ft(0)f Fu(is)g(unc)m(hanged.)54 b(The)35
-b(\014rst)f(elemen)m(t)j(of)e(the)g Ft(FUNCNAME)150 986
+b(\014rst)f(elemen)m(t)j(of)e(the)g Ft(FUNCNAME)150 2588
 y Fu(v)-5 b(ariable)31 b(is)g(set)f(to)i(the)e(name)h(of)f(the)h
 (function)f(while)g(the)h(function)f(is)g(executing.)275
-1126 y(All)25 b(other)g(asp)s(ects)g(of)g(the)g(shell)g(execution)h(en)
+2722 y(All)25 b(other)g(asp)s(ects)g(of)g(the)g(shell)g(execution)h(en)
 m(vironmen)m(t)g(are)f(iden)m(tical)h(b)s(et)m(w)m(een)g(a)f(function)g
-(and)150 1235 y(its)35 b(caller)i(with)d(these)i(exceptions:)50
+(and)150 2832 y(its)35 b(caller)i(with)d(these)i(exceptions:)50
 b(the)36 b Ft(DEBUG)d Fu(and)h Ft(RETURN)g Fu(traps)g(are)i(not)f
-(inherited)f(unless)h(the)150 1345 y(function)26 b(has)g(b)s(een)f(giv)
+(inherited)f(unless)h(the)150 2941 y(function)26 b(has)g(b)s(een)f(giv)
 m(en)i(the)g Ft(trace)d Fu(attribute)j(using)f(the)g
 Ft(declare)e Fu(builtin)i(or)g(the)h Ft(-o)i(functrace)150
-1455 y Fu(option)f(has)e(b)s(een)h(enabled)g(with)g(the)g
+3051 y Fu(option)f(has)e(b)s(een)h(enabled)g(with)g(the)g
 Ft(set)f Fu(builtin,)i(\(in)f(whic)m(h)f(case)j(all)f(functions)e
-(inherit)h(the)g Ft(DEBUG)150 1564 y Fu(and)33 b Ft(RETURN)f
+(inherit)h(the)g Ft(DEBUG)150 3160 y Fu(and)33 b Ft(RETURN)f
 Fu(traps\),)j(and)e(the)h Ft(ERR)f Fu(trap)h(is)g(not)g(inherited)f
 (unless)g(the)h Ft(-o)c(errtrace)h Fu(shell)j(option)150
-1674 y(has)h(b)s(een)f(enabled.)55 b(See)35 b(Section)h(4.1)g([Bourne)f
+3270 y(has)h(b)s(een)f(enabled.)55 b(See)35 b(Section)h(4.1)g([Bourne)f
 (Shell)g(Builtins],)i(page)f(43,)i(for)c(the)i(description)f(of)150
-1783 y(the)c Ft(trap)e Fu(builtin.)275 1923 y(The)38
+3380 y(the)c Ft(trap)e Fu(builtin.)275 3513 y(The)38
 b Ft(FUNCNEST)f Fu(v)-5 b(ariable,)42 b(if)d(set)h(to)g(a)g(n)m(umeric)
 f(v)-5 b(alue)39 b(greater)h(than)f(0,)j(de\014nes)d(a)g(maxim)m(um)150
-2032 y(function)24 b(nesting)h(lev)m(el.)40 b(F)-8 b(unction)25
+3623 y(function)24 b(nesting)h(lev)m(el.)40 b(F)-8 b(unction)25
 b(in)m(v)m(o)s(cations)i(that)e(exceed)g(the)g(limit)g(cause)g(the)g
-(en)m(tire)g(command)150 2142 y(to)31 b(ab)s(ort.)275
-2281 y(If)37 b(the)g(builtin)g(command)h Ft(return)d
+(en)m(tire)g(command)150 3733 y(to)31 b(ab)s(ort.)275
+3867 y(If)37 b(the)g(builtin)g(command)h Ft(return)d
 Fu(is)j(executed)g(in)g(a)g(function,)h(the)e(function)h(completes)h
-(and)150 2391 y(execution)25 b(resumes)e(with)h(the)g(next)g(command)f
+(and)150 3976 y(execution)25 b(resumes)e(with)h(the)g(next)g(command)f
 (after)i(the)f(function)f(call.)40 b(An)m(y)24 b(command)f(asso)s
-(ciated)150 2501 y(with)36 b(the)h Ft(RETURN)d Fu(trap)i(is)h(executed)
+(ciated)150 4086 y(with)36 b(the)h Ft(RETURN)d Fu(trap)i(is)h(executed)
 g(b)s(efore)f(execution)i(resumes.)57 b(When)37 b(a)f(function)g
-(completes,)150 2610 y(the)h(v)-5 b(alues)38 b(of)f(the)g(p)s
+(completes,)150 4195 y(the)h(v)-5 b(alues)38 b(of)f(the)g(p)s
 (ositional)h(parameters)f(and)g(the)g(sp)s(ecial)h(parameter)f(`)p
-Ft(#)p Fu(')g(are)h(restored)f(to)h(the)150 2720 y(v)-5
+Ft(#)p Fu(')g(are)h(restored)f(to)h(the)150 4305 y(v)-5
 b(alues)26 b(they)f(had)g(prior)f(to)i(the)g(function's)f(execution.)40
 b(If)25 b(a)h(n)m(umeric)f(argumen)m(t)h(is)f(giv)m(en)h(to)g
-Ft(return)p Fu(,)150 2829 y(that)j(is)g(the)f(function's)h(return)e
+Ft(return)p Fu(,)150 4415 y(that)j(is)g(the)f(function's)h(return)e
 (status;)j(otherwise)f(the)f(function's)h(return)e(status)i(is)f(the)h
-(exit)h(status)150 2939 y(of)h(the)f(last)h(command)f(executed)i(b)s
-(efore)e(the)g Ft(return)p Fu(.)275 3078 y(V)-8 b(ariables)31
+(exit)h(status)150 4524 y(of)h(the)f(last)h(command)f(executed)i(b)s
+(efore)e(the)g Ft(return)p Fu(.)275 4658 y(V)-8 b(ariables)31
 b(lo)s(cal)g(to)f(the)g(function)f(ma)m(y)i(b)s(e)e(declared)h(with)f
 (the)h Ft(local)f Fu(builtin.)40 b(These)29 b(v)-5 b(ariables)150
-3188 y(are)25 b(visible)h(only)f(to)g(the)g(function)g(and)f(the)i
+4768 y(are)25 b(visible)h(only)f(to)g(the)g(function)g(and)f(the)i
 (commands)e(it)i(in)m(v)m(ok)m(es.)40 b(This)24 b(is)h(particularly)h
-(imp)s(ortan)m(t)150 3298 y(when)j(a)i(shell)g(function)f(calls)h
-(other)g(functions.)275 3437 y(Lo)s(cal)41 b(v)-5 b(ariables)42
+(imp)s(ortan)m(t)150 4877 y(when)j(a)i(shell)g(function)f(calls)h
+(other)g(functions.)275 5011 y(Lo)s(cal)41 b(v)-5 b(ariables)42
 b Ft(")p Fu(shado)m(w)p Ft(")e Fu(v)-5 b(ariables)42
 b(with)f(the)g(same)g(name)g(declared)h(at)f(previous)g(scop)s(es.)150
-3547 y(F)-8 b(or)41 b(instance,)j(a)d(lo)s(cal)h(v)-5
+5121 y(F)-8 b(or)41 b(instance,)j(a)d(lo)s(cal)h(v)-5
 b(ariable)41 b(declared)g(in)f(a)h(function)f(hides)g(a)h(global)h(v)-5
-b(ariable)41 b(of)g(the)g(same)150 3656 y(name:)59 b(references)40
+b(ariable)41 b(of)g(the)g(same)150 5230 y(name:)59 b(references)40
 b(and)f(assignmen)m(ts)h(refer)f(to)i(the)f(lo)s(cal)g(v)-5
 b(ariable,)43 b(lea)m(ving)f(the)d(global)i(v)-5 b(ariable)150
-3766 y(unmo)s(di\014ed.)39 b(When)30 b(the)g(function)g(returns,)g(the)
-g(global)i(v)-5 b(ariable)31 b(is)g(once)g(again)g(visible.)275
-3905 y(The)f(shell)h(uses)g Fr(dynamic)g(scoping)39 b
-Fu(to)32 b(con)m(trol)g(a)f(v)-5 b(ariable's)32 b(visibilit)m(y)h
-(within)d(functions.)42 b(With)150 4015 y(dynamic)31
-b(scoping,)i(visible)e(v)-5 b(ariables)32 b(and)f(their)h(v)-5
-b(alues)32 b(are)f(a)h(result)g(of)f(the)h(sequence)g(of)f(function)150
-4125 y(calls)37 b(that)g(caused)g(execution)g(to)g(reac)m(h)g(the)g
-(curren)m(t)f(function.)58 b(The)36 b(v)-5 b(alue)36
-b(of)h(a)g(v)-5 b(ariable)37 b(that)g(a)150 4234 y(function)24
-b(sees)g(dep)s(ends)f(on)h(its)g(v)-5 b(alue)25 b(within)e(its)i
-(caller,)i(if)d(an)m(y)-8 b(,)26 b(whether)e(that)g(caller)i(is)e(the)g
-Ft(")p Fu(global)p Ft(")150 4344 y Fu(scop)s(e)41 b(or)g(another)g
-(shell)g(function.)73 b(This)40 b(is)h(also)h(the)f(v)-5
-b(alue)41 b(that)h(a)f(lo)s(cal)i(v)-5 b(ariable)41 b(declaration)150
-4453 y Ft(")p Fu(shado)m(ws)p Ft(")p Fu(,)30 b(and)g(the)g(v)-5
-b(alue)31 b(that)g(is)f(restored)h(when)e(the)i(function)f(returns.)275
-4593 y(F)-8 b(or)41 b(example,)j(if)d(a)g(v)-5 b(ariable)41
-b Fr(v)-5 b(ar)48 b Fu(is)40 b(declared)h(as)g(lo)s(cal)h(in)f
-(function)f Fr(func1)p Fu(,)j(and)d Fr(func1)48 b Fu(calls)150
-4702 y(another)33 b(function)g Fr(func2)p Fu(,)g(references)g(to)h
+5340 y(unmo)s(di\014ed.)39 b(When)30 b(the)g(function)g(returns,)g(the)
+g(global)i(v)-5 b(ariable)31 b(is)g(once)g(again)g(visible.)p
+eop end
+%%Page: 19 25
+TeXDict begin 19 24 bop 150 -116 a Fu(Chapter)30 b(3:)41
+b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(19)275 299
+y(The)30 b(shell)h(uses)g Fr(dynamic)g(scoping)39 b Fu(to)32
+b(con)m(trol)g(a)f(v)-5 b(ariable's)32 b(visibilit)m(y)h(within)d
+(functions.)42 b(With)150 408 y(dynamic)31 b(scoping,)i(visible)e(v)-5
+b(ariables)32 b(and)f(their)h(v)-5 b(alues)32 b(are)f(a)h(result)g(of)f
+(the)h(sequence)g(of)f(function)150 518 y(calls)37 b(that)g(caused)g
+(execution)g(to)g(reac)m(h)g(the)g(curren)m(t)f(function.)58
+b(The)36 b(v)-5 b(alue)36 b(of)h(a)g(v)-5 b(ariable)37
+b(that)g(a)150 628 y(function)24 b(sees)g(dep)s(ends)f(on)h(its)g(v)-5
+b(alue)25 b(within)e(its)i(caller,)i(if)d(an)m(y)-8 b(,)26
+b(whether)e(that)g(caller)i(is)e(the)g Ft(")p Fu(global)p
+Ft(")150 737 y Fu(scop)s(e)41 b(or)g(another)g(shell)g(function.)73
+b(This)40 b(is)h(also)h(the)f(v)-5 b(alue)41 b(that)h(a)f(lo)s(cal)i(v)
+-5 b(ariable)41 b(declaration)150 847 y Ft(")p Fu(shado)m(ws)p
+Ft(")p Fu(,)30 b(and)g(the)g(v)-5 b(alue)31 b(that)g(is)f(restored)h
+(when)e(the)i(function)f(returns.)275 991 y(F)-8 b(or)41
+b(example,)j(if)d(a)g(v)-5 b(ariable)41 b Fr(v)-5 b(ar)48
+b Fu(is)40 b(declared)h(as)g(lo)s(cal)h(in)f(function)f
+Fr(func1)p Fu(,)j(and)d Fr(func1)48 b Fu(calls)150 1101
+y(another)33 b(function)g Fr(func2)p Fu(,)g(references)g(to)h
 Fr(v)-5 b(ar)39 b Fu(made)33 b(from)f(within)h Fr(func2)39
-b Fu(will)34 b(resolv)m(e)g(to)g(the)f(lo)s(cal)150 4812
+b Fu(will)34 b(resolv)m(e)g(to)g(the)f(lo)s(cal)150 1210
 y(v)-5 b(ariable)31 b Fr(v)-5 b(ar)37 b Fu(from)30 b
 Fr(func1)p Fu(,)g(shado)m(wing)h(an)m(y)f(global)i(v)-5
-b(ariable)31 b(named)f Fr(v)-5 b(ar)p Fu(.)275 4951 y(The)29
+b(ariable)31 b(named)f Fr(v)-5 b(ar)p Fu(.)275 1355 y(The)29
 b(follo)m(wing)j(script)f(demonstrates)f(this)h(b)s(eha)m(vior.)40
 b(When)31 b(executed,)g(the)g(script)f(displa)m(ys)390
-5091 y Ft(In)47 b(func2,)f(var)h(=)h(func1)e(local)390
-5230 y(func1\(\))390 5340 y({)p eop end
-%%Page: 19 25
-TeXDict begin 19 24 bop 150 -116 a Fu(Chapter)30 b(3:)41
-b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(19)581 299
-y Ft(local)46 b(var='func1)f(local')581 408 y(func2)390
-518 y(})390 737 y(func2\(\))390 847 y({)581 956 y(echo)i("In)f(func2,)h
-(var)f(=)i($var")390 1066 y(})390 1285 y(var=global)390
-1395 y(func1)275 1526 y Fu(The)32 b Ft(unset)g Fu(builtin)g(also)i
-(acts)g(using)e(the)i(same)f(dynamic)g(scop)s(e:)46 b(if)33
-b(a)g(v)-5 b(ariable)34 b(is)f(lo)s(cal)h(to)g(the)150
-1636 y(curren)m(t)i(scop)s(e,)h Ft(unset)e Fu(will)h(unset)g(it;)j
-(otherwise)e(the)f(unset)f(will)h(refer)g(to)h(the)f(v)-5
-b(ariable)37 b(found)d(in)150 1745 y(an)m(y)j(calling)h(scop)s(e)f(as)g
-(describ)s(ed)f(ab)s(o)m(v)m(e.)61 b(If)36 b(a)h(v)-5
-b(ariable)38 b(at)f(the)g(curren)m(t)g(lo)s(cal)h(scop)s(e)e(is)h
-(unset,)h(it)150 1855 y(will)27 b(remain)h(so)f(un)m(til)g(it)h(is)f
-(reset)h(in)f(that)g(scop)s(e)h(or)f(un)m(til)g(the)h(function)e
-(returns.)39 b(Once)27 b(the)g(function)150 1965 y(returns,)34
-b(an)m(y)h(instance)g(of)f(the)g(v)-5 b(ariable)35 b(at)g(a)g(previous)
-e(scop)s(e)i(will)f(b)s(ecome)h(visible.)52 b(If)34 b(the)g(unset)150
-2074 y(acts)e(on)f(a)h(v)-5 b(ariable)32 b(at)g(a)f(previous)g(scop)s
-(e,)h(an)m(y)f(instance)h(of)f(a)h(v)-5 b(ariable)32
-b(with)f(that)h(name)f(that)h(had)150 2184 y(b)s(een)e(shado)m(w)m(ed)g
-(will)h(b)s(ecome)g(visible.)275 2315 y(F)-8 b(unction)51
-b(names)f(and)g(de\014nitions)g(ma)m(y)i(b)s(e)e(listed)h(with)f(the)h
-Ft(-f)f Fu(option)h(to)g(the)g Ft(declare)150 2425 y
-Fu(\()p Ft(typeset)p Fu(\))35 b(builtin)g(command)h(\(see)h(Section)g
-(4.2)g([Bash)f(Builtins],)i(page)f(50\).)59 b(The)35
-b Ft(-F)h Fu(option)g(to)150 2535 y Ft(declare)e Fu(or)i
-Ft(typeset)e Fu(will)i(list)h(the)f(function)g(names)g(only)g(\(and)g
-(optionally)h(the)f(source)g(\014le)h(and)150 2644 y(line)c(n)m(um)m(b)
-s(er,)g(if)f(the)h Ft(extdebug)e Fu(shell)i(option)g(is)g(enabled\).)49
-b(F)-8 b(unctions)33 b(ma)m(y)h(b)s(e)e(exp)s(orted)g(so)h(that)150
-2754 y(subshells)j(automatically)k(ha)m(v)m(e)f(them)e(de\014ned)f
-(with)h(the)h Ft(-f)e Fu(option)i(to)g(the)g Ft(export)d
-Fu(builtin)i(\(see)150 2863 y(Section)31 b(4.1)h([Bourne)e(Shell)g
-(Builtins],)h(page)h(43\).)275 2995 y(F)-8 b(unctions)33
-b(ma)m(y)g(b)s(e)g(recursiv)m(e.)48 b(The)32 b Ft(FUNCNEST)f
-Fu(v)-5 b(ariable)34 b(ma)m(y)f(b)s(e)f(used)g(to)i(limit)g(the)f
-(depth)f(of)150 3104 y(the)27 b(function)f(call)i(stac)m(k)h(and)d
-(restrict)h(the)g(n)m(um)m(b)s(er)f(of)h(function)f(in)m(v)m(o)s
-(cations.)42 b(By)27 b(default,)g(no)g(limit)150 3214
-y(is)j(placed)h(on)g(the)f(n)m(um)m(b)s(er)f(of)i(recursiv)m(e)f
-(calls.)150 3449 y Fs(3.4)68 b(Shell)45 b(P)l(arameters)150
-3608 y Fu(A)23 b Fr(parameter)31 b Fu(is)23 b(an)g(en)m(tit)m(y)i(that)
+1499 y Ft(In)47 b(func2,)f(var)h(=)h(func1)e(local)390
+1643 y(func1\(\))390 1753 y({)581 1862 y(local)g(var='func1)f(local')
+581 1972 y(func2)390 2081 y(})390 2301 y(func2\(\))390
+2410 y({)581 2520 y(echo)i("In)f(func2,)h(var)f(=)i($var")390
+2629 y(})390 2849 y(var=global)390 2958 y(func1)275 3102
+y Fu(The)32 b Ft(unset)g Fu(builtin)g(also)i(acts)g(using)e(the)i(same)
+f(dynamic)g(scop)s(e:)46 b(if)33 b(a)g(v)-5 b(ariable)34
+b(is)f(lo)s(cal)h(to)g(the)150 3212 y(curren)m(t)i(scop)s(e,)h
+Ft(unset)e Fu(will)h(unset)g(it;)j(otherwise)e(the)f(unset)f(will)h
+(refer)g(to)h(the)f(v)-5 b(ariable)37 b(found)d(in)150
+3322 y(an)m(y)j(calling)h(scop)s(e)f(as)g(describ)s(ed)f(ab)s(o)m(v)m
+(e.)61 b(If)36 b(a)h(v)-5 b(ariable)38 b(at)f(the)g(curren)m(t)g(lo)s
+(cal)h(scop)s(e)e(is)h(unset,)h(it)150 3431 y(will)27
+b(remain)h(so)f(un)m(til)g(it)h(is)f(reset)h(in)f(that)g(scop)s(e)h(or)
+f(un)m(til)g(the)h(function)e(returns.)39 b(Once)27 b(the)g(function)
+150 3541 y(returns,)34 b(an)m(y)h(instance)g(of)f(the)g(v)-5
+b(ariable)35 b(at)g(a)g(previous)e(scop)s(e)i(will)f(b)s(ecome)h
+(visible.)52 b(If)34 b(the)g(unset)150 3650 y(acts)e(on)f(a)h(v)-5
+b(ariable)32 b(at)g(a)f(previous)g(scop)s(e,)h(an)m(y)f(instance)h(of)f
+(a)h(v)-5 b(ariable)32 b(with)f(that)h(name)f(that)h(had)150
+3760 y(b)s(een)e(shado)m(w)m(ed)g(will)h(b)s(ecome)g(visible.)275
+3904 y(F)-8 b(unction)51 b(names)f(and)g(de\014nitions)g(ma)m(y)i(b)s
+(e)e(listed)h(with)f(the)h Ft(-f)f Fu(option)h(to)g(the)g
+Ft(declare)150 4014 y Fu(\()p Ft(typeset)p Fu(\))35 b(builtin)g
+(command)h(\(see)h(Section)g(4.2)g([Bash)f(Builtins],)i(page)f(50\).)59
+b(The)35 b Ft(-F)h Fu(option)g(to)150 4123 y Ft(declare)e
+Fu(or)i Ft(typeset)e Fu(will)i(list)h(the)f(function)g(names)g(only)g
+(\(and)g(optionally)h(the)f(source)g(\014le)h(and)150
+4233 y(line)c(n)m(um)m(b)s(er,)g(if)f(the)h Ft(extdebug)e
+Fu(shell)i(option)g(is)g(enabled\).)49 b(F)-8 b(unctions)33
+b(ma)m(y)h(b)s(e)e(exp)s(orted)g(so)h(that)150 4343 y(subshells)j
+(automatically)k(ha)m(v)m(e)f(them)e(de\014ned)f(with)h(the)h
+Ft(-f)e Fu(option)i(to)g(the)g Ft(export)d Fu(builtin)i(\(see)150
+4452 y(Section)31 b(4.1)h([Bourne)e(Shell)g(Builtins],)h(page)h(43\).)
+275 4596 y(F)-8 b(unctions)33 b(ma)m(y)g(b)s(e)g(recursiv)m(e.)48
+b(The)32 b Ft(FUNCNEST)f Fu(v)-5 b(ariable)34 b(ma)m(y)f(b)s(e)f(used)g
+(to)i(limit)g(the)f(depth)f(of)150 4706 y(the)27 b(function)f(call)i
+(stac)m(k)h(and)d(restrict)h(the)g(n)m(um)m(b)s(er)f(of)h(function)f
+(in)m(v)m(o)s(cations.)42 b(By)27 b(default,)g(no)g(limit)150
+4816 y(is)j(placed)h(on)g(the)f(n)m(um)m(b)s(er)f(of)i(recursiv)m(e)f
+(calls.)150 5071 y Fs(3.4)68 b(Shell)45 b(P)l(arameters)150
+5230 y Fu(A)23 b Fr(parameter)31 b Fu(is)23 b(an)g(en)m(tit)m(y)i(that)
 f(stores)g(v)-5 b(alues.)39 b(It)23 b(can)h(b)s(e)f(a)g
 Ft(name)p Fu(,)h(a)g(n)m(um)m(b)s(er,)f(or)h(one)f(of)h(the)f(sp)s
-(ecial)150 3718 y(c)m(haracters)i(listed)e(b)s(elo)m(w.)39
+(ecial)150 5340 y(c)m(haracters)i(listed)e(b)s(elo)m(w.)39
 b(A)23 b Fr(v)-5 b(ariable)30 b Fu(is)23 b(a)g(parameter)h(denoted)f(b)
 m(y)h(a)f Ft(name)p Fu(.)37 b(A)24 b(v)-5 b(ariable)24
-b(has)f(a)g Fr(v)-5 b(alue)150 3827 y Fu(and)33 b(zero)i(or)f(more)g
-Fr(attributes)p Fu(.)52 b(A)m(ttributes)35 b(are)f(assigned)g(using)g
-(the)g Ft(declare)e Fu(builtin)h(command)150 3937 y(\(see)e(the)g
-(description)f(of)h(the)f Ft(declare)f Fu(builtin)h(in)g(Section)h(4.2)
-g([Bash)g(Builtins],)g(page)g(50\).)275 4069 y(A)d(parameter)h(is)g
-(set)g(if)f(it)h(has)f(b)s(een)g(assigned)h(a)g(v)-5
-b(alue.)40 b(The)28 b(n)m(ull)h(string)f(is)h(a)g(v)-5
-b(alid)28 b(v)-5 b(alue.)41 b(Once)150 4178 y(a)31 b(v)-5
-b(ariable)31 b(is)f(set,)i(it)e(ma)m(y)h(b)s(e)f(unset)g(only)h(b)m(y)f
-(using)g(the)g Ft(unset)f Fu(builtin)h(command.)275 4310
-y(A)g(v)-5 b(ariable)31 b(ma)m(y)g(b)s(e)f(assigned)g(to)i(b)m(y)e(a)h
-(statemen)m(t)h(of)e(the)h(form)390 4441 y Fj(name)p
-Ft(=[)p Fj(value)p Ft(])150 4573 y Fu(If)j Fr(v)-5 b(alue)40
+b(has)f(a)g Fr(v)-5 b(alue)p eop end
+%%Page: 20 26
+TeXDict begin 20 25 bop 150 -116 a Fu(Chapter)30 b(3:)41
+b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(20)150 299
+y(and)33 b(zero)i(or)f(more)g Fr(attributes)p Fu(.)52
+b(A)m(ttributes)35 b(are)f(assigned)g(using)g(the)g Ft(declare)e
+Fu(builtin)h(command)150 408 y(\(see)e(the)g(description)f(of)h(the)f
+Ft(declare)f Fu(builtin)h(in)g(Section)h(4.2)g([Bash)g(Builtins],)g
+(page)g(50\).)275 542 y(A)d(parameter)h(is)g(set)g(if)f(it)h(has)f(b)s
+(een)g(assigned)h(a)g(v)-5 b(alue.)40 b(The)28 b(n)m(ull)h(string)f(is)
+h(a)g(v)-5 b(alid)28 b(v)-5 b(alue.)41 b(Once)150 652
+y(a)31 b(v)-5 b(ariable)31 b(is)f(set,)i(it)e(ma)m(y)h(b)s(e)f(unset)g
+(only)h(b)m(y)f(using)g(the)g Ft(unset)f Fu(builtin)h(command.)275
+786 y(A)g(v)-5 b(ariable)31 b(ma)m(y)g(b)s(e)f(assigned)g(to)i(b)m(y)e
+(a)h(statemen)m(t)h(of)e(the)h(form)390 920 y Fj(name)p
+Ft(=[)p Fj(value)p Ft(])150 1054 y Fu(If)j Fr(v)-5 b(alue)40
 b Fu(is)35 b(not)g(giv)m(en,)h(the)f(v)-5 b(ariable)35
 b(is)g(assigned)g(the)f(n)m(ull)h(string.)53 b(All)35
 b Fr(v)-5 b(alue)5 b Fu(s)35 b(undergo)f(tilde)h(ex-)150
-4682 y(pansion,)h(parameter)f(and)f(v)-5 b(ariable)36
+1163 y(pansion,)h(parameter)f(and)f(v)-5 b(ariable)36
 b(expansion,)f(command)g(substitution,)h(arithmetic)g(expansion,)150
-4792 y(and)k(quote)h(remo)m(v)-5 b(al)42 b(\(detailed)h(b)s(elo)m(w\).)
+1273 y(and)k(quote)h(remo)m(v)-5 b(al)42 b(\(detailed)h(b)s(elo)m(w\).)
 72 b(If)40 b(the)h(v)-5 b(ariable)41 b(has)g(its)g Ft(integer)e
-Fu(attribute)i(set,)j(then)150 4902 y Fr(v)-5 b(alue)38
+Fu(attribute)i(set,)j(then)150 1383 y Fr(v)-5 b(alue)38
 b Fu(is)33 b(ev)-5 b(aluated)34 b(as)f(an)g(arithmetic)h(expression)f
 (ev)m(en)h(if)e(the)h Ft($\(\(...)o(\)\))f Fu(expansion)h(is)g(not)g
-(used)150 5011 y(\(see)e(Section)g(3.5.5)i([Arithmetic)e(Expansion],)f
-(page)h(30\).)42 b(W)-8 b(ord)31 b(splitting)g(is)g(not)f(p)s
-(erformed,)f(with)150 5121 y(the)35 b(exception)h(of)f
+(used)150 1492 y(\(see)e(Section)g(3.5.5)i([Arithmetic)e(Expansion],)f
+(page)h(31\).)42 b(W)-8 b(ord)31 b(splitting)g(is)g(not)f(p)s
+(erformed,)f(with)150 1602 y(the)35 b(exception)h(of)f
 Ft("$@")f Fu(as)h(explained)g(b)s(elo)m(w.)54 b(Filename)36
 b(expansion)f(is)g(not)g(p)s(erformed.)53 b(Assign-)150
-5230 y(men)m(t)33 b(statemen)m(ts)h(ma)m(y)f(also)g(app)s(ear)f(as)g
+1711 y(men)m(t)33 b(statemen)m(ts)h(ma)m(y)f(also)g(app)s(ear)f(as)g
 (argumen)m(ts)h(to)g(the)g Ft(alias)p Fu(,)e Ft(declare)p
-Fu(,)g Ft(typeset)p Fu(,)g Ft(export)p Fu(,)150 5340
+Fu(,)g Ft(typeset)p Fu(,)g Ft(export)p Fu(,)150 1821
 y Ft(readonly)p Fu(,)38 b(and)g Ft(local)f Fu(builtin)h(commands)g(\()p
 Fr(declaration)j Fu(commands\).)64 b(When)39 b(in)f Fm(posix)f
-Fu(mo)s(de)p eop end
-%%Page: 20 26
-TeXDict begin 20 25 bop 150 -116 a Fu(Chapter)30 b(3:)41
-b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(20)150 299
-y(\(see)33 b(Section)f(6.11)h([Bash)g(POSIX)d(Mo)s(de],)j(page)f(98\),)
-i(these)e(builtins)f(ma)m(y)i(app)s(ear)e(in)g(a)h(command)150
-408 y(after)i(one)g(or)f(more)h(instances)g(of)f(the)h
+Fu(mo)s(de)150 1931 y(\(see)c(Section)f(6.11)h([Bash)g(POSIX)d(Mo)s
+(de],)j(page)f(98\),)i(these)e(builtins)f(ma)m(y)i(app)s(ear)e(in)g(a)h
+(command)150 2040 y(after)i(one)g(or)f(more)h(instances)g(of)f(the)h
 Ft(command)d Fu(builtin)i(and)g(retain)h(these)g(assignmen)m(t)g
-(statemen)m(t)150 518 y(prop)s(erties.)275 645 y(In)29
+(statemen)m(t)150 2150 y(prop)s(erties.)275 2284 y(In)29
 b(the)h(con)m(text)i(where)d(an)h(assignmen)m(t)h(statemen)m(t)h(is)e
 (assigning)g(a)h(v)-5 b(alue)30 b(to)h(a)f(shell)g(v)-5
-b(ariable)31 b(or)150 755 y(arra)m(y)24 b(index)f(\(see)h(Section)g
+b(ariable)31 b(or)150 2393 y(arra)m(y)24 b(index)f(\(see)h(Section)g
 (6.7)g([Arra)m(ys],)i(page)e(93\),)i(the)e(`)p Ft(+=)p
 Fu(')f(op)s(erator)g(can)h(b)s(e)f(used)f(to)i(app)s(end)e(to)i(or)150
-865 y(add)k(to)i(the)f(v)-5 b(ariable's)30 b(previous)e(v)-5
+2503 y(add)k(to)i(the)f(v)-5 b(ariable's)30 b(previous)e(v)-5
 b(alue.)41 b(This)28 b(includes)g(argumen)m(ts)i(to)f(builtin)g
-(commands)f(suc)m(h)h(as)150 974 y Ft(declare)e Fu(that)i(accept)h
+(commands)f(suc)m(h)h(as)150 2612 y Ft(declare)e Fu(that)i(accept)h
 (assignmen)m(t)f(statemen)m(ts)h(\()p Fr(declaration)h
 Fu(commands\).)40 b(When)28 b(`)p Ft(+=)p Fu(')h(is)f(applied)150
-1084 y(to)d(a)f(v)-5 b(ariable)24 b(for)g(whic)m(h)f(the)h
+2722 y(to)d(a)f(v)-5 b(ariable)24 b(for)g(whic)m(h)f(the)h
 Fr(in)m(teger)32 b Fu(attribute)24 b(has)g(b)s(een)f(set,)j
 Fr(v)-5 b(alue)29 b Fu(is)24 b(ev)-5 b(aluated)25 b(as)f(an)g
-(arithmetic)150 1193 y(expression)30 b(and)f(added)g(to)i(the)f(v)-5
+(arithmetic)150 2832 y(expression)30 b(and)f(added)g(to)i(the)f(v)-5
 b(ariable's)30 b(curren)m(t)g(v)-5 b(alue,)31 b(whic)m(h)e(is)h(also)h
 (ev)-5 b(aluated.)42 b(When)29 b(`)p Ft(+=)p Fu(')h(is)150
-1303 y(applied)25 b(to)h(an)f(arra)m(y)h(v)-5 b(ariable)26
+2941 y(applied)25 b(to)h(an)f(arra)m(y)h(v)-5 b(ariable)26
 b(using)f(comp)s(ound)f(assignmen)m(t)i(\(see)g(Section)g(6.7)g([Arra)m
-(ys],)h(page)f(93\),)150 1413 y(the)33 b(v)-5 b(ariable's)33
+(ys],)h(page)f(93\),)150 3051 y(the)33 b(v)-5 b(ariable's)33
 b(v)-5 b(alue)33 b(is)g(not)g(unset)f(\(as)h(it)g(is)g(when)e(using)i
 (`)p Ft(=)p Fu('\),)g(and)f(new)g(v)-5 b(alues)33 b(are)g(app)s(ended)e
-(to)150 1522 y(the)26 b(arra)m(y)h(b)s(eginning)e(at)i(one)f(greater)h
+(to)150 3160 y(the)26 b(arra)m(y)h(b)s(eginning)e(at)i(one)f(greater)h
 (than)f(the)g(arra)m(y's)h(maxim)m(um)f(index)f(\(for)i(indexed)e(arra)
-m(ys\),)j(or)150 1632 y(added)c(as)i(additional)g(k)m(ey-v)-5
+m(ys\),)j(or)150 3270 y(added)c(as)i(additional)g(k)m(ey-v)-5
 b(alue)26 b(pairs)f(in)g(an)g(asso)s(ciativ)m(e)j(arra)m(y)-8
 b(.)40 b(When)24 b(applied)h(to)h(a)g(string-v)-5 b(alued)150
-1741 y(v)g(ariable,)31 b Fr(v)-5 b(alue)36 b Fu(is)31
+3380 y(v)g(ariable,)31 b Fr(v)-5 b(alue)36 b Fu(is)31
 b(expanded)e(and)h(app)s(ended)f(to)i(the)f(v)-5 b(ariable's)32
-b(v)-5 b(alue.)275 1869 y(A)28 b(v)-5 b(ariable)29 b(can)f(b)s(e)f
+b(v)-5 b(alue.)275 3513 y(A)28 b(v)-5 b(ariable)29 b(can)f(b)s(e)f
 (assigned)i(the)f Fr(nameref)45 b Fu(attribute)29 b(using)f(the)g
 Ft(-n)f Fu(option)i(to)g(the)f Ft(declare)e Fu(or)150
-1978 y Ft(local)f Fu(builtin)h(commands)g(\(see)i(Section)f(4.2)h
+3623 y Ft(local)f Fu(builtin)h(commands)g(\(see)i(Section)f(4.2)h
 ([Bash)f(Builtins],)h(page)f(50\))h(to)f(create)i(a)e
-Fr(nameref)p Fu(,)g(or)g(a)150 2088 y(reference)f(to)g(another)f(v)-5
+Fr(nameref)p Fu(,)g(or)g(a)150 3733 y(reference)f(to)g(another)f(v)-5
 b(ariable.)40 b(This)24 b(allo)m(ws)j(v)-5 b(ariables)26
 b(to)g(b)s(e)e(manipulated)h(indirectly)-8 b(.)40 b(Whenev)m(er)150
-2197 y(the)31 b(nameref)g(v)-5 b(ariable)32 b(is)f(referenced,)g
+3842 y(the)31 b(nameref)g(v)-5 b(ariable)32 b(is)f(referenced,)g
 (assigned)h(to,)g(unset,)f(or)g(has)f(its)i(attributes)f(mo)s(di\014ed)
-f(\(other)150 2307 y(than)c(using)g(or)h(c)m(hanging)g(the)g(nameref)f
+f(\(other)150 3952 y(than)c(using)g(or)h(c)m(hanging)g(the)g(nameref)f
 (attribute)i(itself)7 b(\),)29 b(the)d(op)s(eration)h(is)g(actually)h
-(p)s(erformed)d(on)150 2417 y(the)31 b(v)-5 b(ariable)31
+(p)s(erformed)d(on)150 4061 y(the)31 b(v)-5 b(ariable)31
 b(sp)s(eci\014ed)f(b)m(y)g(the)h(nameref)f(v)-5 b(ariable's)31
 b(v)-5 b(alue.)42 b(A)30 b(nameref)g(is)h(commonly)g(used)e(within)150
-2526 y(shell)h(functions)g(to)h(refer)f(to)h(a)f(v)-5
+4171 y(shell)h(functions)g(to)h(refer)f(to)h(a)f(v)-5
 b(ariable)31 b(whose)f(name)h(is)f(passed)g(as)g(an)g(argumen)m(t)h(to)
-g(the)f(function.)150 2636 y(F)-8 b(or)31 b(instance,)g(if)g(a)g(v)-5
+g(the)f(function.)150 4281 y(F)-8 b(or)31 b(instance,)g(if)g(a)g(v)-5
 b(ariable)31 b(name)f(is)h(passed)e(to)j(a)e(shell)h(function)f(as)h
-(its)f(\014rst)g(argumen)m(t,)h(running)390 2763 y Ft(declare)46
-b(-n)h(ref=$1)150 2890 y Fu(inside)31 b(the)h(function)f(creates)i(a)g
+(its)f(\014rst)g(argumen)m(t,)h(running)390 4415 y Ft(declare)46
+b(-n)h(ref=$1)150 4548 y Fu(inside)31 b(the)h(function)f(creates)i(a)g
 (nameref)e(v)-5 b(ariable)32 b Fr(ref)49 b Fu(whose)32
 b(v)-5 b(alue)32 b(is)g(the)f(v)-5 b(ariable)33 b(name)e(passed)150
-3000 y(as)e(the)h(\014rst)e(argumen)m(t.)41 b(References)30
+4658 y(as)e(the)h(\014rst)e(argumen)m(t.)41 b(References)30
 b(and)e(assignmen)m(ts)i(to)g Fr(ref)p Fu(,)f(and)g(c)m(hanges)h(to)g
-(its)f(attributes,)i(are)150 3110 y(treated)g(as)f(references,)g
+(its)f(attributes,)i(are)150 4768 y(treated)g(as)f(references,)g
 (assignmen)m(ts,)h(and)e(attribute)i(mo)s(di\014cations)f(to)h(the)f(v)
--5 b(ariable)30 b(whose)g(name)150 3219 y(w)m(as)h(passed)f(as)g
-Ft($1)p Fu(.)275 3347 y(If)h(the)g(con)m(trol)i(v)-5
+-5 b(ariable)30 b(whose)g(name)150 4877 y(w)m(as)h(passed)f(as)g
+Ft($1)p Fu(.)275 5011 y(If)h(the)g(con)m(trol)i(v)-5
 b(ariable)32 b(in)g(a)f Ft(for)g Fu(lo)s(op)h(has)f(the)g(nameref)h
 (attribute,)g(the)g(list)g(of)g(w)m(ords)f(can)h(b)s(e)150
-3456 y(a)h(list)h(of)f(shell)g(v)-5 b(ariables,)34 b(and)e(a)i(name)f
+5121 y(a)h(list)h(of)f(shell)g(v)-5 b(ariables,)34 b(and)e(a)i(name)f
 (reference)g(will)g(b)s(e)f(established)h(for)g(eac)m(h)h(w)m(ord)e(in)
-h(the)g(list,)150 3566 y(in)c(turn,)g(when)g(the)h(lo)s(op)g(is)g
+h(the)g(list,)150 5230 y(in)c(turn,)g(when)g(the)h(lo)s(op)g(is)g
 (executed.)41 b(Arra)m(y)30 b(v)-5 b(ariables)30 b(cannot)h(b)s(e)e
-(giv)m(en)h(the)g(nameref)g(attribute.)150 3675 y(Ho)m(w)m(ev)m(er,)39
+(giv)m(en)h(the)g(nameref)g(attribute.)150 5340 y(Ho)m(w)m(ev)m(er,)39
 b(nameref)d(v)-5 b(ariables)36 b(can)g(reference)g(arra)m(y)g(v)-5
-b(ariables)37 b(and)e(subscripted)f(arra)m(y)i(v)-5 b(ariables.)150
-3785 y(Namerefs)36 b(can)f(b)s(e)g(unset)g(using)g(the)h
-Ft(-n)e Fu(option)i(to)g(the)g Ft(unset)e Fu(builtin)h(\(see)h(Section)
-g(4.1)h([Bourne)150 3894 y(Shell)43 b(Builtins],)j(page)e(43\).)79
+b(ariables)37 b(and)e(subscripted)f(arra)m(y)i(v)-5 b(ariables.)p
+eop end
+%%Page: 21 27
+TeXDict begin 21 26 bop 150 -116 a Fu(Chapter)30 b(3:)41
+b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(21)150 299
+y(Namerefs)36 b(can)f(b)s(e)g(unset)g(using)g(the)h Ft(-n)e
+Fu(option)i(to)g(the)g Ft(unset)e Fu(builtin)h(\(see)h(Section)g(4.1)h
+([Bourne)150 408 y(Shell)43 b(Builtins],)j(page)e(43\).)79
 b(Otherwise,)45 b(if)e Ft(unset)e Fu(is)i(executed)h(with)e(the)h(name)
-g(of)g(a)g(nameref)150 4004 y(v)-5 b(ariable)31 b(as)g(an)f(argumen)m
+g(of)g(a)g(nameref)150 518 y(v)-5 b(ariable)31 b(as)g(an)f(argumen)m
 (t,)h(the)g(v)-5 b(ariable)31 b(referenced)f(b)m(y)g(the)h(nameref)f(v)
--5 b(ariable)31 b(will)g(b)s(e)f(unset.)150 4189 y Fk(3.4.1)63
-b(P)m(ositional)41 b(P)m(arameters)150 4336 y Fu(A)28
+-5 b(ariable)31 b(will)g(b)s(e)f(unset.)150 741 y Fk(3.4.1)63
+b(P)m(ositional)41 b(P)m(arameters)150 888 y Fu(A)28
 b Fr(p)s(ositional)h(parameter)35 b Fu(is)28 b(a)g(parameter)g(denoted)
 g(b)m(y)g(one)g(or)g(more)g(digits,)h(other)g(than)e(the)h(single)150
-4446 y(digit)34 b Ft(0)p Fu(.)48 b(P)m(ositional)36 b(parameters)d(are)
-g(assigned)h(from)e(the)i(shell's)f(argumen)m(ts)g(when)f(it)i(is)f(in)
-m(v)m(ok)m(ed,)150 4555 y(and)38 b(ma)m(y)i(b)s(e)e(reassigned)i(using)
-e(the)h Ft(set)g Fu(builtin)f(command.)67 b(P)m(ositional)41
-b(parameter)e Ft(N)g Fu(ma)m(y)h(b)s(e)150 4665 y(referenced)34
+998 y(digit)34 b Ft(0)p Fu(.)48 b(P)m(ositional)36 b(parameters)d(are)g
+(assigned)h(from)e(the)i(shell's)f(argumen)m(ts)g(when)f(it)i(is)f(in)m
+(v)m(ok)m(ed,)150 1107 y(and)38 b(ma)m(y)i(b)s(e)e(reassigned)i(using)e
+(the)h Ft(set)g Fu(builtin)f(command.)67 b(P)m(ositional)41
+b(parameter)e Ft(N)g Fu(ma)m(y)h(b)s(e)150 1217 y(referenced)34
 b(as)h Ft(${N})p Fu(,)g(or)f(as)h Ft($N)e Fu(when)h Ft(N)g
 Fu(consists)h(of)f(a)h(single)g(digit.)54 b(P)m(ositional)37
-b(parameters)d(ma)m(y)150 4774 y(not)j(b)s(e)f(assigned)h(to)g(with)f
+b(parameters)d(ma)m(y)150 1327 y(not)j(b)s(e)f(assigned)h(to)g(with)f
 (assignmen)m(t)i(statemen)m(ts.)61 b(The)36 b Ft(set)g
 Fu(and)g Ft(shift)f Fu(builtins)h(are)h(used)f(to)150
-4884 y(set)k(and)f(unset)f(them)i(\(see)g(Chapter)f(4)g([Shell)h
+1436 y(set)k(and)f(unset)f(them)i(\(see)g(Chapter)f(4)g([Shell)h
 (Builtin)g(Commands],)h(page)f(43\).)68 b(The)39 b(p)s(ositional)150
-4993 y(parameters)44 b(are)g(temp)s(orarily)g(replaced)h(when)e(a)h
+1546 y(parameters)44 b(are)g(temp)s(orarily)g(replaced)h(when)e(a)h
 (shell)g(function)g(is)g(executed)g(\(see)h(Section)g(3.3)150
-5103 y([Shell)30 b(F)-8 b(unctions],)32 b(page)f(17\).)275
-5230 y(When)c(a)i(p)s(ositional)g(parameter)g(consisting)f(of)h(more)f
+1655 y([Shell)30 b(F)-8 b(unctions],)32 b(page)f(17\).)275
+1814 y(When)c(a)i(p)s(ositional)g(parameter)g(consisting)f(of)h(more)f
 (than)g(a)g(single)h(digit)g(is)f(expanded,)g(it)h(m)m(ust)150
-5340 y(b)s(e)h(enclosed)h(in)f(braces.)p eop end
-%%Page: 21 27
-TeXDict begin 21 26 bop 150 -116 a Fu(Chapter)30 b(3:)41
-b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(21)150 299
-y Fk(3.4.2)63 b(Sp)s(ecial)41 b(P)m(arameters)150 446
-y Fu(The)d(shell)g(treats)h(sev)m(eral)g(parameters)f(sp)s(ecially)-8
-b(.)65 b(These)38 b(parameters)h(ma)m(y)f(only)g(b)s(e)g(referenced;)
-150 555 y(assignmen)m(t)31 b(to)g(them)g(is)f(not)h(allo)m(w)m(ed.)150
-722 y Ft(*)432 b Fu(\($*\))38 b(Expands)d(to)i(the)f(p)s(ositional)h
+1923 y(b)s(e)h(enclosed)h(in)f(braces.)150 2146 y Fk(3.4.2)63
+b(Sp)s(ecial)41 b(P)m(arameters)150 2293 y Fu(The)d(shell)g(treats)h
+(sev)m(eral)g(parameters)f(sp)s(ecially)-8 b(.)65 b(These)38
+b(parameters)h(ma)m(y)f(only)g(b)s(e)g(referenced;)150
+2403 y(assignmen)m(t)31 b(to)g(them)g(is)f(not)h(allo)m(w)m(ed.)150
+2598 y Ft(*)432 b Fu(\($*\))38 b(Expands)d(to)i(the)f(p)s(ositional)h
 (parameters,)h(starting)f(from)f(one.)59 b(When)36 b(the)g(ex-)630
-831 y(pansion)h(is)h(not)g(within)f(double)g(quotes,)j(eac)m(h)f(p)s
-(ositional)f(parameter)g(expands)f(to)i(a)630 941 y(separate)e(w)m
+2708 y(pansion)h(is)h(not)g(within)f(double)g(quotes,)j(eac)m(h)f(p)s
+(ositional)f(parameter)g(expands)f(to)i(a)630 2817 y(separate)e(w)m
 (ord.)56 b(In)35 b(con)m(texts)i(where)e(it)h(is)g(p)s(erformed,)g
-(those)g(w)m(ords)f(are)h(sub)5 b(ject)35 b(to)630 1051
+(those)g(w)m(ords)f(are)h(sub)5 b(ject)35 b(to)630 2927
 y(further)h(w)m(ord)h(splitting)h(and)f(pathname)g(expansion.)61
-b(When)38 b(the)f(expansion)g(o)s(ccurs)630 1160 y(within)25
+b(When)38 b(the)f(expansion)g(o)s(ccurs)630 3037 y(within)25
 b(double)h(quotes,)h(it)f(expands)f(to)i(a)f(single)g(w)m(ord)f(with)h
-(the)g(v)-5 b(alue)26 b(of)g(eac)m(h)h(param-)630 1270
+(the)g(v)-5 b(alue)26 b(of)g(eac)m(h)h(param-)630 3146
 y(eter)32 b(separated)h(b)m(y)e(the)h(\014rst)f(c)m(haracter)i(of)f
 (the)g Ft(IFS)f Fu(sp)s(ecial)h(v)-5 b(ariable.)45 b(That)32
-b(is,)g Ft("$*")630 1379 y Fu(is)f(equiv)-5 b(alen)m(t)32
+b(is,)g Ft("$*")630 3256 y Fu(is)f(equiv)-5 b(alen)m(t)32
 b(to)g Ft("$1)p Fj(c)p Ft($2)p Fj(c)p Ft(...)m(")p Fu(,)f(where)g
 Fr(c)37 b Fu(is)31 b(the)g(\014rst)f(c)m(haracter)j(of)e(the)g(v)-5
-b(alue)32 b(of)f(the)630 1489 y Ft(IFS)e Fu(v)-5 b(ariable.)41
+b(alue)32 b(of)f(the)630 3365 y Ft(IFS)e Fu(v)-5 b(ariable.)41
 b(If)29 b Ft(IFS)g Fu(is)h(unset,)f(the)h(parameters)g(are)g(separated)
-g(b)m(y)g(spaces.)41 b(If)29 b Ft(IFS)g Fu(is)630 1599
+g(b)m(y)g(spaces.)41 b(If)29 b Ft(IFS)g Fu(is)630 3475
 y(n)m(ull,)i(the)f(parameters)h(are)g(joined)f(without)g(in)m(terv)m
-(ening)i(separators.)150 1763 y Ft(@)432 b Fu(\($@\))35
-b(Expands)e(to)i(the)g(p)s(ositional)g(parameters,)h(starting)f(from)f
-(one.)53 b(When)34 b(the)g(ex-)630 1872 y(pansion)41
-b(o)s(ccurs)g(within)f(double)h(quotes,)k(eac)m(h)d(parameter)g
-(expands)e(to)i(a)g(separate)630 1982 y(w)m(ord.)50 b(That)34
-b(is,)g Ft("$@")f Fu(is)g(equiv)-5 b(alen)m(t)35 b(to)g
-Ft("$1")29 b("$2")g(...)o Fu(.)51 b(If)33 b(the)h(double-quoted)f(ex-)
-630 2091 y(pansion)38 b(o)s(ccurs)h(within)f(a)h(w)m(ord,)i(the)e
-(expansion)g(of)g(the)g(\014rst)f(parameter)h(is)g(joined)630
-2201 y(with)i(the)h(b)s(eginning)e(part)i(of)f(the)h(original)g(w)m
-(ord,)i(and)d(the)h(expansion)f(of)g(the)h(last)630 2311
-y(parameter)31 b(is)f(joined)g(with)f(the)i(last)g(part)e(of)i(the)f
-(original)h(w)m(ord.)40 b(When)30 b(there)h(are)f(no)630
-2420 y(p)s(ositional)e(parameters,)h Ft("$@")d Fu(and)h
-Ft($@)f Fu(expand)h(to)h(nothing)f(\(i.e.,)j(they)e(are)f(remo)m(v)m
-(ed\).)150 2584 y Ft(#)432 b Fu(\($#\))31 b(Expands)e(to)i(the)g(n)m
+(ening)i(separators.)150 3658 y Ft(@)432 b Fu(\($@\))43
+b(Expands)f(to)h(the)g(p)s(ositional)g(parameters,)k(starting)c(from)f
+(one.)78 b(In)42 b(con)m(texts)630 3768 y(where)35 b(w)m(ord)h
+(splitting)g(is)g(p)s(erformed,)g(this)g(expands)e(eac)m(h)j(p)s
+(ositional)g(parameter)f(to)630 3877 y(a)d(separate)h(w)m(ord;)g(if)f
+(not)g(within)g(double)f(quotes,)j(these)e(w)m(ords)g(are)g(sub)5
+b(ject)33 b(to)g(w)m(ord)630 3987 y(splitting.)60 b(In)36
+b(con)m(texts)j(where)d(w)m(ord)g(splitting)h(is)g(not)g(p)s(erformed,)
+g(this)f(expands)g(to)630 4097 y(a)c(single)h(w)m(ord)e(with)h(eac)m(h)
+h(p)s(ositional)g(parameter)f(separated)g(b)m(y)g(a)g(space.)46
+b(When)32 b(the)630 4206 y(expansion)i(o)s(ccurs)h(within)e(double)i
+(quotes,)h(and)e(w)m(ord)g(splitting)h(is)g(p)s(erformed,)f(eac)m(h)630
+4316 y(parameter)23 b(expands)f(to)i(a)f(separate)h(w)m(ord.)37
+b(That)23 b(is,)i Ft("$@")c Fu(is)i(equiv)-5 b(alen)m(t)24
+b(to)g Ft("$1")29 b("$2")630 4425 y(...)o Fu(.)39 b(If)26
+b(the)g(double-quoted)g(expansion)f(o)s(ccurs)h(within)f(a)h(w)m(ord,)h
+(the)f(expansion)g(of)g(the)630 4535 y(\014rst)31 b(parameter)h(is)g
+(joined)f(with)g(the)h(b)s(eginning)f(part)h(of)f(the)h(original)h(w)m
+(ord,)f(and)f(the)630 4645 y(expansion)25 b(of)g(the)h(last)g
+(parameter)f(is)h(joined)f(with)g(the)g(last)h(part)f(of)g(the)h
+(original)g(w)m(ord.)630 4754 y(When)i(there)g(are)g(no)g(p)s
+(ositional)g(parameters,)h Ft("$@")e Fu(and)g Ft($@)h
+Fu(expand)f(to)h(nothing)g(\(i.e.,)630 4864 y(they)j(are)f(remo)m(v)m
+(ed\).)150 5047 y Ft(#)432 b Fu(\($#\))31 b(Expands)e(to)i(the)g(n)m
 (um)m(b)s(er)e(of)h(p)s(ositional)i(parameters)e(in)g(decimal.)150
-2748 y Ft(?)432 b Fu(\($?\))88 b(Expands)45 b(to)h(the)g(exit)h(status)
+5230 y Ft(?)432 b Fu(\($?\))88 b(Expands)45 b(to)h(the)g(exit)h(status)
 f(of)g(the)g(most)h(recen)m(tly)g(executed)g(foreground)630
-2858 y(pip)s(eline.)150 3022 y Ft(-)432 b Fu(\($-,)24
-b(a)e(h)m(yphen.\))37 b(Expands)20 b(to)i(the)f(curren)m(t)h(option)f
-(\015ags)h(as)f(sp)s(eci\014ed)g(up)s(on)f(in)m(v)m(o)s(cation,)630
-3132 y(b)m(y)38 b(the)h Ft(set)f Fu(builtin)g(command,)j(or)d(those)i
-(set)f(b)m(y)f(the)h(shell)g(itself)g(\(suc)m(h)g(as)g(the)g
-Ft(-i)630 3241 y Fu(option\).)150 3405 y Ft($)432 b Fu(\($$\))31
-b(Expands)d(to)j(the)e(pro)s(cess)h Fm(id)f Fu(of)h(the)g(shell.)41
-b(In)28 b(a)i Ft(\(\))f Fu(subshell,)h(it)g(expands)e(to)j(the)630
-3515 y(pro)s(cess)f Fm(id)g Fu(of)h(the)g(in)m(v)m(oking)g(shell,)g
-(not)g(the)f(subshell.)150 3679 y Ft(!)432 b Fu(\($!\))51
-b(Expands)32 b(to)i(the)g(pro)s(cess)f Fm(id)h Fu(of)f(the)h(job)f
-(most)h(recen)m(tly)h(placed)f(in)m(to)g(the)g(bac)m(k-)630
-3789 y(ground,)26 b(whether)g(executed)g(as)h(an)f(async)m(hronous)f
-(command)h(or)g(using)g(the)g Ft(bg)f Fu(builtin)630
-3898 y(\(see)31 b(Section)h(7.2)f([Job)f(Con)m(trol)h(Builtins],)g
-(page)h(103\).)150 4062 y Ft(0)432 b Fu(\($0\))46 b(Expands)d(to)i(the)
-g(name)g(of)f(the)h(shell)g(or)f(shell)h(script.)83 b(This)44
-b(is)g(set)h(at)h(shell)630 4172 y(initialization.)d(If)27
-b(Bash)h(is)g(in)m(v)m(ok)m(ed)h(with)e(a)i(\014le)e(of)h(commands)g
-(\(see)g(Section)h(3.8)g([Shell)630 4281 y(Scripts],)g(page)g(41\),)h
-Ft($0)e Fu(is)h(set)g(to)g(the)f(name)h(of)f(that)h(\014le.)41
-b(If)28 b(Bash)g(is)h(started)g(with)f(the)630 4391 y
-Ft(-c)i Fu(option)h(\(see)h(Section)g(6.1)f([In)m(v)m(oking)h(Bash],)g
-(page)f(84\),)i(then)d Ft($0)g Fu(is)h(set)g(to)h(the)f(\014rst)630
-4501 y(argumen)m(t)g(after)g(the)g(string)g(to)g(b)s(e)f(executed,)i
-(if)f(one)g(is)f(presen)m(t.)42 b(Otherwise,)31 b(it)g(is)f(set)630
-4610 y(to)h(the)g(\014lename)f(used)g(to)h(in)m(v)m(ok)m(e)h(Bash,)f
-(as)g(giv)m(en)g(b)m(y)f(argumen)m(t)h(zero.)150 4774
-y Ft(_)432 b Fu(\($)p 716 4774 28 4 v 41 w(,)41 b(an)e(underscore.\))67
-b(A)m(t)40 b(shell)f(startup,)i(set)f(to)g(the)f(absolute)h(pathname)f
-(used)f(to)630 4884 y(in)m(v)m(ok)m(e)43 b(the)e(shell)g(or)g(shell)g
-(script)g(b)s(eing)f(executed)i(as)f(passed)g(in)f(the)h(en)m(vironmen)
-m(t)630 4994 y(or)34 b(argumen)m(t)g(list.)52 b(Subsequen)m(tly)-8
-b(,)34 b(expands)f(to)i(the)f(last)h(argumen)m(t)f(to)g(the)g(previous)
-630 5103 y(command,)g(after)f(expansion.)48 b(Also)34
-b(set)g(to)f(the)g(full)g(pathname)g(used)f(to)i(in)m(v)m(ok)m(e)h(eac)
-m(h)630 5213 y(command)29 b(executed)h(and)f(placed)g(in)g(the)h(en)m
-(vironmen)m(t)f(exp)s(orted)g(to)h(that)g(command.)630
-5322 y(When)g(c)m(hec)m(king)i(mail,)g(this)e(parameter)h(holds)f(the)g
-(name)h(of)f(the)h(mail)g(\014le.)p eop end
+5340 y(pip)s(eline.)p eop end
 %%Page: 22 28
 TeXDict begin 22 27 bop 150 -116 a Fu(Chapter)30 b(3:)41
 b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(22)150 299
-y Fs(3.5)68 b(Shell)45 b(Expansions)150 458 y Fu(Expansion)27
-b(is)i(p)s(erformed)d(on)i(the)g(command)g(line)h(after)f(it)h(has)f(b)
-s(een)f(split)h(in)m(to)i Ft(token)p Fu(s.)38 b(There)28
-b(are)150 568 y(sev)m(en)j(kinds)e(of)i(expansion)f(p)s(erformed:)225
-701 y Fq(\017)60 b Fu(brace)31 b(expansion)225 834 y
-Fq(\017)60 b Fu(tilde)31 b(expansion)225 967 y Fq(\017)60
-b Fu(parameter)31 b(and)f(v)-5 b(ariable)31 b(expansion)225
-1100 y Fq(\017)60 b Fu(command)30 b(substitution)225
-1233 y Fq(\017)60 b Fu(arithmetic)32 b(expansion)225
-1366 y Fq(\017)60 b Fu(w)m(ord)30 b(splitting)225 1499
-y Fq(\017)60 b Fu(\014lename)31 b(expansion)275 1655
+y Ft(-)432 b Fu(\($-,)24 b(a)e(h)m(yphen.\))37 b(Expands)20
+b(to)i(the)f(curren)m(t)h(option)f(\015ags)h(as)f(sp)s(eci\014ed)g(up)s
+(on)f(in)m(v)m(o)s(cation,)630 408 y(b)m(y)38 b(the)h
+Ft(set)f Fu(builtin)g(command,)j(or)d(those)i(set)f(b)m(y)f(the)h
+(shell)g(itself)g(\(suc)m(h)g(as)g(the)g Ft(-i)630 518
+y Fu(option\).)150 684 y Ft($)432 b Fu(\($$\))31 b(Expands)d(to)j(the)e
+(pro)s(cess)h Fm(id)f Fu(of)h(the)g(shell.)41 b(In)28
+b(a)i Ft(\(\))f Fu(subshell,)h(it)g(expands)e(to)j(the)630
+793 y(pro)s(cess)f Fm(id)g Fu(of)h(the)g(in)m(v)m(oking)g(shell,)g(not)
+g(the)f(subshell.)150 959 y Ft(!)432 b Fu(\($!\))51 b(Expands)32
+b(to)i(the)g(pro)s(cess)f Fm(id)h Fu(of)f(the)h(job)f(most)h(recen)m
+(tly)h(placed)f(in)m(to)g(the)g(bac)m(k-)630 1069 y(ground,)26
+b(whether)g(executed)g(as)h(an)f(async)m(hronous)f(command)h(or)g
+(using)g(the)g Ft(bg)f Fu(builtin)630 1178 y(\(see)31
+b(Section)h(7.2)f([Job)f(Con)m(trol)h(Builtins],)g(page)h(103\).)150
+1344 y Ft(0)432 b Fu(\($0\))46 b(Expands)d(to)i(the)g(name)g(of)f(the)h
+(shell)g(or)f(shell)h(script.)83 b(This)44 b(is)g(set)h(at)h(shell)630
+1453 y(initialization.)d(If)27 b(Bash)h(is)g(in)m(v)m(ok)m(ed)h(with)e
+(a)i(\014le)e(of)h(commands)g(\(see)g(Section)h(3.8)g([Shell)630
+1563 y(Scripts],)g(page)g(41\),)h Ft($0)e Fu(is)h(set)g(to)g(the)f
+(name)h(of)f(that)h(\014le.)41 b(If)28 b(Bash)g(is)h(started)g(with)f
+(the)630 1673 y Ft(-c)i Fu(option)h(\(see)h(Section)g(6.1)f([In)m(v)m
+(oking)h(Bash],)g(page)f(84\),)i(then)d Ft($0)g Fu(is)h(set)g(to)h(the)
+f(\014rst)630 1782 y(argumen)m(t)g(after)g(the)g(string)g(to)g(b)s(e)f
+(executed,)i(if)f(one)g(is)f(presen)m(t.)42 b(Otherwise,)31
+b(it)g(is)f(set)630 1892 y(to)h(the)g(\014lename)f(used)g(to)h(in)m(v)m
+(ok)m(e)h(Bash,)f(as)g(giv)m(en)g(b)m(y)f(argumen)m(t)h(zero.)150
+2058 y Ft(_)432 b Fu(\($)p 716 2058 28 4 v 41 w(,)41
+b(an)e(underscore.\))67 b(A)m(t)40 b(shell)f(startup,)i(set)f(to)g(the)
+f(absolute)h(pathname)f(used)f(to)630 2167 y(in)m(v)m(ok)m(e)43
+b(the)e(shell)g(or)g(shell)g(script)g(b)s(eing)f(executed)i(as)f
+(passed)g(in)f(the)h(en)m(vironmen)m(t)630 2277 y(or)34
+b(argumen)m(t)g(list.)52 b(Subsequen)m(tly)-8 b(,)34
+b(expands)f(to)i(the)f(last)h(argumen)m(t)f(to)g(the)g(previous)630
+2386 y(command,)g(after)f(expansion.)48 b(Also)34 b(set)g(to)f(the)g
+(full)g(pathname)g(used)f(to)i(in)m(v)m(ok)m(e)h(eac)m(h)630
+2496 y(command)29 b(executed)h(and)f(placed)g(in)g(the)h(en)m(vironmen)
+m(t)f(exp)s(orted)g(to)h(that)g(command.)630 2605 y(When)g(c)m(hec)m
+(king)i(mail,)g(this)e(parameter)h(holds)f(the)g(name)h(of)f(the)h
+(mail)g(\014le.)150 2856 y Fs(3.5)68 b(Shell)45 b(Expansions)150
+3015 y Fu(Expansion)27 b(is)i(p)s(erformed)d(on)i(the)g(command)g(line)
+h(after)f(it)h(has)f(b)s(een)f(split)h(in)m(to)i Ft(token)p
+Fu(s.)38 b(There)28 b(are)150 3125 y(sev)m(en)j(kinds)e(of)i(expansion)
+f(p)s(erformed:)225 3265 y Fq(\017)60 b Fu(brace)31 b(expansion)225
+3403 y Fq(\017)60 b Fu(tilde)31 b(expansion)225 3541
+y Fq(\017)60 b Fu(parameter)31 b(and)f(v)-5 b(ariable)31
+b(expansion)225 3678 y Fq(\017)60 b Fu(command)30 b(substitution)225
+3816 y Fq(\017)60 b Fu(arithmetic)32 b(expansion)225
+3954 y Fq(\017)60 b Fu(w)m(ord)30 b(splitting)225 4091
+y Fq(\017)60 b Fu(\014lename)31 b(expansion)275 4260
 y(The)24 b(order)h(of)h(expansions)f(is:)39 b(brace)25
 b(expansion;)j(tilde)e(expansion,)g(parameter)g(and)f(v)-5
-b(ariable)26 b(ex-)150 1765 y(pansion,)j(arithmetic)i(expansion,)f(and)
+b(ariable)26 b(ex-)150 4370 y(pansion,)j(arithmetic)i(expansion,)f(and)
 f(command)g(substitution)g(\(done)g(in)h(a)f(left-to-righ)m(t)k
-(fashion\);)150 1874 y(w)m(ord)d(splitting;)h(and)f(\014lename)h
-(expansion.)275 2007 y(On)42 b(systems)h(that)h(can)g(supp)s(ort)e(it,)
+(fashion\);)150 4479 y(w)m(ord)d(splitting;)h(and)f(\014lename)h
+(expansion.)275 4620 y(On)42 b(systems)h(that)h(can)g(supp)s(ort)e(it,)
 47 b(there)d(is)f(an)h(additional)g(expansion)f(a)m(v)-5
-b(ailable:)69 b Fr(pro)s(cess)150 2117 y(substitution)p
+b(ailable:)69 b Fr(pro)s(cess)150 4730 y(substitution)p
 Fu(.)50 b(This)33 b(is)h(p)s(erformed)e(at)j(the)f(same)g(time)g(as)g
 (tilde,)i(parameter,)f(v)-5 b(ariable,)35 b(and)f(arith-)150
-2226 y(metic)d(expansion)g(and)e(command)i(substitution.)275
-2359 y(After)f(these)h(expansions)f(are)g(p)s(erformed,)f(quote)i(c)m
+4839 y(metic)d(expansion)g(and)e(command)i(substitution.)275
+4980 y(After)f(these)h(expansions)f(are)g(p)s(erformed,)f(quote)i(c)m
 (haracters)h(presen)m(t)e(in)g(the)g(original)i(w)m(ord)e(are)150
-2469 y(remo)m(v)m(ed)h(unless)f(they)h(ha)m(v)m(e)g(b)s(een)f(quoted)g
+5090 y(remo)m(v)m(ed)h(unless)f(they)h(ha)m(v)m(e)g(b)s(een)f(quoted)g
 (themselv)m(es)i(\()p Fr(quote)f(remo)m(v)-5 b(al)t Fu(\).)275
-2602 y(Only)31 b(brace)i(expansion,)h(w)m(ord)e(splitting,)i(and)e
+5230 y(Only)31 b(brace)i(expansion,)h(w)m(ord)e(splitting,)i(and)e
 (\014lename)h(expansion)f(can)h(increase)g(the)g(n)m(um)m(b)s(er)150
-2711 y(of)24 b(w)m(ords)g(of)g(the)h(expansion;)h(other)e(expansions)g
+5340 y(of)24 b(w)m(ords)g(of)g(the)h(expansion;)h(other)e(expansions)g
 (expand)g(a)g(single)h(w)m(ord)f(to)h(a)f(single)h(w)m(ord.)38
-b(The)24 b(only)150 2821 y(exceptions)i(to)f(this)g(are)g(the)g
-(expansions)g(of)g Ft("$@")f Fu(and)g Ft($*)g Fu(\(see)i(Section)f
-(3.4.2)i([Sp)s(ecial)e(P)m(arameters],)150 2931 y(page)31
-b(21\),)h(and)e Ft("${)p Fj(name)p Ft([@]}")d Fu(and)i
-Ft(${)p Fj(name)p Ft([*]})f Fu(\(see)j(Section)h(6.7)f([Arra)m(ys],)g
-(page)g(93\).)275 3064 y(After)41 b(all)i(expansions,)h
-Ft(quote)29 b(removal)40 b Fu(\(see)i(Section)h(3.5.9)g([Quote)f(Remo)m
-(v)-5 b(al],)47 b(page)42 b(33\))h(is)150 3173 y(p)s(erformed.)150
-3369 y Fk(3.5.1)63 b(Brace)40 b(Expansion)150 3516 y
-Fu(Brace)32 b(expansion)f(is)f(a)i(mec)m(hanism)f(b)m(y)f(whic)m(h)h
-(arbitrary)f(strings)h(ma)m(y)g(b)s(e)f(generated.)43
-b(This)30 b(mec)m(h-)150 3626 y(anism)35 b(is)h(similar)f(to)h
-Fr(\014lename)g(expansion)f Fu(\(see)i(Section)f(3.5.8)h([Filename)g
-(Expansion],)f(page)g(31\),)150 3736 y(but)26 b(the)h(\014lenames)g
-(generated)h(need)f(not)g(exist.)40 b(P)m(atterns)28
-b(to)f(b)s(e)g(brace)g(expanded)f(tak)m(e)i(the)f(form)g(of)150
-3845 y(an)j(optional)h Fr(pream)m(ble)p Fu(,)g(follo)m(w)m(ed)g(b)m(y)f
-(either)g(a)h(series)f(of)g(comma-separated)i(strings)d(or)h(a)h
-(sequence)150 3955 y(expression)36 b(b)s(et)m(w)m(een)g(a)h(pair)e(of)i
-(braces,)g(follo)m(w)m(ed)h(b)m(y)e(an)g(optional)h Fr(p)s(ostscript)p
-Fu(.)57 b(The)36 b(pream)m(ble)g(is)150 4064 y(pre\014xed)28
+b(The)24 b(only)p eop end
+%%Page: 23 29
+TeXDict begin 23 28 bop 150 -116 a Fu(Chapter)30 b(3:)41
+b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(23)150 299
+y(exceptions)26 b(to)f(this)g(are)g(the)g(expansions)g(of)g
+Ft("$@")f Fu(and)g Ft($*)g Fu(\(see)i(Section)f(3.4.2)i([Sp)s(ecial)e
+(P)m(arameters],)150 408 y(page)31 b(21\),)h(and)e Ft("${)p
+Fj(name)p Ft([@]}")d Fu(and)i Ft(${)p Fj(name)p Ft([*]})f
+Fu(\(see)j(Section)h(6.7)f([Arra)m(ys],)g(page)g(93\).)275
+537 y(After)41 b(all)i(expansions,)h Ft(quote)29 b(removal)40
+b Fu(\(see)i(Section)h(3.5.9)g([Quote)f(Remo)m(v)-5 b(al],)47
+b(page)42 b(34\))h(is)150 647 y(p)s(erformed.)150 834
+y Fk(3.5.1)63 b(Brace)40 b(Expansion)150 981 y Fu(Brace)32
+b(expansion)f(is)f(a)i(mec)m(hanism)f(b)m(y)f(whic)m(h)h(arbitrary)f
+(strings)h(ma)m(y)g(b)s(e)f(generated.)43 b(This)30 b(mec)m(h-)150
+1090 y(anism)35 b(is)h(similar)f(to)h Fr(\014lename)g(expansion)f
+Fu(\(see)i(Section)f(3.5.8)h([Filename)g(Expansion],)f(page)g(32\),)150
+1200 y(but)26 b(the)h(\014lenames)g(generated)h(need)f(not)g(exist.)40
+b(P)m(atterns)28 b(to)f(b)s(e)g(brace)g(expanded)f(tak)m(e)i(the)f
+(form)g(of)150 1310 y(an)j(optional)h Fr(pream)m(ble)p
+Fu(,)g(follo)m(w)m(ed)g(b)m(y)f(either)g(a)h(series)f(of)g
+(comma-separated)i(strings)d(or)h(a)h(sequence)150 1419
+y(expression)36 b(b)s(et)m(w)m(een)g(a)h(pair)e(of)i(braces,)g(follo)m
+(w)m(ed)h(b)m(y)e(an)g(optional)h Fr(p)s(ostscript)p
+Fu(.)57 b(The)36 b(pream)m(ble)g(is)150 1529 y(pre\014xed)28
 b(to)h(eac)m(h)h(string)f(con)m(tained)h(within)e(the)h(braces,)g(and)g
 (the)g(p)s(ostscript)f(is)h(then)f(app)s(ended)f(to)150
-4174 y(eac)m(h)32 b(resulting)e(string,)h(expanding)e(left)j(to)f(righ)
-m(t.)275 4307 y(Brace)37 b(expansions)f(ma)m(y)h(b)s(e)f(nested.)59
+1638 y(eac)m(h)32 b(resulting)e(string,)h(expanding)e(left)j(to)f(righ)
+m(t.)275 1767 y(Brace)37 b(expansions)f(ma)m(y)h(b)s(e)f(nested.)59
 b(The)36 b(results)g(of)h(eac)m(h)g(expanded)f(string)g(are)h(not)g
-(sorted;)150 4416 y(left)31 b(to)g(righ)m(t)g(order)f(is)g(preserv)m
-(ed.)41 b(F)-8 b(or)31 b(example,)390 4549 y Ft(bash$)46
-b(echo)h(a{d,c,b}e)390 4659 y(ade)g(ace)g(abe)275 4792
+(sorted;)150 1876 y(left)31 b(to)g(righ)m(t)g(order)f(is)g(preserv)m
+(ed.)41 b(F)-8 b(or)31 b(example,)390 2005 y Ft(bash$)46
+b(echo)h(a{d,c,b}e)390 2115 y(ade)g(ace)g(abe)275 2243
 y Fu(A)23 b(sequence)g(expression)g(tak)m(es)i(the)e(form)g
 Ft({)p Fj(x)p Ft(..)p Fj(y)p Ft([..)p Fj(incr)p Ft(]})p
 Fu(,)e(where)i Fr(x)29 b Fu(and)23 b Fr(y)30 b Fu(are)24
-b(either)g(in)m(tegers)150 4902 y(or)42 b(single)h(c)m(haracters,)48
+b(either)g(in)m(tegers)150 2353 y(or)42 b(single)h(c)m(haracters,)48
 b(and)41 b Fr(incr)p Fu(,)46 b(an)c(optional)i(incremen)m(t,)i(is)c(an)
-h(in)m(teger.)78 b(When)42 b(in)m(tegers)i(are)150 5011
+h(in)m(teger.)78 b(When)42 b(in)m(tegers)i(are)150 2462
 y(supplied,)f(the)f(expression)f(expands)f(to)i(eac)m(h)h(n)m(um)m(b)s
 (er)d(b)s(et)m(w)m(een)i Fr(x)47 b Fu(and)41 b Fr(y)p
-Fu(,)j(inclusiv)m(e.)75 b(Supplied)150 5121 y(in)m(tegers)33
+Fu(,)j(inclusiv)m(e.)75 b(Supplied)150 2572 y(in)m(tegers)33
 b(ma)m(y)e(b)s(e)g(pre\014xed)f(with)h(`)p Ft(0)p Fu(')h(to)g(force)g
 (eac)m(h)g(term)g(to)g(ha)m(v)m(e)g(the)g(same)g(width.)42
-b(When)31 b(either)150 5230 y Fr(x)43 b Fu(or)36 b Fr(y)44
+b(When)31 b(either)150 2681 y Fr(x)43 b Fu(or)36 b Fr(y)44
 b Fu(b)s(egins)36 b(with)g(a)h(zero,)i(the)e(shell)g(attempts)g(to)g
 (force)g(all)h(generated)f(terms)g(to)g(con)m(tain)h(the)150
-5340 y(same)e(n)m(um)m(b)s(er)e(of)i(digits,)i(zero-padding)d(where)h
+2791 y(same)e(n)m(um)m(b)s(er)e(of)i(digits,)i(zero-padding)d(where)h
 (necessary)-8 b(.)57 b(When)35 b(c)m(haracters)i(are)f(supplied,)g(the)
-p eop end
-%%Page: 23 29
-TeXDict begin 23 28 bop 150 -116 a Fu(Chapter)30 b(3:)41
-b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(23)150 299
-y(expression)24 b(expands)g(to)h(eac)m(h)h(c)m(haracter)g
+150 2901 y(expression)24 b(expands)g(to)h(eac)m(h)h(c)m(haracter)g
 (lexicographically)h(b)s(et)m(w)m(een)e Fr(x)30 b Fu(and)24
-b Fr(y)p Fu(,)i(inclusiv)m(e,)h(using)d(the)150 408 y(default)32
-b(C)g(lo)s(cale.)48 b(Note)34 b(that)f(b)s(oth)e Fr(x)39
-b Fu(and)31 b Fr(y)40 b Fu(m)m(ust)32 b(b)s(e)g(of)g(the)h(same)f(t)m
-(yp)s(e.)47 b(When)32 b(the)g(incremen)m(t)150 518 y(is)d(supplied,)g
-(it)h(is)f(used)f(as)i(the)f(di\013erence)h(b)s(et)m(w)m(een)g(eac)m(h)
-g(term.)41 b(The)29 b(default)g(incremen)m(t)h(is)f(1)h(or)f(-1)150
-628 y(as)i(appropriate.)275 764 y(Brace)36 b(expansion)g(is)f(p)s
-(erformed)f(b)s(efore)h(an)m(y)h(other)g(expansions,)h(and)e(an)m(y)g
-(c)m(haracters)i(sp)s(ecial)150 873 y(to)32 b(other)g(expansions)g(are)
-g(preserv)m(ed)f(in)h(the)f(result.)45 b(It)32 b(is)g(strictly)g
-(textual.)46 b(Bash)32 b(do)s(es)f(not)h(apply)150 983
-y(an)m(y)27 b(syn)m(tactic)i(in)m(terpretation)g(to)f(the)f(con)m(text)
-i(of)e(the)g(expansion)g(or)g(the)h(text)g(b)s(et)m(w)m(een)f(the)h
-(braces.)275 1119 y(A)h(correctly-formed)i(brace)f(expansion)f(m)m(ust)
-h(con)m(tain)h(unquoted)e(op)s(ening)g(and)g(closing)i(braces,)150
-1228 y(and)h(at)i(least)g(one)f(unquoted)g(comma)g(or)g(a)h(v)-5
+b Fr(y)p Fu(,)i(inclusiv)m(e,)h(using)d(the)150 3010
+y(default)32 b(C)g(lo)s(cale.)48 b(Note)34 b(that)f(b)s(oth)e
+Fr(x)39 b Fu(and)31 b Fr(y)40 b Fu(m)m(ust)32 b(b)s(e)g(of)g(the)h
+(same)f(t)m(yp)s(e.)47 b(When)32 b(the)g(incremen)m(t)150
+3120 y(is)d(supplied,)g(it)h(is)f(used)f(as)i(the)f(di\013erence)h(b)s
+(et)m(w)m(een)g(eac)m(h)g(term.)41 b(The)29 b(default)g(incremen)m(t)h
+(is)f(1)h(or)f(-1)150 3229 y(as)i(appropriate.)275 3358
+y(Brace)36 b(expansion)g(is)f(p)s(erformed)f(b)s(efore)h(an)m(y)h
+(other)g(expansions,)h(and)e(an)m(y)g(c)m(haracters)i(sp)s(ecial)150
+3467 y(to)32 b(other)g(expansions)g(are)g(preserv)m(ed)f(in)h(the)f
+(result.)45 b(It)32 b(is)g(strictly)g(textual.)46 b(Bash)32
+b(do)s(es)f(not)h(apply)150 3577 y(an)m(y)27 b(syn)m(tactic)i(in)m
+(terpretation)g(to)f(the)f(con)m(text)i(of)e(the)g(expansion)g(or)g
+(the)h(text)g(b)s(et)m(w)m(een)f(the)h(braces.)275 3706
+y(A)h(correctly-formed)i(brace)f(expansion)f(m)m(ust)h(con)m(tain)h
+(unquoted)e(op)s(ening)g(and)g(closing)i(braces,)150
+3815 y(and)h(at)i(least)g(one)f(unquoted)g(comma)g(or)g(a)h(v)-5
 b(alid)33 b(sequence)g(expression.)48 b(An)m(y)33 b(incorrectly)h
-(formed)150 1338 y(brace)d(expansion)f(is)g(left)h(unc)m(hanged.)275
-1474 y(A)25 b Fi({)h Fu(or)f(`)p Ft(,)p Fu(')g(ma)m(y)h(b)s(e)f(quoted)
+(formed)150 3925 y(brace)d(expansion)f(is)g(left)h(unc)m(hanged.)275
+4053 y(A)25 b Fi({)h Fu(or)f(`)p Ft(,)p Fu(')g(ma)m(y)h(b)s(e)f(quoted)
 h(with)f(a)g(bac)m(kslash)h(to)g(prev)m(en)m(t)g(its)g(b)s(eing)f
-(considered)g(part)g(of)h(a)g(brace)150 1583 y(expression.)51
+(considered)g(part)g(of)h(a)g(brace)150 4163 y(expression.)51
 b(T)-8 b(o)34 b(a)m(v)m(oid)i(con\015icts)e(with)g(parameter)g
 (expansion,)h(the)f(string)g(`)p Ft(${)p Fu(')g(is)g(not)g(considered)
-150 1693 y(eligible)e(for)e(brace)h(expansion,)f(and)g(inhibits)g
+150 4272 y(eligible)e(for)e(brace)h(expansion,)f(and)g(inhibits)g
 (brace)h(expansion)f(un)m(til)g(the)h(closing)h(`)p Ft(})p
-Fu('..)275 1829 y(This)e(construct)h(is)g(t)m(ypically)i(used)d(as)h
+Fu('..)275 4401 y(This)e(construct)h(is)g(t)m(ypically)i(used)d(as)h
 (shorthand)f(when)g(the)h(common)g(pre\014x)f(of)h(the)g(strings)g(to)
-150 1939 y(b)s(e)f(generated)h(is)g(longer)g(than)f(in)g(the)g(ab)s(o)m
-(v)m(e)i(example:)390 2074 y Ft(mkdir)46 b(/usr/local/src/bash/{old,n)o
-(ew,)o(dist)o(,bug)o(s})275 2210 y Fu(or)390 2346 y Ft(chown)g(root)h
+150 4511 y(b)s(e)f(generated)h(is)g(longer)g(than)f(in)g(the)g(ab)s(o)m
+(v)m(e)i(example:)390 4639 y Ft(mkdir)46 b(/usr/local/src/bash/{old,n)o
+(ew,)o(dist)o(,bug)o(s})275 4768 y Fu(or)390 4896 y Ft(chown)g(root)h
 (/usr/{ucb/{ex,edit},lib/)o({ex?)o(.?*,)o(how)o(_ex})o(})150
-2547 y Fk(3.5.2)63 b(Tilde)41 b(Expansion)150 2694 y
+5083 y Fk(3.5.2)63 b(Tilde)41 b(Expansion)150 5230 y
 Fu(If)29 b(a)h(w)m(ord)g(b)s(egins)f(with)g(an)h(unquoted)f(tilde)h(c)m
 (haracter)h(\(`)p Ft(~)p Fu('\),)g(all)g(of)f(the)g(c)m(haracters)h(up)
-d(to)j(the)f(\014rst)150 2804 y(unquoted)24 b(slash)g(\(or)h(all)h(c)m
+d(to)j(the)f(\014rst)150 5340 y(unquoted)24 b(slash)g(\(or)h(all)h(c)m
 (haracters,)h(if)e(there)g(is)f(no)h(unquoted)e(slash\))i(are)g
-(considered)g(a)g Fr(tilde-pre\014x)p Fu(.)150 2913 y(If)38
-b(none)g(of)g(the)h(c)m(haracters)g(in)f(the)h(tilde-pre\014x)f(are)h
-(quoted,)h(the)f(c)m(haracters)h(in)d(the)i(tilde-pre\014x)150
-3023 y(follo)m(wing)28 b(the)g(tilde)f(are)h(treated)g(as)f(a)g(p)s
+(considered)g(a)g Fr(tilde-pre\014x)p Fu(.)p eop end
+%%Page: 24 30
+TeXDict begin 24 29 bop 150 -116 a Fu(Chapter)30 b(3:)41
+b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(24)150 299
+y(If)38 b(none)g(of)g(the)h(c)m(haracters)g(in)f(the)h(tilde-pre\014x)f
+(are)h(quoted,)h(the)f(c)m(haracters)h(in)d(the)i(tilde-pre\014x)150
+408 y(follo)m(wing)28 b(the)g(tilde)f(are)h(treated)g(as)f(a)g(p)s
 (ossible)g Fr(login)h(name)p Fu(.)39 b(If)27 b(this)g(login)h(name)f
-(is)g(the)g(n)m(ull)g(string,)150 3132 y(the)35 b(tilde)g(is)g
-(replaced)g(with)f(the)h(v)-5 b(alue)35 b(of)g(the)g
-Ft(HOME)e Fu(shell)i(v)-5 b(ariable.)54 b(If)34 b Ft(HOME)g
-Fu(is)h(unset,)g(the)g(home)150 3242 y(directory)e(of)g(the)f(user)g
-(executing)i(the)e(shell)h(is)f(substituted)g(instead.)47
-b(Otherwise,)33 b(the)g(tilde-pre\014x)150 3352 y(is)d(replaced)h(with)
-f(the)h(home)f(directory)h(asso)s(ciated)h(with)e(the)h(sp)s(eci\014ed)
-e(login)j(name.)275 3487 y(If)g(the)h(tilde-pre\014x)f(is)h(`)p
+(is)g(the)g(n)m(ull)g(string,)150 518 y(the)35 b(tilde)g(is)g(replaced)
+g(with)f(the)h(v)-5 b(alue)35 b(of)g(the)g Ft(HOME)e
+Fu(shell)i(v)-5 b(ariable.)54 b(If)34 b Ft(HOME)g Fu(is)h(unset,)g(the)
+g(home)150 628 y(directory)e(of)g(the)f(user)g(executing)i(the)e(shell)
+h(is)f(substituted)g(instead.)47 b(Otherwise,)33 b(the)g
+(tilde-pre\014x)150 737 y(is)d(replaced)h(with)f(the)h(home)f
+(directory)h(asso)s(ciated)h(with)e(the)h(sp)s(eci\014ed)e(login)j
+(name.)275 874 y(If)g(the)h(tilde-pre\014x)f(is)h(`)p
 Ft(~+)p Fu(',)g(the)g(v)-5 b(alue)33 b(of)g(the)g(shell)g(v)-5
 b(ariable)34 b Ft(PWD)d Fu(replaces)j(the)f(tilde-pre\014x.)47
-b(If)150 3597 y(the)31 b(tilde-pre\014x)f(is)g(`)p Ft(~-)p
+b(If)150 984 y(the)31 b(tilde-pre\014x)f(is)g(`)p Ft(~-)p
 Fu(',)h(the)f(v)-5 b(alue)31 b(of)g(the)f(shell)h(v)-5
 b(ariable)31 b Ft(OLDPWD)p Fu(,)e(if)h(it)h(is)g(set,)g(is)f
-(substituted.)275 3733 y(If)f(the)h(c)m(haracters)h(follo)m(wing)h(the)
+(substituted.)275 1121 y(If)f(the)h(c)m(haracters)h(follo)m(wing)h(the)
 e(tilde)g(in)g(the)g(tilde-pre\014x)g(consist)g(of)g(a)h(n)m(um)m(b)s
-(er)d Fr(N)p Fu(,)j(optionally)150 3843 y(pre\014xed)22
+(er)d Fr(N)p Fu(,)j(optionally)150 1230 y(pre\014xed)22
 b(b)m(y)h(a)h(`)p Ft(+)p Fu(')f(or)h(a)f(`)p Ft(-)p Fu(',)j(the)d
 (tilde-pre\014x)g(is)h(replaced)f(with)g(the)h(corresp)s(onding)e
-(elemen)m(t)j(from)e(the)150 3952 y(directory)36 b(stac)m(k,)i(as)e(it)
+(elemen)m(t)j(from)e(the)150 1340 y(directory)36 b(stac)m(k,)i(as)e(it)
 g(w)m(ould)f(b)s(e)g(displa)m(y)m(ed)h(b)m(y)g(the)f
 Ft(dirs)g Fu(builtin)g(in)m(v)m(ok)m(ed)i(with)e(the)g(c)m(haracters)
-150 4062 y(follo)m(wing)40 b(tilde)f(in)g(the)f(tilde-pre\014x)h(as)g
+150 1450 y(follo)m(wing)40 b(tilde)f(in)g(the)f(tilde-pre\014x)h(as)g
 (an)f(argumen)m(t)h(\(see)h(Section)f(6.8)h([The)e(Directory)i(Stac)m
-(k],)150 4171 y(page)c(95\).)57 b(If)35 b(the)g(tilde-pre\014x,)i(sans)
+(k],)150 1559 y(page)c(95\).)57 b(If)35 b(the)g(tilde-pre\014x,)i(sans)
 e(the)h(tilde,)h(consists)f(of)g(a)f(n)m(um)m(b)s(er)f(without)i(a)f
-(leading)h(`)p Ft(+)p Fu(')g(or)150 4281 y(`)p Ft(-)p
-Fu(',)31 b(`)p Ft(+)p Fu(')f(is)h(assumed.)275 4417 y(If)e(the)i(login)
+(leading)h(`)p Ft(+)p Fu(')g(or)150 1669 y(`)p Ft(-)p
+Fu(',)31 b(`)p Ft(+)p Fu(')f(is)h(assumed.)275 1806 y(If)e(the)i(login)
 g(name)g(is)f(in)m(v)-5 b(alid,)31 b(or)g(the)f(tilde)h(expansion)f
 (fails,)i(the)e(w)m(ord)g(is)h(left)g(unc)m(hanged.)275
-4553 y(Eac)m(h)38 b(v)-5 b(ariable)38 b(assignmen)m(t)h(is)e(c)m(hec)m
+1943 y(Eac)m(h)38 b(v)-5 b(ariable)38 b(assignmen)m(t)h(is)e(c)m(hec)m
 (k)m(ed)j(for)d(unquoted)g(tilde-pre\014xes)h(immediately)g(follo)m
-(wing)150 4662 y(a)d(`)p Ft(:)p Fu(')g(or)g(the)g(\014rst)f(`)p
+(wing)150 2052 y(a)d(`)p Ft(:)p Fu(')g(or)g(the)g(\014rst)f(`)p
 Ft(=)p Fu('.)54 b(In)34 b(these)h(cases,)i(tilde)e(expansion)g(is)g
 (also)h(p)s(erformed.)52 b(Consequen)m(tly)-8 b(,)37
-b(one)150 4772 y(ma)m(y)29 b(use)e(\014lenames)h(with)g(tildes)g(in)g
+b(one)150 2162 y(ma)m(y)29 b(use)e(\014lenames)h(with)g(tildes)g(in)g
 (assignmen)m(ts)g(to)h Ft(PATH)p Fu(,)f Ft(MAILPATH)p
 Fu(,)e(and)h Ft(CDPATH)p Fu(,)g(and)h(the)g(shell)150
-4882 y(assigns)j(the)f(expanded)g(v)-5 b(alue.)275 5018
+2271 y(assigns)j(the)f(expanded)g(v)-5 b(alue.)275 2408
 y(The)29 b(follo)m(wing)j(table)g(sho)m(ws)e(ho)m(w)g(Bash)h(treats)g
-(unquoted)e(tilde-pre\014xes:)150 5179 y Ft(~)432 b Fu(The)30
-b(v)-5 b(alue)31 b(of)f Ft($HOME)150 5340 y(~/foo)240
-b($HOME/foo)p eop end
-%%Page: 24 30
-TeXDict begin 24 29 bop 150 -116 a Fu(Chapter)30 b(3:)41
-b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(24)150 299
-y Ft(~fred/foo)630 408 y Fu(The)30 b(sub)s(directory)f
-Ft(foo)h Fu(of)g(the)h(home)f(directory)h(of)g(the)f(user)g
-Ft(fred)150 585 y(~+/foo)192 b($PWD/foo)150 762 y(~-/foo)g
-(${OLDPWD-'~-'}/foo)150 939 y(~)p Fj(N)384 b Fu(The)30
-b(string)g(that)h(w)m(ould)f(b)s(e)g(displa)m(y)m(ed)h(b)m(y)f(`)p
-Ft(dirs)g(+)p Fj(N)p Fu(')150 1115 y Ft(~+)p Fj(N)336
+(unquoted)e(tilde-pre\014xes:)150 2572 y Ft(~)432 b Fu(The)30
+b(v)-5 b(alue)31 b(of)f Ft($HOME)150 2733 y(~/foo)240
+b($HOME/foo)150 2895 y(~fred/foo)630 3005 y Fu(The)30
+b(sub)s(directory)f Ft(foo)h Fu(of)g(the)h(home)f(directory)h(of)g(the)
+f(user)g Ft(fred)150 3167 y(~+/foo)192 b($PWD/foo)150
+3329 y(~-/foo)g(${OLDPWD-'~-'}/foo)150 3491 y(~)p Fj(N)384
 b Fu(The)30 b(string)g(that)h(w)m(ould)f(b)s(e)g(displa)m(y)m(ed)h(b)m
-(y)f(`)p Ft(dirs)g(+)p Fj(N)p Fu(')150 1292 y Ft(~-)p
+(y)f(`)p Ft(dirs)g(+)p Fj(N)p Fu(')150 3653 y Ft(~+)p
 Fj(N)336 b Fu(The)30 b(string)g(that)h(w)m(ould)f(b)s(e)g(displa)m(y)m
-(ed)h(b)m(y)f(`)p Ft(dirs)g(-)p Fj(N)p Fu(')150 1509
-y Fk(3.5.3)63 b(Shell)41 b(P)m(arameter)f(Expansion)150
-1656 y Fu(The)g(`)p Ft($)p Fu(')h(c)m(haracter)i(in)m(tro)s(duces)d
-(parameter)h(expansion,)j(command)d(substitution,)i(or)e(arithmetic)150
-1765 y(expansion.)d(The)22 b(parameter)h(name)f(or)g(sym)m(b)s(ol)h(to)
-g(b)s(e)e(expanded)h(ma)m(y)h(b)s(e)f(enclosed)h(in)f(braces,)i(whic)m
-(h)150 1875 y(are)31 b(optional)g(but)f(serv)m(e)h(to)h(protect)f(the)g
-(v)-5 b(ariable)31 b(to)g(b)s(e)f(expanded)g(from)g(c)m(haracters)i
-(immediately)150 1984 y(follo)m(wing)g(it)f(whic)m(h)f(could)g(b)s(e)g
-(in)m(terpreted)h(as)f(part)h(of)f(the)h(name.)275 2136
-y(When)44 b(braces)i(are)f(used,)j(the)e(matc)m(hing)g(ending)f(brace)g
-(is)g(the)g(\014rst)g(`)p Ft(})p Fu(')g(not)g(escap)s(ed)h(b)m(y)f(a)
-150 2246 y(bac)m(kslash)40 b(or)f(within)g(a)g(quoted)g(string,)j(and)c
-(not)i(within)e(an)h(em)m(b)s(edded)f(arithmetic)j(expansion,)150
-2355 y(command)30 b(substitution,)g(or)h(parameter)g(expansion.)275
-2507 y(The)40 b(basic)i(form)f(of)g(parameter)h(expansion)f(is)h($)p
+(ed)h(b)m(y)f(`)p Ft(dirs)g(+)p Fj(N)p Fu(')150 3814
+y Ft(~-)p Fj(N)336 b Fu(The)30 b(string)g(that)h(w)m(ould)f(b)s(e)g
+(displa)m(y)m(ed)h(b)m(y)f(`)p Ft(dirs)g(-)p Fj(N)p Fu(')275
+3978 y(Bash)40 b(also)h(p)s(erforms)e(tilde)h(expansion)g(on)h(w)m
+(ords)e(satisfying)i(the)f(conditions)h(of)f(v)-5 b(ariable)41
+b(as-)150 4087 y(signmen)m(ts)f(\(see)h(Section)g(3.4)g([Shell)f(P)m
+(arameters],)k(page)d(19\))g(when)e(they)h(app)s(ear)f(as)i(argumen)m
+(ts)150 4197 y(to)c(simple)f(commands.)57 b(Bash)36 b(do)s(es)f(not)h
+(do)g(this,)i(except)f(for)e(the)h Fr(declaration)i Fu(commands)d
+(listed)150 4306 y(ab)s(o)m(v)m(e,)d(when)d(in)h Fm(posix)g
+Fu(mo)s(de.)150 4508 y Fk(3.5.3)63 b(Shell)41 b(P)m(arameter)f
+(Expansion)150 4655 y Fu(The)g(`)p Ft($)p Fu(')h(c)m(haracter)i(in)m
+(tro)s(duces)d(parameter)h(expansion,)j(command)d(substitution,)i(or)e
+(arithmetic)150 4765 y(expansion.)d(The)22 b(parameter)h(name)f(or)g
+(sym)m(b)s(ol)h(to)g(b)s(e)e(expanded)h(ma)m(y)h(b)s(e)f(enclosed)h(in)
+f(braces,)i(whic)m(h)150 4874 y(are)31 b(optional)g(but)f(serv)m(e)h
+(to)h(protect)f(the)g(v)-5 b(ariable)31 b(to)g(b)s(e)f(expanded)g(from)
+g(c)m(haracters)i(immediately)150 4984 y(follo)m(wing)g(it)f(whic)m(h)f
+(could)g(b)s(e)g(in)m(terpreted)h(as)f(part)h(of)f(the)h(name.)275
+5121 y(When)44 b(braces)i(are)f(used,)j(the)e(matc)m(hing)g(ending)f
+(brace)g(is)g(the)g(\014rst)g(`)p Ft(})p Fu(')g(not)g(escap)s(ed)h(b)m
+(y)f(a)150 5230 y(bac)m(kslash)40 b(or)f(within)g(a)g(quoted)g(string,)
+j(and)c(not)i(within)e(an)h(em)m(b)s(edded)f(arithmetic)j(expansion,)
+150 5340 y(command)30 b(substitution,)g(or)h(parameter)g(expansion.)p
+eop end
+%%Page: 25 31
+TeXDict begin 25 30 bop 150 -116 a Fu(Chapter)30 b(3:)41
+b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(25)275 299
+y(The)40 b(basic)i(form)f(of)g(parameter)h(expansion)f(is)h($)p
 Fi({)p Fr(parameter)7 b Fi(})p Fu(.)74 b(The)41 b(v)-5
-b(alue)42 b(of)g Fr(parameter)48 b Fu(is)150 2617 y(substituted.)43
+b(alue)42 b(of)g Fr(parameter)48 b Fu(is)150 408 y(substituted.)43
 b(The)31 b Fr(parameter)39 b Fu(is)31 b(a)h(shell)f(parameter)h(as)g
 (describ)s(ed)e(ab)s(o)m(v)m(e)j(\(see)f(Section)g(3.4)h([Shell)150
-2726 y(P)m(arameters],)e(page)f(19\))h(or)e(an)g(arra)m(y)h(reference)f
+518 y(P)m(arameters],)e(page)f(19\))h(or)e(an)g(arra)m(y)h(reference)f
 (\(see)i(Section)f(6.7)g([Arra)m(ys],)g(page)g(93\).)42
-b(The)29 b(braces)150 2836 y(are)j(required)g(when)f
-Fr(parameter)39 b Fu(is)32 b(a)h(p)s(ositional)f(parameter)h(with)f
-(more)g(than)g(one)g(digit,)i(or)e(when)150 2946 y Fr(parameter)37
-b Fu(is)31 b(follo)m(w)m(ed)h(b)m(y)e(a)h(c)m(haracter)h(that)f(is)f
-(not)h(to)g(b)s(e)f(in)m(terpreted)g(as)h(part)f(of)h(its)f(name.)275
-3097 y(If)k(the)h(\014rst)f(c)m(haracter)i(of)f Fr(parameter)42
+b(The)29 b(braces)150 628 y(are)j(required)g(when)f Fr(parameter)39
+b Fu(is)32 b(a)h(p)s(ositional)f(parameter)h(with)f(more)g(than)g(one)g
+(digit,)i(or)e(when)150 737 y Fr(parameter)37 b Fu(is)31
+b(follo)m(w)m(ed)h(b)m(y)e(a)h(c)m(haracter)h(that)f(is)f(not)h(to)g(b)
+s(e)f(in)m(terpreted)g(as)h(part)f(of)h(its)f(name.)275
+885 y(If)k(the)h(\014rst)f(c)m(haracter)i(of)f Fr(parameter)42
 b Fu(is)35 b(an)g(exclamation)i(p)s(oin)m(t)e(\(!\),)i(and)d
-Fr(parameter)42 b Fu(is)34 b(not)i(a)150 3207 y Fr(nameref)p
-Fu(,)i(it)f(in)m(tro)s(duces)f(a)h(lev)m(el)h(of)f(v)-5
-b(ariable)37 b(indirection.)59 b(Bash)37 b(uses)f(the)g(v)-5
-b(alue)37 b(of)g(the)f(v)-5 b(ariable)150 3317 y(formed)22
-b(from)f(the)h(rest)h(of)f Fr(parameter)29 b Fu(as)22
-b(the)g(name)h(of)f(the)g(v)-5 b(ariable;)26 b(this)c(v)-5
-b(ariable)23 b(is)f(then)g(expanded)150 3426 y(and)34
-b(that)h(v)-5 b(alue)35 b(is)g(used)f(in)g(the)h(rest)g(of)g(the)g
-(substitution,)g(rather)g(than)f(the)h(v)-5 b(alue)35
-b(of)g Fr(parameter)150 3536 y Fu(itself.)74 b(This)41
-b(is)g(kno)m(wn)g(as)g Ft(indirect)28 b(expansion)p Fu(.)71
-b(The)41 b(v)-5 b(alue)42 b(is)f(sub)5 b(ject)41 b(to)h(tilde)g
-(expansion,)150 3645 y(parameter)e(expansion,)i(command)d
-(substitution,)j(and)d(arithmetic)h(expansion.)68 b(If)39
-b Fr(parameter)47 b Fu(is)150 3755 y(a)40 b(nameref,)h(this)e(expands)g
-(to)g(the)h(name)f(of)g(the)h(v)-5 b(ariable)40 b(referenced)f(b)m(y)g
-Fr(parameter)46 b Fu(instead)40 b(of)150 3865 y(p)s(erforming)32
-b(the)i(complete)h(indirect)f(expansion.)51 b(The)33
-b(exceptions)i(to)f(this)g(are)g(the)f(expansions)h(of)150
-3974 y($)p Fi({)p Fu(!)p Fr(pre\014x)6 b Fu(*)p Fi(})39
-b Fu(and)f($)p Fi({)p Fu(!)p Fr(name)5 b Fu([@])p Fi(})40
-b Fu(describ)s(ed)d(b)s(elo)m(w.)64 b(The)37 b(exclamation)k(p)s(oin)m
-(t)d(m)m(ust)g(immediately)150 4084 y(follo)m(w)32 b(the)e(left)h
-(brace)g(in)f(order)g(to)h(in)m(tro)s(duce)f(indirection.)275
-4236 y(In)39 b(eac)m(h)i(of)g(the)f(cases)h(b)s(elo)m(w,)i
-Fr(w)m(ord)h Fu(is)c(sub)5 b(ject)40 b(to)h(tilde)f(expansion,)j
-(parameter)e(expansion,)150 4345 y(command)30 b(substitution,)g(and)g
-(arithmetic)i(expansion.)275 4497 y(When)h(not)h(p)s(erforming)e
+Fr(parameter)42 b Fu(is)34 b(not)i(a)150 995 y Fr(nameref)p
+Fu(,)c(it)f(in)m(tro)s(duces)h(a)f(lev)m(el)i(of)f(indirection.)44
+b(Bash)31 b(uses)g(the)g(v)-5 b(alue)32 b(formed)f(b)m(y)g(expanding)g
+(the)150 1104 y(rest)c(of)f Fr(parameter)33 b Fu(as)27
+b(the)g(new)f Fr(parameter)7 b Fu(;)28 b(this)e(is)g(then)g(expanded)g
+(and)g(that)h(v)-5 b(alue)27 b(is)f(used)g(in)g(the)150
+1214 y(rest)33 b(of)f(the)h(expansion,)g(rather)g(than)f(the)h
+(expansion)f(of)h(the)g(original)g Fr(parameter)p Fu(.)48
+b(This)32 b(is)g(kno)m(wn)150 1324 y(as)42 b Ft(indirect)28
+b(expansion)p Fu(.)71 b(The)41 b(v)-5 b(alue)41 b(is)h(sub)5
+b(ject)41 b(to)h(tilde)g(expansion,)i(parameter)e(expansion,)150
+1433 y(command)31 b(substitution,)g(and)g(arithmetic)h(expansion.)43
+b(If)31 b Fr(parameter)38 b Fu(is)32 b(a)f(nameref,)h(this)f(expands)
+150 1543 y(to)d(the)g(name)g(of)f(the)h(v)-5 b(ariable)28
+b(referenced)g(b)m(y)f Fr(parameter)35 b Fu(instead)27
+b(of)h(p)s(erforming)e(the)i(complete)h(in-)150 1652
+y(direct)e(expansion.)39 b(The)25 b(exceptions)i(to)g(this)f(are)h(the)
+f(expansions)g(of)g($)p Fi({)p Fu(!)p Fr(pre\014x)6 b
+Fu(*)p Fi(})28 b Fu(and)d($)p Fi({)p Fu(!)p Fr(name)5
+b Fu([@])p Fi(})150 1762 y Fu(describ)s(ed)28 b(b)s(elo)m(w.)41
+b(The)28 b(exclamation)j(p)s(oin)m(t)f(m)m(ust)f(immediately)h(follo)m
+(w)g(the)g(left)f(brace)h(in)f(order)f(to)150 1872 y(in)m(tro)s(duce)i
+(indirection.)275 2019 y(In)39 b(eac)m(h)i(of)g(the)f(cases)h(b)s(elo)m
+(w,)i Fr(w)m(ord)h Fu(is)c(sub)5 b(ject)40 b(to)h(tilde)f(expansion,)j
+(parameter)e(expansion,)150 2129 y(command)30 b(substitution,)g(and)g
+(arithmetic)i(expansion.)275 2277 y(When)h(not)h(p)s(erforming)e
 (substring)h(expansion,)h(using)g(the)f(form)h(describ)s(ed)e(b)s(elo)m
-(w)i(\(e.g.,)i(`)p Ft(:-)p Fu('\),)150 4607 y(Bash)d(tests)h(for)e(a)i
+(w)i(\(e.g.,)i(`)p Ft(:-)p Fu('\),)150 2387 y(Bash)d(tests)h(for)e(a)i
 (parameter)f(that)h(is)e(unset)h(or)g(n)m(ull.)48 b(Omitting)33
-b(the)h(colon)f(results)g(in)g(a)g(test)h(only)150 4716
+b(the)h(colon)f(results)g(in)g(a)g(test)h(only)150 2496
 y(for)c(a)i(parameter)f(that)g(is)g(unset.)41 b(Put)31
 b(another)f(w)m(a)m(y)-8 b(,)33 b(if)e(the)f(colon)i(is)f(included,)f
-(the)h(op)s(erator)g(tests)150 4826 y(for)36 b(b)s(oth)g
+(the)h(op)s(erator)g(tests)150 2606 y(for)36 b(b)s(oth)g
 Fr(parameter)7 b Fu('s)37 b(existence)h(and)e(that)i(its)f(v)-5
 b(alue)37 b(is)g(not)f(n)m(ull;)k(if)d(the)g(colon)h(is)e(omitted,)k
-(the)150 4935 y(op)s(erator)31 b(tests)g(only)f(for)g(existence.)150
-5121 y Ft(${)p Fj(parameter)p Ft(:)p Fq(\000)p Fj(word)p
-Ft(})630 5230 y Fu(If)g Fr(parameter)37 b Fu(is)30 b(unset)g(or)h(n)m
+(the)150 2715 y(op)s(erator)31 b(tests)g(only)f(for)g(existence.)150
+2895 y Ft(${)p Fj(parameter)p Ft(:)p Fq(\000)p Fj(word)p
+Ft(})630 3005 y Fu(If)g Fr(parameter)37 b Fu(is)30 b(unset)g(or)h(n)m
 (ull,)f(the)h(expansion)f(of)g Fr(w)m(ord)k Fu(is)c(substituted.)40
-b(Otherwise,)630 5340 y(the)31 b(v)-5 b(alue)30 b(of)h
-Fr(parameter)37 b Fu(is)31 b(substituted.)p eop end
-%%Page: 25 31
-TeXDict begin 25 30 bop 150 -116 a Fu(Chapter)30 b(3:)41
-b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(25)150 299
-y Ft(${)p Fj(parameter)p Ft(:=)p Fj(word)p Ft(})630 408
-y Fu(If)33 b Fr(parameter)40 b Fu(is)33 b(unset)f(or)h(n)m(ull,)h(the)f
+b(Otherwise,)630 3114 y(the)31 b(v)-5 b(alue)30 b(of)h
+Fr(parameter)37 b Fu(is)31 b(substituted.)150 3287 y
+Ft(${)p Fj(parameter)p Ft(:=)p Fj(word)p Ft(})630 3397
+y Fu(If)i Fr(parameter)40 b Fu(is)33 b(unset)f(or)h(n)m(ull,)h(the)f
 (expansion)g(of)g Fr(w)m(ord)j Fu(is)d(assigned)g(to)h
-Fr(parameter)p Fu(.)630 518 y(The)c(v)-5 b(alue)32 b(of)f
+Fr(parameter)p Fu(.)630 3506 y(The)c(v)-5 b(alue)32 b(of)f
 Fr(parameter)38 b Fu(is)31 b(then)g(substituted.)42 b(P)m(ositional)33
-b(parameters)e(and)f(sp)s(ecial)630 628 y(parameters)h(ma)m(y)g(not)f
+b(parameters)e(and)f(sp)s(ecial)630 3616 y(parameters)h(ma)m(y)g(not)f
 (b)s(e)g(assigned)h(to)g(in)f(this)g(w)m(a)m(y)-8 b(.)150
-786 y Ft(${)p Fj(parameter)p Ft(:?)p Fj(word)p Ft(})630
-896 y Fu(If)26 b Fr(parameter)33 b Fu(is)26 b(n)m(ull)g(or)g(unset,)h
+3789 y Ft(${)p Fj(parameter)p Ft(:?)p Fj(word)p Ft(})630
+3898 y Fu(If)26 b Fr(parameter)33 b Fu(is)26 b(n)m(ull)g(or)g(unset,)h
 (the)f(expansion)g(of)g Fr(w)m(ord)k Fu(\(or)c(a)h(message)g(to)g(that)
-f(e\013ect)630 1005 y(if)i Fr(w)m(ord)j Fu(is)d(not)g(presen)m(t\))h
+f(e\013ect)630 4008 y(if)i Fr(w)m(ord)j Fu(is)d(not)g(presen)m(t\))h
 (is)f(written)g(to)h(the)f(standard)f(error)h(and)f(the)h(shell,)h(if)f
-(it)h(is)f(not)630 1115 y(in)m(teractiv)m(e,)33 b(exits.)42
+(it)h(is)f(not)630 4118 y(in)m(teractiv)m(e,)33 b(exits.)42
 b(Otherwise,)30 b(the)h(v)-5 b(alue)31 b(of)f Fr(parameter)38
-b Fu(is)30 b(substituted.)150 1273 y Ft(${)p Fj(parameter)p
-Ft(:+)p Fj(word)p Ft(})630 1383 y Fu(If)35 b Fr(parameter)42
+b Fu(is)30 b(substituted.)150 4290 y Ft(${)p Fj(parameter)p
+Ft(:+)p Fj(word)p Ft(})630 4400 y Fu(If)35 b Fr(parameter)42
 b Fu(is)36 b(n)m(ull)f(or)h(unset,)g(nothing)g(is)f(substituted,)i
-(otherwise)e(the)h(expansion)630 1492 y(of)31 b Fr(w)m(ord)i
-Fu(is)e(substituted.)150 1650 y Ft(${)p Fj(parameter)p
-Ft(:)p Fj(offset)p Ft(})150 1760 y(${)p Fj(parameter)p
-Ft(:)p Fj(offset)p Ft(:)p Fj(lengt)o(h)p Ft(})630 1870
+(otherwise)e(the)h(expansion)630 4510 y(of)31 b Fr(w)m(ord)i
+Fu(is)e(substituted.)150 4682 y Ft(${)p Fj(parameter)p
+Ft(:)p Fj(offset)p Ft(})150 4792 y(${)p Fj(parameter)p
+Ft(:)p Fj(offset)p Ft(:)p Fj(lengt)o(h)p Ft(})630 4902
 y Fu(This)f(is)h(referred)f(to)h(as)g(Substring)f(Expansion.)41
 b(It)31 b(expands)f(to)h(up)f(to)h Fr(length)g Fu(c)m(harac-)630
-1979 y(ters)k(of)g(the)h(v)-5 b(alue)35 b(of)g Fr(parameter)42
+5011 y(ters)k(of)g(the)h(v)-5 b(alue)35 b(of)g Fr(parameter)42
 b Fu(starting)36 b(at)g(the)f(c)m(haracter)i(sp)s(eci\014ed)d(b)m(y)h
-Fr(o\013set)p Fu(.)55 b(If)630 2089 y Fr(parameter)32
+Fr(o\013set)p Fu(.)55 b(If)630 5121 y Fr(parameter)32
 b Fu(is)26 b(`)p Ft(@)p Fu(',)g(an)f(indexed)g(arra)m(y)h(subscripted)e
 (b)m(y)h(`)p Ft(@)p Fu(')g(or)h(`)p Ft(*)p Fu(',)g(or)g(an)f(asso)s
-(ciativ)m(e)j(ar-)630 2198 y(ra)m(y)g(name,)h(the)f(results)g(di\013er)
+(ciativ)m(e)j(ar-)630 5230 y(ra)m(y)g(name,)h(the)f(results)g(di\013er)
 g(as)g(describ)s(ed)f(b)s(elo)m(w.)40 b(If)28 b Fr(length)g
-Fu(is)g(omitted,)i(it)f(expands)630 2308 y(to)e(the)g(substring)f(of)g
+Fu(is)g(omitted,)i(it)f(expands)630 5340 y(to)e(the)g(substring)f(of)g
 (the)h(v)-5 b(alue)27 b(of)g Fr(parameter)33 b Fu(starting)28
-b(at)f(the)g(c)m(haracter)h(sp)s(eci\014ed)e(b)m(y)630
-2418 y Fr(o\013set)37 b Fu(and)d(extending)g(to)h(the)f(end)g(of)g(the)
-g(v)-5 b(alue.)53 b Fr(length)34 b Fu(and)g Fr(o\013set)j
-Fu(are)e(arithmetic)630 2527 y(expressions)30 b(\(see)h(Section)g(6.5)h
-([Shell)e(Arithmetic],)i(page)f(91\).)630 2661 y(If)39
+b(at)f(the)g(c)m(haracter)h(sp)s(eci\014ed)e(b)m(y)p
+eop end
+%%Page: 26 32
+TeXDict begin 26 31 bop 150 -116 a Fu(Chapter)30 b(3:)41
+b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(26)630 299
+y Fr(o\013set)37 b Fu(and)d(extending)g(to)h(the)f(end)g(of)g(the)g(v)
+-5 b(alue.)53 b Fr(length)34 b Fu(and)g Fr(o\013set)j
+Fu(are)e(arithmetic)630 408 y(expressions)30 b(\(see)h(Section)g(6.5)h
+([Shell)e(Arithmetic],)i(page)f(91\).)630 555 y(If)39
 b Fr(o\013set)k Fu(ev)-5 b(aluates)41 b(to)f(a)g(n)m(um)m(b)s(er)f
 (less)h(than)f(zero,)k(the)d(v)-5 b(alue)40 b(is)g(used)e(as)i(an)g
-(o\013set)630 2771 y(in)33 b(c)m(haracters)i(from)f(the)f(end)g(of)h
+(o\013set)630 664 y(in)33 b(c)m(haracters)i(from)f(the)f(end)g(of)h
 (the)g(v)-5 b(alue)34 b(of)g Fr(parameter)p Fu(.)51 b(If)33
-b Fr(length)h Fu(ev)-5 b(aluates)35 b(to)g(a)630 2880
+b Fr(length)h Fu(ev)-5 b(aluates)35 b(to)g(a)630 774
 y(n)m(um)m(b)s(er)23 b(less)h(than)g(zero,)j(it)d(is)h(in)m(terpreted)f
 (as)g(an)h(o\013set)g(in)f(c)m(haracters)h(from)f(the)g(end)g(of)630
-2990 y(the)31 b(v)-5 b(alue)31 b(of)g Fr(parameter)38
+883 y(the)31 b(v)-5 b(alue)31 b(of)g Fr(parameter)38
 b Fu(rather)30 b(than)h(a)g(n)m(um)m(b)s(er)f(of)g(c)m(haracters,)j
-(and)d(the)h(expansion)630 3099 y(is)39 b(the)g(c)m(haracters)i(b)s(et)
-m(w)m(een)f Fr(o\013set)i Fu(and)c(that)i(result.)67
-b(Note)40 b(that)g(a)g(negativ)m(e)h(o\013set)630 3209
-y(m)m(ust)27 b(b)s(e)g(separated)g(from)g(the)g(colon)i(b)m(y)e(at)h
-(least)g(one)f(space)h(to)g(a)m(v)m(oid)h(b)s(eing)e(confused)630
-3319 y(with)j(the)h(`)p Ft(:-)p Fu(')f(expansion.)630
-3453 y(Here)43 b(are)g(some)f(examples)h(illustrating)g(substring)f
-(expansion)g(on)g(parameters)h(and)630 3562 y(subscripted)29
-b(arra)m(ys:)630 3696 y Ft($)47 b(string=01234567890abcdefgh)630
-3806 y($)g(echo)g(${string:7})630 3915 y(7890abcdefgh)630
-4025 y($)g(echo)g(${string:7:0})630 4244 y($)g(echo)g(${string:7:2})630
-4354 y(78)630 4463 y($)g(echo)g(${string:7:-2})630 4573
-y(7890abcdef)630 4682 y($)g(echo)g(${string:)e(-7})630
-4792 y(bcdefgh)630 4902 y($)i(echo)g(${string:)e(-7:0})630
-5121 y($)i(echo)g(${string:)e(-7:2})630 5230 y(bc)630
-5340 y($)i(echo)g(${string:)e(-7:-2})p eop end
-%%Page: 26 32
-TeXDict begin 26 31 bop 150 -116 a Fu(Chapter)30 b(3:)41
-b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(26)630 299
-y Ft(bcdef)630 408 y($)47 b(set)g(--)h(01234567890abcdefgh)630
-518 y($)f(echo)g(${1:7})630 628 y(7890abcdefgh)630 737
-y($)g(echo)g(${1:7:0})630 956 y($)g(echo)g(${1:7:2})630
-1066 y(78)630 1176 y($)g(echo)g(${1:7:-2})630 1285 y(7890abcdef)630
-1395 y($)g(echo)g(${1:)g(-7})630 1504 y(bcdefgh)630 1614
-y($)g(echo)g(${1:)g(-7:0})630 1833 y($)g(echo)g(${1:)g(-7:2})630
-1943 y(bc)630 2052 y($)g(echo)g(${1:)g(-7:-2})630 2162
-y(bcdef)630 2271 y($)g(array[0]=01234567890abcdef)o(gh)630
-2381 y($)g(echo)g(${array[0]:7})630 2491 y(7890abcdefgh)630
-2600 y($)g(echo)g(${array[0]:7:0})630 2819 y($)g(echo)g
-(${array[0]:7:2})630 2929 y(78)630 3039 y($)g(echo)g(${array[0]:7:-2})
-630 3148 y(7890abcdef)630 3258 y($)g(echo)g(${array[0]:)e(-7})630
-3367 y(bcdefgh)630 3477 y($)i(echo)g(${array[0]:)e(-7:0})630
-3696 y($)i(echo)g(${array[0]:)e(-7:2})630 3806 y(bc)630
-3915 y($)i(echo)g(${array[0]:)e(-7:-2})630 4025 y(bcdef)630
-4171 y Fu(If)22 b Fr(parameter)30 b Fu(is)23 b(`)p Ft(@)p
+(and)d(the)h(expansion)630 993 y(is)39 b(the)g(c)m(haracters)i(b)s(et)m
+(w)m(een)f Fr(o\013set)i Fu(and)c(that)i(result.)67 b(Note)40
+b(that)g(a)g(negativ)m(e)h(o\013set)630 1103 y(m)m(ust)27
+b(b)s(e)g(separated)g(from)g(the)g(colon)i(b)m(y)e(at)h(least)g(one)f
+(space)h(to)g(a)m(v)m(oid)h(b)s(eing)e(confused)630 1212
+y(with)j(the)h(`)p Ft(:-)p Fu(')f(expansion.)630 1358
+y(Here)43 b(are)g(some)f(examples)h(illustrating)g(substring)f
+(expansion)g(on)g(parameters)h(and)630 1468 y(subscripted)29
+b(arra)m(ys:)630 1614 y Ft($)47 b(string=01234567890abcdefgh)630
+1724 y($)g(echo)g(${string:7})630 1833 y(7890abcdefgh)630
+1943 y($)g(echo)g(${string:7:0})630 2162 y($)g(echo)g(${string:7:2})630
+2271 y(78)630 2381 y($)g(echo)g(${string:7:-2})630 2491
+y(7890abcdef)630 2600 y($)g(echo)g(${string:)e(-7})630
+2710 y(bcdefgh)630 2819 y($)i(echo)g(${string:)e(-7:0})630
+3039 y($)i(echo)g(${string:)e(-7:2})630 3148 y(bc)630
+3258 y($)i(echo)g(${string:)e(-7:-2})630 3367 y(bcdef)630
+3477 y($)i(set)g(--)h(01234567890abcdefgh)630 3587 y($)f(echo)g(${1:7})
+630 3696 y(7890abcdefgh)630 3806 y($)g(echo)g(${1:7:0})630
+4025 y($)g(echo)g(${1:7:2})630 4134 y(78)630 4244 y($)g(echo)g
+(${1:7:-2})630 4354 y(7890abcdef)630 4463 y($)g(echo)g(${1:)g(-7})630
+4573 y(bcdefgh)630 4682 y($)g(echo)g(${1:)g(-7:0})630
+4902 y($)g(echo)g(${1:)g(-7:2})630 5011 y(bc)630 5121
+y($)g(echo)g(${1:)g(-7:-2})630 5230 y(bcdef)630 5340
+y($)g(array[0]=01234567890abcdef)o(gh)p eop end
+%%Page: 27 33
+TeXDict begin 27 32 bop 150 -116 a Fu(Chapter)30 b(3:)41
+b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(27)630 299
+y Ft($)47 b(echo)g(${array[0]:7})630 408 y(7890abcdefgh)630
+518 y($)g(echo)g(${array[0]:7:0})630 737 y($)g(echo)g(${array[0]:7:2})
+630 847 y(78)630 956 y($)g(echo)g(${array[0]:7:-2})630
+1066 y(7890abcdef)630 1176 y($)g(echo)g(${array[0]:)e(-7})630
+1285 y(bcdefgh)630 1395 y($)i(echo)g(${array[0]:)e(-7:0})630
+1614 y($)i(echo)g(${array[0]:)e(-7:2})630 1724 y(bc)630
+1833 y($)i(echo)g(${array[0]:)e(-7:-2})630 1943 y(bcdef)630
+2071 y Fu(If)22 b Fr(parameter)30 b Fu(is)23 b(`)p Ft(@)p
 Fu(',)i(the)e(result)g(is)g Fr(length)h Fu(p)s(ositional)f(parameters)h
-(b)s(eginning)e(at)i Fr(o\013set)p Fu(.)630 4281 y(A)36
+(b)s(eginning)e(at)i Fr(o\013set)p Fu(.)630 2180 y(A)36
 b(negativ)m(e)j Fr(o\013set)g Fu(is)e(tak)m(en)g(relativ)m(e)i(to)e
 (one)g(greater)g(than)f(the)h(greatest)h(p)s(ositional)630
-4390 y(parameter,)29 b(so)f(an)g(o\013set)h(of)f(-1)g(ev)-5
+2290 y(parameter,)29 b(so)f(an)g(o\013set)h(of)f(-1)g(ev)-5
 b(aluates)30 b(to)e(the)g(last)h(p)s(ositional)g(parameter.)40
-b(It)28 b(is)g(an)630 4500 y(expansion)i(error)g(if)h
+b(It)28 b(is)g(an)630 2399 y(expansion)i(error)g(if)h
 Fr(length)f Fu(ev)-5 b(aluates)32 b(to)f(a)g(n)m(um)m(b)s(er)e(less)i
-(than)f(zero.)630 4646 y(The)i(follo)m(wing)i(examples)f(illustrate)h
+(than)f(zero.)630 2527 y(The)i(follo)m(wing)i(examples)f(illustrate)h
 (substring)d(expansion)i(using)f(p)s(ositional)h(param-)630
-4755 y(eters:)630 4902 y Ft($)47 b(set)g(--)h(1)f(2)g(3)h(4)f(5)h(6)f
-(7)h(8)f(9)h(0)f(a)h(b)f(c)g(d)h(e)f(f)h(g)f(h)630 5011
-y($)g(echo)g(${@:7})630 5121 y(7)g(8)h(9)f(0)h(a)f(b)h(c)f(d)h(e)f(f)h
-(g)f(h)630 5230 y($)g(echo)g(${@:7:0})p eop end
-%%Page: 27 33
-TeXDict begin 27 32 bop 150 -116 a Fu(Chapter)30 b(3:)41
-b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(27)630 299
-y Ft($)47 b(echo)g(${@:7:2})630 408 y(7)g(8)630 518 y($)g(echo)g
-(${@:7:-2})630 628 y(bash:)f(-2:)h(substring)f(expression)f(<)i(0)630
-737 y($)g(echo)g(${@:)g(-7:2})630 847 y(b)g(c)630 956
-y($)g(echo)g(${@:0})630 1066 y(./bash)f(1)i(2)f(3)g(4)h(5)f(6)h(7)f(8)h
-(9)f(0)h(a)f(b)h(c)f(d)g(e)h(f)f(g)h(h)630 1176 y($)f(echo)g(${@:0:2})
-630 1285 y(./bash)f(1)630 1395 y($)h(echo)g(${@:)g(-7:0})630
-1677 y Fu(If)36 b Fr(parameter)43 b Fu(is)36 b(an)g(indexed)g(arra)m(y)
+2637 y(eters:)630 2765 y Ft($)47 b(set)g(--)h(1)f(2)g(3)h(4)f(5)h(6)f
+(7)h(8)f(9)h(0)f(a)h(b)f(c)g(d)h(e)f(f)h(g)f(h)630 2874
+y($)g(echo)g(${@:7})630 2984 y(7)g(8)h(9)f(0)h(a)f(b)h(c)f(d)h(e)f(f)h
+(g)f(h)630 3093 y($)g(echo)g(${@:7:0})630 3313 y($)g(echo)g(${@:7:2})
+630 3422 y(7)g(8)630 3532 y($)g(echo)g(${@:7:-2})630
+3641 y(bash:)f(-2:)h(substring)f(expression)f(<)i(0)630
+3751 y($)g(echo)g(${@:)g(-7:2})630 3861 y(b)g(c)630 3970
+y($)g(echo)g(${@:0})630 4080 y(./bash)f(1)i(2)f(3)g(4)h(5)f(6)h(7)f(8)h
+(9)f(0)h(a)f(b)h(c)f(d)g(e)h(f)f(g)h(h)630 4189 y($)f(echo)g(${@:0:2})
+630 4299 y(./bash)f(1)630 4408 y($)h(echo)g(${@:)g(-7:0})630
+4646 y Fu(If)36 b Fr(parameter)43 b Fu(is)36 b(an)g(indexed)g(arra)m(y)
 g(name)g(subscripted)f(b)m(y)h(`)p Ft(@)p Fu(')g(or)h(`)p
-Ft(*)p Fu(',)h(the)e(result)g(is)630 1786 y(the)j Fr(length)g
+Ft(*)p Fu(',)h(the)e(result)g(is)630 4755 y(the)j Fr(length)g
 Fu(mem)m(b)s(ers)f(of)h(the)f(arra)m(y)i(b)s(eginning)d(with)i
 Ft(${)p Fj(parameter)p Ft([)p Fj(offset)p Ft(]})p Fu(.)60
-b(A)630 1896 y(negativ)m(e)33 b Fr(o\013set)g Fu(is)e(tak)m(en)h
+b(A)630 4865 y(negativ)m(e)33 b Fr(o\013set)g Fu(is)e(tak)m(en)h
 (relativ)m(e)g(to)g(one)f(greater)g(than)g(the)f(maxim)m(um)h(index)f
-(of)h(the)630 2005 y(sp)s(eci\014ed)38 b(arra)m(y)-8
+(of)h(the)630 4975 y(sp)s(eci\014ed)38 b(arra)m(y)-8
 b(.)65 b(It)38 b(is)g(an)h(expansion)f(error)f(if)i Fr(length)f
 Fu(ev)-5 b(aluates)40 b(to)f(a)g(n)m(um)m(b)s(er)e(less)630
-2115 y(than)30 b(zero.)630 2287 y(These)23 b(examples)i(sho)m(w)e(ho)m
+5084 y(than)30 b(zero.)630 5212 y(These)23 b(examples)i(sho)m(w)e(ho)m
 (w)h(y)m(ou)g(can)g(use)f(substring)f(expansion)i(with)f(indexed)g
-(arra)m(ys:)630 2459 y Ft($)47 b(array=\(0)f(1)h(2)h(3)f(4)h(5)f(6)h(7)
-f(8)h(9)f(0)h(a)f(b)g(c)h(d)f(e)h(f)f(g)h(h\))630 2569
-y($)f(echo)g(${array[@]:7})630 2679 y(7)g(8)h(9)f(0)h(a)f(b)h(c)f(d)h
-(e)f(f)h(g)f(h)630 2788 y($)g(echo)g(${array[@]:7:2})630
-2898 y(7)g(8)630 3007 y($)g(echo)g(${array[@]:)e(-7:2})630
-3117 y(b)i(c)630 3226 y($)g(echo)g(${array[@]:)e(-7:-2})630
-3336 y(bash:)h(-2:)h(substring)f(expression)f(<)i(0)630
-3446 y($)g(echo)g(${array[@]:0})630 3555 y(0)g(1)h(2)f(3)h(4)f(5)h(6)f
-(7)h(8)f(9)h(0)f(a)g(b)h(c)f(d)h(e)f(f)h(g)f(h)630 3665
-y($)g(echo)g(${array[@]:0:2})630 3774 y(0)g(1)630 3884
-y($)g(echo)g(${array[@]:)e(-7:0})630 4166 y Fu(Substring)25
+(arra)m(ys:)630 5340 y Ft($)47 b(array=\(0)f(1)h(2)h(3)f(4)h(5)f(6)h(7)
+f(8)h(9)f(0)h(a)f(b)g(c)h(d)f(e)h(f)f(g)h(h\))p eop end
+%%Page: 28 34
+TeXDict begin 28 33 bop 150 -116 a Fu(Chapter)30 b(3:)41
+b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(28)630 299
+y Ft($)47 b(echo)g(${array[@]:7})630 408 y(7)g(8)h(9)f(0)h(a)f(b)h(c)f
+(d)h(e)f(f)h(g)f(h)630 518 y($)g(echo)g(${array[@]:7:2})630
+628 y(7)g(8)630 737 y($)g(echo)g(${array[@]:)e(-7:2})630
+847 y(b)i(c)630 956 y($)g(echo)g(${array[@]:)e(-7:-2})630
+1066 y(bash:)h(-2:)h(substring)f(expression)f(<)i(0)630
+1176 y($)g(echo)g(${array[@]:0})630 1285 y(0)g(1)h(2)f(3)h(4)f(5)h(6)f
+(7)h(8)f(9)h(0)f(a)g(b)h(c)f(d)h(e)f(f)h(g)f(h)630 1395
+y($)g(echo)g(${array[@]:0:2})630 1504 y(0)g(1)630 1614
+y($)g(echo)g(${array[@]:)e(-7:0})630 1855 y Fu(Substring)25
 b(expansion)g(applied)h(to)h(an)f(asso)s(ciativ)m(e)j(arra)m(y)d(pro)s
-(duces)f(unde\014ned)f(results.)630 4338 y(Substring)32
+(duces)f(unde\014ned)f(results.)630 1987 y(Substring)32
 b(indexing)i(is)f(zero-based)i(unless)e(the)h(p)s(ositional)g
-(parameters)g(are)g(used,)g(in)630 4448 y(whic)m(h)29
+(parameters)g(are)g(used,)g(in)630 2096 y(whic)m(h)29
 b(case)i(the)f(indexing)g(starts)g(at)g(1)g(b)m(y)g(default.)41
 b(If)29 b Fr(o\013set)k Fu(is)d(0,)g(and)f(the)h(p)s(ositional)630
-4557 y(parameters)h(are)f(used,)g Ft($@)g Fu(is)g(pre\014xed)g(to)h
-(the)f(list.)150 4792 y Ft(${!)p Fj(prefix)p Ft(*})150
-4902 y(${!)p Fj(prefix)p Ft(@})630 5011 y Fu(Expands)24
+2206 y(parameters)h(are)f(used,)g Ft($@)g Fu(is)g(pre\014xed)g(to)h
+(the)f(list.)150 2359 y Ft(${!)p Fj(prefix)p Ft(*})150
+2469 y(${!)p Fj(prefix)p Ft(@})630 2578 y Fu(Expands)24
 b(to)h(the)g(names)g(of)g(v)-5 b(ariables)26 b(whose)f(names)f(b)s
 (egin)h(with)f Fr(pre\014x)p Fu(,)i(separated)f(b)m(y)630
-5121 y(the)k(\014rst)f(c)m(haracter)j(of)e(the)g Ft(IFS)f
+2688 y(the)k(\014rst)f(c)m(haracter)j(of)e(the)g Ft(IFS)f
 Fu(sp)s(ecial)i(v)-5 b(ariable.)41 b(When)29 b(`)p Ft(@)p
-Fu(')g(is)g(used)f(and)h(the)g(expan-)630 5230 y(sion)35
+Fu(')g(is)g(used)f(and)h(the)g(expan-)630 2798 y(sion)35
 b(app)s(ears)g(within)f(double)h(quotes,)i(eac)m(h)f(v)-5
 b(ariable)36 b(name)f(expands)g(to)g(a)h(separate)630
-5340 y(w)m(ord.)p eop end
-%%Page: 28 34
-TeXDict begin 28 33 bop 150 -116 a Fu(Chapter)30 b(3:)41
-b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(28)150 299
-y Ft(${!)p Fj(name)p Ft([@]})150 408 y(${!)p Fj(name)p
-Ft([*]})630 518 y Fu(If)26 b Fr(name)32 b Fu(is)27 b(an)f(arra)m(y)h(v)
--5 b(ariable,)29 b(expands)d(to)h(the)g(list)g(of)g(arra)m(y)g(indices)
-g(\(k)m(eys\))h(assigned)630 628 y(in)c Fr(name)p Fu(.)39
-b(If)24 b Fr(name)30 b Fu(is)24 b(not)h(an)f(arra)m(y)-8
-b(,)27 b(expands)c(to)j(0)f(if)f Fr(name)30 b Fu(is)24
-b(set)h(and)f(n)m(ull)g(otherwise.)630 737 y(When)39
-b(`)p Ft(@)p Fu(')h(is)f(used)g(and)f(the)i(expansion)f(app)s(ears)g
-(within)f(double)h(quotes,)k(eac)m(h)d(k)m(ey)630 847
-y(expands)30 b(to)h(a)f(separate)i(w)m(ord.)150 1011
-y Ft(${#)p Fj(parameter)p Ft(})630 1121 y Fu(The)40 b(length)g(in)g(c)m
-(haracters)i(of)e(the)h(expanded)e(v)-5 b(alue)41 b(of)f
-Fr(parameter)47 b Fu(is)40 b(substituted.)630 1230 y(If)i
-Fr(parameter)50 b Fu(is)43 b(`)p Ft(*)p Fu(')g(or)g(`)p
+2907 y(w)m(ord.)150 3061 y Ft(${!)p Fj(name)p Ft([@]})150
+3170 y(${!)p Fj(name)p Ft([*]})630 3280 y Fu(If)26 b
+Fr(name)32 b Fu(is)27 b(an)f(arra)m(y)h(v)-5 b(ariable,)29
+b(expands)d(to)h(the)g(list)g(of)g(arra)m(y)g(indices)g(\(k)m(eys\))h
+(assigned)630 3389 y(in)c Fr(name)p Fu(.)39 b(If)24 b
+Fr(name)30 b Fu(is)24 b(not)h(an)f(arra)m(y)-8 b(,)27
+b(expands)c(to)j(0)f(if)f Fr(name)30 b Fu(is)24 b(set)h(and)f(n)m(ull)g
+(otherwise.)630 3499 y(When)39 b(`)p Ft(@)p Fu(')h(is)f(used)g(and)f
+(the)i(expansion)f(app)s(ears)g(within)f(double)h(quotes,)k(eac)m(h)d
+(k)m(ey)630 3608 y(expands)30 b(to)h(a)f(separate)i(w)m(ord.)150
+3762 y Ft(${#)p Fj(parameter)p Ft(})630 3871 y Fu(The)40
+b(length)g(in)g(c)m(haracters)i(of)e(the)h(expanded)e(v)-5
+b(alue)41 b(of)f Fr(parameter)47 b Fu(is)40 b(substituted.)630
+3981 y(If)i Fr(parameter)50 b Fu(is)43 b(`)p Ft(*)p Fu(')g(or)g(`)p
 Ft(@)p Fu(',)k(the)c(v)-5 b(alue)43 b(substituted)f(is)h(the)g(n)m(um)m
-(b)s(er)f(of)h(p)s(ositional)630 1340 y(parameters.)i(If)32
+(b)s(er)f(of)h(p)s(ositional)630 4091 y(parameters.)i(If)32
 b Fr(parameter)38 b Fu(is)32 b(an)g(arra)m(y)g(name)g(subscripted)f(b)m
 (y)g(`)p Ft(*)p Fu(')h(or)g(`)p Ft(@)p Fu(',)g(the)g(v)-5
-b(alue)630 1450 y(substituted)30 b(is)h(the)g(n)m(um)m(b)s(er)e(of)i
+b(alue)630 4200 y(substituted)30 b(is)h(the)g(n)m(um)m(b)s(er)e(of)i
 (elemen)m(ts)i(in)d(the)h(arra)m(y)-8 b(.)43 b(If)30
-b Fr(parameter)38 b Fu(is)31 b(an)f(indexed)630 1559
+b Fr(parameter)38 b Fu(is)31 b(an)f(indexed)630 4310
 y(arra)m(y)37 b(name)g(subscripted)f(b)m(y)h(a)g(negativ)m(e)i(n)m(um)m
 (b)s(er,)f(that)f(n)m(um)m(b)s(er)f(is)g(in)m(terpreted)i(as)630
-1669 y(relativ)m(e)47 b(to)g(one)e(greater)i(than)e(the)h(maxim)m(um)f
+4419 y(relativ)m(e)47 b(to)g(one)e(greater)i(than)e(the)h(maxim)m(um)f
 (index)g(of)g Fr(parameter)p Fu(,)50 b(so)c(negativ)m(e)630
-1778 y(indices)30 b(coun)m(t)h(bac)m(k)g(from)f(the)h(end)e(of)i(the)f
+4529 y(indices)30 b(coun)m(t)h(bac)m(k)g(from)f(the)h(end)e(of)i(the)f
 (arra)m(y)-8 b(,)32 b(and)e(an)g(index)g(of)g(-1)h(references)g(the)630
-1888 y(last)g(elemen)m(t.)150 2052 y Ft(${)p Fj(parameter)p
-Ft(#)p Fj(word)p Ft(})150 2162 y(${)p Fj(parameter)p
-Ft(##)p Fj(word)p Ft(})630 2271 y Fu(The)43 b Fr(w)m(ord)k
+4639 y(last)g(elemen)m(t.)150 4792 y Ft(${)p Fj(parameter)p
+Ft(#)p Fj(word)p Ft(})150 4902 y(${)p Fj(parameter)p
+Ft(##)p Fj(word)p Ft(})630 5011 y Fu(The)43 b Fr(w)m(ord)k
 Fu(is)d(expanded)f(to)h(pro)s(duce)f(a)h(pattern)g(and)f(matc)m(hed)i
-(according)f(to)h(the)630 2381 y(rules)31 b(describ)s(ed)g(b)s(elo)m(w)
+(according)f(to)h(the)630 5121 y(rules)31 b(describ)s(ed)g(b)s(elo)m(w)
 h(\(see)h(Section)g(3.5.8.1)h([P)m(attern)g(Matc)m(hing],)g(page)f
-(32\).)46 b(If)32 b(the)630 2491 y(pattern)37 b(matc)m(hes)h(the)f(b)s
+(33\).)46 b(If)32 b(the)630 5230 y(pattern)37 b(matc)m(hes)h(the)f(b)s
 (eginning)f(of)h(the)g(expanded)f(v)-5 b(alue)38 b(of)f
-Fr(parameter)p Fu(,)i(then)e(the)630 2600 y(result)f(of)h(the)f
+Fr(parameter)p Fu(,)i(then)e(the)630 5340 y(result)f(of)h(the)f
 (expansion)h(is)f(the)h(expanded)e(v)-5 b(alue)37 b(of)g
-Fr(parameter)43 b Fu(with)36 b(the)h(shortest)630 2710
+Fr(parameter)43 b Fu(with)36 b(the)h(shortest)p eop end
+%%Page: 29 35
+TeXDict begin 29 34 bop 150 -116 a Fu(Chapter)30 b(3:)41
+b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(29)630 299
 y(matc)m(hing)31 b(pattern)e(\(the)h(`)p Ft(#)p Fu(')g(case\))h(or)e
 (the)h(longest)h(matc)m(hing)f(pattern)g(\(the)g(`)p
-Ft(##)p Fu(')g(case\))630 2819 y(deleted.)49 b(If)32
-Fr(parameter)40 b Fu(is)33 b(`)p Ft(@)p Fu(')g(or)g(`)p
+Ft(##)p Fu(')g(case\))630 408 y(deleted.)49 b(If)32 b
+Fr(parameter)40 b Fu(is)33 b(`)p Ft(@)p Fu(')g(or)g(`)p
 Ft(*)p Fu(',)h(the)f(pattern)g(remo)m(v)-5 b(al)34 b(op)s(eration)g(is)
-f(applied)f(to)630 2929 y(eac)m(h)38 b(p)s(ositional)g(parameter)g(in)f
+f(applied)f(to)630 518 y(eac)m(h)38 b(p)s(ositional)g(parameter)g(in)f
 (turn,)h(and)e(the)h(expansion)g(is)h(the)f(resultan)m(t)h(list.)61
-b(If)630 3039 y Fr(parameter)38 b Fu(is)32 b(an)f(arra)m(y)h(v)-5
+b(If)630 628 y Fr(parameter)38 b Fu(is)32 b(an)f(arra)m(y)h(v)-5
 b(ariable)32 b(subscripted)e(with)h(`)p Ft(@)p Fu(')g(or)h(`)p
-Ft(*)p Fu(',)g(the)f(pattern)h(remo)m(v)-5 b(al)630 3148
+Ft(*)p Fu(',)g(the)f(pattern)h(remo)m(v)-5 b(al)630 737
 y(op)s(eration)30 b(is)g(applied)f(to)i(eac)m(h)g(mem)m(b)s(er)e(of)h
 (the)g(arra)m(y)g(in)f(turn,)g(and)g(the)h(expansion)g(is)630
-3258 y(the)h(resultan)m(t)g(list.)150 3422 y Ft(${)p
-Fj(parameter)p Ft(\045)p Fj(word)p Ft(})150 3532 y(${)p
-Fj(parameter)p Ft(\045\045)p Fj(word)p Ft(})630 3641
-y Fu(The)43 b Fr(w)m(ord)k Fu(is)d(expanded)f(to)h(pro)s(duce)f(a)h
-(pattern)g(and)f(matc)m(hed)i(according)f(to)h(the)630
-3751 y(rules)31 b(describ)s(ed)g(b)s(elo)m(w)h(\(see)h(Section)g
-(3.5.8.1)h([P)m(attern)g(Matc)m(hing],)g(page)f(32\).)46
-b(If)32 b(the)630 3861 y(pattern)25 b(matc)m(hes)h(If)f(the)g(pattern)g
-(matc)m(hes)i(a)e(trailing)h(p)s(ortion)f(of)g(the)g(expanded)f(v)-5
-b(alue)630 3970 y(of)23 b Fr(parameter)p Fu(,)i(then)e(the)g(result)f
-(of)h(the)g(expansion)g(is)g(the)g(v)-5 b(alue)23 b(of)g
-Fr(parameter)30 b Fu(with)23 b(the)630 4080 y(shortest)35
-b(matc)m(hing)h(pattern)f(\(the)g(`)p Ft(\045)p Fu(')g(case\))i(or)d
-(the)h(longest)i(matc)m(hing)e(pattern)g(\(the)630 4189
-y(`)p Ft(\045\045)p Fu(')f(case\))i(deleted.)54 b(If)34
-b Fr(parameter)42 b Fu(is)35 b(`)p Ft(@)p Fu(')f(or)h(`)p
+847 y(the)h(resultan)m(t)g(list.)150 993 y Ft(${)p Fj(parameter)p
+Ft(\045)p Fj(word)p Ft(})150 1103 y(${)p Fj(parameter)p
+Ft(\045\045)p Fj(word)p Ft(})630 1212 y Fu(The)43 b Fr(w)m(ord)k
+Fu(is)d(expanded)f(to)h(pro)s(duce)f(a)h(pattern)g(and)f(matc)m(hed)i
+(according)f(to)h(the)630 1322 y(rules)31 b(describ)s(ed)g(b)s(elo)m(w)
+h(\(see)h(Section)g(3.5.8.1)h([P)m(attern)g(Matc)m(hing],)g(page)f
+(33\).)46 b(If)32 b(the)630 1431 y(pattern)25 b(matc)m(hes)h(If)f(the)g
+(pattern)g(matc)m(hes)i(a)e(trailing)h(p)s(ortion)f(of)g(the)g
+(expanded)f(v)-5 b(alue)630 1541 y(of)23 b Fr(parameter)p
+Fu(,)i(then)e(the)g(result)f(of)h(the)g(expansion)g(is)g(the)g(v)-5
+b(alue)23 b(of)g Fr(parameter)30 b Fu(with)23 b(the)630
+1650 y(shortest)35 b(matc)m(hing)h(pattern)f(\(the)g(`)p
+Ft(\045)p Fu(')g(case\))i(or)d(the)h(longest)i(matc)m(hing)e(pattern)g
+(\(the)630 1760 y(`)p Ft(\045\045)p Fu(')f(case\))i(deleted.)54
+b(If)34 b Fr(parameter)42 b Fu(is)35 b(`)p Ft(@)p Fu(')f(or)h(`)p
 Ft(*)p Fu(',)h(the)e(pattern)h(remo)m(v)-5 b(al)36 b(op)s(eration)f(is)
-630 4299 y(applied)26 b(to)g(eac)m(h)h(p)s(ositional)f(parameter)h(in)e
+630 1870 y(applied)26 b(to)g(eac)m(h)h(p)s(ositional)f(parameter)h(in)e
 (turn,)h(and)f(the)h(expansion)g(is)f(the)h(resultan)m(t)630
-4408 y(list.)56 b(If)34 b Fr(parameter)42 b Fu(is)35
+1979 y(list.)56 b(If)34 b Fr(parameter)42 b Fu(is)35
 b(an)g(arra)m(y)h(v)-5 b(ariable)36 b(subscripted)e(with)g(`)p
 Ft(@)p Fu(')i(or)f(`)p Ft(*)p Fu(',)i(the)e(pattern)630
-4518 y(remo)m(v)-5 b(al)44 b(op)s(eration)g(is)e(applied)h(to)h(eac)m
+2089 y(remo)m(v)-5 b(al)44 b(op)s(eration)g(is)e(applied)h(to)h(eac)m
 (h)g(mem)m(b)s(er)e(of)h(the)g(arra)m(y)h(in)e(turn,)j(and)e(the)630
-4628 y(expansion)30 b(is)h(the)f(resultan)m(t)h(list.)150
-4792 y Ft(${)p Fj(parameter)p Ft(/)p Fj(pattern)p Ft(/)p
-Fj(stri)o(ng)p Ft(})630 4902 y Fu(The)37 b Fr(pattern)g
+2198 y(expansion)30 b(is)h(the)f(resultan)m(t)h(list.)150
+2345 y Ft(${)p Fj(parameter)p Ft(/)p Fj(pattern)p Ft(/)p
+Fj(stri)o(ng)p Ft(})630 2454 y Fu(The)37 b Fr(pattern)g
 Fu(is)g(expanded)g(to)h(pro)s(duce)e(a)h(pattern)g(just)g(as)h(in)e
-(\014lename)i(expansion.)630 5011 y Fr(P)m(arameter)46
+(\014lename)i(expansion.)630 2564 y Fr(P)m(arameter)46
 b Fu(is)38 b(expanded)f(and)g(the)i(longest)g(matc)m(h)g(of)f
 Fr(pattern)g Fu(against)h(its)f(v)-5 b(alue)39 b(is)630
-5121 y(replaced)31 b(with)g Fr(string)p Fu(.)42 b(The)30
+2673 y(replaced)31 b(with)g Fr(string)p Fu(.)42 b(The)30
 b(matc)m(h)h(is)g(p)s(erformed)f(according)h(to)h(the)f(rules)f
-(describ)s(ed)630 5230 y(b)s(elo)m(w)f(\(see)h(Section)g(3.5.8.1)h([P)m
-(attern)g(Matc)m(hing],)g(page)f(32\).)41 b(If)29 b Fr(pattern)g
-Fu(b)s(egins)f(with)630 5340 y(`)p Ft(/)p Fu(',)43 b(all)e(matc)m(hes)g
+(describ)s(ed)630 2783 y(b)s(elo)m(w)f(\(see)h(Section)g(3.5.8.1)h([P)m
+(attern)g(Matc)m(hing],)g(page)f(33\).)41 b(If)29 b Fr(pattern)g
+Fu(b)s(egins)f(with)630 2892 y(`)p Ft(/)p Fu(',)43 b(all)e(matc)m(hes)g
 (of)f Fr(pattern)g Fu(are)h(replaced)f(with)g Fr(string)p
-Fu(.)69 b(Normally)41 b(only)f(the)h(\014rst)p eop end
-%%Page: 29 35
-TeXDict begin 29 34 bop 150 -116 a Fu(Chapter)30 b(3:)41
-b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(29)630 299
+Fu(.)69 b(Normally)41 b(only)f(the)h(\014rst)630 3002
 y(matc)m(h)28 b(is)f(replaced.)40 b(If)26 b Fr(pattern)h
 Fu(b)s(egins)f(with)h(`)p Ft(#)p Fu(',)h(it)f(m)m(ust)g(matc)m(h)h(at)g
-(the)f(b)s(eginning)f(of)630 408 y(the)32 b(expanded)f(v)-5
+(the)f(b)s(eginning)f(of)630 3112 y(the)32 b(expanded)f(v)-5
 b(alue)32 b(of)g Fr(parameter)p Fu(.)45 b(If)31 b Fr(pattern)h
 Fu(b)s(egins)f(with)g(`)p Ft(\045)p Fu(',)i(it)f(m)m(ust)g(matc)m(h)g
-(at)630 518 y(the)24 b(end)f(of)h(the)h(expanded)e(v)-5
+(at)630 3221 y(the)24 b(end)f(of)h(the)h(expanded)e(v)-5
 b(alue)24 b(of)g Fr(parameter)p Fu(.)39 b(If)24 b Fr(string)31
 b Fu(is)24 b(n)m(ull,)i(matc)m(hes)f(of)f Fr(pattern)630
-628 y Fu(are)36 b(deleted)g(and)f(the)g Ft(/)g Fu(follo)m(wing)i
+3331 y Fu(are)36 b(deleted)g(and)f(the)g Ft(/)g Fu(follo)m(wing)i
 Fr(pattern)e Fu(ma)m(y)h(b)s(e)f(omitted.)57 b(If)34
-b(the)i Ft(nocasematch)630 737 y Fu(shell)31 b(option)h(\(see)g(the)g
+b(the)i Ft(nocasematch)630 3440 y Fu(shell)31 b(option)h(\(see)g(the)g
 (description)f(of)g Ft(shopt)f Fu(in)h(Section)h(4.3.2)h([The)e(Shopt)f
-(Builtin],)630 847 y(page)45 b(65\))h(is)f(enabled,)j(the)d(matc)m(h)g
+(Builtin],)630 3550 y(page)45 b(65\))h(is)f(enabled,)j(the)d(matc)m(h)g
 (is)g(p)s(erformed)e(without)i(regard)f(to)h(the)g(case)h(of)630
-956 y(alphab)s(etic)36 b(c)m(haracters.)56 b(If)34 b
+3660 y(alphab)s(etic)36 b(c)m(haracters.)56 b(If)34 b
 Fr(parameter)42 b Fu(is)36 b(`)p Ft(@)p Fu(')f(or)g(`)p
 Ft(*)p Fu(',)h(the)g(substitution)e(op)s(eration)i(is)630
-1066 y(applied)26 b(to)g(eac)m(h)h(p)s(ositional)f(parameter)h(in)e
+3769 y(applied)26 b(to)g(eac)m(h)h(p)s(ositional)f(parameter)h(in)e
 (turn,)h(and)f(the)h(expansion)g(is)f(the)h(resultan)m(t)630
-1176 y(list.)38 b(If)21 b Fr(parameter)28 b Fu(is)22
+3879 y(list.)38 b(If)21 b Fr(parameter)28 b Fu(is)22
 b(an)f(arra)m(y)h(v)-5 b(ariable)22 b(subscripted)e(with)h(`)p
 Ft(@)p Fu(')g(or)g(`)p Ft(*)p Fu(',)j(the)d(substitution)630
-1285 y(op)s(eration)30 b(is)g(applied)f(to)i(eac)m(h)g(mem)m(b)s(er)e
+3988 y(op)s(eration)30 b(is)g(applied)f(to)i(eac)m(h)g(mem)m(b)s(er)e
 (of)h(the)g(arra)m(y)g(in)f(turn,)g(and)g(the)h(expansion)g(is)630
-1395 y(the)h(resultan)m(t)g(list.)150 1559 y Ft(${)p
-Fj(parameter)p Ft(^)p Fj(pattern)p Ft(})150 1669 y(${)p
-Fj(parameter)p Ft(^^)p Fj(pattern)p Ft(})150 1778 y(${)p
-Fj(parameter)p Ft(,)p Fj(pattern)p Ft(})150 1888 y(${)p
-Fj(parameter)p Ft(,,)p Fj(pattern)p Ft(})630 1998 y Fu(This)36
+4098 y(the)h(resultan)m(t)g(list.)150 4244 y Ft(${)p
+Fj(parameter)p Ft(^)p Fj(pattern)p Ft(})150 4354 y(${)p
+Fj(parameter)p Ft(^^)p Fj(pattern)p Ft(})150 4463 y(${)p
+Fj(parameter)p Ft(,)p Fj(pattern)p Ft(})150 4573 y(${)p
+Fj(parameter)p Ft(,,)p Fj(pattern)p Ft(})630 4682 y Fu(This)36
 b(expansion)g(mo)s(di\014es)g(the)g(case)i(of)f(alphab)s(etic)g(c)m
-(haracters)h(in)e Fr(parameter)p Fu(.)59 b(The)630 2107
+(haracters)h(in)e Fr(parameter)p Fu(.)59 b(The)630 4792
 y Fr(pattern)33 b Fu(is)g(expanded)e(to)j(pro)s(duce)d(a)j(pattern)e
 (just)g(as)h(in)g(\014lename)g(expansion.)47 b(Eac)m(h)630
-2217 y(c)m(haracter)32 b(in)e(the)g(expanded)f(v)-5 b(alue)31
+4902 y(c)m(haracter)32 b(in)e(the)g(expanded)f(v)-5 b(alue)31
 b(of)f Fr(parameter)37 b Fu(is)30 b(tested)h(against)h
-Fr(pattern)p Fu(,)e(and,)g(if)630 2326 y(it)j(matc)m(hes)h(the)g
+Fr(pattern)p Fu(,)e(and,)g(if)630 5011 y(it)j(matc)m(hes)h(the)g
 (pattern,)f(its)h(case)g(is)f(con)m(v)m(erted.)49 b(The)33
-b(pattern)g(should)f(not)h(attempt)630 2436 y(to)f(matc)m(h)g(more)f
+b(pattern)g(should)f(not)h(attempt)630 5121 y(to)f(matc)m(h)g(more)f
 (than)g(one)g(c)m(haracter.)44 b(The)30 b(`)p Ft(^)p
 Fu(')i(op)s(erator)f(con)m(v)m(erts)h(lo)m(w)m(ercase)i(letters)630
-2545 y(matc)m(hing)i Fr(pattern)f Fu(to)h(upp)s(ercase;)h(the)e(`)p
+5230 y(matc)m(hing)i Fr(pattern)f Fu(to)h(upp)s(ercase;)h(the)e(`)p
 Ft(,)p Fu(')g(op)s(erator)g(con)m(v)m(erts)i(matc)m(hing)f(upp)s
-(ercase)630 2655 y(letters)e(to)f(lo)m(w)m(ercase.)50
+(ercase)630 5340 y(letters)e(to)f(lo)m(w)m(ercase.)50
 b(The)32 b(`)p Ft(^^)p Fu(')h(and)f(`)p Ft(,,)p Fu(')g(expansions)h
-(con)m(v)m(ert)h(eac)m(h)g(matc)m(hed)f(c)m(har-)630
-2765 y(acter)c(in)f(the)h(expanded)e(v)-5 b(alue;)30
-b(the)e(`)p Ft(^)p Fu(')g(and)g(`)p Ft(,)p Fu(')g(expansions)g(matc)m
-(h)h(and)f(con)m(v)m(ert)i(only)630 2874 y(the)37 b(\014rst)g(c)m
-(haracter)i(in)e(the)g(expanded)g(v)-5 b(alue.)61 b(If)37
-b Fr(pattern)g Fu(is)h(omitted,)i(it)e(is)f(treated)630
-2984 y(lik)m(e)h(a)f(`)p Ft(?)p Fu(',)i(whic)m(h)d(matc)m(hes)i(ev)m
-(ery)f(c)m(haracter.)61 b(If)37 b Fr(parameter)43 b Fu(is)37
-b(`)p Ft(@)p Fu(')g(or)f(`)p Ft(*)p Fu(',)j(the)e(case)630
-3093 y(mo)s(di\014cation)29 b(op)s(eration)f(is)g(applied)g(to)h(eac)m
-(h)h(p)s(ositional)f(parameter)f(in)g(turn,)g(and)g(the)630
-3203 y(expansion)38 b(is)g(the)g(resultan)m(t)h(list.)65
-b(If)37 b Fr(parameter)46 b Fu(is)38 b(an)g(arra)m(y)g(v)-5
-b(ariable)39 b(subscripted)630 3313 y(with)26 b(`)p Ft(@)p
-Fu(')f(or)h(`)p Ft(*)p Fu(',)h(the)f(case)h(mo)s(di\014cation)f(op)s
-(eration)h(is)e(applied)h(to)h(eac)m(h)g(mem)m(b)s(er)e(of)h(the)630
-3422 y(arra)m(y)31 b(in)f(turn,)f(and)h(the)h(expansion)f(is)g(the)h
-(resultan)m(t)g(list.)150 3587 y Ft(${)p Fj(parameter)p
-Ft(@)p Fj(operator)p Ft(})630 3696 y Fu(The)d(expansion)h(is)f(either)h
-(a)g(transformation)g(of)g(the)g(v)-5 b(alue)29 b(of)g
-Fr(parameter)35 b Fu(or)29 b(informa-)630 3806 y(tion)e(ab)s(out)f
-Fr(parameter)33 b Fu(itself,)28 b(dep)s(ending)c(on)i(the)h(v)-5
-b(alue)26 b(of)h Fr(op)s(erator)p Fu(.)39 b(Eac)m(h)27
-b Fr(op)s(erator)630 3915 y Fu(is)j(a)h(single)g(letter:)630
-4080 y Ft(Q)432 b Fu(The)30 b(expansion)h(is)g(a)g(string)f(that)i(is)f
-(the)g(v)-5 b(alue)31 b(of)g Fr(parameter)37 b Fu(quoted)31
-b(in)1110 4189 y(a)g(format)f(that)h(can)g(b)s(e)f(reused)f(as)i
-(input.)630 4354 y Ft(E)432 b Fu(The)27 b(expansion)g(is)g(a)g(string)h
-(that)f(is)h(the)f(v)-5 b(alue)28 b(of)f Fr(parameter)34
-b Fu(with)27 b(bac)m(k-)1110 4463 y(slash)e(escap)s(e)h(sequences)f
-(expanded)g(as)g(with)g(the)h Ft($'...)o(')e Fu(quoting)i(mec)m(h-)1110
-4573 y(anism.)630 4737 y Ft(P)432 b Fu(The)22 b(expansion)h(is)g(a)g
-(string)g(that)g(is)g(the)g(result)g(of)g(expanding)f(the)h(v)-5
-b(alue)24 b(of)1110 4847 y Fr(parameter)31 b Fu(as)24
-b(if)f(it)h(w)m(ere)g(a)g(prompt)f(string)h(\(see)g(Section)h(6.9)g
-([Con)m(trolling)1110 4956 y(the)31 b(Prompt],)f(page)h(96\).)630
-5121 y Ft(A)432 b Fu(The)24 b(expansion)g(is)g(a)h(string)f(in)g(the)g
-(form)g(of)h(an)f(assignmen)m(t)h(statemen)m(t)h(or)1110
-5230 y Ft(declare)h Fu(command)i(that,)h(if)f(ev)-5 b(aluated,)31
-b(will)e(recreate)i Fr(parameter)36 b Fu(with)1110 5340
-y(its)31 b(attributes)g(and)e(v)-5 b(alue.)p eop end
+(con)m(v)m(ert)h(eac)m(h)g(matc)m(hed)f(c)m(har-)p eop
+end
 %%Page: 30 36
 TeXDict begin 30 35 bop 150 -116 a Fu(Chapter)30 b(3:)41
 b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(30)630 299
-y Ft(a)432 b Fu(The)30 b(expansion)g(is)g(a)h(string)f(consisting)h(of)
-g(\015ag)g(v)-5 b(alues)30 b(represen)m(ting)h Fr(pa-)1110
-408 y(rameter)7 b Fu('s)31 b(attributes.)630 563 y(If)e
+y(acter)29 b(in)f(the)h(expanded)e(v)-5 b(alue;)30 b(the)e(`)p
+Ft(^)p Fu(')g(and)g(`)p Ft(,)p Fu(')g(expansions)g(matc)m(h)h(and)f
+(con)m(v)m(ert)i(only)630 408 y(the)37 b(\014rst)g(c)m(haracter)i(in)e
+(the)g(expanded)g(v)-5 b(alue.)61 b(If)37 b Fr(pattern)g
+Fu(is)h(omitted,)i(it)e(is)f(treated)630 518 y(lik)m(e)h(a)f(`)p
+Ft(?)p Fu(',)i(whic)m(h)d(matc)m(hes)i(ev)m(ery)f(c)m(haracter.)61
+b(If)37 b Fr(parameter)43 b Fu(is)37 b(`)p Ft(@)p Fu(')g(or)f(`)p
+Ft(*)p Fu(',)j(the)e(case)630 628 y(mo)s(di\014cation)29
+b(op)s(eration)f(is)g(applied)g(to)h(eac)m(h)h(p)s(ositional)f
+(parameter)f(in)g(turn,)g(and)g(the)630 737 y(expansion)38
+b(is)g(the)g(resultan)m(t)h(list.)65 b(If)37 b Fr(parameter)46
+b Fu(is)38 b(an)g(arra)m(y)g(v)-5 b(ariable)39 b(subscripted)630
+847 y(with)26 b(`)p Ft(@)p Fu(')f(or)h(`)p Ft(*)p Fu(',)h(the)f(case)h
+(mo)s(di\014cation)f(op)s(eration)h(is)e(applied)h(to)h(eac)m(h)g(mem)m
+(b)s(er)e(of)h(the)630 956 y(arra)m(y)31 b(in)f(turn,)f(and)h(the)h
+(expansion)f(is)g(the)h(resultan)m(t)g(list.)150 1120
+y Ft(${)p Fj(parameter)p Ft(@)p Fj(operator)p Ft(})630
+1230 y Fu(The)d(expansion)h(is)f(either)h(a)g(transformation)g(of)g
+(the)g(v)-5 b(alue)29 b(of)g Fr(parameter)35 b Fu(or)29
+b(informa-)630 1340 y(tion)e(ab)s(out)f Fr(parameter)33
+b Fu(itself,)28 b(dep)s(ending)c(on)i(the)h(v)-5 b(alue)26
+b(of)h Fr(op)s(erator)p Fu(.)39 b(Eac)m(h)27 b Fr(op)s(erator)630
+1449 y Fu(is)j(a)h(single)g(letter:)630 1613 y Ft(Q)432
+b Fu(The)30 b(expansion)h(is)g(a)g(string)f(that)i(is)f(the)g(v)-5
+b(alue)31 b(of)g Fr(parameter)37 b Fu(quoted)31 b(in)1110
+1723 y(a)g(format)f(that)h(can)g(b)s(e)f(reused)f(as)i(input.)630
+1887 y Ft(E)432 b Fu(The)27 b(expansion)g(is)g(a)g(string)h(that)f(is)h
+(the)f(v)-5 b(alue)28 b(of)f Fr(parameter)34 b Fu(with)27
+b(bac)m(k-)1110 1996 y(slash)e(escap)s(e)h(sequences)f(expanded)g(as)g
+(with)g(the)h Ft($'...)o(')e Fu(quoting)i(mec)m(h-)1110
+2106 y(anism.)630 2270 y Ft(P)432 b Fu(The)22 b(expansion)h(is)g(a)g
+(string)g(that)g(is)g(the)g(result)g(of)g(expanding)f(the)h(v)-5
+b(alue)24 b(of)1110 2379 y Fr(parameter)31 b Fu(as)24
+b(if)f(it)h(w)m(ere)g(a)g(prompt)f(string)h(\(see)g(Section)h(6.9)g
+([Con)m(trolling)1110 2489 y(the)31 b(Prompt],)f(page)h(96\).)630
+2653 y Ft(A)432 b Fu(The)24 b(expansion)g(is)g(a)h(string)f(in)g(the)g
+(form)g(of)h(an)f(assignmen)m(t)h(statemen)m(t)h(or)1110
+2763 y Ft(declare)h Fu(command)i(that,)h(if)f(ev)-5 b(aluated,)31
+b(will)e(recreate)i Fr(parameter)36 b Fu(with)1110 2872
+y(its)31 b(attributes)g(and)e(v)-5 b(alue.)630 3036 y
+Ft(a)432 b Fu(The)30 b(expansion)g(is)g(a)h(string)f(consisting)h(of)g
+(\015ag)g(v)-5 b(alues)30 b(represen)m(ting)h Fr(pa-)1110
+3146 y(rameter)7 b Fu('s)31 b(attributes.)630 3310 y(If)e
 Fr(parameter)37 b Fu(is)30 b(`)p Ft(@)p Fu(')g(or)g(`)p
 Ft(*)p Fu(',)g(the)g(op)s(eration)g(is)g(applied)f(to)i(eac)m(h)g(p)s
-(ositional)f(parameter)630 672 y(in)24 b(turn,)g(and)f(the)h(expansion)
-g(is)g(the)g(resultan)m(t)h(list.)39 b(If)23 b Fr(parameter)31
-b Fu(is)24 b(an)g(arra)m(y)g(v)-5 b(ariable)630 782 y(subscripted)24
-b(with)h(`)p Ft(@)p Fu(')h(or)g(`)p Ft(*)p Fu(',)h(the)e(op)s(eration)h
-(is)g(applied)f(to)h(eac)m(h)h(mem)m(b)s(er)e(of)h(the)f(arra)m(y)630
-892 y(in)30 b(turn,)g(and)f(the)i(expansion)f(is)h(the)f(resultan)m(t)h
-(list.)630 1024 y(The)22 b(result)g(of)g(the)h(expansion)f(is)g(sub)5
+(ositional)f(parameter)630 3419 y(in)24 b(turn,)g(and)f(the)h
+(expansion)g(is)g(the)g(resultan)m(t)h(list.)39 b(If)23
+b Fr(parameter)31 b Fu(is)24 b(an)g(arra)m(y)g(v)-5 b(ariable)630
+3529 y(subscripted)24 b(with)h(`)p Ft(@)p Fu(')h(or)g(`)p
+Ft(*)p Fu(',)h(the)e(op)s(eration)h(is)g(applied)f(to)h(eac)m(h)h(mem)m
+(b)s(er)e(of)h(the)f(arra)m(y)630 3639 y(in)30 b(turn,)g(and)f(the)i
+(expansion)f(is)h(the)f(resultan)m(t)h(list.)630 3775
+y(The)22 b(result)g(of)g(the)h(expansion)f(is)g(sub)5
 b(ject)22 b(to)h(w)m(ord)f(splitting)g(and)g(pathname)g(expansion)630
-1133 y(as)31 b(describ)s(ed)e(b)s(elo)m(w.)150 1328 y
-Fk(3.5.4)63 b(Command)41 b(Substitution)150 1474 y Fu(Command)f
+3885 y(as)31 b(describ)s(ed)e(b)s(elo)m(w.)150 4089 y
+Fk(3.5.4)63 b(Command)41 b(Substitution)150 4236 y Fu(Command)f
 (substitution)h(allo)m(ws)i(the)e(output)g(of)h(a)f(command)g(to)h
-(replace)g(the)g(command)f(itself.)150 1584 y(Command)29
+(replace)g(the)g(command)f(itself.)150 4345 y(Command)29
 b(substitution)h(o)s(ccurs)h(when)e(a)i(command)f(is)g(enclosed)h(as)g
-(follo)m(ws:)390 1716 y Ft($\()p Fj(command)p Ft(\))150
-1848 y Fu(or)390 1980 y Ft(`)p Fj(command)p Ft(`)150
-2112 y Fu(Bash)20 b(p)s(erforms)f(the)i(expansion)f(b)m(y)g(executing)i
+(follo)m(ws:)390 4484 y Ft($\()p Fj(command)p Ft(\))150
+4623 y Fu(or)390 4763 y Ft(`)p Fj(command)p Ft(`)150
+4902 y Fu(Bash)20 b(p)s(erforms)f(the)i(expansion)f(b)m(y)g(executing)i
 Fr(command)h Fu(in)d(a)h(subshell)e(en)m(vironmen)m(t)i(and)f
-(replacing)150 2222 y(the)40 b(command)g(substitution)f(with)h(the)g
+(replacing)150 5011 y(the)40 b(command)g(substitution)f(with)h(the)g
 (standard)f(output)g(of)h(the)g(command,)i(with)e(an)m(y)g(trailing)150
-2331 y(newlines)e(deleted.)64 b(Em)m(b)s(edded)37 b(newlines)h(are)g
+5121 y(newlines)e(deleted.)64 b(Em)m(b)s(edded)37 b(newlines)h(are)g
 (not)g(deleted,)j(but)d(they)g(ma)m(y)h(b)s(e)e(remo)m(v)m(ed)i(during)
-150 2441 y(w)m(ord)30 b(splitting.)42 b(The)30 b(command)g
+150 5230 y(w)m(ord)30 b(splitting.)42 b(The)30 b(command)g
 (substitution)h Ft($\(cat)e Fj(file)p Ft(\))g Fu(can)h(b)s(e)g
-(replaced)h(b)m(y)g(the)f(equiv)-5 b(alen)m(t)150 2550
-y(but)30 b(faster)g Ft($\(<)g Fj(file)p Ft(\))p Fu(.)275
-2682 y(When)j(the)i(old-st)m(yle)h(bac)m(kquote)f(form)f(of)g
+(replaced)h(b)m(y)g(the)f(equiv)-5 b(alen)m(t)150 5340
+y(but)30 b(faster)g Ft($\(<)g Fj(file)p Ft(\))p Fu(.)p
+eop end
+%%Page: 31 37
+TeXDict begin 31 36 bop 150 -116 a Fu(Chapter)30 b(3:)41
+b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(31)275 299
+y(When)33 b(the)i(old-st)m(yle)h(bac)m(kquote)f(form)f(of)g
 (substitution)g(is)g(used,)h(bac)m(kslash)f(retains)h(its)f(literal)150
-2792 y(meaning)k(except)h(when)e(follo)m(w)m(ed)j(b)m(y)e(`)p
+408 y(meaning)k(except)h(when)e(follo)m(w)m(ed)j(b)m(y)e(`)p
 Ft($)p Fu(',)j(`)p Ft(`)p Fu(',)f(or)e(`)p Ft(\\)p Fu('.)64
 b(The)38 b(\014rst)f(bac)m(kquote)j(not)e(preceded)g(b)m(y)g(a)150
-2902 y(bac)m(kslash)k(terminates)f(the)h(command)e(substitution.)72
+518 y(bac)m(kslash)k(terminates)f(the)h(command)e(substitution.)72
 b(When)41 b(using)f(the)i Ft($\()p Fj(command)p Ft(\))c
-Fu(form,)43 b(all)150 3011 y(c)m(haracters)32 b(b)s(et)m(w)m(een)f(the)
-f(paren)m(theses)h(mak)m(e)g(up)f(the)g(command;)h(none)f(are)h
-(treated)g(sp)s(ecially)-8 b(.)275 3143 y(Command)22
-b(substitutions)g(ma)m(y)i(b)s(e)e(nested.)39 b(T)-8
-b(o)23 b(nest)g(when)f(using)h(the)g(bac)m(kquoted)h(form,)g(escap)s(e)
-150 3253 y(the)31 b(inner)e(bac)m(kquotes)j(with)e(bac)m(kslashes.)275
-3385 y(If)e(the)i(substitution)e(app)s(ears)h(within)g(double)f
-(quotes,)i(w)m(ord)f(splitting)h(and)f(\014lename)g(expansion)150
-3494 y(are)i(not)f(p)s(erformed)f(on)h(the)h(results.)150
-3689 y Fk(3.5.5)63 b(Arithmetic)40 b(Expansion)150 3836
-y Fu(Arithmetic)25 b(expansion)g(allo)m(ws)g(the)g(ev)-5
+Fu(form,)43 b(all)150 628 y(c)m(haracters)32 b(b)s(et)m(w)m(een)f(the)f
+(paren)m(theses)h(mak)m(e)g(up)f(the)g(command;)h(none)f(are)h(treated)
+g(sp)s(ecially)-8 b(.)275 762 y(Command)22 b(substitutions)g(ma)m(y)i
+(b)s(e)e(nested.)39 b(T)-8 b(o)23 b(nest)g(when)f(using)h(the)g(bac)m
+(kquoted)h(form,)g(escap)s(e)150 872 y(the)31 b(inner)e(bac)m(kquotes)j
+(with)e(bac)m(kslashes.)275 1007 y(If)e(the)i(substitution)e(app)s
+(ears)h(within)g(double)f(quotes,)i(w)m(ord)f(splitting)h(and)f
+(\014lename)g(expansion)150 1116 y(are)i(not)f(p)s(erformed)f(on)h(the)
+h(results.)150 1316 y Fk(3.5.5)63 b(Arithmetic)40 b(Expansion)150
+1463 y Fu(Arithmetic)25 b(expansion)g(allo)m(ws)g(the)g(ev)-5
 b(aluation)26 b(of)f(an)f(arithmetic)i(expression)e(and)g(the)g
-(substitution)150 3945 y(of)31 b(the)f(result.)41 b(The)30
-b(format)g(for)g(arithmetic)i(expansion)e(is:)390 4077
-y Ft($\(\()47 b Fj(expression)e Ft(\)\))275 4209 y Fu(The)33
+(substitution)150 1572 y(of)31 b(the)f(result.)41 b(The)30
+b(format)g(for)g(arithmetic)i(expansion)e(is:)390 1707
+y Ft($\(\()47 b Fj(expression)e Ft(\)\))275 1841 y Fu(The)33
 b(expression)g(is)h(treated)g(as)g(if)g(it)g(w)m(ere)g(within)f(double)
-h(quotes,)h(but)e(a)h(double)f(quote)h(inside)150 4319
+h(quotes,)h(but)e(a)h(double)f(quote)h(inside)150 1951
 y(the)k(paren)m(theses)g(is)g(not)g(treated)h(sp)s(ecially)-8
 b(.)65 b(All)38 b(tok)m(ens)h(in)f(the)g(expression)f(undergo)g
-(parameter)150 4428 y(and)26 b(v)-5 b(ariable)28 b(expansion,)g
+(parameter)150 2061 y(and)26 b(v)-5 b(ariable)28 b(expansion,)g
 (command)e(substitution,)i(and)e(quote)i(remo)m(v)-5
-b(al.)41 b(The)26 b(result)h(is)g(treated)h(as)150 4538
+b(al.)41 b(The)26 b(result)h(is)g(treated)h(as)150 2170
 y(the)j(arithmetic)g(expression)f(to)h(b)s(e)f(ev)-5
 b(aluated.)42 b(Arithmetic)31 b(expansions)g(ma)m(y)g(b)s(e)e(nested.)
-275 4670 y(The)34 b(ev)-5 b(aluation)37 b(is)f(p)s(erformed)e
+275 2305 y(The)34 b(ev)-5 b(aluation)37 b(is)f(p)s(erformed)e
 (according)i(to)g(the)g(rules)f(listed)h(b)s(elo)m(w)g(\(see)g(Section)
-g(6.5)h([Shell)150 4780 y(Arithmetic],)32 b(page)f(91\).)42
+g(6.5)h([Shell)150 2415 y(Arithmetic],)32 b(page)f(91\).)42
 b(If)30 b(the)h(expression)f(is)g(in)m(v)-5 b(alid,)32
 b(Bash)e(prin)m(ts)g(a)h(message)g(indicating)h(failure)150
-4889 y(to)f(the)g(standard)e(error)h(and)g(no)g(substitution)g(o)s
-(ccurs.)150 5083 y Fk(3.5.6)63 b(Pro)s(cess)42 b(Substitution)150
-5230 y Fu(Pro)s(cess)33 b(substitution)g(allo)m(ws)i(a)e(pro)s(cess's)g
+2524 y(to)f(the)g(standard)e(error)h(and)g(no)g(substitution)g(o)s
+(ccurs.)150 2724 y Fk(3.5.6)63 b(Pro)s(cess)42 b(Substitution)150
+2870 y Fu(Pro)s(cess)33 b(substitution)g(allo)m(ws)i(a)e(pro)s(cess's)g
 (input)f(or)h(output)g(to)h(b)s(e)f(referred)f(to)i(using)f(a)g
-(\014lename.)150 5340 y(It)d(tak)m(es)i(the)f(form)f(of)p
-eop end
-%%Page: 31 37
-TeXDict begin 31 36 bop 150 -116 a Fu(Chapter)30 b(3:)41
-b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(31)390 299
-y Ft(<\()p Fj(list)p Ft(\))150 447 y Fu(or)390 594 y
-Ft(>\()p Fj(list)p Ft(\))150 742 y Fu(The)28 b(pro)s(cess)h
+(\014lename.)150 2980 y(It)d(tak)m(es)i(the)f(form)f(of)390
+3115 y Ft(<\()p Fj(list)p Ft(\))150 3249 y Fu(or)390
+3384 y Ft(>\()p Fj(list)p Ft(\))150 3519 y Fu(The)e(pro)s(cess)h
 Fr(list)j Fu(is)d(run)e(async)m(hronously)-8 b(,)30 b(and)e(its)i
 (input)e(or)h(output)f(app)s(ears)h(as)g(a)g(\014lename.)41
-b(This)150 852 y(\014lename)25 b(is)g(passed)g(as)g(an)g(argumen)m(t)h
+b(This)150 3628 y(\014lename)25 b(is)g(passed)g(as)g(an)g(argumen)m(t)h
 (to)g(the)f(curren)m(t)g(command)g(as)g(the)g(result)g(of)g(the)h
-(expansion.)38 b(If)150 961 y(the)28 b Ft(>\()p Fj(list)p
+(expansion.)38 b(If)150 3738 y(the)28 b Ft(>\()p Fj(list)p
 Ft(\))d Fu(form)i(is)g(used,)h(writing)f(to)h(the)g(\014le)f(will)h
 (pro)m(vide)g(input)e(for)h Fr(list)p Fu(.)41 b(If)26
-b(the)i Ft(<\()p Fj(list)p Ft(\))d Fu(form)150 1071 y(is)g(used,)g(the)
+b(the)i Ft(<\()p Fj(list)p Ft(\))d Fu(form)150 3848 y(is)g(used,)g(the)
 f(\014le)h(passed)f(as)h(an)f(argumen)m(t)h(should)e(b)s(e)h(read)h(to)
 g(obtain)g(the)f(output)g(of)h Fr(list)p Fu(.)40 b(Note)25
-b(that)150 1181 y(no)33 b(space)g(ma)m(y)g(app)s(ear)f(b)s(et)m(w)m
+b(that)150 3957 y(no)33 b(space)g(ma)m(y)g(app)s(ear)f(b)s(et)m(w)m
 (een)i(the)f Ft(<)f Fu(or)h Ft(>)f Fu(and)g(the)h(left)h(paren)m
-(thesis,)f(otherwise)h(the)f(construct)150 1290 y(w)m(ould)j(b)s(e)g
+(thesis,)f(otherwise)h(the)f(construct)150 4067 y(w)m(ould)j(b)s(e)g
 (in)m(terpreted)g(as)h(a)f(redirection.)59 b(Pro)s(cess)36
 b(substitution)g(is)h(supp)s(orted)d(on)i(systems)g(that)150
-1400 y(supp)s(ort)29 b(named)h(pip)s(es)f(\()p Fm(fif)n(o)p
+4176 y(supp)s(ort)29 b(named)h(pip)s(es)f(\()p Fm(fif)n(o)p
 Fu(s\))h(or)h(the)f Ft(/dev/fd)f Fu(metho)s(d)h(of)g(naming)g(op)s(en)g
-(\014les.)275 1548 y(When)36 b(a)m(v)-5 b(ailable,)40
+(\014les.)275 4311 y(When)36 b(a)m(v)-5 b(ailable,)40
 b(pro)s(cess)c(substitution)h(is)f(p)s(erformed)f(sim)m(ultaneously)i
-(with)g(parameter)g(and)150 1657 y(v)-5 b(ariable)31
+(with)g(parameter)g(and)150 4421 y(v)-5 b(ariable)31
 b(expansion,)g(command)f(substitution,)g(and)g(arithmetic)i(expansion.)
-150 1870 y Fk(3.5.7)63 b(W)-10 b(ord)41 b(Splitting)150
-2017 y Fu(The)30 b(shell)h(scans)g(the)g(results)f(of)h(parameter)g
+150 4620 y Fk(3.5.7)63 b(W)-10 b(ord)41 b(Splitting)150
+4767 y Fu(The)30 b(shell)h(scans)g(the)g(results)f(of)h(parameter)g
 (expansion,)g(command)g(substitution,)g(and)f(arithmetic)150
-2126 y(expansion)g(that)h(did)f(not)g(o)s(ccur)h(within)e(double)h
-(quotes)h(for)f(w)m(ord)g(splitting.)275 2274 y(The)e(shell)g(treats)i
+4877 y(expansion)g(that)h(did)f(not)g(o)s(ccur)h(within)e(double)h
+(quotes)h(for)f(w)m(ord)g(splitting.)275 5011 y(The)e(shell)g(treats)i
 (eac)m(h)g(c)m(haracter)g(of)f Ft($IFS)e Fu(as)i(a)g(delimiter,)h(and)e
-(splits)g(the)h(results)f(of)h(the)g(other)150 2384 y(expansions)22
+(splits)g(the)h(results)f(of)h(the)g(other)150 5121 y(expansions)22
 b(in)m(to)i(w)m(ords)e(using)h(these)g(c)m(haracters)h(as)f(\014eld)f
 (terminators.)39 b(If)22 b Ft(IFS)g Fu(is)h(unset,)h(or)e(its)h(v)-5
-b(alue)150 2493 y(is)36 b(exactly)j Ft(<space><tab><newline>)p
+b(alue)150 5230 y(is)36 b(exactly)j Ft(<space><tab><newline>)p
 Fu(,)32 b(the)37 b(default,)h(then)e(sequences)h(of)67
-b Ft(<space>)p Fu(,)36 b Ft(<tab>)p Fu(,)h(and)150 2603
+b Ft(<space>)p Fu(,)36 b Ft(<tab>)p Fu(,)h(and)150 5340
 y Ft(<newline>)28 b Fu(at)k(the)f(b)s(eginning)f(and)h(end)f(of)h(the)g
-(results)g(of)g(the)g(previous)g(expansions)f(are)i(ignored,)150
-2712 y(and)k(an)m(y)h(sequence)h(of)f Ft(IFS)f Fu(c)m(haracters)i(not)f
+(results)g(of)g(the)g(previous)g(expansions)f(are)i(ignored,)p
+eop end
+%%Page: 32 38
+TeXDict begin 32 37 bop 150 -116 a Fu(Chapter)30 b(3:)41
+b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(32)150 299
+y(and)36 b(an)m(y)h(sequence)h(of)f Ft(IFS)f Fu(c)m(haracters)i(not)f
 (at)h(the)f(b)s(eginning)f(or)h(end)f(serv)m(es)h(to)h(delimit)f(w)m
-(ords.)150 2822 y(If)43 b Ft(IFS)f Fu(has)h(a)h(v)-5
-b(alue)43 b(other)h(than)f(the)g(default,)k(then)c(sequences)h(of)f
-(the)h(whitespace)f(c)m(haracters)150 2932 y Ft(space)p
-Fu(,)29 b Ft(tab)p Fu(,)h(and)g Ft(newline)e Fu(are)j(ignored)g(at)g
-(the)f(b)s(eginning)g(and)g(end)g(of)g(the)h(w)m(ord,)f(as)h(long)g(as)
-g(the)150 3041 y(whitespace)c(c)m(haracter)h(is)f(in)f(the)g(v)-5
+(ords.)150 408 y(If)43 b Ft(IFS)f Fu(has)h(a)h(v)-5 b(alue)43
+b(other)h(than)f(the)g(default,)k(then)c(sequences)h(of)f(the)h
+(whitespace)f(c)m(haracters)150 518 y Ft(space)p Fu(,)29
+b Ft(tab)p Fu(,)h(and)g Ft(newline)e Fu(are)j(ignored)g(at)g(the)f(b)s
+(eginning)g(and)g(end)g(of)g(the)h(w)m(ord,)f(as)h(long)g(as)g(the)150
+628 y(whitespace)c(c)m(haracter)h(is)f(in)f(the)g(v)-5
 b(alue)27 b(of)g Ft(IFS)e Fu(\(an)i Ft(IFS)e Fu(whitespace)i(c)m
-(haracter\).)42 b(An)m(y)26 b(c)m(haracter)i(in)150 3151
+(haracter\).)42 b(An)m(y)26 b(c)m(haracter)i(in)150 737
 y Ft(IFS)c Fu(that)h(is)g(not)f Ft(IFS)g Fu(whitespace,)j(along)f(with)
 e(an)m(y)h(adjacen)m(t)h Ft(IFS)e Fu(whitespace)h(c)m(haracters,)i
-(delimits)150 3260 y(a)k(\014eld.)40 b(A)31 b(sequence)g(of)f
+(delimits)150 847 y(a)k(\014eld.)40 b(A)31 b(sequence)g(of)f
 Ft(IFS)g Fu(whitespace)h(c)m(haracters)h(is)e(also)h(treated)h(as)f(a)f
-(delimiter.)42 b(If)30 b(the)g(v)-5 b(alue)150 3370 y(of)31
+(delimiter.)42 b(If)30 b(the)g(v)-5 b(alue)150 956 y(of)31
 b Ft(IFS)e Fu(is)h(n)m(ull,)h(no)f(w)m(ord)g(splitting)h(o)s(ccurs.)275
-3518 y(Explicit)21 b(n)m(ull)g(argumen)m(ts)g(\()p Ft("")g
+1114 y(Explicit)21 b(n)m(ull)g(argumen)m(ts)g(\()p Ft("")g
 Fu(or)g Ft('')p Fu(\))f(are)h(retained)h(and)e(passed)g(to)i(commands)e
-(as)i(empt)m(y)f(strings.)150 3627 y(Unquoted)37 b(implicit)i(n)m(ull)f
+(as)i(empt)m(y)f(strings.)150 1224 y(Unquoted)37 b(implicit)i(n)m(ull)f
 (argumen)m(ts,)i(resulting)d(from)g(the)h(expansion)g(of)g(parameters)f
-(that)i(ha)m(v)m(e)150 3737 y(no)32 b(v)-5 b(alues,)33
+(that)i(ha)m(v)m(e)150 1333 y(no)32 b(v)-5 b(alues,)33
 b(are)f(remo)m(v)m(ed.)47 b(If)32 b(a)g(parameter)h(with)e(no)h(v)-5
 b(alue)33 b(is)f(expanded)f(within)h(double)f(quotes,)j(a)150
-3846 y(n)m(ull)c(argumen)m(t)g(results)g(and)f(is)h(retained)g(and)f
+1443 y(n)m(ull)c(argumen)m(t)g(results)g(and)f(is)h(retained)g(and)f
 (passed)g(to)i(a)f(command)g(as)g(an)f(empt)m(y)i(string.)40
-b(When)150 3956 y(a)f(quoted)f(n)m(ull)g(argumen)m(t)h(app)s(ears)e(as)
+b(When)150 1552 y(a)f(quoted)f(n)m(ull)g(argumen)m(t)h(app)s(ears)e(as)
 i(part)f(of)g(a)g(w)m(ord)g(whose)g(expansion)g(is)h(non-n)m(ull,)h
-(the)e(n)m(ull)150 4066 y(argumen)m(t)i(is)f(remo)m(v)m(ed.)69
+(the)e(n)m(ull)150 1662 y(argumen)m(t)i(is)f(remo)m(v)m(ed.)69
 b(That)39 b(is,)j(the)e(w)m(ord)f Ft(-d'')f Fu(b)s(ecomes)i
 Ft(-d)e Fu(after)i(w)m(ord)f(splitting)h(and)f(n)m(ull)150
-4175 y(argumen)m(t)31 b(remo)m(v)-5 b(al.)275 4323 y(Note)31
+1772 y(argumen)m(t)31 b(remo)m(v)-5 b(al.)275 1929 y(Note)31
 b(that)g(if)g(no)f(expansion)g(o)s(ccurs,)g(no)h(splitting)g(is)f(p)s
-(erformed.)150 4535 y Fk(3.5.8)63 b(Filename)41 b(Expansion)150
-4682 y Fu(After)30 b(w)m(ord)f(splitting,)i(unless)d(the)i
+(erformed.)150 2152 y Fk(3.5.8)63 b(Filename)41 b(Expansion)150
+2299 y Fu(After)30 b(w)m(ord)f(splitting,)i(unless)d(the)i
 Ft(-f)f Fu(option)h(has)f(b)s(een)g(set)h(\(see)g(Section)h(4.3.1)g
-([The)e(Set)h(Builtin],)150 4792 y(page)d(61\),)i(Bash)d(scans)h(eac)m
+([The)e(Set)h(Builtin],)150 2408 y(page)d(61\),)i(Bash)d(scans)h(eac)m
 (h)h(w)m(ord)e(for)g(the)h(c)m(haracters)g(`)p Ft(*)p
 Fu(',)h(`)p Ft(?)p Fu(',)g(and)e(`)p Ft([)p Fu('.)39
-b(If)26 b(one)h(of)g(these)f(c)m(haracters)150 4902 y(app)s(ears,)h
+b(If)26 b(one)h(of)g(these)f(c)m(haracters)150 2518 y(app)s(ears,)h
 (then)f(the)h(w)m(ord)f(is)h(regarded)g(as)g(a)g Fr(pattern)p
 Fu(,)g(and)g(replaced)g(with)f(an)h(alphab)s(etically)h(sorted)150
-5011 y(list)k(of)f(\014lenames)g(matc)m(hing)h(the)f(pattern)g(\(see)h
-(Section)f(3.5.8.1)j([P)m(attern)e(Matc)m(hing],)h(page)f(32\).)43
-b(If)150 5121 y(no)26 b(matc)m(hing)i(\014lenames)e(are)h(found,)f(and)
+2627 y(list)k(of)f(\014lenames)g(matc)m(hing)h(the)f(pattern)g(\(see)h
+(Section)f(3.5.8.1)j([P)m(attern)e(Matc)m(hing],)h(page)f(33\).)43
+b(If)150 2737 y(no)26 b(matc)m(hing)i(\014lenames)e(are)h(found,)f(and)
 g(the)h(shell)f(option)h Ft(nullglob)d Fu(is)j(disabled,)g(the)g(w)m
-(ord)f(is)g(left)150 5230 y(unc)m(hanged.)40 b(If)30
+(ord)f(is)g(left)150 2846 y(unc)m(hanged.)40 b(If)30
 b(the)g Ft(nullglob)e Fu(option)i(is)h(set,)f(and)g(no)g(matc)m(hes)h
 (are)g(found,)e(the)h(w)m(ord)g(is)g(remo)m(v)m(ed.)150
-5340 y(If)i(the)g Ft(failglob)e Fu(shell)i(option)h(is)f(set,)h(and)f
+2956 y(If)i(the)g Ft(failglob)e Fu(shell)i(option)h(is)f(set,)h(and)f
 (no)g(matc)m(hes)h(are)g(found,)e(an)h(error)g(message)h(is)f(prin)m
-(ted)p eop end
-%%Page: 32 38
-TeXDict begin 32 37 bop 150 -116 a Fu(Chapter)30 b(3:)41
-b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(32)150 299
-y(and)30 b(the)g(command)g(is)h(not)f(executed.)42 b(If)30
-b(the)g(shell)h(option)g Ft(nocaseglob)c Fu(is)k(enabled,)f(the)h(matc)
-m(h)g(is)150 408 y(p)s(erformed)e(without)h(regard)h(to)g(the)f(case)i
-(of)e(alphab)s(etic)h(c)m(haracters.)275 544 y(When)23
-b(a)h(pattern)f(is)h(used)f(for)g(\014lename)h(expansion,)h(the)e(c)m
-(haracter)i(`)p Ft(.)p Fu(')f(at)g(the)g(start)g(of)g(a)g(\014lename)
-150 654 y(or)f(immediately)i(follo)m(wing)g(a)f(slash)f(m)m(ust)h(b)s
-(e)f(matc)m(hed)h(explicitly)-8 b(,)27 b(unless)c(the)g(shell)h(option)
-g Ft(dotglob)150 763 y Fu(is)k(set.)41 b(The)28 b(\014lenames)g(`)p
-Ft(.)p Fu(')g(and)g(`)p Ft(..)p Fu(')g(m)m(ust)g(alw)m(a)m(ys)i(b)s(e)e
-(matc)m(hed)h(explicitly)-8 b(,)30 b(ev)m(en)f(if)g Ft(dotglob)d
-Fu(is)i(set.)150 873 y(In)i(other)g(cases,)i(the)e(`)p
+(ted)150 3066 y(and)e(the)g(command)g(is)h(not)f(executed.)42
+b(If)30 b(the)g(shell)h(option)g Ft(nocaseglob)c Fu(is)k(enabled,)f
+(the)h(matc)m(h)g(is)150 3175 y(p)s(erformed)e(without)h(regard)h(to)g
+(the)f(case)i(of)e(alphab)s(etic)h(c)m(haracters.)275
+3333 y(When)23 b(a)h(pattern)f(is)h(used)f(for)g(\014lename)h
+(expansion,)h(the)e(c)m(haracter)i(`)p Ft(.)p Fu(')f(at)g(the)g(start)g
+(of)g(a)g(\014lename)150 3442 y(or)f(immediately)i(follo)m(wing)g(a)f
+(slash)f(m)m(ust)h(b)s(e)f(matc)m(hed)h(explicitly)-8
+b(,)27 b(unless)c(the)g(shell)h(option)g Ft(dotglob)150
+3552 y Fu(is)k(set.)41 b(The)28 b(\014lenames)g(`)p Ft(.)p
+Fu(')g(and)g(`)p Ft(..)p Fu(')g(m)m(ust)g(alw)m(a)m(ys)i(b)s(e)e(matc)m
+(hed)h(explicitly)-8 b(,)30 b(ev)m(en)f(if)g Ft(dotglob)d
+Fu(is)i(set.)150 3662 y(In)i(other)g(cases,)i(the)e(`)p
 Ft(.)p Fu(')h(c)m(haracter)h(is)e(not)h(treated)g(sp)s(ecially)-8
-b(.)275 1009 y(When)30 b(matc)m(hing)i(a)f(\014lename,)h(the)f(slash)f
+b(.)275 3819 y(When)30 b(matc)m(hing)i(a)f(\014lename,)h(the)f(slash)f
 (c)m(haracter)j(m)m(ust)d(alw)m(a)m(ys)j(b)s(e)d(matc)m(hed)h
-(explicitly)i(b)m(y)e(a)150 1118 y(slash)d(in)f(the)h(pattern,)h(but)e
+(explicitly)i(b)m(y)e(a)150 3929 y(slash)d(in)f(the)h(pattern,)h(but)e
 (in)h(other)g(matc)m(hing)h(con)m(texts)h(it)e(can)g(b)s(e)g(matc)m
-(hed)g(b)m(y)g(a)g(sp)s(ecial)h(pattern)150 1228 y(c)m(haracter)j(as)f
+(hed)g(b)m(y)g(a)g(sp)s(ecial)h(pattern)150 4038 y(c)m(haracter)j(as)f
 (describ)s(ed)e(b)s(elo)m(w)h(\(see)i(Section)f(3.5.8.1)i([P)m(attern)e
-(Matc)m(hing],)i(page)e(32\).)275 1364 y(See)d(the)g(description)g(of)g
+(Matc)m(hing],)i(page)e(33\).)275 4196 y(See)d(the)g(description)g(of)g
 Ft(shopt)e Fu(in)i(Section)g(4.3.2)i([The)e(Shopt)f(Builtin],)i(page)g
-(65,)g(for)f(a)g(descrip-)150 1473 y(tion)j(of)f(the)h
+(65,)g(for)f(a)g(descrip-)150 4306 y(tion)j(of)f(the)h
 Ft(nocaseglob)p Fu(,)d Ft(nullglob)p Fu(,)g Ft(failglob)p
-Fu(,)h(and)g Ft(dotglob)g Fu(options.)275 1609 y(The)36
+Fu(,)h(and)g Ft(dotglob)g Fu(options.)275 4463 y(The)36
 b Ft(GLOBIGNORE)d Fu(shell)k(v)-5 b(ariable)37 b(ma)m(y)g(b)s(e)f(used)
 g(to)h(restrict)g(the)g(set)g(of)g(\014le)f(names)h(matc)m(hing)150
-1719 y(a)42 b(pattern.)74 b(If)41 b Ft(GLOBIGNORE)e Fu(is)i(set,)k(eac)
+4573 y(a)42 b(pattern.)74 b(If)41 b Ft(GLOBIGNORE)e Fu(is)i(set,)k(eac)
 m(h)e(matc)m(hing)f(\014le)g(name)f(that)h(also)h(matc)m(hes)f(one)g
-(of)g(the)150 1828 y(patterns)34 b(in)g Ft(GLOBIGNORE)d
+(of)g(the)150 4682 y(patterns)34 b(in)g Ft(GLOBIGNORE)d
 Fu(is)k(remo)m(v)m(ed)g(from)f(the)g(list)h(of)f(matc)m(hes.)54
-b(If)33 b(the)i Ft(nocaseglob)c Fu(option)k(is)150 1938
+b(If)33 b(the)i Ft(nocaseglob)c Fu(option)k(is)150 4792
 y(set,)c(the)e(matc)m(hing)i(against)g(the)f(patterns)f(in)h
 Ft(GLOBIGNORE)c Fu(is)k(p)s(erformed)e(without)i(regard)f(to)i(case.)
-150 2047 y(The)d(\014lenames)h Ft(.)g Fu(and)f Ft(..)h
+150 4902 y(The)d(\014lenames)h Ft(.)g Fu(and)f Ft(..)h
 Fu(are)g(alw)m(a)m(ys)h(ignored)f(when)f Ft(GLOBIGNORE)f
 Fu(is)i(set)g(and)f(not)h(n)m(ull.)41 b(Ho)m(w)m(ev)m(er,)150
-2157 y(setting)30 b Ft(GLOBIGNORE)d Fu(to)j(a)f(non-n)m(ull)g(v)-5
+5011 y(setting)30 b Ft(GLOBIGNORE)d Fu(to)j(a)f(non-n)m(ull)g(v)-5
 b(alue)30 b(has)f(the)g(e\013ect)i(of)f(enabling)f(the)h
-Ft(dotglob)d Fu(shell)i(option,)150 2267 y(so)j(all)h(other)f
+Ft(dotglob)d Fu(shell)i(option,)150 5121 y(so)j(all)h(other)f
 (\014lenames)g(b)s(eginning)f(with)h(a)g(`)p Ft(.)p Fu(')g(will)h(matc)
 m(h.)46 b(T)-8 b(o)32 b(get)h(the)f(old)g(b)s(eha)m(vior)g(of)h
-(ignoring)150 2376 y(\014lenames)c(b)s(eginning)f(with)h(a)h(`)p
+(ignoring)150 5230 y(\014lenames)c(b)s(eginning)f(with)h(a)h(`)p
 Ft(.)p Fu(',)f(mak)m(e)h(`)p Ft(.*)p Fu(')f(one)h(of)f(the)g(patterns)g
 (in)g Ft(GLOBIGNORE)p Fu(.)37 b(The)29 b Ft(dotglob)150
-2486 y Fu(option)i(is)f(disabled)g(when)g Ft(GLOBIGNORE)d
-Fu(is)k(unset.)150 2686 y Fk(3.5.8.1)63 b(P)m(attern)40
-b(Matc)m(hing)150 2833 y Fu(An)m(y)24 b(c)m(haracter)h(that)f(app)s
-(ears)f(in)g(a)h(pattern,)i(other)e(than)f(the)h(sp)s(ecial)g(pattern)g
-(c)m(haracters)h(describ)s(ed)150 2943 y(b)s(elo)m(w,)31
-b(matc)m(hes)g(itself.)42 b(The)29 b Fm(nul)h Fu(c)m(haracter)i(ma)m(y)
-e(not)h(o)s(ccur)f(in)g(a)h(pattern.)40 b(A)31 b(bac)m(kslash)g(escap)s
-(es)150 3052 y(the)38 b(follo)m(wing)g(c)m(haracter;)43
-b(the)37 b(escaping)i(bac)m(kslash)e(is)h(discarded)f(when)f(matc)m
-(hing.)63 b(The)36 b(sp)s(ecial)150 3162 y(pattern)30
-b(c)m(haracters)i(m)m(ust)f(b)s(e)e(quoted)i(if)f(they)h(are)f(to)i(b)s
-(e)d(matc)m(hed)i(literally)-8 b(.)275 3298 y(The)29
-b(sp)s(ecial)i(pattern)g(c)m(haracters)h(ha)m(v)m(e)f(the)g(follo)m
-(wing)h(meanings:)150 3459 y Ft(*)432 b Fu(Matc)m(hes)31
-b(an)m(y)e(string,)h(including)f(the)g(n)m(ull)g(string.)41
-b(When)29 b(the)g Ft(globstar)e Fu(shell)i(option)630
-3568 y(is)37 b(enabled,)h(and)e(`)p Ft(*)p Fu(')h(is)g(used)f(in)g(a)h
-(\014lename)g(expansion)g(con)m(text,)j(t)m(w)m(o)e(adjacen)m(t)g(`)p
-Ft(*)p Fu('s)630 3678 y(used)f(as)g(a)h(single)g(pattern)g(will)f(matc)
-m(h)i(all)f(\014les)f(and)g(zero)h(or)g(more)f(directories)i(and)630
-3788 y(sub)s(directories.)g(If)25 b(follo)m(w)m(ed)j(b)m(y)e(a)g(`)p
+5340 y Fu(option)i(is)f(disabled)g(when)g Ft(GLOBIGNORE)d
+Fu(is)k(unset.)p eop end
+%%Page: 33 39
+TeXDict begin 33 38 bop 150 -116 a Fu(Chapter)30 b(3:)41
+b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(33)150 299
+y Fk(3.5.8.1)63 b(P)m(attern)40 b(Matc)m(hing)150 446
+y Fu(An)m(y)24 b(c)m(haracter)h(that)f(app)s(ears)f(in)g(a)h(pattern,)i
+(other)e(than)f(the)h(sp)s(ecial)g(pattern)g(c)m(haracters)h(describ)s
+(ed)150 555 y(b)s(elo)m(w,)31 b(matc)m(hes)g(itself.)42
+b(The)29 b Fm(nul)h Fu(c)m(haracter)i(ma)m(y)e(not)h(o)s(ccur)f(in)g(a)
+h(pattern.)40 b(A)31 b(bac)m(kslash)g(escap)s(es)150
+665 y(the)38 b(follo)m(wing)g(c)m(haracter;)43 b(the)37
+b(escaping)i(bac)m(kslash)e(is)h(discarded)f(when)f(matc)m(hing.)63
+b(The)36 b(sp)s(ecial)150 775 y(pattern)30 b(c)m(haracters)i(m)m(ust)f
+(b)s(e)e(quoted)i(if)f(they)h(are)f(to)i(b)s(e)d(matc)m(hed)i
+(literally)-8 b(.)275 901 y(The)29 b(sp)s(ecial)i(pattern)g(c)m
+(haracters)h(ha)m(v)m(e)f(the)g(follo)m(wing)h(meanings:)150
+1045 y Ft(*)432 b Fu(Matc)m(hes)31 b(an)m(y)e(string,)h(including)f
+(the)g(n)m(ull)g(string.)41 b(When)29 b(the)g Ft(globstar)e
+Fu(shell)i(option)630 1155 y(is)37 b(enabled,)h(and)e(`)p
+Ft(*)p Fu(')h(is)g(used)f(in)g(a)h(\014lename)g(expansion)g(con)m
+(text,)j(t)m(w)m(o)e(adjacen)m(t)g(`)p Ft(*)p Fu('s)630
+1264 y(used)f(as)g(a)h(single)g(pattern)g(will)f(matc)m(h)i(all)f
+(\014les)f(and)g(zero)h(or)g(more)f(directories)i(and)630
+1374 y(sub)s(directories.)g(If)25 b(follo)m(w)m(ed)j(b)m(y)e(a)g(`)p
 Ft(/)p Fu(',)h(t)m(w)m(o)g(adjacen)m(t)h(`)p Ft(*)p Fu('s)e(will)g
-(matc)m(h)h(only)f(directories)630 3897 y(and)k(sub)s(directories.)150
-4058 y Ft(?)432 b Fu(Matc)m(hes)32 b(an)m(y)f(single)g(c)m(haracter.)
-150 4219 y Ft([...)o(])241 b Fu(Matc)m(hes)27 b(an)m(y)e(one)g(of)g
+(matc)m(h)h(only)f(directories)630 1484 y(and)k(sub)s(directories.)150
+1627 y Ft(?)432 b Fu(Matc)m(hes)32 b(an)m(y)f(single)g(c)m(haracter.)
+150 1771 y Ft([...)o(])241 b Fu(Matc)m(hes)27 b(an)m(y)e(one)g(of)g
 (the)g(enclosed)g(c)m(haracters.)41 b(A)25 b(pair)f(of)h(c)m(haracters)
-i(separated)e(b)m(y)g(a)630 4328 y(h)m(yphen)k(denotes)i(a)g
+i(separated)e(b)m(y)g(a)630 1881 y(h)m(yphen)k(denotes)i(a)g
 Fr(range)g(expression)p Fu(;)f(an)m(y)h(c)m(haracter)h(that)f(falls)g
-(b)s(et)m(w)m(een)g(those)g(t)m(w)m(o)630 4438 y(c)m(haracters,)d
+(b)s(et)m(w)m(een)g(those)g(t)m(w)m(o)630 1990 y(c)m(haracters,)d
 (inclusiv)m(e,)f(using)d(the)h(curren)m(t)f(lo)s(cale's)j(collating)g
-(sequence)e(and)f(c)m(haracter)630 4547 y(set,)31 b(is)f(matc)m(hed.)42
+(sequence)e(and)f(c)m(haracter)630 2100 y(set,)31 b(is)f(matc)m(hed.)42
 b(If)30 b(the)g(\014rst)g(c)m(haracter)i(follo)m(wing)g(the)e(`)p
 Ft([)p Fu(')h(is)f(a)h(`)p Ft(!)p Fu(')f(or)g(a)h(`)p
-Ft(^)p Fu(')g(then)f(an)m(y)630 4657 y(c)m(haracter)c(not)f(enclosed)g
+Ft(^)p Fu(')g(then)f(an)m(y)630 2210 y(c)m(haracter)c(not)f(enclosed)g
 (is)g(matc)m(hed.)40 b(A)25 b(`)p Fq(\000)p Fu(')f(ma)m(y)i(b)s(e)e
-(matc)m(hed)h(b)m(y)f(including)h(it)g(as)g(the)630 4767
+(matc)m(hed)h(b)m(y)f(including)h(it)g(as)g(the)630 2319
 y(\014rst)32 b(or)h(last)h(c)m(haracter)h(in)e(the)g(set.)50
 b(A)33 b(`)p Ft(])p Fu(')g(ma)m(y)h(b)s(e)e(matc)m(hed)i(b)m(y)f
-(including)g(it)g(as)h(the)630 4876 y(\014rst)25 b(c)m(haracter)i(in)e
+(including)g(it)g(as)h(the)630 2429 y(\014rst)25 b(c)m(haracter)i(in)e
 (the)h(set.)40 b(The)25 b(sorting)h(order)f(of)h(c)m(haracters)h(in)f
-(range)g(expressions)f(is)630 4986 y(determined)h(b)m(y)h(the)g(curren)
+(range)g(expressions)f(is)630 2538 y(determined)h(b)m(y)h(the)g(curren)
 m(t)f(lo)s(cale)j(and)d(the)h(v)-5 b(alues)27 b(of)g(the)g
-Ft(LC_COLLATE)d Fu(and)i Ft(LC_ALL)630 5095 y Fu(shell)31
-b(v)-5 b(ariables,)31 b(if)f(set.)630 5230 y(F)-8 b(or)34
+Ft(LC_COLLATE)d Fu(and)i Ft(LC_ALL)630 2648 y Fu(shell)31
+b(v)-5 b(ariables,)31 b(if)f(set.)630 2775 y(F)-8 b(or)34
 b(example,)g(in)f(the)g(default)g(C)f(lo)s(cale,)k(`)p
 Ft([a-dx-z])p Fu(')31 b(is)i(equiv)-5 b(alen)m(t)34 b(to)g(`)p
-Ft([abcdxyz])p Fu('.)630 5340 y(Man)m(y)68 b(lo)s(cales)h(sort)f(c)m
+Ft([abcdxyz])p Fu('.)630 2884 y(Man)m(y)68 b(lo)s(cales)h(sort)f(c)m
 (haracters)h(in)e(dictionary)i(order,)76 b(and)67 b(in)g(these)h(lo)s
-(cales)p eop end
-%%Page: 33 39
-TeXDict begin 33 38 bop 150 -116 a Fu(Chapter)30 b(3:)41
-b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(33)630 299
-y(`)p Ft([a-dx-z])p Fu(')36 b(is)i(t)m(ypically)i(not)e(equiv)-5
-b(alen)m(t)39 b(to)g(`)p Ft([abcdxyz])p Fu(';)g(it)g(migh)m(t)f(b)s(e)f
-(equiv)-5 b(alen)m(t)630 408 y(to)34 b(`)p Ft([aBbCcDdxXyYz])p
-Fu(',)c(for)j(example.)49 b(T)-8 b(o)33 b(obtain)h(the)f(traditional)h
-(in)m(terpretation)h(of)630 518 y(ranges)e(in)f(brac)m(k)m(et)i
-(expressions,)g(y)m(ou)f(can)g(force)g(the)g(use)f(of)h(the)g(C)f(lo)s
-(cale)i(b)m(y)f(setting)630 628 y(the)c Ft(LC_COLLATE)e
-Fu(or)i Ft(LC_ALL)f Fu(en)m(vironmen)m(t)i(v)-5 b(ariable)30
-b(to)g(the)f(v)-5 b(alue)30 b(`)p Ft(C)p Fu(',)g(or)f(enable)h(the)630
-737 y Ft(globasciiranges)c Fu(shell)31 b(option.)630
-871 y(Within)23 b(`)p Ft([)p Fu(')h(and)e(`)p Ft(])p
-Fu(',)j Fr(c)m(haracter)g(classes)j Fu(can)c(b)s(e)e(sp)s(eci\014ed)h
-(using)f(the)i(syn)m(tax)f Ft([:)p Fr(class)t Ft(:])p
-Fu(,)630 981 y(where)30 b Fr(class)35 b Fu(is)30 b(one)h(of)f(the)h
-(follo)m(wing)h(classes)f(de\014ned)e(in)h(the)h Fm(posix)f
-Fu(standard:)870 1115 y Ft(alnum)142 b(alpha)g(ascii)f(blank)h(cntrl)g
-(digit)g(graph)g(lower)870 1224 y(print)g(punct)g(space)f(upper)h(word)
-190 b(xdigit)630 1358 y Fu(A)42 b(c)m(haracter)h(class)f(matc)m(hes)h
-(an)m(y)f(c)m(haracter)h(b)s(elonging)f(to)g(that)g(class.)75
-b(The)41 b Ft(word)630 1468 y Fu(c)m(haracter)32 b(class)f(matc)m(hes)h
+(cales)630 2994 y(`)p Ft([a-dx-z])p Fu(')36 b(is)i(t)m(ypically)i(not)e
+(equiv)-5 b(alen)m(t)39 b(to)g(`)p Ft([abcdxyz])p Fu(';)g(it)g(migh)m
+(t)f(b)s(e)f(equiv)-5 b(alen)m(t)630 3104 y(to)34 b(`)p
+Ft([aBbCcDdxXyYz])p Fu(',)c(for)j(example.)49 b(T)-8
+b(o)33 b(obtain)h(the)f(traditional)h(in)m(terpretation)h(of)630
+3213 y(ranges)e(in)f(brac)m(k)m(et)i(expressions,)g(y)m(ou)f(can)g
+(force)g(the)g(use)f(of)h(the)g(C)f(lo)s(cale)i(b)m(y)f(setting)630
+3323 y(the)c Ft(LC_COLLATE)e Fu(or)i Ft(LC_ALL)f Fu(en)m(vironmen)m(t)i
+(v)-5 b(ariable)30 b(to)g(the)f(v)-5 b(alue)30 b(`)p
+Ft(C)p Fu(',)g(or)f(enable)h(the)630 3432 y Ft(globasciiranges)c
+Fu(shell)31 b(option.)630 3559 y(Within)23 b(`)p Ft([)p
+Fu(')h(and)e(`)p Ft(])p Fu(',)j Fr(c)m(haracter)g(classes)j
+Fu(can)c(b)s(e)e(sp)s(eci\014ed)h(using)f(the)i(syn)m(tax)f
+Ft([:)p Fr(class)t Ft(:])p Fu(,)630 3669 y(where)30 b
+Fr(class)35 b Fu(is)30 b(one)h(of)f(the)h(follo)m(wing)h(classes)f
+(de\014ned)e(in)h(the)h Fm(posix)f Fu(standard:)870 3795
+y Ft(alnum)142 b(alpha)g(ascii)f(blank)h(cntrl)g(digit)g(graph)g(lower)
+870 3905 y(print)g(punct)g(space)f(upper)h(word)190 b(xdigit)630
+4032 y Fu(A)42 b(c)m(haracter)h(class)f(matc)m(hes)h(an)m(y)f(c)m
+(haracter)h(b)s(elonging)f(to)g(that)g(class.)75 b(The)41
+b Ft(word)630 4141 y Fu(c)m(haracter)32 b(class)f(matc)m(hes)h
 (letters,)f(digits,)h(and)d(the)i(c)m(haracter)h(`)p
-Ft(_)p Fu('.)630 1602 y(Within)25 b(`)p Ft([)p Fu(')f(and)g(`)p
+Ft(_)p Fu('.)630 4268 y(Within)25 b(`)p Ft([)p Fu(')f(and)g(`)p
 Ft(])p Fu(',)i(an)e Fr(equiv)-5 b(alence)26 b(class)j
 Fu(can)24 b(b)s(e)g(sp)s(eci\014ed)g(using)g(the)g(syn)m(tax)h
-Ft([=)p Fr(c)6 b Ft(=])p Fu(,)630 1711 y(whic)m(h)29
+Ft([=)p Fr(c)6 b Ft(=])p Fu(,)630 4378 y(whic)m(h)29
 b(matc)m(hes)i(all)f(c)m(haracters)h(with)e(the)h(same)g(collation)h(w)
-m(eigh)m(t)g(\(as)f(de\014ned)e(b)m(y)i(the)630 1821
+m(eigh)m(t)g(\(as)f(de\014ned)e(b)m(y)i(the)630 4487
 y(curren)m(t)g(lo)s(cale\))j(as)d(the)h(c)m(haracter)h
-Fr(c)p Fu(.)630 1955 y(Within)22 b(`)p Ft([)p Fu(')f(and)g(`)p
+Fr(c)p Fu(.)630 4614 y(Within)22 b(`)p Ft([)p Fu(')f(and)g(`)p
 Ft(])p Fu(',)j(the)d(syn)m(tax)h Ft([.)p Fr(sym)m(b)s(ol)t
 Ft(.])e Fu(matc)m(hes)i(the)g(collating)i(sym)m(b)s(ol)d
-Fr(sym)m(b)s(ol)p Fu(.)275 2113 y(If)29 b(the)g Ft(extglob)f
+Fr(sym)m(b)s(ol)p Fu(.)275 4758 y(If)29 b(the)g Ft(extglob)f
 Fu(shell)h(option)h(is)g(enabled)f(using)g(the)h Ft(shopt)e
-Fu(builtin,)h(sev)m(eral)i(extended)f(pattern)150 2222
+Fu(builtin,)h(sev)m(eral)i(extended)f(pattern)150 4867
 y(matc)m(hing)37 b(op)s(erators)e(are)h(recognized.)58
 b(In)35 b(the)g(follo)m(wing)i(description,)g(a)f Fr(pattern-list)j
-Fu(is)d(a)g(list)g(of)150 2332 y(one)d(or)f(more)h(patterns)f
+Fu(is)d(a)g(list)g(of)150 4977 y(one)d(or)f(more)h(patterns)f
 (separated)h(b)m(y)f(a)h(`)p Ft(|)p Fu('.)47 b(Comp)s(osite)33
 b(patterns)f(ma)m(y)i(b)s(e)d(formed)h(using)g(one)h(or)150
-2442 y(more)e(of)f(the)h(follo)m(wing)g(sub-patterns:)150
-2600 y Ft(?\()p Fj(pattern-list)p Ft(\))630 2709 y Fu(Matc)m(hes)h
-(zero)f(or)g(one)f(o)s(ccurrence)h(of)f(the)h(giv)m(en)g(patterns.)150
-2867 y Ft(*\()p Fj(pattern-list)p Ft(\))630 2977 y Fu(Matc)m(hes)h
-(zero)f(or)g(more)f(o)s(ccurrences)h(of)f(the)h(giv)m(en)g(patterns.)
-150 3135 y Ft(+\()p Fj(pattern-list)p Ft(\))630 3245
-y Fu(Matc)m(hes)h(one)f(or)f(more)h(o)s(ccurrences)f(of)h(the)f(giv)m
-(en)i(patterns.)150 3403 y Ft(@\()p Fj(pattern-list)p
-Ft(\))630 3513 y Fu(Matc)m(hes)g(one)f(of)f(the)h(giv)m(en)g(patterns.)
-150 3671 y Ft(!\()p Fj(pattern-list)p Ft(\))630 3780
-y Fu(Matc)m(hes)h(an)m(ything)f(except)g(one)g(of)f(the)h(giv)m(en)g
-(patterns.)275 3939 y(Complicated)41 b(extended)f(pattern)g(matc)m
-(hing)h(against)h(long)f(strings)f(is)g(slo)m(w,)k(esp)s(ecially)d
-(when)150 4048 y(the)29 b(patterns)g(con)m(tain)i(alternations)f(and)f
-(the)g(strings)g(con)m(tain)h(m)m(ultiple)g(matc)m(hes.)42
-b(Using)29 b(separate)150 4158 y(matc)m(hes)38 b(against)g(shorter)e
+5087 y(more)e(of)f(the)h(follo)m(wing)g(sub-patterns:)150
+5230 y Ft(?\()p Fj(pattern-list)p Ft(\))630 5340 y Fu(Matc)m(hes)h
+(zero)f(or)g(one)f(o)s(ccurrence)h(of)f(the)h(giv)m(en)g(patterns.)p
+eop end
+%%Page: 34 40
+TeXDict begin 34 39 bop 150 -116 a Fu(Chapter)30 b(3:)41
+b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(34)150 299
+y Ft(*\()p Fj(pattern-list)p Ft(\))630 408 y Fu(Matc)m(hes)32
+b(zero)f(or)g(more)f(o)s(ccurrences)h(of)f(the)h(giv)m(en)g(patterns.)
+150 554 y Ft(+\()p Fj(pattern-list)p Ft(\))630 663 y
+Fu(Matc)m(hes)h(one)f(or)f(more)h(o)s(ccurrences)f(of)h(the)f(giv)m(en)
+i(patterns.)150 809 y Ft(@\()p Fj(pattern-list)p Ft(\))630
+918 y Fu(Matc)m(hes)g(one)f(of)f(the)h(giv)m(en)g(patterns.)150
+1064 y Ft(!\()p Fj(pattern-list)p Ft(\))630 1173 y Fu(Matc)m(hes)h(an)m
+(ything)f(except)g(one)g(of)f(the)h(giv)m(en)g(patterns.)275
+1319 y(Complicated)41 b(extended)f(pattern)g(matc)m(hing)h(against)h
+(long)f(strings)f(is)g(slo)m(w,)k(esp)s(ecially)d(when)150
+1428 y(the)29 b(patterns)g(con)m(tain)i(alternations)f(and)f(the)g
+(strings)g(con)m(tain)h(m)m(ultiple)g(matc)m(hes.)42
+b(Using)29 b(separate)150 1538 y(matc)m(hes)38 b(against)g(shorter)e
 (strings,)i(or)f(using)f(arra)m(ys)h(of)g(strings)f(instead)h(of)g(a)g
-(single)g(long)h(string,)150 4267 y(ma)m(y)31 b(b)s(e)f(faster.)150
-4465 y Fk(3.5.9)63 b(Quote)41 b(Remo)m(v)-7 b(al)150
-4612 y Fu(After)32 b(the)g(preceding)g(expansions,)h(all)f(unquoted)f
+(single)g(long)h(string,)150 1647 y(ma)m(y)31 b(b)s(e)f(faster.)150
+1833 y Fk(3.5.9)63 b(Quote)41 b(Remo)m(v)-7 b(al)150
+1979 y Fu(After)32 b(the)g(preceding)g(expansions,)h(all)f(unquoted)f
 (o)s(ccurrences)h(of)g(the)h(c)m(haracters)g(`)p Ft(\\)p
 Fu(',)g(`)p Ft(')p Fu(',)f(and)g(`)p Ft(")p Fu(')150
-4722 y(that)f(did)f(not)g(result)g(from)g(one)h(of)g(the)f(ab)s(o)m(v)m
-(e)i(expansions)e(are)h(remo)m(v)m(ed.)150 4961 y Fs(3.6)68
-b(Redirections)150 5121 y Fu(Before)32 b(a)f(command)f(is)h(executed,)h
+2089 y(that)f(did)f(not)g(result)g(from)g(one)h(of)g(the)f(ab)s(o)m(v)m
+(e)i(expansions)e(are)h(remo)m(v)m(ed.)150 2316 y Fs(3.6)68
+b(Redirections)150 2475 y Fu(Before)32 b(a)f(command)f(is)h(executed,)h
 (its)f(input)e(and)h(output)h(ma)m(y)g(b)s(e)f Fr(redirected)k
-Fu(using)c(a)i(sp)s(ecial)f(no-)150 5230 y(tation)d(in)m(terpreted)f(b)
+Fu(using)c(a)i(sp)s(ecial)f(no-)150 2585 y(tation)d(in)m(terpreted)f(b)
 m(y)f(the)h(shell.)40 b(Redirection)27 b(allo)m(ws)h(commands')f
-(\014le)f(handles)g(to)i(b)s(e)e(duplicated,)150 5340
+(\014le)f(handles)g(to)i(b)s(e)e(duplicated,)150 2694
 y(op)s(ened,)i(closed,)i(made)e(to)h(refer)f(to)h(di\013eren)m(t)f
 (\014les,)h(and)f(can)g(c)m(hange)h(the)g(\014les)f(the)g(command)g
-(reads)p eop end
-%%Page: 34 40
-TeXDict begin 34 39 bop 150 -116 a Fu(Chapter)30 b(3:)41
-b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(34)150 299
-y(from)39 b(and)g(writes)h(to.)69 b(Redirection)40 b(ma)m(y)g(also)h(b)
-s(e)e(used)g(to)h(mo)s(dify)f(\014le)g(handles)g(in)g(the)h(curren)m(t)
-150 408 y(shell)e(execution)h(en)m(vironmen)m(t.)65 b(The)37
-b(follo)m(wing)j(redirection)f(op)s(erators)f(ma)m(y)g(precede)h(or)f
-(app)s(ear)150 518 y(an)m(ywhere)30 b(within)f(a)h(simple)f(command)h
-(or)f(ma)m(y)i(follo)m(w)g(a)f(command.)40 b(Redirections)30
-b(are)g(pro)s(cessed)150 628 y(in)g(the)h(order)f(they)g(app)s(ear,)g
-(from)g(left)h(to)g(righ)m(t.)275 758 y(Eac)m(h)45 b(redirection)h
-(that)f(ma)m(y)h(b)s(e)e(preceded)g(b)m(y)h(a)h(\014le)f(descriptor)f
-(n)m(um)m(b)s(er)g(ma)m(y)h(instead)h(b)s(e)150 868 y(preceded)41
-b(b)m(y)g(a)h(w)m(ord)f(of)g(the)h(form)f Fi({)p Fr(v)-5
-b(arname)5 b Fi(})p Fu(.)74 b(In)41 b(this)g(case,)k(for)c(eac)m(h)i
-(redirection)f(op)s(erator)150 977 y(except)30 b Ft(>)p
-Fu(&-)f(and)f Ft(<)p Fu(&-,)h(the)g(shell)g(will)h(allo)s(cate)h(a)e
-(\014le)h(descriptor)e(greater)j(than)d(10)i(and)e(assign)i(it)f(to)150
-1087 y Fi({)p Fr(v)-5 b(arname)5 b Fi(})p Fu(.)45 b(If)31
-b Ft(>)p Fu(&-)g(or)h Ft(<)p Fu(&-)f(is)h(preceded)f(b)m(y)g
-Fi({)p Fr(v)-5 b(arname)5 b Fi(})p Fu(,)33 b(the)f(v)-5
+(reads)150 2804 y(from)39 b(and)g(writes)h(to.)69 b(Redirection)40
+b(ma)m(y)g(also)h(b)s(e)e(used)g(to)h(mo)s(dify)f(\014le)g(handles)g
+(in)g(the)h(curren)m(t)150 2914 y(shell)e(execution)h(en)m(vironmen)m
+(t.)65 b(The)37 b(follo)m(wing)j(redirection)f(op)s(erators)f(ma)m(y)g
+(precede)h(or)f(app)s(ear)150 3023 y(an)m(ywhere)30 b(within)f(a)h
+(simple)f(command)h(or)f(ma)m(y)i(follo)m(w)g(a)f(command.)40
+b(Redirections)30 b(are)g(pro)s(cessed)150 3133 y(in)g(the)h(order)f
+(they)g(app)s(ear,)g(from)g(left)h(to)g(righ)m(t.)275
+3260 y(Eac)m(h)45 b(redirection)h(that)f(ma)m(y)h(b)s(e)e(preceded)g(b)
+m(y)h(a)h(\014le)f(descriptor)f(n)m(um)m(b)s(er)g(ma)m(y)h(instead)h(b)
+s(e)150 3370 y(preceded)41 b(b)m(y)g(a)h(w)m(ord)f(of)g(the)h(form)f
+Fi({)p Fr(v)-5 b(arname)5 b Fi(})p Fu(.)74 b(In)41 b(this)g(case,)k
+(for)c(eac)m(h)i(redirection)f(op)s(erator)150 3479 y(except)30
+b Ft(>)p Fu(&-)f(and)f Ft(<)p Fu(&-,)h(the)g(shell)g(will)h(allo)s
+(cate)h(a)e(\014le)h(descriptor)e(greater)j(than)d(10)i(and)e(assign)i
+(it)f(to)150 3589 y Fi({)p Fr(v)-5 b(arname)5 b Fi(})p
+Fu(.)45 b(If)31 b Ft(>)p Fu(&-)g(or)h Ft(<)p Fu(&-)f(is)h(preceded)f(b)
+m(y)g Fi({)p Fr(v)-5 b(arname)5 b Fi(})p Fu(,)33 b(the)f(v)-5
 b(alue)32 b(of)g Fr(v)-5 b(arname)36 b Fu(de\014nes)31
-b(the)h(\014le)150 1196 y(descriptor)i(to)g(close.)52
+b(the)h(\014le)150 3698 y(descriptor)i(to)g(close.)52
 b(If)34 b Fi({)p Fr(v)-5 b(arname)5 b Fi(})34 b Fu(is)g(supplied,)g
 (the)g(redirection)g(p)s(ersists)f(b)s(ey)m(ond)g(the)h(scop)s(e)g(of)
-150 1306 y(the)d(command,)f(allo)m(wing)i(the)f(shell)f(programmer)g
+150 3808 y(the)d(command,)f(allo)m(wing)i(the)f(shell)f(programmer)g
 (to)h(manage)h(the)e(\014le)h(descriptor)f(himself.)275
-1437 y(In)d(the)i(follo)m(wing)h(descriptions,)g(if)e(the)h(\014le)g
+3936 y(In)d(the)i(follo)m(wing)h(descriptions,)g(if)e(the)h(\014le)g
 (descriptor)f(n)m(um)m(b)s(er)g(is)g(omitted,)i(and)f(the)f(\014rst)g
-(c)m(har-)150 1546 y(acter)42 b(of)f(the)g(redirection)g(op)s(erator)g
+(c)m(har-)150 4045 y(acter)42 b(of)f(the)g(redirection)g(op)s(erator)g
 (is)g(`)p Ft(<)p Fu(',)i(the)e(redirection)g(refers)g(to)g(the)g
-(standard)f(input)f(\(\014le)150 1656 y(descriptor)33
+(standard)f(input)f(\(\014le)150 4155 y(descriptor)33
 b(0\).)49 b(If)33 b(the)g(\014rst)f(c)m(haracter)i(of)g(the)f
 (redirection)g(op)s(erator)h(is)f(`)p Ft(>)p Fu(',)h(the)f(redirection)
-g(refers)150 1765 y(to)e(the)g(standard)e(output)h(\(\014le)h
-(descriptor)f(1\).)275 1896 y(The)h(w)m(ord)h(follo)m(wing)i(the)f
+g(refers)150 4264 y(to)e(the)g(standard)e(output)h(\(\014le)h
+(descriptor)f(1\).)275 4392 y(The)h(w)m(ord)h(follo)m(wing)i(the)f
 (redirection)g(op)s(erator)f(in)g(the)h(follo)m(wing)h(descriptions,)f
-(unless)e(other-)150 2005 y(wise)21 b(noted,)i(is)e(sub)5
+(unless)e(other-)150 4501 y(wise)21 b(noted,)i(is)e(sub)5
 b(jected)21 b(to)h(brace)f(expansion,)i(tilde)f(expansion,)h(parameter)
-e(expansion,)i(command)150 2115 y(substitution,)31 b(arithmetic)h
+e(expansion,)i(command)150 4611 y(substitution,)31 b(arithmetic)h
 (expansion,)f(quote)h(remo)m(v)-5 b(al,)33 b(\014lename)e(expansion,)g
-(and)f(w)m(ord)h(splitting.)150 2225 y(If)f(it)h(expands)e(to)i(more)g
+(and)f(w)m(ord)h(splitting.)150 4721 y(If)f(it)h(expands)e(to)i(more)g
 (than)f(one)h(w)m(ord,)f(Bash)h(rep)s(orts)e(an)h(error.)275
-2355 y(Note)h(that)g(the)g(order)f(of)g(redirections)h(is)g
+4848 y(Note)h(that)g(the)g(order)f(of)g(redirections)h(is)g
 (signi\014can)m(t.)41 b(F)-8 b(or)31 b(example,)h(the)e(command)390
-2485 y Ft(ls)47 b(>)h Fj(dirlist)d Ft(2>&1)150 2616 y
+4975 y Ft(ls)47 b(>)h Fj(dirlist)d Ft(2>&1)150 5103 y
 Fu(directs)28 b(b)s(oth)f(standard)g(output)g(\(\014le)h(descriptor)f
 (1\))i(and)e(standard)f(error)i(\(\014le)g(descriptor)f(2\))h(to)h(the)
-150 2725 y(\014le)h Fr(dirlist)p Fu(,)h(while)f(the)h(command)390
-2856 y Ft(ls)47 b(2>&1)g(>)g Fj(dirlist)150 2986 y Fu(directs)28
-b(only)f(the)h(standard)e(output)i(to)g(\014le)f Fr(dirlist)p
-Fu(,)h(b)s(ecause)g(the)f(standard)g(error)g(w)m(as)h(made)f(a)h(cop)m
-(y)150 3096 y(of)j(the)f(standard)g(output)g(b)s(efore)g(the)g
-(standard)g(output)g(w)m(as)g(redirected)h(to)g Fr(dirlist)p
-Fu(.)275 3226 y(Bash)26 b(handles)f(sev)m(eral)j(\014lenames)e(sp)s
-(ecially)h(when)f(they)g(are)g(used)g(in)g(redirections,)i(as)e
-(describ)s(ed)150 3336 y(in)38 b(the)h(follo)m(wing)h(table.)66
-b(If)38 b(the)h(op)s(erating)g(system)f(on)h(whic)m(h)f(Bash)h(is)f
-(running)f(pro)m(vides)h(these)150 3446 y(sp)s(ecial)27
-b(\014les,)g(bash)e(will)i(use)f(them;)h(otherwise)g(it)f(will)h(em)m
-(ulate)h(them)e(in)m(ternally)h(with)f(the)g(b)s(eha)m(vior)150
-3555 y(describ)s(ed)j(b)s(elo)m(w.)150 3707 y Ft(/dev/fd/)p
-Fj(fd)630 3816 y Fu(If)h Fr(fd)j Fu(is)d(a)h(v)-5 b(alid)31
-b(in)m(teger,)h(\014le)e(descriptor)h Fr(fd)i Fu(is)d(duplicated.)150
-3968 y Ft(/dev/stdin)630 4077 y Fu(File)i(descriptor)e(0)h(is)f
-(duplicated.)150 4228 y Ft(/dev/stdout)630 4338 y Fu(File)i(descriptor)
-e(1)h(is)f(duplicated.)150 4489 y Ft(/dev/stderr)630
-4599 y Fu(File)i(descriptor)e(2)h(is)f(duplicated.)150
-4750 y Ft(/dev/tcp/)p Fj(host)p Ft(/)p Fj(port)630 4860
-y Fu(If)41 b Fr(host)i Fu(is)f(a)g(v)-5 b(alid)41 b(hostname)h(or)f(In)
-m(ternet)h(address,)i(and)c Fr(p)s(ort)j Fu(is)f(an)f(in)m(teger)i(p)s
-(ort)630 4969 y(n)m(um)m(b)s(er)23 b(or)i(service)h(name,)g(Bash)f
-(attempts)h(to)f(op)s(en)f(the)h(corresp)s(onding)f(TCP)g(so)s(c)m(k)m
-(et.)150 5121 y Ft(/dev/udp/)p Fj(host)p Ft(/)p Fj(port)630
-5230 y Fu(If)41 b Fr(host)i Fu(is)f(a)g(v)-5 b(alid)41
-b(hostname)h(or)f(In)m(ternet)h(address,)i(and)c Fr(p)s(ort)j
-Fu(is)f(an)f(in)m(teger)i(p)s(ort)630 5340 y(n)m(um)m(b)s(er)23
-b(or)h(service)h(name,)h(Bash)e(attempts)h(to)g(op)s(en)f(the)g
-(corresp)s(onding)f(UDP)i(so)s(c)m(k)m(et.)p eop end
+150 5213 y(\014le)h Fr(dirlist)p Fu(,)h(while)f(the)h(command)390
+5340 y Ft(ls)47 b(2>&1)g(>)g Fj(dirlist)p eop end
 %%Page: 35 41
 TeXDict begin 35 40 bop 150 -116 a Fu(Chapter)30 b(3:)41
-b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(35)275 299
-y(A)30 b(failure)h(to)g(op)s(en)e(or)i(create)h(a)e(\014le)h(causes)g
-(the)f(redirection)h(to)g(fail.)275 439 y(Redirections)f(using)e
-(\014le)i(descriptors)f(greater)h(than)f(9)h(should)e(b)s(e)h(used)f
-(with)h(care,)h(as)g(they)f(ma)m(y)150 548 y(con\015ict)i(with)f
-(\014le)h(descriptors)f(the)g(shell)h(uses)f(in)m(ternally)-8
-b(.)150 753 y Fk(3.6.1)63 b(Redirecting)40 b(Input)150
-900 y Fu(Redirection)35 b(of)f(input)f(causes)i(the)f(\014le)g(whose)g
-(name)g(results)g(from)g(the)g(expansion)g(of)g Fr(w)m(ord)k
-Fu(to)d(b)s(e)150 1010 y(op)s(ened)d(for)g(reading)g(on)g(\014le)h
-(descriptor)f Ft(n)p Fu(,)h(or)f(the)g(standard)g(input)f(\(\014le)i
-(descriptor)f(0\))h(if)f Ft(n)g Fu(is)h(not)150 1119
-y(sp)s(eci\014ed.)275 1259 y(The)c(general)j(format)e(for)h
-(redirecting)g(input)e(is:)390 1399 y Ft([)p Fj(n)p Ft(]<)p
-Fj(word)150 1604 y Fk(3.6.2)63 b(Redirecting)40 b(Output)150
-1751 y Fu(Redirection)31 b(of)g(output)f(causes)h(the)f(\014le)h(whose)
+b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(35)150 299
+y(directs)28 b(only)f(the)h(standard)e(output)i(to)g(\014le)f
+Fr(dirlist)p Fu(,)h(b)s(ecause)g(the)f(standard)g(error)g(w)m(as)h
+(made)f(a)h(cop)m(y)150 408 y(of)j(the)f(standard)g(output)g(b)s(efore)
+g(the)g(standard)g(output)g(w)m(as)g(redirected)h(to)g
+Fr(dirlist)p Fu(.)275 543 y(Bash)26 b(handles)f(sev)m(eral)j
+(\014lenames)e(sp)s(ecially)h(when)f(they)g(are)g(used)g(in)g
+(redirections,)i(as)e(describ)s(ed)150 652 y(in)38 b(the)h(follo)m
+(wing)h(table.)66 b(If)38 b(the)h(op)s(erating)g(system)f(on)h(whic)m
+(h)f(Bash)h(is)f(running)f(pro)m(vides)h(these)150 762
+y(sp)s(ecial)27 b(\014les,)g(bash)e(will)i(use)f(them;)h(otherwise)g
+(it)f(will)h(em)m(ulate)h(them)e(in)m(ternally)h(with)f(the)g(b)s(eha)m
+(vior)150 871 y(describ)s(ed)j(b)s(elo)m(w.)150 1030
+y Ft(/dev/fd/)p Fj(fd)630 1140 y Fu(If)h Fr(fd)j Fu(is)d(a)h(v)-5
+b(alid)31 b(in)m(teger,)h(\014le)e(descriptor)h Fr(fd)i
+Fu(is)d(duplicated.)150 1298 y Ft(/dev/stdin)630 1408
+y Fu(File)i(descriptor)e(0)h(is)f(duplicated.)150 1566
+y Ft(/dev/stdout)630 1676 y Fu(File)i(descriptor)e(1)h(is)f
+(duplicated.)150 1835 y Ft(/dev/stderr)630 1944 y Fu(File)i(descriptor)
+e(2)h(is)f(duplicated.)150 2103 y Ft(/dev/tcp/)p Fj(host)p
+Ft(/)p Fj(port)630 2212 y Fu(If)41 b Fr(host)i Fu(is)f(a)g(v)-5
+b(alid)41 b(hostname)h(or)f(In)m(ternet)h(address,)i(and)c
+Fr(p)s(ort)j Fu(is)f(an)f(in)m(teger)i(p)s(ort)630 2322
+y(n)m(um)m(b)s(er)23 b(or)i(service)h(name,)g(Bash)f(attempts)h(to)f
+(op)s(en)f(the)h(corresp)s(onding)f(TCP)g(so)s(c)m(k)m(et.)150
+2480 y Ft(/dev/udp/)p Fj(host)p Ft(/)p Fj(port)630 2590
+y Fu(If)41 b Fr(host)i Fu(is)f(a)g(v)-5 b(alid)41 b(hostname)h(or)f(In)
+m(ternet)h(address,)i(and)c Fr(p)s(ort)j Fu(is)f(an)f(in)m(teger)i(p)s
+(ort)630 2700 y(n)m(um)m(b)s(er)23 b(or)h(service)h(name,)h(Bash)e
+(attempts)h(to)g(op)s(en)f(the)g(corresp)s(onding)f(UDP)i(so)s(c)m(k)m
+(et.)275 2858 y(A)30 b(failure)h(to)g(op)s(en)e(or)i(create)h(a)e
+(\014le)h(causes)g(the)f(redirection)h(to)g(fail.)275
+2992 y(Redirections)f(using)e(\014le)i(descriptors)f(greater)h(than)f
+(9)h(should)e(b)s(e)h(used)f(with)h(care,)h(as)g(they)f(ma)m(y)150
+3102 y(con\015ict)i(with)f(\014le)h(descriptors)f(the)g(shell)h(uses)f
+(in)m(ternally)-8 b(.)150 3300 y Fk(3.6.1)63 b(Redirecting)40
+b(Input)150 3447 y Fu(Redirection)35 b(of)f(input)f(causes)i(the)f
+(\014le)g(whose)g(name)g(results)g(from)g(the)g(expansion)g(of)g
+Fr(w)m(ord)k Fu(to)d(b)s(e)150 3557 y(op)s(ened)d(for)g(reading)g(on)g
+(\014le)h(descriptor)f Ft(n)p Fu(,)h(or)f(the)g(standard)g(input)f
+(\(\014le)i(descriptor)f(0\))h(if)f Ft(n)g Fu(is)h(not)150
+3667 y(sp)s(eci\014ed.)275 3801 y(The)c(general)j(format)e(for)h
+(redirecting)g(input)e(is:)390 3935 y Ft([)p Fj(n)p Ft(]<)p
+Fj(word)150 4133 y Fk(3.6.2)63 b(Redirecting)40 b(Output)150
+4280 y Fu(Redirection)31 b(of)g(output)f(causes)h(the)f(\014le)h(whose)
 f(name)g(results)h(from)e(the)i(expansion)f(of)h Fr(w)m(ord)i
-Fu(to)f(b)s(e)150 1861 y(op)s(ened)d(for)g(writing)g(on)g(\014le)h
+Fu(to)f(b)s(e)150 4390 y(op)s(ened)d(for)g(writing)g(on)g(\014le)h
 (descriptor)f Fr(n)p Fu(,)g(or)g(the)h(standard)e(output)h(\(\014le)h
-(descriptor)f(1\))h(if)g Fr(n)e Fu(is)i(not)150 1970
+(descriptor)f(1\))h(if)g Fr(n)e Fu(is)i(not)150 4499
 y(sp)s(eci\014ed.)40 b(If)30 b(the)g(\014le)h(do)s(es)f(not)h(exist)g
 (it)g(is)f(created;)i(if)e(it)h(do)s(es)f(exist)h(it)g(is)g(truncated)f
-(to)h(zero)g(size.)275 2110 y(The)e(general)j(format)e(for)h
-(redirecting)g(output)f(is:)390 2250 y Ft([)p Fj(n)p
-Ft(]>[|])p Fj(word)275 2390 y Fu(If)g(the)h(redirection)g(op)s(erator)g
+(to)h(zero)g(size.)275 4633 y(The)e(general)j(format)e(for)h
+(redirecting)g(output)f(is:)390 4768 y Ft([)p Fj(n)p
+Ft(]>[|])p Fj(word)275 4902 y Fu(If)g(the)h(redirection)g(op)s(erator)g
 (is)g(`)p Ft(>)p Fu(',)g(and)f(the)h Ft(noclobber)d Fu(option)j(to)g
-(the)g Ft(set)f Fu(builtin)g(has)h(b)s(een)150 2500 y(enabled,)h(the)g
+(the)g Ft(set)f Fu(builtin)g(has)h(b)s(een)150 5011 y(enabled,)h(the)g
 (redirection)h(will)f(fail)h(if)e(the)i(\014le)e(whose)h(name)g
 (results)g(from)f(the)h(expansion)g(of)g Fr(w)m(ord)150
-2609 y Fu(exists)f(and)f(is)g(a)h(regular)g(\014le.)41
+5121 y Fu(exists)f(and)f(is)g(a)h(regular)g(\014le.)41
 b(If)30 b(the)h(redirection)g(op)s(erator)g(is)f(`)p
 Ft(>|)p Fu(',)h(or)f(the)h(redirection)g(op)s(erator)g(is)150
-2719 y(`)p Ft(>)p Fu(')36 b(and)f(the)g Ft(noclobber)e
+5230 y(`)p Ft(>)p Fu(')36 b(and)f(the)g Ft(noclobber)e
 Fu(option)j(is)g(not)g(enabled,)h(the)e(redirection)h(is)g(attempted)g
-(ev)m(en)h(if)e(the)h(\014le)150 2829 y(named)30 b(b)m(y)g
-Fr(w)m(ord)k Fu(exists.)150 3033 y Fk(3.6.3)63 b(App)s(ending)42
-b(Redirected)e(Output)150 3180 y Fu(Redirection)23 b(of)e(output)h(in)f
-(this)h(fashion)f(causes)h(the)g(\014le)g(whose)f(name)h(results)f
-(from)g(the)h(expansion)g(of)150 3290 y Fr(w)m(ord)28
-b Fu(to)e(b)s(e)e(op)s(ened)g(for)h(app)s(ending)e(on)i(\014le)g
-(descriptor)g Fr(n)p Fu(,)g(or)g(the)g(standard)f(output)h(\(\014le)g
-(descriptor)150 3399 y(1\))31 b(if)f Fr(n)g Fu(is)h(not)f(sp)s
-(eci\014ed.)40 b(If)30 b(the)h(\014le)f(do)s(es)g(not)h(exist)g(it)g
-(is)f(created.)275 3539 y(The)f(general)j(format)e(for)h(app)s(ending)e
-(output)h(is:)390 3679 y Ft([)p Fj(n)p Ft(]>>)p Fj(word)150
-3884 y Fk(3.6.4)63 b(Redirecting)40 b(Standard)h(Output)g(and)g
-(Standard)g(Error)150 4031 y Fu(This)33 b(construct)i(allo)m(ws)g(b)s
-(oth)f(the)g(standard)g(output)f(\(\014le)i(descriptor)f(1\))h(and)f
-(the)g(standard)f(error)150 4141 y(output)d(\(\014le)h(descriptor)f
-(2\))h(to)g(b)s(e)f(redirected)h(to)g(the)f(\014le)h(whose)f(name)h(is)
-f(the)g(expansion)h(of)f Fr(w)m(ord)p Fu(.)275 4281 y(There)f(are)i(t)m
-(w)m(o)h(formats)e(for)h(redirecting)g(standard)e(output)h(and)g
-(standard)f(error:)390 4421 y Ft(&>)p Fj(word)150 4561
-y Fu(and)390 4701 y Ft(>&)p Fj(word)150 4841 y Fu(Of)h(the)g(t)m(w)m(o)
-i(forms,)e(the)h(\014rst)e(is)i(preferred.)39 b(This)30
-b(is)g(seman)m(tically)j(equiv)-5 b(alen)m(t)32 b(to)390
-4981 y Ft(>)p Fj(word)46 b Ft(2>&1)275 5121 y Fu(When)41
-b(using)g(the)h(second)f(form,)k Fr(w)m(ord)f Fu(ma)m(y)e(not)g(expand)
-f(to)h(a)g(n)m(um)m(b)s(er)f(or)g(`)p Ft(-)p Fu('.)75
-b(If)41 b(it)h(do)s(es,)150 5230 y(other)27 b(redirection)g(op)s
-(erators)f(apply)h(\(see)g(Duplicating)h(File)f(Descriptors)h(b)s(elo)m
-(w\))f(for)f(compatibilit)m(y)150 5340 y(reasons.)p eop
-end
+(ev)m(en)h(if)e(the)h(\014le)150 5340 y(named)30 b(b)m(y)g
+Fr(w)m(ord)k Fu(exists.)p eop end
 %%Page: 36 42
 TeXDict begin 36 41 bop 150 -116 a Fu(Chapter)30 b(3:)41
 b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(36)150 299
-y Fk(3.6.5)63 b(App)s(ending)42 b(Standard)f(Output)g(and)g(Standard)g
-(Error)150 446 y Fu(This)33 b(construct)i(allo)m(ws)g(b)s(oth)f(the)g
-(standard)g(output)f(\(\014le)i(descriptor)f(1\))h(and)f(the)g
-(standard)f(error)150 555 y(output)d(\(\014le)h(descriptor)f(2\))h(to)g
-(b)s(e)f(app)s(ended)f(to)i(the)f(\014le)h(whose)f(name)g(is)h(the)f
-(expansion)h(of)f Fr(w)m(ord)p Fu(.)275 691 y(The)f(format)i(for)f(app)
-s(ending)f(standard)h(output)g(and)f(standard)h(error)g(is:)390
-828 y Ft(&>>)p Fj(word)150 964 y Fu(This)g(is)g(seman)m(tically)j
-(equiv)-5 b(alen)m(t)32 b(to)390 1100 y Ft(>>)p Fj(word)46
-b Ft(2>&1)275 1236 y Fu(\(see)31 b(Duplicating)h(File)f(Descriptors)g
-(b)s(elo)m(w\).)150 1436 y Fk(3.6.6)63 b(Here)41 b(Do)s(cumen)m(ts)150
-1583 y Fu(This)26 b(t)m(yp)s(e)g(of)h(redirection)g(instructs)f(the)g
+y Fk(3.6.3)63 b(App)s(ending)42 b(Redirected)e(Output)150
+446 y Fu(Redirection)23 b(of)e(output)h(in)f(this)h(fashion)f(causes)h
+(the)g(\014le)g(whose)f(name)h(results)f(from)g(the)h(expansion)g(of)
+150 555 y Fr(w)m(ord)28 b Fu(to)e(b)s(e)e(op)s(ened)g(for)h(app)s
+(ending)e(on)i(\014le)g(descriptor)g Fr(n)p Fu(,)g(or)g(the)g(standard)
+f(output)h(\(\014le)g(descriptor)150 665 y(1\))31 b(if)f
+Fr(n)g Fu(is)h(not)f(sp)s(eci\014ed.)40 b(If)30 b(the)h(\014le)f(do)s
+(es)g(not)h(exist)g(it)g(is)f(created.)275 796 y(The)f(general)j
+(format)e(for)h(app)s(ending)e(output)h(is:)390 928 y
+Ft([)p Fj(n)p Ft(]>>)p Fj(word)150 1120 y Fk(3.6.4)63
+b(Redirecting)40 b(Standard)h(Output)g(and)g(Standard)g(Error)150
+1267 y Fu(This)33 b(construct)i(allo)m(ws)g(b)s(oth)f(the)g(standard)g
+(output)f(\(\014le)i(descriptor)f(1\))h(and)f(the)g(standard)f(error)
+150 1377 y(output)d(\(\014le)h(descriptor)f(2\))h(to)g(b)s(e)f
+(redirected)h(to)g(the)f(\014le)h(whose)f(name)h(is)f(the)g(expansion)h
+(of)f Fr(w)m(ord)p Fu(.)275 1508 y(There)f(are)i(t)m(w)m(o)h(formats)e
+(for)h(redirecting)g(standard)e(output)h(and)g(standard)f(error:)390
+1639 y Ft(&>)p Fj(word)150 1771 y Fu(and)390 1902 y Ft(>&)p
+Fj(word)150 2033 y Fu(Of)h(the)g(t)m(w)m(o)i(forms,)e(the)h(\014rst)e
+(is)i(preferred.)39 b(This)30 b(is)g(seman)m(tically)j(equiv)-5
+b(alen)m(t)32 b(to)390 2164 y Ft(>)p Fj(word)46 b Ft(2>&1)275
+2296 y Fu(When)41 b(using)g(the)h(second)f(form,)k Fr(w)m(ord)f
+Fu(ma)m(y)e(not)g(expand)f(to)h(a)g(n)m(um)m(b)s(er)f(or)g(`)p
+Ft(-)p Fu('.)75 b(If)41 b(it)h(do)s(es,)150 2405 y(other)27
+b(redirection)g(op)s(erators)f(apply)h(\(see)g(Duplicating)h(File)f
+(Descriptors)h(b)s(elo)m(w\))f(for)f(compatibilit)m(y)150
+2515 y(reasons.)150 2707 y Fk(3.6.5)63 b(App)s(ending)42
+b(Standard)f(Output)g(and)g(Standard)g(Error)150 2854
+y Fu(This)33 b(construct)i(allo)m(ws)g(b)s(oth)f(the)g(standard)g
+(output)f(\(\014le)i(descriptor)f(1\))h(and)f(the)g(standard)f(error)
+150 2964 y(output)d(\(\014le)h(descriptor)f(2\))h(to)g(b)s(e)f(app)s
+(ended)f(to)i(the)f(\014le)h(whose)f(name)g(is)h(the)f(expansion)h(of)f
+Fr(w)m(ord)p Fu(.)275 3095 y(The)f(format)i(for)f(app)s(ending)f
+(standard)h(output)g(and)f(standard)h(error)g(is:)390
+3226 y Ft(&>>)p Fj(word)150 3358 y Fu(This)g(is)g(seman)m(tically)j
+(equiv)-5 b(alen)m(t)32 b(to)390 3489 y Ft(>>)p Fj(word)46
+b Ft(2>&1)275 3620 y Fu(\(see)31 b(Duplicating)h(File)f(Descriptors)g
+(b)s(elo)m(w\).)150 3813 y Fk(3.6.6)63 b(Here)41 b(Do)s(cumen)m(ts)150
+3960 y Fu(This)26 b(t)m(yp)s(e)g(of)h(redirection)g(instructs)f(the)g
 (shell)h(to)g(read)f(input)g(from)g(the)g(curren)m(t)h(source)f(un)m
-(til)h(a)g(line)150 1693 y(con)m(taining)h(only)e Fr(w)m(ord)k
+(til)h(a)g(line)150 4070 y(con)m(taining)h(only)e Fr(w)m(ord)k
 Fu(\(with)c(no)g(trailing)h(blanks\))f(is)g(seen.)40
 b(All)27 b(of)f(the)g(lines)h(read)f(up)f(to)i(that)g(p)s(oin)m(t)150
-1803 y(are)k(then)f(used)f(as)i(the)g(standard)e(input)h(\(or)g(\014le)
+4179 y(are)k(then)f(used)f(as)i(the)g(standard)e(input)h(\(or)g(\014le)
 h(descriptor)f Fr(n)g Fu(if)g Fr(n)g Fu(is)g(sp)s(eci\014ed\))g(for)h
-(a)f(command.)275 1939 y(The)f(format)i(of)g(here-do)s(cumen)m(ts)f
-(is:)390 2075 y Ft([)p Fj(n)p Ft(]<<[)p Fq(\000)p Ft(])p
-Fj(word)772 2184 y(here-document)390 2294 y(delimiter)275
-2430 y Fu(No)i(parameter)h(and)f(v)-5 b(ariable)32 b(expansion,)h
+(a)f(command.)275 4310 y(The)f(format)i(of)g(here-do)s(cumen)m(ts)f
+(is:)390 4442 y Ft([)p Fj(n)p Ft(]<<[)p Fq(\000)p Ft(])p
+Fj(word)772 4551 y(here-document)390 4661 y(delimiter)275
+4792 y Fu(No)i(parameter)h(and)f(v)-5 b(ariable)32 b(expansion,)h
 (command)f(substitution,)h(arithmetic)g(expansion,)g(or)150
-2540 y(\014lename)26 b(expansion)g(is)g(p)s(erformed)e(on)i
+4902 y(\014lename)26 b(expansion)g(is)g(p)s(erformed)e(on)i
 Fr(w)m(ord)p Fu(.)39 b(If)25 b(an)m(y)i(part)e(of)h Fr(w)m(ord)j
 Fu(is)d(quoted,)i(the)e Fr(delimiter)33 b Fu(is)26 b(the)150
-2649 y(result)33 b(of)g(quote)g(remo)m(v)-5 b(al)34 b(on)f
+5011 y(result)33 b(of)g(quote)g(remo)m(v)-5 b(al)34 b(on)f
 Fr(w)m(ord)p Fu(,)g(and)f(the)h(lines)g(in)g(the)g(here-do)s(cumen)m(t)
-g(are)g(not)g(expanded.)47 b(If)150 2759 y Fr(w)m(ord)26
+g(are)g(not)g(expanded.)47 b(If)150 5121 y Fr(w)m(ord)26
 b Fu(is)c(unquoted,)h(all)g(lines)g(of)g(the)f(here-do)s(cumen)m(t)g
 (are)h(sub)5 b(jected)22 b(to)h(parameter)g(expansion,)h(com-)150
-2868 y(mand)30 b(substitution,)g(and)g(arithmetic)h(expansion,)g(the)f
+5230 y(mand)30 b(substitution,)g(and)g(arithmetic)h(expansion,)g(the)f
 (c)m(haracter)i(sequence)f Ft(\\newline)d Fu(is)j(ignored,)150
-2978 y(and)f(`)p Ft(\\)p Fu(')g(m)m(ust)h(b)s(e)e(used)h(to)h(quote)g
+5340 y(and)f(`)p Ft(\\)p Fu(')g(m)m(ust)h(b)s(e)e(used)h(to)h(quote)g
 (the)g(c)m(haracters)g(`)p Ft(\\)p Fu(',)g(`)p Ft($)p
-Fu(',)g(and)f(`)p Ft(`)p Fu('.)275 3114 y(If)21 b(the)i(redirection)g
-(op)s(erator)g(is)f(`)p Ft(<<-)p Fu(',)i(then)e(all)h(leading)g(tab)g
-(c)m(haracters)h(are)e(stripp)s(ed)f(from)h(input)150
-3224 y(lines)33 b(and)f(the)h(line)h(con)m(taining)g
-Fr(delimiter)p Fu(.)49 b(This)32 b(allo)m(ws)i(here-do)s(cumen)m(ts)f
-(within)f(shell)i(scripts)e(to)150 3333 y(b)s(e)e(inden)m(ted)g(in)g(a)
-h(natural)f(fashion.)150 3534 y Fk(3.6.7)63 b(Here)41
-b(Strings)150 3681 y Fu(A)30 b(v)-5 b(arian)m(t)32 b(of)e(here)h(do)s
-(cumen)m(ts,)f(the)g(format)h(is:)390 3817 y Ft([)p Fj(n)p
-Ft(]<<<)46 b Fj(word)275 3953 y Fu(The)29 b Fr(w)m(ord)k
-Fu(undergo)s(es)c(tilde)i(expansion,)f(parameter)h(and)e(v)-5
-b(ariable)31 b(expansion,)f(command)g(sub-)150 4063 y(stitution,)25
-b(arithmetic)f(expansion,)h(and)d(quote)h(remo)m(v)-5
-b(al.)40 b(P)m(athname)23 b(expansion)g(and)f(w)m(ord)g(splitting)150
-4172 y(are)35 b(not)g(p)s(erformed.)51 b(The)34 b(result)h(is)g
-(supplied)e(as)i(a)f(single)i(string,)f(with)g(a)g(newline)f(app)s
-(ended,)g(to)150 4282 y(the)d(command)f(on)g(its)h(standard)e(input)h
-(\(or)g(\014le)h(descriptor)f Fr(n)g Fu(if)g Fr(n)g Fu(is)h(sp)s
-(eci\014ed\).)150 4483 y Fk(3.6.8)63 b(Duplicating)41
-b(File)g(Descriptors)150 4630 y Fu(The)30 b(redirection)h(op)s(erator)
-390 4766 y Ft([)p Fj(n)p Ft(]<&)p Fj(word)150 4902 y
-Fu(is)k(used)e(to)j(duplicate)f(input)f(\014le)g(descriptors.)53
-b(If)34 b Fr(w)m(ord)k Fu(expands)c(to)h(one)g(or)g(more)g(digits,)h
-(the)f(\014le)150 5011 y(descriptor)e(denoted)h(b)m(y)f
-Fr(n)g Fu(is)g(made)h(to)g(b)s(e)f(a)g(cop)m(y)h(of)g(that)g(\014le)f
-(descriptor.)50 b(If)33 b(the)h(digits)g(in)f Fr(w)m(ord)150
-5121 y Fu(do)c(not)h(sp)s(ecify)f(a)h(\014le)f(descriptor)g(op)s(en)g
-(for)g(input,)g(a)h(redirection)g(error)f(o)s(ccurs.)40
-b(If)29 b Fr(w)m(ord)j Fu(ev)-5 b(aluates)150 5230 y(to)31
-b(`)p Ft(-)p Fu(',)g(\014le)g(descriptor)g Fr(n)f Fu(is)g(closed.)43
-b(If)30 b Fr(n)g Fu(is)g(not)h(sp)s(eci\014ed,)f(the)h(standard)f
-(input)g(\(\014le)h(descriptor)f(0\))150 5340 y(is)g(used.)p
-eop end
+Fu(',)g(and)f(`)p Ft(`)p Fu('.)p eop end
 %%Page: 37 43
 TeXDict begin 37 42 bop 150 -116 a Fu(Chapter)30 b(3:)41
 b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(37)275 299
-y(The)29 b(op)s(erator)390 432 y Ft([)p Fj(n)p Ft(]>&)p
-Fj(word)150 565 y Fu(is)40 b(used)g(similarly)h(to)g(duplicate)f
-(output)g(\014le)h(descriptors.)70 b(If)40 b Fr(n)f Fu(is)i(not)f(sp)s
-(eci\014ed,)i(the)f(standard)150 674 y(output)30 b(\(\014le)g
-(descriptor)g(1\))h(is)f(used.)39 b(If)30 b(the)g(digits)h(in)e
-Fr(w)m(ord)34 b Fu(do)29 b(not)i(sp)s(ecify)e(a)i(\014le)f(descriptor)g
-(op)s(en)150 784 y(for)35 b(output,)h(a)g(redirection)g(error)e(o)s
-(ccurs.)55 b(If)35 b Fr(w)m(ord)j Fu(ev)-5 b(aluates)37
-b(to)f(`)p Ft(-)p Fu(',)h(\014le)e(descriptor)g Fr(n)g
-Fu(is)g(closed.)150 894 y(As)f(a)g(sp)s(ecial)h(case,)h(if)e
-Fr(n)f Fu(is)h(omitted,)i(and)e Fr(w)m(ord)j Fu(do)s(es)d(not)g(expand)
-f(to)i(one)f(or)g(more)g(digits)h(or)f(`)p Ft(-)p Fu(',)150
-1003 y(the)d(standard)e(output)h(and)g(standard)f(error)h(are)h
-(redirected)g(as)g(describ)s(ed)e(previously)-8 b(.)150
-1199 y Fk(3.6.9)63 b(Mo)m(ving)41 b(File)h(Descriptors)150
-1346 y Fu(The)30 b(redirection)h(op)s(erator)390 1479
-y Ft([)p Fj(n)p Ft(]<&)p Fj(digit)p Ft(-)150 1612 y Fu(mo)m(v)m(es)i
-(the)f(\014le)g(descriptor)f Fr(digit)k Fu(to)d(\014le)g(descriptor)g
-Fr(n)p Fu(,)f(or)h(the)g(standard)f(input)f(\(\014le)j(descriptor)e
-(0\))150 1722 y(if)f Fr(n)g Fu(is)h(not)f(sp)s(eci\014ed.)40
-b Fr(digit)33 b Fu(is)e(closed)g(after)g(b)s(eing)f(duplicated)g(to)h
-Fr(n)p Fu(.)275 1855 y(Similarly)-8 b(,)31 b(the)f(redirection)h(op)s
-(erator)390 1988 y Ft([)p Fj(n)p Ft(]>&)p Fj(digit)p
-Ft(-)150 2121 y Fu(mo)m(v)m(es)e(the)g(\014le)f(descriptor)f
+y(If)21 b(the)i(redirection)g(op)s(erator)g(is)f(`)p
+Ft(<<-)p Fu(',)i(then)e(all)h(leading)g(tab)g(c)m(haracters)h(are)e
+(stripp)s(ed)f(from)h(input)150 408 y(lines)33 b(and)f(the)h(line)h
+(con)m(taining)g Fr(delimiter)p Fu(.)49 b(This)32 b(allo)m(ws)i
+(here-do)s(cumen)m(ts)f(within)f(shell)i(scripts)e(to)150
+518 y(b)s(e)e(inden)m(ted)g(in)g(a)h(natural)f(fashion.)150
+709 y Fk(3.6.7)63 b(Here)41 b(Strings)150 856 y Fu(A)30
+b(v)-5 b(arian)m(t)32 b(of)e(here)h(do)s(cumen)m(ts,)f(the)g(format)h
+(is:)390 987 y Ft([)p Fj(n)p Ft(]<<<)46 b Fj(word)275
+1117 y Fu(The)29 b Fr(w)m(ord)k Fu(undergo)s(es)c(tilde)i(expansion,)f
+(parameter)h(and)e(v)-5 b(ariable)31 b(expansion,)f(command)g(sub-)150
+1227 y(stitution,)25 b(arithmetic)f(expansion,)h(and)d(quote)h(remo)m
+(v)-5 b(al.)40 b(P)m(athname)23 b(expansion)g(and)f(w)m(ord)g
+(splitting)150 1336 y(are)35 b(not)g(p)s(erformed.)51
+b(The)34 b(result)h(is)g(supplied)e(as)i(a)f(single)i(string,)f(with)g
+(a)g(newline)f(app)s(ended,)g(to)150 1446 y(the)d(command)f(on)g(its)h
+(standard)e(input)h(\(or)g(\014le)h(descriptor)f Fr(n)g
+Fu(if)g Fr(n)g Fu(is)h(sp)s(eci\014ed\).)150 1637 y Fk(3.6.8)63
+b(Duplicating)41 b(File)g(Descriptors)150 1784 y Fu(The)30
+b(redirection)h(op)s(erator)390 1914 y Ft([)p Fj(n)p
+Ft(]<&)p Fj(word)150 2045 y Fu(is)k(used)e(to)j(duplicate)f(input)f
+(\014le)g(descriptors.)53 b(If)34 b Fr(w)m(ord)k Fu(expands)c(to)h(one)
+g(or)g(more)g(digits,)h(the)f(\014le)150 2154 y(descriptor)e(denoted)h
+(b)m(y)f Fr(n)g Fu(is)g(made)h(to)g(b)s(e)f(a)g(cop)m(y)h(of)g(that)g
+(\014le)f(descriptor.)50 b(If)33 b(the)h(digits)g(in)f
+Fr(w)m(ord)150 2264 y Fu(do)c(not)h(sp)s(ecify)f(a)h(\014le)f
+(descriptor)g(op)s(en)g(for)g(input,)g(a)h(redirection)g(error)f(o)s
+(ccurs.)40 b(If)29 b Fr(w)m(ord)j Fu(ev)-5 b(aluates)150
+2373 y(to)31 b(`)p Ft(-)p Fu(',)g(\014le)g(descriptor)g
+Fr(n)f Fu(is)g(closed.)43 b(If)30 b Fr(n)g Fu(is)g(not)h(sp)s
+(eci\014ed,)f(the)h(standard)f(input)g(\(\014le)h(descriptor)f(0\))150
+2483 y(is)g(used.)275 2613 y(The)f(op)s(erator)390 2744
+y Ft([)p Fj(n)p Ft(]>&)p Fj(word)150 2874 y Fu(is)40
+b(used)g(similarly)h(to)g(duplicate)f(output)g(\014le)h(descriptors.)70
+b(If)40 b Fr(n)f Fu(is)i(not)f(sp)s(eci\014ed,)i(the)f(standard)150
+2984 y(output)30 b(\(\014le)g(descriptor)g(1\))h(is)f(used.)39
+b(If)30 b(the)g(digits)h(in)e Fr(w)m(ord)34 b Fu(do)29
+b(not)i(sp)s(ecify)e(a)i(\014le)f(descriptor)g(op)s(en)150
+3093 y(for)35 b(output,)h(a)g(redirection)g(error)e(o)s(ccurs.)55
+b(If)35 b Fr(w)m(ord)j Fu(ev)-5 b(aluates)37 b(to)f(`)p
+Ft(-)p Fu(',)h(\014le)e(descriptor)g Fr(n)g Fu(is)g(closed.)150
+3203 y(As)f(a)g(sp)s(ecial)h(case,)h(if)e Fr(n)f Fu(is)h(omitted,)i
+(and)e Fr(w)m(ord)j Fu(do)s(es)d(not)g(expand)f(to)i(one)f(or)g(more)g
+(digits)h(or)f(`)p Ft(-)p Fu(',)150 3313 y(the)d(standard)e(output)h
+(and)g(standard)f(error)h(are)h(redirected)g(as)g(describ)s(ed)e
+(previously)-8 b(.)150 3504 y Fk(3.6.9)63 b(Mo)m(ving)41
+b(File)h(Descriptors)150 3651 y Fu(The)30 b(redirection)h(op)s(erator)
+390 3781 y Ft([)p Fj(n)p Ft(]<&)p Fj(digit)p Ft(-)150
+3911 y Fu(mo)m(v)m(es)i(the)f(\014le)g(descriptor)f Fr(digit)k
+Fu(to)d(\014le)g(descriptor)g Fr(n)p Fu(,)f(or)h(the)g(standard)f
+(input)f(\(\014le)j(descriptor)e(0\))150 4021 y(if)f
+Fr(n)g Fu(is)h(not)f(sp)s(eci\014ed.)40 b Fr(digit)33
+b Fu(is)e(closed)g(after)g(b)s(eing)f(duplicated)g(to)h
+Fr(n)p Fu(.)275 4151 y(Similarly)-8 b(,)31 b(the)f(redirection)h(op)s
+(erator)390 4282 y Ft([)p Fj(n)p Ft(]>&)p Fj(digit)p
+Ft(-)150 4412 y Fu(mo)m(v)m(es)e(the)g(\014le)f(descriptor)f
 Fr(digit)k Fu(to)e(\014le)f(descriptor)g Fr(n)p Fu(,)g(or)g(the)g
 (standard)f(output)h(\(\014le)g(descriptor)g(1\))150
-2230 y(if)i Fr(n)g Fu(is)h(not)f(sp)s(eci\014ed.)150
-2426 y Fk(3.6.10)63 b(Op)s(ening)42 b(File)g(Descriptors)g(for)g
-(Reading)e(and)h(W)-10 b(riting)150 2573 y Fu(The)30
-b(redirection)h(op)s(erator)390 2706 y Ft([)p Fj(n)p
-Ft(]<>)p Fj(word)150 2839 y Fu(causes)39 b(the)g(\014le)g(whose)g(name)
+4522 y(if)i Fr(n)g Fu(is)h(not)f(sp)s(eci\014ed.)150
+4713 y Fk(3.6.10)63 b(Op)s(ening)42 b(File)g(Descriptors)g(for)g
+(Reading)e(and)h(W)-10 b(riting)150 4860 y Fu(The)30
+b(redirection)h(op)s(erator)390 4990 y Ft([)p Fj(n)p
+Ft(]<>)p Fj(word)150 5121 y Fu(causes)39 b(the)g(\014le)g(whose)g(name)
 g(is)g(the)g(expansion)g(of)g Fr(w)m(ord)j Fu(to)d(b)s(e)g(op)s(ened)f
-(for)g(b)s(oth)h(reading)g(and)150 2949 y(writing)33
+(for)g(b)s(oth)h(reading)g(and)150 5230 y(writing)33
 b(on)f(\014le)h(descriptor)f Fr(n)p Fu(,)h(or)g(on)f(\014le)h
 (descriptor)g(0)g(if)f Fr(n)g Fu(is)h(not)g(sp)s(eci\014ed.)47
-b(If)32 b(the)h(\014le)f(do)s(es)h(not)150 3058 y(exist,)e(it)g(is)g
-(created.)150 3296 y Fs(3.7)68 b(Executing)46 b(Commands)150
-3519 y Fk(3.7.1)63 b(Simple)41 b(Command)h(Expansion)150
-3666 y Fu(When)33 b(a)g(simple)g(command)g(is)g(executed,)h(the)g
-(shell)f(p)s(erforms)e(the)i(follo)m(wing)i(expansions,)e(assign-)150
-3775 y(men)m(ts,)e(and)f(redirections,)h(from)f(left)h(to)g(righ)m(t.)
-199 3908 y(1.)61 b(The)38 b(w)m(ords)f(that)i(the)g(parser)e(has)h
-(mark)m(ed)g(as)h(v)-5 b(ariable)39 b(assignmen)m(ts)g(\(those)g
-(preceding)f(the)330 4018 y(command)30 b(name\))h(and)f(redirections)h
-(are)f(sa)m(v)m(ed)i(for)e(later)h(pro)s(cessing.)199
-4151 y(2.)61 b(The)39 b(w)m(ords)g(that)i(are)f(not)g(v)-5
-b(ariable)40 b(assignmen)m(ts)h(or)e(redirections)i(are)f(expanded)f
-(\(see)h(Sec-)330 4260 y(tion)d(3.5)i([Shell)e(Expansions],)h(page)g
-(22\).)61 b(If)37 b(an)m(y)g(w)m(ords)f(remain)h(after)h(expansion,)h
-(the)e(\014rst)330 4370 y(w)m(ord)31 b(is)g(tak)m(en)h(to)g(b)s(e)f
-(the)g(name)h(of)f(the)h(command)f(and)f(the)i(remaining)f(w)m(ords)g
-(are)g(the)h(argu-)330 4479 y(men)m(ts.)199 4612 y(3.)61
-b(Redirections)25 b(are)f(p)s(erformed)f(as)h(describ)s(ed)f(ab)s(o)m
-(v)m(e)i(\(see)g(Section)g(3.6)g([Redirections],)i(page)d(33\).)199
-4745 y(4.)61 b(The)25 b(text)h(after)f(the)g(`)p Ft(=)p
-Fu(')h(in)e(eac)m(h)j(v)-5 b(ariable)25 b(assignmen)m(t)h(undergo)s(es)
-e(tilde)i(expansion,)g(parameter)330 4855 y(expansion,)49
-b(command)d(substitution,)j(arithmetic)d(expansion,)k(and)45
-b(quote)h(remo)m(v)-5 b(al)46 b(b)s(efore)330 4964 y(b)s(eing)30
-b(assigned)h(to)g(the)f(v)-5 b(ariable.)275 5121 y(If)32
-b(no)i(command)f(name)g(results,)h(the)g(v)-5 b(ariable)34
-b(assignmen)m(ts)g(a\013ect)h(the)f(curren)m(t)f(shell)h(en)m(viron-)
-150 5230 y(men)m(t.)39 b(Otherwise,)27 b(the)e(v)-5 b(ariables)26
-b(are)g(added)f(to)h(the)f(en)m(vironmen)m(t)h(of)g(the)f(executed)h
-(command)g(and)150 5340 y(do)35 b(not)f(a\013ect)j(the)d(curren)m(t)h
-(shell)g(en)m(vironmen)m(t.)54 b(If)34 b(an)m(y)h(of)g(the)f(assignmen)
-m(ts)i(attempts)f(to)h(assign)p eop end
+b(If)32 b(the)h(\014le)f(do)s(es)h(not)150 5340 y(exist,)e(it)g(is)g
+(created.)p eop end
 %%Page: 38 44
 TeXDict begin 38 43 bop 150 -116 a Fu(Chapter)30 b(3:)41
 b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(38)150 299
-y(a)39 b(v)-5 b(alue)39 b(to)g(a)g(readonly)f(v)-5 b(ariable,)42
-b(an)c(error)g(o)s(ccurs,)j(and)c(the)i(command)f(exits)h(with)g(a)f
-(non-zero)150 408 y(status.)275 538 y(If)33 b(no)g(command)g(name)h
-(results,)g(redirections)g(are)g(p)s(erformed,)f(but)g(do)h(not)f
-(a\013ect)i(the)f(curren)m(t)150 648 y(shell)d(en)m(vironmen)m(t.)41
-b(A)30 b(redirection)h(error)f(causes)h(the)g(command)f(to)h(exit)g
-(with)f(a)h(non-zero)g(status.)275 778 y(If)26 b(there)i(is)f(a)h
-(command)f(name)h(left)g(after)g(expansion,)g(execution)h(pro)s(ceeds)e
-(as)g(describ)s(ed)f(b)s(elo)m(w.)150 887 y(Otherwise,)39
-b(the)e(command)g(exits.)62 b(If)37 b(one)g(of)g(the)h(expansions)f
-(con)m(tained)h(a)g(command)f(substitu-)150 997 y(tion,)i(the)d(exit)h
-(status)g(of)f(the)h(command)f(is)h(the)f(exit)h(status)g(of)f(the)h
-(last)g(command)f(substitution)150 1107 y(p)s(erformed.)55
-b(If)35 b(there)g(w)m(ere)h(no)g(command)f(substitutions,)i(the)e
-(command)h(exits)g(with)f(a)h(status)g(of)150 1216 y(zero.)150
-1406 y Fk(3.7.2)63 b(Command)41 b(Searc)m(h)f(and)h(Execution)150
-1553 y Fu(After)i(a)h(command)f(has)g(b)s(een)f(split)h(in)m(to)h(w)m
-(ords,)j(if)c(it)g(results)g(in)g(a)h(simple)f(command)g(and)f(an)150
-1663 y(optional)32 b(list)f(of)f(argumen)m(ts,)h(the)g(follo)m(wing)g
-(actions)h(are)f(tak)m(en.)199 1793 y(1.)61 b(If)24 b(the)g(command)g
-(name)g(con)m(tains)i(no)e(slashes,)i(the)e(shell)h(attempts)g(to)g(lo)
-s(cate)h(it.)39 b(If)24 b(there)g(exists)330 1902 y(a)h(shell)g
-(function)f(b)m(y)g(that)h(name,)h(that)f(function)f(is)h(in)m(v)m(ok)m
-(ed)h(as)e(describ)s(ed)g(in)g(Section)h(3.3)h([Shell)330
-2012 y(F)-8 b(unctions],)31 b(page)h(17.)199 2142 y(2.)61
-b(If)41 b(the)g(name)h(do)s(es)f(not)g(matc)m(h)i(a)e(function,)j(the)e
-(shell)f(searc)m(hes)i(for)e(it)h(in)f(the)g(list)h(of)g(shell)330
-2251 y(builtins.)e(If)30 b(a)h(matc)m(h)g(is)f(found,)g(that)h(builtin)
-f(is)g(in)m(v)m(ok)m(ed.)199 2381 y(3.)61 b(If)40 b(the)g(name)h(is)f
-(neither)h(a)f(shell)h(function)f(nor)g(a)g(builtin,)j(and)d(con)m
-(tains)h(no)g(slashes,)i(Bash)330 2491 y(searc)m(hes)c(eac)m(h)g
-(elemen)m(t)g(of)g Ft($PATH)d Fu(for)i(a)g(directory)h(con)m(taining)g
-(an)f(executable)h(\014le)f(b)m(y)g(that)330 2600 y(name.)56
-b(Bash)36 b(uses)f(a)h(hash)e(table)j(to)f(remem)m(b)s(er)f(the)h(full)
-f(pathnames)g(of)h(executable)h(\014les)e(to)330 2710
-y(a)m(v)m(oid)e(m)m(ultiple)f Ft(PATH)f Fu(searc)m(hes)i(\(see)f(the)g
-(description)g(of)f Ft(hash)g Fu(in)g(Section)i(4.1)f([Bourne)g(Shell)
-330 2819 y(Builtins],)37 b(page)f(43\).)55 b(A)35 b(full)g(searc)m(h)g
-(of)g(the)g(directories)h(in)f Ft($PATH)e Fu(is)i(p)s(erformed)f(only)h
-(if)g(the)330 2929 y(command)24 b(is)h(not)g(found)e(in)i(the)g(hash)f
-(table.)39 b(If)25 b(the)f(searc)m(h)i(is)e(unsuccessful,)h(the)g
-(shell)g(searc)m(hes)330 3039 y(for)e(a)h(de\014ned)e(shell)h(function)
-h(named)e Ft(command_not_found_handle)p Fu(.)32 b(If)23
-b(that)h(function)f(exists,)330 3148 y(it)33 b(is)f(in)m(v)m(ok)m(ed)i
-(in)e(a)h(separate)h(execution)f(en)m(vironmen)m(t)g(with)f(the)h
-(original)h(command)e(and)g(the)330 3258 y(original)26
-b(command's)e(argumen)m(ts)h(as)g(its)g(argumen)m(ts,)h(and)e(the)h
-(function's)f(exit)i(status)f(b)s(ecomes)330 3367 y(the)j(exit)g
-(status)g(of)f(that)h(subshell.)39 b(If)27 b(that)h(function)f(is)h
-(not)g(de\014ned,)f(the)g(shell)h(prin)m(ts)f(an)g(error)330
-3477 y(message)k(and)f(returns)f(an)i(exit)g(status)g(of)f(127.)199
-3607 y(4.)61 b(If)33 b(the)g(searc)m(h)h(is)g(successful,)g(or)f(if)g
-(the)h(command)f(name)g(con)m(tains)i(one)f(or)f(more)g(slashes,)i(the)
-330 3716 y(shell)g(executes)h(the)f(named)f(program)g(in)h(a)g
-(separate)h(execution)f(en)m(vironmen)m(t.)55 b(Argumen)m(t)35
-b(0)330 3826 y(is)30 b(set)h(to)h(the)e(name)h(giv)m(en,)g(and)f(the)h
-(remaining)f(argumen)m(ts)h(to)g(the)g(command)f(are)h(set)g(to)g(the)
-330 3936 y(argumen)m(ts)g(supplied,)e(if)h(an)m(y)-8
-b(.)199 4065 y(5.)61 b(If)35 b(this)h(execution)h(fails)f(b)s(ecause)g
+y Fs(3.7)68 b(Executing)46 b(Commands)150 523 y Fk(3.7.1)63
+b(Simple)41 b(Command)h(Expansion)150 670 y Fu(When)33
+b(a)g(simple)g(command)g(is)g(executed,)h(the)g(shell)f(p)s(erforms)e
+(the)i(follo)m(wing)i(expansions,)e(assign-)150 779 y(men)m(ts,)e(and)f
+(redirections,)h(from)f(left)h(to)g(righ)m(t.)199 913
+y(1.)61 b(The)38 b(w)m(ords)f(that)i(the)g(parser)e(has)h(mark)m(ed)g
+(as)h(v)-5 b(ariable)39 b(assignmen)m(ts)g(\(those)g(preceding)f(the)
+330 1023 y(command)30 b(name\))h(and)f(redirections)h(are)f(sa)m(v)m
+(ed)i(for)e(later)h(pro)s(cessing.)199 1157 y(2.)61 b(The)39
+b(w)m(ords)g(that)i(are)f(not)g(v)-5 b(ariable)40 b(assignmen)m(ts)h
+(or)e(redirections)i(are)f(expanded)f(\(see)h(Sec-)330
+1267 y(tion)d(3.5)i([Shell)e(Expansions],)h(page)g(22\).)61
+b(If)37 b(an)m(y)g(w)m(ords)f(remain)h(after)h(expansion,)h(the)e
+(\014rst)330 1376 y(w)m(ord)31 b(is)g(tak)m(en)h(to)g(b)s(e)f(the)g
+(name)h(of)f(the)h(command)f(and)f(the)i(remaining)f(w)m(ords)g(are)g
+(the)h(argu-)330 1486 y(men)m(ts.)199 1620 y(3.)61 b(Redirections)25
+b(are)f(p)s(erformed)f(as)h(describ)s(ed)f(ab)s(o)m(v)m(e)i(\(see)g
+(Section)g(3.6)g([Redirections],)i(page)d(34\).)199 1754
+y(4.)61 b(The)25 b(text)h(after)f(the)g(`)p Ft(=)p Fu(')h(in)e(eac)m(h)
+j(v)-5 b(ariable)25 b(assignmen)m(t)h(undergo)s(es)e(tilde)i
+(expansion,)g(parameter)330 1864 y(expansion,)49 b(command)d
+(substitution,)j(arithmetic)d(expansion,)k(and)45 b(quote)h(remo)m(v)-5
+b(al)46 b(b)s(efore)330 1973 y(b)s(eing)30 b(assigned)h(to)g(the)f(v)-5
+b(ariable.)275 2132 y(If)32 b(no)i(command)f(name)g(results,)h(the)g(v)
+-5 b(ariable)34 b(assignmen)m(ts)g(a\013ect)h(the)f(curren)m(t)f(shell)
+h(en)m(viron-)150 2242 y(men)m(t.)39 b(Otherwise,)27
+b(the)e(v)-5 b(ariables)26 b(are)g(added)f(to)h(the)f(en)m(vironmen)m
+(t)h(of)g(the)f(executed)h(command)g(and)150 2351 y(do)35
+b(not)f(a\013ect)j(the)d(curren)m(t)h(shell)g(en)m(vironmen)m(t.)54
+b(If)34 b(an)m(y)h(of)g(the)f(assignmen)m(ts)i(attempts)f(to)h(assign)
+150 2461 y(a)j(v)-5 b(alue)39 b(to)g(a)g(readonly)f(v)-5
+b(ariable,)42 b(an)c(error)g(o)s(ccurs,)j(and)c(the)i(command)f(exits)h
+(with)g(a)f(non-zero)150 2570 y(status.)275 2705 y(If)33
+b(no)g(command)g(name)h(results,)g(redirections)g(are)g(p)s(erformed,)f
+(but)g(do)h(not)f(a\013ect)i(the)f(curren)m(t)150 2814
+y(shell)d(en)m(vironmen)m(t.)41 b(A)30 b(redirection)h(error)f(causes)h
+(the)g(command)f(to)h(exit)g(with)f(a)h(non-zero)g(status.)275
+2948 y(If)26 b(there)i(is)f(a)h(command)f(name)h(left)g(after)g
+(expansion,)g(execution)h(pro)s(ceeds)e(as)g(describ)s(ed)f(b)s(elo)m
+(w.)150 3058 y(Otherwise,)39 b(the)e(command)g(exits.)62
+b(If)37 b(one)g(of)g(the)h(expansions)f(con)m(tained)h(a)g(command)f
+(substitu-)150 3167 y(tion,)i(the)d(exit)h(status)g(of)f(the)h(command)
+f(is)h(the)f(exit)h(status)g(of)f(the)h(last)g(command)f(substitution)
+150 3277 y(p)s(erformed.)55 b(If)35 b(there)g(w)m(ere)h(no)g(command)f
+(substitutions,)i(the)e(command)h(exits)g(with)f(a)h(status)g(of)150
+3387 y(zero.)150 3585 y Fk(3.7.2)63 b(Command)41 b(Searc)m(h)f(and)h
+(Execution)150 3732 y Fu(After)i(a)h(command)f(has)g(b)s(een)f(split)h
+(in)m(to)h(w)m(ords,)j(if)c(it)g(results)g(in)g(a)h(simple)f(command)g
+(and)f(an)150 3842 y(optional)32 b(list)f(of)f(argumen)m(ts,)h(the)g
+(follo)m(wing)g(actions)h(are)f(tak)m(en.)199 3976 y(1.)61
+b(If)24 b(the)g(command)g(name)g(con)m(tains)i(no)e(slashes,)i(the)e
+(shell)h(attempts)g(to)g(lo)s(cate)h(it.)39 b(If)24 b(there)g(exists)
+330 4085 y(a)h(shell)g(function)f(b)m(y)g(that)h(name,)h(that)f
+(function)f(is)h(in)m(v)m(ok)m(ed)h(as)e(describ)s(ed)g(in)g(Section)h
+(3.3)h([Shell)330 4195 y(F)-8 b(unctions],)31 b(page)h(17.)199
+4329 y(2.)61 b(If)41 b(the)g(name)h(do)s(es)f(not)g(matc)m(h)i(a)e
+(function,)j(the)e(shell)f(searc)m(hes)i(for)e(it)h(in)f(the)g(list)h
+(of)g(shell)330 4439 y(builtins.)e(If)30 b(a)h(matc)m(h)g(is)f(found,)g
+(that)h(builtin)f(is)g(in)m(v)m(ok)m(ed.)199 4573 y(3.)61
+b(If)40 b(the)g(name)h(is)f(neither)h(a)f(shell)h(function)f(nor)g(a)g
+(builtin,)j(and)d(con)m(tains)h(no)g(slashes,)i(Bash)330
+4682 y(searc)m(hes)c(eac)m(h)g(elemen)m(t)g(of)g Ft($PATH)d
+Fu(for)i(a)g(directory)h(con)m(taining)g(an)f(executable)h(\014le)f(b)m
+(y)g(that)330 4792 y(name.)56 b(Bash)36 b(uses)f(a)h(hash)e(table)j(to)
+f(remem)m(b)s(er)f(the)h(full)f(pathnames)g(of)h(executable)h(\014les)e
+(to)330 4902 y(a)m(v)m(oid)e(m)m(ultiple)f Ft(PATH)f
+Fu(searc)m(hes)i(\(see)f(the)g(description)g(of)f Ft(hash)g
+Fu(in)g(Section)i(4.1)f([Bourne)g(Shell)330 5011 y(Builtins],)37
+b(page)f(43\).)55 b(A)35 b(full)g(searc)m(h)g(of)g(the)g(directories)h
+(in)f Ft($PATH)e Fu(is)i(p)s(erformed)f(only)h(if)g(the)330
+5121 y(command)24 b(is)h(not)g(found)e(in)i(the)g(hash)f(table.)39
+b(If)25 b(the)f(searc)m(h)i(is)e(unsuccessful,)h(the)g(shell)g(searc)m
+(hes)330 5230 y(for)e(a)h(de\014ned)e(shell)h(function)h(named)e
+Ft(command_not_found_handle)p Fu(.)32 b(If)23 b(that)h(function)f
+(exists,)330 5340 y(it)33 b(is)f(in)m(v)m(ok)m(ed)i(in)e(a)h(separate)h
+(execution)f(en)m(vironmen)m(t)g(with)f(the)h(original)h(command)e(and)
+g(the)p eop end
+%%Page: 39 45
+TeXDict begin 39 44 bop 150 -116 a Fu(Chapter)30 b(3:)41
+b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(39)330 299
+y(original)26 b(command's)e(argumen)m(ts)h(as)g(its)g(argumen)m(ts,)h
+(and)e(the)h(function's)f(exit)i(status)f(b)s(ecomes)330
+408 y(the)j(exit)g(status)g(of)f(that)h(subshell.)39
+b(If)27 b(that)h(function)f(is)h(not)g(de\014ned,)f(the)g(shell)h(prin)
+m(ts)f(an)g(error)330 518 y(message)k(and)f(returns)f(an)i(exit)g
+(status)g(of)f(127.)199 654 y(4.)61 b(If)33 b(the)g(searc)m(h)h(is)g
+(successful,)g(or)f(if)g(the)h(command)f(name)g(con)m(tains)i(one)f(or)
+f(more)g(slashes,)i(the)330 763 y(shell)g(executes)h(the)f(named)f
+(program)g(in)h(a)g(separate)h(execution)f(en)m(vironmen)m(t.)55
+b(Argumen)m(t)35 b(0)330 873 y(is)30 b(set)h(to)h(the)e(name)h(giv)m
+(en,)g(and)f(the)h(remaining)f(argumen)m(ts)h(to)g(the)g(command)f(are)
+h(set)g(to)g(the)330 983 y(argumen)m(ts)g(supplied,)e(if)h(an)m(y)-8
+b(.)199 1118 y(5.)61 b(If)35 b(this)h(execution)h(fails)f(b)s(ecause)g
 (the)f(\014le)h(is)g(not)g(in)f(executable)j(format,)f(and)e(the)h
-(\014le)g(is)g(not)330 4175 y(a)d(directory)-8 b(,)34
+(\014le)g(is)g(not)330 1228 y(a)d(directory)-8 b(,)34
 b(it)f(is)g(assumed)e(to)j(b)s(e)d(a)i Fr(shell)g(script)h
 Fu(and)e(the)h(shell)f(executes)i(it)f(as)g(describ)s(ed)e(in)330
-4285 y(Section)g(3.8)h([Shell)e(Scripts],)g(page)i(41.)199
-4415 y(6.)61 b(If)38 b(the)h(command)f(w)m(as)h(not)g(b)s(egun)e(async)
+1338 y(Section)g(3.8)h([Shell)e(Scripts],)g(page)i(41.)199
+1473 y(6.)61 b(If)38 b(the)h(command)f(w)m(as)h(not)g(b)s(egun)e(async)
 m(hronously)-8 b(,)42 b(the)c(shell)h(w)m(aits)h(for)e(the)h(command)f
-(to)330 4524 y(complete)32 b(and)e(collects)i(its)f(exit)g(status.)150
-4714 y Fk(3.7.3)63 b(Command)41 b(Execution)f(En)m(vironmen)m(t)150
-4861 y Fu(The)30 b(shell)g(has)h(an)f Fr(execution)h(en)m(vironmen)m(t)
+(to)330 1583 y(complete)32 b(and)e(collects)i(its)f(exit)g(status.)150
+1785 y Fk(3.7.3)63 b(Command)41 b(Execution)f(En)m(vironmen)m(t)150
+1932 y Fu(The)30 b(shell)g(has)h(an)f Fr(execution)h(en)m(vironmen)m(t)
 p Fu(,)h(whic)m(h)e(consists)h(of)f(the)h(follo)m(wing:)225
-4991 y Fq(\017)60 b Fu(op)s(en)32 b(\014les)g(inherited)g(b)m(y)h(the)f
+2069 y Fq(\017)60 b Fu(op)s(en)32 b(\014les)g(inherited)g(b)m(y)h(the)f
 (shell)h(at)g(in)m(v)m(o)s(cation,)j(as)c(mo)s(di\014ed)g(b)m(y)g
-(redirections)h(supplied)e(to)330 5101 y(the)g Ft(exec)e
-Fu(builtin)225 5230 y Fq(\017)60 b Fu(the)28 b(curren)m(t)g(w)m(orking)
+(redirections)h(supplied)e(to)330 2178 y(the)g Ft(exec)e
+Fu(builtin)225 2314 y Fq(\017)60 b Fu(the)28 b(curren)m(t)g(w)m(orking)
 h(directory)g(as)f(set)h(b)m(y)f Ft(cd)p Fu(,)g Ft(pushd)p
 Fu(,)g(or)g Ft(popd)p Fu(,)g(or)g(inherited)g(b)m(y)g(the)h(shell)f(at)
-330 5340 y(in)m(v)m(o)s(cation)p eop end
-%%Page: 39 45
-TeXDict begin 39 44 bop 150 -116 a Fu(Chapter)30 b(3:)41
-b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(39)225 299
-y Fq(\017)60 b Fu(the)31 b(\014le)f(creation)i(mo)s(de)e(mask)g(as)h
-(set)g(b)m(y)f Ft(umask)f Fu(or)h(inherited)g(from)g(the)h(shell's)f
-(paren)m(t)225 434 y Fq(\017)60 b Fu(curren)m(t)30 b(traps)g(set)h(b)m
-(y)f Ft(trap)225 570 y Fq(\017)60 b Fu(shell)30 b(parameters)f(that)h
-(are)g(set)g(b)m(y)g(v)-5 b(ariable)30 b(assignmen)m(t)g(or)g(with)f
-Ft(set)f Fu(or)i(inherited)f(from)g(the)330 680 y(shell's)i(paren)m(t)f
-(in)g(the)h(en)m(vironmen)m(t)225 815 y Fq(\017)60 b
-Fu(shell)44 b(functions)f(de\014ned)f(during)h(execution)i(or)e
+330 2424 y(in)m(v)m(o)s(cation)225 2560 y Fq(\017)60
+b Fu(the)31 b(\014le)f(creation)i(mo)s(de)e(mask)g(as)h(set)g(b)m(y)f
+Ft(umask)f Fu(or)h(inherited)g(from)g(the)h(shell's)f(paren)m(t)225
+2695 y Fq(\017)60 b Fu(curren)m(t)30 b(traps)g(set)h(b)m(y)f
+Ft(trap)225 2831 y Fq(\017)60 b Fu(shell)30 b(parameters)f(that)h(are)g
+(set)g(b)m(y)g(v)-5 b(ariable)30 b(assignmen)m(t)g(or)g(with)f
+Ft(set)f Fu(or)i(inherited)f(from)g(the)330 2941 y(shell's)i(paren)m(t)
+f(in)g(the)h(en)m(vironmen)m(t)225 3077 y Fq(\017)60
+b Fu(shell)44 b(functions)f(de\014ned)f(during)h(execution)i(or)e
 (inherited)h(from)f(the)h(shell's)g(paren)m(t)f(in)h(the)330
-925 y(en)m(vironmen)m(t)225 1061 y Fq(\017)60 b Fu(options)33
+3186 y(en)m(vironmen)m(t)225 3322 y Fq(\017)60 b Fu(options)33
 b(enabled)g(at)h(in)m(v)m(o)s(cation)h(\(either)f(b)m(y)f(default)g(or)
-g(with)g(command-line)g(argumen)m(ts\))h(or)330 1170
-y(b)m(y)c Ft(set)225 1306 y Fq(\017)60 b Fu(options)31
+g(with)g(command-line)g(argumen)m(ts\))h(or)330 3432
+y(b)m(y)c Ft(set)225 3567 y Fq(\017)60 b Fu(options)31
 b(enabled)f(b)m(y)g Ft(shopt)f Fu(\(see)j(Section)f(4.3.2)h([The)e
-(Shopt)g(Builtin],)h(page)g(65\))225 1441 y Fq(\017)60
+(Shopt)g(Builtin],)h(page)g(65\))225 3703 y Fq(\017)60
 b Fu(shell)31 b(aliases)g(de\014ned)f(with)g Ft(alias)f
 Fu(\(see)i(Section)g(6.6)h([Aliases],)g(page)f(92\))225
-1577 y Fq(\017)60 b Fu(v)-5 b(arious)50 b(pro)s(cess)f
+3839 y Fq(\017)60 b Fu(v)-5 b(arious)50 b(pro)s(cess)f
 Fm(id)p Fu(s,)55 b(including)49 b(those)i(of)e(bac)m(kground)h(jobs)f
-(\(see)i(Section)g(3.2.3)g([Lists],)330 1687 y(page)31
+(\(see)i(Section)g(3.2.3)g([Lists],)330 3948 y(page)31
 b(9\),)g(the)g(v)-5 b(alue)31 b(of)f Ft($$)p Fu(,)g(and)g(the)h(v)-5
-b(alue)31 b(of)f Ft($PPID)275 1849 y Fu(When)k(a)g(simple)h(command)f
+b(alue)31 b(of)f Ft($PPID)275 4112 y Fu(When)k(a)g(simple)h(command)f
 (other)g(than)g(a)h(builtin)f(or)g(shell)h(function)f(is)g(to)h(b)s(e)f
-(executed,)i(it)f(is)150 1959 y(in)m(v)m(ok)m(ed)25 b(in)f(a)g
+(executed,)i(it)f(is)150 4221 y(in)m(v)m(ok)m(ed)25 b(in)f(a)g
 (separate)h(execution)g(en)m(vironmen)m(t)g(that)f(consists)g(of)h(the)
-f(follo)m(wing.)40 b(Unless)24 b(otherwise)150 2068 y(noted,)31
+f(follo)m(wing.)40 b(Unless)24 b(otherwise)150 4331 y(noted,)31
 b(the)f(v)-5 b(alues)31 b(are)g(inherited)f(from)g(the)g(shell.)225
-2205 y Fq(\017)60 b Fu(the)31 b(shell's)h(op)s(en)e(\014les,)i(plus)e
+4468 y Fq(\017)60 b Fu(the)31 b(shell's)h(op)s(en)e(\014les,)i(plus)e
 (an)m(y)h(mo)s(di\014cations)h(and)e(additions)h(sp)s(eci\014ed)g(b)m
-(y)g(redirections)g(to)330 2315 y(the)g(command)225 2450
+(y)g(redirections)g(to)330 4578 y(the)g(command)225 4713
 y Fq(\017)60 b Fu(the)31 b(curren)m(t)f(w)m(orking)g(directory)225
-2586 y Fq(\017)60 b Fu(the)31 b(\014le)f(creation)i(mo)s(de)e(mask)225
-2722 y Fq(\017)60 b Fu(shell)32 b(v)-5 b(ariables)33
+4849 y Fq(\017)60 b Fu(the)31 b(\014le)f(creation)i(mo)s(de)e(mask)225
+4985 y Fq(\017)60 b Fu(shell)32 b(v)-5 b(ariables)33
 b(and)e(functions)h(mark)m(ed)g(for)g(exp)s(ort,)g(along)h(with)f(v)-5
-b(ariables)32 b(exp)s(orted)g(for)g(the)330 2831 y(command,)e(passed)g
+b(ariables)32 b(exp)s(orted)g(for)g(the)330 5095 y(command,)e(passed)g
 (in)g(the)h(en)m(vironmen)m(t)g(\(see)g(Section)g(3.7.4)i([En)m
-(vironmen)m(t],)e(page)g(39\))225 2967 y Fq(\017)60 b
+(vironmen)m(t],)e(page)g(40\))225 5230 y Fq(\017)60 b
 Fu(traps)31 b(caugh)m(t)h(b)m(y)f(the)g(shell)h(are)f(reset)h(to)g(the)
 f(v)-5 b(alues)32 b(inherited)e(from)h(the)g(shell's)h(paren)m(t,)g
-(and)330 3076 y(traps)e(ignored)h(b)m(y)f(the)g(shell)h(are)g(ignored)
-275 3239 y(A)41 b(command)g(in)m(v)m(ok)m(ed)i(in)e(this)h(separate)g
-(en)m(vironmen)m(t)g(cannot)g(a\013ect)h(the)f(shell's)g(execution)150
-3349 y(en)m(vironmen)m(t.)275 3485 y(Command)35 b(substitution,)j
+(and)330 5340 y(traps)e(ignored)h(b)m(y)f(the)g(shell)h(are)g(ignored)p
+eop end
+%%Page: 40 46
+TeXDict begin 40 45 bop 150 -116 a Fu(Chapter)30 b(3:)41
+b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(40)275 299
+y(A)41 b(command)g(in)m(v)m(ok)m(ed)i(in)e(this)h(separate)g(en)m
+(vironmen)m(t)g(cannot)g(a\013ect)h(the)f(shell's)g(execution)150
+408 y(en)m(vironmen)m(t.)275 552 y(Command)35 b(substitution,)j
 (commands)e(group)s(ed)f(with)i(paren)m(theses,)h(and)e(async)m
-(hronous)g(com-)150 3595 y(mands)c(are)h(in)m(v)m(ok)m(ed)i(in)d(a)i
+(hronous)g(com-)150 662 y(mands)c(are)h(in)m(v)m(ok)m(ed)i(in)d(a)i
 (subshell)e(en)m(vironmen)m(t)h(that)h(is)f(a)g(duplicate)h(of)f(the)g
-(shell)g(en)m(vironmen)m(t,)150 3705 y(except)i(that)g(traps)f(caugh)m
+(shell)g(en)m(vironmen)m(t,)150 772 y(except)i(that)g(traps)f(caugh)m
 (t)h(b)m(y)f(the)h(shell)f(are)g(reset)h(to)g(the)f(v)-5
 b(alues)35 b(that)g(the)f(shell)h(inherited)e(from)150
-3814 y(its)g(paren)m(t)f(at)h(in)m(v)m(o)s(cation.)49
+881 y(its)g(paren)m(t)f(at)h(in)m(v)m(o)s(cation.)49
 b(Builtin)32 b(commands)g(that)h(are)g(in)m(v)m(ok)m(ed)h(as)e(part)g
-(of)h(a)f(pip)s(eline)g(are)h(also)150 3924 y(executed)41
+(of)h(a)f(pip)s(eline)g(are)h(also)150 991 y(executed)41
 b(in)f(a)h(subshell)e(en)m(vironmen)m(t.)72 b(Changes)40
 b(made)g(to)h(the)g(subshell)e(en)m(vironmen)m(t)i(cannot)150
-4033 y(a\013ect)32 b(the)f(shell's)f(execution)i(en)m(vironmen)m(t.)275
-4170 y(Subshells)c(spa)m(wned)i(to)h(execute)g(command)f(substitutions)
+1100 y(a\013ect)32 b(the)f(shell's)f(execution)i(en)m(vironmen)m(t.)275
+1244 y(Subshells)c(spa)m(wned)i(to)h(execute)g(command)f(substitutions)
 g(inherit)g(the)g(v)-5 b(alue)31 b(of)f(the)h Ft(-e)e
-Fu(option)150 4280 y(from)23 b(the)i(paren)m(t)f(shell.)38
+Fu(option)150 1354 y(from)23 b(the)i(paren)m(t)f(shell.)38
 b(When)24 b(not)g(in)g Fm(posix)f Fu(mo)s(de,)i(Bash)f(clears)h(the)f
-Ft(-e)f Fu(option)i(in)e(suc)m(h)h(subshells.)275 4416
+Ft(-e)f Fu(option)i(in)e(suc)m(h)h(subshells.)275 1498
 y(If)f(a)h(command)g(is)g(follo)m(w)m(ed)h(b)m(y)f(a)g(`)p
 Ft(&)p Fu(')g(and)f(job)h(con)m(trol)h(is)f(not)g(activ)m(e,)k(the)c
-(default)g(standard)f(input)150 4526 y(for)35 b(the)g(command)g(is)g
+(default)g(standard)f(input)150 1607 y(for)35 b(the)g(command)g(is)g
 (the)g(empt)m(y)h(\014le)f Ft(/dev/null)p Fu(.)52 b(Otherwise,)37
-b(the)e(in)m(v)m(ok)m(ed)h(command)f(inherits)150 4636
+b(the)e(in)m(v)m(ok)m(ed)h(command)f(inherits)150 1717
 y(the)c(\014le)f(descriptors)g(of)h(the)f(calling)i(shell)f(as)f(mo)s
-(di\014ed)g(b)m(y)g(redirections.)150 4837 y Fk(3.7.4)63
-b(En)m(vironmen)m(t)150 4984 y Fu(When)29 b(a)g(program)f(is)h(in)m(v)m
+(di\014ed)g(b)m(y)g(redirections.)150 1926 y Fk(3.7.4)63
+b(En)m(vironmen)m(t)150 2073 y Fu(When)29 b(a)g(program)f(is)h(in)m(v)m
 (ok)m(ed)h(it)g(is)f(giv)m(en)g(an)g(arra)m(y)g(of)g(strings)g(called)h
 (the)f Fr(en)m(vironmen)m(t)p Fu(.)41 b(This)28 b(is)h(a)150
-5094 y(list)i(of)g(name-v)-5 b(alue)31 b(pairs,)f(of)h(the)f(form)g
-Ft(name=value)p Fu(.)275 5230 y(Bash)39 b(pro)m(vides)g(sev)m(eral)i(w)
+2182 y(list)i(of)g(name-v)-5 b(alue)31 b(pairs,)f(of)h(the)f(form)g
+Ft(name=value)p Fu(.)275 2326 y(Bash)39 b(pro)m(vides)g(sev)m(eral)i(w)
 m(a)m(ys)g(to)f(manipulate)f(the)h(en)m(vironmen)m(t.)69
-b(On)38 b(in)m(v)m(o)s(cation,)44 b(the)c(shell)150 5340
+b(On)38 b(in)m(v)m(o)s(cation,)44 b(the)c(shell)150 2436
 y(scans)g(its)h(o)m(wn)f(en)m(vironmen)m(t)h(and)f(creates)i(a)f
-(parameter)f(for)g(eac)m(h)i(name)e(found,)i(automatically)p
-eop end
-%%Page: 40 46
-TeXDict begin 40 45 bop 150 -116 a Fu(Chapter)30 b(3:)41
-b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(40)150 299
-y(marking)26 b(it)g(for)g Fr(exp)s(ort)h Fu(to)g(c)m(hild)f(pro)s
+(parameter)f(for)g(eac)m(h)i(name)e(found,)i(automatically)150
+2545 y(marking)26 b(it)g(for)g Fr(exp)s(ort)h Fu(to)g(c)m(hild)f(pro)s
 (cesses.)39 b(Executed)26 b(commands)g(inherit)g(the)g(en)m(vironmen)m
-(t.)39 b(The)150 408 y Ft(export)c Fu(and)i(`)p Ft(declare)29
+(t.)39 b(The)150 2655 y Ft(export)c Fu(and)i(`)p Ft(declare)29
 b(-x)p Fu(')36 b(commands)h(allo)m(w)i(parameters)e(and)g(functions)g
-(to)h(b)s(e)e(added)h(to)h(and)150 518 y(deleted)21 b(from)f(the)h(en)m
-(vironmen)m(t.)38 b(If)20 b(the)h(v)-5 b(alue)21 b(of)g(a)g(parameter)g
-(in)f(the)g(en)m(vironmen)m(t)i(is)e(mo)s(di\014ed,)i(the)150
-628 y(new)31 b(v)-5 b(alue)32 b(b)s(ecomes)f(part)h(of)f(the)h(en)m
-(vironmen)m(t,)g(replacing)h(the)e(old.)44 b(The)31 b(en)m(vironmen)m
-(t)h(inherited)150 737 y(b)m(y)f(an)m(y)g(executed)h(command)f
-(consists)g(of)g(the)g(shell's)h(initial)g(en)m(vironmen)m(t,)g(whose)f
-(v)-5 b(alues)31 b(ma)m(y)h(b)s(e)150 847 y(mo)s(di\014ed)26
+(to)h(b)s(e)e(added)h(to)h(and)150 2765 y(deleted)21
+b(from)f(the)h(en)m(vironmen)m(t.)38 b(If)20 b(the)h(v)-5
+b(alue)21 b(of)g(a)g(parameter)g(in)f(the)g(en)m(vironmen)m(t)i(is)e
+(mo)s(di\014ed,)i(the)150 2874 y(new)31 b(v)-5 b(alue)32
+b(b)s(ecomes)f(part)h(of)f(the)h(en)m(vironmen)m(t,)g(replacing)h(the)e
+(old.)44 b(The)31 b(en)m(vironmen)m(t)h(inherited)150
+2984 y(b)m(y)f(an)m(y)g(executed)h(command)f(consists)g(of)g(the)g
+(shell's)h(initial)g(en)m(vironmen)m(t,)g(whose)f(v)-5
+b(alues)31 b(ma)m(y)h(b)s(e)150 3093 y(mo)s(di\014ed)26
 b(in)g(the)h(shell,)h(less)f(an)m(y)g(pairs)f(remo)m(v)m(ed)i(b)m(y)f
 (the)g Ft(unset)e Fu(and)h(`)p Ft(export)j(-n)p Fu(')e(commands,)g
-(plus)150 956 y(an)m(y)k(additions)f(via)h(the)g Ft(export)d
-Fu(and)i(`)p Ft(declare)f(-x)p Fu(')h(commands.)275 1090
+(plus)150 3203 y(an)m(y)k(additions)f(via)h(the)g Ft(export)d
+Fu(and)i(`)p Ft(declare)f(-x)p Fu(')h(commands.)275 3347
 y(The)j(en)m(vironmen)m(t)i(for)f(an)m(y)g(simple)h(command)f(or)g
 (function)g(ma)m(y)g(b)s(e)g(augmen)m(ted)h(temp)s(orarily)150
-1199 y(b)m(y)c(pre\014xing)e(it)i(with)g(parameter)g(assignmen)m(ts,)h
+3457 y(b)m(y)c(pre\014xing)e(it)i(with)g(parameter)g(assignmen)m(ts,)h
 (as)e(describ)s(ed)g(in)g(Section)i(3.4)g([Shell)e(P)m(arameters],)150
-1309 y(page)g(19.)41 b(These)29 b(assignmen)m(t)i(statemen)m(ts)g
+3566 y(page)g(19.)41 b(These)29 b(assignmen)m(t)i(statemen)m(ts)g
 (a\013ect)f(only)g(the)f(en)m(vironmen)m(t)h(seen)g(b)m(y)f(that)h
-(command.)275 1442 y(If)g(the)h Ft(-k)g Fu(option)g(is)g(set)h(\(see)g
+(command.)275 3710 y(If)g(the)h Ft(-k)g Fu(option)g(is)g(set)h(\(see)g
 (Section)g(4.3.1)g([The)f(Set)g(Builtin],)h(page)g(61\),)h(then)e(all)g
-(parameter)150 1552 y(assignmen)m(ts)f(are)g(placed)h(in)e(the)h(en)m
+(parameter)150 3820 y(assignmen)m(ts)f(are)g(placed)h(in)e(the)h(en)m
 (vironmen)m(t)g(for)g(a)g(command,)f(not)h(just)f(those)i(that)f
-(precede)g(the)150 1661 y(command)g(name.)275 1795 y(When)h(Bash)h(in)m
+(precede)g(the)150 3929 y(command)g(name.)275 4073 y(When)h(Bash)h(in)m
 (v)m(ok)m(es)i(an)e(external)h(command,)f(the)g(v)-5
 b(ariable)33 b(`)p Ft($_)p Fu(')f(is)g(set)h(to)f(the)g(full)g
-(pathname)150 1904 y(of)f(the)f(command)g(and)g(passed)g(to)h(that)g
-(command)f(in)g(its)h(en)m(vironmen)m(t.)150 2101 y Fk(3.7.5)63
-b(Exit)40 b(Status)150 2248 y Fu(The)26 b(exit)h(status)f(of)g(an)g
+(pathname)150 4183 y(of)f(the)f(command)g(and)g(passed)g(to)h(that)g
+(command)f(in)g(its)h(en)m(vironmen)m(t.)150 4392 y Fk(3.7.5)63
+b(Exit)40 b(Status)150 4538 y Fu(The)26 b(exit)h(status)f(of)g(an)g
 (executed)h(command)f(is)g(the)h(v)-5 b(alue)26 b(returned)f(b)m(y)h
-(the)g Fr(w)m(aitpid)k Fu(system)d(call)g(or)150 2357
+(the)g Fr(w)m(aitpid)k Fu(system)d(call)g(or)150 4648
 y(equiv)-5 b(alen)m(t)33 b(function.)45 b(Exit)32 b(statuses)g(fall)g
 (b)s(et)m(w)m(een)h(0)f(and)f(255,)i(though,)f(as)g(explained)g(b)s
-(elo)m(w,)h(the)150 2467 y(shell)i(ma)m(y)g(use)f(v)-5
+(elo)m(w,)h(the)150 4758 y(shell)i(ma)m(y)g(use)f(v)-5
 b(alues)35 b(ab)s(o)m(v)m(e)g(125)h(sp)s(ecially)-8 b(.)54
 b(Exit)35 b(statuses)g(from)f(shell)h(builtins)f(and)f(comp)s(ound)150
-2577 y(commands)j(are)g(also)h(limited)g(to)g(this)f(range.)58
+4867 y(commands)j(are)g(also)h(limited)g(to)g(this)f(range.)58
 b(Under)36 b(certain)h(circumstances,)h(the)e(shell)h(will)f(use)150
-2686 y(sp)s(ecial)31 b(v)-5 b(alues)31 b(to)g(indicate)g(sp)s(eci\014c)
-f(failure)h(mo)s(des.)275 2819 y(F)-8 b(or)32 b(the)g(shell's)g(purp)s
+4977 y(sp)s(ecial)31 b(v)-5 b(alues)31 b(to)g(indicate)g(sp)s(eci\014c)
+f(failure)h(mo)s(des.)275 5121 y(F)-8 b(or)32 b(the)g(shell's)g(purp)s
 (oses,)e(a)j(command)e(whic)m(h)h(exits)g(with)g(a)g(zero)g(exit)h
-(status)f(has)f(succeeded.)150 2929 y(A)e(non-zero)h(exit)g(status)g
+(status)f(has)f(succeeded.)150 5230 y(A)e(non-zero)h(exit)g(status)g
 (indicates)g(failure.)40 b(This)28 b(seemingly)i(coun)m(ter-in)m
-(tuitiv)m(e)i(sc)m(heme)e(is)f(used)g(so)150 3039 y(there)34
+(tuitiv)m(e)i(sc)m(heme)e(is)f(used)g(so)150 5340 y(there)34
 b(is)g(one)g(w)m(ell-de\014ned)g(w)m(a)m(y)g(to)h(indicate)g(success)f
 (and)f(a)h(v)-5 b(ariet)m(y)35 b(of)f(w)m(a)m(ys)h(to)f(indicate)h(v)-5
-b(arious)150 3148 y(failure)38 b(mo)s(des.)62 b(When)37
-b(a)h(command)f(terminates)i(on)e(a)h(fatal)h(signal)g(whose)e(n)m(um)m
-(b)s(er)f(is)i Fr(N)p Fu(,)i(Bash)150 3258 y(uses)30
-b(the)g(v)-5 b(alue)31 b(128)p Ft(+)p Fr(N)42 b Fu(as)30
-b(the)h(exit)g(status.)275 3391 y(If)k(a)h(command)g(is)g(not)g(found,)
-g(the)g(c)m(hild)h(pro)s(cess)e(created)i(to)g(execute)g(it)g(returns)d
-(a)j(status)f(of)150 3501 y(127.)42 b(If)30 b(a)h(command)f(is)g(found)
-f(but)h(is)g(not)h(executable,)h(the)f(return)e(status)i(is)f(126.)275
-3634 y(If)i(a)i(command)f(fails)g(b)s(ecause)g(of)h(an)f(error)f
-(during)g(expansion)h(or)g(redirection,)i(the)f(exit)g(status)150
-3743 y(is)c(greater)i(than)e(zero.)275 3877 y(The)38
-b(exit)h(status)g(is)g(used)f(b)m(y)g(the)h(Bash)g(conditional)h
-(commands)e(\(see)h(Section)h(3.2.4.2)h([Con-)150 3986
-y(ditional)i(Constructs],)h(page)f(11\))g(and)e(some)i(of)f(the)g(list)
-g(constructs)g(\(see)h(Section)f(3.2.3)i([Lists],)150
-4096 y(page)31 b(9\).)275 4229 y(All)40 b(of)g(the)h(Bash)f(builtins)f
-(return)g(an)h(exit)h(status)g(of)f(zero)h(if)f(they)g(succeed)g(and)g
-(a)g(non-zero)150 4339 y(status)34 b(on)f(failure,)i(so)f(they)g(ma)m
-(y)g(b)s(e)f(used)g(b)m(y)g(the)h(conditional)h(and)e(list)h
-(constructs.)50 b(All)35 b(builtins)150 4448 y(return)e(an)i(exit)g
-(status)g(of)f(2)h(to)g(indicate)h(incorrect)f(usage,)h(generally)g(in)
-m(v)-5 b(alid)35 b(options)g(or)f(missing)150 4558 y(argumen)m(ts.)150
-4755 y Fk(3.7.6)63 b(Signals)150 4902 y Fu(When)36 b(Bash)g(is)h(in)m
+b(arious)p eop end
+%%Page: 41 47
+TeXDict begin 41 46 bop 150 -116 a Fu(Chapter)30 b(3:)41
+b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(41)150 299
+y(failure)38 b(mo)s(des.)62 b(When)37 b(a)h(command)f(terminates)i(on)e
+(a)h(fatal)h(signal)g(whose)e(n)m(um)m(b)s(er)f(is)i
+Fr(N)p Fu(,)i(Bash)150 408 y(uses)30 b(the)g(v)-5 b(alue)31
+b(128)p Ft(+)p Fr(N)42 b Fu(as)30 b(the)h(exit)g(status.)275
+537 y(If)k(a)h(command)g(is)g(not)g(found,)g(the)g(c)m(hild)h(pro)s
+(cess)e(created)i(to)g(execute)g(it)g(returns)d(a)j(status)f(of)150
+647 y(127.)42 b(If)30 b(a)h(command)f(is)g(found)f(but)h(is)g(not)h
+(executable,)h(the)f(return)e(status)i(is)f(126.)275
+776 y(If)i(a)i(command)f(fails)g(b)s(ecause)g(of)h(an)f(error)f(during)
+g(expansion)h(or)g(redirection,)i(the)f(exit)g(status)150
+885 y(is)c(greater)i(than)e(zero.)275 1014 y(The)38 b(exit)h(status)g
+(is)g(used)f(b)m(y)g(the)h(Bash)g(conditional)h(commands)e(\(see)h
+(Section)h(3.2.4.2)h([Con-)150 1123 y(ditional)i(Constructs],)h(page)f
+(11\))g(and)e(some)i(of)f(the)g(list)g(constructs)g(\(see)h(Section)f
+(3.2.3)i([Lists],)150 1233 y(page)31 b(9\).)275 1362
+y(All)40 b(of)g(the)h(Bash)f(builtins)f(return)g(an)h(exit)h(status)g
+(of)f(zero)h(if)f(they)g(succeed)g(and)g(a)g(non-zero)150
+1471 y(status)34 b(on)f(failure,)i(so)f(they)g(ma)m(y)g(b)s(e)f(used)g
+(b)m(y)g(the)h(conditional)h(and)e(list)h(constructs.)50
+b(All)35 b(builtins)150 1581 y(return)e(an)i(exit)g(status)g(of)f(2)h
+(to)g(indicate)h(incorrect)f(usage,)h(generally)g(in)m(v)-5
+b(alid)35 b(options)g(or)f(missing)150 1691 y(argumen)m(ts.)150
+1878 y Fk(3.7.6)63 b(Signals)150 2025 y Fu(When)36 b(Bash)g(is)h(in)m
 (teractiv)m(e,)j(in)c(the)h(absence)f(of)h(an)m(y)f(traps,)i(it)e
 (ignores)h Ft(SIGTERM)d Fu(\(so)j(that)g(`)p Ft(kill)150
-5011 y(0)p Fu(')c(do)s(es)g(not)g(kill)g(an)g(in)m(teractiv)m(e)j
+2135 y(0)p Fu(')c(do)s(es)g(not)g(kill)g(an)g(in)m(teractiv)m(e)j
 (shell\),)f(and)d Ft(SIGINT)f Fu(is)i(caugh)m(t)h(and)f(handled)f(\(so)
-h(that)h(the)f Ft(wait)150 5121 y Fu(builtin)24 b(is)h(in)m
+h(that)h(the)f Ft(wait)150 2244 y Fu(builtin)24 b(is)h(in)m
 (terruptible\).)39 b(When)24 b(Bash)g(receiv)m(es)j(a)d
 Ft(SIGINT)p Fu(,)h(it)g(breaks)f(out)h(of)f(an)m(y)h(executing)h(lo)s
-(ops.)150 5230 y(In)31 b(all)h(cases,)h(Bash)f(ignores)g
+(ops.)150 2354 y(In)31 b(all)h(cases,)h(Bash)f(ignores)g
 Ft(SIGQUIT)p Fu(.)42 b(If)32 b(job)f(con)m(trol)i(is)e(in)h(e\013ect)h
-(\(see)f(Chapter)f(7)h([Job)g(Con)m(trol],)150 5340 y(page)f(102\),)h
+(\(see)f(Chapter)f(7)h([Job)g(Con)m(trol],)150 2464 y(page)f(102\),)h
 (Bash)f(ignores)g Ft(SIGTTIN)p Fu(,)d Ft(SIGTTOU)p Fu(,)h(and)h
-Ft(SIGTSTP)p Fu(.)p eop end
-%%Page: 41 47
-TeXDict begin 41 46 bop 150 -116 a Fu(Chapter)30 b(3:)41
-b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(41)275 299
-y(Non-builtin)31 b(commands)g(started)g(b)m(y)g(Bash)h(ha)m(v)m(e)g
-(signal)g(handlers)e(set)i(to)g(the)g(v)-5 b(alues)31
-b(inherited)150 408 y(b)m(y)37 b(the)h(shell)g(from)f(its)h(paren)m(t.)
-62 b(When)38 b(job)f(con)m(trol)i(is)e(not)h(in)f(e\013ect,)k(async)m
-(hronous)c(commands)150 518 y(ignore)f Ft(SIGINT)e Fu(and)h
-Ft(SIGQUIT)e Fu(in)j(addition)f(to)i(these)f(inherited)f(handlers.)55
-b(Commands)35 b(run)f(as)i(a)150 628 y(result)27 b(of)h(command)f
-(substitution)h(ignore)g(the)g(k)m(eyb)s(oard-generated)g(job)g(con)m
-(trol)h(signals)f Ft(SIGTTIN)p Fu(,)150 737 y Ft(SIGTTOU)p
-Fu(,)h(and)g Ft(SIGTSTP)p Fu(.)275 882 y(The)h(shell)i(exits)g(b)m(y)f
-(default)g(up)s(on)f(receipt)i(of)f(a)h Ft(SIGHUP)p Fu(.)42
-b(Before)32 b(exiting,)h(an)e(in)m(teractiv)m(e)j(shell)150
-992 y(resends)41 b(the)i Ft(SIGHUP)e Fu(to)i(all)g(jobs,)i(running)c
-(or)h(stopp)s(ed.)76 b(Stopp)s(ed)41 b(jobs)h(are)h(sen)m(t)g
-Ft(SIGCONT)d Fu(to)150 1101 y(ensure)32 b(that)h(they)g(receiv)m(e)i
+Ft(SIGTSTP)p Fu(.)275 2592 y(Non-builtin)h(commands)g(started)g(b)m(y)g
+(Bash)h(ha)m(v)m(e)g(signal)g(handlers)e(set)i(to)g(the)g(v)-5
+b(alues)31 b(inherited)150 2702 y(b)m(y)37 b(the)h(shell)g(from)f(its)h
+(paren)m(t.)62 b(When)38 b(job)f(con)m(trol)i(is)e(not)h(in)f
+(e\013ect,)k(async)m(hronous)c(commands)150 2812 y(ignore)f
+Ft(SIGINT)e Fu(and)h Ft(SIGQUIT)e Fu(in)j(addition)f(to)i(these)f
+(inherited)f(handlers.)55 b(Commands)35 b(run)f(as)i(a)150
+2921 y(result)27 b(of)h(command)f(substitution)h(ignore)g(the)g(k)m
+(eyb)s(oard-generated)g(job)g(con)m(trol)h(signals)f
+Ft(SIGTTIN)p Fu(,)150 3031 y Ft(SIGTTOU)p Fu(,)h(and)g
+Ft(SIGTSTP)p Fu(.)275 3160 y(The)h(shell)i(exits)g(b)m(y)f(default)g
+(up)s(on)f(receipt)i(of)f(a)h Ft(SIGHUP)p Fu(.)42 b(Before)32
+b(exiting,)h(an)e(in)m(teractiv)m(e)j(shell)150 3269
+y(resends)41 b(the)i Ft(SIGHUP)e Fu(to)i(all)g(jobs,)i(running)c(or)h
+(stopp)s(ed.)76 b(Stopp)s(ed)41 b(jobs)h(are)h(sen)m(t)g
+Ft(SIGCONT)d Fu(to)150 3379 y(ensure)32 b(that)h(they)g(receiv)m(e)i
 (the)e Ft(SIGHUP)p Fu(.)47 b(T)-8 b(o)33 b(prev)m(en)m(t)g(the)g(shell)
-g(from)g(sending)f(the)h Ft(SIGHUP)e Fu(signal)150 1211
+g(from)g(sending)f(the)h Ft(SIGHUP)e Fu(signal)150 3488
 y(to)i(a)g(particular)g(job,)g(it)g(should)f(b)s(e)g(remo)m(v)m(ed)h
 (from)g(the)f(jobs)g(table)i(with)e(the)h Ft(disown)e
-Fu(builtin)h(\(see)150 1320 y(Section)c(7.2)g([Job)e(Con)m(trol)i
+Fu(builtin)h(\(see)150 3598 y(Section)c(7.2)g([Job)e(Con)m(trol)i
 (Builtins],)g(page)g(103\))h(or)e(mark)m(ed)g(to)g(not)g(receiv)m(e)i
-Ft(SIGHUP)c Fu(using)i Ft(disown)150 1430 y(-h)p Fu(.)275
-1575 y(If)38 b(the)h Ft(huponexit)e Fu(shell)i(option)g(has)g(b)s(een)f
+Ft(SIGHUP)c Fu(using)i Ft(disown)150 3707 y(-h)p Fu(.)275
+3836 y(If)38 b(the)h Ft(huponexit)e Fu(shell)i(option)g(has)g(b)s(een)f
 (set)i(with)f Ft(shopt)e Fu(\(see)j(Section)g(4.3.2)h([The)e(Shopt)150
-1684 y(Builtin],)31 b(page)g(65\),)h(Bash)f(sends)e(a)i
+3946 y(Builtin],)31 b(page)g(65\),)h(Bash)f(sends)e(a)i
 Ft(SIGHUP)e Fu(to)i(all)g(jobs)f(when)f(an)i(in)m(teractiv)m(e)i(login)
-e(shell)g(exits.)275 1829 y(If)38 b(Bash)h(is)g(w)m(aiting)h(for)f(a)g
+e(shell)g(exits.)275 4075 y(If)38 b(Bash)h(is)g(w)m(aiting)h(for)f(a)g
 (command)f(to)i(complete)g(and)e(receiv)m(es)j(a)e(signal)h(for)e(whic)
-m(h)h(a)g(trap)150 1939 y(has)c(b)s(een)f(set,)i(the)f(trap)g(will)g
+m(h)h(a)g(trap)150 4184 y(has)c(b)s(een)f(set,)i(the)f(trap)g(will)g
 (not)g(b)s(e)f(executed)i(un)m(til)f(the)g(command)f(completes.)55
-b(When)35 b(Bash)g(is)150 2048 y(w)m(aiting)j(for)f(an)g(async)m
+b(When)35 b(Bash)g(is)150 4294 y(w)m(aiting)j(for)f(an)g(async)m
 (hronous)g(command)g(via)h(the)f Ft(wait)f Fu(builtin,)i(the)g
-(reception)g(of)f(a)g(signal)h(for)150 2158 y(whic)m(h)d(a)g(trap)g
+(reception)g(of)f(a)g(signal)h(for)150 4403 y(whic)m(h)d(a)g(trap)g
 (has)g(b)s(een)f(set)h(will)h(cause)f(the)g Ft(wait)f
 Fu(builtin)h(to)g(return)f(immediately)i(with)f(an)g(exit)150
-2267 y(status)c(greater)g(than)f(128,)i(immediately)g(after)f(whic)m(h)
-f(the)h(trap)f(is)g(executed.)150 2524 y Fs(3.8)68 b(Shell)45
-b(Scripts)150 2683 y Fu(A)30 b(shell)f(script)h(is)f(a)h(text)h(\014le)
+4513 y(status)c(greater)g(than)f(128,)i(immediately)g(after)f(whic)m(h)
+f(the)h(trap)f(is)g(executed.)150 4742 y Fs(3.8)68 b(Shell)45
+b(Scripts)150 4902 y Fu(A)30 b(shell)f(script)h(is)f(a)h(text)h(\014le)
 f(con)m(taining)h(shell)f(commands.)40 b(When)29 b(suc)m(h)g(a)h
-(\014le)g(is)f(used)g(as)h(the)g(\014rst)150 2792 y(non-option)c
+(\014le)g(is)f(used)g(as)h(the)g(\014rst)150 5011 y(non-option)c
 (argumen)m(t)h(when)e(in)m(v)m(oking)i(Bash,)g(and)f(neither)g(the)g
 Ft(-c)g Fu(nor)f Ft(-s)h Fu(option)g(is)g(supplied)f(\(see)150
-2902 y(Section)39 b(6.1)g([In)m(v)m(oking)g(Bash],)h(page)f(84\),)i
+5121 y(Section)39 b(6.1)g([In)m(v)m(oking)g(Bash],)h(page)f(84\),)i
 (Bash)d(reads)g(and)f(executes)i(commands)f(from)f(the)i(\014le,)150
-3012 y(then)32 b(exits.)46 b(This)32 b(mo)s(de)f(of)i(op)s(eration)f
+5230 y(then)32 b(exits.)46 b(This)32 b(mo)s(de)f(of)i(op)s(eration)f
 (creates)i(a)e(non-in)m(teractiv)m(e)j(shell.)46 b(The)31
-b(shell)i(\014rst)e(searc)m(hes)150 3121 y(for)d(the)g(\014le)g(in)g
+b(shell)i(\014rst)e(searc)m(hes)150 5340 y(for)d(the)g(\014le)g(in)g
 (the)g(curren)m(t)f(directory)-8 b(,)30 b(and)d(lo)s(oks)i(in)e(the)i
-(directories)g(in)e Ft($PATH)g Fu(if)h(not)g(found)e(there.)275
-3266 y(When)34 b(Bash)h(runs)e(a)i(shell)g(script,)g(it)h(sets)f(the)f
-(sp)s(ecial)i(parameter)f Ft(0)f Fu(to)h(the)g(name)g(of)g(the)g
-(\014le,)150 3376 y(rather)k(than)g(the)h(name)f(of)h(the)f(shell,)j
-(and)d(the)h(p)s(ositional)g(parameters)f(are)h(set)g(to)g(the)g
-(remain-)150 3485 y(ing)f(argumen)m(ts,)j(if)d(an)m(y)g(are)g(giv)m
-(en.)67 b(If)39 b(no)g(additional)g(argumen)m(ts)h(are)f(supplied,)h
-(the)f(p)s(ositional)150 3595 y(parameters)31 b(are)f(unset.)275
-3740 y(A)39 b(shell)h(script)f(ma)m(y)h(b)s(e)f(made)h(executable)h(b)m
+(directories)g(in)e Ft($PATH)g Fu(if)h(not)g(found)e(there.)p
+eop end
+%%Page: 42 48
+TeXDict begin 42 47 bop 150 -116 a Fu(Chapter)30 b(3:)41
+b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(42)275 299
+y(When)34 b(Bash)h(runs)e(a)i(shell)g(script,)g(it)h(sets)f(the)f(sp)s
+(ecial)i(parameter)f Ft(0)f Fu(to)h(the)g(name)g(of)g(the)g(\014le,)150
+408 y(rather)k(than)g(the)h(name)f(of)h(the)f(shell,)j(and)d(the)h(p)s
+(ositional)g(parameters)f(are)h(set)g(to)g(the)g(remain-)150
+518 y(ing)f(argumen)m(ts,)j(if)d(an)m(y)g(are)g(giv)m(en.)67
+b(If)39 b(no)g(additional)g(argumen)m(ts)h(are)f(supplied,)h(the)f(p)s
+(ositional)150 628 y(parameters)31 b(are)f(unset.)275
+762 y(A)39 b(shell)h(script)f(ma)m(y)h(b)s(e)f(made)h(executable)h(b)m
 (y)e(using)g(the)h Ft(chmod)e Fu(command)h(to)h(turn)e(on)i(the)150
-3849 y(execute)j(bit.)73 b(When)41 b(Bash)g(\014nds)e(suc)m(h)i(a)h
+872 y(execute)j(bit.)73 b(When)41 b(Bash)g(\014nds)e(suc)m(h)i(a)h
 (\014le)f(while)g(searc)m(hing)h(the)f Ft($PATH)f Fu(for)h(a)h
-(command,)h(it)150 3959 y(spa)m(wns)30 b(a)g(subshell)g(to)h(execute)h
-(it.)41 b(In)30 b(other)g(w)m(ords,)g(executing)390 4103
-y Ft(filename)46 b Fj(arguments)150 4248 y Fu(is)30 b(equiv)-5
-b(alen)m(t)32 b(to)f(executing)390 4393 y Ft(bash)47
-b(filename)e Fj(arguments)150 4538 y Fu(if)30 b Ft(filename)d
+(command,)h(it)150 981 y(spa)m(wns)30 b(a)g(subshell)g(to)h(execute)h
+(it.)41 b(In)30 b(other)g(w)m(ords,)g(executing)390 1116
+y Ft(filename)46 b Fj(arguments)150 1250 y Fu(is)30 b(equiv)-5
+b(alen)m(t)32 b(to)f(executing)390 1385 y Ft(bash)47
+b(filename)e Fj(arguments)150 1519 y Fu(if)30 b Ft(filename)d
 Fu(is)j(an)f(executable)j(shell)e(script.)40 b(This)29
 b(subshell)g(reinitializes)i(itself,)g(so)f(that)h(the)e(e\013ect)150
-4647 y(is)36 b(as)h(if)g(a)f(new)g(shell)h(had)f(b)s(een)g(in)m(v)m(ok)
+1629 y(is)36 b(as)h(if)g(a)f(new)g(shell)h(had)f(b)s(een)g(in)m(v)m(ok)
 m(ed)h(to)h(in)m(terpret)e(the)h(script,)h(with)e(the)h(exception)h
-(that)f(the)150 4757 y(lo)s(cations)25 b(of)g(commands)e(remem)m(b)s
+(that)f(the)150 1738 y(lo)s(cations)25 b(of)g(commands)e(remem)m(b)s
 (ered)h(b)m(y)g(the)g(paren)m(t)g(\(see)h(the)f(description)g(of)g
-Ft(hash)f Fu(in)h(Section)h(4.1)150 4866 y([Bourne)30
+Ft(hash)f Fu(in)h(Section)h(4.1)150 1848 y([Bourne)30
 b(Shell)h(Builtins],)g(page)g(43\))h(are)e(retained)h(b)m(y)f(the)h(c)m
-(hild.)275 5011 y(Most)36 b(v)m(ersions)g(of)g(Unix)f(mak)m(e)h(this)g
+(hild.)275 1983 y(Most)36 b(v)m(ersions)g(of)g(Unix)f(mak)m(e)h(this)g
 (a)g(part)f(of)h(the)g(op)s(erating)g(system's)f(command)h(execution)
-150 5121 y(mec)m(hanism.)50 b(If)33 b(the)g(\014rst)g(line)h(of)f(a)h
+150 2092 y(mec)m(hanism.)50 b(If)33 b(the)g(\014rst)g(line)h(of)f(a)h
 (script)f(b)s(egins)g(with)g(the)g(t)m(w)m(o)i(c)m(haracters)g(`)p
-Ft(#!)p Fu(',)f(the)g(remainder)150 5230 y(of)d(the)g(line)h(sp)s
+Ft(#!)p Fu(',)f(the)g(remainder)150 2202 y(of)d(the)g(line)h(sp)s
 (eci\014es)e(an)h(in)m(terpreter)g(for)g(the)g(program.)43
 b(Th)m(us,)30 b(y)m(ou)h(can)h(sp)s(ecify)e(Bash,)i Ft(awk)p
-Fu(,)e(P)m(erl,)150 5340 y(or)g(some)h(other)g(in)m(terpreter)g(and)e
+Fu(,)e(P)m(erl,)150 2311 y(or)g(some)h(other)g(in)m(terpreter)g(and)e
 (write)i(the)f(rest)h(of)g(the)f(script)g(\014le)h(in)f(that)h
-(language.)p eop end
-%%Page: 42 48
-TeXDict begin 42 47 bop 150 -116 a Fu(Chapter)30 b(3:)41
-b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(42)275 299
-y(The)40 b(argumen)m(ts)h(to)g(the)g(in)m(terpreter)g(consist)g(of)g(a)
-g(single)h(optional)f(argumen)m(t)h(follo)m(wing)g(the)150
-408 y(in)m(terpreter)33 b(name)h(on)f(the)g(\014rst)f(line)i(of)f(the)g
-(script)g(\014le,)h(follo)m(w)m(ed)h(b)m(y)e(the)g(name)g(of)g(the)h
-(script)f(\014le,)150 518 y(follo)m(w)m(ed)g(b)m(y)f(the)f(rest)h(of)g
-(the)f(argumen)m(ts.)45 b(Bash)31 b(will)h(p)s(erform)e(this)i(action)h
-(on)e(op)s(erating)h(systems)150 628 y(that)24 b(do)g(not)f(handle)g
-(it)h(themselv)m(es.)40 b(Note)25 b(that)f(some)g(older)g(v)m(ersions)f
-(of)h(Unix)f(limit)i(the)f(in)m(terpreter)150 737 y(name)30
-b(and)g(argumen)m(t)h(to)g(a)g(maxim)m(um)f(of)h(32)g(c)m(haracters.)
-275 872 y(Bash)h(scripts)g(often)g(b)s(egin)g(with)g
-Ft(#!)e(/bin/bash)g Fu(\(assuming)i(that)h(Bash)f(has)g(b)s(een)f
-(installed)i(in)150 981 y Ft(/bin)p Fu(\),)26 b(since)h(this)f(ensures)
-f(that)i(Bash)f(will)h(b)s(e)f(used)f(to)i(in)m(terpret)f(the)h
-(script,)g(ev)m(en)g(if)f(it)h(is)f(executed)150 1091
-y(under)j(another)h(shell.)p eop end
+(language.)275 2446 y(The)40 b(argumen)m(ts)h(to)g(the)g(in)m
+(terpreter)g(consist)g(of)g(a)g(single)h(optional)f(argumen)m(t)h
+(follo)m(wing)g(the)150 2555 y(in)m(terpreter)33 b(name)h(on)f(the)g
+(\014rst)f(line)i(of)f(the)g(script)g(\014le,)h(follo)m(w)m(ed)h(b)m(y)
+e(the)g(name)g(of)g(the)h(script)f(\014le,)150 2665 y(follo)m(w)m(ed)g
+(b)m(y)f(the)f(rest)h(of)g(the)f(argumen)m(ts.)45 b(Bash)31
+b(will)h(p)s(erform)e(this)i(action)h(on)e(op)s(erating)h(systems)150
+2775 y(that)24 b(do)g(not)f(handle)g(it)h(themselv)m(es.)40
+b(Note)25 b(that)f(some)g(older)g(v)m(ersions)f(of)h(Unix)f(limit)i
+(the)f(in)m(terpreter)150 2884 y(name)30 b(and)g(argumen)m(t)h(to)g(a)g
+(maxim)m(um)f(of)h(32)g(c)m(haracters.)275 3019 y(Bash)h(scripts)g
+(often)g(b)s(egin)g(with)g Ft(#!)e(/bin/bash)g Fu(\(assuming)i(that)h
+(Bash)f(has)g(b)s(een)f(installed)i(in)150 3128 y Ft(/bin)p
+Fu(\),)26 b(since)h(this)f(ensures)f(that)i(Bash)f(will)h(b)s(e)f(used)
+f(to)i(in)m(terpret)f(the)h(script,)g(ev)m(en)g(if)f(it)h(is)f
+(executed)150 3238 y(under)j(another)h(shell.)p eop end
 %%Page: 43 49
 TeXDict begin 43 48 bop 3659 -116 a Fu(43)150 299 y Fp(4)80
 b(Shell)53 b(Builtin)f(Commands)150 499 y Fu(Builtin)34
@@ -12202,10 +12262,10 @@ Fj(n)p Ft(])630 940 y Fu(Exit)31 b(a)g(login)g(shell,)g(returning)e(a)i
 (status)g(of)f Fr(n)g Fu(to)h(the)g(shell's)f(paren)m(t.)150
 1096 y Ft(mapfile)870 1229 y(mapfile)46 b([-d)h Fj(delim)p
 Ft(])f([-n)h Fj(count)p Ft(])f([-O)h Fj(origin)p Ft(])f([-s)g
-Fj(count)p Ft(])h([-t])f([-u)h Fj(fd)p Ft(])1061 1338
-y([-C)g Fj(callback)p Ft(])e([-c)i Fj(quantum)p Ft(])f([)p
-Fj(array)p Ft(])630 1471 y Fu(Read)38 b(lines)f(from)g(the)h(standard)e
-(input)g(in)m(to)j(the)e(indexed)g(arra)m(y)h(v)-5 b(ariable)38
+Fj(count)p Ft(])1061 1338 y([-t])h([-u)f Fj(fd)p Ft(])h([-C)g
+Fj(callback)p Ft(])f([-c)g Fj(quantum)p Ft(])g([)p Fj(array)p
+Ft(])630 1471 y Fu(Read)38 b(lines)f(from)g(the)h(standard)e(input)g
+(in)m(to)j(the)e(indexed)g(arra)m(y)h(v)-5 b(ariable)38
 b Fr(arra)m(y)p Fu(,)i(or)630 1581 y(from)28 b(\014le)h(descriptor)f
 Fr(fd)k Fu(if)c(the)h Ft(-u)f Fu(option)h(is)g(supplied.)39
 b(The)28 b(v)-5 b(ariable)29 b Ft(MAPFILE)e Fu(is)i(the)630
@@ -12430,33 +12490,33 @@ Fr(fd)p Fu(.)p eop end
 TeXDict begin 59 64 bop 150 -116 a Fu(Chapter)30 b(4:)41
 b(Shell)30 b(Builtin)h(Commands)2069 b(59)150 299 y Ft(readarray)870
 408 y(readarray)45 b([-d)i Fj(delim)p Ft(])f([-n)h Fj(count)p
-Ft(])f([-O)h Fj(origin)p Ft(])f([-s)h Fj(count)p Ft(])f([-t])h([-u)g
-Fj(fd)p Ft(])1061 518 y([-C)g Fj(callback)p Ft(])e([-c)i
-Fj(quantum)p Ft(])f([)p Fj(array)p Ft(])630 650 y Fu(Read)38
-b(lines)f(from)g(the)h(standard)e(input)g(in)m(to)j(the)e(indexed)g
-(arra)m(y)h(v)-5 b(ariable)38 b Fr(arra)m(y)p Fu(,)i(or)630
-760 y(from)30 b(\014le)g(descriptor)h Fr(fd)i Fu(if)d(the)h
-Ft(-u)e Fu(option)i(is)g(supplied.)630 892 y(A)f(synon)m(ym)g(for)g
-Ft(mapfile)p Fu(.)150 1047 y Ft(source)870 1179 y(source)46
-b Fj(filename)630 1312 y Fu(A)30 b(synon)m(ym)g(for)g
-Ft(.)g Fu(\(see)i(Section)f(4.1)g([Bourne)g(Shell)f(Builtins],)h(page)g
-(43\).)150 1467 y Ft(type)870 1599 y(type)47 b([-afptP])e([)p
-Fj(name)i Ft(...)o(])630 1731 y Fu(F)-8 b(or)42 b(eac)m(h)g
-Fr(name)p Fu(,)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 1841 y(name.)630
-1973 y(If)g(the)g Ft(-t)g Fu(option)h(is)f(used,)j Ft(type)c
-Fu(prin)m(ts)h(a)h(single)g(w)m(ord)f(whic)m(h)g(is)g(one)h(of)g(`)p
-Ft(alias)p Fu(',)630 2083 y(`)p Ft(function)p Fu(',)32
-b(`)p Ft(builtin)p Fu(',)g(`)p Ft(file)p Fu(')g(or)h(`)p
-Ft(keyword)p Fu(',)f(if)h Fr(name)38 b Fu(is)33 b(an)f(alias,)j(shell)e
-(function,)630 2192 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 Fr(name)40 b Fu(is)35 b(not)630 2302
-y(found,)29 b(then)h(nothing)h(is)f(prin)m(ted,)g(and)g
-Ft(type)f Fu(returns)g(a)i(failure)g(status.)630 2434
-y(If)25 b(the)g Ft(-p)g Fu(option)h(is)f(used,)h Ft(type)e
-Fu(either)h(returns)g(the)g(name)g(of)h(the)f(disk)g(\014le)g(that)h(w)
-m(ould)630 2544 y(b)s(e)k(executed,)h(or)g(nothing)f(if)g
+Ft(])f([-O)h Fj(origin)p Ft(])f([-s)h Fj(count)p Ft(])1061
+518 y([-t])g([-u)f Fj(fd)p Ft(])h([-C)g Fj(callback)p
+Ft(])f([-c)g Fj(quantum)p Ft(])g([)p Fj(array)p Ft(])630
+650 y Fu(Read)38 b(lines)f(from)g(the)h(standard)e(input)g(in)m(to)j
+(the)e(indexed)g(arra)m(y)h(v)-5 b(ariable)38 b Fr(arra)m(y)p
+Fu(,)i(or)630 760 y(from)30 b(\014le)g(descriptor)h Fr(fd)i
+Fu(if)d(the)h Ft(-u)e Fu(option)i(is)g(supplied.)630
+892 y(A)f(synon)m(ym)g(for)g Ft(mapfile)p Fu(.)150 1047
+y Ft(source)870 1179 y(source)46 b Fj(filename)630 1312
+y Fu(A)30 b(synon)m(ym)g(for)g Ft(.)g Fu(\(see)i(Section)f(4.1)g
+([Bourne)g(Shell)f(Builtins],)h(page)g(43\).)150 1467
+y Ft(type)870 1599 y(type)47 b([-afptP])e([)p Fj(name)i
+Ft(...)o(])630 1731 y Fu(F)-8 b(or)42 b(eac)m(h)g Fr(name)p
+Fu(,)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 1841 y(name.)630 1973 y(If)g(the)g
+Ft(-t)g Fu(option)h(is)f(used,)j Ft(type)c Fu(prin)m(ts)h(a)h(single)g
+(w)m(ord)f(whic)m(h)g(is)g(one)h(of)g(`)p Ft(alias)p
+Fu(',)630 2083 y(`)p Ft(function)p Fu(',)32 b(`)p Ft(builtin)p
+Fu(',)g(`)p Ft(file)p Fu(')g(or)h(`)p Ft(keyword)p Fu(',)f(if)h
+Fr(name)38 b Fu(is)33 b(an)f(alias,)j(shell)e(function,)630
+2192 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
+Fr(name)40 b Fu(is)35 b(not)630 2302 y(found,)29 b(then)h(nothing)h(is)
+f(prin)m(ted,)g(and)g Ft(type)f Fu(returns)g(a)i(failure)g(status.)630
+2434 y(If)25 b(the)g Ft(-p)g Fu(option)h(is)f(used,)h
+Ft(type)e Fu(either)h(returns)g(the)g(name)g(of)h(the)f(disk)g(\014le)g
+(that)h(w)m(ould)630 2544 y(b)s(e)k(executed,)h(or)g(nothing)f(if)g
 Ft(-t)g Fu(w)m(ould)g(not)h(return)e(`)p Ft(file)p Fu('.)630
 2676 y(The)h Ft(-P)g Fu(option)h(forces)g(a)g(path)f(searc)m(h)h(for)g
 (eac)m(h)g Fr(name)p Fu(,)g(ev)m(en)g(if)g Ft(-t)f Fu(w)m(ould)g(not)h
@@ -12628,7 +12688,7 @@ Ft(-e)f Fu(w)m(as)i(b)s(eing)e(ignored,)j(the)e(shell)g(do)s(es)g(not)
 5011 y(This)f(option)h(applies)f(to)h(the)g(shell)g(en)m(vironmen)m(t)g
 (and)f(eac)m(h)h(subshell)f(en-)1110 5121 y(vironmen)m(t)j(separately)i
 (\(see)f(Section)g(3.7.3)h([Command)d(Execution)i(En-)1110
-5230 y(vironmen)m(t],)i(page)f(38\),)i(and)d(ma)m(y)h(cause)f
+5230 y(vironmen)m(t],)i(page)f(39\),)i(and)d(ma)m(y)h(cause)f
 (subshells)g(to)h(exit)g(b)s(efore)f(exe-)1110 5340 y(cuting)d(all)g
 (the)g(commands)f(in)g(the)g(subshell.)p eop end
 %%Page: 62 68
@@ -12762,7 +12822,7 @@ 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 1275 y(argumen)m(ts.)630
 1435 y Ft(-B)384 b Fu(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 1544
-y(Expansion],)30 b(page)h(22\).)42 b(This)30 b(option)h(is)f(on)g(b)m
+y(Expansion],)30 b(page)h(23\).)42 b(This)30 b(option)h(is)f(on)g(b)m
 (y)h(default.)630 1704 y Ft(-C)384 b Fu(Prev)m(en)m(t)25
 b(output)e(redirection)h(using)f(`)p Ft(>)p Fu(',)i(`)p
 Ft(>&)p Fu(',)g(and)e(`)p Ft(<>)p Fu(')g(from)h(o)m(v)m(erwriting)1110
@@ -13078,7 +13138,7 @@ b(tracing)i(is)f(enabled:)63 b(command)42 b(substitution,)i(shell)f
 Ft(ERR)1290 3915 y Fu(trap.)630 4080 y Ft(extglob)144
 b Fu(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 4189 y(Section)j(3.5.8.1)i
-([P)m(attern)f(Matc)m(hing],)g(page)f(32\))h(are)f(enabled.)630
+([P)m(attern)f(Matc)m(hing],)g(page)f(33\))h(are)f(enabled.)630
 4354 y Ft(extquote)96 b Fu(If)51 b(set,)58 b Ft($')p
 Fj(string)p Ft(')49 b Fu(and)i Ft($")p Fj(string)p Ft(")e
 Fu(quoting)k(is)e(p)s(erformed)f(within)1110 4463 y Ft(${)p
@@ -13101,7 +13161,7 @@ Ft(FIGNORE)p Fu(.)37 b(This)22 b(option)1110 408 y(is)30
 b(enabled)h(b)m(y)f(default.)630 603 y Ft(globasciiranges)1110
 713 y Fu(If)j(set,)h(range)f(expressions)g(used)f(in)h(pattern)g(matc)m
 (hing)h(brac)m(k)m(et)h(expres-)1110 822 y(sions)28 b(\(see)h(Section)h
-(3.5.8.1)g([P)m(attern)g(Matc)m(hing],)h(page)e(32\))g(b)s(eha)m(v)m(e)
+(3.5.8.1)g([P)m(attern)g(Matc)m(hing],)h(page)e(33\))g(b)s(eha)m(v)m(e)
 g(as)g(if)1110 932 y(in)i(the)g(traditional)i(C)d(lo)s(cale)j(when)d(p)
 s(erforming)g(comparisons.)44 b(That)31 b(is,)1110 1042
 y(the)d(curren)m(t)g(lo)s(cale's)i(collating)h(sequence)d(is)h(not)f
@@ -13141,7 +13201,7 @@ y Ft(hostcomplete)1110 4074 y Fu(If)38 b(set,)j(and)c(Readline)i(is)f
 630 4597 y Ft(huponexit)1110 4707 y Fu(If)i(set,)i(Bash)f(will)h(send)d
 Ft(SIGHUP)h Fu(to)h(all)h(jobs)e(when)g(an)g(in)m(teractiv)m(e)k(login)
 1110 4816 y(shell)31 b(exits)g(\(see)g(Section)g(3.7.6)h([Signals],)g
-(page)f(40\).)630 5011 y Ft(inherit_errexit)1110 5121
+(page)f(41\).)630 5011 y Ft(inherit_errexit)1110 5121
 y Fu(If)e(set,)h(command)g(substitution)f(inherits)g(the)g(v)-5
 b(alue)30 b(of)g(the)f Ft(errexit)f Fu(op-)1110 5230
 y(tion,)33 b(instead)g(of)f(unsetting)g(it)h(in)f(the)g(subshell)f(en)m
@@ -13342,817 +13402,828 @@ b(ariable)36 b(is)f(in)f(the)h(en)m(vironmen)m(t)g(when)f(Bash)630
 737 y(starts)25 b(up,)f(eac)m(h)i(shell)e(option)h(in)e(the)i(list)g
 (will)f(b)s(e)g(enabled)g(b)s(efore)g(reading)g(an)m(y)g(startup)630
 847 y(\014les.)41 b(This)29 b(v)-5 b(ariable)31 b(is)g(readonly)-8
-b(.)150 1011 y Ft(BASHPID)144 b Fu(Expands)35 b(to)i(the)f(pro)s(cess)f
+b(.)150 1044 y Ft(BASHPID)144 b Fu(Expands)35 b(to)i(the)f(pro)s(cess)f
 (ID)i(of)f(the)g(curren)m(t)g(Bash)g(pro)s(cess.)58 b(This)35
-b(di\013ers)h(from)g Ft($$)630 1121 y Fu(under)31 b(certain)j
+b(di\013ers)h(from)g Ft($$)630 1154 y Fu(under)31 b(certain)j
 (circumstances,)h(suc)m(h)e(as)g(subshells)f(that)i(do)f(not)g(require)
-g(Bash)g(to)h(b)s(e)630 1230 y(re-initialized.)57 b(Assignmen)m(ts)35
+g(Bash)g(to)h(b)s(e)630 1263 y(re-initialized.)57 b(Assignmen)m(ts)35
 b(to)h Ft(BASHPID)d Fu(ha)m(v)m(e)j(no)f(e\013ect.)56
-b(If)34 b Ft(BASHPID)f Fu(is)i(unset,)h(it)630 1340 y(loses)31
+b(If)34 b Ft(BASHPID)f Fu(is)i(unset,)h(it)630 1373 y(loses)31
 b(its)g(sp)s(ecial)g(prop)s(erties,)f(ev)m(en)h(if)f(it)h(is)g
-(subsequen)m(tly)f(reset.)150 1504 y Ft(BASH_ALIASES)630
-1614 y Fu(An)40 b(asso)s(ciativ)m(e)j(arra)m(y)d(v)-5
+(subsequen)m(tly)f(reset.)150 1570 y Ft(BASH_ALIASES)630
+1680 y Fu(An)40 b(asso)s(ciativ)m(e)j(arra)m(y)d(v)-5
 b(ariable)41 b(whose)f(mem)m(b)s(ers)f(corresp)s(ond)g(to)i(the)f(in)m
-(ternal)h(list)630 1724 y(of)c(aliases)h(as)f(main)m(tained)g(b)m(y)g
+(ternal)h(list)630 1789 y(of)c(aliases)h(as)f(main)m(tained)g(b)m(y)g
 (the)g Ft(alias)e Fu(builtin.)59 b(\(see)37 b(Section)h(4.1)f([Bourne)g
-(Shell)630 1833 y(Builtins],)31 b(page)g(43\).)42 b(Elemen)m(ts)31
+(Shell)630 1899 y(Builtins],)31 b(page)g(43\).)42 b(Elemen)m(ts)31
 b(added)e(to)i(this)f(arra)m(y)h(app)s(ear)f(in)g(the)g(alias)h(list;)h
-(ho)m(w-)630 1943 y(ev)m(er,)k(unsetting)f(arra)m(y)g(elemen)m(ts)g
+(ho)m(w-)630 2008 y(ev)m(er,)k(unsetting)f(arra)m(y)g(elemen)m(ts)g
 (curren)m(tly)g(do)s(es)f(not)g(cause)h(aliases)h(to)f(b)s(e)f(remo)m
-(v)m(ed)630 2052 y(from)25 b(the)h(alias)h(list.)40 b(If)25
+(v)m(ed)630 2118 y(from)25 b(the)h(alias)h(list.)40 b(If)25
 b Ft(BASH_ALIASES)d Fu(is)k(unset,)g(it)g(loses)h(its)f(sp)s(ecial)g
-(prop)s(erties,)g(ev)m(en)630 2162 y(if)k(it)h(is)g(subsequen)m(tly)f
-(reset.)150 2326 y Ft(BASH_ARGC)630 2436 y Fu(An)39 b(arra)m(y)g(v)-5
+(prop)s(erties,)g(ev)m(en)630 2228 y(if)k(it)h(is)g(subsequen)m(tly)f
+(reset.)150 2425 y Ft(BASH_ARGC)630 2534 y Fu(An)39 b(arra)m(y)g(v)-5
 b(ariable)40 b(whose)f(v)-5 b(alues)39 b(are)h(the)f(n)m(um)m(b)s(er)f
-(of)h(parameters)g(in)g(eac)m(h)h(frame)630 2545 y(of)i(the)g(curren)m
+(of)h(parameters)g(in)g(eac)m(h)h(frame)630 2644 y(of)i(the)g(curren)m
 (t)g(bash)f(execution)i(call)g(stac)m(k.)76 b(The)42
-b(n)m(um)m(b)s(er)e(of)i(parameters)g(to)h(the)630 2655
+b(n)m(um)m(b)s(er)e(of)i(parameters)g(to)h(the)630 2754
 y(curren)m(t)38 b(subroutine)f(\(shell)i(function)e(or)i(script)f
 (executed)h(with)e Ft(.)h Fu(or)g Ft(source)p Fu(\))f(is)h(at)630
-2765 y(the)27 b(top)g(of)g(the)g(stac)m(k.)41 b(When)27
+2863 y(the)27 b(top)g(of)g(the)g(stac)m(k.)41 b(When)27
 b(a)g(subroutine)f(is)h(executed,)i(the)e(n)m(um)m(b)s(er)f(of)h
-(parameters)630 2874 y(passed)44 b(is)h(pushed)e(on)m(to)j
+(parameters)630 2973 y(passed)44 b(is)h(pushed)e(on)m(to)j
 Ft(BASH_ARGC)p Fu(.)81 b(The)44 b(shell)h(sets)g Ft(BASH_ARGC)e
-Fu(only)i(when)e(in)630 2984 y(extended)34 b(debugging)f(mo)s(de)g
+Fu(only)i(when)e(in)630 3082 y(extended)34 b(debugging)f(mo)s(de)g
 (\(see)i(Section)f(4.3.2)i([The)d(Shopt)g(Builtin],)i(page)g(65,)g(for)
-630 3093 y(a)e(description)g(of)f(the)h Ft(extdebug)d
+630 3192 y(a)e(description)g(of)f(the)h Ft(extdebug)d
 Fu(option)j(to)h(the)e Ft(shopt)g Fu(builtin\).)47 b(Setting)33
-b Ft(extdebug)630 3203 y Fu(after)d(the)f(shell)g(has)g(started)h(to)g
-(execute)g(a)g(script)f(ma)m(y)g(result)g(in)g(inconsisten)m(t)h(v)-5
-b(alues.)150 3367 y Ft(BASH_ARGV)630 3477 y Fu(An)24
-b(arra)m(y)g(v)-5 b(ariable)25 b(con)m(taining)h(all)f(of)f(the)h
-(parameters)f(in)g(the)g(curren)m(t)g(bash)g(execution)630
-3587 y(call)35 b(stac)m(k.)53 b(The)34 b(\014nal)g(parameter)g(of)g
-(the)g(last)h(subroutine)e(call)i(is)f(at)h(the)f(top)h(of)f(the)630
-3696 y(stac)m(k;)28 b(the)c(\014rst)f(parameter)i(of)f(the)g(initial)i
-(call)f(is)f(at)h(the)f(b)s(ottom.)39 b(When)24 b(a)g(subroutine)630
-3806 y(is)40 b(executed,)j(the)d(parameters)h(supplied)d(are)i(pushed)f
-(on)m(to)i Ft(BASH_ARGV)p Fu(.)66 b(The)40 b(shell)630
-3915 y(sets)28 b Ft(BASH_ARGV)e Fu(only)i(when)f(in)h(extended)g
-(debugging)g(mo)s(de)g(\(see)h(Section)f(4.3.2)i([The)630
-4025 y(Shopt)g(Builtin],)h(page)g(65,)g(for)g(a)f(description)h(of)f
-(the)h Ft(extdebug)d Fu(option)j(to)g(the)f Ft(shopt)630
-4134 y Fu(builtin\).)51 b(Setting)35 b Ft(extdebug)c
-Fu(after)k(the)f(shell)g(has)f(started)i(to)f(execute)h(a)g(script)e
-(ma)m(y)630 4244 y(result)d(in)g(inconsisten)m(t)i(v)-5
-b(alues.)150 4408 y Ft(BASH_ARGV0)630 4518 y Fu(When)31
+b Ft(extdebug)630 3302 y Fu(after)c(the)g(shell)g(has)g(started)g(to)g
+(execute)i(a)e(script,)g(or)g(referencing)g(this)f(v)-5
+b(ariable)30 b(when)630 3411 y Ft(extdebug)e Fu(is)j(not)f(set,)h(ma)m
+(y)g(result)g(in)f(inconsisten)m(t)h(v)-5 b(alues.)150
+3608 y Ft(BASH_ARGV)630 3718 y Fu(An)24 b(arra)m(y)g(v)-5
+b(ariable)25 b(con)m(taining)h(all)f(of)f(the)h(parameters)f(in)g(the)g
+(curren)m(t)g(bash)g(execution)630 3828 y(call)35 b(stac)m(k.)53
+b(The)34 b(\014nal)g(parameter)g(of)g(the)g(last)h(subroutine)e(call)i
+(is)f(at)h(the)f(top)h(of)f(the)630 3937 y(stac)m(k;)28
+b(the)c(\014rst)f(parameter)i(of)f(the)g(initial)i(call)f(is)f(at)h
+(the)f(b)s(ottom.)39 b(When)24 b(a)g(subroutine)630 4047
+y(is)40 b(executed,)j(the)d(parameters)h(supplied)d(are)i(pushed)f(on)m
+(to)i Ft(BASH_ARGV)p Fu(.)66 b(The)40 b(shell)630 4156
+y(sets)28 b Ft(BASH_ARGV)e Fu(only)i(when)f(in)h(extended)g(debugging)g
+(mo)s(de)g(\(see)h(Section)f(4.3.2)i([The)630 4266 y(Shopt)g(Builtin],)
+h(page)g(65,)g(for)g(a)f(description)h(of)f(the)h Ft(extdebug)d
+Fu(option)j(to)g(the)f Ft(shopt)630 4376 y Fu(builtin\).)64
+b(Setting)38 b Ft(extdebug)e Fu(after)j(the)f(shell)g(has)g(started)g
+(to)h(execute)g(a)g(script,)h(or)630 4485 y(referencing)35
+b(this)f(v)-5 b(ariable)35 b(when)e Ft(extdebug)f Fu(is)j(not)f(set,)j
+(ma)m(y)e(result)f(in)g(inconsisten)m(t)630 4595 y(v)-5
+b(alues.)150 4792 y Ft(BASH_ARGV0)630 4902 y Fu(When)31
 b(referenced,)g(this)g(v)-5 b(ariable)32 b(expands)e(to)h(the)h(name)f
-(of)g(the)g(shell)g(or)g(shell)g(script)630 4628 y(\(iden)m(tical)42
+(of)g(the)g(shell)g(or)g(shell)g(script)630 5011 y(\(iden)m(tical)42
 b(to)e Ft($0)p Fu(;)j(See)d(Section)g(3.4.2)i([Sp)s(ecial)e(P)m
-(arameters],)j(page)d(21,)j(for)c(the)h(de-)630 4737
+(arameters],)j(page)d(21,)j(for)c(the)h(de-)630 5121
 y(scription)32 b(of)g(sp)s(ecial)g(parameter)g(0\).)45
 b(Assignmen)m(t)32 b(to)h Ft(BASH_ARGV0)c Fu(causes)j(the)f(v)-5
-b(alue)630 4847 y(assigned)34 b(to)h(also)g(b)s(e)e(assigned)h(to)g
+b(alue)630 5230 y(assigned)34 b(to)h(also)g(b)s(e)e(assigned)h(to)g
 Ft($0)p Fu(.)51 b(If)33 b Ft(BASH_ARGV0)f Fu(is)h(unset,)i(it)f(loses)h
-(its)f(sp)s(ecial)630 4956 y(prop)s(erties,)c(ev)m(en)h(if)f(it)h(is)g
-(subsequen)m(tly)f(reset.)150 5121 y Ft(BASH_CMDS)630
-5230 y Fu(An)k(asso)s(ciativ)m(e)i(arra)m(y)f(v)-5 b(ariable)35
-b(whose)f(mem)m(b)s(ers)f(corresp)s(ond)g(to)i(the)f(in)m(ternal)h
-(hash)630 5340 y(table)c(of)g(commands)f(as)g(main)m(tained)h(b)m(y)g
-(the)f Ft(hash)f Fu(builtin)h(\(see)h(Section)g(4.1)h([Bourne)p
-eop end
+(its)f(sp)s(ecial)630 5340 y(prop)s(erties,)c(ev)m(en)h(if)f(it)h(is)g
+(subsequen)m(tly)f(reset.)p eop end
 %%Page: 74 80
 TeXDict begin 74 79 bop 150 -116 a Fu(Chapter)30 b(5:)41
-b(Shell)30 b(V)-8 b(ariables)2459 b(74)630 299 y(Shell)42
-b(Builtins],)k(page)d(43\).)77 b(Elemen)m(ts)43 b(added)e(to)i(this)f
-(arra)m(y)h(app)s(ear)f(in)f(the)i(hash)630 408 y(table;)k(ho)m(w)m(ev)
-m(er,)e(unsetting)c(arra)m(y)g(elemen)m(ts)i(curren)m(tly)d(do)s(es)h
-(not)g(cause)g(command)630 518 y(names)36 b(to)g(b)s(e)f(remo)m(v)m(ed)
-i(from)e(the)h(hash)f(table.)58 b(If)36 b Ft(BASH_CMDS)d
-Fu(is)j(unset,)h(it)f(loses)h(its)630 628 y(sp)s(ecial)31
-b(prop)s(erties,)f(ev)m(en)h(if)f(it)h(is)g(subsequen)m(tly)f(reset.)
-150 792 y Ft(BASH_COMMAND)630 902 y Fu(The)39 b(command)h(curren)m(tly)
-g(b)s(eing)f(executed)i(or)e(ab)s(out)h(to)g(b)s(e)f(executed,)44
-b(unless)39 b(the)630 1011 y(shell)g(is)g(executing)g(a)g(command)g(as)
-g(the)f(result)h(of)g(a)g(trap,)i(in)d(whic)m(h)g(case)i(it)f(is)g(the)
-630 1121 y(command)30 b(executing)i(at)f(the)f(time)h(of)g(the)g(trap.)
-150 1285 y Ft(BASH_COMPAT)630 1395 y Fu(The)i(v)-5 b(alue)34
+b(Shell)30 b(V)-8 b(ariables)2459 b(74)150 299 y Ft(BASH_CMDS)630
+408 y Fu(An)34 b(asso)s(ciativ)m(e)i(arra)m(y)f(v)-5
+b(ariable)35 b(whose)f(mem)m(b)s(ers)f(corresp)s(ond)g(to)i(the)f(in)m
+(ternal)h(hash)630 518 y(table)c(of)g(commands)f(as)g(main)m(tained)h
+(b)m(y)g(the)f Ft(hash)f Fu(builtin)h(\(see)h(Section)g(4.1)h([Bourne)
+630 628 y(Shell)42 b(Builtins],)k(page)d(43\).)77 b(Elemen)m(ts)43
+b(added)e(to)i(this)f(arra)m(y)h(app)s(ear)f(in)f(the)i(hash)630
+737 y(table;)k(ho)m(w)m(ev)m(er,)e(unsetting)c(arra)m(y)g(elemen)m(ts)i
+(curren)m(tly)d(do)s(es)h(not)g(cause)g(command)630 847
+y(names)36 b(to)g(b)s(e)f(remo)m(v)m(ed)i(from)e(the)h(hash)f(table.)58
+b(If)36 b Ft(BASH_CMDS)d Fu(is)j(unset,)h(it)f(loses)h(its)630
+956 y(sp)s(ecial)31 b(prop)s(erties,)f(ev)m(en)h(if)f(it)h(is)g
+(subsequen)m(tly)f(reset.)150 1129 y Ft(BASH_COMMAND)630
+1238 y Fu(The)39 b(command)h(curren)m(tly)g(b)s(eing)f(executed)i(or)e
+(ab)s(out)h(to)g(b)s(e)f(executed,)44 b(unless)39 b(the)630
+1348 y(shell)g(is)g(executing)g(a)g(command)g(as)g(the)f(result)h(of)g
+(a)g(trap,)i(in)d(whic)m(h)g(case)i(it)f(is)g(the)630
+1457 y(command)30 b(executing)i(at)f(the)f(time)h(of)g(the)g(trap.)150
+1630 y Ft(BASH_COMPAT)630 1739 y Fu(The)i(v)-5 b(alue)34
 b(is)f(used)g(to)h(set)f(the)h(shell's)g(compatibilit)m(y)h(lev)m(el.)
-51 b(See)34 b(Section)g(4.3.2)h([The)630 1504 y(Shopt)40
+51 b(See)34 b(Section)g(4.3.2)h([The)630 1849 y(Shopt)40
 b(Builtin],)45 b(page)c(65,)k(for)c(a)g(description)g(of)g(the)g(v)-5
-b(arious)41 b(compatibilit)m(y)i(lev)m(els)630 1614 y(and)31
+b(arious)41 b(compatibilit)m(y)i(lev)m(els)630 1958 y(and)31
 b(their)g(e\013ects.)45 b(The)31 b(v)-5 b(alue)31 b(ma)m(y)h(b)s(e)f(a)
 h(decimal)g(n)m(um)m(b)s(er)e(\(e.g.,)j(4.2\))g(or)e(an)h(in)m(teger)
-630 1724 y(\(e.g.,)39 b(42\))f(corresp)s(onding)d(to)i(the)f(desired)f
+630 2068 y(\(e.g.,)39 b(42\))f(corresp)s(onding)d(to)i(the)f(desired)f
 (compatibilit)m(y)k(lev)m(el.)59 b(If)36 b Ft(BASH_COMPAT)d
-Fu(is)630 1833 y(unset)k(or)g(set)h(to)g(the)g(empt)m(y)f(string,)j
+Fu(is)630 2178 y(unset)k(or)g(set)h(to)g(the)g(empt)m(y)f(string,)j
 (the)d(compatibilit)m(y)j(lev)m(el)f(is)e(set)h(to)g(the)g(default)630
-1943 y(for)i(the)h(curren)m(t)f(v)m(ersion.)72 b(If)40
+2287 y(for)i(the)h(curren)m(t)f(v)m(ersion.)72 b(If)40
 b Ft(BASH_COMPAT)e Fu(is)i(set)h(to)h(a)e(v)-5 b(alue)41
-b(that)h(is)e(not)h(one)g(of)630 2052 y(the)f(v)-5 b(alid)40
+b(that)h(is)e(not)h(one)g(of)630 2397 y(the)f(v)-5 b(alid)40
 b(compatibilit)m(y)i(lev)m(els,)i(the)c(shell)g(prin)m(ts)f(an)h(error)
-f(message)i(and)f(sets)g(the)630 2162 y(compatibilit)m(y)23
+f(message)i(and)f(sets)g(the)630 2506 y(compatibilit)m(y)23
 b(lev)m(el)f(to)f(the)f(default)h(for)f(the)g(curren)m(t)g(v)m(ersion.)
-38 b(The)20 b(v)-5 b(alid)21 b(compatibilit)m(y)630 2271
+38 b(The)20 b(v)-5 b(alid)21 b(compatibilit)m(y)630 2616
 y(lev)m(els)40 b(corresp)s(ond)e(to)h(the)g(compatibilit)m(y)i(options)
 e(accepted)h(b)m(y)f(the)g Ft(shopt)e Fu(builtin)630
-2381 y(describ)s(ed)20 b(ab)s(o)m(v)m(e)i(\(for)g(example,)h
+2725 y(describ)s(ed)20 b(ab)s(o)m(v)m(e)i(\(for)g(example,)h
 Fr(compat42)31 b Fu(means)21 b(that)g(4.2)i(and)d(42)i(are)g(v)-5
-b(alid)21 b(v)-5 b(alues\).)630 2491 y(The)30 b(curren)m(t)g(v)m
+b(alid)21 b(v)-5 b(alues\).)630 2835 y(The)30 b(curren)m(t)g(v)m
 (ersion)h(is)f(also)i(a)e(v)-5 b(alid)31 b(v)-5 b(alue.)150
-2655 y Ft(BASH_ENV)96 b Fu(If)28 b(this)g(v)-5 b(ariable)30
+3007 y Ft(BASH_ENV)96 b Fu(If)28 b(this)g(v)-5 b(ariable)30
 b(is)e(set)h(when)f(Bash)g(is)h(in)m(v)m(ok)m(ed)h(to)f(execute)h(a)e
-(shell)h(script,)g(its)g(v)-5 b(alue)29 b(is)630 2765
+(shell)h(script,)g(its)g(v)-5 b(alue)29 b(is)630 3117
 y(expanded)k(and)h(used)g(as)g(the)h(name)f(of)g(a)h(startup)f(\014le)g
-(to)h(read)f(b)s(efore)g(executing)i(the)630 2874 y(script.)41
+(to)h(read)f(b)s(efore)g(executing)i(the)630 3226 y(script.)41
 b(See)30 b(Section)h(6.2)h([Bash)f(Startup)e(Files],)j(page)f(86.)150
-3039 y Ft(BASH_EXECUTION_STRING)630 3148 y Fu(The)f(command)g(argumen)m
+3399 y Ft(BASH_EXECUTION_STRING)630 3508 y Fu(The)f(command)g(argumen)m
 (t)h(to)g(the)g Ft(-c)e Fu(in)m(v)m(o)s(cation)k(option.)150
-3313 y Ft(BASH_LINENO)630 3422 y Fu(An)62 b(arra)m(y)i(v)-5
+3680 y Ft(BASH_LINENO)630 3790 y Fu(An)62 b(arra)m(y)i(v)-5
 b(ariable)63 b(whose)g(mem)m(b)s(ers)e(are)j(the)e(line)h(n)m(um)m(b)s
-(ers)f(in)g(source)h(\014les)630 3532 y(where)46 b(eac)m(h)i(corresp)s
+(ers)f(in)g(source)h(\014les)630 3900 y(where)46 b(eac)m(h)i(corresp)s
 (onding)d(mem)m(b)s(er)h(of)h Fr(FUNCNAME)53 b Fu(w)m(as)47
-b(in)m(v)m(ok)m(ed.)91 b Ft(${BASH_)630 3641 y(LINENO[$i]})39
+b(in)m(v)m(ok)m(ed.)91 b Ft(${BASH_)630 4009 y(LINENO[$i]})39
 b Fu(is)i(the)h(line)g(n)m(um)m(b)s(er)e(in)i(the)f(source)h(\014le)g
-(\()p Ft(${BASH_SOURCE[$i+1]})p Fu(\))630 3751 y(where)d
+(\()p Ft(${BASH_SOURCE[$i+1]})p Fu(\))630 4119 y(where)d
 Ft(${FUNCNAME[$i]})c Fu(w)m(as)k(called)i(\(or)e Ft
 (${BASH_LINENO[$i-1]})34 b Fu(if)39 b(referenced)630
-3861 y(within)30 b(another)g(shell)h(function\).)41 b(Use)31
+4228 y(within)30 b(another)g(shell)h(function\).)41 b(Use)31
 b Ft(LINENO)d Fu(to)j(obtain)g(the)g(curren)m(t)f(line)h(n)m(um)m(b)s
-(er.)150 4025 y Ft(BASH_LOADABLES_PATH)630 4134 y Fu(A)39
+(er.)150 4401 y Ft(BASH_LOADABLES_PATH)630 4510 y Fu(A)39
 b(colon-separated)i(list)f(of)f(directories)h(in)f(whic)m(h)g(the)g
-(shell)h(lo)s(oks)f(for)g(dynamically)630 4244 y(loadable)32
+(shell)h(lo)s(oks)f(for)g(dynamically)630 4620 y(loadable)32
 b(builtins)d(sp)s(eci\014ed)h(b)m(y)g(the)h Ft(enable)e
-Fu(command.)150 4408 y Ft(BASH_REMATCH)630 4518 y Fu(An)43
+Fu(command.)150 4792 y Ft(BASH_REMATCH)630 4902 y Fu(An)43
 b(arra)m(y)i(v)-5 b(ariable)44 b(whose)g(mem)m(b)s(ers)f(are)h
 (assigned)g(b)m(y)f(the)h(`)p Ft(=~)p Fu(')g(binary)f(op)s(erator)630
-4628 y(to)37 b(the)f Ft([[)g Fu(conditional)i(command)e(\(see)h
+5011 y(to)37 b(the)f Ft([[)g Fu(conditional)i(command)e(\(see)h
 (Section)g(3.2.4.2)i([Conditional)e(Constructs],)630
-4737 y(page)e(11\).)52 b(The)33 b(elemen)m(t)j(with)d(index)g(0)i(is)f
+5121 y(page)e(11\).)52 b(The)33 b(elemen)m(t)j(with)d(index)g(0)i(is)f
 (the)g(p)s(ortion)f(of)h(the)g(string)g(matc)m(hing)h(the)630
-4847 y(en)m(tire)29 b(regular)f(expression.)40 b(The)27
+5230 y(en)m(tire)29 b(regular)f(expression.)40 b(The)27
 b(elemen)m(t)j(with)d(index)h Fr(n)f Fu(is)h(the)g(p)s(ortion)g(of)g
-(the)g(string)630 4956 y(matc)m(hing)j(the)g Fr(n)p Fu(th)f(paren)m
+(the)g(string)630 5340 y(matc)m(hing)j(the)g Fr(n)p Fu(th)f(paren)m
 (thesized)h(sub)s(expression.)39 b(This)29 b(v)-5 b(ariable)31
-b(is)g(read-only)-8 b(.)150 5121 y Ft(BASH_SOURCE)630
-5230 y Fu(An)40 b(arra)m(y)h(v)-5 b(ariable)41 b(whose)f(mem)m(b)s(ers)
-g(are)h(the)g(source)f(\014lenames)h(where)f(the)g(corre-)630
-5340 y(sp)s(onding)27 b(shell)i(function)f(names)g(in)g(the)h
-Ft(FUNCNAME)d Fu(arra)m(y)j(v)-5 b(ariable)30 b(are)f(de\014ned.)38
-b(The)p eop end
+b(is)g(read-only)-8 b(.)p eop end
 %%Page: 75 81
 TeXDict begin 75 80 bop 150 -116 a Fu(Chapter)30 b(5:)41
-b(Shell)30 b(V)-8 b(ariables)2459 b(75)630 299 y(shell)26
-b(function)g Ft(${FUNCNAME[$i]})c Fu(is)k(de\014ned)f(in)g(the)h
-(\014le)h Ft(${BASH_SOURCE[$i]})21 b Fu(and)630 408 y(called)32
-b(from)d Ft(${BASH_SOURCE[$i+1]})150 573 y(BASH_SUBSHELL)630
-682 y Fu(Incremen)m(ted)24 b(b)m(y)f(one)h(within)f(eac)m(h)i(subshell)
-d(or)i(subshell)e(en)m(vironmen)m(t)i(when)f(the)h(shell)630
-792 y(b)s(egins)30 b(executing)h(in)f(that)h(en)m(vironmen)m(t.)42
-b(The)30 b(initial)h(v)-5 b(alue)31 b(is)f(0.)150 956
-y Ft(BASH_VERSINFO)630 1066 y Fu(A)36 b(readonly)g(arra)m(y)g(v)-5
-b(ariable)37 b(\(see)f(Section)h(6.7)g([Arra)m(ys],)h(page)e(93\))h
-(whose)f(mem)m(b)s(ers)630 1176 y(hold)c(v)m(ersion)h(information)f
-(for)g(this)g(instance)h(of)g(Bash.)46 b(The)32 b(v)-5
-b(alues)32 b(assigned)h(to)g(the)630 1285 y(arra)m(y)e(mem)m(b)s(ers)e
-(are)i(as)g(follo)m(ws:)630 1450 y Ft(BASH_VERSINFO[0])1110
-1559 y Fu(The)f(ma)5 b(jor)30 b(v)m(ersion)h(n)m(um)m(b)s(er)e(\(the)i
-Fr(release)5 b Fu(\).)630 1724 y Ft(BASH_VERSINFO[1])1110
-1833 y Fu(The)30 b(minor)g(v)m(ersion)h(n)m(um)m(b)s(er)e(\(the)i
-Fr(v)m(ersion)p Fu(\).)630 1998 y Ft(BASH_VERSINFO[2])1110
-2107 y Fu(The)f(patc)m(h)h(lev)m(el.)630 2271 y Ft(BASH_VERSINFO[3])
-1110 2381 y Fu(The)f(build)f(v)m(ersion.)630 2545 y Ft
-(BASH_VERSINFO[4])1110 2655 y Fu(The)h(release)i(status)e(\(e.g.,)j
-Fr(b)s(eta1)7 b Fu(\).)630 2819 y Ft(BASH_VERSINFO[5])1110
-2929 y Fu(The)30 b(v)-5 b(alue)31 b(of)f Ft(MACHTYPE)p
-Fu(.)150 3093 y Ft(BASH_VERSION)630 3203 y Fu(The)g(v)m(ersion)h(n)m
-(um)m(b)s(er)e(of)h(the)h(curren)m(t)f(instance)h(of)g(Bash.)150
-3367 y Ft(BASH_XTRACEFD)630 3477 y Fu(If)f(set)h(to)h(an)e(in)m(teger)i
+b(Shell)30 b(V)-8 b(ariables)2459 b(75)150 299 y Ft(BASH_SOURCE)630
+408 y Fu(An)40 b(arra)m(y)h(v)-5 b(ariable)41 b(whose)f(mem)m(b)s(ers)g
+(are)h(the)g(source)f(\014lenames)h(where)f(the)g(corre-)630
+518 y(sp)s(onding)27 b(shell)i(function)f(names)g(in)g(the)h
+Ft(FUNCNAME)d Fu(arra)m(y)j(v)-5 b(ariable)30 b(are)f(de\014ned.)38
+b(The)630 628 y(shell)26 b(function)g Ft(${FUNCNAME[$i]})c
+Fu(is)k(de\014ned)f(in)g(the)h(\014le)h Ft(${BASH_SOURCE[$i]})21
+b Fu(and)630 737 y(called)32 b(from)d Ft(${BASH_SOURCE[$i+1]})150
+892 y(BASH_SUBSHELL)630 1002 y Fu(Incremen)m(ted)24 b(b)m(y)f(one)h
+(within)f(eac)m(h)i(subshell)d(or)i(subshell)e(en)m(vironmen)m(t)i
+(when)f(the)h(shell)630 1112 y(b)s(egins)30 b(executing)h(in)f(that)h
+(en)m(vironmen)m(t.)42 b(The)30 b(initial)h(v)-5 b(alue)31
+b(is)f(0.)150 1267 y Ft(BASH_VERSINFO)630 1377 y Fu(A)36
+b(readonly)g(arra)m(y)g(v)-5 b(ariable)37 b(\(see)f(Section)h(6.7)g
+([Arra)m(ys],)h(page)e(93\))h(whose)f(mem)m(b)s(ers)630
+1486 y(hold)c(v)m(ersion)h(information)f(for)g(this)g(instance)h(of)g
+(Bash.)46 b(The)32 b(v)-5 b(alues)32 b(assigned)h(to)g(the)630
+1596 y(arra)m(y)e(mem)m(b)s(ers)e(are)i(as)g(follo)m(ws:)630
+1751 y Ft(BASH_VERSINFO[0])1110 1861 y Fu(The)f(ma)5
+b(jor)30 b(v)m(ersion)h(n)m(um)m(b)s(er)e(\(the)i Fr(release)5
+b Fu(\).)630 2016 y Ft(BASH_VERSINFO[1])1110 2125 y Fu(The)30
+b(minor)g(v)m(ersion)h(n)m(um)m(b)s(er)e(\(the)i Fr(v)m(ersion)p
+Fu(\).)630 2281 y Ft(BASH_VERSINFO[2])1110 2390 y Fu(The)f(patc)m(h)h
+(lev)m(el.)630 2545 y Ft(BASH_VERSINFO[3])1110 2655 y
+Fu(The)f(build)f(v)m(ersion.)630 2810 y Ft(BASH_VERSINFO[4])1110
+2920 y Fu(The)h(release)i(status)e(\(e.g.,)j Fr(b)s(eta1)7
+b Fu(\).)630 3075 y Ft(BASH_VERSINFO[5])1110 3185 y Fu(The)30
+b(v)-5 b(alue)31 b(of)f Ft(MACHTYPE)p Fu(.)150 3340 y
+Ft(BASH_VERSION)630 3450 y Fu(The)g(v)m(ersion)h(n)m(um)m(b)s(er)e(of)h
+(the)h(curren)m(t)f(instance)h(of)g(Bash.)150 3605 y
+Ft(BASH_XTRACEFD)630 3714 y Fu(If)f(set)h(to)h(an)e(in)m(teger)i
 (corresp)s(onding)e(to)h(a)g(v)-5 b(alid)31 b(\014le)g(descriptor,)g
-(Bash)g(will)g(write)g(the)630 3587 y(trace)37 b(output)f(generated)h
+(Bash)g(will)g(write)g(the)630 3824 y(trace)37 b(output)f(generated)h
 (when)f(`)p Ft(set)29 b(-x)p Fu(')36 b(is)g(enabled)h(to)g(that)f
-(\014le)h(descriptor.)58 b(This)630 3696 y(allo)m(ws)29
+(\014le)h(descriptor.)58 b(This)630 3934 y(allo)m(ws)29
 b(tracing)h(output)d(to)i(b)s(e)f(separated)g(from)g(diagnostic)h(and)f
-(error)f(messages.)41 b(The)630 3806 y(\014le)31 b(descriptor)f(is)h
+(error)f(messages.)41 b(The)630 4043 y(\014le)31 b(descriptor)f(is)h
 (closed)g(when)f Ft(BASH_XTRACEFD)d Fu(is)k(unset)f(or)g(assigned)h(a)g
-(new)f(v)-5 b(alue.)630 3915 y(Unsetting)45 b Ft(BASH_XTRACEFD)40
+(new)f(v)-5 b(alue.)630 4153 y(Unsetting)45 b Ft(BASH_XTRACEFD)40
 b Fu(or)k(assigning)g(it)g(the)g(empt)m(y)h(string)e(causes)i(the)f
-(trace)630 4025 y(output)33 b(to)i(b)s(e)d(sen)m(t)j(to)f(the)g
+(trace)630 4262 y(output)33 b(to)i(b)s(e)d(sen)m(t)j(to)f(the)g
 (standard)e(error.)50 b(Note)35 b(that)g(setting)f Ft(BASH_XTRACEFD)c
-Fu(to)630 4134 y(2)39 b(\(the)h(standard)e(error)g(\014le)h
+Fu(to)630 4372 y(2)39 b(\(the)h(standard)e(error)g(\014le)h
 (descriptor\))h(and)e(then)h(unsetting)g(it)g(will)g(result)g(in)g(the)
-630 4244 y(standard)30 b(error)g(b)s(eing)f(closed.)150
-4408 y Ft(CHILD_MAX)630 4518 y Fu(Set)35 b(the)h(n)m(um)m(b)s(er)e(of)h
+630 4482 y(standard)30 b(error)g(b)s(eing)f(closed.)150
+4637 y Ft(CHILD_MAX)630 4746 y Fu(Set)35 b(the)h(n)m(um)m(b)s(er)e(of)h
 (exited)h(c)m(hild)g(status)f(v)-5 b(alues)36 b(for)f(the)g(shell)g(to)
-h(remem)m(b)s(er.)55 b(Bash)630 4628 y(will)37 b(not)g(allo)m(w)i(this)
+h(remem)m(b)s(er.)55 b(Bash)630 4856 y(will)37 b(not)g(allo)m(w)i(this)
 e(v)-5 b(alue)37 b(to)h(b)s(e)e(decreased)i(b)s(elo)m(w)f(a)g
-Fm(posix)p Fu(-mandated)f(minim)m(um,)630 4737 y(and)30
+Fm(posix)p Fu(-mandated)f(minim)m(um,)630 4966 y(and)30
 b(there)g(is)g(a)h(maxim)m(um)f(v)-5 b(alue)30 b(\(curren)m(tly)h
 (8192\))h(that)f(this)f(ma)m(y)g(not)h(exceed.)41 b(The)630
-4847 y(minim)m(um)30 b(v)-5 b(alue)30 b(is)h(system-dep)s(enden)m(t.)
-150 5011 y Ft(COLUMNS)144 b Fu(Used)32 b(b)m(y)f(the)h
+5075 y(minim)m(um)30 b(v)-5 b(alue)30 b(is)h(system-dep)s(enden)m(t.)
+150 5230 y Ft(COLUMNS)144 b Fu(Used)32 b(b)m(y)f(the)h
 Ft(select)e Fu(command)h(to)i(determine)f(the)f(terminal)i(width)d
-(when)h(prin)m(ting)630 5121 y(selection)39 b(lists.)63
+(when)h(prin)m(ting)630 5340 y(selection)39 b(lists.)63
 b(Automatically)41 b(set)d(if)f(the)h Ft(checkwinsize)d
-Fu(option)j(is)f(enabled)h(\(see)630 5230 y(Section)44
-b(4.3.2)h([The)e(Shopt)g(Builtin],)k(page)d(65\),)k(or)43
-b(in)g(an)g(in)m(teractiv)m(e)j(shell)e(up)s(on)630 5340
-y(receipt)31 b(of)g(a)g Ft(SIGWINCH)p Fu(.)p eop end
+Fu(option)j(is)f(enabled)h(\(see)p eop end
 %%Page: 76 82
 TeXDict begin 76 81 bop 150 -116 a Fu(Chapter)30 b(5:)41
-b(Shell)30 b(V)-8 b(ariables)2459 b(76)150 299 y Ft(COMP_CWORD)630
-408 y Fu(An)38 b(index)g(in)m(to)h Ft(${COMP_WORDS})c
-Fu(of)k(the)g(w)m(ord)f(con)m(taining)i(the)e(curren)m(t)g(cursor)g(p)s
-(o-)630 518 y(sition.)72 b(This)40 b(v)-5 b(ariable)41
-b(is)f(a)m(v)-5 b(ailable)43 b(only)e(in)f(shell)h(functions)f(in)m(v)m
-(ok)m(ed)i(b)m(y)e(the)h(pro-)630 628 y(grammable)36
-b(completion)g(facilities)i(\(see)e(Section)g(8.6)g([Programmable)g
-(Completion],)630 737 y(page)31 b(131\).)150 883 y Ft(COMP_LINE)630
-993 y Fu(The)38 b(curren)m(t)h(command)f(line.)66 b(This)37
-b(v)-5 b(ariable)40 b(is)f(a)m(v)-5 b(ailable)41 b(only)d(in)h(shell)f
-(functions)630 1103 y(and)25 b(external)h(commands)f(in)m(v)m(ok)m(ed)h
-(b)m(y)f(the)h(programmable)f(completion)i(facilities)g(\(see)630
-1212 y(Section)k(8.6)h([Programmable)f(Completion],)g(page)g(131\).)150
-1358 y Ft(COMP_POINT)630 1468 y Fu(The)25 b(index)g(of)h(the)g(curren)m
+b(Shell)30 b(V)-8 b(ariables)2459 b(76)630 299 y(Section)44
+b(4.3.2)h([The)e(Shopt)g(Builtin],)k(page)d(65\),)k(or)43
+b(in)g(an)g(in)m(teractiv)m(e)j(shell)e(up)s(on)630 408
+y(receipt)31 b(of)g(a)g Ft(SIGWINCH)p Fu(.)150 555 y
+Ft(COMP_CWORD)630 664 y Fu(An)38 b(index)g(in)m(to)h
+Ft(${COMP_WORDS})c Fu(of)k(the)g(w)m(ord)f(con)m(taining)i(the)e
+(curren)m(t)g(cursor)g(p)s(o-)630 774 y(sition.)72 b(This)40
+b(v)-5 b(ariable)41 b(is)f(a)m(v)-5 b(ailable)43 b(only)e(in)f(shell)h
+(functions)f(in)m(v)m(ok)m(ed)i(b)m(y)e(the)h(pro-)630
+883 y(grammable)36 b(completion)g(facilities)i(\(see)e(Section)g(8.6)g
+([Programmable)g(Completion],)630 993 y(page)31 b(131\).)150
+1139 y Ft(COMP_LINE)630 1249 y Fu(The)38 b(curren)m(t)h(command)f
+(line.)66 b(This)37 b(v)-5 b(ariable)40 b(is)f(a)m(v)-5
+b(ailable)41 b(only)d(in)h(shell)f(functions)630 1358
+y(and)25 b(external)h(commands)f(in)m(v)m(ok)m(ed)h(b)m(y)f(the)h
+(programmable)f(completion)i(facilities)g(\(see)630 1468
+y(Section)k(8.6)h([Programmable)f(Completion],)g(page)g(131\).)150
+1614 y Ft(COMP_POINT)630 1724 y Fu(The)25 b(index)g(of)h(the)g(curren)m
 (t)f(cursor)g(p)s(osition)h(relativ)m(e)i(to)e(the)g(b)s(eginning)f(of)
-g(the)h(curren)m(t)630 1577 y(command.)40 b(If)27 b(the)h(curren)m(t)g
+g(the)h(curren)m(t)630 1833 y(command.)40 b(If)27 b(the)h(curren)m(t)g
 (cursor)g(p)s(osition)g(is)g(at)g(the)g(end)g(of)g(the)g(curren)m(t)g
-(command,)630 1687 y(the)i(v)-5 b(alue)30 b(of)g(this)g(v)-5
+(command,)630 1943 y(the)i(v)-5 b(alue)30 b(of)g(this)g(v)-5
 b(ariable)31 b(is)f(equal)g(to)h Ft(${#COMP_LINE})p Fu(.)37
 b(This)29 b(v)-5 b(ariable)31 b(is)f(a)m(v)-5 b(ailable)630
-1797 y(only)36 b(in)f(shell)h(functions)f(and)g(external)h(commands)g
-(in)m(v)m(ok)m(ed)h(b)m(y)e(the)h(programmable)630 1906
+2052 y(only)36 b(in)f(shell)h(functions)f(and)g(external)h(commands)g
+(in)m(v)m(ok)m(ed)h(b)m(y)e(the)h(programmable)630 2162
 y(completion)c(facilities)g(\(see)g(Section)f(8.6)g([Programmable)g
-(Completion],)h(page)f(131\).)150 2052 y Ft(COMP_TYPE)630
-2162 y Fu(Set)c(to)h(an)f(in)m(teger)h(v)-5 b(alue)28
+(Completion],)h(page)f(131\).)150 2308 y Ft(COMP_TYPE)630
+2418 y Fu(Set)c(to)h(an)f(in)m(teger)h(v)-5 b(alue)28
 b(corresp)s(onding)e(to)h(the)h(t)m(yp)s(e)f(of)g(completion)h
-(attempted)g(that)630 2271 y(caused)e(a)h(completion)h(function)e(to)h
+(attempted)g(that)630 2527 y(caused)e(a)h(completion)h(function)e(to)h
 (b)s(e)f(called:)40 b Fr(T)-8 b(AB)p Fu(,)27 b(for)g(normal)f
-(completion,)j(`)p Ft(?)p Fu(',)e(for)630 2381 y(listing)35
+(completion,)j(`)p Ft(?)p Fu(',)e(for)630 2637 y(listing)35
 b(completions)h(after)f(successiv)m(e)g(tabs,)h(`)p Ft(!)p
 Fu(',)g(for)e(listing)h(alternativ)m(es)i(on)d(partial)630
-2491 y(w)m(ord)22 b(completion,)k(`)p Ft(@)p Fu(',)f(to)e(list)g
+2746 y(w)m(ord)22 b(completion,)k(`)p Ft(@)p Fu(',)f(to)e(list)g
 (completions)h(if)f(the)g(w)m(ord)f(is)h(not)g(unmo)s(di\014ed,)f(or)h
-(`)p Ft(\045)p Fu(',)h(for)630 2600 y(men)m(u)i(completion.)41
+(`)p Ft(\045)p Fu(',)h(for)630 2856 y(men)m(u)i(completion.)41
 b(This)25 b(v)-5 b(ariable)27 b(is)g(a)m(v)-5 b(ailable)28
 b(only)f(in)f(shell)g(functions)g(and)g(external)630
-2710 y(commands)32 b(in)m(v)m(ok)m(ed)i(b)m(y)e(the)g(programmable)h
+2966 y(commands)32 b(in)m(v)m(ok)m(ed)i(b)m(y)e(the)g(programmable)h
 (completion)g(facilities)i(\(see)e(Section)g(8.6)630
-2819 y([Programmable)e(Completion],)h(page)f(131\).)150
-2966 y Ft(COMP_KEY)96 b Fu(The)29 b(k)m(ey)i(\(or)g(\014nal)e(k)m(ey)i
+3075 y([Programmable)e(Completion],)h(page)f(131\).)150
+3221 y Ft(COMP_KEY)96 b Fu(The)29 b(k)m(ey)i(\(or)g(\014nal)e(k)m(ey)i
 (of)f(a)g(k)m(ey)h(sequence\))g(used)e(to)i(in)m(v)m(ok)m(e)h(the)e
-(curren)m(t)g(completion)630 3075 y(function.)150 3221
-y Ft(COMP_WORDBREAKS)630 3331 y Fu(The)f(set)i(of)e(c)m(haracters)j
+(curren)m(t)g(completion)630 3331 y(function.)150 3477
+y Ft(COMP_WORDBREAKS)630 3587 y Fu(The)f(set)i(of)e(c)m(haracters)j
 (that)e(the)g(Readline)g(library)g(treats)g(as)g(w)m(ord)g(separators)g
-(when)630 3440 y(p)s(erforming)i(w)m(ord)h(completion.)51
+(when)630 3696 y(p)s(erforming)i(w)m(ord)h(completion.)51
 b(If)33 b Ft(COMP_WORDBREAKS)c Fu(is)34 b(unset,)g(it)f(loses)i(its)e
-(sp)s(ecial)630 3550 y(prop)s(erties,)d(ev)m(en)h(if)f(it)h(is)g
-(subsequen)m(tly)f(reset.)150 3696 y Ft(COMP_WORDS)630
-3806 y Fu(An)36 b(arra)m(y)g(v)-5 b(ariable)37 b(consisting)g(of)f(the)
+(sp)s(ecial)630 3806 y(prop)s(erties,)d(ev)m(en)h(if)f(it)h(is)g
+(subsequen)m(tly)f(reset.)150 3952 y Ft(COMP_WORDS)630
+4061 y Fu(An)36 b(arra)m(y)g(v)-5 b(ariable)37 b(consisting)g(of)f(the)
 g(individual)f(w)m(ords)h(in)f(the)h(curren)m(t)g(command)630
-3915 y(line.)94 b(The)47 b(line)i(is)f(split)g(in)m(to)h(w)m(ords)e(as)
+4171 y(line.)94 b(The)47 b(line)i(is)f(split)g(in)m(to)h(w)m(ords)e(as)
 h(Readline)h(w)m(ould)f(split)g(it,)53 b(using)47 b Ft(COMP_)630
-4025 y(WORDBREAKS)34 b Fu(as)i(describ)s(ed)g(ab)s(o)m(v)m(e.)60
+4281 y(WORDBREAKS)34 b Fu(as)i(describ)s(ed)g(ab)s(o)m(v)m(e.)60
 b(This)36 b(v)-5 b(ariable)37 b(is)f(a)m(v)-5 b(ailable)39
-b(only)e(in)f(shell)h(func-)630 4134 y(tions)32 b(in)m(v)m(ok)m(ed)i(b)
+b(only)e(in)f(shell)h(func-)630 4390 y(tions)32 b(in)m(v)m(ok)m(ed)i(b)
 m(y)d(the)i(programmable)f(completion)h(facilities)h(\(see)f(Section)g
-(8.6)g([Pro-)630 4244 y(grammable)e(Completion],)g(page)g(131\).)150
-4390 y Ft(COMPREPLY)630 4500 y Fu(An)37 b(arra)m(y)h(v)-5
+(8.6)g([Pro-)630 4500 y(grammable)e(Completion],)g(page)g(131\).)150
+4646 y Ft(COMPREPLY)630 4756 y Fu(An)37 b(arra)m(y)h(v)-5
 b(ariable)38 b(from)f(whic)m(h)g(Bash)g(reads)g(the)h(p)s(ossible)e
-(completions)j(generated)630 4609 y(b)m(y)33 b(a)g(shell)h(function)f
+(completions)j(generated)630 4865 y(b)m(y)33 b(a)g(shell)h(function)f
 (in)m(v)m(ok)m(ed)h(b)m(y)f(the)g(programmable)h(completion)g(facilit)m
-(y)h(\(see)f(Sec-)630 4719 y(tion)g(8.6)g([Programmable)g(Completion],)
+(y)h(\(see)f(Sec-)630 4975 y(tion)g(8.6)g([Programmable)g(Completion],)
 h(page)f(131\).)51 b(Eac)m(h)34 b(arra)m(y)g(elemen)m(t)h(con)m(tains)
-630 4829 y(one)c(p)s(ossible)f(completion.)150 4975 y
+630 5084 y(one)c(p)s(ossible)f(completion.)150 5230 y
 Ft(COPROC)192 b Fu(An)27 b(arra)m(y)g(v)-5 b(ariable)28
 b(created)g(to)f(hold)g(the)g(\014le)g(descriptors)g(for)g(output)f
-(from)h(and)f(input)630 5084 y(to)31 b(an)f(unnamed)f(copro)s(cess)i
-(\(see)g(Section)h(3.2.5)g([Copro)s(cesses],)f(page)g(15\).)150
-5230 y Ft(DIRSTACK)96 b Fu(An)26 b(arra)m(y)h(v)-5 b(ariable)28
-b(con)m(taining)g(the)f(curren)m(t)f(con)m(ten)m(ts)j(of)e(the)f
-(directory)i(stac)m(k.)41 b(Direc-)630 5340 y(tories)33
-b(app)s(ear)f(in)g(the)h(stac)m(k)h(in)e(the)h(order)f(they)h(are)g
-(displa)m(y)m(ed)g(b)m(y)f(the)h Ft(dirs)e Fu(builtin.)p
+(from)h(and)f(input)630 5340 y(to)31 b(an)f(unnamed)f(copro)s(cess)i
+(\(see)g(Section)h(3.2.5)g([Copro)s(cesses],)f(page)g(15\).)p
 eop end
 %%Page: 77 83
 TeXDict begin 77 82 bop 150 -116 a Fu(Chapter)30 b(5:)41
-b(Shell)30 b(V)-8 b(ariables)2459 b(77)630 299 y(Assigning)30
-b(to)h(mem)m(b)s(ers)f(of)g(this)g(arra)m(y)g(v)-5 b(ariable)31
-b(ma)m(y)g(b)s(e)e(used)h(to)h(mo)s(dify)e(directories)630
-408 y(already)41 b(in)f(the)h(stac)m(k,)k(but)40 b(the)h
-Ft(pushd)e Fu(and)h Ft(popd)f Fu(builtins)h(m)m(ust)h(b)s(e)e(used)h
-(to)i(add)630 518 y(and)37 b(remo)m(v)m(e)h(directories.)63
+b(Shell)30 b(V)-8 b(ariables)2459 b(77)150 299 y Ft(DIRSTACK)96
+b Fu(An)26 b(arra)m(y)h(v)-5 b(ariable)28 b(con)m(taining)g(the)f
+(curren)m(t)f(con)m(ten)m(ts)j(of)e(the)f(directory)i(stac)m(k.)41
+b(Direc-)630 408 y(tories)33 b(app)s(ear)f(in)g(the)h(stac)m(k)h(in)e
+(the)h(order)f(they)h(are)g(displa)m(y)m(ed)g(b)m(y)f(the)h
+Ft(dirs)e Fu(builtin.)630 518 y(Assigning)f(to)h(mem)m(b)s(ers)f(of)g
+(this)g(arra)m(y)g(v)-5 b(ariable)31 b(ma)m(y)g(b)s(e)e(used)h(to)h(mo)
+s(dify)e(directories)630 628 y(already)41 b(in)f(the)h(stac)m(k,)k(but)
+40 b(the)h Ft(pushd)e Fu(and)h Ft(popd)f Fu(builtins)h(m)m(ust)h(b)s(e)
+e(used)h(to)i(add)630 737 y(and)37 b(remo)m(v)m(e)h(directories.)63
 b(Assignmen)m(t)37 b(to)h(this)f(v)-5 b(ariable)38 b(will)g(not)f(c)m
-(hange)i(the)e(cur-)630 628 y(ren)m(t)c(directory)-8
+(hange)i(the)e(cur-)630 847 y(ren)m(t)c(directory)-8
 b(.)47 b(If)32 b Ft(DIRSTACK)e Fu(is)i(unset,)g(it)h(loses)g(its)g(sp)s
 (ecial)g(prop)s(erties,)f(ev)m(en)h(if)f(it)h(is)630
-737 y(subsequen)m(tly)d(reset.)150 896 y Ft(EMACS)240
+956 y(subsequen)m(tly)d(reset.)150 1115 y Ft(EMACS)240
 b Fu(If)31 b(Bash)h(\014nds)d(this)j(v)-5 b(ariable)32
 b(in)f(the)h(en)m(vironmen)m(t)g(when)e(the)i(shell)f(starts)h(with)f
-(v)-5 b(alue)630 1005 y(`)p Ft(t)p Fu(',)36 b(it)f(assumes)f(that)h
+(v)-5 b(alue)630 1224 y(`)p Ft(t)p Fu(',)36 b(it)f(assumes)f(that)h
 (the)g(shell)f(is)h(running)e(in)h(an)g(Emacs)h(shell)g(bu\013er)e(and)
-h(disables)630 1115 y(line)d(editing.)150 1273 y Ft(ENV)336
+h(disables)630 1334 y(line)d(editing.)150 1492 y Ft(ENV)336
 b Fu(Similar)35 b(to)g Ft(BASH_ENV)p Fu(;)h(used)e(when)g(the)h(shell)g
 (is)g(in)m(v)m(ok)m(ed)h(in)e Fm(posix)h Fu(Mo)s(de)g(\(see)g(Sec-)630
-1383 y(tion)c(6.11)h([Bash)f(POSIX)e(Mo)s(de],)i(page)g(98\).)150
-1541 y Ft(EPOCHREALTIME)630 1650 y Fu(Eac)m(h)38 b(time)f(this)g
+1602 y(tion)c(6.11)h([Bash)f(POSIX)e(Mo)s(de],)i(page)g(98\).)150
+1760 y Ft(EPOCHREALTIME)630 1870 y Fu(Eac)m(h)38 b(time)f(this)g
 (parameter)h(is)f(referenced,)i(it)f(expands)e(to)i(the)f(n)m(um)m(b)s
-(er)f(of)h(seconds)630 1760 y(since)f(the)g(Unix)f(Ep)s(o)s(c)m(h)g(as)
+(er)f(of)h(seconds)630 1979 y(since)f(the)g(Unix)f(Ep)s(o)s(c)m(h)g(as)
 h(a)g(\015oating)h(p)s(oin)m(t)f(v)-5 b(alue)36 b(with)f(micro-second)i
-(gran)m(ularit)m(y)630 1870 y(\(see)42 b(the)g(do)s(cumen)m(tation)g
+(gran)m(ularit)m(y)630 2089 y(\(see)42 b(the)g(do)s(cumen)m(tation)g
 (for)f(the)g(C)g(library)g(function)g Fr(time)47 b Fu(for)41
-b(the)h(de\014nition)f(of)630 1979 y(Ep)s(o)s(c)m(h\).)82
+b(the)h(de\014nition)f(of)630 2198 y(Ep)s(o)s(c)m(h\).)82
 b(Assignmen)m(ts)44 b(to)h Ft(EPOCHREALTIME)c Fu(are)j(ignored.)83
-b(If)43 b Ft(EPOCHREALTIME)e Fu(is)630 2089 y(unset,)30
+b(If)43 b Ft(EPOCHREALTIME)e Fu(is)630 2308 y(unset,)30
 b(it)h(loses)g(its)g(sp)s(ecial)g(prop)s(erties,)f(ev)m(en)h(if)f(it)h
-(is)g(subsequen)m(tly)f(reset.)150 2247 y Ft(EPOCHSECONDS)630
-2357 y Fu(Eac)m(h)38 b(time)f(this)g(parameter)h(is)f(referenced,)i(it)
+(is)g(subsequen)m(tly)f(reset.)150 2466 y Ft(EPOCHSECONDS)630
+2576 y Fu(Eac)m(h)38 b(time)f(this)g(parameter)h(is)f(referenced,)i(it)
 f(expands)e(to)i(the)f(n)m(um)m(b)s(er)f(of)h(seconds)630
-2466 y(since)e(the)g(Unix)f(Ep)s(o)s(c)m(h)g(\(see)i(the)f(do)s(cumen)m
+2685 y(since)e(the)g(Unix)f(Ep)s(o)s(c)m(h)g(\(see)i(the)f(do)s(cumen)m
 (tation)g(for)g(the)f(C)h(library)f(function)g Fr(time)630
-2576 y Fu(for)41 b(the)g(de\014nition)g(of)h(Ep)s(o)s(c)m(h\).)73
+2795 y Fu(for)41 b(the)g(de\014nition)g(of)h(Ep)s(o)s(c)m(h\).)73
 b(Assignmen)m(ts)41 b(to)h Ft(EPOCHSECONDS)c Fu(are)k(ignored.)73
-b(If)630 2685 y Ft(EPOCHSECONDS)27 b Fu(is)j(unset,)g(it)g(loses)h(its)
+b(If)630 2905 y Ft(EPOCHSECONDS)27 b Fu(is)j(unset,)g(it)g(loses)h(its)
 g(sp)s(ecial)f(prop)s(erties,)g(ev)m(en)h(if)f(it)g(is)g(subsequen)m
-(tly)630 2795 y(reset.)150 2953 y Ft(EUID)288 b Fu(The)30
+(tly)630 3014 y(reset.)150 3173 y Ft(EUID)288 b Fu(The)30
 b(n)m(umeric)g(e\013ectiv)m(e)j(user)d(id)g(of)g(the)h(curren)m(t)f
 (user.)40 b(This)30 b(v)-5 b(ariable)31 b(is)f(readonly)-8
-b(.)150 3112 y Ft(EXECIGNORE)630 3221 y Fu(A)29 b(colon-separated)h
+b(.)150 3331 y Ft(EXECIGNORE)630 3440 y Fu(A)29 b(colon-separated)h
 (list)f(of)g(shell)g(patterns)f(\(see)i(Section)f(3.5.8.1)i([P)m
-(attern)f(Matc)m(hing],)630 3331 y(page)j(32\))g(de\014ning)e(the)h
+(attern)f(Matc)m(hing],)630 3550 y(page)j(33\))g(de\014ning)e(the)h
 (list)g(of)g(\014lenames)g(to)g(b)s(e)g(ignored)g(b)m(y)f(command)h
-(searc)m(h)g(using)630 3440 y Ft(PATH)p Fu(.)k(Files)22
+(searc)m(h)g(using)630 3660 y Ft(PATH)p Fu(.)k(Files)22
 b(whose)f(full)g(pathnames)g(matc)m(h)h(one)f(of)g(these)h(patterns)e
-(are)i(not)f(considered)630 3550 y(executable)j(\014les)e(for)g(the)h
+(are)i(not)f(considered)630 3769 y(executable)j(\014les)e(for)g(the)h
 (purp)s(oses)d(of)j(completion)h(and)d(command)i(execution)g(via)g
-Ft(PATH)630 3660 y Fu(lo)s(okup.)56 b(This)35 b(do)s(es)g(not)h
+Ft(PATH)630 3879 y Fu(lo)s(okup.)56 b(This)35 b(do)s(es)g(not)h
 (a\013ect)i(the)d(b)s(eha)m(vior)h(of)g(the)g Ft([)p
 Fu(,)h Ft(test)p Fu(,)f(and)f Ft([[)g Fu(commands.)630
-3769 y(F)-8 b(ull)42 b(pathnames)e(in)h(the)g(command)g(hash)f(table)i
+3988 y(F)-8 b(ull)42 b(pathnames)e(in)h(the)g(command)g(hash)f(table)i
 (are)g(not)f(sub)5 b(ject)41 b(to)g Ft(EXECIGNORE)p Fu(.)630
-3879 y(Use)30 b(this)f(v)-5 b(ariable)30 b(to)g(ignore)g(shared)f
+4098 y(Use)30 b(this)f(v)-5 b(ariable)30 b(to)g(ignore)g(shared)f
 (library)g(\014les)g(that)h(ha)m(v)m(e)h(the)f(executable)h(bit)e(set,)
-630 3988 y(but)36 b(are)h(not)g(executable)i(\014les.)60
+630 4208 y(but)36 b(are)h(not)g(executable)i(\014les.)60
 b(The)36 b(pattern)h(matc)m(hing)h(honors)e(the)h(setting)h(of)f(the)
-630 4098 y Ft(extglob)28 b Fu(shell)j(option.)150 4256
+630 4317 y Ft(extglob)28 b Fu(shell)j(option.)150 4475
 y Ft(FCEDIT)192 b Fu(The)30 b(editor)h(used)e(as)i(a)g(default)f(b)m(y)
 h(the)f Ft(-e)g Fu(option)h(to)g(the)f Ft(fc)g Fu(builtin)g(command.)
-150 4415 y Ft(FIGNORE)144 b Fu(A)35 b(colon-separated)i(list)f(of)g
+150 4634 y Ft(FIGNORE)144 b Fu(A)35 b(colon-separated)i(list)f(of)g
 (su\016xes)e(to)i(ignore)g(when)e(p)s(erforming)g(\014lename)i(comple-)
-630 4524 y(tion.)k(A)27 b(\014lename)g(whose)f(su\016x)g(matc)m(hes)i
+630 4743 y(tion.)k(A)27 b(\014lename)g(whose)f(su\016x)g(matc)m(hes)i
 (one)f(of)g(the)g(en)m(tries)g(in)g Ft(FIGNORE)d Fu(is)j(excluded)630
-4634 y(from)j(the)g(list)h(of)g(matc)m(hed)g(\014lenames.)41
+4853 y(from)j(the)g(list)h(of)g(matc)m(hed)g(\014lenames.)41
 b(A)30 b(sample)h(v)-5 b(alue)31 b(is)f(`)p Ft(.o:~)p
-Fu(')150 4792 y Ft(FUNCNAME)96 b Fu(An)35 b(arra)m(y)i(v)-5
+Fu(')150 5011 y Ft(FUNCNAME)96 b Fu(An)35 b(arra)m(y)i(v)-5
 b(ariable)36 b(con)m(taining)h(the)f(names)g(of)g(all)g(shell)g
-(functions)g(curren)m(tly)f(in)h(the)630 4902 y(execution)g(call)h
+(functions)g(curren)m(tly)f(in)h(the)630 5121 y(execution)g(call)h
 (stac)m(k.)57 b(The)34 b(elemen)m(t)j(with)e(index)g(0)h(is)f(the)g
-(name)h(of)f(an)m(y)h(curren)m(tly-)630 5011 y(executing)f(shell)f
+(name)h(of)f(an)m(y)h(curren)m(tly-)630 5230 y(executing)f(shell)f
 (function.)51 b(The)34 b(b)s(ottom-most)h(elemen)m(t)g(\(the)g(one)f
-(with)g(the)g(highest)630 5121 y(index\))e(is)h Ft("main")p
+(with)g(the)g(highest)630 5340 y(index\))e(is)h Ft("main")p
 Fu(.)44 b(This)32 b(v)-5 b(ariable)33 b(exists)g(only)g(when)e(a)i
-(shell)f(function)g(is)g(executing.)630 5230 y(Assignmen)m(ts)23
-b(to)f Ft(FUNCNAME)e Fu(ha)m(v)m(e)k(no)e(e\013ect.)39
-b(If)22 b Ft(FUNCNAME)e Fu(is)i(unset,)h(it)g(loses)g(its)f(sp)s(ecial)
-630 5340 y(prop)s(erties,)30 b(ev)m(en)h(if)f(it)h(is)g(subsequen)m
-(tly)f(reset.)p eop end
+(shell)f(function)g(is)g(executing.)p eop end
 %%Page: 78 84
 TeXDict begin 78 83 bop 150 -116 a Fu(Chapter)30 b(5:)41
-b(Shell)30 b(V)-8 b(ariables)2459 b(78)630 299 y(This)31
-b(v)-5 b(ariable)32 b(can)f(b)s(e)g(used)g(with)g Ft(BASH_LINENO)d
-Fu(and)j Ft(BASH_SOURCE)p Fu(.)40 b(Eac)m(h)32 b(elemen)m(t)630
-408 y(of)g Ft(FUNCNAME)d Fu(has)j(corresp)s(onding)e(elemen)m(ts)j(in)f
-Ft(BASH_LINENO)c Fu(and)k Ft(BASH_SOURCE)c Fu(to)630
-518 y(describ)s(e)39 b(the)h(call)h(stac)m(k.)70 b(F)-8
-b(or)41 b(instance,)i Ft(${FUNCNAME[$i]})35 b Fu(w)m(as)41
-b(called)f(from)g(the)630 628 y(\014le)27 b Ft(${BASH_SOURCE[$i+1]})21
-b Fu(at)27 b(line)h(n)m(um)m(b)s(er)d Ft(${BASH_LINENO[$i]})p
-Fu(.)34 b(The)27 b Ft(caller)630 737 y Fu(builtin)j(displa)m(ys)g(the)h
-(curren)m(t)f(call)i(stac)m(k)g(using)d(this)i(information.)150
-894 y Ft(FUNCNEST)96 b Fu(If)34 b(set)i(to)f(a)h(n)m(umeric)e(v)-5
+b(Shell)30 b(V)-8 b(ariables)2459 b(78)630 299 y(Assignmen)m(ts)23
+b(to)f Ft(FUNCNAME)e Fu(ha)m(v)m(e)k(no)e(e\013ect.)39
+b(If)22 b Ft(FUNCNAME)e Fu(is)i(unset,)h(it)g(loses)g(its)f(sp)s(ecial)
+630 408 y(prop)s(erties,)30 b(ev)m(en)h(if)f(it)h(is)g(subsequen)m(tly)
+f(reset.)630 543 y(This)h(v)-5 b(ariable)32 b(can)f(b)s(e)g(used)g
+(with)g Ft(BASH_LINENO)d Fu(and)j Ft(BASH_SOURCE)p Fu(.)40
+b(Eac)m(h)32 b(elemen)m(t)630 653 y(of)g Ft(FUNCNAME)d
+Fu(has)j(corresp)s(onding)e(elemen)m(ts)j(in)f Ft(BASH_LINENO)c
+Fu(and)k Ft(BASH_SOURCE)c Fu(to)630 763 y(describ)s(e)39
+b(the)h(call)h(stac)m(k.)70 b(F)-8 b(or)41 b(instance,)i
+Ft(${FUNCNAME[$i]})35 b Fu(w)m(as)41 b(called)f(from)g(the)630
+872 y(\014le)27 b Ft(${BASH_SOURCE[$i+1]})21 b Fu(at)27
+b(line)h(n)m(um)m(b)s(er)d Ft(${BASH_LINENO[$i]})p Fu(.)34
+b(The)27 b Ft(caller)630 982 y Fu(builtin)j(displa)m(ys)g(the)h(curren)
+m(t)f(call)i(stac)m(k)g(using)d(this)i(information.)150
+1142 y Ft(FUNCNEST)96 b Fu(If)34 b(set)i(to)f(a)h(n)m(umeric)e(v)-5
 b(alue)36 b(greater)g(than)e(0,)j(de\014nes)d(a)h(maxim)m(um)g
-(function)g(nesting)630 1003 y(lev)m(el.)42 b(F)-8 b(unction)29
+(function)g(nesting)630 1251 y(lev)m(el.)42 b(F)-8 b(unction)29
 b(in)m(v)m(o)s(cations)h(that)f(exceed)h(this)e(nesting)h(lev)m(el)h
-(will)f(cause)g(the)f(curren)m(t)630 1113 y(command)i(to)h(ab)s(ort.)
-150 1270 y Ft(GLOBIGNORE)630 1379 y Fu(A)k(colon-separated)i(list)f(of)
+(will)f(cause)g(the)f(curren)m(t)630 1361 y(command)i(to)h(ab)s(ort.)
+150 1521 y Ft(GLOBIGNORE)630 1631 y Fu(A)k(colon-separated)i(list)f(of)
 f(patterns)g(de\014ning)f(the)i(set)f(of)g(\014le)h(names)f(to)g(b)s(e)
-g(ignored)630 1489 y(b)m(y)28 b(\014lename)h(expansion.)40
+g(ignored)630 1740 y(b)m(y)28 b(\014lename)h(expansion.)40
 b(If)28 b(a)h(\014le)g(name)g(matc)m(hed)g(b)m(y)g(a)g(\014lename)f
-(expansion)h(pattern)630 1598 y(also)k(matc)m(hes)g(one)f(of)g(the)g
+(expansion)h(pattern)630 1850 y(also)k(matc)m(hes)g(one)f(of)g(the)g
 (patterns)g(in)f Ft(GLOBIGNORE)p Fu(,)f(it)i(is)g(remo)m(v)m(ed)h(from)
-e(the)h(list)h(of)630 1708 y(matc)m(hes.)41 b(The)27
+e(the)h(list)h(of)630 1960 y(matc)m(hes.)41 b(The)27
 b(pattern)g(matc)m(hing)h(honors)f(the)g(setting)i(of)e(the)h
-Ft(extglob)d Fu(shell)i(option.)150 1864 y Ft(GROUPS)192
+Ft(extglob)d Fu(shell)i(option.)150 2120 y Ft(GROUPS)192
 b Fu(An)36 b(arra)m(y)g(v)-5 b(ariable)37 b(con)m(taining)g(the)f(list)
 h(of)f(groups)g(of)g(whic)m(h)f(the)i(curren)m(t)e(user)h(is)g(a)630
-1974 y(mem)m(b)s(er.)41 b(Assignmen)m(ts)30 b(to)i Ft(GROUPS)d
+2229 y(mem)m(b)s(er.)41 b(Assignmen)m(ts)30 b(to)i Ft(GROUPS)d
 Fu(ha)m(v)m(e)i(no)g(e\013ect.)42 b(If)30 b Ft(GROUPS)f
-Fu(is)i(unset,)f(it)h(loses)h(its)630 2084 y(sp)s(ecial)f(prop)s
+Fu(is)i(unset,)f(it)h(loses)h(its)630 2339 y(sp)s(ecial)f(prop)s
 (erties,)f(ev)m(en)h(if)f(it)h(is)g(subsequen)m(tly)f(reset.)150
-2240 y Ft(histchars)630 2350 y Fu(Up)c(to)g(three)g(c)m(haracters)i
+2499 y Ft(histchars)630 2609 y Fu(Up)c(to)g(three)g(c)m(haracters)i
 (whic)m(h)d(con)m(trol)j(history)d(expansion,)i(quic)m(k)g
-(substitution,)g(and)630 2459 y(tok)m(enization)k(\(see)f(Section)f
+(substitution,)g(and)630 2718 y(tok)m(enization)k(\(see)f(Section)f
 (9.3)h([History)f(In)m(teraction],)i(page)f(142\).)41
-b(The)29 b(\014rst)e(c)m(harac-)630 2569 y(ter)j(is)f(the)g
+b(The)29 b(\014rst)e(c)m(harac-)630 2828 y(ter)j(is)f(the)g
 Fr(history)g(expansion)g Fu(c)m(haracter,)j(that)e(is,)f(the)h(c)m
-(haracter)h(whic)m(h)d(signi\014es)i(the)630 2679 y(start)25
+(haracter)h(whic)m(h)d(signi\014es)i(the)630 2937 y(start)25
 b(of)f(a)h(history)f(expansion,)i(normally)e(`)p Ft(!)p
 Fu('.)39 b(The)24 b(second)g(c)m(haracter)i(is)e(the)g(c)m(haracter)630
-2788 y(whic)m(h)36 b(signi\014es)g(`quic)m(k)h(substitution')f(when)f
+3047 y(whic)m(h)36 b(signi\014es)g(`quic)m(k)h(substitution')f(when)f
 (seen)h(as)g(the)g(\014rst)f(c)m(haracter)j(on)e(a)g(line,)630
-2898 y(normally)27 b(`)p Ft(^)p Fu('.)39 b(The)26 b(optional)i(third)d
+3157 y(normally)27 b(`)p Ft(^)p Fu('.)39 b(The)26 b(optional)i(third)d
 (c)m(haracter)j(is)e(the)h(c)m(haracter)h(whic)m(h)e(indicates)h(that)
-630 3007 y(the)34 b(remainder)f(of)h(the)g(line)g(is)f(a)h(commen)m(t)h
+630 3266 y(the)34 b(remainder)f(of)h(the)g(line)g(is)f(a)h(commen)m(t)h
 (when)e(found)f(as)i(the)g(\014rst)f(c)m(haracter)i(of)f(a)630
-3117 y(w)m(ord,)i(usually)f(`)p Ft(#)p Fu('.)55 b(The)34
+3376 y(w)m(ord,)i(usually)f(`)p Ft(#)p Fu('.)55 b(The)34
 b(history)h(commen)m(t)h(c)m(haracter)h(causes)e(history)g
-(substitution)630 3226 y(to)27 b(b)s(e)f(skipp)s(ed)f(for)i(the)f
+(substitution)630 3485 y(to)27 b(b)s(e)f(skipp)s(ed)f(for)i(the)f
 (remaining)h(w)m(ords)f(on)h(the)f(line.)40 b(It)27 b(do)s(es)f(not)h
-(necessarily)g(cause)630 3336 y(the)k(shell)f(parser)g(to)h(treat)g
+(necessarily)g(cause)630 3595 y(the)k(shell)f(parser)g(to)h(treat)g
 (the)g(rest)g(of)f(the)h(line)f(as)h(a)g(commen)m(t.)150
-3493 y Ft(HISTCMD)144 b Fu(The)35 b(history)h(n)m(um)m(b)s(er,)g(or)f
+3755 y Ft(HISTCMD)144 b Fu(The)35 b(history)h(n)m(um)m(b)s(er,)g(or)f
 (index)g(in)h(the)g(history)f(list,)j(of)e(the)g(curren)m(t)f(command.)
-56 b(If)630 3602 y Ft(HISTCMD)28 b Fu(is)h(unset,)h(it)g(loses)h(its)f
+56 b(If)630 3865 y Ft(HISTCMD)28 b Fu(is)h(unset,)h(it)g(loses)h(its)f
 (sp)s(ecial)g(prop)s(erties,)g(ev)m(en)g(if)g(it)g(is)g(subsequen)m
-(tly)f(reset.)150 3759 y Ft(HISTCONTROL)630 3868 y Fu(A)40
+(tly)f(reset.)150 4025 y Ft(HISTCONTROL)630 4134 y Fu(A)40
 b(colon-separated)i(list)f(of)f(v)-5 b(alues)40 b(con)m(trolling)i(ho)m
-(w)e(commands)g(are)h(sa)m(v)m(ed)g(on)f(the)630 3978
+(w)e(commands)g(are)h(sa)m(v)m(ed)g(on)f(the)630 4244
 y(history)29 b(list.)41 b(If)28 b(the)h(list)h(of)f(v)-5
 b(alues)29 b(includes)f(`)p Ft(ignorespace)p Fu(',)f(lines)i(whic)m(h)g
-(b)s(egin)f(with)630 4088 y(a)39 b(space)g(c)m(haracter)i(are)e(not)g
+(b)s(egin)f(with)630 4354 y(a)39 b(space)g(c)m(haracter)i(are)e(not)g
 (sa)m(v)m(ed)g(in)g(the)g(history)f(list.)66 b(A)39 b(v)-5
-b(alue)39 b(of)g(`)p Ft(ignoredups)p Fu(')630 4197 y(causes)34
+b(alue)39 b(of)g(`)p Ft(ignoredups)p Fu(')630 4463 y(causes)34
 b(lines)h(whic)m(h)f(matc)m(h)h(the)f(previous)f(history)h(en)m(try)h
 (to)g(not)f(b)s(e)f(sa)m(v)m(ed.)53 b(A)34 b(v)-5 b(alue)630
-4307 y(of)32 b(`)p Ft(ignoreboth)p Fu(')d(is)j(shorthand)e(for)i(`)p
+4573 y(of)32 b(`)p Ft(ignoreboth)p Fu(')d(is)j(shorthand)e(for)i(`)p
 Ft(ignorespace)p Fu(')d(and)i(`)p Ft(ignoredups)p Fu('.)42
-b(A)32 b(v)-5 b(alue)32 b(of)630 4416 y(`)p Ft(erasedups)p
+b(A)32 b(v)-5 b(alue)32 b(of)630 4682 y(`)p Ft(erasedups)p
 Fu(')f(causes)i(all)h(previous)f(lines)g(matc)m(hing)h(the)f(curren)m
-(t)g(line)g(to)h(b)s(e)e(remo)m(v)m(ed)630 4526 y(from)42
+(t)g(line)g(to)h(b)s(e)e(remo)m(v)m(ed)630 4792 y(from)42
 b(the)h(history)f(list)i(b)s(efore)e(that)h(line)g(is)g(sa)m(v)m(ed.)78
 b(An)m(y)43 b(v)-5 b(alue)43 b(not)g(in)f(the)h(ab)s(o)m(v)m(e)630
-4635 y(list)35 b(is)g(ignored.)53 b(If)34 b Ft(HISTCONTROL)e
+4902 y(list)35 b(is)g(ignored.)53 b(If)34 b Ft(HISTCONTROL)e
 Fu(is)i(unset,)i(or)e(do)s(es)h(not)g(include)f(a)h(v)-5
-b(alid)35 b(v)-5 b(alue,)36 b(all)630 4745 y(lines)30
+b(alid)35 b(v)-5 b(alue,)36 b(all)630 5011 y(lines)30
 b(read)g(b)m(y)g(the)g(shell)g(parser)g(are)g(sa)m(v)m(ed)h(on)f(the)g
 (history)g(list,)h(sub)5 b(ject)30 b(to)g(the)g(v)-5
-b(alue)630 4855 y(of)42 b Ft(HISTIGNORE)p Fu(.)73 b(The)42
+b(alue)630 5121 y(of)42 b Ft(HISTIGNORE)p Fu(.)73 b(The)42
 b(second)g(and)g(subsequen)m(t)f(lines)h(of)h(a)f(m)m(ulti-line)h(comp)
-s(ound)630 4964 y(command)33 b(are)h(not)g(tested,)i(and)d(are)h(added)
+s(ound)630 5230 y(command)33 b(are)h(not)g(tested,)i(and)d(are)h(added)
 f(to)h(the)g(history)g(regardless)g(of)g(the)f(v)-5 b(alue)630
-5074 y(of)31 b Ft(HISTCONTROL)p Fu(.)150 5230 y Ft(HISTFILE)96
-b Fu(The)27 b(name)h(of)g(the)g(\014le)g(to)h(whic)m(h)f(the)g(command)
-f(history)h(is)g(sa)m(v)m(ed.)41 b(The)27 b(default)h(v)-5
-b(alue)630 5340 y(is)30 b Ft(~/.bash_history)p Fu(.)p
-eop end
+5340 y(of)31 b Ft(HISTCONTROL)p Fu(.)p eop end
 %%Page: 79 85
 TeXDict begin 79 84 bop 150 -116 a Fu(Chapter)30 b(5:)41
-b(Shell)30 b(V)-8 b(ariables)2459 b(79)150 299 y Ft(HISTFILESIZE)630
-408 y Fu(The)26 b(maxim)m(um)f(n)m(um)m(b)s(er)g(of)h(lines)h(con)m
-(tained)g(in)f(the)g(history)g(\014le.)39 b(When)26 b(this)g(v)-5
-b(ariable)630 518 y(is)25 b(assigned)h(a)g(v)-5 b(alue,)27
-b(the)f(history)f(\014le)h(is)f(truncated,)i(if)e(necessary)-8
-b(,)28 b(to)e(con)m(tain)g(no)g(more)630 628 y(than)37
+b(Shell)30 b(V)-8 b(ariables)2459 b(79)150 299 y Ft(HISTFILE)96
+b Fu(The)27 b(name)h(of)g(the)g(\014le)g(to)h(whic)m(h)f(the)g(command)
+f(history)h(is)g(sa)m(v)m(ed.)41 b(The)27 b(default)h(v)-5
+b(alue)630 408 y(is)30 b Ft(~/.bash_history)p Fu(.)150
+569 y Ft(HISTFILESIZE)630 678 y Fu(The)c(maxim)m(um)f(n)m(um)m(b)s(er)g
+(of)h(lines)h(con)m(tained)g(in)f(the)g(history)g(\014le.)39
+b(When)26 b(this)g(v)-5 b(ariable)630 788 y(is)25 b(assigned)h(a)g(v)-5
+b(alue,)27 b(the)f(history)f(\014le)h(is)f(truncated,)i(if)e(necessary)
+-8 b(,)28 b(to)e(con)m(tain)g(no)g(more)630 897 y(than)37
 b(that)h(n)m(um)m(b)s(er)d(of)j(lines)f(b)m(y)g(remo)m(ving)h(the)f
 (oldest)h(en)m(tries.)62 b(The)37 b(history)g(\014le)g(is)630
-737 y(also)i(truncated)f(to)h(this)e(size)i(after)g(writing)f(it)g
+1007 y(also)i(truncated)f(to)h(this)e(size)i(after)g(writing)f(it)g
 (when)f(a)h(shell)h(exits.)64 b(If)37 b(the)h(v)-5 b(alue)39
-b(is)630 847 y(0,)g(the)e(history)f(\014le)h(is)g(truncated)f(to)i
+b(is)630 1117 y(0,)g(the)e(history)f(\014le)h(is)g(truncated)f(to)i
 (zero)f(size.)60 b(Non-n)m(umeric)37 b(v)-5 b(alues)37
-b(and)f(n)m(umeric)630 956 y(v)-5 b(alues)31 b(less)f(than)g(zero)h
+b(and)f(n)m(umeric)630 1226 y(v)-5 b(alues)31 b(less)f(than)g(zero)h
 (inhibit)f(truncation.)41 b(The)29 b(shell)i(sets)f(the)h(default)f(v)
--5 b(alue)31 b(to)g(the)630 1066 y(v)-5 b(alue)31 b(of)f
+-5 b(alue)31 b(to)g(the)630 1336 y(v)-5 b(alue)31 b(of)f
 Ft(HISTSIZE)f Fu(after)h(reading)h(an)m(y)g(startup)f(\014les.)150
-1243 y Ft(HISTIGNORE)630 1353 y Fu(A)j(colon-separated)h(list)f(of)g
+1496 y Ft(HISTIGNORE)630 1606 y Fu(A)j(colon-separated)h(list)f(of)g
 (patterns)f(used)g(to)h(decide)g(whic)m(h)f(command)g(lines)h(should)
-630 1462 y(b)s(e)f(sa)m(v)m(ed)h(on)g(the)f(history)h(list.)47
+630 1715 y(b)s(e)f(sa)m(v)m(ed)h(on)g(the)f(history)h(list.)47
 b(Eac)m(h)33 b(pattern)g(is)f(anc)m(hored)h(at)g(the)f(b)s(eginning)g
-(of)h(the)630 1572 y(line)43 b(and)e(m)m(ust)h(matc)m(h)h(the)g
+(of)h(the)630 1825 y(line)43 b(and)e(m)m(ust)h(matc)m(h)h(the)g
 (complete)h(line)e(\(no)h(implicit)g(`)p Ft(*)p Fu(')f(is)g(app)s
-(ended\).)75 b(Eac)m(h)630 1681 y(pattern)42 b(is)g(tested)g(against)h
+(ended\).)75 b(Eac)m(h)630 1934 y(pattern)42 b(is)g(tested)g(against)h
 (the)f(line)g(after)g(the)g(c)m(hec)m(ks)h(sp)s(eci\014ed)e(b)m(y)h
-Ft(HISTCONTROL)630 1791 y Fu(are)37 b(applied.)59 b(In)36
+Ft(HISTCONTROL)630 2044 y Fu(are)37 b(applied.)59 b(In)36
 b(addition)h(to)g(the)g(normal)g(shell)f(pattern)h(matc)m(hing)h(c)m
-(haracters,)i(`)p Ft(&)p Fu(')630 1901 y(matc)m(hes)d(the)f(previous)g
+(haracters,)i(`)p Ft(&)p Fu(')630 2153 y(matc)m(hes)d(the)f(previous)g
 (history)g(line.)57 b(`)p Ft(&)p Fu(')36 b(ma)m(y)h(b)s(e)e(escap)s(ed)
-h(using)g(a)g(bac)m(kslash;)k(the)630 2010 y(bac)m(kslash)34
+h(using)g(a)g(bac)m(kslash;)k(the)630 2263 y(bac)m(kslash)34
 b(is)g(remo)m(v)m(ed)h(b)s(efore)e(attempting)i(a)g(matc)m(h.)51
-b(The)34 b(second)f(and)h(subsequen)m(t)630 2120 y(lines)e(of)h(a)g(m)m
+b(The)34 b(second)f(and)h(subsequen)m(t)630 2373 y(lines)e(of)h(a)g(m)m
 (ulti-line)g(comp)s(ound)e(command)h(are)h(not)f(tested,)i(and)e(are)g
-(added)g(to)h(the)630 2229 y(history)k(regardless)h(of)f(the)g(v)-5
+(added)g(to)h(the)630 2482 y(history)k(regardless)h(of)f(the)g(v)-5
 b(alue)38 b(of)f Ft(HISTIGNORE)p Fu(.)58 b(The)37 b(pattern)g(matc)m
-(hing)i(honors)630 2339 y(the)31 b(setting)g(of)g(the)f
-Ft(extglob)f Fu(shell)h(option.)630 2482 y Ft(HISTIGNORE)20
+(hing)i(honors)630 2592 y(the)31 b(setting)g(of)g(the)f
+Ft(extglob)f Fu(shell)h(option.)630 2727 y Ft(HISTIGNORE)20
 b Fu(subsumes)g(the)j(function)f(of)h Ft(HISTCONTROL)p
 Fu(.)35 b(A)23 b(pattern)f(of)h(`)p Ft(&)p Fu(')g(is)f(iden)m(tical)630
-2592 y(to)k Ft(ignoredups)p Fu(,)e(and)h(a)h(pattern)g(of)f(`)p
+2836 y(to)k Ft(ignoredups)p Fu(,)e(and)h(a)h(pattern)g(of)f(`)p
 Ft([)31 b(]*)p Fu(')25 b(is)h(iden)m(tical)h(to)f Ft(ignorespace)p
-Fu(.)36 b(Com)m(bining)630 2701 y(these)30 b(t)m(w)m(o)h(patterns,)f
+Fu(.)36 b(Com)m(bining)630 2946 y(these)30 b(t)m(w)m(o)h(patterns,)f
 (separating)g(them)g(with)f(a)h(colon,)h(pro)m(vides)e(the)h
-(functionalit)m(y)h(of)630 2811 y Ft(ignoreboth)p Fu(.)150
-2988 y Ft(HISTSIZE)96 b Fu(The)37 b(maxim)m(um)g(n)m(um)m(b)s(er)e(of)j
+(functionalit)m(y)h(of)630 3055 y Ft(ignoreboth)p Fu(.)150
+3216 y Ft(HISTSIZE)96 b Fu(The)37 b(maxim)m(um)g(n)m(um)m(b)s(er)e(of)j
 (commands)f(to)g(remem)m(b)s(er)g(on)g(the)g(history)g(list.)62
-b(If)37 b(the)630 3098 y(v)-5 b(alue)26 b(is)g(0,)i(commands)d(are)h
+b(If)37 b(the)630 3325 y(v)-5 b(alue)26 b(is)g(0,)i(commands)d(are)h
 (not)h(sa)m(v)m(ed)g(in)e(the)h(history)g(list.)40 b(Numeric)26
-b(v)-5 b(alues)26 b(less)g(than)630 3207 y(zero)i(result)e(in)h(ev)m
+b(v)-5 b(alues)26 b(less)g(than)630 3435 y(zero)i(result)e(in)h(ev)m
 (ery)g(command)g(b)s(eing)f(sa)m(v)m(ed)i(on)f(the)g(history)f(list)i
-(\(there)f(is)g(no)g(limit\).)630 3317 y(The)j(shell)g(sets)h(the)g
+(\(there)f(is)g(no)g(limit\).)630 3544 y(The)j(shell)g(sets)h(the)g
 (default)f(v)-5 b(alue)31 b(to)g(500)h(after)f(reading)f(an)m(y)h
-(startup)f(\014les.)150 3494 y Ft(HISTTIMEFORMAT)630
-3603 y Fu(If)44 b(this)g(v)-5 b(ariable)45 b(is)f(set)g(and)g(not)g(n)m
+(startup)f(\014les.)150 3705 y Ft(HISTTIMEFORMAT)630
+3814 y Fu(If)44 b(this)g(v)-5 b(ariable)45 b(is)f(set)g(and)g(not)g(n)m
 (ull,)k(its)d(v)-5 b(alue)44 b(is)g(used)g(as)g(a)h(format)f(string)g
-(for)630 3713 y Fr(strftime)c Fu(to)35 b(prin)m(t)f(the)h(time)g(stamp)
+(for)630 3924 y Fr(strftime)c Fu(to)35 b(prin)m(t)f(the)h(time)g(stamp)
 f(asso)s(ciated)i(with)f(eac)m(h)g(history)g(en)m(try)f(displa)m(y)m
-(ed)630 3823 y(b)m(y)g(the)f Ft(history)f Fu(builtin.)50
+(ed)630 4033 y(b)m(y)g(the)f Ft(history)f Fu(builtin.)50
 b(If)33 b(this)h(v)-5 b(ariable)34 b(is)g(set,)h(time)f(stamps)g(are)g
-(written)f(to)i(the)630 3932 y(history)26 b(\014le)g(so)g(they)g(ma)m
+(written)f(to)i(the)630 4143 y(history)26 b(\014le)g(so)g(they)g(ma)m
 (y)h(b)s(e)e(preserv)m(ed)g(across)i(shell)f(sessions.)39
-b(This)25 b(uses)h(the)g(history)630 4042 y(commen)m(t)31
+b(This)25 b(uses)h(the)g(history)630 4253 y(commen)m(t)31
 b(c)m(haracter)h(to)f(distinguish)f(timestamps)h(from)f(other)g
-(history)h(lines.)150 4219 y Ft(HOSTFILE)96 b Fu(Con)m(tains)33
+(history)h(lines.)150 4413 y Ft(HOSTFILE)96 b Fu(Con)m(tains)33
 b(the)g(name)f(of)h(a)g(\014le)f(in)g(the)h(same)g(format)g(as)f
-Ft(/etc/hosts)e Fu(that)j(should)f(b)s(e)630 4328 y(read)21
+Ft(/etc/hosts)e Fu(that)j(should)f(b)s(e)630 4522 y(read)21
 b(when)g(the)g(shell)h(needs)f(to)h(complete)h(a)e(hostname.)38
-b(The)21 b(list)h(of)g(p)s(ossible)f(hostname)630 4438
+b(The)21 b(list)h(of)g(p)s(ossible)f(hostname)630 4632
 y(completions)27 b(ma)m(y)f(b)s(e)f(c)m(hanged)h(while)f(the)h(shell)g
-(is)f(running;)h(the)g(next)f(time)i(hostname)630 4548
+(is)f(running;)h(the)g(next)f(time)i(hostname)630 4741
 y(completion)33 b(is)g(attempted)g(after)g(the)f(v)-5
 b(alue)33 b(is)f(c)m(hanged,)i(Bash)e(adds)f(the)i(con)m(ten)m(ts)h(of)
-630 4657 y(the)h(new)f(\014le)g(to)h(the)g(existing)h(list.)53
+630 4851 y(the)h(new)f(\014le)g(to)h(the)g(existing)h(list.)53
 b(If)34 b Ft(HOSTFILE)e Fu(is)j(set,)h(but)e(has)g(no)h(v)-5
-b(alue,)36 b(or)e(do)s(es)630 4767 y(not)d(name)f(a)h(readable)g
+b(alue,)36 b(or)e(do)s(es)630 4961 y(not)d(name)f(a)h(readable)g
 (\014le,)g(Bash)f(attempts)i(to)f(read)f Ft(/etc/hosts)e
-Fu(to)j(obtain)g(the)f(list)630 4876 y(of)h(p)s(ossible)f(hostname)h
+Fu(to)j(obtain)g(the)f(list)630 5070 y(of)h(p)s(ossible)f(hostname)h
 (completions.)43 b(When)31 b Ft(HOSTFILE)d Fu(is)j(unset,)f(the)h
-(hostname)g(list)630 4986 y(is)f(cleared.)150 5163 y
-Ft(HOSTNAME)96 b Fu(The)30 b(name)g(of)h(the)f(curren)m(t)h(host.)150
-5340 y Ft(HOSTTYPE)96 b Fu(A)30 b(string)h(describing)f(the)g(mac)m
-(hine)h(Bash)g(is)f(running)f(on.)p eop end
+(hostname)g(list)630 5180 y(is)f(cleared.)150 5340 y
+Ft(HOSTNAME)96 b Fu(The)30 b(name)g(of)h(the)f(curren)m(t)h(host.)p
+eop end
 %%Page: 80 86
 TeXDict begin 80 85 bop 150 -116 a Fu(Chapter)30 b(5:)41
-b(Shell)30 b(V)-8 b(ariables)2459 b(80)150 299 y Ft(IGNOREEOF)630
-408 y Fu(Con)m(trols)27 b(the)h(action)g(of)f(the)g(shell)g(on)g
-(receipt)h(of)f(an)g Ft(EOF)f Fu(c)m(haracter)i(as)g(the)f(sole)h
-(input.)630 518 y(If)i(set,)i(the)f(v)-5 b(alue)32 b(denotes)f(the)g(n)
-m(um)m(b)s(er)f(of)h(consecutiv)m(e)i Ft(EOF)d Fu(c)m(haracters)i(that)
-f(can)h(b)s(e)630 628 y(read)40 b(as)f(the)h(\014rst)f(c)m(haracter)i
-(on)f(an)f(input)g(line)h(b)s(efore)f(the)h(shell)g(will)g(exit.)70
-b(If)39 b(the)630 737 y(v)-5 b(ariable)38 b(exists)f(but)f(do)s(es)g
-(not)h(ha)m(v)m(e)h(a)g(n)m(umeric)e(v)-5 b(alue)37 b(\(or)h(has)e(no)h
-(v)-5 b(alue\))37 b(then)g(the)630 847 y(default)31 b(is)g(10.)43
-b(If)30 b(the)h(v)-5 b(ariable)31 b(do)s(es)g(not)g(exist,)h(then)e
-Ft(EOF)g Fu(signi\014es)h(the)g(end)f(of)h(input)630
-956 y(to)g(the)g(shell.)41 b(This)29 b(is)i(only)f(in)g(e\013ect)i(for)
-e(in)m(teractiv)m(e)j(shells.)150 1108 y Ft(INPUTRC)144
-b Fu(The)68 b(name)h(of)f(the)h(Readline)g(initialization)j(\014le,)78
-b(o)m(v)m(erriding)69 b(the)g(default)g(of)630 1218 y
-Ft(~/.inputrc)p Fu(.)150 1369 y Ft(LANG)288 b Fu(Used)28
-b(to)h(determine)f(the)g(lo)s(cale)h(category)h(for)e(an)m(y)h
-(category)h(not)e(sp)s(eci\014cally)g(selected)630 1479
-y(with)i(a)h(v)-5 b(ariable)31 b(starting)g(with)f Ft(LC_)p
-Fu(.)150 1631 y Ft(LC_ALL)192 b Fu(This)28 b(v)-5 b(ariable)29
-b(o)m(v)m(errides)h(the)f(v)-5 b(alue)29 b(of)g Ft(LANG)f
-Fu(and)g(an)m(y)h(other)g Ft(LC_)f Fu(v)-5 b(ariable)29
-b(sp)s(ecifying)630 1740 y(a)i(lo)s(cale)h(category)-8
-b(.)150 1892 y Ft(LC_COLLATE)630 2002 y Fu(This)37 b(v)-5
-b(ariable)38 b(determines)g(the)g(collation)i(order)d(used)g(when)f
-(sorting)i(the)g(results)g(of)630 2111 y(\014lename)e(expansion,)i(and)
-e(determines)g(the)h(b)s(eha)m(vior)f(of)g(range)h(expressions,)h
-(equiv-)630 2221 y(alence)e(classes,)h(and)e(collating)i(sequences)e
-(within)f(\014lename)h(expansion)g(and)f(pattern)630
-2330 y(matc)m(hing)d(\(see)h(Section)f(3.5.8)h([Filename)g(Expansion],)
-e(page)h(31\).)150 2482 y Ft(LC_CTYPE)96 b Fu(This)36
-b(v)-5 b(ariable)37 b(determines)f(the)h(in)m(terpretation)h(of)f(c)m
-(haracters)h(and)e(the)g(b)s(eha)m(vior)h(of)630 2592
-y(c)m(haracter)46 b(classes)g(within)e(\014lename)h(expansion)g(and)f
-(pattern)h(matc)m(hing)h(\(see)f(Sec-)630 2701 y(tion)31
-b(3.5.8)h([Filename)g(Expansion],)e(page)h(31\).)150
-2853 y Ft(LC_MESSAGES)630 2963 y Fu(This)25 b(v)-5 b(ariable)27
+b(Shell)30 b(V)-8 b(ariables)2459 b(80)150 299 y Ft(HOSTTYPE)96
+b Fu(A)30 b(string)h(describing)f(the)g(mac)m(hine)h(Bash)g(is)f
+(running)f(on.)150 448 y Ft(IGNOREEOF)630 557 y Fu(Con)m(trols)e(the)h
+(action)g(of)f(the)g(shell)g(on)g(receipt)h(of)f(an)g
+Ft(EOF)f Fu(c)m(haracter)i(as)g(the)f(sole)h(input.)630
+667 y(If)i(set,)i(the)f(v)-5 b(alue)32 b(denotes)f(the)g(n)m(um)m(b)s
+(er)f(of)h(consecutiv)m(e)i Ft(EOF)d Fu(c)m(haracters)i(that)f(can)h(b)
+s(e)630 776 y(read)40 b(as)f(the)h(\014rst)f(c)m(haracter)i(on)f(an)f
+(input)g(line)h(b)s(efore)f(the)h(shell)g(will)g(exit.)70
+b(If)39 b(the)630 886 y(v)-5 b(ariable)39 b(exists)f(but)g(do)s(es)f
+(not)h(ha)m(v)m(e)h(a)g(n)m(umeric)f(v)-5 b(alue,)40
+b(or)e(has)g(no)g(v)-5 b(alue,)40 b(then)e(the)630 996
+y(default)31 b(is)g(10.)43 b(If)30 b(the)h(v)-5 b(ariable)31
+b(do)s(es)g(not)g(exist,)h(then)e Ft(EOF)g Fu(signi\014es)h(the)g(end)f
+(of)h(input)630 1105 y(to)g(the)g(shell.)41 b(This)29
+b(is)i(only)f(in)g(e\013ect)i(for)e(in)m(teractiv)m(e)j(shells.)150
+1254 y Ft(INPUTRC)144 b Fu(The)68 b(name)h(of)f(the)h(Readline)g
+(initialization)j(\014le,)78 b(o)m(v)m(erriding)69 b(the)g(default)g
+(of)630 1363 y Ft(~/.inputrc)p Fu(.)150 1512 y Ft(INSIDE_EMACS)630
+1622 y Fu(If)29 b(Bash)h(\014nds)e(this)h(v)-5 b(ariable)31
+b(in)e(the)h(en)m(vironmen)m(t)g(when)e(the)i(shell)g(starts,)g(it)g
+(assumes)630 1731 y(that)i(the)g(shell)g(is)f(running)f(in)i(an)f
+(Emacs)h(shell)g(bu\013er)e(and)h(ma)m(y)i(disable)e(line)h(editing)630
+1841 y(dep)s(ending)d(on)h(the)h(v)-5 b(alue)31 b(of)f
+Ft(TERM)p Fu(.)150 1990 y Ft(LANG)288 b Fu(Used)28 b(to)h(determine)f
+(the)g(lo)s(cale)h(category)h(for)e(an)m(y)h(category)h(not)e(sp)s
+(eci\014cally)g(selected)630 2099 y(with)i(a)h(v)-5 b(ariable)31
+b(starting)g(with)f Ft(LC_)p Fu(.)150 2248 y Ft(LC_ALL)192
+b Fu(This)28 b(v)-5 b(ariable)29 b(o)m(v)m(errides)h(the)f(v)-5
+b(alue)29 b(of)g Ft(LANG)f Fu(and)g(an)m(y)h(other)g
+Ft(LC_)f Fu(v)-5 b(ariable)29 b(sp)s(ecifying)630 2358
+y(a)i(lo)s(cale)h(category)-8 b(.)150 2506 y Ft(LC_COLLATE)630
+2616 y Fu(This)37 b(v)-5 b(ariable)38 b(determines)g(the)g(collation)i
+(order)d(used)g(when)f(sorting)i(the)g(results)g(of)630
+2725 y(\014lename)e(expansion,)i(and)e(determines)g(the)h(b)s(eha)m
+(vior)f(of)g(range)h(expressions,)h(equiv-)630 2835 y(alence)e
+(classes,)h(and)e(collating)i(sequences)e(within)f(\014lename)h
+(expansion)g(and)f(pattern)630 2945 y(matc)m(hing)d(\(see)h(Section)f
+(3.5.8)h([Filename)g(Expansion],)e(page)h(32\).)150 3093
+y Ft(LC_CTYPE)96 b Fu(This)36 b(v)-5 b(ariable)37 b(determines)f(the)h
+(in)m(terpretation)h(of)f(c)m(haracters)h(and)e(the)g(b)s(eha)m(vior)h
+(of)630 3203 y(c)m(haracter)46 b(classes)g(within)e(\014lename)h
+(expansion)g(and)f(pattern)h(matc)m(hing)h(\(see)f(Sec-)630
+3313 y(tion)31 b(3.5.8)h([Filename)g(Expansion],)e(page)h(32\).)150
+3461 y Ft(LC_MESSAGES)630 3571 y Fu(This)25 b(v)-5 b(ariable)27
 b(determines)f(the)g(lo)s(cale)i(used)d(to)i(translate)g(double-quoted)
-f(strings)g(pre-)630 3072 y(ceded)31 b(b)m(y)f(a)h(`)p
+f(strings)g(pre-)630 3680 y(ceded)31 b(b)m(y)f(a)h(`)p
 Ft($)p Fu(')f(\(see)h(Section)h(3.1.2.5)g([Lo)s(cale)g(T)-8
-b(ranslation],)32 b(page)f(7\).)150 3224 y Ft(LC_NUMERIC)630
-3334 y Fu(This)f(v)-5 b(ariable)31 b(determines)f(the)h(lo)s(cale)h
+b(ranslation],)32 b(page)f(7\).)150 3829 y Ft(LC_NUMERIC)630
+3939 y Fu(This)f(v)-5 b(ariable)31 b(determines)f(the)h(lo)s(cale)h
 (category)g(used)e(for)g(n)m(um)m(b)s(er)f(formatting.)150
-3485 y Ft(LC_TIME)144 b Fu(This)25 b(v)-5 b(ariable)26
+4088 y Ft(LC_TIME)144 b Fu(This)25 b(v)-5 b(ariable)26
 b(determines)g(the)g(lo)s(cale)h(category)h(used)d(for)g(data)h(and)f
-(time)i(formatting.)150 3637 y Ft(LINENO)192 b Fu(The)30
+(time)i(formatting.)150 4236 y Ft(LINENO)192 b Fu(The)30
 b(line)h(n)m(um)m(b)s(er)e(in)h(the)g(script)h(or)f(shell)g(function)h
-(curren)m(tly)f(executing.)150 3789 y Ft(LINES)240 b
+(curren)m(tly)f(executing.)150 4385 y Ft(LINES)240 b
 Fu(Used)43 b(b)m(y)g(the)g Ft(select)e Fu(command)i(to)g(determine)g
-(the)g(column)g(length)g(for)g(prin)m(ting)630 3898 y(selection)c
+(the)g(column)g(length)g(for)g(prin)m(ting)630 4495 y(selection)c
 (lists.)63 b(Automatically)41 b(set)d(if)f(the)h Ft(checkwinsize)d
-Fu(option)j(is)f(enabled)h(\(see)630 4008 y(Section)44
+Fu(option)j(is)f(enabled)h(\(see)630 4604 y(Section)44
 b(4.3.2)h([The)e(Shopt)g(Builtin],)k(page)d(65\),)k(or)43
-b(in)g(an)g(in)m(teractiv)m(e)j(shell)e(up)s(on)630 4118
-y(receipt)31 b(of)g(a)g Ft(SIGWINCH)p Fu(.)150 4269 y
+b(in)g(an)g(in)m(teractiv)m(e)j(shell)e(up)s(on)630 4714
+y(receipt)31 b(of)g(a)g Ft(SIGWINCH)p Fu(.)150 4862 y
 Ft(MACHTYPE)96 b Fu(A)26 b(string)g(that)h(fully)f(describ)s(es)f(the)h
 (system)g(t)m(yp)s(e)h(on)f(whic)m(h)f(Bash)i(is)f(executing,)i(in)e
-(the)630 4379 y(standard)k Fm(gnu)g Fr(cpu-compan)m(y-system)h
-Fu(format.)150 4531 y Ft(MAILCHECK)630 4640 y Fu(Ho)m(w)d(often)g(\(in)
+(the)630 4972 y(standard)k Fm(gnu)g Fr(cpu-compan)m(y-system)h
+Fu(format.)150 5121 y Ft(MAILCHECK)630 5230 y Fu(Ho)m(w)d(often)g(\(in)
 g(seconds\))g(that)g(the)f(shell)h(should)f(c)m(hec)m(k)i(for)e(mail)h
-(in)f(the)h(\014les)g(sp)s(eci\014ed)630 4750 y(in)i(the)h
+(in)f(the)h(\014les)g(sp)s(eci\014ed)630 5340 y(in)i(the)h
 Ft(MAILPATH)e Fu(or)i Ft(MAIL)e Fu(v)-5 b(ariables.)43
 b(The)30 b(default)h(is)f(60)i(seconds.)42 b(When)30
-b(it)h(is)g(time)630 4859 y(to)37 b(c)m(hec)m(k)h(for)e(mail,)j(the)e
-(shell)f(do)s(es)g(so)h(b)s(efore)f(displa)m(ying)h(the)f(primary)g
-(prompt.)57 b(If)630 4969 y(this)37 b(v)-5 b(ariable)38
-b(is)f(unset,)h(or)f(set)h(to)g(a)f(v)-5 b(alue)38 b(that)f(is)g(not)h
-(a)f(n)m(um)m(b)s(er)f(greater)i(than)f(or)630 5079 y(equal)31
-b(to)g(zero,)g(the)g(shell)g(disables)f(mail)h(c)m(hec)m(king.)150
-5230 y Ft(MAPFILE)144 b Fu(An)35 b(arra)m(y)h(v)-5 b(ariable)36
-b(created)g(to)h(hold)e(the)g(text)i(read)e(b)m(y)g(the)h
-Ft(mapfile)d Fu(builtin)i(when)630 5340 y(no)30 b(v)-5
-b(ariable)31 b(name)g(is)f(supplied.)p eop end
+b(it)h(is)g(time)p eop end
 %%Page: 81 87
 TeXDict begin 81 86 bop 150 -116 a Fu(Chapter)30 b(5:)41
-b(Shell)30 b(V)-8 b(ariables)2459 b(81)150 299 y Ft(OLDPWD)192
-b Fu(The)30 b(previous)g(w)m(orking)g(directory)h(as)g(set)g(b)m(y)f
-(the)h Ft(cd)e Fu(builtin.)150 463 y Ft(OPTERR)192 b
-Fu(If)35 b(set)i(to)f(the)h(v)-5 b(alue)36 b(1,)i(Bash)e(displa)m(ys)g
-(error)f(messages)i(generated)g(b)m(y)f(the)g Ft(getopts)630
-573 y Fu(builtin)30 b(command.)150 737 y Ft(OSTYPE)192
-b Fu(A)30 b(string)h(describing)f(the)g(op)s(erating)h(system)g(Bash)f
-(is)h(running)d(on.)150 902 y Ft(PIPESTATUS)630 1011
-y Fu(An)23 b(arra)m(y)h(v)-5 b(ariable)24 b(\(see)h(Section)f(6.7)h
-([Arra)m(ys],)g(page)f(93\))h(con)m(taining)g(a)f(list)g(of)g(exit)g
-(sta-)630 1121 y(tus)h(v)-5 b(alues)27 b(from)e(the)h(pro)s(cesses)g
-(in)f(the)h(most-recen)m(tly-executed)j(foreground)c(pip)s(eline)630
-1230 y(\(whic)m(h)30 b(ma)m(y)h(con)m(tain)h(only)f(a)f(single)h
-(command\).)150 1395 y Ft(POSIXLY_CORRECT)630 1504 y
+b(Shell)30 b(V)-8 b(ariables)2459 b(81)630 299 y(to)37
+b(c)m(hec)m(k)h(for)e(mail,)j(the)e(shell)f(do)s(es)g(so)h(b)s(efore)f
+(displa)m(ying)h(the)f(primary)g(prompt.)57 b(If)630
+408 y(this)37 b(v)-5 b(ariable)38 b(is)f(unset,)h(or)f(set)h(to)g(a)f
+(v)-5 b(alue)38 b(that)f(is)g(not)h(a)f(n)m(um)m(b)s(er)f(greater)i
+(than)f(or)630 518 y(equal)31 b(to)g(zero,)g(the)g(shell)g(disables)f
+(mail)h(c)m(hec)m(king.)150 682 y Ft(MAPFILE)144 b Fu(An)35
+b(arra)m(y)h(v)-5 b(ariable)36 b(created)g(to)h(hold)e(the)g(text)i
+(read)e(b)m(y)g(the)h Ft(mapfile)d Fu(builtin)i(when)630
+792 y(no)30 b(v)-5 b(ariable)31 b(name)g(is)f(supplied.)150
+956 y Ft(OLDPWD)192 b Fu(The)30 b(previous)g(w)m(orking)g(directory)h
+(as)g(set)g(b)m(y)f(the)h Ft(cd)e Fu(builtin.)150 1121
+y Ft(OPTERR)192 b Fu(If)35 b(set)i(to)f(the)h(v)-5 b(alue)36
+b(1,)i(Bash)e(displa)m(ys)g(error)f(messages)i(generated)g(b)m(y)f(the)
+g Ft(getopts)630 1230 y Fu(builtin)30 b(command.)150
+1395 y Ft(OSTYPE)192 b Fu(A)30 b(string)h(describing)f(the)g(op)s
+(erating)h(system)g(Bash)f(is)h(running)d(on.)150 1559
+y Ft(PIPESTATUS)630 1669 y Fu(An)23 b(arra)m(y)h(v)-5
+b(ariable)24 b(\(see)h(Section)f(6.7)h([Arra)m(ys],)g(page)f(93\))h
+(con)m(taining)g(a)f(list)g(of)g(exit)g(sta-)630 1778
+y(tus)h(v)-5 b(alues)27 b(from)e(the)h(pro)s(cesses)g(in)f(the)h
+(most-recen)m(tly-executed)j(foreground)c(pip)s(eline)630
+1888 y(\(whic)m(h)30 b(ma)m(y)h(con)m(tain)h(only)f(a)f(single)h
+(command\).)150 2052 y Ft(POSIXLY_CORRECT)630 2162 y
 Fu(If)h(this)g(v)-5 b(ariable)34 b(is)e(in)g(the)h(en)m(vironmen)m(t)g
 (when)e(Bash)i(starts,)g(the)g(shell)g(en)m(ters)g Fm(posix)630
-1614 y Fu(mo)s(de)22 b(\(see)h(Section)g(6.11)h([Bash)e(POSIX)f(Mo)s
+2271 y Fu(mo)s(de)22 b(\(see)h(Section)g(6.11)h([Bash)e(POSIX)f(Mo)s
 (de],)k(page)e(98\))g(b)s(efore)f(reading)g(the)g(startup)630
-1724 y(\014les,)36 b(as)e(if)h(the)f Ft(--posix)f Fu(in)m(v)m(o)s
+2381 y(\014les,)36 b(as)e(if)h(the)f Ft(--posix)f Fu(in)m(v)m(o)s
 (cation)j(option)f(had)f(b)s(een)g(supplied.)51 b(If)34
-b(it)h(is)g(set)g(while)630 1833 y(the)c(shell)f(is)h(running,)d(Bash)j
+b(it)h(is)g(set)g(while)630 2491 y(the)c(shell)f(is)h(running,)d(Bash)j
 (enables)g Fm(posix)e Fu(mo)s(de,)h(as)h(if)f(the)h(command)870
-1970 y Ft(set)47 b(-o)g(posix)630 2107 y Fu(had)30 b(b)s(een)f
-(executed.)150 2271 y Ft(PPID)288 b Fu(The)30 b(pro)s(cess)g
-Fm(id)g Fu(of)h(the)f(shell's)h(paren)m(t)g(pro)s(cess.)40
-b(This)30 b(v)-5 b(ariable)31 b(is)f(readonly)-8 b(.)150
-2436 y Ft(PROMPT_COMMAND)630 2545 y Fu(If)32 b(set,)h(the)f(v)-5
-b(alue)33 b(is)f(in)m(terpreted)g(as)g(a)h(command)f(to)h(execute)g(b)s
-(efore)f(the)g(prin)m(ting)g(of)630 2655 y(eac)m(h)g(primary)d(prompt)g
-(\()p Ft($PS1)p Fu(\).)150 2819 y Ft(PROMPT_DIRTRIM)630
-2929 y Fu(If)e(set)g(to)h(a)g(n)m(um)m(b)s(er)e(greater)i(than)f(zero,)
-i(the)e(v)-5 b(alue)28 b(is)f(used)g(as)g(the)h(n)m(um)m(b)s(er)e(of)h
-(trailing)630 3039 y(directory)35 b(comp)s(onen)m(ts)g(to)h(retain)f
-(when)f(expanding)g(the)h Ft(\\w)f Fu(and)g Ft(\\W)g
-Fu(prompt)g(string)630 3148 y(escap)s(es)21 b(\(see)h(Section)f(6.9)h
-([Con)m(trolling)g(the)f(Prompt],)h(page)f(96\).)39 b(Characters)21
-b(remo)m(v)m(ed)630 3258 y(are)31 b(replaced)g(with)f(an)g(ellipsis.)
-150 3422 y Ft(PS0)336 b Fu(The)30 b(v)-5 b(alue)32 b(of)f(this)f
-(parameter)i(is)f(expanded)f(lik)m(e)i Fr(PS1)38 b Fu(and)30
-b(displa)m(y)m(ed)h(b)m(y)g(in)m(teractiv)m(e)630 3532
-y(shells)f(after)h(reading)g(a)g(command)f(and)f(b)s(efore)h(the)h
-(command)f(is)h(executed.)150 3696 y Ft(PS3)336 b Fu(The)34
-b(v)-5 b(alue)35 b(of)f(this)g(v)-5 b(ariable)35 b(is)g(used)e(as)i
-(the)f(prompt)g(for)g(the)g Ft(select)f Fu(command.)52
-b(If)630 3806 y(this)30 b(v)-5 b(ariable)31 b(is)g(not)f(set,)i(the)e
-Ft(select)f Fu(command)h(prompts)f(with)h(`)p Ft(#?)g
-Fu(')150 3970 y Ft(PS4)336 b Fu(The)37 b(v)-5 b(alue)37
-b(of)g(this)g(parameter)h(is)f(expanded)f(lik)m(e)i Fr(PS1)44
-b Fu(and)37 b(the)g(expanded)f(v)-5 b(alue)38 b(is)630
-4080 y(the)d(prompt)f(prin)m(ted)g(b)s(efore)g(the)h(command)f(line)h
-(is)g(ec)m(ho)s(ed)g(when)f(the)h Ft(-x)f Fu(option)h(is)630
-4189 y(set)k(\(see)h(Section)g(4.3.1)g([The)f(Set)g(Builtin],)j(page)e
-(61\).)67 b(The)38 b(\014rst)g(c)m(haracter)j(of)e(the)630
-4299 y(expanded)33 b(v)-5 b(alue)33 b(is)h(replicated)g(m)m(ultiple)g
-(times,)h(as)f(necessary)-8 b(,)35 b(to)f(indicate)g(m)m(ultiple)630
-4408 y(lev)m(els)e(of)e(indirection.)42 b(The)29 b(default)i(is)f(`)p
-Ft(+)h Fu('.)150 4573 y Ft(PWD)336 b Fu(The)30 b(curren)m(t)g(w)m
-(orking)h(directory)g(as)f(set)h(b)m(y)f(the)h Ft(cd)f
-Fu(builtin.)150 4737 y Ft(RANDOM)192 b Fu(Eac)m(h)30
-b(time)g(this)f(parameter)g(is)g(referenced,)h(a)f(random)g(in)m(teger)
-h(b)s(et)m(w)m(een)g(0)f(and)g(32767)630 4847 y(is)i(generated.)43
-b(Assigning)31 b(a)g(v)-5 b(alue)31 b(to)g(this)g(v)-5
-b(ariable)31 b(seeds)g(the)g(random)f(n)m(um)m(b)s(er)f(gen-)630
-4956 y(erator.)150 5121 y Ft(READLINE_LINE)630 5230 y
-Fu(The)e(con)m(ten)m(ts)i(of)f(the)g(Readline)g(line)g(bu\013er,)f(for)
-h(use)f(with)g(`)p Ft(bind)j(-x)p Fu(')d(\(see)h(Section)h(4.2)630
-5340 y([Bash)i(Builtins],)g(page)g(50\).)p eop end
+2628 y Ft(set)47 b(-o)g(posix)630 2765 y Fu(had)33 b(b)s(een)g
+(executed.)51 b(When)33 b(the)h(shell)f(en)m(ters)h Fm(posix)f
+Fu(mo)s(de,)h(it)g(sets)g(this)g(v)-5 b(ariable)34 b(if)630
+2874 y(it)d(w)m(as)g(not)f(already)h(set.)150 3039 y
+Ft(PPID)288 b Fu(The)30 b(pro)s(cess)g Fm(id)g Fu(of)h(the)f(shell's)h
+(paren)m(t)g(pro)s(cess.)40 b(This)30 b(v)-5 b(ariable)31
+b(is)f(readonly)-8 b(.)150 3203 y Ft(PROMPT_COMMAND)630
+3313 y Fu(If)32 b(set,)h(the)f(v)-5 b(alue)33 b(is)f(in)m(terpreted)g
+(as)g(a)h(command)f(to)h(execute)g(b)s(efore)f(the)g(prin)m(ting)g(of)
+630 3422 y(eac)m(h)g(primary)d(prompt)g(\()p Ft($PS1)p
+Fu(\).)150 3587 y Ft(PROMPT_DIRTRIM)630 3696 y Fu(If)e(set)g(to)h(a)g
+(n)m(um)m(b)s(er)e(greater)i(than)f(zero,)i(the)e(v)-5
+b(alue)28 b(is)f(used)g(as)g(the)h(n)m(um)m(b)s(er)e(of)h(trailing)630
+3806 y(directory)35 b(comp)s(onen)m(ts)g(to)h(retain)f(when)f
+(expanding)g(the)h Ft(\\w)f Fu(and)g Ft(\\W)g Fu(prompt)g(string)630
+3915 y(escap)s(es)21 b(\(see)h(Section)f(6.9)h([Con)m(trolling)g(the)f
+(Prompt],)h(page)f(96\).)39 b(Characters)21 b(remo)m(v)m(ed)630
+4025 y(are)31 b(replaced)g(with)f(an)g(ellipsis.)150
+4189 y Ft(PS0)336 b Fu(The)30 b(v)-5 b(alue)32 b(of)f(this)f(parameter)
+i(is)f(expanded)f(lik)m(e)i Fr(PS1)38 b Fu(and)30 b(displa)m(y)m(ed)h
+(b)m(y)g(in)m(teractiv)m(e)630 4299 y(shells)f(after)h(reading)g(a)g
+(command)f(and)f(b)s(efore)h(the)h(command)f(is)h(executed.)150
+4463 y Ft(PS3)336 b Fu(The)34 b(v)-5 b(alue)35 b(of)f(this)g(v)-5
+b(ariable)35 b(is)g(used)e(as)i(the)f(prompt)g(for)g(the)g
+Ft(select)f Fu(command.)52 b(If)630 4573 y(this)30 b(v)-5
+b(ariable)31 b(is)g(not)f(set,)i(the)e Ft(select)f Fu(command)h
+(prompts)f(with)h(`)p Ft(#?)g Fu(')150 4737 y Ft(PS4)336
+b Fu(The)37 b(v)-5 b(alue)37 b(of)g(this)g(parameter)h(is)f(expanded)f
+(lik)m(e)i Fr(PS1)44 b Fu(and)37 b(the)g(expanded)f(v)-5
+b(alue)38 b(is)630 4847 y(the)d(prompt)f(prin)m(ted)g(b)s(efore)g(the)h
+(command)f(line)h(is)g(ec)m(ho)s(ed)g(when)f(the)h Ft(-x)f
+Fu(option)h(is)630 4956 y(set)k(\(see)h(Section)g(4.3.1)g([The)f(Set)g
+(Builtin],)j(page)e(61\).)67 b(The)38 b(\014rst)g(c)m(haracter)j(of)e
+(the)630 5066 y(expanded)33 b(v)-5 b(alue)33 b(is)h(replicated)g(m)m
+(ultiple)g(times,)h(as)f(necessary)-8 b(,)35 b(to)f(indicate)g(m)m
+(ultiple)630 5176 y(lev)m(els)e(of)e(indirection.)42
+b(The)29 b(default)i(is)f(`)p Ft(+)h Fu('.)150 5340 y
+Ft(PWD)336 b Fu(The)30 b(curren)m(t)g(w)m(orking)h(directory)g(as)f
+(set)h(b)m(y)f(the)h Ft(cd)f Fu(builtin.)p eop end
 %%Page: 82 88
 TeXDict begin 82 87 bop 150 -116 a Fu(Chapter)30 b(5:)41
-b(Shell)30 b(V)-8 b(ariables)2459 b(82)150 299 y Ft(READLINE_POINT)630
-408 y Fu(The)23 b(p)s(osition)g(of)g(the)h(insertion)f(p)s(oin)m(t)g
-(in)g(the)g(Readline)h(line)f(bu\013er,)h(for)f(use)g(with)g(`)p
-Ft(bind)630 518 y(-x)p Fu(')30 b(\(see)h(Section)h(4.2)f([Bash)g
-(Builtins],)g(page)g(50\).)150 667 y Ft(REPLY)240 b Fu(The)30
-b(default)g(v)-5 b(ariable)32 b(for)e(the)g Ft(read)g
-Fu(builtin.)150 816 y Ft(SECONDS)144 b Fu(This)40 b(v)-5
-b(ariable)41 b(expands)f(to)h(the)g(n)m(um)m(b)s(er)e(of)i(seconds)g
-(since)g(the)f(shell)h(w)m(as)g(started.)630 925 y(Assignmen)m(t)i(to)g
-(this)g(v)-5 b(ariable)43 b(resets)g(the)g(coun)m(t)g(to)g(the)g(v)-5
-b(alue)43 b(assigned,)j(and)c(the)630 1035 y(expanded)35
-b(v)-5 b(alue)36 b(b)s(ecomes)h(the)f(v)-5 b(alue)36
-b(assigned)g(plus)f(the)h(n)m(um)m(b)s(er)f(of)h(seconds)g(since)630
-1144 y(the)31 b(assignmen)m(t.)150 1293 y Ft(SHELL)240
-b Fu(The)29 b(full)h(pathname)g(to)h(the)f(shell)g(is)g(k)m(ept)g(in)g
-(this)g(en)m(vironmen)m(t)g(v)-5 b(ariable.)42 b(If)29
-b(it)i(is)f(not)630 1403 y(set)36 b(when)f(the)h(shell)g(starts,)i
-(Bash)e(assigns)h(to)f(it)h(the)f(full)f(pathname)h(of)g(the)g(curren)m
-(t)630 1512 y(user's)30 b(login)h(shell.)150 1661 y Ft(SHELLOPTS)630
-1771 y Fu(A)g(colon-separated)h(list)f(of)g(enabled)f(shell)h(options.)
+b(Shell)30 b(V)-8 b(ariables)2459 b(82)150 299 y Ft(RANDOM)192
+b Fu(Eac)m(h)30 b(time)g(this)f(parameter)g(is)g(referenced,)h(a)f
+(random)g(in)m(teger)h(b)s(et)m(w)m(een)g(0)f(and)g(32767)630
+408 y(is)i(generated.)43 b(Assigning)31 b(a)g(v)-5 b(alue)31
+b(to)g(this)g(v)-5 b(ariable)31 b(seeds)g(the)g(random)f(n)m(um)m(b)s
+(er)f(gen-)630 518 y(erator.)150 675 y Ft(READLINE_LINE)630
+784 y Fu(The)e(con)m(ten)m(ts)i(of)f(the)g(Readline)g(line)g(bu\013er,)
+f(for)h(use)f(with)g(`)p Ft(bind)j(-x)p Fu(')d(\(see)h(Section)h(4.2)
+630 894 y([Bash)i(Builtins],)g(page)g(50\).)150 1050
+y Ft(READLINE_POINT)630 1160 y Fu(The)23 b(p)s(osition)g(of)g(the)h
+(insertion)f(p)s(oin)m(t)g(in)g(the)g(Readline)h(line)f(bu\013er,)h
+(for)f(use)g(with)g(`)p Ft(bind)630 1270 y(-x)p Fu(')30
+b(\(see)h(Section)h(4.2)f([Bash)g(Builtins],)g(page)g(50\).)150
+1426 y Ft(REPLY)240 b Fu(The)30 b(default)g(v)-5 b(ariable)32
+b(for)e(the)g Ft(read)g Fu(builtin.)150 1583 y Ft(SECONDS)144
+b Fu(This)40 b(v)-5 b(ariable)41 b(expands)f(to)h(the)g(n)m(um)m(b)s
+(er)e(of)i(seconds)g(since)g(the)f(shell)h(w)m(as)g(started.)630
+1692 y(Assignmen)m(t)i(to)g(this)g(v)-5 b(ariable)43
+b(resets)g(the)g(coun)m(t)g(to)g(the)g(v)-5 b(alue)43
+b(assigned,)j(and)c(the)630 1802 y(expanded)35 b(v)-5
+b(alue)36 b(b)s(ecomes)h(the)f(v)-5 b(alue)36 b(assigned)g(plus)f(the)h
+(n)m(um)m(b)s(er)f(of)h(seconds)g(since)630 1911 y(the)31
+b(assignmen)m(t.)150 2068 y Ft(SHELL)240 b Fu(The)29
+b(full)h(pathname)g(to)h(the)f(shell)g(is)g(k)m(ept)g(in)g(this)g(en)m
+(vironmen)m(t)g(v)-5 b(ariable.)42 b(If)29 b(it)i(is)f(not)630
+2178 y(set)36 b(when)f(the)h(shell)g(starts,)i(Bash)e(assigns)h(to)f
+(it)h(the)f(full)f(pathname)h(of)g(the)g(curren)m(t)630
+2287 y(user's)30 b(login)h(shell.)150 2444 y Ft(SHELLOPTS)630
+2553 y Fu(A)g(colon-separated)h(list)f(of)g(enabled)f(shell)h(options.)
 41 b(Eac)m(h)31 b(w)m(ord)f(in)g(the)h(list)g(is)g(a)g(v)-5
-b(alid)630 1880 y(argumen)m(t)28 b(for)f(the)h Ft(-o)e
+b(alid)630 2663 y(argumen)m(t)28 b(for)f(the)h Ft(-o)e
 Fu(option)i(to)g(the)g Ft(set)e Fu(builtin)h(command)g(\(see)i(Section)
-f(4.3.1)h([The)630 1990 y(Set)g(Builtin],)h(page)f(61\).)42
+f(4.3.1)h([The)630 2772 y(Set)g(Builtin],)h(page)f(61\).)42
 b(The)28 b(options)h(app)s(earing)f(in)g Ft(SHELLOPTS)e
-Fu(are)j(those)h(rep)s(orted)630 2099 y(as)g(`)p Ft(on)p
+Fu(are)j(those)h(rep)s(orted)630 2882 y(as)g(`)p Ft(on)p
 Fu(')f(b)m(y)h(`)p Ft(set)g(-o)p Fu('.)40 b(If)29 b(this)h(v)-5
 b(ariable)30 b(is)g(in)f(the)h(en)m(vironmen)m(t)g(when)f(Bash)h
-(starts)g(up,)630 2209 y(eac)m(h)41 b(shell)e(option)h(in)f(the)h(list)
+(starts)g(up,)630 2992 y(eac)m(h)41 b(shell)e(option)h(in)f(the)h(list)
 g(will)f(b)s(e)g(enabled)h(b)s(efore)f(reading)g(an)m(y)h(startup)f
-(\014les.)630 2318 y(This)30 b(v)-5 b(ariable)31 b(is)f(readonly)-8
-b(.)150 2467 y Ft(SHLVL)240 b Fu(Incremen)m(ted)21 b(b)m(y)g(one)g(eac)
+(\014les.)630 3101 y(This)30 b(v)-5 b(ariable)31 b(is)f(readonly)-8
+b(.)150 3258 y Ft(SHLVL)240 b Fu(Incremen)m(ted)21 b(b)m(y)g(one)g(eac)
 m(h)h(time)f(a)h(new)e(instance)h(of)g(Bash)g(is)g(started.)38
-b(This)20 b(is)h(in)m(tended)630 2577 y(to)31 b(b)s(e)f(a)h(coun)m(t)g
+b(This)20 b(is)h(in)m(tended)630 3367 y(to)31 b(b)s(e)f(a)h(coun)m(t)g
 (of)f(ho)m(w)h(deeply)f(y)m(our)g(Bash)h(shells)f(are)h(nested.)150
-2725 y Ft(TIMEFORMAT)630 2835 y Fu(The)f(v)-5 b(alue)32
+3524 y Ft(TIMEFORMAT)630 3634 y Fu(The)f(v)-5 b(alue)32
 b(of)f(this)g(parameter)g(is)g(used)f(as)h(a)g(format)h(string)f(sp)s
-(ecifying)f(ho)m(w)h(the)g(tim-)630 2945 y(ing)37 b(information)f(for)h
+(ecifying)f(ho)m(w)h(the)g(tim-)630 3743 y(ing)37 b(information)f(for)h
 (pip)s(elines)f(pre\014xed)f(with)h(the)h Ft(time)e Fu(reserv)m(ed)i(w)
-m(ord)f(should)g(b)s(e)630 3054 y(displa)m(y)m(ed.)k(The)27
+m(ord)f(should)g(b)s(e)630 3853 y(displa)m(y)m(ed.)k(The)27
 b(`)p Ft(\045)p Fu(')h(c)m(haracter)h(in)m(tro)s(duces)e(an)h(escap)s
-(e)g(sequence)g(that)g(is)f(expanded)g(to)630 3164 y(a)37
+(e)g(sequence)g(that)g(is)f(expanded)g(to)630 3962 y(a)37
 b(time)g(v)-5 b(alue)36 b(or)h(other)f(information.)59
 b(The)36 b(escap)s(e)g(sequences)h(and)e(their)i(meanings)630
-3273 y(are)31 b(as)f(follo)m(ws;)i(the)f(braces)f(denote)h(optional)h
-(p)s(ortions.)630 3422 y Ft(\045\045)384 b Fu(A)30 b(literal)i(`)p
-Ft(\045)p Fu('.)630 3571 y Ft(\045[)p Fj(p)p Ft(][l]R)96
-b Fu(The)30 b(elapsed)h(time)g(in)f(seconds.)630 3720
+4072 y(are)31 b(as)f(follo)m(ws;)i(the)f(braces)f(denote)h(optional)h
+(p)s(ortions.)630 4228 y Ft(\045\045)384 b Fu(A)30 b(literal)i(`)p
+Ft(\045)p Fu('.)630 4385 y Ft(\045[)p Fj(p)p Ft(][l]R)96
+b Fu(The)30 b(elapsed)h(time)g(in)f(seconds.)630 4542
 y Ft(\045[)p Fj(p)p Ft(][l]U)96 b Fu(The)30 b(n)m(um)m(b)s(er)f(of)h
 (CPU)g(seconds)h(sp)s(en)m(t)f(in)g(user)f(mo)s(de.)630
-3868 y Ft(\045[)p Fj(p)p Ft(][l]S)96 b Fu(The)30 b(n)m(um)m(b)s(er)f
+4698 y Ft(\045[)p Fj(p)p Ft(][l]S)96 b Fu(The)30 b(n)m(um)m(b)s(er)f
 (of)h(CPU)g(seconds)h(sp)s(en)m(t)f(in)g(system)g(mo)s(de.)630
-4017 y Ft(\045P)384 b Fu(The)30 b(CPU)g(p)s(ercen)m(tage,)i(computed)e
-(as)h(\(\045U)f Ft(+)g Fu(\045S\))g(/)h(\045R.)630 4166
+4855 y Ft(\045P)384 b Fu(The)30 b(CPU)g(p)s(ercen)m(tage,)i(computed)e
+(as)h(\(\045U)f Ft(+)g Fu(\045S\))g(/)h(\045R.)630 5011
 y(The)23 b(optional)j Fr(p)g Fu(is)e(a)g(digit)h(sp)s(ecifying)e(the)h
 (precision,)i(the)e(n)m(um)m(b)s(er)f(of)h(fractional)h(digits)630
-4275 y(after)36 b(a)f(decimal)i(p)s(oin)m(t.)55 b(A)35
+5121 y(after)36 b(a)f(decimal)i(p)s(oin)m(t.)55 b(A)35
 b(v)-5 b(alue)36 b(of)f(0)h(causes)g(no)f(decimal)h(p)s(oin)m(t)f(or)h
-(fraction)g(to)g(b)s(e)630 4385 y(output.)48 b(A)m(t)34
+(fraction)g(to)g(b)s(e)630 5230 y(output.)48 b(A)m(t)34
 b(most)f(three)g(places)h(after)f(the)g(decimal)h(p)s(oin)m(t)f(ma)m(y)
-h(b)s(e)e(sp)s(eci\014ed;)i(v)-5 b(alues)630 4495 y(of)31
+h(b)s(e)e(sp)s(eci\014ed;)i(v)-5 b(alues)630 5340 y(of)31
 b Fr(p)h Fu(greater)g(than)e(3)h(are)f(c)m(hanged)h(to)g(3.)42
 b(If)29 b Fr(p)k Fu(is)d(not)h(sp)s(eci\014ed,)f(the)h(v)-5
-b(alue)30 b(3)h(is)g(used.)630 4624 y(The)54 b(optional)h
-Ft(l)f Fu(sp)s(eci\014es)g(a)h(longer)f(format,)61 b(including)54
-b(min)m(utes,)61 b(of)54 b(the)g(form)630 4733 y Fr(MM)10
-b Fu(m)p Fr(SS)p Fu(.)p Fr(FF)d Fu(s.)103 b(The)50 b(v)-5
-b(alue)52 b(of)f Fr(p)j Fu(determines)d(whether)f(or)h(not)h(the)f
-(fraction)h(is)630 4843 y(included.)630 4972 y(If)30
-b(this)g(v)-5 b(ariable)31 b(is)g(not)f(set,)i(Bash)e(acts)h(as)g(if)f
-(it)h(had)f(the)h(v)-5 b(alue)870 5101 y Ft
-($'\\nreal\\t\0453lR\\nuser\\t\0453)o(lU\\n)o(sys\\)o(t\0453)o(lS')630
-5230 y Fu(If)37 b(the)g(v)-5 b(alue)38 b(is)f(n)m(ull,)i(no)f(timing)f
-(information)h(is)f(displa)m(y)m(ed.)62 b(A)37 b(trailing)i(newline)e
-(is)630 5340 y(added)30 b(when)f(the)i(format)f(string)h(is)f(displa)m
-(y)m(ed.)p eop end
+b(alue)30 b(3)h(is)g(used.)p eop end
 %%Page: 83 89
 TeXDict begin 83 88 bop 150 -116 a Fu(Chapter)30 b(5:)41
-b(Shell)30 b(V)-8 b(ariables)2459 b(83)150 299 y Ft(TMOUT)240
-b Fu(If)22 b(set)h(to)g(a)g(v)-5 b(alue)23 b(greater)h(than)e(zero,)j
-Ft(TMOUT)d Fu(is)g(treated)i(as)e(the)h(default)g(timeout)g(for)g(the)
-630 408 y Ft(read)31 b Fu(builtin)h(\(see)h(Section)f(4.2)i([Bash)e
-(Builtins],)h(page)g(50\).)47 b(The)32 b Ft(select)e
-Fu(command)630 518 y(\(see)f(Section)h(3.2.4.2)g([Conditional)g
-(Constructs],)e(page)i(11\))f(terminates)g(if)g(input)e(do)s(es)630
-628 y(not)k(arriv)m(e)g(after)g Ft(TMOUT)e Fu(seconds)h(when)f(input)h
-(is)g(coming)h(from)f(a)h(terminal.)630 762 y(In)40 b(an)h(in)m
-(teractiv)m(e)i(shell,)h(the)d(v)-5 b(alue)41 b(is)g(in)m(terpreted)g
-(as)f(the)h(n)m(um)m(b)s(er)f(of)h(seconds)f(to)630 872
-y(w)m(ait)28 b(for)e(a)g(line)h(of)g(input)e(after)i(issuing)f(the)h
-(primary)e(prompt.)39 b(Bash)26 b(terminates)h(after)630
-981 y(w)m(aiting)32 b(for)e(that)h(n)m(um)m(b)s(er)e(of)h(seconds)h(if)
-f(a)h(complete)h(line)e(of)h(input)e(do)s(es)h(not)h(arriv)m(e.)150
-1141 y Ft(TMPDIR)192 b Fu(If)39 b(set,)j(Bash)e(uses)f(its)h(v)-5
-b(alue)40 b(as)f(the)h(name)f(of)h(a)g(directory)g(in)f(whic)m(h)g
-(Bash)h(creates)630 1250 y(temp)s(orary)30 b(\014les)g(for)g(the)h
-(shell's)g(use.)150 1410 y Ft(UID)336 b Fu(The)30 b(n)m(umeric)g(real)h
-(user)f(id)g(of)g(the)h(curren)m(t)f(user.)40 b(This)30
-b(v)-5 b(ariable)31 b(is)f(readonly)-8 b(.)p eop end
+b(Shell)30 b(V)-8 b(ariables)2459 b(83)630 299 y(The)54
+b(optional)h Ft(l)f Fu(sp)s(eci\014es)g(a)h(longer)f(format,)61
+b(including)54 b(min)m(utes,)61 b(of)54 b(the)g(form)630
+408 y Fr(MM)10 b Fu(m)p Fr(SS)p Fu(.)p Fr(FF)d Fu(s.)103
+b(The)50 b(v)-5 b(alue)52 b(of)f Fr(p)j Fu(determines)d(whether)f(or)h
+(not)h(the)f(fraction)h(is)630 518 y(included.)630 653
+y(If)30 b(this)g(v)-5 b(ariable)31 b(is)g(not)f(set,)i(Bash)e(acts)h
+(as)g(if)f(it)h(had)f(the)h(v)-5 b(alue)870 787 y Ft
+($'\\nreal\\t\0453lR\\nuser\\t\0453)o(lU\\n)o(sys\\)o(t\0453)o(lS')630
+922 y Fu(If)37 b(the)g(v)-5 b(alue)38 b(is)f(n)m(ull,)i(no)f(timing)f
+(information)h(is)f(displa)m(y)m(ed.)62 b(A)37 b(trailing)i(newline)e
+(is)630 1031 y(added)30 b(when)f(the)i(format)f(string)h(is)f(displa)m
+(y)m(ed.)150 1191 y Ft(TMOUT)240 b Fu(If)22 b(set)h(to)g(a)g(v)-5
+b(alue)23 b(greater)h(than)e(zero,)j Ft(TMOUT)d Fu(is)g(treated)i(as)e
+(the)h(default)g(timeout)g(for)g(the)630 1300 y Ft(read)31
+b Fu(builtin)h(\(see)h(Section)f(4.2)i([Bash)e(Builtins],)h(page)g
+(50\).)47 b(The)32 b Ft(select)e Fu(command)630 1410
+y(\(see)f(Section)h(3.2.4.2)g([Conditional)g(Constructs],)e(page)i
+(11\))f(terminates)g(if)g(input)e(do)s(es)630 1519 y(not)k(arriv)m(e)g
+(after)g Ft(TMOUT)e Fu(seconds)h(when)f(input)h(is)g(coming)h(from)f(a)
+h(terminal.)630 1654 y(In)40 b(an)h(in)m(teractiv)m(e)i(shell,)h(the)d
+(v)-5 b(alue)41 b(is)g(in)m(terpreted)g(as)f(the)h(n)m(um)m(b)s(er)f
+(of)h(seconds)f(to)630 1763 y(w)m(ait)28 b(for)e(a)g(line)h(of)g(input)
+e(after)i(issuing)f(the)h(primary)e(prompt.)39 b(Bash)26
+b(terminates)h(after)630 1873 y(w)m(aiting)32 b(for)e(that)h(n)m(um)m
+(b)s(er)e(of)h(seconds)h(if)f(a)h(complete)h(line)e(of)h(input)e(do)s
+(es)h(not)h(arriv)m(e.)150 2032 y Ft(TMPDIR)192 b Fu(If)39
+b(set,)j(Bash)e(uses)f(its)h(v)-5 b(alue)40 b(as)f(the)h(name)f(of)h(a)
+g(directory)g(in)f(whic)m(h)g(Bash)h(creates)630 2142
+y(temp)s(orary)30 b(\014les)g(for)g(the)h(shell's)g(use.)150
+2301 y Ft(UID)336 b Fu(The)30 b(n)m(umeric)g(real)h(user)f(id)g(of)g
+(the)h(curren)m(t)f(user.)40 b(This)30 b(v)-5 b(ariable)31
+b(is)f(readonly)-8 b(.)p eop end
 %%Page: 84 90
 TeXDict begin 84 89 bop 3659 -116 a Fu(84)150 299 y Fp(6)80
 b(Bash)54 b(F)-13 b(eatures)150 502 y Fu(This)30 b(c)m(hapter)h
 (describ)s(es)e(features)i(unique)e(to)i(Bash.)150 731
 y Fs(6.1)68 b(In)l(v)l(oking)46 b(Bash)390 890 y Ft(bash)h([long-opt])e
 ([-ir])h([-abefhkmnptuvxdBCDHP])c([-o)47 b Fj(option)p
-Ft(])e([-O)i Fj(shopt_option)p Ft(])e([)p Fj(ar-)390
-1000 y(gument)h Ft(...)o(])390 1110 y(bash)h([long-opt])e
-([-abefhkmnptuvxdBCDHP])c([-o)47 b Fj(option)p Ft(])f([-O)h
-Fj(shopt_option)p Ft(])d(-c)j Fj(string)f Ft([)p Fj(ar-)390
-1219 y(gument)g Ft(...)o(])390 1329 y(bash)h([long-opt])e(-s)i
-([-abefhkmnptuvxdBCDHP])42 b([-o)k Fj(option)p Ft(])g([-O)h
-Fj(shopt_option)p Ft(])d([)p Fj(ar-)390 1438 y(gument)i
-Ft(...)o(])275 1567 y Fu(All)31 b(of)g(the)f(single-c)m(haracter)k
-(options)d(used)f(with)g(the)h Ft(set)f Fu(builtin)g(\(see)h(Section)h
-(4.3.1)g([The)f(Set)150 1676 y(Builtin],)45 b(page)c(61\))i(can)e(b)s
-(e)f(used)h(as)g(options)g(when)f(the)i(shell)f(is)g(in)m(v)m(ok)m(ed.)
-74 b(In)41 b(addition,)j(there)150 1786 y(are)38 b(sev)m(eral)h(m)m
-(ulti-c)m(haracter)h(options)d(that)h(y)m(ou)g(can)g(use.)61
-b(These)38 b(options)f(m)m(ust)h(app)s(ear)e(on)i(the)150
-1896 y(command)30 b(line)h(b)s(efore)f(the)g(single-c)m(haracter)j
-(options)e(to)g(b)s(e)f(recognized.)150 2043 y Ft(--debugger)630
-2152 y Fu(Arrange)j(for)g(the)g(debugger)g(pro\014le)g(to)h(b)s(e)e
-(executed)i(b)s(efore)f(the)g(shell)g(starts.)49 b(T)-8
-b(urns)630 2262 y(on)35 b(extended)g(debugging)f(mo)s(de)h(\(see)g
-(Section)h(4.3.2)h([The)d(Shopt)g(Builtin],)j(page)f(65,)630
-2371 y(for)30 b(a)h(description)f(of)h(the)f Ft(extdebug)f
-Fu(option)h(to)h(the)g Ft(shopt)e Fu(builtin\).)150 2519
-y Ft(--dump-po-strings)630 2628 y Fu(A)37 b(list)g(of)f(all)i
+Ft(])581 1000 y([-O)g Fj(shopt_option)p Ft(])d([)p Fj(argument)h
+Ft(...)o(])390 1110 y(bash)i([long-opt])e([-abefhkmnptuvxdBCDHP])c([-o)
+47 b Fj(option)p Ft(])581 1219 y([-O)g Fj(shopt_option)p
+Ft(])d(-c)j Fj(string)f Ft([)p Fj(argument)g Ft(...)o(])390
+1329 y(bash)h([long-opt])e(-s)i([-abefhkmnptuvxdBCDHP])42
+b([-o)k Fj(option)p Ft(])581 1438 y([-O)h Fj(shopt_option)p
+Ft(])d([)p Fj(argument)h Ft(...)o(])275 1567 y Fu(All)31
+b(of)g(the)f(single-c)m(haracter)k(options)d(used)f(with)g(the)h
+Ft(set)f Fu(builtin)g(\(see)h(Section)h(4.3.1)g([The)f(Set)150
+1676 y(Builtin],)45 b(page)c(61\))i(can)e(b)s(e)f(used)h(as)g(options)g
+(when)f(the)i(shell)f(is)g(in)m(v)m(ok)m(ed.)74 b(In)41
+b(addition,)j(there)150 1786 y(are)38 b(sev)m(eral)h(m)m(ulti-c)m
+(haracter)h(options)d(that)h(y)m(ou)g(can)g(use.)61 b(These)38
+b(options)f(m)m(ust)h(app)s(ear)e(on)i(the)150 1896 y(command)30
+b(line)h(b)s(efore)f(the)g(single-c)m(haracter)j(options)e(to)g(b)s(e)f
+(recognized.)150 2043 y Ft(--debugger)630 2152 y Fu(Arrange)j(for)g
+(the)g(debugger)g(pro\014le)g(to)h(b)s(e)e(executed)i(b)s(efore)f(the)g
+(shell)g(starts.)49 b(T)-8 b(urns)630 2262 y(on)35 b(extended)g
+(debugging)f(mo)s(de)h(\(see)g(Section)h(4.3.2)h([The)d(Shopt)g
+(Builtin],)j(page)f(65,)630 2371 y(for)30 b(a)h(description)f(of)h(the)
+f Ft(extdebug)f Fu(option)h(to)h(the)g Ft(shopt)e Fu(builtin\).)150
+2519 y Ft(--dump-po-strings)630 2628 y Fu(A)37 b(list)g(of)f(all)i
 (double-quoted)e(strings)g(preceded)g(b)m(y)h(`)p Ft($)p
 Fu(')f(is)h(prin)m(ted)f(on)g(the)h(standard)630 2738
 y(output)29 b(in)g(the)g Fm(gnu)g Ft(gettext)f Fu(PO)g(\(p)s(ortable)i
@@ -14503,15 +14574,15 @@ b(will)g(sa)m(v)m(e)h(the)f(command)f(history)h(to)g(the)g(\014le)g
 b(expansion)g(\(see)g(Section)g(6.6)g([Aliases],)i(page)e(92\))h(is)e
 (p)s(erformed)f(b)m(y)h(default.)199 685 y(9.)61 b(In)24
 b(the)g(absence)h(of)f(an)m(y)h(traps,)g(Bash)g(ignores)f
-Ft(SIGTERM)f Fu(\(see)i(Section)g(3.7.6)h([Signals],)g(page)f(40\).)154
-823 y(10.)61 b(In)26 b(the)h(absence)h(of)f(an)m(y)g(traps,)g
-Ft(SIGINT)e Fu(is)i(caugh)m(t)h(and)f(handled)e(\(\(see)k(Section)e
-(3.7.6)i([Signals],)330 933 y(page)i(40\).)42 b Ft(SIGINT)29
+Ft(SIGTERM)f Fu(\(see)i(Section)g(3.7.6)h([Signals],)g(page)f(41\).)154
+823 y(10.)61 b(In)29 b(the)g(absence)h(of)g(an)m(y)g(traps,)f
+Ft(SIGINT)f Fu(is)h(caugh)m(t)i(and)e(handled)f(\(see)j(Section)f
+(3.7.6)h([Signals],)330 933 y(page)g(41\).)42 b Ft(SIGINT)29
 b Fu(will)h(in)m(terrupt)g(some)h(shell)g(builtins.)154
 1071 y(11.)61 b(An)40 b(in)m(teractiv)m(e)j(login)e(shell)g(sends)e(a)i
 Ft(SIGHUP)d Fu(to)j(all)g(jobs)f(on)g(exit)h(if)g(the)f
 Ft(huponexit)e Fu(shell)330 1180 y(option)31 b(has)f(b)s(een)g(enabled)
-g(\(see)h(Section)g(3.7.6)i([Signals],)e(page)g(40\).)154
+g(\(see)h(Section)g(3.7.6)i([Signals],)e(page)g(41\).)154
 1319 y(12.)61 b(The)29 b Ft(-n)g Fu(in)m(v)m(o)s(cation)j(option)e(is)g
 (ignored,)g(and)f(`)p Ft(set)h(-n)p Fu(')f(has)h(no)f(e\013ect)j(\(see)
 e(Section)h(4.3.1)g([The)330 1428 y(Set)g(Builtin],)g(page)g(61\).)154
@@ -15160,8 +15231,8 @@ f(shell)150 3708 y(session.)275 3844 y(After)35 b(the)g(string)g(is)g
 (command)d(substi-)150 3954 y(tution,)k(arithmetic)f(expansion,)g(and)e
 (quote)h(remo)m(v)-5 b(al,)39 b(sub)5 b(ject)35 b(to)i(the)f(v)-5
 b(alue)36 b(of)g(the)g Ft(promptvars)150 4064 y Fu(shell)31
-b(option)f(\(see)i(Section)f(4.2)g([Bash)g(Builtins],)g(page)g(50\).)
-150 4308 y Fs(6.10)68 b(The)45 b(Restricted)h(Shell)150
+b(option)f(\(see)i(Section)f(4.3.2)h([The)e(Shopt)g(Builtin],)h(page)g
+(65\).)150 4308 y Fs(6.10)68 b(The)45 b(Restricted)h(Shell)150
 4467 y Fu(If)34 b(Bash)g(is)g(started)g(with)g(the)g(name)h
 Ft(rbash)p Fu(,)e(or)h(the)h Ft(--restricted)30 b Fu(or)k
 Ft(-r)g Fu(option)g(is)g(supplied)f(at)150 4577 y(in)m(v)m(o)s(cation,)
@@ -15185,303 +15256,305 @@ TeXDict begin 98 103 bop 150 -116 a Fu(Chapter)30 b(6:)41
 b(Bash)30 b(F)-8 b(eatures)2484 b(98)225 299 y Fq(\017)60
 b Fu(Sp)s(ecifying)32 b(a)g(\014lename)h(con)m(taining)h(a)e(slash)g
 (as)h(an)f(argumen)m(t)h(to)g(the)f Ft(-p)g Fu(option)h(to)g(the)f
-Ft(hash)330 408 y Fu(builtin)e(command.)225 538 y Fq(\017)60
+Ft(hash)330 408 y Fu(builtin)e(command.)225 545 y Fq(\017)60
 b Fu(Imp)s(orting)30 b(function)g(de\014nitions)g(from)f(the)i(shell)g
-(en)m(vironmen)m(t)g(at)g(startup.)225 667 y Fq(\017)60
+(en)m(vironmen)m(t)g(at)g(startup.)225 682 y Fq(\017)60
 b Fu(P)m(arsing)31 b(the)f(v)-5 b(alue)31 b(of)g Ft(SHELLOPTS)d
 Fu(from)h(the)i(shell)g(en)m(vironmen)m(t)g(at)g(startup.)225
-796 y Fq(\017)60 b Fu(Redirecting)31 b(output)f(using)g(the)h(`)p
+819 y Fq(\017)60 b Fu(Redirecting)31 b(output)f(using)g(the)h(`)p
 Ft(>)p Fu(',)g(`)p Ft(>|)p Fu(',)f(`)p Ft(<>)p Fu(',)h(`)p
 Ft(>&)p Fu(',)f(`)p Ft(&>)p Fu(',)h(and)e(`)p Ft(>>)p
-Fu(')i(redirection)g(op)s(erators.)225 925 y Fq(\017)60
+Fu(')i(redirection)g(op)s(erators.)225 955 y Fq(\017)60
 b Fu(Using)31 b(the)f Ft(exec)f Fu(builtin)h(to)h(replace)h(the)e
-(shell)h(with)f(another)h(command.)225 1054 y Fq(\017)60
+(shell)h(with)f(another)h(command.)225 1092 y Fq(\017)60
 b Fu(Adding)24 b(or)g(deleting)i(builtin)e(commands)g(with)h(the)f
 Ft(-f)g Fu(and)g Ft(-d)g Fu(options)h(to)h(the)e Ft(enable)f
-Fu(builtin.)225 1183 y Fq(\017)60 b Fu(Using)31 b(the)f
+Fu(builtin.)225 1229 y Fq(\017)60 b Fu(Using)31 b(the)f
 Ft(enable)f Fu(builtin)h(command)g(to)h(enable)g(disabled)f(shell)g
-(builtins.)225 1312 y Fq(\017)60 b Fu(Sp)s(ecifying)30
+(builtins.)225 1365 y Fq(\017)60 b Fu(Sp)s(ecifying)30
 b(the)g Ft(-p)g Fu(option)h(to)g(the)g Ft(command)d Fu(builtin.)225
-1441 y Fq(\017)60 b Fu(T)-8 b(urning)29 b(o\013)i(restricted)g(mo)s(de)
+1502 y Fq(\017)60 b Fu(T)-8 b(urning)29 b(o\013)i(restricted)g(mo)s(de)
 f(with)g(`)p Ft(set)g(+r)p Fu(')g(or)g(`)p Ft(set)g(+o)g(restricted)p
-Fu('.)275 1590 y(These)g(restrictions)h(are)g(enforced)f(after)h(an)m
-(y)g(startup)f(\014les)g(are)h(read.)275 1719 y(When)j(a)i(command)e
+Fu('.)275 1668 y(These)g(restrictions)h(are)g(enforced)f(after)h(an)m
+(y)g(startup)f(\014les)g(are)h(read.)275 1807 y(When)j(a)i(command)e
 (that)i(is)f(found)f(to)h(b)s(e)g(a)g(shell)g(script)g(is)g(executed)h
-(\(see)g(Section)g(3.8)g([Shell)150 1828 y(Scripts],)25
+(\(see)g(Section)g(3.8)g([Shell)150 1917 y(Scripts],)25
 b(page)e(41\),)j Ft(rbash)c Fu(turns)g(o\013)i(an)m(y)f(restrictions)h
 (in)f(the)g(shell)h(spa)m(wned)e(to)i(execute)g(the)g(script.)150
-2058 y Fs(6.11)68 b(Bash)45 b(POSIX)f(Mo)t(de)150 2218
+2164 y Fs(6.11)68 b(Bash)45 b(POSIX)f(Mo)t(de)150 2324
 y Fu(Starting)39 b(Bash)f(with)g(the)h Ft(--posix)d Fu(command-line)j
 (option)g(or)f(executing)h(`)p Ft(set)30 b(-o)g(posix)p
-Fu(')37 b(while)150 2327 y(Bash)26 b(is)g(running)e(will)j(cause)f
+Fu(')37 b(while)150 2433 y(Bash)26 b(is)g(running)e(will)j(cause)f
 (Bash)g(to)h(conform)f(more)g(closely)h(to)g(the)f Fm(posix)f
-Fu(standard)g(b)m(y)h(c)m(hanging)150 2437 y(the)31 b(b)s(eha)m(vior)f
+Fu(standard)g(b)m(y)h(c)m(hanging)150 2543 y(the)31 b(b)s(eha)m(vior)f
 (to)h(matc)m(h)g(that)g(sp)s(eci\014ed)f(b)m(y)g Fm(posix)g
 Fu(in)g(areas)h(where)f(the)h(Bash)f(default)h(di\013ers.)275
-2566 y(When)f(in)m(v)m(ok)m(ed)h(as)g Ft(sh)p Fu(,)f(Bash)h(en)m(ters)g
+2682 y(When)f(in)m(v)m(ok)m(ed)h(as)g Ft(sh)p Fu(,)f(Bash)h(en)m(ters)g
 Fm(posix)e Fu(mo)s(de)h(after)h(reading)g(the)f(startup)g(\014les.)275
-2695 y(The)f(follo)m(wing)j(list)f(is)g(what's)f(c)m(hanged)h(when)e(`)
-p Fm(posix)h Fu(mo)s(de')h(is)f(in)g(e\013ect:)199 2824
-y(1.)61 b(When)28 b(a)i(command)e(in)g(the)h(hash)f(table)i(no)e
-(longer)h(exists,)h(Bash)f(will)g(re-searc)m(h)h Ft($PATH)d
-Fu(to)i(\014nd)330 2934 y(the)i(new)e(lo)s(cation.)43
-b(This)29 b(is)i(also)g(a)m(v)-5 b(ailable)33 b(with)d(`)p
-Ft(shopt)f(-s)h(checkhash)p Fu('.)199 3063 y(2.)61 b(The)42
-b(message)h(prin)m(ted)e(b)m(y)h(the)g(job)g(con)m(trol)i(co)s(de)e
-(and)f(builtins)h(when)f(a)h(job)g(exits)h(with)f(a)330
-3172 y(non-zero)31 b(status)g(is)f(`Done\(status\)'.)199
-3302 y(3.)61 b(The)40 b(message)h(prin)m(ted)f(b)m(y)g(the)h(job)f(con)
+2821 y(The)f(follo)m(wing)j(list)f(is)g(what's)f(c)m(hanged)h(when)e(`)
+p Fm(posix)h Fu(mo)s(de')h(is)f(in)g(e\013ect:)199 2959
+y(1.)61 b(Bash)31 b(ensures)e(that)i(the)f Ft(POSIXLY_CORRECT)d
+Fu(v)-5 b(ariable)31 b(is)f(set.)199 3096 y(2.)61 b(When)28
+b(a)i(command)e(in)g(the)h(hash)f(table)i(no)e(longer)h(exists,)h(Bash)
+f(will)g(re-searc)m(h)h Ft($PATH)d Fu(to)i(\014nd)330
+3206 y(the)i(new)e(lo)s(cation.)43 b(This)29 b(is)i(also)g(a)m(v)-5
+b(ailable)33 b(with)d(`)p Ft(shopt)f(-s)h(checkhash)p
+Fu('.)199 3342 y(3.)61 b(The)42 b(message)h(prin)m(ted)e(b)m(y)h(the)g
+(job)g(con)m(trol)i(co)s(de)e(and)f(builtins)h(when)f(a)h(job)g(exits)h
+(with)f(a)330 3452 y(non-zero)31 b(status)g(is)f(`Done\(status\)'.)199
+3589 y(4.)61 b(The)40 b(message)h(prin)m(ted)f(b)m(y)g(the)h(job)f(con)
 m(trol)h(co)s(de)g(and)f(builtins)f(when)h(a)g(job)g(is)h(stopp)s(ed)e
-(is)330 3411 y(`Stopp)s(ed\()p Fr(signame)5 b Fu(\)',)31
+(is)330 3698 y(`Stopp)s(ed\()p Fr(signame)5 b Fu(\)',)31
 b(where)f Fr(signame)36 b Fu(is,)31 b(for)f(example,)h
-Ft(SIGTSTP)p Fu(.)199 3540 y(4.)61 b(Alias)31 b(expansion)g(is)f(alw)m
+Ft(SIGTSTP)p Fu(.)199 3835 y(5.)61 b(Alias)31 b(expansion)g(is)f(alw)m
 (a)m(ys)i(enabled,)e(ev)m(en)i(in)e(non-in)m(teractiv)m(e)j(shells.)199
-3669 y(5.)61 b(Reserv)m(ed)40 b(w)m(ords)g(app)s(earing)f(in)h(a)g(con)
+3972 y(6.)61 b(Reserv)m(ed)40 b(w)m(ords)g(app)s(earing)f(in)h(a)g(con)
 m(text)i(where)d(reserv)m(ed)h(w)m(ords)f(are)i(recognized)g(do)f(not)
-330 3779 y(undergo)30 b(alias)h(expansion.)199 3908 y(6.)61
+330 4081 y(undergo)30 b(alias)h(expansion.)199 4218 y(7.)61
 b(The)38 b Fm(posix)h Ft(PS1)f Fu(and)g Ft(PS2)g Fu(expansions)g(of)i
 (`)p Ft(!)p Fu(')f(to)g(the)g(history)g(n)m(um)m(b)s(er)f(and)g(`)p
-Ft(!!)p Fu(')h(to)g(`)p Ft(!)p Fu(')h(are)330 4018 y(enabled,)26
+Ft(!!)p Fu(')h(to)g(`)p Ft(!)p Fu(')h(are)330 4328 y(enabled,)26
 b(and)f(parameter)g(expansion)g(is)g(p)s(erformed)e(on)i(the)g(v)-5
 b(alues)25 b(of)g Ft(PS1)f Fu(and)h Ft(PS2)f Fu(regardless)330
-4127 y(of)31 b(the)f(setting)i(of)e(the)h Ft(promptvars)c
-Fu(option.)199 4256 y(7.)61 b(The)30 b Fm(posix)g Fu(startup)f(\014les)
+4437 y(of)31 b(the)f(setting)i(of)e(the)h Ft(promptvars)c
+Fu(option.)199 4574 y(8.)61 b(The)30 b Fm(posix)g Fu(startup)f(\014les)
 i(are)g(executed)g(\()p Ft($ENV)p Fu(\))f(rather)g(than)g(the)h(normal)
-f(Bash)g(\014les.)199 4385 y(8.)61 b(Tilde)30 b(expansion)g(is)f(only)h
+f(Bash)g(\014les.)199 4711 y(9.)61 b(Tilde)30 b(expansion)g(is)f(only)h
 (p)s(erformed)f(on)h(assignmen)m(ts)g(preceding)g(a)g(command)g(name,)g
-(rather)330 4495 y(than)g(on)g(all)i(assignmen)m(t)f(statemen)m(ts)h
-(on)e(the)h(line.)199 4624 y(9.)61 b(The)30 b(default)g(history)h
+(rather)330 4820 y(than)g(on)g(all)i(assignmen)m(t)f(statemen)m(ts)h
+(on)e(the)h(line.)154 4957 y(10.)61 b(The)30 b(default)g(history)h
 (\014le)f(is)h Ft(~/.sh_history)26 b Fu(\(this)31 b(is)f(the)h(default)
-g(v)-5 b(alue)30 b(of)h Ft($HISTFILE)p Fu(\).)154 4753
-y(10.)61 b(Redirection)25 b(op)s(erators)f(do)g(not)g(p)s(erform)f
+g(v)-5 b(alue)30 b(of)h Ft($HISTFILE)p Fu(\).)154 5094
+y(11.)61 b(Redirection)25 b(op)s(erators)f(do)g(not)g(p)s(erform)f
 (\014lename)h(expansion)g(on)g(the)g(w)m(ord)f(in)h(the)g(redirection)
-330 4863 y(unless)30 b(the)g(shell)h(is)f(in)m(teractiv)m(e.)154
-4992 y(11.)61 b(Redirection)31 b(op)s(erators)g(do)f(not)h(p)s(erform)e
-(w)m(ord)h(splitting)h(on)f(the)h(w)m(ord)f(in)g(the)g(redirection.)154
-5121 y(12.)61 b(F)-8 b(unction)35 b(names)g(m)m(ust)f(b)s(e)g(v)-5
-b(alid)35 b(shell)f Ft(name)p Fu(s.)52 b(That)34 b(is,)i(they)f(ma)m(y)
-g(not)g(con)m(tain)g(c)m(haracters)330 5230 y(other)e(than)g(letters,)h
-(digits,)h(and)d(underscores,)h(and)f(ma)m(y)h(not)g(start)h(with)e(a)h
-(digit.)49 b(Declaring)330 5340 y(a)31 b(function)f(with)g(an)g(in)m(v)
--5 b(alid)31 b(name)g(causes)f(a)h(fatal)h(syn)m(tax)f(error)f(in)g
-(non-in)m(teractiv)m(e)j(shells.)p eop end
+330 5203 y(unless)30 b(the)g(shell)h(is)f(in)m(teractiv)m(e.)154
+5340 y(12.)61 b(Redirection)31 b(op)s(erators)g(do)f(not)h(p)s(erform)e
+(w)m(ord)h(splitting)h(on)f(the)h(w)m(ord)f(in)g(the)g(redirection.)p
+eop end
 %%Page: 99 105
 TeXDict begin 99 104 bop 150 -116 a Fu(Chapter)30 b(6:)41
 b(Bash)30 b(F)-8 b(eatures)2484 b(99)154 299 y(13.)61
-b(F)-8 b(unction)31 b(names)f(ma)m(y)h(not)g(b)s(e)f(the)g(same)h(as)g
-(one)f(of)h(the)f Fm(posix)g Fu(sp)s(ecial)h(builtins.)154
-437 y(14.)61 b Fm(posix)30 b Fu(sp)s(ecial)h(builtins)e(are)i(found)e
+b(F)-8 b(unction)35 b(names)g(m)m(ust)f(b)s(e)g(v)-5
+b(alid)35 b(shell)f Ft(name)p Fu(s.)52 b(That)34 b(is,)i(they)f(ma)m(y)
+g(not)g(con)m(tain)g(c)m(haracters)330 408 y(other)e(than)g(letters,)h
+(digits,)h(and)d(underscores,)h(and)f(ma)m(y)h(not)g(start)h(with)e(a)h
+(digit.)49 b(Declaring)330 518 y(a)31 b(function)f(with)g(an)g(in)m(v)
+-5 b(alid)31 b(name)g(causes)f(a)h(fatal)h(syn)m(tax)f(error)f(in)g
+(non-in)m(teractiv)m(e)j(shells.)154 651 y(14.)61 b(F)-8
+b(unction)31 b(names)f(ma)m(y)h(not)g(b)s(e)f(the)g(same)h(as)g(one)f
+(of)h(the)f Fm(posix)g Fu(sp)s(ecial)h(builtins.)154
+783 y(15.)61 b Fm(posix)30 b Fu(sp)s(ecial)h(builtins)e(are)i(found)e
 (b)s(efore)h(shell)h(functions)f(during)f(command)h(lo)s(okup.)154
-576 y(15.)61 b(When)48 b(prin)m(ting)g(shell)h(function)f
+916 y(16.)61 b(When)48 b(prin)m(ting)g(shell)h(function)f
 (de\014nitions)g(\(e.g.,)55 b(b)m(y)48 b Ft(type)p Fu(\),)k(Bash)d(do)s
-(es)f(not)h(prin)m(t)f(the)330 685 y Ft(function)28 b
-Fu(k)m(eyw)m(ord.)154 824 y(16.)61 b(Literal)28 b(tildes)g(that)f(app)s
-(ear)f(as)i(the)f(\014rst)f(c)m(haracter)j(in)d(elemen)m(ts)j(of)e(the)
-g Ft(PATH)f Fu(v)-5 b(ariable)27 b(are)h(not)330 933
-y(expanded)i(as)g(describ)s(ed)f(ab)s(o)m(v)m(e)j(under)d(Section)i
-(3.5.2)h([Tilde)f(Expansion],)f(page)h(23.)154 1072 y(17.)61
-b(The)29 b Ft(time)g Fu(reserv)m(ed)h(w)m(ord)g(ma)m(y)g(b)s(e)g(used)f
-(b)m(y)h(itself)g(as)g(a)h(command.)40 b(When)30 b(used)f(in)g(this)h
-(w)m(a)m(y)-8 b(,)330 1181 y(it)33 b(displa)m(ys)g(timing)g(statistics)
-h(for)e(the)h(shell)g(and)f(its)g(completed)i(c)m(hildren.)47
-b(The)32 b Ft(TIMEFORMAT)330 1291 y Fu(v)-5 b(ariable)31
-b(con)m(trols)h(the)e(format)h(of)g(the)f(timing)h(information.)154
-1429 y(18.)61 b(When)33 b(parsing)g(and)f(expanding)h(a)h($)p
-Fi({)6 b Fu(.)22 b(.)h(.)11 b Fi(})33 b Fu(expansion)g(that)h(app)s
-(ears)f(within)f(double)h(quotes,)330 1539 y(single)42
-b(quotes)g(are)g(no)g(longer)g(sp)s(ecial)g(and)f(cannot)i(b)s(e)e
-(used)g(to)h(quote)g(a)g(closing)h(brace)f(or)330 1649
-y(other)31 b(sp)s(ecial)h(c)m(haracter,)i(unless)c(the)i(op)s(erator)f
-(is)g(one)h(of)f(those)h(de\014ned)e(to)i(p)s(erform)e(pattern)330
-1758 y(remo)m(v)-5 b(al.)42 b(In)30 b(this)g(case,)i(they)e(do)g(not)h
-(ha)m(v)m(e)h(to)f(app)s(ear)e(as)i(matc)m(hed)g(pairs.)154
-1897 y(19.)61 b(The)29 b(parser)g(do)s(es)g(not)h(recognize)h
+(es)f(not)h(prin)m(t)f(the)330 1026 y Ft(function)28
+b Fu(k)m(eyw)m(ord.)154 1158 y(17.)61 b(Literal)28 b(tildes)g(that)f
+(app)s(ear)f(as)i(the)f(\014rst)f(c)m(haracter)j(in)d(elemen)m(ts)j(of)
+e(the)g Ft(PATH)f Fu(v)-5 b(ariable)27 b(are)h(not)330
+1268 y(expanded)i(as)g(describ)s(ed)f(ab)s(o)m(v)m(e)j(under)d(Section)
+i(3.5.2)h([Tilde)f(Expansion],)f(page)h(23.)154 1401
+y(18.)61 b(The)29 b Ft(time)g Fu(reserv)m(ed)h(w)m(ord)g(ma)m(y)g(b)s
+(e)g(used)f(b)m(y)h(itself)g(as)g(a)h(command.)40 b(When)30
+b(used)f(in)g(this)h(w)m(a)m(y)-8 b(,)330 1510 y(it)33
+b(displa)m(ys)g(timing)g(statistics)h(for)e(the)h(shell)g(and)f(its)g
+(completed)i(c)m(hildren.)47 b(The)32 b Ft(TIMEFORMAT)330
+1620 y Fu(v)-5 b(ariable)31 b(con)m(trols)h(the)e(format)h(of)g(the)f
+(timing)h(information.)154 1752 y(19.)61 b(When)33 b(parsing)g(and)f
+(expanding)h(a)h($)p Fi({)6 b Fu(.)22 b(.)h(.)11 b Fi(})33
+b Fu(expansion)g(that)h(app)s(ears)f(within)f(double)h(quotes,)330
+1862 y(single)42 b(quotes)g(are)g(no)g(longer)g(sp)s(ecial)g(and)f
+(cannot)i(b)s(e)e(used)g(to)h(quote)g(a)g(closing)h(brace)f(or)330
+1972 y(other)31 b(sp)s(ecial)h(c)m(haracter,)i(unless)c(the)i(op)s
+(erator)f(is)g(one)h(of)f(those)h(de\014ned)e(to)i(p)s(erform)e
+(pattern)330 2081 y(remo)m(v)-5 b(al.)42 b(In)30 b(this)g(case,)i(they)
+e(do)g(not)h(ha)m(v)m(e)h(to)f(app)s(ear)e(as)i(matc)m(hed)g(pairs.)154
+2214 y(20.)61 b(The)29 b(parser)g(do)s(es)g(not)h(recognize)h
 Ft(time)d Fu(as)i(a)g(reserv)m(ed)f(w)m(ord)g(if)h(the)f(next)h(tok)m
-(en)h(b)s(egins)d(with)i(a)330 2006 y(`)p Ft(-)p Fu('.)154
-2145 y(20.)61 b(The)30 b(`)p Ft(!)p Fu(')h(c)m(haracter)h(do)s(es)e
+(en)h(b)s(egins)d(with)i(a)330 2323 y(`)p Ft(-)p Fu('.)154
+2456 y(21.)61 b(The)30 b(`)p Ft(!)p Fu(')h(c)m(haracter)h(do)s(es)e
 (not)h(in)m(tro)s(duce)g(history)f(expansion)h(within)f(a)h
-(double-quoted)g(string,)330 2254 y(ev)m(en)g(if)f(the)h
-Ft(histexpand)d Fu(option)i(is)h(enabled.)154 2393 y(21.)61
+(double-quoted)g(string,)330 2566 y(ev)m(en)g(if)f(the)h
+Ft(histexpand)d Fu(option)i(is)h(enabled.)154 2698 y(22.)61
 b(If)24 b(a)g Fm(posix)g Fu(sp)s(ecial)h(builtin)f(returns)f(an)h
 (error)g(status,)i(a)e(non-in)m(teractiv)m(e)j(shell)e(exits.)39
-b(The)24 b(fatal)330 2502 y(errors)30 b(are)h(those)f(listed)h(in)f
+b(The)24 b(fatal)330 2808 y(errors)30 b(are)h(those)f(listed)h(in)f
 (the)h Fm(posix)e Fu(standard,)h(and)g(include)g(things)g(lik)m(e)i
-(passing)e(incorrect)330 2612 y(options,)43 b(redirection)d(errors,)i
+(passing)e(incorrect)330 2917 y(options,)43 b(redirection)d(errors,)i
 (v)-5 b(ariable)41 b(assignmen)m(t)g(errors)e(for)g(assignmen)m(ts)i
-(preceding)f(the)330 2721 y(command)30 b(name,)h(and)f(so)g(on.)154
-2860 y(22.)61 b(A)31 b(non-in)m(teractiv)m(e)j(shell)d(exits)h(with)e
+(preceding)f(the)330 3027 y(command)30 b(name,)h(and)f(so)g(on.)154
+3160 y(23.)61 b(A)31 b(non-in)m(teractiv)m(e)j(shell)d(exits)h(with)e
 (an)h(error)g(status)g(if)g(a)g(v)-5 b(ariable)32 b(assignmen)m(t)g
-(error)e(o)s(ccurs)330 2969 y(when)38 b(no)h(command)g(name)g(follo)m
+(error)e(o)s(ccurs)330 3269 y(when)38 b(no)h(command)g(name)g(follo)m
 (ws)i(the)e(assignmen)m(t)h(statemen)m(ts.)69 b(A)39
-b(v)-5 b(ariable)40 b(assignmen)m(t)330 3079 y(error)30
+b(v)-5 b(ariable)40 b(assignmen)m(t)330 3379 y(error)30
 b(o)s(ccurs,)g(for)g(example,)i(when)d(trying)i(to)g(assign)f(a)h(v)-5
-b(alue)31 b(to)g(a)g(readonly)f(v)-5 b(ariable.)154 3217
-y(23.)61 b(A)31 b(non-in)m(teractiv)m(e)j(shell)d(exits)h(with)e(an)h
+b(alue)31 b(to)g(a)g(readonly)f(v)-5 b(ariable.)154 3512
+y(24.)61 b(A)31 b(non-in)m(teractiv)m(e)j(shell)d(exits)h(with)e(an)h
 (error)g(status)g(if)g(a)g(v)-5 b(ariable)32 b(assignmen)m(t)g(error)e
-(o)s(ccurs)330 3327 y(in)g(an)g(assignmen)m(t)i(statemen)m(t)g
+(o)s(ccurs)330 3621 y(in)g(an)g(assignmen)m(t)i(statemen)m(t)g
 (preceding)e(a)h(sp)s(ecial)g(builtin,)f(but)g(not)g(with)h(an)m(y)f
-(other)h(simple)330 3437 y(command.)154 3575 y(24.)61
+(other)h(simple)330 3731 y(command.)154 3863 y(25.)61
 b(A)43 b(non-in)m(teractiv)m(e)i(shell)e(exits)h(with)f(an)f(error)h
 (status)g(if)g(the)g(iteration)h(v)-5 b(ariable)44 b(in)f(a)g
-Ft(for)330 3685 y Fu(statemen)m(t)32 b(or)f(the)f(selection)i(v)-5
+Ft(for)330 3973 y Fu(statemen)m(t)32 b(or)f(the)f(selection)i(v)-5
 b(ariable)32 b(in)e(a)g Ft(select)f Fu(statemen)m(t)j(is)f(a)f
-(readonly)h(v)-5 b(ariable.)154 3823 y(25.)61 b(Non-in)m(teractiv)m(e)
+(readonly)h(v)-5 b(ariable.)154 4106 y(26.)61 b(Non-in)m(teractiv)m(e)
 34 b(shells)c(exit)h(if)g Fr(\014lename)k Fu(in)30 b
 Ft(.)g Fr(\014lename)36 b Fu(is)31 b(not)f(found.)154
-3961 y(26.)61 b(Non-in)m(teractiv)m(e)41 b(shells)d(exit)h(if)f(a)g
+4238 y(27.)61 b(Non-in)m(teractiv)m(e)41 b(shells)d(exit)h(if)f(a)g
 (syn)m(tax)g(error)g(in)f(an)h(arithmetic)h(expansion)f(results)f(in)h
-(an)330 4071 y(in)m(v)-5 b(alid)31 b(expression.)154
-4209 y(27.)61 b(Non-in)m(teractiv)m(e)34 b(shells)c(exit)h(if)g(a)f
-(parameter)h(expansion)g(error)f(o)s(ccurs.)154 4348
-y(28.)61 b(Non-in)m(teractiv)m(e)27 b(shells)c(exit)i(if)e(there)h(is)f
+(an)330 4348 y(in)m(v)-5 b(alid)31 b(expression.)154
+4481 y(28.)61 b(Non-in)m(teractiv)m(e)34 b(shells)c(exit)h(if)g(a)f
+(parameter)h(expansion)g(error)f(o)s(ccurs.)154 4613
+y(29.)61 b(Non-in)m(teractiv)m(e)27 b(shells)c(exit)i(if)e(there)h(is)f
 (a)h(syn)m(tax)g(error)f(in)g(a)h(script)f(read)g(with)h(the)f
-Ft(.)g Fu(or)h Ft(source)330 4457 y Fu(builtins,)30 b(or)g(in)g(a)h
+Ft(.)g Fu(or)h Ft(source)330 4723 y Fu(builtins,)30 b(or)g(in)g(a)h
 (string)g(pro)s(cessed)e(b)m(y)i(the)f Ft(eval)f Fu(builtin.)154
-4596 y(29.)61 b(Pro)s(cess)30 b(substitution)g(is)h(not)f(a)m(v)-5
-b(ailable.)154 4734 y(30.)61 b(While)32 b(v)-5 b(ariable)32
+4855 y(30.)61 b(Pro)s(cess)30 b(substitution)g(is)h(not)f(a)m(v)-5
+b(ailable.)154 4988 y(31.)61 b(While)32 b(v)-5 b(ariable)32
 b(indirection)f(is)g(a)m(v)-5 b(ailable,)34 b(it)d(ma)m(y)h(not)f(b)s
 (e)g(applied)g(to)g(the)h(`)p Ft(#)p Fu(')f(and)f(`)p
-Ft(?)p Fu(')h(sp)s(ecial)330 4844 y(parameters.)154 4982
-y(31.)61 b(When)28 b(expanding)g(the)g(`)p Ft(*)p Fu(')g(sp)s(ecial)h
+Ft(?)p Fu(')h(sp)s(ecial)330 5098 y(parameters.)154 5230
+y(32.)61 b(When)28 b(expanding)g(the)g(`)p Ft(*)p Fu(')g(sp)s(ecial)h
 (parameter)f(in)g(a)h(pattern)f(con)m(text)i(where)e(the)g(expansion)g
-(is)330 5092 y(double-quoted)i(do)s(es)g(not)h(treat)h(the)e
-Ft($*)g Fu(as)h(if)f(it)h(w)m(ere)g(double-quoted.)154
-5230 y(32.)61 b(Assignmen)m(t)23 b(statemen)m(ts)h(preceding)e
-Fm(posix)f Fu(sp)s(ecial)i(builtins)f(p)s(ersist)g(in)f(the)i(shell)f
-(en)m(vironmen)m(t)330 5340 y(after)31 b(the)f(builtin)g(completes.)p
+(is)330 5340 y(double-quoted)i(do)s(es)g(not)h(treat)h(the)e
+Ft($*)g Fu(as)h(if)f(it)h(w)m(ere)g(double-quoted.)p
 eop end
 %%Page: 100 106
 TeXDict begin 100 105 bop 150 -116 a Fu(Chapter)30 b(6:)41
 b(Bash)30 b(F)-8 b(eatures)2439 b(100)154 299 y(33.)61
-b(Assignmen)m(t)35 b(statemen)m(ts)h(preceding)f(shell)f(function)g
-(calls)i(p)s(ersist)e(in)g(the)h(shell)f(en)m(vironmen)m(t)330
-408 y(after)d(the)f(function)h(returns,)e(as)i(if)f(a)h
+b(Assignmen)m(t)23 b(statemen)m(ts)h(preceding)e Fm(posix)f
+Fu(sp)s(ecial)i(builtins)f(p)s(ersist)g(in)f(the)i(shell)f(en)m
+(vironmen)m(t)330 408 y(after)31 b(the)f(builtin)g(completes.)154
+536 y(34.)61 b(Assignmen)m(t)35 b(statemen)m(ts)h(preceding)f(shell)f
+(function)g(calls)i(p)s(ersist)e(in)g(the)h(shell)f(en)m(vironmen)m(t)
+330 646 y(after)d(the)f(function)h(returns,)e(as)i(if)f(a)h
 Fm(posix)e Fu(sp)s(ecial)i(builtin)f(command)g(had)g(b)s(een)g
-(executed.)154 536 y(34.)61 b(The)31 b Ft(command)e Fu(builtin)i(do)s
+(executed.)154 774 y(35.)61 b(The)31 b Ft(command)e Fu(builtin)i(do)s
 (es)g(not)h(prev)m(en)m(t)f(builtins)g(that)h(tak)m(e)h(assignmen)m(t)f
-(statemen)m(ts)h(as)f(ar-)330 646 y(gumen)m(ts)40 b(from)e(expanding)h
+(statemen)m(ts)h(as)f(ar-)330 883 y(gumen)m(ts)40 b(from)e(expanding)h
 (them)g(as)h(assignmen)m(t)g(statemen)m(ts;)46 b(when)38
-b(not)i(in)f Fm(posix)f Fu(mo)s(de,)330 756 y(assignmen)m(t)k(builtins)
+b(not)i(in)f Fm(posix)f Fu(mo)s(de,)330 993 y(assignmen)m(t)k(builtins)
 e(lose)h(their)g(assignmen)m(t)h(statemen)m(t)h(expansion)d(prop)s
-(erties)g(when)g(pre-)330 865 y(ceded)31 b(b)m(y)f Ft(command)p
-Fu(.)154 993 y(35.)61 b(The)27 b Ft(bg)g Fu(builtin)g(uses)g(the)h
+(erties)g(when)g(pre-)330 1103 y(ceded)31 b(b)m(y)f Ft(command)p
+Fu(.)154 1230 y(36.)61 b(The)27 b Ft(bg)g Fu(builtin)g(uses)g(the)h
 (required)f(format)h(to)g(describ)s(e)f(eac)m(h)i(job)e(placed)h(in)f
-(the)h(bac)m(kground,)330 1103 y(whic)m(h)h(do)s(es)g(not)g(include)g
+(the)h(bac)m(kground,)330 1340 y(whic)m(h)h(do)s(es)g(not)g(include)g
 (an)g(indication)h(of)f(whether)f(the)h(job)g(is)g(the)h(curren)m(t)e
-(or)h(previous)g(job.)154 1230 y(36.)61 b(The)23 b(output)f(of)i(`)p
+(or)h(previous)g(job.)154 1468 y(37.)61 b(The)23 b(output)f(of)i(`)p
 Ft(kill)29 b(-l)p Fu(')23 b(prin)m(ts)f(all)i(the)g(signal)f(names)g
 (on)g(a)h(single)g(line,)h(separated)e(b)m(y)g(spaces,)330
-1340 y(without)30 b(the)h(`)p Ft(SIG)p Fu(')f(pre\014x.)154
-1468 y(37.)61 b(The)30 b Ft(kill)f Fu(builtin)h(do)s(es)g(not)h(accept)
+1577 y(without)30 b(the)h(`)p Ft(SIG)p Fu(')f(pre\014x.)154
+1705 y(38.)61 b(The)30 b Ft(kill)f Fu(builtin)h(do)s(es)g(not)h(accept)
 h(signal)f(names)f(with)g(a)h(`)p Ft(SIG)p Fu(')f(pre\014x.)154
-1596 y(38.)61 b(The)38 b Ft(export)f Fu(and)g Ft(readonly)f
+1833 y(39.)61 b(The)38 b Ft(export)f Fu(and)g Ft(readonly)f
 Fu(builtin)i(commands)g(displa)m(y)h(their)f(output)g(in)g(the)h
-(format)g(re-)330 1705 y(quired)30 b(b)m(y)g Fm(posix)p
-Fu(.)154 1833 y(39.)61 b(The)30 b Ft(trap)f Fu(builtin)h(displa)m(ys)g
+(format)g(re-)330 1943 y(quired)30 b(b)m(y)g Fm(posix)p
+Fu(.)154 2071 y(40.)61 b(The)30 b Ft(trap)f Fu(builtin)h(displa)m(ys)g
 (signal)i(names)e(without)g(the)h(leading)g Ft(SIG)p
-Fu(.)154 1961 y(40.)61 b(The)39 b Ft(trap)e Fu(builtin)i(do)s(esn't)g
+Fu(.)154 2198 y(41.)61 b(The)39 b Ft(trap)e Fu(builtin)i(do)s(esn't)g
 (c)m(hec)m(k)h(the)g(\014rst)e(argumen)m(t)i(for)e(a)i(p)s(ossible)e
-(signal)i(sp)s(eci\014cation)330 2071 y(and)30 b(rev)m(ert)i(the)e
+(signal)i(sp)s(eci\014cation)330 2308 y(and)30 b(rev)m(ert)i(the)e
 (signal)i(handling)e(to)h(the)g(original)h(disp)s(osition)e(if)h(it)g
-(is,)g(unless)f(that)h(argumen)m(t)330 2180 y(consists)e(solely)g(of)g
+(is,)g(unless)f(that)h(argumen)m(t)330 2418 y(consists)e(solely)g(of)g
 (digits)g(and)f(is)g(a)h(v)-5 b(alid)29 b(signal)g(n)m(um)m(b)s(er.)38
 b(If)28 b(users)g(w)m(an)m(t)h(to)g(reset)g(the)g(handler)330
-2290 y(for)h(a)g(giv)m(en)h(signal)g(to)f(the)h(original)g(disp)s
+2527 y(for)h(a)g(giv)m(en)h(signal)g(to)f(the)h(original)g(disp)s
 (osition,)f(they)g(should)f(use)h(`)p Ft(-)p Fu(')g(as)g(the)g(\014rst)
-f(argumen)m(t.)154 2418 y(41.)61 b(The)21 b Ft(.)h Fu(and)f
+f(argumen)m(t.)154 2655 y(42.)61 b(The)21 b Ft(.)h Fu(and)f
 Ft(source)f Fu(builtins)h(do)g(not)h(searc)m(h)h(the)f(curren)m(t)f
 (directory)h(for)g(the)g(\014lename)f(argumen)m(t)330
-2527 y(if)30 b(it)h(is)g(not)f(found)f(b)m(y)i(searc)m(hing)g
-Ft(PATH)p Fu(.)154 2655 y(42.)61 b(Enabling)21 b Fm(posix)g
+2765 y(if)30 b(it)h(is)g(not)f(found)f(b)m(y)i(searc)m(hing)g
+Ft(PATH)p Fu(.)154 2892 y(43.)61 b(Enabling)21 b Fm(posix)g
 Fu(mo)s(de)g(has)g(the)g(e\013ect)i(of)e(setting)i(the)e
 Ft(inherit_errexit)d Fu(option,)23 b(so)f(subshells)330
-2765 y(spa)m(wned)27 b(to)i(execute)g(command)e(substitutions)h
+3002 y(spa)m(wned)27 b(to)i(execute)g(command)e(substitutions)h
 (inherit)f(the)h(v)-5 b(alue)28 b(of)g(the)g Ft(-e)f
-Fu(option)h(from)g(the)330 2874 y(paren)m(t)37 b(shell.)62
+Fu(option)h(from)g(the)330 3112 y(paren)m(t)37 b(shell.)62
 b(When)37 b(the)g Ft(inherit_errexit)c Fu(option)38 b(is)f(not)h
-(enabled,)h(Bash)e(clears)h(the)g Ft(-e)330 2984 y Fu(option)31
-b(in)f(suc)m(h)g(subshells.)154 3112 y(43.)61 b(When)43
+(enabled,)h(Bash)e(clears)h(the)g Ft(-e)330 3221 y Fu(option)31
+b(in)f(suc)m(h)g(subshells.)154 3349 y(44.)61 b(When)43
 b(the)g Ft(alias)f Fu(builtin)g(displa)m(ys)i(alias)g(de\014nitions,)i
 (it)d(do)s(es)g(not)g(displa)m(y)h(them)f(with)g(a)330
-3221 y(leading)31 b(`)p Ft(alias)e Fu(')i(unless)f(the)g
-Ft(-p)g Fu(option)h(is)f(supplied.)154 3349 y(44.)61
+3459 y(leading)31 b(`)p Ft(alias)e Fu(')i(unless)f(the)g
+Ft(-p)g Fu(option)h(is)f(supplied.)154 3587 y(45.)61
 b(When)40 b(the)g Ft(set)f Fu(builtin)h(is)g(in)m(v)m(ok)m(ed)h
 (without)f(options,)j(it)e(do)s(es)f(not)g(displa)m(y)g(shell)g
-(function)330 3459 y(names)30 b(and)g(de\014nitions.)154
-3587 y(45.)61 b(When)36 b(the)g Ft(set)g Fu(builtin)g(is)g(in)m(v)m(ok)
+(function)330 3696 y(names)30 b(and)g(de\014nitions.)154
+3824 y(46.)61 b(When)36 b(the)g Ft(set)g Fu(builtin)g(is)g(in)m(v)m(ok)
 m(ed)i(without)e(options,)i(it)f(displa)m(ys)f(v)-5 b(ariable)37
-b(v)-5 b(alues)37 b(without)330 3696 y(quotes,)26 b(unless)d(they)i
+b(v)-5 b(alues)37 b(without)330 3934 y(quotes,)26 b(unless)d(they)i
 (con)m(tain)g(shell)f(metac)m(haracters,)k(ev)m(en)d(if)f(the)g(result)
-g(con)m(tains)i(nonprin)m(ting)330 3806 y(c)m(haracters.)154
-3934 y(46.)61 b(When)35 b(the)g Ft(cd)f Fu(builtin)h(is)g(in)m(v)m(ok)m
+g(con)m(tains)i(nonprin)m(ting)330 4043 y(c)m(haracters.)154
+4171 y(47.)61 b(When)35 b(the)g Ft(cd)f Fu(builtin)h(is)g(in)m(v)m(ok)m
 (ed)i(in)d Fr(logical)41 b Fu(mo)s(de,)36 b(and)f(the)g(pathname)g
-(constructed)g(from)330 4043 y Ft($PWD)i Fu(and)h(the)h(directory)f
+(constructed)g(from)330 4281 y Ft($PWD)i Fu(and)h(the)h(directory)f
 (name)h(supplied)e(as)i(an)f(argumen)m(t)h(do)s(es)f(not)g(refer)h(to)g
-(an)f(existing)330 4153 y(directory)-8 b(,)32 b Ft(cd)d
+(an)f(existing)330 4390 y(directory)-8 b(,)32 b Ft(cd)d
 Fu(will)i(fail)g(instead)g(of)f(falling)h(bac)m(k)h(to)f
-Fr(ph)m(ysical)j Fu(mo)s(de.)154 4281 y(47.)61 b(The)36
+Fr(ph)m(ysical)j Fu(mo)s(de.)154 4518 y(48.)61 b(The)36
 b Ft(pwd)f Fu(builtin)h(v)m(eri\014es)h(that)g(the)f(v)-5
 b(alue)37 b(it)g(prin)m(ts)e(is)i(the)f(same)h(as)f(the)h(curren)m(t)f
-(directory)-8 b(,)330 4390 y(ev)m(en)31 b(if)f(it)h(is)g(not)f(ask)m
+(directory)-8 b(,)330 4628 y(ev)m(en)31 b(if)f(it)h(is)g(not)f(ask)m
 (ed)h(to)g(c)m(hec)m(k)h(the)f(\014le)f(system)h(with)f(the)h
-Ft(-P)e Fu(option.)154 4518 y(48.)61 b(When)35 b(listing)g(the)g
+Ft(-P)e Fu(option.)154 4756 y(49.)61 b(When)35 b(listing)g(the)g
 (history)-8 b(,)36 b(the)f Ft(fc)g Fu(builtin)f(do)s(es)g(not)h
-(include)g(an)f(indication)i(of)f(whether)f(or)330 4628
+(include)g(an)f(indication)i(of)f(whether)f(or)330 4865
 y(not)d(a)f(history)h(en)m(try)f(has)g(b)s(een)g(mo)s(di\014ed.)154
-4756 y(49.)61 b(The)30 b(default)g(editor)h(used)f(b)m(y)g
-Ft(fc)g Fu(is)g Ft(ed)p Fu(.)154 4883 y(50.)61 b(The)37
+4993 y(50.)61 b(The)30 b(default)g(editor)h(used)f(b)m(y)g
+Ft(fc)g Fu(is)g Ft(ed)p Fu(.)154 5121 y(51.)61 b(The)37
 b Ft(type)g Fu(and)g Ft(command)f Fu(builtins)i(will)g(not)g(rep)s(ort)
 f(a)i(non-executable)g(\014le)f(as)g(ha)m(ving)h(b)s(een)330
-4993 y(found,)26 b(though)h(the)g(shell)g(will)g(attempt)h(to)g
+5230 y(found,)26 b(though)h(the)g(shell)g(will)g(attempt)h(to)g
 (execute)g(suc)m(h)f(a)g(\014le)g(if)g(it)g(is)g(the)g(only)g(so-named)
-g(\014le)330 5103 y(found)i(in)h Ft($PATH)p Fu(.)154
-5230 y(51.)61 b(The)33 b Ft(vi)f Fu(editing)i(mo)s(de)f(will)g(in)m(v)m
-(ok)m(e)i(the)e Ft(vi)g Fu(editor)h(directly)f(when)f(the)i(`)p
-Ft(v)p Fu(')f(command)g(is)g(run,)330 5340 y(instead)e(of)f(c)m(hec)m
-(king)i Ft($VISUAL)d Fu(and)g Ft($EDITOR)p Fu(.)p eop
+g(\014le)330 5340 y(found)i(in)h Ft($PATH)p Fu(.)p eop
 end
 %%Page: 101 107
 TeXDict begin 101 106 bop 150 -116 a Fu(Chapter)30 b(6:)41
 b(Bash)30 b(F)-8 b(eatures)2439 b(101)154 299 y(52.)61
+b(The)33 b Ft(vi)f Fu(editing)i(mo)s(de)f(will)g(in)m(v)m(ok)m(e)i(the)
+e Ft(vi)g Fu(editor)h(directly)f(when)f(the)i(`)p Ft(v)p
+Fu(')f(command)g(is)g(run,)330 408 y(instead)e(of)f(c)m(hec)m(king)i
+Ft($VISUAL)d Fu(and)g Ft($EDITOR)p Fu(.)154 543 y(53.)61
 b(When)41 b(the)g Ft(xpg_echo)e Fu(option)i(is)g(enabled,)j(Bash)d(do)s
 (es)g(not)g(attempt)h(to)g(in)m(terpret)f(an)m(y)h(ar-)330
-408 y(gumen)m(ts)35 b(to)g Ft(echo)e Fu(as)i(options.)54
+653 y(gumen)m(ts)35 b(to)g Ft(echo)e Fu(as)i(options.)54
 b(Eac)m(h)35 b(argumen)m(t)g(is)f(displa)m(y)m(ed,)j(after)e(escap)s(e)
-g(c)m(haracters)h(are)330 518 y(con)m(v)m(erted.)154
-653 y(53.)61 b(The)30 b Ft(ulimit)f Fu(builtin)g(uses)h(a)h(blo)s(c)m
+g(c)m(haracters)h(are)330 762 y(con)m(v)m(erted.)154
+897 y(54.)61 b(The)30 b Ft(ulimit)f Fu(builtin)g(uses)h(a)h(blo)s(c)m
 (k)g(size)g(of)g(512)g(b)m(ytes)g(for)f(the)h Ft(-c)f
-Fu(and)g Ft(-f)f Fu(options.)154 787 y(54.)61 b(The)39
+Fu(and)g Ft(-f)f Fu(options.)154 1031 y(55.)61 b(The)39
 b(arriv)-5 b(al)41 b(of)f Ft(SIGCHLD)e Fu(when)h(a)h(trap)g(is)g(set)h
 (on)f Ft(SIGCHLD)e Fu(do)s(es)h(not)h(in)m(terrupt)g(the)g
-Ft(wait)330 897 y Fu(builtin)c(and)h(cause)g(it)h(to)f(return)f
+Ft(wait)330 1141 y Fu(builtin)c(and)h(cause)g(it)h(to)f(return)f
 (immediately)-8 b(.)62 b(The)37 b(trap)f(command)h(is)g(run)e(once)j
-(for)f(eac)m(h)330 1006 y(c)m(hild)31 b(that)g(exits.)154
-1141 y(55.)61 b(The)27 b Ft(read)f Fu(builtin)g(ma)m(y)i(b)s(e)e(in)m
+(for)f(eac)m(h)330 1250 y(c)m(hild)31 b(that)g(exits.)154
+1385 y(56.)61 b(The)27 b Ft(read)f Fu(builtin)g(ma)m(y)i(b)s(e)e(in)m
 (terrupted)h(b)m(y)g(a)h(signal)f(for)g(whic)m(h)g(a)h(trap)f(has)g(b)s
-(een)f(set.)40 b(If)27 b(Bash)330 1250 y(receiv)m(es)41
+(een)f(set.)40 b(If)27 b(Bash)330 1494 y(receiv)m(es)41
 b(a)f(trapp)s(ed)e(signal)i(while)f(executing)h Ft(read)p
 Fu(,)h(the)e(trap)h(handler)e(executes)i(and)f Ft(read)330
-1360 y Fu(returns)29 b(an)h(exit)i(status)e(greater)i(than)e(128.)154
-1494 y(56.)61 b(Bash)27 b(remo)m(v)m(es)h(an)e(exited)i(bac)m(kground)e
+1604 y Fu(returns)29 b(an)h(exit)i(status)e(greater)i(than)e(128.)154
+1738 y(57.)61 b(Bash)27 b(remo)m(v)m(es)h(an)e(exited)i(bac)m(kground)e
 (pro)s(cess's)h(status)g(from)f(the)h(list)g(of)g(suc)m(h)f(statuses)h
-(after)330 1604 y(the)k Ft(wait)e Fu(builtin)h(is)g(used)g(to)h(obtain)
-g(it.)275 1763 y(There)j(is)g(other)h Fm(posix)f Fu(b)s(eha)m(vior)h
+(after)330 1848 y(the)k Ft(wait)e Fu(builtin)h(is)g(used)g(to)h(obtain)
+g(it.)275 2007 y(There)j(is)g(other)h Fm(posix)f Fu(b)s(eha)m(vior)h
 (that)g(Bash)g(do)s(es)f(not)h(implemen)m(t)g(b)m(y)g(default)f(ev)m
-(en)i(when)d(in)150 1873 y Fm(posix)d Fu(mo)s(de.)40
-b(Sp)s(eci\014cally:)199 2007 y(1.)61 b(The)30 b Ft(fc)f
+(en)i(when)d(in)150 2117 y Fm(posix)d Fu(mo)s(de.)40
+b(Sp)s(eci\014cally:)199 2252 y(1.)61 b(The)30 b Ft(fc)f
 Fu(builtin)h(c)m(hec)m(ks)i Ft($EDITOR)c Fu(as)j(a)f(program)g(to)h
 (edit)g(history)f(en)m(tries)h(if)f Ft(FCEDIT)f Fu(is)h(unset,)330
-2117 y(rather)g(than)g(defaulting)h(directly)g(to)g Ft(ed)p
+2361 y(rather)g(than)g(defaulting)h(directly)g(to)g Ft(ed)p
 Fu(.)40 b Ft(fc)30 b Fu(uses)g Ft(ed)g Fu(if)g Ft(EDITOR)f
-Fu(is)h(unset.)199 2252 y(2.)61 b(As)29 b(noted)g(ab)s(o)m(v)m(e,)i
+Fu(is)h(unset.)199 2496 y(2.)61 b(As)29 b(noted)g(ab)s(o)m(v)m(e,)i
 (Bash)e(requires)g(the)g Ft(xpg_echo)e Fu(option)j(to)g(b)s(e)e
-(enabled)h(for)g(the)g Ft(echo)f Fu(builtin)330 2361
-y(to)j(b)s(e)f(fully)g(conforman)m(t.)275 2521 y(Bash)c(can)g(b)s(e)f
+(enabled)h(for)g(the)g Ft(echo)f Fu(builtin)330 2605
+y(to)j(b)s(e)f(fully)g(conforman)m(t.)275 2765 y(Bash)c(can)g(b)s(e)f
 (con\014gured)h(to)g(b)s(e)g Fm(posix)p Fu(-conforman)m(t)g(b)m(y)g
 (default,)h(b)m(y)f(sp)s(ecifying)g(the)g Ft(--enable-)150
-2630 y(strict-posix-default)c Fu(to)27 b Ft(configure)e
+2874 y(strict-posix-default)c Fu(to)27 b Ft(configure)e
 Fu(when)h(building)h(\(see)h(Section)g(10.8)g([Optional)g(F)-8
-b(eatures],)150 2740 y(page)31 b(148\).)p eop end
+b(eatures],)150 2984 y(page)31 b(149\).)p eop end
 %%Page: 102 108
 TeXDict begin 102 107 bop 3614 -116 a Fu(102)150 299
 y Fp(7)80 b(Job)54 b(Con)l(trol)150 518 y Fu(This)25
@@ -16176,545 +16249,545 @@ b(Command)29 b(Line)i(Editing)2062 b(111)630 299 y Ft
 Ft(on)p Fu(',)g(Readline)g(p)s(erforms)e(\014lename)h(matc)m(hing)i
 (and)e(completion)1110 518 y(in)j(a)h(case-insensitiv)m(e)i(fashion.)40
 b(The)30 b(default)h(v)-5 b(alue)30 b(is)h(`)p Ft(off)p
-Fu('.)630 669 y Ft(completion-map-case)1110 778 y Fu(If)22
+Fu('.)630 682 y Ft(completion-map-case)1110 792 y Fu(If)22
 b(set)g(to)h(`)p Ft(on)p Fu(',)h(and)e Fr(completion-ignore-case)31
-b Fu(is)22 b(enabled,)i(Readline)f(treats)1110 888 y(h)m(yphens)29
+b Fu(is)22 b(enabled,)i(Readline)f(treats)1110 902 y(h)m(yphens)29
 b(\(`)p Ft(-)p Fu('\))j(and)e(underscores)g(\(`)p Ft(_)p
 Fu('\))i(as)f(equiv)-5 b(alen)m(t)32 b(when)e(p)s(erforming)1110
-998 y(case-insensitiv)m(e)j(\014lename)d(matc)m(hing)i(and)e
-(completion.)630 1148 y Ft(completion-prefix-displa)o(y-le)o(ngth)1110
-1258 y Fu(The)h(length)g(in)g(c)m(haracters)i(of)f(the)f(common)h
-(pre\014x)e(of)h(a)h(list)g(of)f(p)s(ossible)1110 1367
-y(completions)g(that)f(is)g(displa)m(y)m(ed)g(without)g(mo)s
-(di\014cation.)41 b(When)29 b(set)h(to)h(a)1110 1477
+1011 y(case-insensitiv)m(e)47 b(\014lename)e(matc)m(hing)g(and)f
+(completion.)85 b(The)44 b(default)1110 1121 y(v)-5 b(alue)31
+b(is)f(`)p Ft(off)p Fu('.)630 1285 y Ft(completion-prefix-displa)o
+(y-le)o(ngth)1110 1395 y Fu(The)h(length)g(in)g(c)m(haracters)i(of)f
+(the)f(common)h(pre\014x)e(of)h(a)h(list)g(of)f(p)s(ossible)1110
+1504 y(completions)g(that)f(is)g(displa)m(y)m(ed)g(without)g(mo)s
+(di\014cation.)41 b(When)29 b(set)h(to)h(a)1110 1614
 y(v)-5 b(alue)26 b(greater)h(than)e(zero,)j(common)e(pre\014xes)e
-(longer)j(than)e(this)g(v)-5 b(alue)27 b(are)1110 1587
+(longer)j(than)e(this)g(v)-5 b(alue)27 b(are)1110 1724
 y(replaced)k(with)f(an)g(ellipsis)h(when)e(displa)m(ying)i(p)s(ossible)
-f(completions.)630 1737 y Ft(completion-query-items)1110
-1847 y Fu(The)c(n)m(um)m(b)s(er)f(of)h(p)s(ossible)g(completions)h
-(that)g(determines)f(when)f(the)i(user)1110 1956 y(is)i(ask)m(ed)h
+f(completions.)630 1888 y Ft(completion-query-items)1110
+1998 y Fu(The)c(n)m(um)m(b)s(er)f(of)h(p)s(ossible)g(completions)h
+(that)g(determines)f(when)f(the)i(user)1110 2107 y(is)i(ask)m(ed)h
 (whether)f(the)h(list)g(of)f(p)s(ossibilities)h(should)e(b)s(e)h
-(displa)m(y)m(ed.)41 b(If)29 b(the)1110 2066 y(n)m(um)m(b)s(er)d(of)h
+(displa)m(y)m(ed.)41 b(If)29 b(the)1110 2217 y(n)m(um)m(b)s(er)d(of)h
 (p)s(ossible)f(completions)i(is)f(greater)h(than)e(this)h(v)-5
-b(alue,)28 b(Readline)1110 2176 y(will)f(ask)g(the)f(user)g(whether)g
+b(alue,)28 b(Readline)1110 2326 y(will)f(ask)g(the)f(user)g(whether)g
 (or)g(not)h(he)f(wishes)g(to)i(view)e(them;)i(otherwise,)1110
-2285 y(they)d(are)f(simply)g(listed.)40 b(This)23 b(v)-5
+2436 y(they)d(are)f(simply)g(listed.)40 b(This)23 b(v)-5
 b(ariable)25 b(m)m(ust)g(b)s(e)e(set)i(to)g(an)g(in)m(teger)g(v)-5
-b(alue)1110 2395 y(greater)26 b(than)f(or)f(equal)i(to)f(0.)40
+b(alue)1110 2545 y(greater)26 b(than)f(or)f(equal)i(to)f(0.)40
 b(A)24 b(negativ)m(e)j(v)-5 b(alue)26 b(means)e(Readline)i(should)1110
-2504 y(nev)m(er)31 b(ask.)41 b(The)29 b(default)i(limit)g(is)g
-Ft(100)p Fu(.)630 2655 y Ft(convert-meta)1110 2765 y
+2655 y(nev)m(er)31 b(ask.)41 b(The)29 b(default)i(limit)g(is)g
+Ft(100)p Fu(.)630 2819 y Ft(convert-meta)1110 2929 y
 Fu(If)22 b(set)g(to)h(`)p Ft(on)p Fu(',)h(Readline)f(will)f(con)m(v)m
 (ert)i(c)m(haracters)f(with)f(the)g(eigh)m(th)h(bit)f(set)1110
-2874 y(to)33 b(an)e Fm(asci)r(i)h Fu(k)m(ey)h(sequence)f(b)m(y)g
+3039 y(to)33 b(an)e Fm(asci)r(i)h Fu(k)m(ey)h(sequence)f(b)m(y)g
 (stripping)f(the)h(eigh)m(th)h(bit)f(and)f(pre\014xing)1110
-2984 y(an)24 b Ft(ESC)g Fu(c)m(haracter,)j(con)m(v)m(erting)f(them)f
-(to)g(a)g(meta-pre\014xed)f(k)m(ey)h(sequence.)1110 3093
+3148 y(an)24 b Ft(ESC)g Fu(c)m(haracter,)j(con)m(v)m(erting)f(them)f
+(to)g(a)g(meta-pre\014xed)f(k)m(ey)h(sequence.)1110 3258
 y(The)i(default)h(v)-5 b(alue)28 b(is)f(`)p Ft(on)p Fu(',)i(but)d(will)
 i(b)s(e)f(set)h(to)g(`)p Ft(off)p Fu(')g(if)f(the)h(lo)s(cale)h(is)f
-(one)1110 3203 y(that)j(con)m(tains)h(eigh)m(t-bit)g(c)m(haracters.)630
-3354 y Ft(disable-completion)1110 3463 y Fu(If)k(set)h(to)h(`)p
+(one)1110 3367 y(that)j(con)m(tains)h(eigh)m(t-bit)g(c)m(haracters.)630
+3532 y Ft(disable-completion)1110 3641 y Fu(If)k(set)h(to)h(`)p
 Ft(On)p Fu(',)g(Readline)f(will)g(inhibit)f(w)m(ord)h(completion.)60
-b(Completion)1110 3573 y(c)m(haracters)28 b(will)e(b)s(e)f(inserted)h
+b(Completion)1110 3751 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
-3682 y(to)31 b Ft(self-insert)p Fu(.)38 b(The)30 b(default)g(is)h(`)p
-Ft(off)p Fu('.)630 3833 y Ft(echo-control-characters)1110
-3943 y Fu(When)f(set)h(to)g(`)p Ft(on)p Fu(',)f(on)g(op)s(erating)h
-(systems)f(that)h(indicate)g(they)g(supp)s(ort)1110 4052
+3861 y(to)31 b Ft(self-insert)p Fu(.)38 b(The)30 b(default)g(is)h(`)p
+Ft(off)p Fu('.)630 4025 y Ft(echo-control-characters)1110
+4134 y Fu(When)f(set)h(to)g(`)p Ft(on)p Fu(',)f(on)g(op)s(erating)h
+(systems)f(that)h(indicate)g(they)g(supp)s(ort)1110 4244
 y(it,)i(readline)e(ec)m(ho)s(es)i(a)f(c)m(haracter)h(corresp)s(onding)d
-(to)j(a)f(signal)g(generated)1110 4162 y(from)e(the)g(k)m(eyb)s(oard.)
-41 b(The)30 b(default)g(is)h(`)p Ft(on)p Fu('.)630 4313
-y Ft(editing-mode)1110 4422 y Fu(The)d Ft(editing-mode)e
+(to)j(a)f(signal)g(generated)1110 4354 y(from)e(the)g(k)m(eyb)s(oard.)
+41 b(The)30 b(default)g(is)h(`)p Ft(on)p Fu('.)630 4518
+y Ft(editing-mode)1110 4628 y Fu(The)d Ft(editing-mode)e
 Fu(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 4532 y(ings)25 b(is)g(used.)38 b(By)26
+m(ey)i(bind-)1110 4737 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 4641 y(where)j(the)g(k)m(eystrok)m(es)i(are)e(most)h(similar)f(to)
+1110 4847 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
-4751 y(b)s(e)g(set)h(to)g(either)g(`)p Ft(emacs)p Fu(')e(or)h(`)p
-Ft(vi)p Fu('.)630 4902 y Ft(emacs-mode-string)1110 5011
+4956 y(b)s(e)g(set)h(to)g(either)g(`)p Ft(emacs)p Fu(')e(or)h(`)p
+Ft(vi)p Fu('.)630 5121 y Ft(emacs-mode-string)1110 5230
 y Fu(If)j(the)h Fr(sho)m(w-mo)s(de-in-prompt)h Fu(v)-5
 b(ariable)35 b(is)e(enabled,)i(this)f(string)f(is)h(dis-)1110
-5121 y(pla)m(y)m(ed)24 b(immediately)g(b)s(efore)f(the)g(last)h(line)f
-(of)h(the)f(primary)f(prompt)g(when)1110 5230 y(emacs)g(editing)h(mo)s
-(de)e(is)h(activ)m(e.)40 b(The)21 b(v)-5 b(alue)22 b(is)g(expanded)f
-(lik)m(e)h(a)h(k)m(ey)f(bind-)1110 5340 y(ing,)27 b(so)f(the)f
-(standard)g(set)h(of)f(meta-)i(and)e(con)m(trol)i(pre\014xes)d(and)h
-(bac)m(kslash)p eop end
+5340 y(pla)m(y)m(ed)24 b(immediately)g(b)s(efore)f(the)g(last)h(line)f
+(of)h(the)f(primary)f(prompt)g(when)p eop end
 %%Page: 112 118
 TeXDict begin 112 117 bop 150 -116 a Fu(Chapter)30 b(8:)41
-b(Command)29 b(Line)i(Editing)2062 b(112)1110 299 y(escap)s(e)24
-b(sequences)h(is)e(a)m(v)-5 b(ailable.)41 b(Use)25 b(the)f(`)p
+b(Command)29 b(Line)i(Editing)2062 b(112)1110 299 y(emacs)22
+b(editing)h(mo)s(de)e(is)h(activ)m(e.)40 b(The)21 b(v)-5
+b(alue)22 b(is)g(expanded)f(lik)m(e)h(a)h(k)m(ey)f(bind-)1110
+408 y(ing,)27 b(so)f(the)f(standard)g(set)h(of)f(meta-)i(and)e(con)m
+(trol)i(pre\014xes)d(and)h(bac)m(kslash)1110 518 y(escap)s(e)f
+(sequences)h(is)e(a)m(v)-5 b(ailable.)41 b(Use)25 b(the)f(`)p
 Ft(\\1)p Fu(')f(and)h(`)p Ft(\\2)p Fu(')g(escap)s(es)g(to)g(b)s(egin)
-1110 408 y(and)37 b(end)g(sequences)h(of)f(non-prin)m(ting)h(c)m
-(haracters,)j(whic)m(h)c(can)h(b)s(e)f(used)1110 518
+1110 628 y(and)37 b(end)g(sequences)h(of)f(non-prin)m(ting)h(c)m
+(haracters,)j(whic)m(h)c(can)h(b)s(e)f(used)1110 737
 y(to)h(em)m(b)s(ed)f(a)g(terminal)h(con)m(trol)h(sequence)f(in)m(to)g
-(the)f(mo)s(de)g(string.)61 b(The)1110 628 y(default)31
-b(is)f(`)p Ft(@)p Fu('.)630 778 y Ft(enable-bracketed-paste)1110
-888 y Fu(When)24 b(set)h(to)h(`)p Ft(On)p Fu(',)g(Readline)f(will)g
+(the)f(mo)s(de)g(string.)61 b(The)1110 847 y(default)31
+b(is)f(`)p Ft(@)p Fu('.)630 1019 y Ft(enable-bracketed-paste)1110
+1129 y Fu(When)24 b(set)h(to)h(`)p Ft(On)p Fu(',)g(Readline)f(will)g
 (con\014gure)f(the)h(terminal)g(in)f(a)h(w)m(a)m(y)g(that)1110
-998 y(will)k(enable)f(it)h(to)g(insert)g(eac)m(h)g(paste)g(in)m(to)g
-(the)g(editing)g(bu\013er)e(as)i(a)f(single)1110 1107
+1238 y(will)k(enable)f(it)h(to)g(insert)g(eac)m(h)g(paste)g(in)m(to)g
+(the)g(editing)g(bu\013er)e(as)i(a)f(single)1110 1348
 y(string)33 b(of)f(c)m(haracters,)j(instead)e(of)g(treating)h(eac)m(h)g
-(c)m(haracter)g(as)f(if)f(it)i(had)1110 1217 y(b)s(een)e(read)i(from)e
+(c)m(haracter)g(as)f(if)f(it)i(had)1110 1457 y(b)s(een)e(read)i(from)e
 (the)i(k)m(eyb)s(oard.)49 b(This)32 b(can)h(prev)m(en)m(t)h(pasted)f(c)
-m(haracters)1110 1326 y(from)d(b)s(eing)g(in)m(terpreted)h(as)f
+m(haracters)1110 1567 y(from)d(b)s(eing)g(in)m(terpreted)h(as)f
 (editing)h(commands.)41 b(The)29 b(default)i(is)f(`)p
-Ft(off)p Fu('.)630 1477 y Ft(enable-keypad)1110 1587
+Ft(off)p Fu('.)630 1739 y Ft(enable-keypad)1110 1849
 y Fu(When)23 b(set)h(to)g(`)p Ft(on)p Fu(',)h(Readline)f(will)g(try)f
-(to)h(enable)g(the)f(application)i(k)m(eypad)1110 1696
+(to)h(enable)g(the)f(application)i(k)m(eypad)1110 1958
 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 1806 y(The)j(default)g(is)h(`)
-p Ft(off)p Fu('.)630 1956 y Ft(enable-meta-key)1110 2066
+(enable)g(the)g(arro)m(w)g(k)m(eys.)1110 2068 y(The)j(default)g(is)h(`)
+p Ft(off)p Fu('.)630 2240 y Ft(enable-meta-key)1110 2350
 y Fu(When)40 b(set)g(to)g(`)p Ft(on)p Fu(',)j(Readline)d(will)g(try)g
-(to)g(enable)g(an)m(y)g(meta)h(mo)s(di\014er)1110 2176
+(to)g(enable)g(an)m(y)g(meta)h(mo)s(di\014er)1110 2459
 y(k)m(ey)i(the)e(terminal)i(claims)f(to)h(supp)s(ort)d(when)h(it)h(is)g
-(called.)76 b(On)41 b(man)m(y)1110 2285 y(terminals,)c(the)e(meta)h(k)m
+(called.)76 b(On)41 b(man)m(y)1110 2569 y(terminals,)c(the)e(meta)h(k)m
 (ey)g(is)f(used)g(to)h(send)e(eigh)m(t-bit)j(c)m(haracters.)56
-b(The)1110 2395 y(default)31 b(is)f(`)p Ft(on)p Fu('.)630
-2545 y Ft(expand-tilde)1110 2655 y Fu(If)d(set)h(to)h(`)p
+b(The)1110 2679 y(default)31 b(is)f(`)p Ft(on)p Fu('.)630
+2851 y Ft(expand-tilde)1110 2960 y Fu(If)d(set)h(to)h(`)p
 Ft(on)p Fu(',)f(tilde)g(expansion)g(is)f(p)s(erformed)f(when)h
-(Readline)h(attempts)1110 2765 y(w)m(ord)i(completion.)42
-b(The)30 b(default)g(is)h(`)p Ft(off)p Fu('.)630 2915
-y Ft(history-preserve-point)1110 3025 y Fu(If)41 b(set)h(to)h(`)p
+(Readline)h(attempts)1110 3070 y(w)m(ord)i(completion.)42
+b(The)30 b(default)g(is)h(`)p Ft(off)p Fu('.)630 3242
+y Ft(history-preserve-point)1110 3352 y Fu(If)41 b(set)h(to)h(`)p
 Ft(on)p Fu(',)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 3134 y(curren)m(t)35 b(cursor)g(p)s
+(p)s(oin)m(t)f(\(the)1110 3461 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 3244 y(retriev)m(ed)h(with)f Ft(previous-history)c
+(line)1110 3571 y(retriev)m(ed)h(with)f Ft(previous-history)c
 Fu(or)37 b Ft(next-history)p Fu(.)55 b(The)36 b(default)1110
-3354 y(is)30 b(`)p Ft(off)p Fu('.)630 3504 y Ft(history-size)1110
-3614 y Fu(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 3724
+3680 y(is)30 b(`)p Ft(off)p Fu('.)630 3853 y Ft(history-size)1110
+3962 y Fu(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 4072
 y(list.)51 b(If)34 b(set)g(to)h(zero,)g(an)m(y)f(existing)h(history)f
-(en)m(tries)g(are)g(deleted)h(and)e(no)1110 3833 y(new)e(en)m(tries)i
+(en)m(tries)g(are)g(deleted)h(and)e(no)1110 4181 y(new)e(en)m(tries)i
 (are)f(sa)m(v)m(ed.)46 b(If)31 b(set)h(to)h(a)f(v)-5
 b(alue)32 b(less)g(than)f(zero,)i(the)f(n)m(um)m(b)s(er)1110
-3943 y(of)f(history)f(en)m(tries)h(is)g(not)g(limited.)42
+4291 y(of)f(history)f(en)m(tries)h(is)g(not)g(limited.)42
 b(By)30 b(default,)h(the)g(n)m(um)m(b)s(er)e(of)i(history)1110
-4052 y(en)m(tries)j(is)f(not)g(limited.)49 b(If)32 b(an)h(attempt)h(is)
-f(made)g(to)h(set)f Fr(history-size)39 b Fu(to)1110 4162
+4401 y(en)m(tries)j(is)f(not)g(limited.)49 b(If)32 b(an)h(attempt)h(is)
+f(made)g(to)h(set)f Fr(history-size)39 b Fu(to)1110 4510
 y(a)34 b(non-n)m(umeric)f(v)-5 b(alue,)34 b(the)g(maxim)m(um)f(n)m(um)m
-(b)s(er)f(of)h(history)h(en)m(tries)g(will)1110 4271
-y(b)s(e)c(set)h(to)g(500.)630 4422 y Ft(horizontal-scroll-mode)1110
-4532 y Fu(This)k(v)-5 b(ariable)37 b(can)f(b)s(e)f(set)h(to)h(either)f
+(b)s(er)f(of)h(history)h(en)m(tries)g(will)1110 4620
+y(b)s(e)c(set)h(to)g(500.)630 4792 y Ft(horizontal-scroll-mode)1110
+4902 y Fu(This)k(v)-5 b(ariable)37 b(can)f(b)s(e)f(set)h(to)h(either)f
 (`)p Ft(on)p Fu(')g(or)g(`)p Ft(off)p Fu('.)57 b(Setting)36
-b(it)g(to)h(`)p Ft(on)p Fu(')1110 4641 y(means)26 b(that)h(the)f(text)h
+b(it)g(to)h(`)p Ft(on)p Fu(')1110 5011 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 4751 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 4861
+(tally)1110 5121 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 5230
 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 4970 y(v)-5
-b(ariable)31 b(is)g(set)f(to)i(`)p Ft(off)p Fu('.)630
-5121 y Ft(input-meta)1110 5230 y Fu(If)f(set)g(to)h(`)p
-Ft(on)p Fu(',)g(Readline)g(will)f(enable)h(eigh)m(t-bit)h(input)d(\(it)
-i(will)f(not)h(clear)1110 5340 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)p
-eop end
+(line.)39 b(By)27 b(default,)g(this)1110 5340 y(v)-5
+b(ariable)31 b(is)g(set)f(to)i(`)p Ft(off)p Fu('.)p eop
+end
 %%Page: 113 119
 TeXDict begin 113 118 bop 150 -116 a Fu(Chapter)30 b(8:)41
-b(Command)29 b(Line)i(Editing)2062 b(113)1110 299 y(terminal)44
-b(claims)h(it)f(can)g(supp)s(ort.)79 b(The)44 b(default)g(v)-5
-b(alue)44 b(is)g(`)p Ft(off)p Fu(',)j(but)1110 408 y(Readline)24
+b(Command)29 b(Line)i(Editing)2062 b(113)630 299 y Ft(input-meta)1110
+408 y Fu(If)31 b(set)g(to)h(`)p Ft(on)p Fu(',)g(Readline)g(will)f
+(enable)h(eigh)m(t-bit)h(input)d(\(it)i(will)f(not)h(clear)1110
+518 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 628 y(terminal)k(claims)h
+(it)f(can)g(supp)s(ort.)79 b(The)44 b(default)g(v)-5
+b(alue)44 b(is)g(`)p Ft(off)p Fu(',)j(but)1110 737 y(Readline)24
 b(will)h(set)f(it)g(to)h(`)p Ft(on)p Fu(')e(if)h(the)g(lo)s(cale)i(con)
-m(tains)f(eigh)m(t-bit)g(c)m(haracters.)1110 518 y(The)30
+m(tains)f(eigh)m(t-bit)g(c)m(haracters.)1110 847 y(The)30
 b(name)g Ft(meta-flag)e Fu(is)j(a)f(synon)m(ym)g(for)g(this)h(v)-5
-b(ariable.)630 675 y Ft(isearch-terminators)1110 784
+b(ariable.)630 1029 y Ft(isearch-terminators)1110 1139
 y Fu(The)51 b(string)h(of)g(c)m(haracters)h(that)f(should)e(terminate)j
-(an)f(incremen)m(tal)1110 894 y(searc)m(h)25 b(without)g(subsequen)m
+(an)f(incremen)m(tal)1110 1249 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
-1003 y(\(see)38 b(Section)g(8.2.5)h([Searc)m(hing],)h(page)e(108\).)62
-b(If)37 b(this)g(v)-5 b(ariable)38 b(has)f(not)1110 1113
+1358 y(\(see)38 b(Section)g(8.2.5)h([Searc)m(hing],)h(page)e(108\).)62
+b(If)37 b(this)g(v)-5 b(ariable)38 b(has)f(not)1110 1468
 y(b)s(een)e(giv)m(en)h(a)g(v)-5 b(alue,)37 b(the)f(c)m(haracters)h
 Ft(ESC)d Fu(and)h Fj(C-J)g Fu(will)h(terminate)g(an)1110
-1223 y(incremen)m(tal)c(searc)m(h.)630 1379 y Ft(keymap)192
+1577 y(incremen)m(tal)c(searc)m(h.)630 1760 y Ft(keymap)192
 b Fu(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 1489 y(mands.)81
+(for)g(k)m(ey)g(binding)f(com-)1110 1870 y(mands.)81
 b(Acceptable)47 b Ft(keymap)42 b Fu(names)i(are)h Ft(emacs)p
-Fu(,)i Ft(emacs-standard)p Fu(,)1110 1598 y Ft(emacs-meta)p
+Fu(,)i Ft(emacs-standard)p Fu(,)1110 1979 y Ft(emacs-meta)p
 Fu(,)99 b Ft(emacs-ctlx)p Fu(,)f Ft(vi)p Fu(,)j Ft(vi-move)p
-Fu(,)f Ft(vi-command)p Fu(,)f(and)1110 1708 y Ft(vi-insert)p
+Fu(,)f Ft(vi-command)p Fu(,)f(and)1110 2089 y Ft(vi-insert)p
 Fu(.)81 b Ft(vi)44 b Fu(is)h(equiv)-5 b(alen)m(t)46 b(to)g
 Ft(vi-command)c Fu(\()p Ft(vi-move)h Fu(is)i(also)h(a)1110
-1817 y(synon)m(ym\);)g Ft(emacs)39 b Fu(is)i(equiv)-5
+2198 y(synon)m(ym\);)g Ft(emacs)39 b Fu(is)i(equiv)-5
 b(alen)m(t)42 b(to)g Ft(emacs-standard)p Fu(.)68 b(The)40
-b(default)1110 1927 y(v)-5 b(alue)52 b(is)f Ft(emacs)p
+b(default)1110 2308 y(v)-5 b(alue)52 b(is)f Ft(emacs)p
 Fu(.)103 b(The)51 b(v)-5 b(alue)52 b(of)f(the)h Ft(editing-mode)c
-Fu(v)-5 b(ariable)52 b(also)1110 2037 y(a\013ects)32
-b(the)e(default)h(k)m(eymap.)630 2193 y Ft(keyseq-timeout)1110
-2303 y Fu(Sp)s(eci\014es)25 b(the)g(duration)g(Readline)h(will)g(w)m
-(ait)g(for)g(a)f(c)m(haracter)i(when)e(read-)1110 2412
+Fu(v)-5 b(ariable)52 b(also)1110 2418 y(a\013ects)32
+b(the)e(default)h(k)m(eymap.)630 2600 y Ft(keyseq-timeout)1110
+2710 y Fu(Sp)s(eci\014es)25 b(the)g(duration)g(Readline)h(will)g(w)m
+(ait)g(for)g(a)f(c)m(haracter)i(when)e(read-)1110 2819
 y(ing)30 b(an)g(am)m(biguous)g(k)m(ey)h(sequence)f(\(one)g(that)h(can)f
-(form)g(a)g(complete)h(k)m(ey)1110 2522 y(sequence)j(using)e(the)i
+(form)g(a)g(complete)h(k)m(ey)1110 2929 y(sequence)j(using)e(the)i
 (input)e(read)h(so)g(far,)h(or)g(can)f(tak)m(e)i(additional)f(input)
-1110 2632 y(to)g(complete)g(a)f(longer)h(k)m(ey)f(sequence\).)49
+1110 3039 y(to)g(complete)g(a)f(longer)h(k)m(ey)f(sequence\).)49
 b(If)33 b(no)f(input)g(is)h(receiv)m(ed)h(within)1110
-2741 y(the)43 b(timeout,)48 b(Readline)43 b(will)g(use)g(the)g(shorter)
-g(but)f(complete)j(k)m(ey)e(se-)1110 2851 y(quence.)c(Readline)26
+3148 y(the)43 b(timeout,)48 b(Readline)43 b(will)g(use)g(the)g(shorter)
+g(but)f(complete)j(k)m(ey)e(se-)1110 3258 y(quence.)c(Readline)26
 b(uses)f(this)h(v)-5 b(alue)26 b(to)g(determine)g(whether)f(or)g(not)h
-(input)1110 2960 y(is)31 b(a)m(v)-5 b(ailable)33 b(on)d(the)h(curren)m
+(input)1110 3367 y(is)31 b(a)m(v)-5 b(ailable)33 b(on)d(the)h(curren)m
 (t)f(input)g(source)h(\()p Ft(rl_instream)d Fu(b)m(y)i(default\).)1110
-3070 y(The)25 b(v)-5 b(alue)26 b(is)f(sp)s(eci\014ed)f(in)h
+3477 y(The)25 b(v)-5 b(alue)26 b(is)f(sp)s(eci\014ed)f(in)h
 (milliseconds,)j(so)d(a)h(v)-5 b(alue)26 b(of)f(1000)i(means)e(that)
-1110 3180 y(Readline)e(will)g(w)m(ait)g(one)g(second)f(for)g
+1110 3587 y(Readline)e(will)g(w)m(ait)g(one)g(second)f(for)g
 (additional)i(input.)37 b(If)22 b(this)g(v)-5 b(ariable)23
-b(is)1110 3289 y(set)28 b(to)h(a)f(v)-5 b(alue)29 b(less)f(than)g(or)f
+b(is)1110 3696 y(set)28 b(to)h(a)f(v)-5 b(alue)29 b(less)f(than)g(or)f
 (equal)i(to)f(zero,)i(or)e(to)g(a)h(non-n)m(umeric)e(v)-5
-b(alue,)1110 3399 y(Readline)30 b(will)f(w)m(ait)i(un)m(til)e(another)h
+b(alue,)1110 3806 y(Readline)30 b(will)f(w)m(ait)i(un)m(til)e(another)h
 (k)m(ey)g(is)f(pressed)g(to)h(decide)f(whic)m(h)g(k)m(ey)1110
-3508 y(sequence)i(to)g(complete.)42 b(The)30 b(default)g(v)-5
-b(alue)31 b(is)g Ft(500)p Fu(.)630 3665 y Ft(mark-directories)1110
-3774 y Fu(If)38 b(set)g(to)h(`)p Ft(on)p Fu(',)i(completed)e(directory)
+3915 y(sequence)i(to)g(complete.)42 b(The)30 b(default)g(v)-5
+b(alue)31 b(is)g Ft(500)p Fu(.)630 4098 y Ft(mark-directories)1110
+4208 y Fu(If)38 b(set)g(to)h(`)p Ft(on)p Fu(',)i(completed)e(directory)
 f(names)g(ha)m(v)m(e)i(a)e(slash)g(app)s(ended.)1110
-3884 y(The)30 b(default)g(is)h(`)p Ft(on)p Fu('.)630
-4041 y Ft(mark-modified-lines)1110 4150 y Fu(This)k(v)-5
+4317 y(The)30 b(default)g(is)h(`)p Ft(on)p Fu('.)630
+4500 y Ft(mark-modified-lines)1110 4609 y Fu(This)k(v)-5
 b(ariable,)38 b(when)d(set)h(to)h(`)p Ft(on)p Fu(',)g(causes)g
-(Readline)f(to)h(displa)m(y)f(an)f(as-)1110 4260 y(terisk)f(\(`)p
+(Readline)f(to)h(displa)m(y)f(an)f(as-)1110 4719 y(terisk)f(\(`)p
 Ft(*)p Fu('\))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 4369 y(This)d(v)-5
+(ha)m(v)m(e)i(b)s(een)e(mo)s(di\014ed.)1110 4829 y(This)d(v)-5
 b(ariable)31 b(is)f(`)p Ft(off)p Fu(')g(b)m(y)g(default.)630
-4526 y Ft(mark-symlinked-directori)o(es)1110 4635 y Fu(If)59
+5011 y Ft(mark-symlinked-directori)o(es)1110 5121 y Fu(If)59
 b(set)h(to)g(`)p Ft(on)p Fu(',)67 b(completed)60 b(names)f(whic)m(h)g
-(are)h(sym)m(b)s(olic)g(links)f(to)1110 4745 y(directories)71
+(are)h(sym)m(b)s(olic)g(links)f(to)1110 5230 y(directories)71
 b(ha)m(v)m(e)f(a)g(slash)f(app)s(ended)f(\(sub)5 b(ject)70
-b(to)g(the)g(v)-5 b(alue)70 b(of)1110 4855 y Ft(mark-directories)p
-Fu(\).)37 b(The)30 b(default)g(is)g(`)p Ft(off)p Fu('.)630
-5011 y Ft(match-hidden-files)1110 5121 y Fu(This)21 b(v)-5
-b(ariable,)25 b(when)d(set)g(to)h(`)p Ft(on)p Fu(',)h(causes)f
-(Readline)g(to)g(matc)m(h)g(\014les)f(whose)1110 5230
-y(names)44 b(b)s(egin)g(with)g(a)g(`)p Ft(.)p Fu(')g(\(hidden)f
-(\014les\))i(when)e(p)s(erforming)g(\014lename)1110 5340
-y(completion.)75 b(If)41 b(set)g(to)h(`)p Ft(off)p Fu(',)i(the)e
-(leading)g(`)p Ft(.)p Fu(')f(m)m(ust)g(b)s(e)g(supplied)f(b)m(y)p
+b(to)g(the)g(v)-5 b(alue)70 b(of)1110 5340 y Ft(mark-directories)p
+Fu(\).)37 b(The)30 b(default)g(is)g(`)p Ft(off)p Fu('.)p
 eop end
 %%Page: 114 120
 TeXDict begin 114 119 bop 150 -116 a Fu(Chapter)30 b(8:)41
-b(Command)29 b(Line)i(Editing)2062 b(114)1110 299 y(the)34
-b(user)g(in)g(the)g(\014lename)g(to)h(b)s(e)f(completed.)53
-b(This)33 b(v)-5 b(ariable)35 b(is)f(`)p Ft(on)p Fu(')g(b)m(y)1110
-408 y(default.)630 555 y Ft(menu-complete-display-pr)o(efix)1110
-664 y Fu(If)f(set)h(to)g(`)p Ft(on)p Fu(',)h(men)m(u)e(completion)i
-(displa)m(ys)e(the)h(common)g(pre\014x)e(of)i(the)1110
-774 y(list)k(of)g(p)s(ossible)f(completions)i(\(whic)m(h)e(ma)m(y)h(b)s
-(e)f(empt)m(y\))i(b)s(efore)e(cycling)1110 883 y(through)30
-b(the)g(list.)42 b(The)29 b(default)i(is)f(`)p Ft(off)p
-Fu('.)630 1029 y Ft(output-meta)1110 1139 y Fu(If)35
-b(set)h(to)g(`)p Ft(on)p Fu(',)h(Readline)f(will)g(displa)m(y)f(c)m
-(haracters)i(with)e(the)h(eigh)m(th)g(bit)1110 1249 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 1358 y(default)26 b(is)f(`)p Ft(off)p Fu(',)i(but)e
-(Readline)h(will)g(set)g(it)g(to)h(`)p Ft(on)p Fu(')e(if)h(the)f(lo)s
-(cale)j(con)m(tains)1110 1468 y(eigh)m(t-bit)k(c)m(haracters.)630
-1614 y Ft(page-completions)1110 1724 y Fu(If)h(set)i(to)f(`)p
-Ft(on)p Fu(',)h(Readline)g(uses)e(an)h(in)m(ternal)h
-Ft(more)p Fu(-lik)m(e)f(pager)g(to)h(displa)m(y)1110
-1833 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 Ft(on)p Fu(')1110
-1943 y(b)m(y)e(default.)630 2089 y Ft(print-completions-horizo)o(ntal)o
-(ly)1110 2198 y Fu(If)23 b(set)i(to)g(`)p Ft(on)p Fu(',)g(Readline)g
-(will)f(displa)m(y)g(completions)h(with)f(matc)m(hes)h(sorted)1110
-2308 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 2418 y(The)30 b(default)g(is)h(`)p
-Ft(off)p Fu('.)630 2564 y Ft(revert-all-at-newline)1110
-2673 y Fu(If)e(set)h(to)g(`)p Ft(on)p Fu(',)g(Readline)g(will)g(undo)f
-(all)h(c)m(hanges)h(to)f(history)g(lines)f(b)s(efore)1110
-2783 y(returning)f(when)f Ft(accept-line)f Fu(is)j(executed.)41
-b(By)29 b(default,)g(history)g(lines)1110 2892 y(ma)m(y)42
+b(Command)29 b(Line)i(Editing)2062 b(114)630 299 y Ft
+(match-hidden-files)1110 408 y Fu(This)21 b(v)-5 b(ariable,)25
+b(when)d(set)g(to)h(`)p Ft(on)p Fu(',)h(causes)f(Readline)g(to)g(matc)m
+(h)g(\014les)f(whose)1110 518 y(names)44 b(b)s(egin)g(with)g(a)g(`)p
+Ft(.)p Fu(')g(\(hidden)f(\014les\))i(when)e(p)s(erforming)g(\014lename)
+1110 628 y(completion.)75 b(If)41 b(set)g(to)h(`)p Ft(off)p
+Fu(',)i(the)e(leading)g(`)p Ft(.)p Fu(')f(m)m(ust)g(b)s(e)g(supplied)f
+(b)m(y)1110 737 y(the)34 b(user)g(in)g(the)g(\014lename)g(to)h(b)s(e)f
+(completed.)53 b(This)33 b(v)-5 b(ariable)35 b(is)f(`)p
+Ft(on)p Fu(')g(b)m(y)1110 847 y(default.)630 1011 y Ft
+(menu-complete-display-pr)o(efix)1110 1121 y Fu(If)f(set)h(to)g(`)p
+Ft(on)p Fu(',)h(men)m(u)e(completion)i(displa)m(ys)e(the)h(common)g
+(pre\014x)e(of)i(the)1110 1230 y(list)k(of)g(p)s(ossible)f(completions)
+i(\(whic)m(h)e(ma)m(y)h(b)s(e)f(empt)m(y\))i(b)s(efore)e(cycling)1110
+1340 y(through)30 b(the)g(list.)42 b(The)29 b(default)i(is)f(`)p
+Ft(off)p Fu('.)630 1504 y Ft(output-meta)1110 1614 y
+Fu(If)35 b(set)h(to)g(`)p Ft(on)p Fu(',)h(Readline)f(will)g(displa)m(y)
+f(c)m(haracters)i(with)e(the)h(eigh)m(th)g(bit)1110 1724
+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 1833 y(default)26 b(is)f(`)p
+Ft(off)p Fu(',)i(but)e(Readline)h(will)g(set)g(it)g(to)h(`)p
+Ft(on)p Fu(')e(if)h(the)f(lo)s(cale)j(con)m(tains)1110
+1943 y(eigh)m(t-bit)k(c)m(haracters.)630 2107 y Ft(page-completions)
+1110 2217 y Fu(If)h(set)i(to)f(`)p Ft(on)p Fu(',)h(Readline)g(uses)e
+(an)h(in)m(ternal)h Ft(more)p Fu(-lik)m(e)f(pager)g(to)h(displa)m(y)
+1110 2326 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 Ft(on)p
+Fu(')1110 2436 y(b)m(y)e(default.)630 2600 y Ft
+(print-completions-horizo)o(ntal)o(ly)1110 2710 y Fu(If)23
+b(set)i(to)g(`)p Ft(on)p Fu(',)g(Readline)g(will)f(displa)m(y)g
+(completions)h(with)f(matc)m(hes)h(sorted)1110 2819 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 2929 y(The)30 b(default)g(is)h(`)p Ft(off)p
+Fu('.)630 3093 y Ft(revert-all-at-newline)1110 3203 y
+Fu(If)e(set)h(to)g(`)p Ft(on)p Fu(',)g(Readline)g(will)g(undo)f(all)h
+(c)m(hanges)h(to)f(history)g(lines)f(b)s(efore)1110 3313
+y(returning)f(when)f Ft(accept-line)f Fu(is)j(executed.)41
+b(By)29 b(default,)g(history)g(lines)1110 3422 y(ma)m(y)42
 b(b)s(e)g(mo)s(di\014ed)e(and)h(retain)i(individual)e(undo)g(lists)h
-(across)g(calls)h(to)1110 3002 y Ft(readline)p Fu(.)38
-b(The)30 b(default)h(is)f(`)p Ft(off)p Fu('.)630 3148
-y Ft(show-all-if-ambiguous)1110 3258 y Fu(This)f(alters)i(the)f
+(across)g(calls)h(to)1110 3532 y Ft(readline)p Fu(.)38
+b(The)30 b(default)h(is)f(`)p Ft(off)p Fu('.)630 3696
+y Ft(show-all-if-ambiguous)1110 3806 y Fu(This)f(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 3367 y(to)f(`)p Ft(on)p Fu(',)g(w)m(ords)f(whic)m(h)
+b(If)29 b(set)1110 3915 y(to)f(`)p Ft(on)p Fu(',)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 3477 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 3587 y(The)30
+1110 4025 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 4134 y(The)30
 b(default)g(v)-5 b(alue)31 b(is)g(`)p Ft(off)p Fu('.)630
-3733 y Ft(show-all-if-unmodified)1110 3842 y Fu(This)38
+4299 y Ft(show-all-if-unmodified)1110 4408 y Fu(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 3952 y(fashion)25 b(similar)h(to)g
+(functions)e(in)h(a)1110 4518 y(fashion)25 b(similar)h(to)g
 Fr(sho)m(w-all-if-am)m(biguous)p Fu(.)41 b(If)25 b(set)h(to)h(`)p
-Ft(on)p Fu(',)f(w)m(ords)f(whic)m(h)1110 4061 y(ha)m(v)m(e)32
+Ft(on)p Fu(',)f(w)m(ords)f(whic)m(h)1110 4628 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 4171 y(tial)43 b(completion)h(\(the)f(p)s(ossible)
-f(completions)h(don't)f(share)g(a)h(common)1110 4281
+(ossible)f(par-)1110 4737 y(tial)43 b(completion)h(\(the)f(p)s(ossible)
+f(completions)h(don't)f(share)g(a)h(common)1110 4847
 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 4390 y(ing)g(the)f(b)s(ell.)41
+(immediately)i(instead)e(of)h(ring-)1110 4956 y(ing)g(the)f(b)s(ell.)41
 b(The)30 b(default)g(v)-5 b(alue)31 b(is)f(`)p Ft(off)p
-Fu('.)630 4536 y Ft(show-mode-in-prompt)1110 4646 y Fu(If)24
+Fu('.)630 5121 y Ft(show-mode-in-prompt)1110 5230 y Fu(If)24
 b(set)h(to)g(`)p Ft(on)p Fu(',)g(add)f(a)h(string)f(to)h(the)f(b)s
-(eginning)g(of)g(the)h(prompt)e(indicating)1110 4756
+(eginning)g(of)g(the)h(prompt)e(indicating)1110 5340
 y(the)33 b(editing)h(mo)s(de:)46 b(emacs,)35 b(vi)e(command,)h(or)f(vi)
-h(insertion.)49 b(The)32 b(mo)s(de)1110 4865 y(strings)45
-b(are)h(user-settable)g(\(e.g.,)51 b Fr(emacs-mo)s(de-string)8
-b Fu(\).)87 b(The)45 b(default)1110 4975 y(v)-5 b(alue)31
-b(is)f(`)p Ft(off)p Fu('.)630 5121 y Ft(skip-completed-text)1110
-5230 y Fu(If)i(set)i(to)f(`)p Ft(on)p Fu(',)h(this)f(alters)g(the)g
-(default)g(completion)h(b)s(eha)m(vior)f(when)f(in-)1110
-5340 y(serting)d(a)h(single)g(matc)m(h)f(in)m(to)h(the)g(line.)40
-b(It's)30 b(only)f(activ)m(e)i(when)d(p)s(erform-)p eop
-end
+h(insertion.)49 b(The)32 b(mo)s(de)p eop end
 %%Page: 115 121
 TeXDict begin 115 120 bop 150 -116 a Fu(Chapter)30 b(8:)41
-b(Command)29 b(Line)i(Editing)2062 b(115)1110 299 y(ing)35
-b(completion)h(in)e(the)h(middle)f(of)h(a)f(w)m(ord.)53
-b(If)35 b(enabled,)g(readline)g(do)s(es)1110 408 y(not)41
+b(Command)29 b(Line)i(Editing)2062 b(115)1110 299 y(strings)45
+b(are)h(user-settable)g(\(e.g.,)51 b Fr(emacs-mo)s(de-string)8
+b Fu(\).)87 b(The)45 b(default)1110 408 y(v)-5 b(alue)31
+b(is)f(`)p Ft(off)p Fu('.)630 558 y Ft(skip-completed-text)1110
+667 y Fu(If)i(set)i(to)f(`)p Ft(on)p Fu(',)h(this)f(alters)g(the)g
+(default)g(completion)h(b)s(eha)m(vior)f(when)f(in-)1110
+777 y(serting)d(a)h(single)g(matc)m(h)f(in)m(to)h(the)g(line.)40
+b(It's)30 b(only)f(activ)m(e)i(when)d(p)s(erform-)1110
+887 y(ing)35 b(completion)h(in)e(the)h(middle)f(of)h(a)f(w)m(ord.)53
+b(If)35 b(enabled,)g(readline)g(do)s(es)1110 996 y(not)41
 b(insert)f(c)m(haracters)i(from)e(the)h(completion)h(that)f(matc)m(h)g
-(c)m(haracters)1110 518 y(after)c(p)s(oin)m(t)g(in)g(the)g(w)m(ord)f(b)
-s(eing)g(completed,)k(so)d(p)s(ortions)f(of)h(the)g(w)m(ord)1110
-628 y(follo)m(wing)c(the)f(cursor)f(are)h(not)g(duplicated.)45
+(c)m(haracters)1110 1106 y(after)c(p)s(oin)m(t)g(in)g(the)g(w)m(ord)f
+(b)s(eing)g(completed,)k(so)d(p)s(ortions)f(of)h(the)g(w)m(ord)1110
+1215 y(follo)m(wing)c(the)f(cursor)f(are)h(not)g(duplicated.)45
 b(F)-8 b(or)32 b(instance,)h(if)f(this)f(is)h(en-)1110
-737 y(abled,)43 b(attempting)f(completion)g(when)d(the)i(cursor)f(is)g
-(after)h(the)g(`)p Ft(e)p Fu(')f(in)1110 847 y(`)p Ft(Makefile)p
+1325 y(abled,)43 b(attempting)f(completion)g(when)d(the)i(cursor)f(is)g
+(after)h(the)g(`)p Ft(e)p Fu(')f(in)1110 1435 y(`)p Ft(Makefile)p
 Fu(')c(will)i(result)f(in)g(`)p Ft(Makefile)p Fu(')f(rather)h(than)h(`)
-p Ft(Makefilefile)p Fu(',)1110 956 y(assuming)d(there)g(is)h(a)f
+p Ft(Makefilefile)p Fu(',)1110 1544 y(assuming)d(there)g(is)h(a)f
 (single)h(p)s(ossible)f(completion.)56 b(The)35 b(default)g(v)-5
-b(alue)1110 1066 y(is)30 b(`)p Ft(off)p Fu('.)630 1215
-y Ft(vi-cmd-mode-string)1110 1325 y Fu(If)j(the)h Fr(sho)m(w-mo)s
+b(alue)1110 1654 y(is)30 b(`)p Ft(off)p Fu('.)630 1803
+y Ft(vi-cmd-mode-string)1110 1913 y Fu(If)j(the)h Fr(sho)m(w-mo)s
 (de-in-prompt)h Fu(v)-5 b(ariable)35 b(is)e(enabled,)i(this)f(string)f
-(is)h(dis-)1110 1435 y(pla)m(y)m(ed)24 b(immediately)g(b)s(efore)f(the)
+(is)h(dis-)1110 2022 y(pla)m(y)m(ed)24 b(immediately)g(b)s(efore)f(the)
 g(last)h(line)f(of)h(the)f(primary)f(prompt)g(when)1110
-1544 y(vi)32 b(editing)h(mo)s(de)f(is)g(activ)m(e)j(and)c(in)h(command)
+2132 y(vi)32 b(editing)h(mo)s(de)f(is)g(activ)m(e)j(and)c(in)h(command)
 g(mo)s(de.)46 b(The)31 b(v)-5 b(alue)33 b(is)f(ex-)1110
-1654 y(panded)26 b(lik)m(e)i(a)f(k)m(ey)h(binding,)e(so)i(the)f
+2242 y(panded)26 b(lik)m(e)i(a)f(k)m(ey)h(binding,)e(so)i(the)f
 (standard)f(set)h(of)g(meta-)h(and)e(con)m(trol)1110
-1763 y(pre\014xes)34 b(and)g(bac)m(kslash)i(escap)s(e)g(sequences)f(is)
+2351 y(pre\014xes)34 b(and)g(bac)m(kslash)i(escap)s(e)g(sequences)f(is)
 g(a)m(v)-5 b(ailable.)57 b(Use)35 b(the)g(`)p Ft(\\1)p
-Fu(')1110 1873 y(and)23 b(`)p Ft(\\2)p Fu(')h(escap)s(es)h(to)f(b)s
+Fu(')1110 2461 y(and)23 b(`)p Ft(\\2)p Fu(')h(escap)s(es)h(to)f(b)s
 (egin)g(and)f(end)g(sequences)i(of)f(non-prin)m(ting)f(c)m(harac-)1110
-1983 y(ters,)31 b(whic)m(h)g(can)g(b)s(e)f(used)g(to)h(em)m(b)s(ed)f(a)
-h(terminal)h(con)m(trol)g(sequence)f(in)m(to)1110 2092
+2570 y(ters,)31 b(whic)m(h)g(can)g(b)s(e)f(used)g(to)h(em)m(b)s(ed)f(a)
+h(terminal)h(con)m(trol)g(sequence)f(in)m(to)1110 2680
 y(the)g(mo)s(de)f(string.)40 b(The)30 b(default)h(is)f(`)p
-Ft(\(cmd\))p Fu('.)630 2242 y Ft(vi-ins-mode-string)1110
-2351 y Fu(If)j(the)h Fr(sho)m(w-mo)s(de-in-prompt)h Fu(v)-5
+Ft(\(cmd\))p Fu('.)630 2829 y Ft(vi-ins-mode-string)1110
+2939 y Fu(If)j(the)h Fr(sho)m(w-mo)s(de-in-prompt)h Fu(v)-5
 b(ariable)35 b(is)e(enabled,)i(this)f(string)f(is)h(dis-)1110
-2461 y(pla)m(y)m(ed)24 b(immediately)g(b)s(efore)f(the)g(last)h(line)f
-(of)h(the)f(primary)f(prompt)g(when)1110 2570 y(vi)35
+3049 y(pla)m(y)m(ed)24 b(immediately)g(b)s(efore)f(the)g(last)h(line)f
+(of)h(the)f(primary)f(prompt)g(when)1110 3158 y(vi)35
 b(editing)h(mo)s(de)e(is)i(activ)m(e)h(and)d(in)h(insertion)g(mo)s(de.)
-54 b(The)35 b(v)-5 b(alue)35 b(is)g(ex-)1110 2680 y(panded)26
+54 b(The)35 b(v)-5 b(alue)35 b(is)g(ex-)1110 3268 y(panded)26
 b(lik)m(e)i(a)f(k)m(ey)h(binding,)e(so)i(the)f(standard)f(set)h(of)g
-(meta-)h(and)e(con)m(trol)1110 2790 y(pre\014xes)34 b(and)g(bac)m
+(meta-)h(and)e(con)m(trol)1110 3377 y(pre\014xes)34 b(and)g(bac)m
 (kslash)i(escap)s(e)g(sequences)f(is)g(a)m(v)-5 b(ailable.)57
-b(Use)35 b(the)g(`)p Ft(\\1)p Fu(')1110 2899 y(and)23
+b(Use)35 b(the)g(`)p Ft(\\1)p Fu(')1110 3487 y(and)23
 b(`)p Ft(\\2)p Fu(')h(escap)s(es)h(to)f(b)s(egin)g(and)f(end)g
-(sequences)i(of)f(non-prin)m(ting)f(c)m(harac-)1110 3009
+(sequences)i(of)f(non-prin)m(ting)f(c)m(harac-)1110 3597
 y(ters,)31 b(whic)m(h)g(can)g(b)s(e)f(used)g(to)h(em)m(b)s(ed)f(a)h
-(terminal)h(con)m(trol)g(sequence)f(in)m(to)1110 3118
+(terminal)h(con)m(trol)g(sequence)f(in)m(to)1110 3706
 y(the)g(mo)s(de)f(string.)40 b(The)30 b(default)h(is)f(`)p
-Ft(\(ins\))p Fu('.)630 3268 y Ft(visible-stats)1110 3377
+Ft(\(ins\))p Fu('.)630 3856 y Ft(visible-stats)1110 3965
 y Fu(If)h(set)i(to)f(`)p Ft(on)p Fu(',)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
-3487 y(\014lename)e(when)e(listing)i(p)s(ossible)f(completions.)42
-b(The)30 b(default)g(is)h(`)p Ft(off)p Fu('.)150 3636
-y(Key)f(Bindings)630 3746 y(The)41 b(syn)m(tax)i(for)f(con)m(trolling)h
+4075 y(\014lename)e(when)e(listing)i(p)s(ossible)f(completions.)42
+b(The)30 b(default)g(is)h(`)p Ft(off)p Fu('.)150 4224
+y(Key)f(Bindings)630 4334 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 3856 y(need)27 b(to)i(\014nd)d(the)i(name)f(of)
+b(First)43 b(y)m(ou)630 4443 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 3965 y(sections)37 b(con)m(tain)g(tables)g
+b(The)27 b(follo)m(wing)630 4553 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 4075 y(and)30 b(a)h(short)f(description)g(of)h(what)f
-(the)g(command)h(do)s(es.)630 4204 y(Once)36 b(y)m(ou)g(kno)m(w)g(the)g
+m(y)-8 b(,)630 4663 y(and)30 b(a)h(short)f(description)g(of)h(what)f
+(the)g(command)h(do)s(es.)630 4792 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 4314 y(\014le)e(the)g(name)f(of)h(the)g(k)m(ey)g(y)m
+(the)g(init)630 4902 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 4423 y(the)f(name)h(of)f(the)g(command.)46 b(There)32
+630 5011 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 4533 y(the)41 b(colon)h({)f(that)g(will)g(b)s(e)g(in)m
+(and)630 5121 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 4643 y(the)35 b(k)m(ey)g(can)g(b)s(e)f
+b(The)40 b(name)h(of)630 5230 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 4752 y(comfortable.)630
-4882 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
-4991 y(that)31 b(is)f(inserted)h(when)e(the)i(k)m(ey)g(is)f(pressed)g
-(\(a)h Fr(macro)5 b Fu(\).)630 5121 y(The)42 b Ft(bind)30
-b(-p)42 b Fu(command)h(displa)m(ys)g(Readline)g(function)g(names)g(and)
-f(bindings)g(in)h(a)630 5230 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 5340 y(Builtins],)31 b(page)g(50.)p
+(what)h(y)m(ou)g(\014nd)e(most)630 5340 y(comfortable.)p
 eop end
 %%Page: 116 122
 TeXDict begin 116 121 bop 150 -116 a Fu(Chapter)30 b(8:)41
-b(Command)29 b(Line)i(Editing)2062 b(116)630 299 y Fr(k)m(eyname)5
-b Fu(:)42 b Fr(function-name)35 b Fu(or)c Fr(macro)1110
-408 y(k)m(eyname)k Fu(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
-543 y Ft(Control-u:)45 b(universal-argument)1350 652
-y(Meta-Rubout:)f(backward-kill-word)1350 762 y(Control-o:)h(">)i
-(output")1110 896 y Fu(In)94 b(the)g(ab)s(o)m(v)m(e)i(example,)111
-b Fj(C-u)94 b Fu(is)g(b)s(ound)f(to)i(the)f(function)1110
-1006 y Ft(universal-argument)p Fu(,)124 b Fj(M-DEL)107
-b Fu(is)i(b)s(ound)e(to)j(the)f(function)1110 1115 y
-Ft(backward-kill-word)p Fu(,)75 b(and)69 b Fj(C-o)g Fu(is)h(b)s(ound)e
-(to)j(run)d(the)i(macro)1110 1225 y(expressed)45 b(on)h(the)g(righ)m(t)
-g(hand)e(side)i(\(that)h(is,)i(to)e(insert)e(the)h(text)h(`)p
-Ft(>)1110 1335 y(output)p Fu(')29 b(in)m(to)i(the)g(line\).)1110
-1469 y(A)62 b(n)m(um)m(b)s(er)e(of)i(sym)m(b)s(olic)h(c)m(haracter)g
-(names)f(are)g(recognized)h(while)1110 1579 y(pro)s(cessing)40
-b(this)f(k)m(ey)i(binding)e(syn)m(tax:)60 b Fr(DEL)p
-Fu(,)42 b Fr(ESC)p Fu(,)g Fr(ESCAPE)p Fu(,)f Fr(LFD)p
-Fu(,)1110 1688 y Fr(NEWLINE)p Fu(,)31 b Fr(RET)p Fu(,)f
-Fr(RETURN)p Fu(,)g Fr(R)m(UBOUT)p Fu(,)h Fr(SP)-8 b(A)m(CE)p
-Fu(,)31 b Fr(SPC)p Fu(,)e(and)h Fr(T)-8 b(AB)p Fu(.)630
-1847 y Ft(")p Fr(k)m(eyseq)r Ft(")p Fu(:)41 b Fr(function-name)36
-b Fu(or)30 b Fr(macro)1110 1957 y(k)m(eyseq)k Fu(di\013ers)d(from)f
-Fr(k)m(eyname)37 b Fu(ab)s(o)m(v)m(e)32 b(in)f(that)h(strings)f
-(denoting)g(an)g(en-)1110 2066 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 2176 y(double)29 b(quotes.)41 b(Some)29 b Fm(gnu)h
-Fu(Emacs)f(st)m(yle)i(k)m(ey)f(escap)s(es)g(can)g(b)s(e)f(used,)g(as)
-1110 2286 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 2395 y(recognized.)1350
-2530 y Ft("\\C-u":)46 b(universal-argument)1350 2639
-y("\\C-x\\C-r":)f(re-read-init-file)1350 2749 y("\\e[11~":)g("Function)
-h(Key)g(1")1110 2883 y Fu(In)64 b(the)g(ab)s(o)m(v)m(e)i(example,)74
+b(Command)29 b(Line)i(Editing)2062 b(116)630 299 y(In)35
+b(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 408 y(that)31
+b(is)f(inserted)h(when)e(the)i(k)m(ey)g(is)f(pressed)g(\(a)h
+Fr(macro)5 b Fu(\).)630 538 y(The)42 b Ft(bind)30 b(-p)42
+b Fu(command)h(displa)m(ys)g(Readline)g(function)g(names)g(and)f
+(bindings)g(in)h(a)630 647 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 757 y(Builtins],)31 b(page)g(50.)630
+906 y Fr(k)m(eyname)5 b Fu(:)42 b Fr(function-name)35
+b Fu(or)c Fr(macro)1110 1015 y(k)m(eyname)k Fu(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 1144 y Ft(Control-u:)45
+b(universal-argument)1350 1254 y(Meta-Rubout:)f(backward-kill-word)1350
+1363 y(Control-o:)h(">)i(output")1110 1493 y Fu(In)94
+b(the)g(example)h(ab)s(o)m(v)m(e,)112 b Fj(C-u)94 b Fu(is)g(b)s(ound)f
+(to)i(the)f(function)1110 1602 y Ft(universal-argument)p
+Fu(,)124 b Fj(M-DEL)107 b Fu(is)i(b)s(ound)e(to)j(the)f(function)1110
+1712 y Ft(backward-kill-word)p Fu(,)75 b(and)69 b Fj(C-o)g
+Fu(is)h(b)s(ound)e(to)j(run)d(the)i(macro)1110 1821 y(expressed)45
+b(on)h(the)g(righ)m(t)g(hand)e(side)i(\(that)h(is,)i(to)e(insert)e(the)
+h(text)h(`)p Ft(>)1110 1931 y(output)p Fu(')29 b(in)m(to)i(the)g
+(line\).)1110 2060 y(A)62 b(n)m(um)m(b)s(er)e(of)i(sym)m(b)s(olic)h(c)m
+(haracter)g(names)f(are)g(recognized)h(while)1110 2170
+y(pro)s(cessing)40 b(this)f(k)m(ey)i(binding)e(syn)m(tax:)60
+b Fr(DEL)p Fu(,)42 b Fr(ESC)p Fu(,)g Fr(ESCAPE)p Fu(,)f
+Fr(LFD)p Fu(,)1110 2279 y Fr(NEWLINE)p Fu(,)31 b Fr(RET)p
+Fu(,)f Fr(RETURN)p Fu(,)g Fr(R)m(UBOUT)p Fu(,)h Fr(SP)-8
+b(A)m(CE)p Fu(,)31 b Fr(SPC)p Fu(,)e(and)h Fr(T)-8 b(AB)p
+Fu(.)630 2428 y Ft(")p Fr(k)m(eyseq)r Ft(")p Fu(:)41
+b Fr(function-name)36 b Fu(or)30 b Fr(macro)1110 2538
+y(k)m(eyseq)k Fu(di\013ers)d(from)f Fr(k)m(eyname)37
+b Fu(ab)s(o)m(v)m(e)32 b(in)f(that)h(strings)f(denoting)g(an)g(en-)1110
+2647 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 2757
+y(double)29 b(quotes.)41 b(Some)29 b Fm(gnu)h Fu(Emacs)f(st)m(yle)i(k)m
+(ey)f(escap)s(es)g(can)g(b)s(e)f(used,)g(as)1110 2866
+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 2976 y(recognized.)1350
+3105 y Ft("\\C-u":)46 b(universal-argument)1350 3215
+y("\\C-x\\C-r":)f(re-read-init-file)1350 3324 y("\\e[11~":)g("Function)
+h(Key)g(1")1110 3453 y Fu(In)64 b(the)g(ab)s(o)m(v)m(e)i(example,)74
 b Fj(C-u)64 b Fu(is)g(again)i(b)s(ound)c(to)k(the)e(function)1110
-2993 y Ft(universal-argument)39 b Fu(\(just)k(as)h(it)g(w)m(as)g(in)g
-(the)f(\014rst)g(example\),)49 b(`)p Fj(C-x)1110 3102
+3563 y Ft(universal-argument)39 b Fu(\(just)k(as)h(it)g(w)m(as)g(in)g
+(the)f(\014rst)g(example\),)49 b(`)p Fj(C-x)1110 3673
 y(C-r)p Fu(')30 b(is)g(b)s(ound)e(to)j(the)g(function)f
 Ft(re-read-init-file)p Fu(,)c(and)j(`)p Ft(ESC)h([)g(1)g(1)1110
-3212 y(~)p Fu(')g(is)h(b)s(ound)d(to)j(insert)f(the)h(text)g(`)p
-Ft(Function)e(Key)g(1)p Fu('.)630 3371 y(The)g(follo)m(wing)i
+3782 y(~)p Fu(')g(is)h(b)s(ound)d(to)j(insert)f(the)h(text)g(`)p
+Ft(Function)e(Key)g(1)p Fu('.)630 3931 y(The)g(follo)m(wing)i
 Fm(gnu)f Fu(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 3480 y(k)m(ey)i(sequences:)630
-3640 y Fj(\\C-)336 b Fu(con)m(trol)32 b(pre\014x)630
-3799 y Fj(\\M-)336 b Fu(meta)31 b(pre\014x)630 3958 y
+b(ailable)32 b(when)d(sp)s(ecifying)630 4041 y(k)m(ey)i(sequences:)630
+4189 y Fj(\\C-)336 b Fu(con)m(trol)32 b(pre\014x)630
+4338 y Fj(\\M-)336 b Fu(meta)31 b(pre\014x)630 4487 y
 Fj(\\e)384 b Fu(an)30 b(escap)s(e)h(c)m(haracter)630
-4117 y Fj(\\\\)384 b Fu(bac)m(kslash)630 4276 y Fj(\\)p
+4635 y Fj(\\\\)384 b Fu(bac)m(kslash)630 4784 y Fj(\\)p
 Ft(")g(")p Fu(,)30 b(a)h(double)f(quotation)i(mark)630
-4435 y Fj(\\')384 b Ft(')p Fu(,)30 b(a)h(single)g(quote)g(or)f(ap)s
-(ostrophe)630 4594 y(In)d(addition)h(to)g(the)g Fm(gnu)f
+4933 y Fj(\\')384 b Ft(')p Fu(,)30 b(a)h(single)g(quote)g(or)f(ap)s
+(ostrophe)630 5082 y(In)d(addition)h(to)g(the)g Fm(gnu)f
 Fu(Emacs)h(st)m(yle)h(escap)s(e)f(sequences,)h(a)f(second)f(set)h(of)g
-(bac)m(kslash)630 4704 y(escap)s(es)j(is)f(a)m(v)-5 b(ailable:)630
-4863 y Ft(\\a)384 b Fu(alert)31 b(\(b)s(ell\))630 5022
-y Ft(\\b)384 b Fu(bac)m(kspace)630 5181 y Ft(\\d)g Fu(delete)630
-5340 y Ft(\\f)g Fu(form)30 b(feed)p eop end
+(bac)m(kslash)630 5191 y(escap)s(es)j(is)f(a)m(v)-5 b(ailable:)630
+5340 y Ft(\\a)384 b Fu(alert)31 b(\(b)s(ell\))p eop end
 %%Page: 117 123
 TeXDict begin 117 122 bop 150 -116 a Fu(Chapter)30 b(8:)41
-b(Command)29 b(Line)i(Editing)2062 b(117)630 299 y Ft(\\n)384
-b Fu(newline)630 459 y Ft(\\r)g Fu(carriage)32 b(return)630
-619 y Ft(\\t)384 b Fu(horizon)m(tal)32 b(tab)630 779
-y Ft(\\v)384 b Fu(v)m(ertical)32 b(tab)630 939 y Ft(\\)p
-Fj(nnn)288 b Fu(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 Fr(nnn)e
-Fu(\(one)i(to)1110 1049 y(three)c(digits\))630 1209 y
-Ft(\\x)p Fj(HH)288 b Fu(the)38 b(eigh)m(t-bit)i(c)m(haracter)g(whose)e
-(v)-5 b(alue)39 b(is)f(the)h(hexadecimal)g(v)-5 b(alue)39
-b Fr(HH)1110 1318 y Fu(\(one)31 b(or)f(t)m(w)m(o)i(hex)e(digits\))630
-1478 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
-1588 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 1697 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 1807 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(Command)29 b(Line)i(Editing)2062 b(117)630 299 y Ft(\\b)384
+b Fu(bac)m(kspace)630 456 y Ft(\\d)g Fu(delete)630 613
+y Ft(\\f)g Fu(form)30 b(feed)630 770 y Ft(\\n)384 b Fu(newline)630
+928 y Ft(\\r)g Fu(carriage)32 b(return)630 1085 y Ft(\\t)384
+b Fu(horizon)m(tal)32 b(tab)630 1242 y Ft(\\v)384 b Fu(v)m(ertical)32
+b(tab)630 1399 y Ft(\\)p Fj(nnn)288 b Fu(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 Fr(nnn)e Fu(\(one)i(to)1110 1509 y(three)c(digits\))630
+1666 y Ft(\\x)p Fj(HH)288 b Fu(the)38 b(eigh)m(t-bit)i(c)m(haracter)g
+(whose)e(v)-5 b(alue)39 b(is)f(the)h(hexadecimal)g(v)-5
+b(alue)39 b Fr(HH)1110 1775 y Fu(\(one)31 b(or)f(t)m(w)m(o)i(hex)e
+(digits\))630 1933 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 2042 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 2152 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 2261 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 Ft(")p Fu(')h(and)g(`)p Ft(')p Fu('.)69 b(F)-8
-b(or)630 1917 y(example,)28 b(the)e(follo)m(wing)h(binding)d(will)i
+b(or)630 2371 y(example,)28 b(the)e(follo)m(wing)h(binding)d(will)i
 (mak)m(e)h(`)p Fj(C-x)j Ft(\\)p Fu(')c(insert)f(a)h(single)h(`)p
-Ft(\\)p Fu(')f(in)m(to)g(the)g(line:)870 2051 y Ft("\\C-x\\\\":)45
-b("\\\\")150 2251 y Fk(8.3.2)63 b(Conditional)41 b(Init)g(Constructs)
-150 2398 y Fu(Readline)c(implemen)m(ts)g(a)h(facilit)m(y)g(similar)f
+Ft(\\)p Fu(')f(in)m(to)g(the)g(line:)870 2504 y Ft("\\C-x\\\\":)45
+b("\\\\")150 2701 y Fk(8.3.2)63 b(Conditional)41 b(Init)g(Constructs)
+150 2848 y Fu(Readline)c(implemen)m(ts)g(a)h(facilit)m(y)g(similar)f
 (in)g(spirit)f(to)i(the)f(conditional)h(compilation)g(features)f(of)150
-2508 y(the)31 b(C)f(prepro)s(cessor)g(whic)m(h)g(allo)m(ws)i(k)m(ey)g
+2958 y(the)31 b(C)f(prepro)s(cessor)g(whic)m(h)g(allo)m(ws)i(k)m(ey)g
 (bindings)d(and)h(v)-5 b(ariable)32 b(settings)f(to)h(b)s(e)e(p)s
-(erformed)f(as)i(the)150 2617 y(result)f(of)h(tests.)41
+(erformed)f(as)i(the)150 3067 y(result)f(of)h(tests.)41
 b(There)30 b(are)h(four)f(parser)f(directiv)m(es)j(used.)150
-2778 y Ft($if)336 b Fu(The)31 b Ft($if)f Fu(construct)i(allo)m(ws)h
+3225 y Ft($if)336 b Fu(The)31 b Ft($if)f Fu(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 2887 y(terminal)37 b(b)s(eing)f(used,)h(or)f(the)h
+(the)630 3334 y(terminal)37 b(b)s(eing)f(used,)h(or)f(the)h
 (application)g(using)f(Readline.)59 b(The)36 b(text)h(of)f(the)h(test,)
-630 2997 y(after)30 b(an)m(y)g(comparison)g(op)s(erator,)g(extends)f
+630 3444 y(after)30 b(an)m(y)g(comparison)g(op)s(erator,)g(extends)f
 (to)h(the)g(end)f(of)h(the)f(line;)i(unless)e(otherwise)630
-3106 y(noted,)i(no)f(c)m(haracters)i(are)f(required)e(to)i(isolate)i
-(it.)630 3267 y Ft(mode)288 b Fu(The)30 b Ft(mode=)e
+3553 y(noted,)i(no)f(c)m(haracters)i(are)f(required)e(to)i(isolate)i
+(it.)630 3711 y Ft(mode)288 b Fu(The)30 b Ft(mode=)e
 Fu(form)i(of)g(the)h Ft($if)e Fu(directiv)m(e)j(is)e(used)f(to)i(test)g
-(whether)e(Read-)1110 3376 y(line)44 b(is)f(in)g Ft(emacs)f
+(whether)e(Read-)1110 3820 y(line)44 b(is)f(in)g Ft(emacs)f
 Fu(or)h Ft(vi)g Fu(mo)s(de.)79 b(This)42 b(ma)m(y)i(b)s(e)e(used)h(in)g
-(conjunction)1110 3486 y(with)c(the)h(`)p Ft(set)29 b(keymap)p
+(conjunction)1110 3930 y(with)c(the)h(`)p Ft(set)29 b(keymap)p
 Fu(')38 b(command,)k(for)d(instance,)j(to)e(set)g(bindings)e(in)1110
-3595 y(the)32 b Ft(emacs-standard)c Fu(and)j Ft(emacs-ctlx)d
-Fu(k)m(eymaps)k(only)g(if)g(Readline)g(is)1110 3705 y(starting)f(out)g
-(in)f Ft(emacs)f Fu(mo)s(de.)630 3865 y Ft(term)288 b
+4039 y(the)32 b Ft(emacs-standard)c Fu(and)j Ft(emacs-ctlx)d
+Fu(k)m(eymaps)k(only)g(if)g(Readline)g(is)1110 4149 y(starting)f(out)g
+(in)f Ft(emacs)f Fu(mo)s(de.)630 4306 y Ft(term)288 b
 Fu(The)26 b Ft(term=)g Fu(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 3974 y(ings,)38
+(terminal-sp)s(eci\014c)g(k)m(ey)h(bind-)1110 4416 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 4084 y(function)24 b(k)m(eys.)39
+(the)g(terminal's)1110 4525 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
-Ft(=)p Fu(')g(is)g(tested)h(against)1110 4194 y(b)s(oth)k(the)h(full)g
+Ft(=)p Fu(')g(is)g(tested)h(against)1110 4635 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 4303 y(name)k(b)s(efore)f(the)g(\014rst)g(`)p
+(terminal)1110 4744 y(name)k(b)s(efore)f(the)g(\014rst)g(`)p
 Ft(-)p Fu('.)50 b(This)33 b(allo)m(ws)i Ft(sun)e Fu(to)h(matc)m(h)g(b)s
-(oth)f Ft(sun)g Fu(and)1110 4413 y Ft(sun-cmd)p Fu(,)c(for)h(instance.)
-630 4573 y Ft(version)144 b Fu(The)44 b Ft(version)f
+(oth)f Ft(sun)g Fu(and)1110 4854 y Ft(sun-cmd)p Fu(,)c(for)h(instance.)
+630 5011 y Ft(version)144 b Fu(The)44 b Ft(version)f
 Fu(test)i(ma)m(y)h(b)s(e)e(used)f(to)j(p)s(erform)d(comparisons)i
-(against)1110 4682 y(sp)s(eci\014c)c(Readline)i(v)m(ersions.)74
+(against)1110 5121 y(sp)s(eci\014c)c(Readline)i(v)m(ersions.)74
 b(The)42 b Ft(version)d Fu(expands)i(to)h(the)g(curren)m(t)1110
-4792 y(Readline)25 b(v)m(ersion.)39 b(The)23 b(set)h(of)g(comparison)h
+5230 y(Readline)25 b(v)m(ersion.)39 b(The)23 b(set)h(of)g(comparison)h
 (op)s(erators)f(includes)f(`)p Ft(=)p Fu(')h(\(and)1110
-4902 y(`)p Ft(==)p Fu('\),)33 b(`)p Ft(!=)p Fu(',)f(`)p
+5340 y(`)p Ft(==)p Fu('\),)33 b(`)p Ft(!=)p Fu(',)f(`)p
 Ft(<=)p Fu(',)h(`)p Ft(>=)p Fu(',)f(`)p Ft(<)p Fu(',)h(and)e(`)p
 Ft(>)p Fu('.)46 b(The)31 b(v)m(ersion)i(n)m(um)m(b)s(er)d(supplied)h
-(on)1110 5011 y(the)j(righ)m(t)h(side)f(of)g(the)g(op)s(erator)g
-(consists)h(of)f(a)g(ma)5 b(jor)35 b(v)m(ersion)f(n)m(um)m(b)s(er,)1110
-5121 y(an)45 b(optional)i(decimal)f(p)s(oin)m(t,)k(and)44
-b(an)i(optional)g(minor)f(v)m(ersion)h(\(e.g.,)1110 5230
-y(`)p Ft(7.1)p Fu('\).)40 b(If)27 b(the)h(minor)f(v)m(ersion)h(is)g
-(omitted,)h(it)f(is)g(assumed)f(to)h(b)s(e)f(`)p Ft(0)p
-Fu('.)40 b(The)1110 5340 y(op)s(erator)34 b(ma)m(y)g(b)s(e)f(separated)
-g(from)g(the)h(string)f Ft(version)f Fu(and)h(from)g(the)p
-eop end
+(on)p eop end
 %%Page: 118 124
 TeXDict begin 118 123 bop 150 -116 a Fu(Chapter)30 b(8:)41
-b(Command)29 b(Line)i(Editing)2062 b(118)1110 299 y(v)m(ersion)39
+b(Command)29 b(Line)i(Editing)2062 b(118)1110 299 y(the)34
+b(righ)m(t)h(side)f(of)g(the)g(op)s(erator)g(consists)h(of)f(a)g(ma)5
+b(jor)35 b(v)m(ersion)f(n)m(um)m(b)s(er,)1110 408 y(an)45
+b(optional)i(decimal)f(p)s(oin)m(t,)k(and)44 b(an)i(optional)g(minor)f
+(v)m(ersion)h(\(e.g.,)1110 518 y(`)p Ft(7.1)p Fu('\).)40
+b(If)27 b(the)h(minor)f(v)m(ersion)h(is)g(omitted,)h(it)f(is)g(assumed)
+f(to)h(b)s(e)f(`)p Ft(0)p Fu('.)40 b(The)1110 628 y(op)s(erator)34
+b(ma)m(y)g(b)s(e)f(separated)g(from)g(the)h(string)f
+Ft(version)f Fu(and)h(from)g(the)1110 737 y(v)m(ersion)39
 b(n)m(um)m(b)s(er)f(argumen)m(t)h(b)m(y)f(whitespace.)67
-b(The)38 b(follo)m(wing)i(example)1110 408 y(sets)31
+b(The)38 b(follo)m(wing)i(example)1110 847 y(sets)31
 b(a)g(v)-5 b(ariable)31 b(if)f(the)h(Readline)g(v)m(ersion)f(b)s(eing)g
-(used)g(is)g(7.0)i(or)e(new)m(er:)1350 543 y Ft($if)47
-b(version)f(>=)h(7.0)1350 653 y(set)g(show-mode-in-prompt)42
-b(on)1350 762 y($endif)630 922 y(application)1110 1031
+(used)g(is)g(7.0)i(or)e(new)m(er:)1350 981 y Ft($if)47
+b(version)f(>=)h(7.0)1350 1091 y(set)g(show-mode-in-prompt)42
+b(on)1350 1200 y($endif)630 1360 y(application)1110 1469
 y Fu(The)21 b Fr(application)j Fu(construct)e(is)g(used)f(to)i(include)
-f(application-sp)s(eci\014c)h(set-)1110 1141 y(tings.)39
+f(application-sp)s(eci\014c)h(set-)1110 1579 y(tings.)39
 b(Eac)m(h)26 b(program)e(using)g(the)h(Readline)g(library)g(sets)g(the)
-g Fr(application)1110 1250 y(name)p Fu(,)g(and)e(y)m(ou)g(can)h(test)g
+g Fr(application)1110 1689 y(name)p Fu(,)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 1360 y(bind)32 b(k)m(ey)h(sequences)g(to)h(functions)e
+(used)f(to)1110 1798 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 1469 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 1579 y(the)e(curren)m(t)f
-(or)g(previous)g(w)m(ord)g(in)g(Bash:)1350 1714 y Ft($if)47
-b(Bash)1350 1823 y(#)g(Quote)g(the)g(current)f(or)h(previous)e(word)
-1350 1933 y("\\C-xq":)h("\\eb\\"\\ef\\"")1350 2042 y($endif)630
-2202 y(variable)96 b Fu(The)33 b Fr(v)-5 b(ariable)39
+b(or)1110 1908 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 2017 y(the)e(curren)m(t)f
+(or)g(previous)g(w)m(ord)g(in)g(Bash:)1350 2152 y Ft($if)47
+b(Bash)1350 2262 y(#)g(Quote)g(the)g(current)f(or)h(previous)e(word)
+1350 2371 y("\\C-xq":)h("\\eb\\"\\ef\\"")1350 2481 y($endif)630
+2640 y(variable)96 b Fu(The)33 b Fr(v)-5 b(ariable)39
 b Fu(construct)33 b(pro)m(vides)g(simple)g(equalit)m(y)i(tests)e(for)g
-(Readline)1110 2311 y(v)-5 b(ariables)32 b(and)f(v)-5
+(Readline)1110 2750 y(v)-5 b(ariables)32 b(and)f(v)-5
 b(alues.)45 b(The)32 b(p)s(ermitted)f(comparison)h(op)s(erators)f(are)i
-(`)p Ft(=)p Fu(',)1110 2421 y(`)p Ft(==)p Fu(',)49 b(and)44
+(`)p Ft(=)p Fu(',)1110 2859 y(`)p Ft(==)p Fu(',)49 b(and)44
 b(`)p Ft(!=)p Fu('.)85 b(The)44 b(v)-5 b(ariable)46 b(name)f(m)m(ust)g
-(b)s(e)g(separated)g(from)g(the)1110 2531 y(comparison)25
+(b)s(e)g(separated)g(from)g(the)1110 2969 y(comparison)25
 b(op)s(erator)g(b)m(y)g(whitespace;)j(the)d(op)s(erator)g(ma)m(y)g(b)s
-(e)f(separated)1110 2640 y(from)33 b(the)h(v)-5 b(alue)35
+(e)f(separated)1110 3078 y(from)33 b(the)h(v)-5 b(alue)35
 b(on)f(the)g(righ)m(t)g(hand)f(side)h(b)m(y)f(whitespace.)52
-b(Both)35 b(string)1110 2750 y(and)i(b)s(o)s(olean)g(v)-5
+b(Both)35 b(string)1110 3188 y(and)i(b)s(o)s(olean)g(v)-5
 b(ariables)38 b(ma)m(y)h(b)s(e)d(tested.)63 b(Bo)s(olean)39
-b(v)-5 b(ariables)38 b(m)m(ust)g(b)s(e)1110 2859 y(tested)46
+b(v)-5 b(ariables)38 b(m)m(ust)g(b)s(e)1110 3298 y(tested)46
 b(against)g(the)f(v)-5 b(alues)46 b Fr(on)f Fu(and)f
 Fr(o\013)p Fu(.)85 b(The)45 b(follo)m(wing)h(example)g(is)1110
-2969 y(equiv)-5 b(alen)m(t)32 b(to)f(the)f Ft(mode=emacs)e
-Fu(test)j(describ)s(ed)f(ab)s(o)m(v)m(e:)1350 3103 y
-Ft($if)47 b(editing-mode)d(==)k(emacs)1350 3213 y(set)f
-(show-mode-in-prompt)42 b(on)1350 3323 y($endif)150 3482
+3407 y(equiv)-5 b(alen)m(t)32 b(to)f(the)f Ft(mode=emacs)e
+Fu(test)j(describ)s(ed)f(ab)s(o)m(v)m(e:)1350 3542 y
+Ft($if)47 b(editing-mode)d(==)k(emacs)1350 3651 y(set)f
+(show-mode-in-prompt)42 b(on)1350 3761 y($endif)150 3920
 y($endif)192 b Fu(This)29 b(command,)i(as)f(seen)h(in)f(the)g(previous)
 g(example,)h(terminates)g(an)g Ft($if)e Fu(command.)150
-3641 y Ft($else)240 b Fu(Commands)29 b(in)h(this)h(branc)m(h)e(of)i
+4080 y Ft($else)240 b Fu(Commands)29 b(in)h(this)h(branc)m(h)e(of)i
 (the)f Ft($if)g Fu(directiv)m(e)i(are)f(executed)g(if)f(the)h(test)g
-(fails.)150 3801 y Ft($include)96 b Fu(This)43 b(directiv)m(e)i(tak)m
+(fails.)150 4239 y Ft($include)96 b Fu(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 3910 y(and)38 b(bindings)f(from)h(that)i(\014le.)65
+(commands)630 4349 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 4020 y Ft(/etc/inputrc)p Fu(:)870 4154 y Ft($include)46
-b(/etc/inputrc)150 4354 y Fk(8.3.3)63 b(Sample)41 b(Init)g(File)150
-4501 y Fu(Here)27 b(is)f(an)h(example)g(of)f(an)h Fr(inputrc)k
+(from)630 4458 y Ft(/etc/inputrc)p Fu(:)870 4593 y Ft($include)46
+b(/etc/inputrc)150 4792 y Fk(8.3.3)63 b(Sample)41 b(Init)g(File)150
+4939 y Fu(Here)27 b(is)f(an)h(example)g(of)f(an)h Fr(inputrc)k
 Fu(\014le.)39 b(This)26 b(illustrates)h(k)m(ey)h(binding,)e(v)-5
-b(ariable)27 b(assignmen)m(t,)i(and)150 4610 y(conditional)j(syn)m
+b(ariable)27 b(assignmen)m(t,)i(and)150 5049 y(conditional)j(syn)m
 (tax.)p eop end
 %%Page: 119 125
 TeXDict begin 119 124 bop 150 -116 a Fu(Chapter)30 b(8:)41
@@ -16997,25 +17070,25 @@ b(b)m(y)f(some)h(terminals,)i(and)d(suc)m(h)g(a)h(binding)e(is)i
 (single)g(unit)f(without)h(treating)h(eac)m(h)f(c)m(har-)630
 2271 y(acter)40 b(as)f(if)g(it)g(had)f(b)s(een)g(read)h(from)f(the)h(k)
 m(eyb)s(oard.)66 b(The)39 b(c)m(haracters)h(are)f(inserted)630
-2381 y(as)i(if)g(eac)m(h)i(one)e(w)m(as)h(b)s(ound)d(to)i
-Ft(self-insert)p Fu(\))e(instead)i(of)h(executing)g(an)m(y)f(editing)
-630 2491 y(commands.)150 2655 y Ft(transpose-chars)26
-b(\(C-t\))630 2765 y Fu(Drag)33 b(the)f(c)m(haracter)h(b)s(efore)f(the)
-g(cursor)f(forw)m(ard)h(o)m(v)m(er)h(the)f(c)m(haracter)i(at)e(the)g
-(cursor,)630 2874 y(mo)m(ving)k(the)g(cursor)f(forw)m(ard)g(as)g(w)m
-(ell.)57 b(If)35 b(the)h(insertion)g(p)s(oin)m(t)f(is)g(at)i(the)e(end)
-g(of)h(the)630 2984 y(line,)24 b(then)e(this)g(transp)s(oses)f(the)h
-(last)h(t)m(w)m(o)g(c)m(haracters)g(of)f(the)h(line.)38
-b(Negativ)m(e)25 b(argumen)m(ts)630 3093 y(ha)m(v)m(e)32
-b(no)e(e\013ect.)150 3258 y Ft(transpose-words)c(\(M-t\))630
-3367 y Fu(Drag)33 b(the)g(w)m(ord)f(b)s(efore)g(p)s(oin)m(t)g(past)g
-(the)h(w)m(ord)f(after)g(p)s(oin)m(t,)i(mo)m(ving)f(p)s(oin)m(t)f(past)
-g(that)630 3477 y(w)m(ord)c(as)h(w)m(ell.)41 b(If)27
-b(the)i(insertion)f(p)s(oin)m(t)h(is)f(at)h(the)g(end)e(of)i(the)f
-(line,)i(this)e(transp)s(oses)g(the)630 3587 y(last)j(t)m(w)m(o)h(w)m
-(ords)e(on)g(the)h(line.)150 3751 y Ft(upcase-word)c(\(M-u\))630
-3861 y Fu(Upp)s(ercase)32 b(the)g(curren)m(t)g(\(or)g(follo)m(wing\))i
-(w)m(ord.)45 b(With)32 b(a)g(negativ)m(e)j(argumen)m(t,)e(upp)s(er-)630
+2381 y(as)44 b(if)g(eac)m(h)i(one)e(w)m(as)g(b)s(ound)e(to)j
+Ft(self-insert)c Fu(instead)j(of)h(executing)g(an)m(y)f(editing)630
+2491 y(commands.)150 2655 y Ft(transpose-chars)26 b(\(C-t\))630
+2765 y Fu(Drag)33 b(the)f(c)m(haracter)h(b)s(efore)f(the)g(cursor)f
+(forw)m(ard)h(o)m(v)m(er)h(the)f(c)m(haracter)i(at)e(the)g(cursor,)630
+2874 y(mo)m(ving)k(the)g(cursor)f(forw)m(ard)g(as)g(w)m(ell.)57
+b(If)35 b(the)h(insertion)g(p)s(oin)m(t)f(is)g(at)i(the)e(end)g(of)h
+(the)630 2984 y(line,)24 b(then)e(this)g(transp)s(oses)f(the)h(last)h
+(t)m(w)m(o)g(c)m(haracters)g(of)f(the)h(line.)38 b(Negativ)m(e)25
+b(argumen)m(ts)630 3093 y(ha)m(v)m(e)32 b(no)e(e\013ect.)150
+3258 y Ft(transpose-words)c(\(M-t\))630 3367 y Fu(Drag)33
+b(the)g(w)m(ord)f(b)s(efore)g(p)s(oin)m(t)g(past)g(the)h(w)m(ord)f
+(after)g(p)s(oin)m(t,)i(mo)m(ving)f(p)s(oin)m(t)f(past)g(that)630
+3477 y(w)m(ord)c(as)h(w)m(ell.)41 b(If)27 b(the)i(insertion)f(p)s(oin)m
+(t)h(is)f(at)h(the)g(end)e(of)i(the)f(line,)i(this)e(transp)s(oses)g
+(the)630 3587 y(last)j(t)m(w)m(o)h(w)m(ords)e(on)g(the)h(line.)150
+3751 y Ft(upcase-word)c(\(M-u\))630 3861 y Fu(Upp)s(ercase)32
+b(the)g(curren)m(t)g(\(or)g(follo)m(wing\))i(w)m(ord.)45
+b(With)32 b(a)g(negativ)m(e)j(argumen)m(t,)e(upp)s(er-)630
 3970 y(case)e(the)g(previous)f(w)m(ord,)g(but)g(do)g(not)h(mo)m(v)m(e)h
 (the)e(cursor.)150 4134 y Ft(downcase-word)d(\(M-l\))630
 4244 y Fu(Lo)m(w)m(ercase)c(the)f(curren)m(t)f(\(or)h(follo)m(wing\))i
@@ -17237,7 +17310,7 @@ b(\(M-{\))630 793 y Fu(P)m(erform)f(\014lename)f(completion)i(and)f
 (insert)f(the)h(list)g(of)g(p)s(ossible)f(completions)i(enclosed)630
 902 y(within)34 b(braces)h(so)f(the)h(list)g(is)g(a)m(v)-5
 b(ailable)37 b(to)e(the)g(shell)g(\(see)g(Section)h(3.5.1)g([Brace)g
-(Ex-)630 1012 y(pansion],)30 b(page)h(22\).)150 1217
+(Ex-)630 1012 y(pansion],)30 b(page)h(23\).)150 1217
 y Fk(8.4.7)63 b(Keyb)s(oard)41 b(Macros)150 1392 y Ft(start-kbd-macro)
 26 b(\(C-x)j(\(\))630 1501 y Fu(Begin)i(sa)m(ving)h(the)e(c)m
 (haracters)i(t)m(yp)s(ed)e(in)m(to)h(the)g(curren)m(t)f(k)m(eyb)s(oard)
@@ -17658,347 +17731,368 @@ Fr(w)m(ord)j Fu(will)630 3586 y(b)s(e)d(displa)m(y)m(ed.)630
 m(v)-5 b(alid)25 b(option)g(is)g(supplied,)f(or)h(no)g(matc)m(hes)g(w)m
 (ere)630 3828 y(generated.)150 3981 y Ft(complete)870
 4113 y(complete)46 b([-abcdefgjksuv])d([-o)k Fj(comp-option)p
-Ft(])e([-DE])h([-A)h Fj(action)p Ft(])f([-)870 4222 y(G)h
-Fj(globpat)p Ft(])f([-W)h Fj(wordlist)p Ft(])870 4332
-y([-F)g Fj(function)p Ft(])e([-C)i Fj(command)p Ft(])f([-X)h
-Fj(filterpat)p Ft(])870 4441 y([-P)g Fj(prefix)p Ft(])f([-S)h
-Fj(suffix)p Ft(])e Fj(name)i Ft([)p Fj(name)f Ft(...])870
-4551 y(complete)g(-pr)g([-DE])h([)p Fj(name)f Ft(...)o(])630
-4682 y Fu(Sp)s(ecify)37 b(ho)m(w)h(argumen)m(ts)f(to)i(eac)m(h)g
-Fr(name)j Fu(should)37 b(b)s(e)g(completed.)63 b(If)38
-b(the)f Ft(-p)g Fu(option)630 4792 y(is)30 b(supplied,)e(or)i(if)g(no)f
-(options)h(are)g(supplied,)f(existing)h(completion)h(sp)s
+Ft(])e([-DEI])h([-A)h Fj(action)p Ft(])e([-)870 4222
+y(G)i Fj(globpat)p Ft(])870 4332 y([-W)g Fj(wordlist)p
+Ft(])e([-F)i Fj(function)p Ft(])e([-C)i Fj(command)p
+Ft(])f([-X)h Fj(filterpat)p Ft(])870 4441 y([-P)g Fj(prefix)p
+Ft(])f([-S)h Fj(suffix)p Ft(])e Fj(name)i Ft([)p Fj(name)f
+Ft(...])870 4551 y(complete)g(-pr)g([-DEI])h([)p Fj(name)f
+Ft(...)o(])630 4682 y Fu(Sp)s(ecify)37 b(ho)m(w)h(argumen)m(ts)f(to)i
+(eac)m(h)g Fr(name)j Fu(should)37 b(b)s(e)g(completed.)63
+b(If)38 b(the)f Ft(-p)g Fu(option)630 4792 y(is)30 b(supplied,)e(or)i
+(if)g(no)f(options)h(are)g(supplied,)f(existing)h(completion)h(sp)s
 (eci\014cations)g(are)630 4902 y(prin)m(ted)24 b(in)h(a)g(w)m(a)m(y)g
 (that)h(allo)m(ws)g(them)e(to)i(b)s(e)e(reused)f(as)i(input.)38
 b(The)24 b Ft(-r)g Fu(option)i(remo)m(v)m(es)630 5011
 y(a)i(completion)h(sp)s(eci\014cation)f(for)g(eac)m(h)h
 Fr(name)p Fu(,)f(or,)h(if)e(no)h Fr(name)5 b Fu(s)27
-b(are)h(supplied,)g(all)g(com-)630 5121 y(pletion)k(sp)s
-(eci\014cations.)44 b(The)30 b Ft(-D)h Fu(option)h(indicates)g(that)f
-(the)h(remaining)f(options)h(and)630 5230 y(actions)27
-b(should)e(apply)g(to)i(the)f(\\default")h(command)e(completion;)k
-(that)e(is,)g(completion)630 5340 y(attempted)g(on)f(a)h(command)f(for)
-g(whic)m(h)g(no)g(completion)i(has)d(previously)h(b)s(een)g(de\014ned.)
-eop end
+b(are)h(supplied,)g(all)g(com-)630 5121 y(pletion)i(sp)s
+(eci\014cations.)42 b(The)29 b Ft(-D)g Fu(option)h(indicates)h(that)f
+(other)g(supplied)e(options)j(and)630 5230 y(actions)c(should)e(apply)g
+(to)i(the)f(\\default")h(command)e(completion;)k(that)e(is,)g
+(completion)630 5340 y(attempted)g(on)f(a)h(command)f(for)g(whic)m(h)g
+(no)g(completion)i(has)d(previously)h(b)s(een)g(de\014ned.)p
+eop end
 %%Page: 134 140
 TeXDict begin 134 139 bop 150 -116 a Fu(Chapter)30 b(8:)41
-b(Command)29 b(Line)i(Editing)2062 b(134)630 299 y(The)25
-b Ft(-E)g Fu(option)h(indicates)h(that)f(the)g(remaining)g(options)g
-(and)f(actions)i(should)e(apply)g(to)630 408 y(\\empt)m(y")32
-b(command)e(completion;)i(that)f(is,)f(completion)i(attempted)f(on)g(a)
-f(blank)g(line.)630 542 y(The)f(pro)s(cess)g(of)h(applying)g(these)g
-(completion)g(sp)s(eci\014cations)h(when)d(w)m(ord)i(completion)630
-651 y(is)35 b(attempted)h(is)f(describ)s(ed)f(ab)s(o)m(v)m(e)j(\(see)f
-(Section)g(8.6)g([Programmable)g(Completion],)630 761
-y(page)31 b(131\).)42 b(The)30 b Ft(-D)g Fu(option)h(tak)m(es)h
-(precedence)f(o)m(v)m(er)g Ft(-E)p Fu(.)630 894 y(Other)d(options,)i
-(if)f(sp)s(eci\014ed,)g(ha)m(v)m(e)h(the)f(follo)m(wing)i(meanings.)40
-b(The)29 b(argumen)m(ts)g(to)h(the)630 1003 y Ft(-G)p
+b(Command)29 b(Line)i(Editing)2062 b(134)630 299 y(The)24
+b Ft(-E)g Fu(option)h(indicates)g(that)g(other)g(supplied)e(options)h
+(and)g(actions)i(should)d(apply)h(to)630 408 y(\\empt)m(y")33
+b(command)e(completion;)i(that)f(is,)g(completion)h(attempted)f(on)g(a)
+f(blank)g(line.)630 518 y(The)24 b Ft(-I)g Fu(option)h(indicates)g
+(that)g(other)g(supplied)e(options)h(and)g(actions)i(should)d(apply)h
+(to)630 628 y(completion)32 b(on)e(the)g(inital)i(non-assignmen)m(t)f
+(w)m(ord)f(on)g(the)g(line,)h(or)g(after)f(a)h(command)630
+737 y(delimiter)41 b(suc)m(h)g(as)f(`)p Ft(;)p Fu(')h(or)g(`)p
+Ft(|)p Fu(',)i(whic)m(h)e(is)f(usually)h(command)f(name)h(completion.)
+72 b(If)630 847 y(m)m(ultiple)26 b(options)g(are)g(supplied,)g(the)f
+Ft(-D)g Fu(option)h(tak)m(es)i(precedence)e(o)m(v)m(er)g
+Ft(-E)p Fu(,)h(and)e(b)s(oth)630 956 y(tak)m(e)34 b(precedence)f(o)m(v)
+m(er)h Ft(-I)p Fu(.)47 b(If)32 b(an)m(y)h(of)g Ft(-D)p
+Fu(,)g Ft(-E)p Fu(,)f(or)h Ft(-I)f Fu(are)h(supplied,)f(an)m(y)h(other)
+g Fr(name)630 1066 y Fu(argumen)m(ts)k(are)g(ignored;)j(these)d
+(completions)h(only)e(apply)g(to)i(the)f(case)g(sp)s(eci\014ed)f(b)m(y)
+630 1176 y(the)31 b(option.)630 1313 y(The)e(pro)s(cess)g(of)h
+(applying)g(these)g(completion)g(sp)s(eci\014cations)h(when)d(w)m(ord)i
+(completion)630 1422 y(is)35 b(attempted)h(is)f(describ)s(ed)f(ab)s(o)m
+(v)m(e)j(\(see)f(Section)g(8.6)g([Programmable)g(Completion],)630
+1532 y(page)31 b(131\).)630 1669 y(Other)d(options,)i(if)f(sp)s
+(eci\014ed,)g(ha)m(v)m(e)h(the)f(follo)m(wing)i(meanings.)40
+b(The)29 b(argumen)m(ts)g(to)h(the)630 1778 y Ft(-G)p
 Fu(,)41 b Ft(-W)p Fu(,)h(and)c Ft(-X)h Fu(options)h(\(and,)h(if)f
 (necessary)-8 b(,)42 b(the)e Ft(-P)f Fu(and)f Ft(-S)h
-Fu(options\))h(should)f(b)s(e)630 1113 y(quoted)28 b(to)h(protect)g
+Fu(options\))h(should)f(b)s(e)630 1888 y(quoted)28 b(to)h(protect)g
 (them)f(from)f(expansion)h(b)s(efore)g(the)g Ft(complete)e
-Fu(builtin)h(is)h(in)m(v)m(ok)m(ed.)630 1270 y Ft(-o)i
-Fj(comp-option)1110 1379 y Fu(The)c Fr(comp-option)i
+Fu(builtin)h(is)h(in)m(v)m(ok)m(ed.)630 2052 y Ft(-o)i
+Fj(comp-option)1110 2162 y Fu(The)c Fr(comp-option)i
 Fu(con)m(trols)g(sev)m(eral)h(asp)s(ects)e(of)g(the)g(compsp)s(ec's)g
-(b)s(eha)m(v-)1110 1489 y(ior)g(b)s(ey)m(ond)f(the)g(simple)h
+(b)s(eha)m(v-)1110 2271 y(ior)g(b)s(ey)m(ond)f(the)g(simple)h
 (generation)h(of)e(completions.)41 b Fr(comp-option)27
-b Fu(ma)m(y)1110 1598 y(b)s(e)j(one)g(of:)1110 1755 y
-Ft(bashdefault)1590 1864 y Fu(P)m(erform)d(the)h(rest)f(of)h(the)g
-(default)f(Bash)h(completions)g(if)g(the)1590 1974 y(compsp)s(ec)i
-(generates)i(no)e(matc)m(hes.)1110 2131 y Ft(default)144
+b Fu(ma)m(y)1110 2381 y(b)s(e)j(one)g(of:)1110 2545 y
+Ft(bashdefault)1590 2655 y Fu(P)m(erform)d(the)h(rest)f(of)h(the)g
+(default)f(Bash)h(completions)g(if)g(the)1590 2765 y(compsp)s(ec)i
+(generates)i(no)e(matc)m(hes.)1110 2929 y Ft(default)144
 b Fu(Use)22 b(Readline's)g(default)g(\014lename)g(completion)g(if)g
-(the)g(comp-)1590 2240 y(sp)s(ec)30 b(generates)i(no)e(matc)m(hes.)1110
-2397 y Ft(dirnames)96 b Fu(P)m(erform)46 b(directory)g(name)h
-(completion)g(if)f(the)g(compsp)s(ec)1590 2506 y(generates)32
-b(no)e(matc)m(hes.)1110 2663 y Ft(filenames)1590 2772
+(the)g(comp-)1590 3039 y(sp)s(ec)30 b(generates)i(no)e(matc)m(hes.)1110
+3203 y Ft(dirnames)96 b Fu(P)m(erform)46 b(directory)g(name)h
+(completion)g(if)f(the)g(compsp)s(ec)1590 3313 y(generates)32
+b(no)e(matc)m(hes.)1110 3477 y Ft(filenames)1590 3587
 y Fu(T)-8 b(ell)40 b(Readline)f(that)h(the)f(compsp)s(ec)f(generates)j
-(\014lenames,)1590 2882 y(so)29 b(it)h(can)f(p)s(erform)f(an)m(y)h
+(\014lenames,)1590 3696 y(so)29 b(it)h(can)f(p)s(erform)f(an)m(y)h
 (\014lename-sp)s(eci\014c)h(pro)s(cessing)e(\(lik)m(e)1590
-2992 y(adding)d(a)h(slash)f(to)h(directory)g(names)f(quoting)h(sp)s
-(ecial)g(c)m(har-)1590 3101 y(acters,)39 b(or)d(suppressing)f(trailing)
-i(spaces\).)59 b(This)35 b(option)i(is)1590 3211 y(in)m(tended)30
+3806 y(adding)22 b(a)g(slash)g(to)h(directory)f(names,)i(quoting)f(sp)s
+(ecial)f(c)m(har-)1590 3915 y(acters,)39 b(or)d(suppressing)f(trailing)
+i(spaces\).)59 b(This)35 b(option)i(is)1590 4025 y(in)m(tended)30
 b(to)g(b)s(e)g(used)f(with)g(shell)i(functions)e(sp)s(eci\014ed)g(with)
-1590 3320 y Ft(-F)p Fu(.)1110 3477 y Ft(noquote)144 b
+1590 4134 y Ft(-F)p Fu(.)1110 4299 y Ft(noquote)144 b
 Fu(T)-8 b(ell)28 b(Readline)g(not)g(to)g(quote)g(the)g(completed)g(w)m
-(ords)f(if)h(they)1590 3587 y(are)j(\014lenames)f(\(quoting)h
-(\014lenames)g(is)f(the)h(default\).)1110 3743 y Ft(nosort)192
+(ords)f(if)h(they)1590 4408 y(are)j(\014lenames)f(\(quoting)h
+(\014lenames)g(is)f(the)h(default\).)1110 4573 y Ft(nosort)192
 b Fu(T)-8 b(ell)23 b(Readline)g(not)f(to)h(sort)g(the)f(list)h(of)f(p)s
-(ossible)g(completions)1590 3853 y(alphab)s(etically)-8
-b(.)1110 4009 y Ft(nospace)144 b Fu(T)-8 b(ell)40 b(Readline)g(not)g
+(ossible)g(completions)1590 4682 y(alphab)s(etically)-8
+b(.)1110 4847 y Ft(nospace)144 b Fu(T)-8 b(ell)40 b(Readline)g(not)g
 (to)g(app)s(end)d(a)j(space)g(\(the)f(default\))h(to)1590
-4119 y(w)m(ords)30 b(completed)h(at)g(the)g(end)f(of)g(the)h(line.)1110
-4275 y Ft(plusdirs)96 b Fu(After)30 b(an)m(y)h(matc)m(hes)g(de\014ned)d
-(b)m(y)i(the)g(compsp)s(ec)g(are)g(gener-)1590 4385 y(ated,)g
+4956 y(w)m(ords)30 b(completed)h(at)g(the)g(end)f(of)g(the)h(line.)1110
+5121 y Ft(plusdirs)96 b Fu(After)30 b(an)m(y)h(matc)m(hes)g(de\014ned)d
+(b)m(y)i(the)g(compsp)s(ec)g(are)g(gener-)1590 5230 y(ated,)g
 (directory)f(name)g(completion)i(is)d(attempted)i(and)f(an)m(y)1590
-4495 y(matc)m(hes)j(are)e(added)g(to)h(the)g(results)f(of)g(the)h
-(other)g(actions.)630 4651 y Ft(-A)f Fj(action)66 b Fu(The)25
-b Fr(action)h Fu(ma)m(y)g(b)s(e)e(one)h(of)h(the)f(follo)m(wing)i(to)e
-(generate)i(a)e(list)h(of)f(p)s(ossible)1110 4761 y(completions:)1110
-4917 y Ft(alias)240 b Fu(Alias)31 b(names.)41 b(Ma)m(y)31
-b(also)h(b)s(e)e(sp)s(eci\014ed)f(as)i Ft(-a)p Fu(.)1110
-5074 y Ft(arrayvar)96 b Fu(Arra)m(y)31 b(v)-5 b(ariable)31
-b(names.)1110 5230 y Ft(binding)144 b Fu(Readline)30
-b(k)m(ey)f(binding)f(names)h(\(see)h(Section)f(8.4)h([Bindable)1590
-5340 y(Readline)h(Commands],)f(page)h(121\).)p eop end
+5340 y(matc)m(hes)j(are)e(added)g(to)h(the)g(results)f(of)g(the)h
+(other)g(actions.)p eop end
 %%Page: 135 141
 TeXDict begin 135 140 bop 150 -116 a Fu(Chapter)30 b(8:)41
-b(Command)29 b(Line)i(Editing)2062 b(135)1110 299 y Ft(builtin)144
-b Fu(Names)21 b(of)g(shell)f(builtin)h(commands.)37 b(Ma)m(y)21
-b(also)h(b)s(e)e(sp)s(eci\014ed)1590 408 y(as)31 b Ft(-b)p
-Fu(.)1110 581 y Ft(command)144 b Fu(Command)29 b(names.)41
-b(Ma)m(y)32 b(also)f(b)s(e)f(sp)s(eci\014ed)f(as)i Ft(-c)p
-Fu(.)1110 753 y Ft(directory)1590 862 y Fu(Directory)h(names.)40
-b(Ma)m(y)32 b(also)f(b)s(e)f(sp)s(eci\014ed)g(as)g Ft(-d)p
-Fu(.)1110 1035 y Ft(disabled)96 b Fu(Names)31 b(of)g(disabled)f(shell)g
-(builtins.)1110 1207 y Ft(enabled)144 b Fu(Names)31 b(of)g(enabled)f
-(shell)g(builtins.)1110 1379 y Ft(export)192 b Fu(Names)34
-b(of)f(exp)s(orted)f(shell)h(v)-5 b(ariables.)49 b(Ma)m(y)35
-b(also)e(b)s(e)g(sp)s(eci-)1590 1489 y(\014ed)d(as)g
-Ft(-e)p Fu(.)1110 1661 y Ft(file)288 b Fu(File)32 b(names.)40
-b(Ma)m(y)32 b(also)f(b)s(e)f(sp)s(eci\014ed)f(as)i Ft(-f)p
-Fu(.)1110 1833 y Ft(function)96 b Fu(Names)31 b(of)g(shell)f
-(functions.)1110 2005 y Ft(group)240 b Fu(Group)30 b(names.)40
-b(Ma)m(y)32 b(also)f(b)s(e)f(sp)s(eci\014ed)g(as)g Ft(-g)p
-Fu(.)1110 2178 y Ft(helptopic)1590 2287 y Fu(Help)37
-b(topics)g(as)g(accepted)h(b)m(y)e(the)h Ft(help)f Fu(builtin)g(\(see)h
-(Sec-)1590 2397 y(tion)31 b(4.2)g([Bash)g(Builtins],)g(page)g(50\).)
-1110 2569 y Ft(hostname)96 b Fu(Hostnames,)89 b(as)76
-b(tak)m(en)h(from)f(the)g(\014le)h(sp)s(eci\014ed)e(b)m(y)1590
-2679 y(the)55 b Ft(HOSTFILE)e Fu(shell)j(v)-5 b(ariable)56
-b(\(see)g(Section)g(5.2)h([Bash)1590 2788 y(V)-8 b(ariables],)32
-b(page)f(72\).)1110 2960 y Ft(job)336 b Fu(Job)31 b(names,)h(if)g(job)f
-(con)m(trol)i(is)f(activ)m(e.)46 b(Ma)m(y)33 b(also)g(b)s(e)e(sp)s
-(eci-)1590 3070 y(\014ed)f(as)g Ft(-j)p Fu(.)1110 3242
-y Ft(keyword)144 b Fu(Shell)30 b(reserv)m(ed)h(w)m(ords.)40
-b(Ma)m(y)32 b(also)f(b)s(e)f(sp)s(eci\014ed)f(as)i Ft(-k)p
-Fu(.)1110 3414 y Ft(running)144 b Fu(Names)31 b(of)g(running)d(jobs,)i
-(if)h(job)f(con)m(trol)h(is)g(activ)m(e.)1110 3587 y
-Ft(service)144 b Fu(Service)31 b(names.)41 b(Ma)m(y)31
-b(also)g(b)s(e)f(sp)s(eci\014ed)g(as)g Ft(-s)p Fu(.)1110
-3759 y Ft(setopt)192 b Fu(V)-8 b(alid)39 b(argumen)m(ts)g(for)f(the)h
-Ft(-o)e Fu(option)i(to)g(the)g Ft(set)e Fu(builtin)1590
-3868 y(\(see)31 b(Section)h(4.3.1)g([The)e(Set)g(Builtin],)i(page)f
-(61\).)1110 4041 y Ft(shopt)240 b Fu(Shell)40 b(option)g(names)g(as)g
+b(Command)29 b(Line)i(Editing)2062 b(135)630 299 y Ft(-A)30
+b Fj(action)66 b Fu(The)25 b Fr(action)h Fu(ma)m(y)g(b)s(e)e(one)h(of)h
+(the)f(follo)m(wing)i(to)e(generate)i(a)e(list)h(of)f(p)s(ossible)1110
+408 y(completions:)1110 570 y Ft(alias)240 b Fu(Alias)31
+b(names.)41 b(Ma)m(y)31 b(also)h(b)s(e)e(sp)s(eci\014ed)f(as)i
+Ft(-a)p Fu(.)1110 732 y Ft(arrayvar)96 b Fu(Arra)m(y)31
+b(v)-5 b(ariable)31 b(names.)1110 894 y Ft(binding)144
+b Fu(Readline)30 b(k)m(ey)f(binding)f(names)h(\(see)h(Section)f(8.4)h
+([Bindable)1590 1004 y(Readline)h(Commands],)f(page)h(121\).)1110
+1166 y Ft(builtin)144 b Fu(Names)21 b(of)g(shell)f(builtin)h(commands.)
+37 b(Ma)m(y)21 b(also)h(b)s(e)e(sp)s(eci\014ed)1590 1276
+y(as)31 b Ft(-b)p Fu(.)1110 1438 y Ft(command)144 b Fu(Command)29
+b(names.)41 b(Ma)m(y)32 b(also)f(b)s(e)f(sp)s(eci\014ed)f(as)i
+Ft(-c)p Fu(.)1110 1600 y Ft(directory)1590 1709 y Fu(Directory)h
+(names.)40 b(Ma)m(y)32 b(also)f(b)s(e)f(sp)s(eci\014ed)g(as)g
+Ft(-d)p Fu(.)1110 1871 y Ft(disabled)96 b Fu(Names)31
+b(of)g(disabled)f(shell)g(builtins.)1110 2033 y Ft(enabled)144
+b Fu(Names)31 b(of)g(enabled)f(shell)g(builtins.)1110
+2195 y Ft(export)192 b Fu(Names)34 b(of)f(exp)s(orted)f(shell)h(v)-5
+b(ariables.)49 b(Ma)m(y)35 b(also)e(b)s(e)g(sp)s(eci-)1590
+2305 y(\014ed)d(as)g Ft(-e)p Fu(.)1110 2467 y Ft(file)288
+b Fu(File)32 b(names.)40 b(Ma)m(y)32 b(also)f(b)s(e)f(sp)s(eci\014ed)f
+(as)i Ft(-f)p Fu(.)1110 2629 y Ft(function)96 b Fu(Names)31
+b(of)g(shell)f(functions.)1110 2791 y Ft(group)240 b
+Fu(Group)30 b(names.)40 b(Ma)m(y)32 b(also)f(b)s(e)f(sp)s(eci\014ed)g
+(as)g Ft(-g)p Fu(.)1110 2953 y Ft(helptopic)1590 3062
+y Fu(Help)37 b(topics)g(as)g(accepted)h(b)m(y)e(the)h
+Ft(help)f Fu(builtin)g(\(see)h(Sec-)1590 3172 y(tion)31
+b(4.2)g([Bash)g(Builtins],)g(page)g(50\).)1110 3334 y
+Ft(hostname)96 b Fu(Hostnames,)89 b(as)76 b(tak)m(en)h(from)f(the)g
+(\014le)h(sp)s(eci\014ed)e(b)m(y)1590 3444 y(the)55 b
+Ft(HOSTFILE)e Fu(shell)j(v)-5 b(ariable)56 b(\(see)g(Section)g(5.2)h
+([Bash)1590 3553 y(V)-8 b(ariables],)32 b(page)f(72\).)1110
+3715 y Ft(job)336 b Fu(Job)31 b(names,)h(if)g(job)f(con)m(trol)i(is)f
+(activ)m(e.)46 b(Ma)m(y)33 b(also)g(b)s(e)e(sp)s(eci-)1590
+3825 y(\014ed)f(as)g Ft(-j)p Fu(.)1110 3987 y Ft(keyword)144
+b Fu(Shell)30 b(reserv)m(ed)h(w)m(ords.)40 b(Ma)m(y)32
+b(also)f(b)s(e)f(sp)s(eci\014ed)f(as)i Ft(-k)p Fu(.)1110
+4149 y Ft(running)144 b Fu(Names)31 b(of)g(running)d(jobs,)i(if)h(job)f
+(con)m(trol)h(is)g(activ)m(e.)1110 4311 y Ft(service)144
+b Fu(Service)31 b(names.)41 b(Ma)m(y)31 b(also)g(b)s(e)f(sp)s
+(eci\014ed)g(as)g Ft(-s)p Fu(.)1110 4473 y Ft(setopt)192
+b Fu(V)-8 b(alid)39 b(argumen)m(ts)g(for)f(the)h Ft(-o)e
+Fu(option)i(to)g(the)g Ft(set)e Fu(builtin)1590 4582
+y(\(see)31 b(Section)h(4.3.1)g([The)e(Set)g(Builtin],)i(page)f(61\).)
+1110 4744 y Ft(shopt)240 b Fu(Shell)40 b(option)g(names)g(as)g
 (accepted)i(b)m(y)e(the)g Ft(shopt)e Fu(builtin)1590
-4150 y(\(see)31 b(Section)h(4.2)f([Bash)g(Builtins],)g(page)g(50\).)
-1110 4322 y Ft(signal)192 b Fu(Signal)31 b(names.)1110
-4495 y Ft(stopped)144 b Fu(Names)31 b(of)g(stopp)s(ed)e(jobs,)h(if)g
-(job)g(con)m(trol)i(is)f(activ)m(e.)1110 4667 y Ft(user)288
+4854 y(\(see)31 b(Section)h(4.2)f([Bash)g(Builtins],)g(page)g(50\).)
+1110 5016 y Ft(signal)192 b Fu(Signal)31 b(names.)1110
+5178 y Ft(stopped)144 b Fu(Names)31 b(of)g(stopp)s(ed)e(jobs,)h(if)g
+(job)g(con)m(trol)i(is)f(activ)m(e.)1110 5340 y Ft(user)288
 b Fu(User)30 b(names.)41 b(Ma)m(y)32 b(also)f(b)s(e)f(sp)s(eci\014ed)f
-(as)i Ft(-u)p Fu(.)1110 4839 y Ft(variable)96 b Fu(Names)36
-b(of)g(all)g(shell)g(v)-5 b(ariables.)56 b(Ma)m(y)37
-b(also)f(b)s(e)f(sp)s(eci\014ed)g(as)1590 4949 y Ft(-v)p
-Fu(.)630 5121 y Ft(-C)30 b Fj(command)1110 5230 y Fr(command)35
-b Fu(is)e(executed)g(in)e(a)i(subshell)e(en)m(vironmen)m(t,)i(and)f
-(its)g(output)g(is)1110 5340 y(used)e(as)g(the)h(p)s(ossible)f
-(completions.)p eop end
+(as)i Ft(-u)p Fu(.)p eop end
 %%Page: 136 142
 TeXDict begin 136 141 bop 150 -116 a Fu(Chapter)30 b(8:)41
-b(Command)29 b(Line)i(Editing)2062 b(136)630 299 y Ft(-F)30
-b Fj(function)1110 408 y Fu(The)39 b(shell)g(function)g
-Fr(function)g Fu(is)g(executed)h(in)f(the)g(curren)m(t)g(shell)g(en)m
-(vi-)1110 518 y(ronmen)m(t.)72 b(When)41 b(it)g(is)g(executed,)k($1)c
-(is)g(the)g(name)g(of)g(the)g(command)1110 628 y(whose)34
-b(argumen)m(ts)h(are)g(b)s(eing)f(completed,)j($2)e(is)f(the)h(w)m(ord)
-f(b)s(eing)g(com-)1110 737 y(pleted,)44 b(and)c($3)i(is)e(the)h(w)m
-(ord)g(preceding)f(the)h(w)m(ord)f(b)s(eing)h(completed,)1110
-847 y(as)g(describ)s(ed)f(ab)s(o)m(v)m(e)i(\(see)g(Section)f(8.6)h
-([Programmable)g(Completion],)1110 956 y(page)30 b(131\).)42
-b(When)29 b(it)h(\014nishes,)e(the)h(p)s(ossible)g(completions)h(are)g
-(retriev)m(ed)1110 1066 y(from)g(the)g(v)-5 b(alue)31
-b(of)g(the)f Ft(COMPREPLY)e Fu(arra)m(y)j(v)-5 b(ariable.)630
-1240 y Ft(-G)30 b Fj(globpat)1110 1350 y Fu(The)39 b(\014lename)h
-(expansion)g(pattern)g Fr(globpat)j Fu(is)d(expanded)f(to)h(generate)
-1110 1459 y(the)31 b(p)s(ossible)e(completions.)630 1633
-y Ft(-P)h Fj(prefix)66 b Fr(pre\014x)39 b Fu(is)34 b(added)f(at)i(the)f
-(b)s(eginning)f(of)i(eac)m(h)g(p)s(ossible)e(completion)i(after)1110
-1743 y(all)c(other)g(options)g(ha)m(v)m(e)g(b)s(een)f(applied.)630
-1917 y Ft(-S)g Fj(suffix)66 b Fr(su\016x)26 b Fu(is)20
+b(Command)29 b(Line)i(Editing)2062 b(136)1110 299 y Ft(variable)96
+b Fu(Names)36 b(of)g(all)g(shell)g(v)-5 b(ariables.)56
+b(Ma)m(y)37 b(also)f(b)s(e)f(sp)s(eci\014ed)g(as)1590
+408 y Ft(-v)p Fu(.)630 573 y Ft(-C)30 b Fj(command)1110
+682 y Fr(command)35 b Fu(is)e(executed)g(in)e(a)i(subshell)e(en)m
+(vironmen)m(t,)i(and)f(its)g(output)g(is)1110 792 y(used)e(as)g(the)h
+(p)s(ossible)f(completions.)630 956 y Ft(-F)g Fj(function)1110
+1066 y Fu(The)39 b(shell)g(function)g Fr(function)g Fu(is)g(executed)h
+(in)f(the)g(curren)m(t)g(shell)g(en)m(vi-)1110 1176 y(ronmen)m(t.)72
+b(When)41 b(it)g(is)g(executed,)k($1)c(is)g(the)g(name)g(of)g(the)g
+(command)1110 1285 y(whose)34 b(argumen)m(ts)h(are)g(b)s(eing)f
+(completed,)j($2)e(is)f(the)h(w)m(ord)f(b)s(eing)g(com-)1110
+1395 y(pleted,)44 b(and)c($3)i(is)e(the)h(w)m(ord)g(preceding)f(the)h
+(w)m(ord)f(b)s(eing)h(completed,)1110 1504 y(as)g(describ)s(ed)f(ab)s
+(o)m(v)m(e)i(\(see)g(Section)f(8.6)h([Programmable)g(Completion],)1110
+1614 y(page)30 b(131\).)42 b(When)29 b(it)h(\014nishes,)e(the)h(p)s
+(ossible)g(completions)h(are)g(retriev)m(ed)1110 1724
+y(from)g(the)g(v)-5 b(alue)31 b(of)g(the)f Ft(COMPREPLY)e
+Fu(arra)m(y)j(v)-5 b(ariable.)630 1888 y Ft(-G)30 b Fj(globpat)1110
+1998 y Fu(The)39 b(\014lename)h(expansion)g(pattern)g
+Fr(globpat)j Fu(is)d(expanded)f(to)h(generate)1110 2107
+y(the)31 b(p)s(ossible)e(completions.)630 2271 y Ft(-P)h
+Fj(prefix)66 b Fr(pre\014x)39 b Fu(is)34 b(added)f(at)i(the)f(b)s
+(eginning)f(of)i(eac)m(h)g(p)s(ossible)e(completion)i(after)1110
+2381 y(all)c(other)g(options)g(ha)m(v)m(e)g(b)s(een)f(applied.)630
+2545 y Ft(-S)g Fj(suffix)66 b Fr(su\016x)26 b Fu(is)20
 b(app)s(ended)f(to)i(eac)m(h)h(p)s(ossible)e(completion)i(after)f(all)g
-(other)g(options)1110 2027 y(ha)m(v)m(e)32 b(b)s(een)d(applied.)630
-2201 y Ft(-W)h Fj(wordlist)1110 2310 y Fu(The)24 b Fr(w)m(ordlist)k
+(other)g(options)1110 2655 y(ha)m(v)m(e)32 b(b)s(een)d(applied.)630
+2819 y Ft(-W)h Fj(wordlist)1110 2929 y Fu(The)24 b Fr(w)m(ordlist)k
 Fu(is)d(split)g(using)f(the)h(c)m(haracters)i(in)d(the)i
-Ft(IFS)e Fu(sp)s(ecial)h(v)-5 b(ariable)1110 2420 y(as)36
+Ft(IFS)e Fu(sp)s(ecial)h(v)-5 b(ariable)1110 3039 y(as)36
 b(delimiters,)i(and)e(eac)m(h)h(resultan)m(t)g(w)m(ord)e(is)h
-(expanded.)57 b(The)35 b(p)s(ossible)1110 2529 y(completions)c(are)e
+(expanded.)57 b(The)35 b(p)s(ossible)1110 3148 y(completions)c(are)e
 (the)h(mem)m(b)s(ers)f(of)g(the)h(resultan)m(t)g(list)g(whic)m(h)f
-(matc)m(h)i(the)1110 2639 y(w)m(ord)f(b)s(eing)g(completed.)630
-2813 y Ft(-X)g Fj(filterpat)1110 2923 y Fr(\014lterpat)d
+(matc)m(h)i(the)1110 3258 y(w)m(ord)f(b)s(eing)g(completed.)630
+3422 y Ft(-X)g Fj(filterpat)1110 3532 y Fr(\014lterpat)d
 Fu(is)e(a)g(pattern)g(as)f(used)g(for)h(\014lename)g(expansion.)38
-b(It)25 b(is)g(applied)f(to)1110 3032 y(the)30 b(list)f(of)h(p)s
+b(It)25 b(is)g(applied)f(to)1110 3641 y(the)30 b(list)f(of)h(p)s
 (ossible)f(completions)h(generated)h(b)m(y)e(the)g(preceding)h(options)
-1110 3142 y(and)d(argumen)m(ts,)i(and)e(eac)m(h)i(completion)g(matc)m
-(hing)g Fr(\014lterpat)h Fu(is)e(remo)m(v)m(ed)1110 3251
+1110 3751 y(and)d(argumen)m(ts,)i(and)e(eac)m(h)i(completion)g(matc)m
+(hing)g Fr(\014lterpat)h Fu(is)e(remo)m(v)m(ed)1110 3861
 y(from)i(the)h(list.)42 b(A)30 b(leading)i(`)p Ft(!)p
 Fu(')e(in)g Fr(\014lterpat)j Fu(negates)f(the)f(pattern;)g(in)f(this)
-1110 3361 y(case,)i(an)m(y)e(completion)i(not)f(matc)m(hing)g
-Fr(\014lterpat)i Fu(is)d(remo)m(v)m(ed.)630 3535 y(The)35
+1110 3970 y(case,)i(an)m(y)e(completion)i(not)f(matc)m(hing)g
+Fr(\014lterpat)i Fu(is)d(remo)m(v)m(ed.)630 4134 y(The)35
 b(return)g(v)-5 b(alue)37 b(is)f(true)f(unless)h(an)f(in)m(v)-5
 b(alid)37 b(option)f(is)g(supplied,)g(an)g(option)h(other)630
-3645 y(than)h Ft(-p)g Fu(or)g Ft(-r)f Fu(is)h(supplied)f(without)i(a)f
+4244 y(than)h Ft(-p)g Fu(or)g Ft(-r)f Fu(is)h(supplied)f(without)i(a)f
 Fr(name)44 b Fu(argumen)m(t,)c(an)e(attempt)i(is)e(made)g(to)630
-3754 y(remo)m(v)m(e)32 b(a)e(completion)i(sp)s(eci\014cation)f(for)f(a)
+4354 y(remo)m(v)m(e)32 b(a)e(completion)i(sp)s(eci\014cation)f(for)f(a)
 h Fr(name)k Fu(for)30 b(whic)m(h)g(no)g(sp)s(eci\014cation)h(exists,)
-630 3864 y(or)f(an)h(error)f(o)s(ccurs)g(adding)g(a)g(completion)i(sp)s
-(eci\014cation.)150 4038 y Ft(compopt)870 4180 y(compopt)46
-b([-o)h Fj(option)p Ft(])f([-DE])g([+o)h Fj(option)p
-Ft(])f([)p Fj(name)p Ft(])630 4321 y Fu(Mo)s(dify)33
+630 4463 y(or)f(an)h(error)f(o)s(ccurs)g(adding)g(a)g(completion)i(sp)s
+(eci\014cation.)150 4628 y Ft(compopt)870 4765 y(compopt)46
+b([-o)h Fj(option)p Ft(])f([-DEI])g([+o)h Fj(option)p
+Ft(])e([)p Fj(name)p Ft(])630 4902 y Fu(Mo)s(dify)33
 b(completion)h(options)g(for)f(eac)m(h)h Fr(name)39 b
 Fu(according)34 b(to)g(the)f Fr(option)p Fu(s,)i(or)e(for)g(the)630
-4431 y(curren)m(tly-executing)46 b(completion)f(if)f(no)f
+5011 y(curren)m(tly-executing)46 b(completion)f(if)f(no)f
 Fr(name)5 b Fu(s)44 b(are)h(supplied.)80 b(If)43 b(no)h
-Fr(option)p Fu(s)h(are)630 4541 y(giv)m(en,)30 b(displa)m(y)e(the)g
+Fr(option)p Fu(s)h(are)630 5121 y(giv)m(en,)30 b(displa)m(y)e(the)g
 (completion)h(options)g(for)e(eac)m(h)i Fr(name)34 b
-Fu(or)27 b(the)i(curren)m(t)e(completion.)630 4650 y(The)f(p)s(ossible)
+Fu(or)27 b(the)i(curren)m(t)e(completion.)630 5230 y(The)f(p)s(ossible)
 g(v)-5 b(alues)27 b(of)f Fr(option)h Fu(are)g(those)g(v)-5
 b(alid)26 b(for)g(the)h Ft(complete)d Fu(builtin)i(describ)s(ed)630
-4760 y(ab)s(o)m(v)m(e.)41 b(The)28 b Ft(-D)g Fu(option)h(indicates)h
-(that)f(the)g(remaining)g(options)g(should)e(apply)h(to)i(the)630
-4869 y(\\default")j(command)f(completion;)i(that)f(is,)g(completion)g
-(attempted)g(on)f(a)g(command)630 4979 y(for)g(whic)m(h)g(no)g
-(completion)i(has)e(previously)g(b)s(een)g(de\014ned.)45
-b(The)32 b Ft(-E)f Fu(option)i(indicates)630 5089 y(that)24
-b(the)g(remaining)g(options)g(should)e(apply)h(to)i(\\empt)m(y")g
-(command)e(completion;)k(that)630 5198 y(is,)k(completion)g(attempted)h
-(on)e(a)h(blank)f(line.)630 5340 y(The)g Ft(-D)g Fu(option)g(tak)m(es)i
-(precedence)f(o)m(v)m(er)h Ft(-E)p Fu(.)p eop end
+5340 y(ab)s(o)m(v)m(e.)41 b(The)27 b Ft(-D)f Fu(option)i(indicates)g
+(that)g(other)f(supplied)f(options)i(should)e(apply)h(to)h(the)p
+eop end
 %%Page: 137 143
 TeXDict begin 137 142 bop 150 -116 a Fu(Chapter)30 b(8:)41
-b(Command)29 b(Line)i(Editing)2062 b(137)630 299 y(The)23
-b(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
-408 y(to)32 b(mo)s(dify)f(the)g(options)h(for)f(a)h Fr(name)k
-Fu(for)31 b(whic)m(h)g(no)g(completion)i(sp)s(eci\014cation)f(exists,)
-630 518 y(or)e(an)h(output)f(error)g(o)s(ccurs.)150 772
-y Fs(8.8)68 b(A)44 b(Programmable)j(Completion)f(Example)150
-931 y Fu(The)37 b(most)g(common)g(w)m(a)m(y)i(to)e(obtain)h(additional)
-g(completion)g(functionalit)m(y)h(b)s(ey)m(ond)d(the)i(default)150
-1041 y(actions)29 b Ft(complete)d Fu(and)i Ft(compgen)e
-Fu(pro)m(vide)i(is)h(to)f(use)g(a)h(shell)f(function)g(and)g(bind)e(it)
-j(to)g(a)g(particular)150 1151 y(command)h(using)g Ft(complete)e(-F)p
-Fu(.)275 1294 y(The)j(follo)m(wing)j(function)e(pro)m(vides)g
-(completions)i(for)e(the)g Ft(cd)g Fu(builtin.)46 b(It)32
-b(is)h(a)f(reasonably)h(go)s(o)s(d)150 1403 y(example)41
+b(Command)29 b(Line)i(Editing)2062 b(137)630 299 y(\\default")33
+b(command)f(completion;)i(that)f(is,)g(completion)g(attempted)g(on)f(a)
+g(command)630 408 y(for)g(whic)m(h)g(no)g(completion)i(has)e
+(previously)g(b)s(een)g(de\014ned.)45 b(The)32 b Ft(-E)f
+Fu(option)i(indicates)630 518 y(that)23 b(other)f(supplied)e(options)j
+(should)e(apply)g(to)i(\\empt)m(y")g(command)f(completion;)k(that)630
+628 y(is,)36 b(completion)g(attempted)g(on)e(a)h(blank)g(line.)54
+b(The)34 b Ft(-I)g Fu(option)h(indicates)g(that)h(other)630
+737 y(supplied)26 b(options)h(should)g(apply)f(to)i(completion)h(on)e
+(the)g(inital)i(non-assignmen)m(t)e(w)m(ord)630 847 y(on)37
+b(the)f(line,)j(or)e(after)g(a)g(command)f(delimiter)i(suc)m(h)e(as)h
+(`)p Ft(;)p Fu(')g(or)f(`)p Ft(|)p Fu(',)j(whic)m(h)e(is)f(usually)630
+956 y(command)30 b(name)h(completion.)630 1091 y(If)k(m)m(ultiple)i
+(options)f(are)g(supplied,)g(the)g Ft(-D)g Fu(option)g(tak)m(es)h
+(precedence)g(o)m(v)m(er)g Ft(-E)p Fu(,)g(and)630 1200
+y(b)s(oth)30 b(tak)m(e)i(precedence)e(o)m(v)m(er)i Ft(-I)630
+1335 y Fu(The)23 b(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 1444 y(to)32 b(mo)s(dify)f(the)g(options)h(for)f(a)h
+Fr(name)k Fu(for)31 b(whic)m(h)g(no)g(completion)i(sp)s(eci\014cation)f
+(exists,)630 1554 y(or)e(an)h(output)f(error)g(o)s(ccurs.)150
+1794 y Fs(8.8)68 b(A)44 b(Programmable)j(Completion)f(Example)150
+1954 y Fu(The)37 b(most)g(common)g(w)m(a)m(y)i(to)e(obtain)h
+(additional)g(completion)g(functionalit)m(y)h(b)s(ey)m(ond)d(the)i
+(default)150 2063 y(actions)29 b Ft(complete)d Fu(and)i
+Ft(compgen)e Fu(pro)m(vide)i(is)h(to)f(use)g(a)h(shell)f(function)g
+(and)g(bind)e(it)j(to)g(a)g(particular)150 2173 y(command)h(using)g
+Ft(complete)e(-F)p Fu(.)275 2307 y(The)j(follo)m(wing)j(function)e(pro)
+m(vides)g(completions)i(for)e(the)g Ft(cd)g Fu(builtin.)46
+b(It)32 b(is)h(a)f(reasonably)h(go)s(o)s(d)150 2417 y(example)41
 b(of)g(what)f(shell)h(functions)f(m)m(ust)g(do)h(when)e(used)h(for)g
-(completion.)73 b(This)39 b(function)h(uses)150 1513
+(completion.)73 b(This)39 b(function)h(uses)150 2526
 y(the)32 b(w)m(ord)f(passed)g(as)h Ft($2)f Fu(to)h(determine)g(the)f
 (directory)h(name)g(to)g(complete.)46 b(Y)-8 b(ou)32
-b(can)g(also)g(use)g(the)150 1623 y Ft(COMP_WORDS)c Fu(arra)m(y)i(v)-5
+b(can)g(also)g(use)g(the)150 2636 y Ft(COMP_WORDS)c Fu(arra)m(y)i(v)-5
 b(ariable;)32 b(the)e(curren)m(t)h(w)m(ord)f(is)g(indexed)g(b)m(y)g
-(the)h Ft(COMP_CWORD)c Fu(v)-5 b(ariable.)275 1766 y(The)42
+(the)h Ft(COMP_CWORD)c Fu(v)-5 b(ariable.)275 2770 y(The)42
 b(function)h(relies)h(on)e(the)i Ft(complete)c Fu(and)j
 Ft(compgen)e Fu(builtins)h(to)i(do)f(m)m(uc)m(h)g(of)g(the)h(w)m(ork,)
-150 1875 y(adding)25 b(only)h(the)g(things)g(that)g(the)g(Bash)g
+150 2880 y(adding)25 b(only)h(the)g(things)g(that)g(the)g(Bash)g
 Ft(cd)f Fu(do)s(es)g(b)s(ey)m(ond)g(accepting)j(basic)e(directory)g
-(names:)38 b(tilde)150 1985 y(expansion)22 b(\(see)h(Section)g(3.5.2)g
+(names:)38 b(tilde)150 2989 y(expansion)22 b(\(see)h(Section)g(3.5.2)g
 ([Tilde)g(Expansion],)g(page)g(23\),)i(searc)m(hing)e(directories)g(in)
-e Fr($CDP)-8 b(A)g(TH)p Fu(,)150 2095 y(whic)m(h)21 b(is)h(describ)s
+e Fr($CDP)-8 b(A)g(TH)p Fu(,)150 3099 y(whic)m(h)21 b(is)h(describ)s
 (ed)e(ab)s(o)m(v)m(e)j(\(see)f(Section)h(4.1)f([Bourne)g(Shell)f
 (Builtins],)j(page)e(43\),)j(and)c(basic)h(supp)s(ort)150
-2204 y(for)31 b(the)h Ft(cdable_vars)d Fu(shell)i(option)h(\(see)h
+3208 y(for)31 b(the)h Ft(cdable_vars)d Fu(shell)i(option)h(\(see)h
 (Section)f(4.3.2)i([The)d(Shopt)g(Builtin],)i(page)f(65\).)46
-b Ft(_comp_)150 2314 y(cd)30 b Fu(mo)s(di\014es)g(the)h(v)-5
+b Ft(_comp_)150 3318 y(cd)30 b Fu(mo)s(di\014es)g(the)h(v)-5
 b(alue)31 b(of)g Fr(IFS)36 b Fu(so)31 b(that)g(it)g(con)m(tains)h(only)
 f(a)g(newline)g(to)h(accommo)s(date)g(\014le)f(names)150
-2423 y(con)m(taining)i(spaces)g(and)e(tabs)h({)g Ft(compgen)e
+3428 y(con)m(taining)i(spaces)g(and)e(tabs)h({)g Ft(compgen)e
 Fu(prin)m(ts)h(the)h(p)s(ossible)f(completions)i(it)g(generates)g(one)f
-(p)s(er)150 2533 y(line.)275 2676 y(P)m(ossible)24 b(completions)h(go)g
+(p)s(er)150 3537 y(line.)275 3671 y(P)m(ossible)24 b(completions)h(go)g
 (in)m(to)g(the)f Fr(COMPREPL)-8 b(Y)36 b Fu(arra)m(y)24
 b(v)-5 b(ariable,)26 b(one)e(completion)i(p)s(er)c(arra)m(y)150
-2786 y(elemen)m(t.)42 b(The)30 b(programmable)g(completion)i(system)e
+3781 y(elemen)m(t.)42 b(The)30 b(programmable)g(completion)i(system)e
 (retriev)m(es)h(the)g(completions)g(from)f(there)g(when)150
-2895 y(the)h(function)f(returns.)390 3039 y Ft(#)47 b(A)h(completion)d
-(function)g(for)i(the)g(cd)g(builtin)390 3148 y(#)g(based)g(on)g(the)g
+3891 y(the)h(function)f(returns.)390 4025 y Ft(#)47 b(A)h(completion)d
+(function)g(for)i(the)g(cd)g(builtin)390 4134 y(#)g(based)g(on)g(the)g
 (cd)g(completion)e(function)h(from)g(the)h(bash_completion)d(package)
-390 3258 y(_comp_cd\(\))390 3367 y({)581 3477 y(local)i(IFS=$')g
-(\\t\\n')190 b(#)47 b(normalize)f(IFS)581 3587 y(local)g(cur)h
-(_skipdot)f(_cdpath)581 3696 y(local)g(i)i(j)f(k)581
-3915 y(#)g(Tilde)g(expansion,)e(with)h(side)h(effect)f(of)h(expanding)f
-(tilde)g(to)h(full)g(pathname)581 4025 y(case)g("$2")f(in)581
-4134 y(\\~*\))190 b(eval)46 b(cur="$2")g(;;)581 4244
-y(*\))286 b(cur=$2)46 b(;;)581 4354 y(esac)581 4573 y(#)h(no)h(cdpath)e
-(or)h(absolute)e(pathname)h(--)h(straight)f(directory)f(completion)581
-4682 y(if)i([[)g(-z)g("${CDPATH:-}")e(]])i(||)g([[)g("$cur")f(==)h
-(@\(./*|../*|/*\))d(]];)j(then)772 4792 y(#)g(compgen)f(prints)g(paths)
-h(one)f(per)h(line;)g(could)f(also)h(use)g(while)f(loop)772
-4902 y(IFS=$'\\n')772 5011 y(COMPREPLY=\()f($\(compgen)g(-d)i(--)g
-("$cur"\))f(\))772 5121 y(IFS=$')g(\\t\\n')581 5230 y(#)h
-(CDPATH+directories)c(in)k(the)g(current)f(directory)f(if)j(not)e(in)i
-(CDPATH)581 5340 y(else)p eop end
+390 4244 y(_comp_cd\(\))390 4354 y({)581 4463 y(local)i(IFS=$')g
+(\\t\\n')190 b(#)47 b(normalize)f(IFS)581 4573 y(local)g(cur)h
+(_skipdot)f(_cdpath)581 4682 y(local)g(i)i(j)f(k)581
+4902 y(#)g(Tilde)g(expansion,)e(which)h(also)h(expands)f(tilde)g(to)h
+(full)g(pathname)581 5011 y(case)g("$2")f(in)581 5121
+y(\\~*\))190 b(eval)46 b(cur="$2")g(;;)581 5230 y(*\))286
+b(cur=$2)46 b(;;)581 5340 y(esac)p eop end
 %%Page: 138 144
 TeXDict begin 138 143 bop 150 -116 a Fu(Chapter)30 b(8:)41
-b(Command)29 b(Line)i(Editing)2062 b(138)772 299 y Ft(IFS=$'\\n')772
-408 y(_skipdot=false)772 518 y(#)47 b(preprocess)e(CDPATH)h(to)i
-(convert)d(null)i(directory)e(names)i(to)g(.)772 628
-y(_cdpath=${CDPATH/#:/.:})772 737 y(_cdpath=${_cdpath//::/:.)o(:})772
-847 y(_cdpath=${_cdpath/\045:/:.})772 956 y(for)g(i)g(in)g
-(${_cdpath//:/$'\\n'};)c(do)963 1066 y(if)k([[)g($i)g(-ef)g(.)h(]];)f
-(then)f(_skipdot=true;)e(fi)963 1176 y(k="${#COMPREPLY[@]}")963
-1285 y(for)j(j)g(in)g($\()g(compgen)f(-d)h(--)h("$i/$cur")d(\);)i(do)
-1154 1395 y(COMPREPLY[k++]=${j#$i/})375 b(#)48 b(cut)f(off)f(directory)
-963 1504 y(done)772 1614 y(done)772 1724 y($_skipdot)f(||)i
+b(Command)29 b(Line)i(Editing)2062 b(138)581 408 y Ft(#)47
+b(no)h(cdpath)e(or)h(absolute)e(pathname)h(--)h(straight)f(directory)f
+(completion)581 518 y(if)i([[)g(-z)g("${CDPATH:-}")e(]])i(||)g([[)g
+("$cur")f(==)h(@\(./*|../*|/*\))d(]];)j(then)772 628
+y(#)g(compgen)f(prints)g(paths)h(one)f(per)h(line;)g(could)f(also)h
+(use)g(while)f(loop)772 737 y(IFS=$'\\n')772 847 y(COMPREPLY=\()f
+($\(compgen)g(-d)i(--)g("$cur"\))f(\))772 956 y(IFS=$')g(\\t\\n')581
+1066 y(#)h(CDPATH+directories)c(in)k(the)g(current)f(directory)f(if)j
+(not)e(in)i(CDPATH)581 1176 y(else)772 1285 y(IFS=$'\\n')772
+1395 y(_skipdot=false)772 1504 y(#)f(preprocess)e(CDPATH)h(to)i
+(convert)d(null)i(directory)e(names)i(to)g(.)772 1614
+y(_cdpath=${CDPATH/#:/.:})772 1724 y(_cdpath=${_cdpath//::/:.)o(:})772
+1833 y(_cdpath=${_cdpath/\045:/:.})772 1943 y(for)g(i)g(in)g
+(${_cdpath//:/$'\\n'};)c(do)963 2052 y(if)k([[)g($i)g(-ef)g(.)h(]];)f
+(then)f(_skipdot=true;)e(fi)963 2162 y(k="${#COMPREPLY[@]}")963
+2271 y(for)j(j)g(in)g($\()g(compgen)f(-d)h(--)h("$i/$cur")d(\);)i(do)
+1154 2381 y(COMPREPLY[k++]=${j#$i/})375 b(#)48 b(cut)f(off)f(directory)
+963 2491 y(done)772 2600 y(done)772 2710 y($_skipdot)f(||)i
 (COMPREPLY+=\()e($\(compgen)g(-d)i(--)g("$cur"\))f(\))772
-1833 y(IFS=$')g(\\t\\n')581 1943 y(fi)581 2162 y(#)h(variable)f(names)g
+2819 y(IFS=$')g(\\t\\n')581 2929 y(fi)581 3148 y(#)h(variable)f(names)g
 (if)h(appropriate)e(shell)i(option)f(set)h(and)f(no)i(completions)581
-2271 y(if)f(shopt)f(-q)i(cdable_vars)c(&&)k([[)f(${#COMPREPLY[@]})c
-(-eq)k(0)g(]];)g(then)772 2381 y(COMPREPLY=\()e($\(compgen)g(-v)i(--)g
-("$cur"\))f(\))581 2491 y(fi)581 2710 y(return)g(0)390
-2819 y(})275 2973 y Fu(W)-8 b(e)31 b(install)g(the)g(completion)h
+3258 y(if)f(shopt)f(-q)i(cdable_vars)c(&&)k([[)f(${#COMPREPLY[@]})c
+(-eq)k(0)g(]];)g(then)772 3367 y(COMPREPLY=\()e($\(compgen)g(-v)i(--)g
+("$cur"\))f(\))581 3477 y(fi)581 3696 y(return)g(0)390
+3806 y(})275 3952 y Fu(W)-8 b(e)31 b(install)g(the)g(completion)h
 (function)e(using)f(the)i Ft(-F)f Fu(option)h(to)g Ft(complete)p
-Fu(:)390 3126 y Ft(#)47 b(Tell)g(readline)f(to)h(quote)f(appropriate)f
-(and)i(append)f(slashes)g(to)h(directories;)390 3236
+Fu(:)390 4098 y Ft(#)47 b(Tell)g(readline)f(to)h(quote)f(appropriate)f
+(and)i(append)f(slashes)g(to)h(directories;)390 4208
 y(#)g(use)g(the)g(bash)g(default)f(completion)f(for)i(other)f
-(arguments)390 3345 y(complete)g(-o)h(filenames)e(-o)i(nospace)f(-o)h
-(bashdefault)e(-F)i(_comp_cd)f(cd)150 3499 y Fu(Since)33
+(arguments)390 4317 y(complete)g(-o)h(filenames)e(-o)i(nospace)f(-o)h
+(bashdefault)e(-F)i(_comp_cd)f(cd)150 4463 y Fu(Since)33
 b(w)m(e'd)g(lik)m(e)i(Bash)e(and)f(Readline)i(to)g(tak)m(e)g(care)g(of)
 f(some)h(of)f(the)g(other)h(details)g(for)e(us,)i(w)m(e)f(use)150
-3608 y(sev)m(eral)43 b(other)g(options)f(to)h(tell)g(Bash)f(and)f
+4573 y(sev)m(eral)43 b(other)g(options)f(to)h(tell)g(Bash)f(and)f
 (Readline)i(what)f(to)g(do.)76 b(The)41 b Ft(-o)30 b(filenames)39
-b Fu(option)150 3718 y(tells)j(Readline)g(that)g(the)f(p)s(ossible)g
+b Fu(option)150 4682 y(tells)j(Readline)g(that)g(the)f(p)s(ossible)g
 (completions)h(should)f(b)s(e)f(treated)i(as)g(\014lenames,)i(and)d
-(quoted)150 3828 y(appropriately)-8 b(.)53 b(That)34
+(quoted)150 4792 y(appropriately)-8 b(.)53 b(That)34
 b(option)h(will)g(also)g(cause)g(Readline)g(to)g(app)s(end)e(a)h(slash)
-g(to)h(\014lenames)g(it)g(can)150 3937 y(determine)i(are)g(directories)
+g(to)h(\014lenames)g(it)g(can)150 4902 y(determine)i(are)g(directories)
 h(\(whic)m(h)g(is)f(wh)m(y)f(w)m(e)i(migh)m(t)f(w)m(an)m(t)h(to)g
-(extend)f Ft(_comp_cd)e Fu(to)i(app)s(end)f(a)150 4047
+(extend)f Ft(_comp_cd)e Fu(to)i(app)s(end)f(a)150 5011
 y(slash)22 b(if)g(w)m(e're)h(using)f(directories)h(found)e(via)i
 Fr(CDP)-8 b(A)g(TH)10 b Fu(:)37 b(Readline)23 b(can't)g(tell)g(those)g
-(completions)h(are)150 4156 y(directories\).)45 b(The)31
+(completions)h(are)150 5121 y(directories\).)45 b(The)31
 b Ft(-o)f(nospace)f Fu(option)j(tells)g(Readline)g(to)h(not)e(app)s
-(end)f(a)i(space)g(c)m(haracter)h(to)f(the)150 4266 y(directory)c
+(end)f(a)i(space)g(c)m(haracter)h(to)f(the)150 5230 y(directory)c
 (name,)h(in)f(case)h(w)m(e)f(w)m(an)m(t)h(to)f(app)s(end)f(to)h(it.)41
 b(The)27 b Ft(-o)j(bashdefault)25 b Fu(option)j(brings)f(in)h(the)150
-4376 y(rest)h(of)f(the)h Ft(")p Fu(Bash)f(default)p Ft(")h
+5340 y(rest)h(of)f(the)h Ft(")p Fu(Bash)f(default)p Ft(")h
 Fu(completions)g({)g(p)s(ossible)f(completion)i(that)f(Bash)f(adds)g
-(to)h(the)g(default)150 4485 y(Readline)40 b(set.)68
-b(These)39 b(include)g(things)g(lik)m(e)i(command)e(name)g(completion,)
-44 b(v)-5 b(ariable)40 b(completion)150 4595 y(for)i(w)m(ords)g(b)s
-(eginning)f(with)h(`)p Ft({)p Fu(',)k(completions)e(con)m(taining)f
-(pathname)g(expansion)f(patterns)g(\(see)150 4704 y(Section)31
-b(3.5.8)h([Filename)g(Expansion],)e(page)i(31\),)f(and)f(so)h(on.)275
-4858 y(Once)39 b(installed)i(using)e Ft(complete)p Fu(,)h
-Ft(_comp_cd)d Fu(will)j(b)s(e)g(called)g(ev)m(ery)h(time)f(w)m(e)g
-(attempt)h(w)m(ord)150 4967 y(completion)32 b(for)e(a)h
-Ft(cd)e Fu(command.)275 5121 y(Man)m(y)34 b(more)g(examples)g({)g(an)g
-(extensiv)m(e)h(collection)i(of)c(completions)i(for)f(most)g(of)g(the)g
-(common)150 5230 y(GNU,)g(Unix,)h(and)d(Lin)m(ux)h(commands)g({)h(are)g
-(a)m(v)-5 b(ailable)36 b(as)e(part)f(of)h(the)f(bash)p
-2943 5230 28 4 v 39 w(completion)i(pro)5 b(ject.)150
-5340 y(This)33 b(is)h(installed)h(b)m(y)f(default)g(on)g(man)m(y)h
-(GNU/Lin)m(ux)f(distributions.)51 b(Originally)35 b(written)f(b)m(y)g
-(Ian)p eop end
+(to)h(the)g(default)p eop end
 %%Page: 139 145
 TeXDict begin 139 144 bop 150 -116 a Fu(Chapter)30 b(8:)41
-b(Command)29 b(Line)i(Editing)2062 b(139)150 299 y(Macdonald,)44
-b(the)d(pro)5 b(ject)41 b(no)m(w)f(liv)m(es)i(at)f Ft(http:)8
-b(/)g(/)g(bash-completion)g(.)g(alioth)g(.)g(debi)o(an)g(.)g(org)f(/)h
-Fu(.)150 408 y(There)30 b(are)h(p)s(orts)e(for)h(other)h(systems)f(suc)
-m(h)g(as)h(Solaris)g(and)f(Mac)h(OS)f(X.)275 543 y(An)54
-b(older)h(v)m(ersion)h(of)f(the)g(bash)p 1532 543 28
-4 v 40 w(completion)h(pac)m(k)-5 b(age)57 b(is)e(distributed)f(with)h
-(bash)f(in)h(the)150 653 y Ft(examples/complete)26 b
-Fu(sub)s(directory)-8 b(.)p eop end
+b(Command)29 b(Line)i(Editing)2062 b(139)150 299 y(Readline)40
+b(set.)68 b(These)39 b(include)g(things)g(lik)m(e)i(command)e(name)g
+(completion,)44 b(v)-5 b(ariable)40 b(completion)150
+408 y(for)i(w)m(ords)g(b)s(eginning)f(with)h(`)p Ft({)p
+Fu(',)k(completions)e(con)m(taining)f(pathname)g(expansion)f(patterns)g
+(\(see)150 518 y(Section)31 b(3.5.8)h([Filename)g(Expansion],)e(page)i
+(32\),)f(and)f(so)h(on.)275 653 y(Once)39 b(installed)i(using)e
+Ft(complete)p Fu(,)h Ft(_comp_cd)d Fu(will)j(b)s(e)g(called)g(ev)m(ery)
+h(time)f(w)m(e)g(attempt)h(w)m(ord)150 762 y(completion)32
+b(for)e(a)h Ft(cd)e Fu(command.)275 897 y(Man)m(y)34
+b(more)g(examples)g({)g(an)g(extensiv)m(e)h(collection)i(of)c
+(completions)i(for)f(most)g(of)g(the)g(common)150 1006
+y(GNU,)g(Unix,)h(and)d(Lin)m(ux)h(commands)g({)h(are)g(a)m(v)-5
+b(ailable)36 b(as)e(part)f(of)h(the)f(bash)p 2943 1006
+28 4 v 39 w(completion)i(pro)5 b(ject.)150 1116 y(This)33
+b(is)h(installed)h(b)m(y)f(default)g(on)g(man)m(y)h(GNU/Lin)m(ux)f
+(distributions.)51 b(Originally)35 b(written)f(b)m(y)g(Ian)150
+1225 y(Macdonald,)44 b(the)d(pro)5 b(ject)41 b(no)m(w)f(liv)m(es)i(at)f
+Ft(http:)8 b(/)g(/)g(bash-completion)g(.)g(alioth)g(.)g(debi)o(an)g(.)g
+(org)f(/)h Fu(.)150 1335 y(There)30 b(are)h(p)s(orts)e(for)h(other)h
+(systems)f(suc)m(h)g(as)h(Solaris)g(and)f(Mac)h(OS)f(X.)275
+1469 y(An)54 b(older)h(v)m(ersion)h(of)f(the)g(bash)p
+1532 1469 V 40 w(completion)h(pac)m(k)-5 b(age)57 b(is)e(distributed)f
+(with)h(bash)f(in)h(the)150 1579 y Ft(examples/complete)26
+b Fu(sub)s(directory)-8 b(.)p eop end
 %%Page: 140 146
 TeXDict begin 140 145 bop 3614 -116 a Fu(140)150 299
 y Fp(9)80 b(Using)53 b(History)g(In)l(teractiv)l(ely)150
@@ -18216,187 +18310,203 @@ m(ts)f(to)h(a)g(previous)f(command)g(in)m(to)i(the)e(curren)m(t)150
 3395 y(input)f(line,)i(or)g(\014x)f(errors)f(in)h(previous)g(commands)g
 (quic)m(kly)-8 b(.)275 3532 y(History)24 b(expansion)f(is)h(p)s
 (erformed)e(immediately)j(after)f(a)g(complete)h(line)f(is)g(read,)h(b)
-s(efore)e(the)h(shell)150 3642 y(breaks)30 b(it)h(in)m(to)h(w)m(ords,)e
-(and)g(is)g(p)s(erformed)f(on)i(eac)m(h)g(line)g(individually)f
-(without)h(taking)g(quoting)g(on)150 3751 y(previous)f(lines)g(in)m(to)
-i(accoun)m(t.)275 3888 y(History)27 b(expansion)f(tak)m(es)i(place)f
-(in)f(t)m(w)m(o)i(parts.)39 b(The)26 b(\014rst)g(is)g(to)h(determine)g
-(whic)m(h)f(line)h(from)f(the)150 3998 y(history)i(list)g(should)f(b)s
-(e)g(used)g(during)g(substitution.)39 b(The)27 b(second)h(is)g(to)h
-(select)g(p)s(ortions)e(of)h(that)h(line)150 4107 y(for)d(inclusion)f
-(in)m(to)i(the)f(curren)m(t)f(one.)40 b(The)25 b(line)h(selected)h
-(from)f(the)g(history)f(is)h(called)h(the)f Fr(ev)m(en)m(t)p
-Fu(,)j(and)150 4217 y(the)21 b(p)s(ortions)g(of)g(that)h(line)f(that)h
-(are)g(acted)g(up)s(on)e(are)h(called)h Fr(w)m(ords)p
-Fu(.)38 b(V)-8 b(arious)21 b Fr(mo)s(di\014ers)j Fu(are)e(a)m(v)-5
-b(ailable)150 4327 y(to)35 b(manipulate)f(the)g(selected)i(w)m(ords.)51
-b(The)33 b(line)h(is)g(brok)m(en)g(in)m(to)h(w)m(ords)e(in)h(the)g
-(same)h(fashion)e(that)150 4436 y(Bash)i(do)s(es,)h(so)f(that)h(sev)m
-(eral)g(w)m(ords)e(surrounded)f(b)m(y)i(quotes)g(are)g(considered)g
-(one)g(w)m(ord.)54 b(History)150 4546 y(expansions)34
-b(are)g(in)m(tro)s(duced)f(b)m(y)h(the)g(app)s(earance)g(of)g(the)g
-(history)g(expansion)g(c)m(haracter,)i(whic)m(h)e(is)150
-4655 y(`)p Ft(!)p Fu(')39 b(b)m(y)g(default.)66 b(Only)38
-b(`)p Ft(\\)p Fu(')h(and)f(`)p Ft(')p Fu(')h(ma)m(y)h(b)s(e)e(used)g
-(to)h(escap)s(e)h(the)f(history)f(expansion)h(c)m(haracter,)150
-4765 y(but)27 b(the)i(history)f(expansion)g(c)m(haracter)i(is)e(also)h
-(treated)g(as)g(quoted)f(if)g(it)h(immediately)h(precedes)e(the)150
-4874 y(closing)j(double)f(quote)h(in)f(a)h(double-quoted)g(string.)275
-5011 y(Sev)m(eral)48 b(shell)g(options)h(settable)g(with)e(the)h
-Ft(shopt)f Fu(builtin)g(\(see)i(Section)f(4.3.2)i([The)e(Shopt)150
-5121 y(Builtin],)24 b(page)e(65\))h(ma)m(y)e(b)s(e)g(used)g(to)h
-(tailor)g(the)g(b)s(eha)m(vior)f(of)h(history)f(expansion.)37
-b(If)21 b(the)h Ft(histverify)150 5230 y Fu(shell)35
-b(option)f(is)h(enabled,)g(and)f(Readline)h(is)f(b)s(eing)g(used,)h
-(history)g(substitutions)e(are)i(not)g(immedi-)150 5340
-y(ately)i(passed)d(to)i(the)g(shell)f(parser.)55 b(Instead,)37
-b(the)e(expanded)g(line)g(is)h(reloaded)g(in)m(to)g(the)f(Readline)p
-eop end
+s(efore)e(the)h(shell)150 3642 y(breaks)32 b(it)i(in)m(to)f(w)m(ords,)g
+(and)f(is)h(p)s(erformed)e(on)h(eac)m(h)i(line)f(individually)-8
+b(.)48 b(Bash)33 b(attempts)g(to)h(inform)150 3751 y(the)d(history)f
+(expansion)g(functions)g(ab)s(out)g(quoting)h(still)g(in)f(e\013ect)i
+(from)e(previous)g(lines.)275 3888 y(History)37 b(expansion)f(tak)m(es)
+i(place)g(in)e(t)m(w)m(o)i(parts.)59 b(The)36 b(\014rst)g(is)h(to)g
+(determine)g(whic)m(h)f(line)h(from)150 3998 y(the)42
+b(history)f(list)h(should)e(b)s(e)h(used)f(during)g(substitution.)74
+b(The)40 b(second)i(is)f(to)h(select)h(p)s(ortions)e(of)150
+4107 y(that)31 b(line)g(for)f(inclusion)h(in)m(to)g(the)g(curren)m(t)f
+(one.)42 b(The)30 b(line)h(selected)h(from)e(the)h(history)f(is)h
+(called)h(the)150 4217 y Fr(ev)m(en)m(t)p Fu(,)e(and)c(the)i(p)s
+(ortions)e(of)i(that)f(line)h(that)g(are)f(acted)i(up)s(on)c(are)j
+(called)g Fr(w)m(ords)p Fu(.)39 b(V)-8 b(arious)28 b
+Fr(mo)s(di\014ers)150 4327 y Fu(are)33 b(a)m(v)-5 b(ailable)36
+b(to)d(manipulate)h(the)f(selected)h(w)m(ords.)48 b(The)32
+b(line)i(is)f(brok)m(en)f(in)m(to)i(w)m(ords)f(in)f(the)i(same)150
+4436 y(fashion)23 b(that)g(Bash)g(do)s(es,)h(so)f(that)h(sev)m(eral)g
+(w)m(ords)e(surrounded)e(b)m(y)j(quotes)g(are)g(considered)g(one)g(w)m
+(ord.)150 4546 y(History)37 b(expansions)g(are)g(in)m(tro)s(duced)f(b)m
+(y)h(the)g(app)s(earance)g(of)g(the)g(history)f(expansion)h(c)m
+(haracter,)150 4655 y(whic)m(h)30 b(is)h(`)p Ft(!)p Fu(')f(b)m(y)g
+(default.)275 4792 y(History)c(expansion)g(implemen)m(ts)h(shell-lik)m
+(e)h(quoting)f(con)m(v)m(en)m(tions:)40 b(a)27 b(bac)m(kslash)g(can)f
+(b)s(e)g(used)f(to)150 4902 y(remo)m(v)m(e)h(the)e(sp)s(ecial)g
+(handling)g(for)g(the)g(next)g(c)m(haracter;)k(single)d(quotes)g
+(enclose)g(v)m(erbatim)g(sequences)150 5011 y(of)k(c)m(haracters,)i
+(and)e(can)g(b)s(e)g(used)f(to)i(inhibit)f(history)g(expansion;)g(and)g
+(c)m(haracters)i(enclosed)e(within)150 5121 y(double)h(quotes)i(ma)m(y)
+f(b)s(e)f(sub)5 b(ject)31 b(to)h(history)f(expansion,)g(since)g(bac)m
+(kslash)g(can)h(escap)s(e)f(the)g(history)150 5230 y(expansion)e(c)m
+(haracter,)j(but)d(single)h(quotes)g(ma)m(y)h(not,)f(since)g(they)g
+(are)g(not)f(treated)i(sp)s(ecially)f(within)150 5340
+y(double)g(quotes.)p eop end
 %%Page: 143 149
 TeXDict begin 143 148 bop 150 -116 a Fu(Chapter)30 b(9:)41
-b(Using)30 b(History)h(In)m(teractiv)m(ely)1925 b(143)150
-299 y(editing)29 b(bu\013er)f(for)h(further)e(mo)s(di\014cation.)41
-b(If)28 b(Readline)h(is)g(b)s(eing)f(used,)h(and)f(the)h
-Ft(histreedit)d Fu(shell)150 408 y(option)e(is)g(enabled,)h(a)g(failed)
-f(history)g(expansion)g(will)g(b)s(e)f(reloaded)h(in)m(to)h(the)f
-(Readline)g(editing)h(bu\013er)150 518 y(for)31 b(correction.)43
+b(Using)30 b(History)h(In)m(teractiv)m(ely)1925 b(143)275
+299 y(When)41 b(using)g(the)h(shell,)i(only)e(`)p Ft(\\)p
+Fu(')g(and)e(`)p Ft(')p Fu(')i(ma)m(y)g(b)s(e)f(used)g(to)h(escap)s(e)g
+(the)g(history)f(expansion)150 408 y(c)m(haracter,)e(but)34
+b(the)i(history)g(expansion)f(c)m(haracter)i(is)f(also)g(treated)h(as)e
+(quoted)h(if)g(it)g(immediately)150 518 y(precedes)30
+b(the)h(closing)g(double)f(quote)h(in)f(a)h(double-quoted)g(string.)275
+658 y(Sev)m(eral)48 b(shell)g(options)h(settable)g(with)e(the)h
+Ft(shopt)f Fu(builtin)g(\(see)i(Section)f(4.3.2)i([The)e(Shopt)150
+767 y(Builtin],)24 b(page)e(65\))h(ma)m(y)e(b)s(e)g(used)g(to)h(tailor)
+g(the)g(b)s(eha)m(vior)f(of)h(history)f(expansion.)37
+b(If)21 b(the)h Ft(histverify)150 877 y Fu(shell)35 b(option)f(is)h
+(enabled,)g(and)f(Readline)h(is)f(b)s(eing)g(used,)h(history)g
+(substitutions)e(are)i(not)g(immedi-)150 987 y(ately)i(passed)d(to)i
+(the)g(shell)f(parser.)55 b(Instead,)37 b(the)e(expanded)g(line)g(is)h
+(reloaded)g(in)m(to)g(the)f(Readline)150 1096 y(editing)29
+b(bu\013er)f(for)h(further)e(mo)s(di\014cation.)41 b(If)28
+b(Readline)h(is)g(b)s(eing)f(used,)h(and)f(the)h Ft(histreedit)d
+Fu(shell)150 1206 y(option)e(is)g(enabled,)h(a)g(failed)f(history)g
+(expansion)g(will)g(b)s(e)f(reloaded)h(in)m(to)h(the)f(Readline)g
+(editing)h(bu\013er)150 1315 y(for)31 b(correction.)43
 b(The)30 b Ft(-p)g Fu(option)h(to)h(the)f Ft(history)e
 Fu(builtin)h(command)h(ma)m(y)g(b)s(e)f(used)g(to)i(see)f(what)g(a)150
-628 y(history)25 b(expansion)g(will)g(do)g(b)s(efore)g(using)f(it.)40
+1425 y(history)25 b(expansion)g(will)g(do)g(b)s(efore)g(using)f(it.)40
 b(The)24 b Ft(-s)h Fu(option)g(to)h(the)f Ft(history)e
-Fu(builtin)i(ma)m(y)g(b)s(e)g(used)150 737 y(to)36 b(add)f(commands)g
+Fu(builtin)i(ma)m(y)g(b)s(e)g(used)150 1534 y(to)36 b(add)f(commands)g
 (to)h(the)g(end)f(of)g(the)h(history)f(list)i(without)e(actually)i
-(executing)g(them,)g(so)e(that)150 847 y(they)c(are)f(a)m(v)-5
+(executing)g(them,)g(so)e(that)150 1644 y(they)c(are)f(a)m(v)-5
 b(ailable)33 b(for)d(subsequen)m(t)g(recall.)42 b(This)29
 b(is)i(most)g(useful)e(in)h(conjunction)h(with)f(Readline.)275
-980 y(The)j(shell)h(allo)m(ws)h(con)m(trol)h(of)e(the)g(v)-5
+1784 y(The)j(shell)h(allo)m(ws)h(con)m(trol)h(of)e(the)g(v)-5
 b(arious)34 b(c)m(haracters)h(used)f(b)m(y)f(the)h(history)g(expansion)
-g(mec)m(h-)150 1090 y(anism)h(with)g(the)g Ft(histchars)d
+g(mec)m(h-)150 1893 y(anism)h(with)g(the)g Ft(histchars)d
 Fu(v)-5 b(ariable,)38 b(as)d(explained)g(ab)s(o)m(v)m(e)i(\(see)f
-(Section)f(5.2)i([Bash)e(V)-8 b(ariables],)150 1199 y(page)32
+(Section)f(5.2)i([Bash)e(V)-8 b(ariables],)150 2003 y(page)32
 b(72\).)44 b(The)31 b(shell)g(uses)g(the)g(history)g(commen)m(t)i(c)m
 (haracter)f(to)g(mark)f(history)g(timestamps)h(when)150
-1309 y(writing)e(the)h(history)f(\014le.)150 1505 y Fk(9.3.1)63
-b(Ev)m(en)m(t)39 b(Designators)150 1652 y Fu(An)32 b(ev)m(en)m(t)j
+2112 y(writing)e(the)h(history)f(\014le.)150 2317 y Fk(9.3.1)63
+b(Ev)m(en)m(t)39 b(Designators)150 2464 y Fu(An)32 b(ev)m(en)m(t)j
 (designator)e(is)g(a)g(reference)g(to)h(a)f(command)f(line)h(en)m(try)g
 (in)g(the)g(history)g(list.)48 b(Unless)33 b(the)150
-1762 y(reference)e(is)f(absolute,)i(ev)m(en)m(ts)f(are)g(relativ)m(e)i
+2573 y(reference)e(is)f(absolute,)i(ev)m(en)m(ts)f(are)g(relativ)m(e)i
 (to)e(the)f(curren)m(t)g(p)s(osition)h(in)f(the)h(history)f(list.)150
-1919 y Ft(!)432 b Fu(Start)34 b(a)f(history)h(substitution,)g(except)g
+2741 y Ft(!)432 b Fu(Start)34 b(a)f(history)h(substitution,)g(except)g
 (when)f(follo)m(w)m(ed)i(b)m(y)e(a)h(space,)h(tab,)f(the)g(end)f(of)630
-2028 y(the)i(line,)g(`)p Ft(=)p Fu(')g(or)f(`)p Ft(\()p
+2850 y(the)i(line,)g(`)p Ft(=)p Fu(')g(or)f(`)p Ft(\()p
 Fu(')h(\(when)e(the)i Ft(extglob)d Fu(shell)j(option)f(is)h(enabled)f
-(using)g(the)g Ft(shopt)630 2138 y Fu(builtin\).)150
-2294 y Ft(!)p Fj(n)384 b Fu(Refer)30 b(to)i(command)e(line)g
-Fr(n)p Fu(.)150 2451 y Ft(!-)p Fj(n)336 b Fu(Refer)30
+(using)g(the)g Ft(shopt)630 2960 y Fu(builtin\).)150
+3124 y Ft(!)p Fj(n)384 b Fu(Refer)30 b(to)i(command)e(line)g
+Fr(n)p Fu(.)150 3289 y Ft(!-)p Fj(n)336 b Fu(Refer)30
 b(to)i(the)e(command)g Fr(n)g Fu(lines)h(bac)m(k.)150
-2608 y Ft(!!)384 b Fu(Refer)30 b(to)i(the)e(previous)g(command.)40
+3454 y Ft(!!)384 b Fu(Refer)30 b(to)i(the)e(previous)g(command.)40
 b(This)30 b(is)g(a)h(synon)m(ym)f(for)g(`)p Ft(!-1)p
-Fu('.)150 2765 y Ft(!)p Fj(string)144 b Fu(Refer)25 b(to)h(the)f(most)h
+Fu('.)150 3618 y Ft(!)p Fj(string)144 b Fu(Refer)25 b(to)h(the)f(most)h
 (recen)m(t)g(command)f(preceding)g(the)g(curren)m(t)g(p)s(osition)g(in)
-g(the)g(history)630 2874 y(list)31 b(starting)g(with)f
-Fr(string)p Fu(.)150 3031 y Ft(!?)p Fj(string)p Ft([?])630
-3141 y Fu(Refer)25 b(to)h(the)f(most)h(recen)m(t)g(command)f(preceding)
+g(the)g(history)630 3728 y(list)31 b(starting)g(with)f
+Fr(string)p Fu(.)150 3892 y Ft(!?)p Fj(string)p Ft([?])630
+4002 y Fu(Refer)25 b(to)h(the)f(most)h(recen)m(t)g(command)f(preceding)
 g(the)g(curren)m(t)g(p)s(osition)g(in)g(the)g(history)630
-3250 y(list)32 b(con)m(taining)i Fr(string)p Fu(.)45
+4111 y(list)32 b(con)m(taining)i Fr(string)p Fu(.)45
 b(The)31 b(trailing)i(`)p Ft(?)p Fu(')f(ma)m(y)g(b)s(e)f(omitted)i(if)f
-(the)g Fr(string)39 b Fu(is)32 b(follo)m(w)m(ed)630 3360
-y(immediately)g(b)m(y)e(a)h(newline.)150 3516 y Ft(^)p
-Fj(string1)p Ft(^)p Fj(string2)p Ft(^)630 3626 y Fu(Quic)m(k)h
+(the)g Fr(string)39 b Fu(is)32 b(follo)m(w)m(ed)630 4221
+y(immediately)g(b)m(y)e(a)h(newline.)150 4386 y Ft(^)p
+Fj(string1)p Ft(^)p Fj(string2)p Ft(^)630 4495 y Fu(Quic)m(k)h
 (Substitution.)44 b(Rep)s(eat)32 b(the)g(last)h(command,)f(replacing)g
-Fr(string1)40 b Fu(with)31 b Fr(string2)p Fu(.)630 3736
+Fr(string1)40 b Fu(with)31 b Fr(string2)p Fu(.)630 4605
 y(Equiv)-5 b(alen)m(t)31 b(to)g Ft(!!:s/)p Fj(string1)p
-Ft(/)p Fj(string2)p Ft(/)p Fu(.)150 3892 y Ft(!#)384
+Ft(/)p Fj(string2)p Ft(/)p Fu(.)150 4769 y Ft(!#)384
 b Fu(The)30 b(en)m(tire)h(command)f(line)h(t)m(yp)s(ed)f(so)h(far.)150
-4089 y Fk(9.3.2)63 b(W)-10 b(ord)41 b(Designators)150
-4236 y Fu(W)-8 b(ord)27 b(designators)h(are)g(used)e(to)i(select)h
+4974 y Fk(9.3.2)63 b(W)-10 b(ord)41 b(Designators)150
+5121 y Fu(W)-8 b(ord)27 b(designators)h(are)g(used)e(to)i(select)h
 (desired)d(w)m(ords)h(from)f(the)i(ev)m(en)m(t.)41 b(A)27
 b(`)p Ft(:)p Fu(')g(separates)h(the)f(ev)m(en)m(t)150
-4345 y(sp)s(eci\014cation)38 b(from)e(the)h(w)m(ord)f(designator.)61
+5230 y(sp)s(eci\014cation)38 b(from)e(the)h(w)m(ord)f(designator.)61
 b(It)37 b(ma)m(y)h(b)s(e)e(omitted)i(if)e(the)h(w)m(ord)g(designator)g
-(b)s(egins)150 4455 y(with)30 b(a)g(`)p Ft(^)p Fu(',)g(`)p
+(b)s(egins)150 5340 y(with)30 b(a)g(`)p Ft(^)p Fu(',)g(`)p
 Ft($)p Fu(',)g(`)p Ft(*)p Fu(',)h(`)p Ft(-)p Fu(',)f(or)g(`)p
 Ft(\045)p Fu('.)41 b(W)-8 b(ords)30 b(are)g(n)m(um)m(b)s(ered)e(from)i
-(the)g(b)s(eginning)f(of)h(the)g(line,)g(with)g(the)150
-4565 y(\014rst)f(w)m(ord)f(b)s(eing)h(denoted)h(b)m(y)f(0)h(\(zero\).)
-41 b(W)-8 b(ords)30 b(are)g(inserted)f(in)m(to)h(the)g(curren)m(t)f
-(line)g(separated)h(b)m(y)150 4674 y(single)h(spaces.)275
-4807 y(F)-8 b(or)31 b(example,)150 4964 y Ft(!!)384 b
-Fu(designates)37 b(the)f(preceding)g(command.)57 b(When)35
-b(y)m(ou)i(t)m(yp)s(e)f(this,)h(the)f(preceding)g(com-)630
-5074 y(mand)30 b(is)g(rep)s(eated)g(in)g(toto.)150 5230
-y Ft(!!:$)288 b Fu(designates)23 b(the)g(last)g(argumen)m(t)g(of)f(the)
-h(preceding)f(command.)38 b(This)22 b(ma)m(y)h(b)s(e)e(shortened)630
-5340 y(to)31 b Ft(!$)p Fu(.)p eop end
+(the)g(b)s(eginning)f(of)h(the)g(line,)g(with)g(the)p
+eop end
 %%Page: 144 150
 TeXDict begin 144 149 bop 150 -116 a Fu(Chapter)30 b(9:)41
 b(Using)30 b(History)h(In)m(teractiv)m(ely)1925 b(144)150
-299 y Ft(!fi:2)240 b Fu(designates)30 b(the)g(second)f(argumen)m(t)h
-(of)f(the)h(most)f(recen)m(t)i(command)e(starting)h(with)f(the)630
-408 y(letters)j Ft(fi)p Fu(.)275 556 y(Here)e(are)h(the)g(w)m(ord)f
-(designators:)150 704 y Ft(0)g(\(zero\))114 b Fu(The)30
-b Ft(0)p Fu(th)g(w)m(ord.)40 b(F)-8 b(or)31 b(man)m(y)g(applications,)h
-(this)e(is)g(the)h(command)f(w)m(ord.)150 851 y Fj(n)432
-b Fu(The)30 b Fr(n)p Fu(th)g(w)m(ord.)150 999 y Ft(^)432
-b Fu(The)30 b(\014rst)f(argumen)m(t;)j(that)f(is,)f(w)m(ord)g(1.)150
-1146 y Ft($)432 b Fu(The)30 b(last)h(argumen)m(t.)150
-1294 y Ft(\045)432 b Fu(The)30 b(w)m(ord)g(matc)m(hed)h(b)m(y)f(the)h
+299 y(\014rst)29 b(w)m(ord)f(b)s(eing)h(denoted)h(b)m(y)f(0)h
+(\(zero\).)41 b(W)-8 b(ords)30 b(are)g(inserted)f(in)m(to)h(the)g
+(curren)m(t)f(line)g(separated)h(b)m(y)150 408 y(single)h(spaces.)275
+552 y(F)-8 b(or)31 b(example,)150 725 y Ft(!!)384 b Fu(designates)37
+b(the)f(preceding)g(command.)57 b(When)35 b(y)m(ou)i(t)m(yp)s(e)f
+(this,)h(the)f(preceding)g(com-)630 834 y(mand)30 b(is)g(rep)s(eated)g
+(in)g(toto.)150 1002 y Ft(!!:$)288 b Fu(designates)23
+b(the)g(last)g(argumen)m(t)g(of)f(the)h(preceding)f(command.)38
+b(This)22 b(ma)m(y)h(b)s(e)e(shortened)630 1112 y(to)31
+b Ft(!$)p Fu(.)150 1280 y Ft(!fi:2)240 b Fu(designates)30
+b(the)g(second)f(argumen)m(t)h(of)f(the)h(most)f(recen)m(t)i(command)e
+(starting)h(with)f(the)630 1390 y(letters)j Ft(fi)p Fu(.)275
+1563 y(Here)e(are)h(the)g(w)m(ord)f(designators:)150
+1735 y Ft(0)g(\(zero\))114 b Fu(The)30 b Ft(0)p Fu(th)g(w)m(ord.)40
+b(F)-8 b(or)31 b(man)m(y)g(applications,)h(this)e(is)g(the)h(command)f
+(w)m(ord.)150 1904 y Fj(n)432 b Fu(The)30 b Fr(n)p Fu(th)g(w)m(ord.)150
+2072 y Ft(^)432 b Fu(The)30 b(\014rst)f(argumen)m(t;)j(that)f(is,)f(w)m
+(ord)g(1.)150 2240 y Ft($)432 b Fu(The)30 b(last)h(argumen)m(t.)150
+2409 y Ft(\045)432 b Fu(The)30 b(w)m(ord)g(matc)m(hed)h(b)m(y)f(the)h
 (most)g(recen)m(t)g(`)p Ft(?)p Fj(string)p Ft(?)p Fu(')e(searc)m(h.)150
-1441 y Fj(x)p Ft(-)p Fj(y)336 b Fu(A)30 b(range)h(of)g(w)m(ords;)f(`)p
+2577 y Fj(x)p Ft(-)p Fj(y)336 b Fu(A)30 b(range)h(of)g(w)m(ords;)f(`)p
 Ft(-)p Fj(y)p Fu(')g(abbreviates)h(`)p Ft(0-)p Fj(y)p
-Fu('.)150 1589 y Ft(*)432 b Fu(All)28 b(of)g(the)g(w)m(ords,)g(except)h
+Fu('.)150 2745 y Ft(*)432 b Fu(All)28 b(of)g(the)g(w)m(ords,)g(except)h
 (the)e Ft(0)p Fu(th.)40 b(This)27 b(is)g(a)h(synon)m(ym)f(for)h(`)p
 Ft(1-$)p Fu('.)39 b(It)28 b(is)g(not)g(an)f(error)630
-1698 y(to)j(use)g(`)p Ft(*)p Fu(')f(if)h(there)g(is)g(just)f(one)h(w)m
+2855 y(to)j(use)g(`)p Ft(*)p Fu(')f(if)h(there)g(is)g(just)f(one)h(w)m
 (ord)f(in)g(the)h(ev)m(en)m(t;)i(the)d(empt)m(y)i(string)e(is)h
-(returned)e(in)630 1808 y(that)j(case.)150 1955 y Fj(x)p
+(returned)e(in)630 2964 y(that)j(case.)150 3133 y Fj(x)p
 Ft(*)384 b Fu(Abbreviates)31 b(`)p Fj(x)p Ft(-$)p Fu(')150
-2103 y Fj(x)p Ft(-)384 b Fu(Abbreviates)31 b(`)p Fj(x)p
+3301 y Fj(x)p Ft(-)384 b Fu(Abbreviates)31 b(`)p Fj(x)p
 Ft(-$)p Fu(')f(lik)m(e)h(`)p Fj(x)p Ft(*)p Fu(',)g(but)f(omits)h(the)f
-(last)h(w)m(ord.)275 2250 y(If)i(a)h(w)m(ord)g(designator)g(is)g
+(last)h(w)m(ord.)275 3474 y(If)i(a)h(w)m(ord)g(designator)g(is)g
 (supplied)f(without)h(an)g(ev)m(en)m(t)h(sp)s(eci\014cation,)h(the)e
-(previous)f(command)150 2360 y(is)d(used)g(as)h(the)f(ev)m(en)m(t.)150
-2547 y Fk(9.3.3)63 b(Mo)s(di\014ers)150 2694 y Fu(After)29
+(previous)f(command)150 3583 y(is)d(used)g(as)h(the)f(ev)m(en)m(t.)150
+3791 y Fk(9.3.3)63 b(Mo)s(di\014ers)150 3938 y Fu(After)29
 b(the)g(optional)g(w)m(ord)g(designator,)g(y)m(ou)g(can)g(add)f(a)h
 (sequence)g(of)g(one)g(or)f(more)h(of)g(the)f(follo)m(wing)150
-2804 y(mo)s(di\014ers,)h(eac)m(h)j(preceded)e(b)m(y)g(a)h(`)p
-Ft(:)p Fu('.)150 2951 y Ft(h)432 b Fu(Remo)m(v)m(e)32
+4048 y(mo)s(di\014ers,)h(eac)m(h)j(preceded)e(b)m(y)g(a)h(`)p
+Ft(:)p Fu('.)150 4221 y Ft(h)432 b Fu(Remo)m(v)m(e)32
 b(a)f(trailing)g(pathname)g(comp)s(onen)m(t,)g(lea)m(ving)h(only)e(the)
-h(head.)150 3099 y Ft(t)432 b Fu(Remo)m(v)m(e)32 b(all)f(leading)h
+h(head.)150 4389 y Ft(t)432 b Fu(Remo)m(v)m(e)32 b(all)f(leading)h
 (pathname)e(comp)s(onen)m(ts,)h(lea)m(ving)h(the)e(tail.)150
-3246 y Ft(r)432 b Fu(Remo)m(v)m(e)32 b(a)f(trailing)g(su\016x)f(of)g
+4557 y Ft(r)432 b Fu(Remo)m(v)m(e)32 b(a)f(trailing)g(su\016x)f(of)g
 (the)h(form)f(`)p Ft(.)p Fj(suffix)p Fu(',)f(lea)m(ving)j(the)f
-(basename.)150 3394 y Ft(e)432 b Fu(Remo)m(v)m(e)32 b(all)f(but)f(the)h
-(trailing)g(su\016x.)150 3541 y Ft(p)432 b Fu(Prin)m(t)30
+(basename.)150 4726 y Ft(e)432 b Fu(Remo)m(v)m(e)32 b(all)f(but)f(the)h
+(trailing)g(su\016x.)150 4894 y Ft(p)432 b Fu(Prin)m(t)30
 b(the)h(new)f(command)g(but)g(do)g(not)g(execute)i(it.)150
-3689 y Ft(q)432 b Fu(Quote)31 b(the)f(substituted)g(w)m(ords,)g
-(escaping)h(further)e(substitutions.)150 3837 y Ft(x)432
+5062 y Ft(q)432 b Fu(Quote)31 b(the)f(substituted)g(w)m(ords,)g
+(escaping)h(further)e(substitutions.)150 5230 y Ft(x)432
 b Fu(Quote)32 b(the)f(substituted)g(w)m(ords)f(as)i(with)f(`)p
 Ft(q)p Fu(',)h(but)e(break)h(in)m(to)i(w)m(ords)d(at)i(spaces,)h(tabs,)
-630 3946 y(and)d(newlines.)150 4094 y Ft(s/)p Fj(old)p
-Ft(/)p Fj(new)p Ft(/)630 4203 y Fu(Substitute)i Fr(new)40
-b Fu(for)32 b(the)h(\014rst)f(o)s(ccurrence)h(of)f Fr(old)37
-b Fu(in)32 b(the)h(ev)m(en)m(t)h(line.)48 b(An)m(y)32
-b(delimiter)630 4313 y(ma)m(y)25 b(b)s(e)g(used)f(in)g(place)i(of)f(`)p
-Ft(/)p Fu('.)39 b(The)24 b(delimiter)h(ma)m(y)h(b)s(e)e(quoted)h(in)f
-Fr(old)29 b Fu(and)24 b Fr(new)32 b Fu(with)25 b(a)630
-4422 y(single)k(bac)m(kslash.)40 b(If)28 b(`)p Ft(&)p
-Fu(')g(app)s(ears)g(in)f Fr(new)p Fu(,)i(it)f(is)h(replaced)f(b)m(y)g
-Fr(old)p Fu(.)40 b(A)28 b(single)h(bac)m(kslash)630 4532
-y(will)35 b(quote)g(the)g(`)p Ft(&)p Fu('.)54 b(The)34
-b(\014nal)g(delimiter)i(is)e(optional)i(if)f(it)g(is)f(the)h(last)h(c)m
-(haracter)g(on)630 4642 y(the)31 b(input)e(line.)150
-4789 y Ft(&)432 b Fu(Rep)s(eat)31 b(the)f(previous)g(substitution.)150
-4937 y Ft(g)150 5046 y(a)432 b Fu(Cause)38 b(c)m(hanges)i(to)f(b)s(e)f
-(applied)h(o)m(v)m(er)h(the)f(en)m(tire)g(ev)m(en)m(t)h(line.)66
-b(Used)39 b(in)f(conjunction)630 5156 y(with)30 b(`)p
-Ft(s)p Fu(',)h(as)f(in)h Ft(gs/)p Fj(old)p Ft(/)p Fj(new)p
-Ft(/)p Fu(,)c(or)j(with)h(`)p Ft(&)p Fu('.)150 5303 y
-Ft(G)432 b Fu(Apply)30 b(the)g(follo)m(wing)i(`)p Ft(s)p
-Fu(')f(mo)s(di\014er)e(once)i(to)g(eac)m(h)h(w)m(ord)e(in)g(the)g(ev)m
-(en)m(t.)p eop end
+630 5340 y(and)d(newlines.)p eop end
 %%Page: 145 151
-TeXDict begin 145 150 bop 3614 -116 a Fu(145)150 299
+TeXDict begin 145 150 bop 150 -116 a Fu(Chapter)30 b(9:)41
+b(Using)30 b(History)h(In)m(teractiv)m(ely)1925 b(145)150
+299 y Ft(s/)p Fj(old)p Ft(/)p Fj(new)p Ft(/)630 408 y
+Fu(Substitute)32 b Fr(new)40 b Fu(for)32 b(the)h(\014rst)f(o)s
+(ccurrence)h(of)f Fr(old)37 b Fu(in)32 b(the)h(ev)m(en)m(t)h(line.)48
+b(An)m(y)32 b(delimiter)630 518 y(ma)m(y)25 b(b)s(e)g(used)f(in)g
+(place)i(of)f(`)p Ft(/)p Fu('.)39 b(The)24 b(delimiter)h(ma)m(y)h(b)s
+(e)e(quoted)h(in)f Fr(old)29 b Fu(and)24 b Fr(new)32
+b Fu(with)25 b(a)630 628 y(single)k(bac)m(kslash.)40
+b(If)28 b(`)p Ft(&)p Fu(')g(app)s(ears)g(in)f Fr(new)p
+Fu(,)i(it)f(is)h(replaced)f(b)m(y)g Fr(old)p Fu(.)40
+b(A)28 b(single)h(bac)m(kslash)630 737 y(will)35 b(quote)g(the)g(`)p
+Ft(&)p Fu('.)54 b(The)34 b(\014nal)g(delimiter)i(is)e(optional)i(if)f
+(it)g(is)f(the)h(last)h(c)m(haracter)g(on)630 847 y(the)31
+b(input)e(line.)150 1006 y Ft(&)432 b Fu(Rep)s(eat)31
+b(the)f(previous)g(substitution.)150 1166 y Ft(g)150
+1275 y(a)432 b Fu(Cause)38 b(c)m(hanges)i(to)f(b)s(e)f(applied)h(o)m(v)
+m(er)h(the)f(en)m(tire)g(ev)m(en)m(t)h(line.)66 b(Used)39
+b(in)f(conjunction)630 1385 y(with)30 b(`)p Ft(s)p Fu(',)h(as)f(in)h
+Ft(gs/)p Fj(old)p Ft(/)p Fj(new)p Ft(/)p Fu(,)c(or)j(with)h(`)p
+Ft(&)p Fu('.)150 1544 y Ft(G)432 b Fu(Apply)30 b(the)g(follo)m(wing)i
+(`)p Ft(s)p Fu(')f(mo)s(di\014er)e(once)i(to)g(eac)m(h)h(w)m(ord)e(in)g
+(the)g(ev)m(en)m(t.)p eop end
+%%Page: 146 152
+TeXDict begin 146 151 bop 3614 -116 a Fu(146)150 299
 y Fp(10)80 b(Installing)52 b(Bash)150 534 y Fu(This)31
 b(c)m(hapter)h(pro)m(vides)g(basic)g(instructions)f(for)g(installing)i
 (Bash)f(on)f(the)h(v)-5 b(arious)31 b(supp)s(orted)f(plat-)150
@@ -18466,12 +18576,12 @@ o Fu(:)390 4767 y Ft(mkdir)46 b(/usr/local/build/bash-4.4)390
 4877 y(cd)h(/usr/local/build/bash-4.4)390 4986 y(bash)g
 (/usr/local/src/bash-4.4)o(/con)o(fig)o(ure)390 5096
 y(make)275 5230 y Fu(See)27 b(Section)h(10.3)g([Compiling)g(F)-8
-b(or)27 b(Multiple)h(Arc)m(hitectures],)i(page)d(146,)j(for)c(more)i
+b(or)27 b(Multiple)h(Arc)m(hitectures],)i(page)d(147,)j(for)c(more)i
 (information)150 5340 y(ab)s(out)i(building)g(in)g(a)g(directory)h
 (separate)h(from)e(the)g(source.)p eop end
-%%Page: 146 152
-TeXDict begin 146 151 bop 150 -116 a Fu(Chapter)30 b(10:)41
-b(Installing)31 b(Bash)2356 b(146)275 299 y(If)53 b(y)m(ou)h(need)f(to)
+%%Page: 147 153
+TeXDict begin 147 152 bop 150 -116 a Fu(Chapter)30 b(10:)41
+b(Installing)31 b(Bash)2356 b(147)275 299 y(If)53 b(y)m(ou)h(need)f(to)
 i(do)e(un)m(usual)g(things)g(to)i(compile)g(Bash,)k(please)c(try)e(to)i
 (\014gure)e(out)h(ho)m(w)150 408 y Ft(configure)47 b
 Fu(could)j(c)m(hec)m(k)h(whether)e(or)g(not)h(to)h(do)e(them,)55
@@ -18520,7 +18630,7 @@ Ft(make)p Fu(.)55 b Ft(cd)35 b Fu(to)i(the)e(directory)h(where)150
 3274 y(y)m(ou)k(w)m(an)m(t)h(the)g(ob)5 b(ject)41 b(\014les)f(and)f
 (executables)j(to)e(go)h(and)f(run)e(the)j Ft(configure)c
 Fu(script)j(from)g(the)150 3383 y(source)32 b(directory)h(\(see)g
-(Section)f(10.1)i([Basic)f(Installation],)i(page)e(145\).)47
+(Section)f(10.1)i([Basic)f(Installation],)i(page)e(146\).)47
 b(Y)-8 b(ou)32 b(ma)m(y)h(need)f(to)g(supply)150 3493
 y(the)43 b Ft(--srcdir=PATH)c Fu(argumen)m(t)k(to)h(tell)g
 Ft(configure)c Fu(where)i(the)h(source)g(\014les)g(are.)78
@@ -18555,9 +18665,9 @@ Ft(/usr/local/man)p Fu(,)f(etc.)61 b(Y)-8 b(ou)150 5340
 y(can)35 b(sp)s(ecify)f(an)h(installation)i(pre\014x)c(other)j(than)e
 Ft(/usr/local)e Fu(b)m(y)j(giving)g Ft(configure)e Fu(the)h(option)p
 eop end
-%%Page: 147 153
-TeXDict begin 147 152 bop 150 -116 a Fu(Chapter)30 b(10:)41
-b(Installing)31 b(Bash)2356 b(147)150 299 y Ft(--prefix=)p
+%%Page: 148 154
+TeXDict begin 148 153 bop 150 -116 a Fu(Chapter)30 b(10:)41
+b(Installing)31 b(Bash)2356 b(148)150 299 y Ft(--prefix=)p
 Fj(PATH)p Fu(,)41 b(or)g(b)m(y)g(sp)s(ecifying)h(a)f(v)-5
 b(alue)42 b(for)f(the)h Ft(DESTDIR)d Fu(`)p Ft(make)p
 Fu(')i(v)-5 b(ariable)42 b(when)f(running)150 408 y(`)p
@@ -18624,9 +18734,9 @@ Fu(also)k(accepts)g(some)g(other,)h(not)e(widely)g(used,)h(b)s
 (oilerplate)g(options.)61 b(`)p Ft(configure)150 5340
 y(--help)p Fu(')29 b(prin)m(ts)h(the)g(complete)i(list.)p
 eop end
-%%Page: 148 154
-TeXDict begin 148 153 bop 150 -116 a Fu(Chapter)30 b(10:)41
-b(Installing)31 b(Bash)2356 b(148)150 299 y Fs(10.8)68
+%%Page: 149 155
+TeXDict begin 149 154 bop 150 -116 a Fu(Chapter)30 b(10:)41
+b(Installing)31 b(Bash)2356 b(149)150 299 y Fs(10.8)68
 b(Optional)46 b(F)-11 b(eatures)150 458 y Fu(The)29 b(Bash)h
 Ft(configure)d Fu(has)j(a)g(n)m(um)m(b)s(er)f(of)h Ft(--enable-)p
 Fj(feature)25 b Fu(options,)30 b(where)g Fr(feature)35
@@ -18693,23 +18803,24 @@ g Fr(PREFIX)9 b Fu(/)p Ft(include)32 b Fu(and)i(the)630
 4849 y(There)k(are)i(sev)m(eral)g Ft(--enable-)d Fu(options)i(that)h
 (alter)g(ho)m(w)f(Bash)g(is)g(compiled)h(and)e(link)m(ed,)i(rather)150
 4958 y(than)h(c)m(hanging)h(run-time)f(features.)150
-5121 y Ft(--enable-largefile)630 5230 y Fu(Enable)e(supp)s(ort)f(for)h
-(large)i(\014les)f(\()p Ft(http://www.sas.com/stand)o(ards)o(/la)o
-(rge_)o(file)o(/)630 5340 y(x_open)5 b(.)g(20Mar96)g(.)g(html)p
-Fu(\))31 b(if)36 b(the)g(op)s(erating)h(system)f(requires)g(sp)s(ecial)
-h(compiler)g(op-)p eop end
-%%Page: 149 155
-TeXDict begin 149 154 bop 150 -116 a Fu(Chapter)30 b(10:)41
-b(Installing)31 b(Bash)2356 b(149)630 299 y(tions)27
-b(to)h(build)e(programs)h(whic)m(h)g(can)g(access)h(large)h(\014les.)39
-b(This)26 b(is)i(enabled)f(b)m(y)f(default,)630 408 y(if)k(the)h(op)s
-(erating)g(system)f(pro)m(vides)h(large)g(\014le)g(supp)s(ort.)150
-570 y Ft(--enable-profiling)630 680 y Fu(This)g(builds)f(a)i(Bash)g
-(binary)f(that)h(pro)s(duces)e(pro\014ling)h(information)h(to)h(b)s(e)d
-(pro)s(cessed)630 790 y(b)m(y)g Ft(gprof)f Fu(eac)m(h)j(time)f(it)g(is)
-f(executed.)150 951 y Ft(--enable-static-link)630 1061
-y Fu(This)37 b(causes)h(Bash)f(to)h(b)s(e)f(link)m(ed)h(statically)-8
-b(,)43 b(if)37 b Ft(gcc)g Fu(is)g(b)s(eing)g(used.)61
+5121 y Ft(--enable-largefile)630 5230 y Fu(Enable)36
+b(supp)s(ort)f(for)g(large)j(\014les)e(\()p Ft(http:)5
+b(/)g(/)g(www)g(.)g(unix)g(.)g(org)t(/)g(v)o(ersi)o(on2)t(/)g(w)o(hats)
+o(new)t(/)630 5340 y(lfs20mar)h(.)g(html)p Fu(\))35 b(if)j(the)g(op)s
+(erating)g(system)g(requires)f(sp)s(ecial)i(compiler)f(options)g(to)p
+eop end
+%%Page: 150 156
+TeXDict begin 150 155 bop 150 -116 a Fu(Chapter)30 b(10:)41
+b(Installing)31 b(Bash)2356 b(150)630 299 y(build)33
+b(programs)g(whic)m(h)h(can)g(access)h(large)g(\014les.)51
+b(This)33 b(is)h(enabled)g(b)m(y)g(default,)h(if)f(the)630
+408 y(op)s(erating)d(system)f(pro)m(vides)h(large)g(\014le)g(supp)s
+(ort.)150 570 y Ft(--enable-profiling)630 680 y Fu(This)g(builds)f(a)i
+(Bash)g(binary)f(that)h(pro)s(duces)e(pro\014ling)h(information)h(to)h
+(b)s(e)d(pro)s(cessed)630 790 y(b)m(y)g Ft(gprof)f Fu(eac)m(h)j(time)f
+(it)g(is)f(executed.)150 951 y Ft(--enable-static-link)630
+1061 y Fu(This)37 b(causes)h(Bash)f(to)h(b)s(e)f(link)m(ed)h
+(statically)-8 b(,)43 b(if)37 b Ft(gcc)g Fu(is)g(b)s(eing)g(used.)61
 b(This)37 b(could)h(b)s(e)630 1171 y(used)30 b(to)h(build)e(a)i(v)m
 (ersion)g(to)g(use)f(as)g(ro)s(ot's)h(shell.)275 1334
 y(The)f(`)p Ft(minimal-config)p Fu(')d(option)k(can)g(b)s(e)f(used)f
@@ -18739,7 +18850,7 @@ b(supp)s(ort)f(for)h Ft(csh)p Fu(-lik)m(e)h(history)g(substitution)f
 (142\).)150 3487 y Ft(--enable-brace-expansion)630 3597
 y Fu(Include)40 b Ft(csh)p Fu(-lik)m(e)h(brace)f(expansion)g(\()h
 Ft(b{a,b}c)d Fq(7!)i Ft(bac)30 b(bbc)39 b Fu(\).)71 b(See)40
-b(Section)h(3.5.1)630 3706 y([Brace)32 b(Expansion],)e(page)h(22,)h
+b(Section)h(3.5.1)630 3706 y([Brace)32 b(Expansion],)e(page)h(23,)h
 (for)e(a)g(complete)i(description.)150 3868 y Ft
 (--enable-casemod-attribu)o(tes)630 3978 y Fu(Include)37
 b(supp)s(ort)g(for)g(case-mo)s(difying)i(attributes)g(in)e(the)h
@@ -18761,9 +18872,9 @@ m(ell)g(as)g(shell)f(builtins)g(and)g(functions)g(to)h(b)s(e)e(timed.)
 b(supp)s(ort)f(for)i(the)g Ft([[)f Fu(conditional)i(command.)51
 b(\(see)34 b(Section)h(3.2.4.2)h([Condi-)630 5340 y(tional)c
 (Constructs],)e(page)h(11\).)p eop end
-%%Page: 150 156
-TeXDict begin 150 155 bop 150 -116 a Fu(Chapter)30 b(10:)41
-b(Installing)31 b(Bash)2356 b(150)150 299 y Ft(--enable-cond-regexp)630
+%%Page: 151 157
+TeXDict begin 151 156 bop 150 -116 a Fu(Chapter)30 b(10:)41
+b(Installing)31 b(Bash)2356 b(151)150 299 y Ft(--enable-cond-regexp)630
 408 y Fu(Include)35 b(supp)s(ort)f(for)i(matc)m(hing)h
 Fm(posix)e Fu(regular)h(expressions)g(using)f(the)h(`)p
 Ft(=~)p Fu(')g(binary)630 518 y(op)s(erator)25 b(in)f(the)h
@@ -18804,7 +18915,7 @@ b(page)h(11\).)150 3550 y Ft(--enable-extended-glob)630
 3660 y Fu(Include)40 b(supp)s(ort)e(for)i(the)h(extended)f(pattern)h
 (matc)m(hing)g(features)g(describ)s(ed)e(ab)s(o)m(v)m(e)630
 3769 y(under)29 b(Section)i(3.5.8.1)i([P)m(attern)e(Matc)m(hing],)i
-(page)e(32.)150 3915 y Ft(--enable-extended-glob-d)o(efau)o(lt)630
+(page)e(33.)150 3915 y Ft(--enable-extended-glob-d)o(efau)o(lt)630
 4025 y Fu(Set)40 b(the)g(default)g(v)-5 b(alue)41 b(of)f(the)g
 Fr(extglob)j Fu(shell)d(option)g(describ)s(ed)f(ab)s(o)m(v)m(e)i(under)
 d(Sec-)630 4134 y(tion)31 b(4.3.2)h([The)e(Shopt)g(Builtin],)h(page)g
@@ -18825,9 +18936,9 @@ b(con)m(trols)j(the)630 4975 y(b)s(eha)m(vior)21 b(of)g(c)m(haracter)h
 (ys)f(help)h(on)f(shell)h(builtins)f(and)h(v)-5 b(ariables)25
 b(\(see)630 5340 y(Section)31 b(4.2)h([Bash)e(Builtins],)i(page)f
 (50\).)p eop end
-%%Page: 151 157
-TeXDict begin 151 156 bop 150 -116 a Fu(Chapter)30 b(10:)41
-b(Installing)31 b(Bash)2356 b(151)150 299 y Ft(--enable-history)630
+%%Page: 152 158
+TeXDict begin 152 157 bop 150 -116 a Fu(Chapter)30 b(10:)41
+b(Installing)31 b(Bash)2356 b(152)150 299 y Ft(--enable-history)630
 408 y Fu(Include)29 b(command)g(history)h(and)f(the)h
 Ft(fc)f Fu(and)g Ft(history)e Fu(builtin)j(commands)f(\(see)h(Sec-)630
 518 y(tion)h(9.1)g([Bash)g(History)g(F)-8 b(acilities],)34
@@ -18843,10 +18954,10 @@ b(enables)h(the)g(sp)s(ecial)h(handling)e(of)h(\014lenames)g(of)g(the)g
 (form)g Ft(/dev/tcp/)p Fj(host)p Ft(/)p Fj(port)630 1614
 y Fu(and)31 b Ft(/dev/udp/)p Fj(host)p Ft(/)p Fj(port)26
 b Fu(when)31 b(used)g(in)g(redirections)h(\(see)g(Section)g(3.6)h
-([Redirec-)630 1724 y(tions],)e(page)g(33\).)150 1870
+([Redirec-)630 1724 y(tions],)e(page)g(34\).)150 1870
 y Ft(--enable-process-substit)o(utio)o(n)630 1979 y Fu(This)49
 b(enables)i(pro)s(cess)f(substitution)g(\(see)h(Section)g(3.5.6)h([Pro)
-s(cess)e(Substitution],)630 2089 y(page)31 b(30\))h(if)e(the)h(op)s
+s(cess)e(Substitution],)630 2089 y(page)31 b(31\))h(if)e(the)h(op)s
 (erating)f(system)h(pro)m(vides)f(the)h(necessary)g(supp)s(ort.)150
 2235 y Ft(--enable-progcomp)630 2345 y Fu(Enable)d(the)g(programmable)g
 (completion)i(facilities)g(\(see)f(Section)g(8.6)g([Programmable)630
@@ -18887,9 +18998,9 @@ b(ma)m(y)g(need)630 4975 y(to)c(disable)g(this)f(if)g(y)m(our)h
 y Fu(Mak)m(e)c(Bash)f Fm(posix)p Fu(-conforman)m(t)g(b)m(y)f(default)h
 (\(see)g(Section)h(6.11)g([Bash)f(POSIX)e(Mo)s(de],)630
 5340 y(page)31 b(98\).)p eop end
-%%Page: 152 158
-TeXDict begin 152 157 bop 150 -116 a Fu(Chapter)30 b(10:)41
-b(Installing)31 b(Bash)2356 b(152)150 299 y Ft
+%%Page: 153 159
+TeXDict begin 153 158 bop 150 -116 a Fu(Chapter)30 b(10:)41
+b(Installing)31 b(Bash)2356 b(153)150 299 y Ft
 (--enable-usg-echo-defaul)o(t)630 408 y Fu(A)30 b(synon)m(ym)g(for)g
 Ft(--enable-xpg-echo-default)p Fu(.)150 568 y Ft
 (--enable-xpg-echo-defaul)o(t)630 677 y Fu(Mak)m(e)c(the)f
@@ -18912,8 +19023,8 @@ y(the)h(consequences)g(if)f(y)m(ou)h(do.)55 b(Read)36
 b(the)g(commen)m(ts)g(asso)s(ciated)h(with)e(eac)m(h)i(de\014nition)e
 (for)g(more)150 1604 y(information)c(ab)s(out)f(its)h(e\013ect.)p
 eop end
-%%Page: 153 159
-TeXDict begin 153 158 bop 3614 -116 a Fu(153)150 299
+%%Page: 154 160
+TeXDict begin 154 159 bop 3614 -116 a Fu(154)150 299
 y Fp(App)t(endix)52 b(A)81 b(Rep)t(orting)53 b(Bugs)150
 533 y Fu(Please)33 b(rep)s(ort)e(all)h(bugs)f(y)m(ou)h(\014nd)e(in)i
 (Bash.)44 b(But)32 b(\014rst,)g(y)m(ou)g(should)e(mak)m(e)j(sure)e
@@ -18943,8 +19054,8 @@ s(duce)e(it.)150 2182 y Ft(bashbug)d Fu(inserts)i(the)h(\014rst)f
 (vides)f(for)g(\014ling)h(a)150 2291 y(bug)h(rep)s(ort.)275
 2426 y(Please)h(send)f(all)h(rep)s(orts)f(concerning)g(this)h(man)m
 (ual)f(to)h Ft(bug-bash@gnu.org)p Fu(.)p eop end
-%%Page: 154 160
-TeXDict begin 154 159 bop 3614 -116 a Fu(154)150 141
+%%Page: 155 161
+TeXDict begin 155 160 bop 3614 -116 a Fu(155)150 141
 y Fp(App)t(endix)58 b(B)81 b(Ma)9 b(jor)54 b(Di\013erences)d(F)-13
 b(rom)54 b(The)g(Bourne)1088 299 y(Shell)150 530 y Fu(Bash)26
 b(implemen)m(ts)h(essen)m(tially)g(the)g(same)f(grammar,)h(parameter)f
@@ -19030,10 +19141,10 @@ b Fu(Bash)31 b(includes)f(the)g Ft(select)f Fu(comp)s(ound)g(command,)i
 (whic)m(h)f(allo)m(ws)i(the)f(generation)g(of)g(simple)330
 5340 y(men)m(us)f(\(see)h(Section)g(3.2.4.2)i([Conditional)e
 (Constructs],)g(page)g(11\).)p eop end
-%%Page: 155 161
-TeXDict begin 155 160 bop 150 -116 a Fu(App)s(endix)29
+%%Page: 156 162
+TeXDict begin 156 161 bop 150 -116 a Fu(App)s(endix)29
 b(B:)i(Ma)5 b(jor)31 b(Di\013erences)g(F)-8 b(rom)31
-b(The)f(Bourne)g(Shell)1258 b(155)225 299 y Fq(\017)60
+b(The)f(Bourne)g(Shell)1258 b(156)225 299 y Fq(\017)60
 b Fu(Bash)40 b(includes)g(the)g Ft([[)g Fu(comp)s(ound)e(command,)43
 b(whic)m(h)c(mak)m(es)i(conditional)h(testing)f(part)f(of)330
 408 y(the)f(shell)g(grammar)g(\(see)h(Section)f(3.2.4.2)j([Conditional)
@@ -19042,7 +19153,7 @@ b(regular)e(expression)g(matc)m(hing.)225 653 y Fq(\017)60
 b Fu(Bash)31 b(pro)m(vides)f(optional)h(case-insensitiv)m(e)i(matc)m
 (hing)f(for)e(the)g Ft(case)g Fu(and)f Ft([[)h Fu(constructs.)225
 789 y Fq(\017)60 b Fu(Bash)27 b(includes)g(brace)h(expansion)f(\(see)h
-(Section)g(3.5.1)i([Brace)e(Expansion],)g(page)g(22\))h(and)d(tilde)330
+(Section)g(3.5.1)i([Brace)e(Expansion],)g(page)g(23\))h(and)d(tilde)330
 898 y(expansion)k(\(see)i(Section)f(3.5.2)h([Tilde)f(Expansion],)f
 (page)h(23\).)225 1034 y Fq(\017)60 b Fu(Bash)24 b(implemen)m(ts)h
 (command)e(aliases)j(and)d(the)i Ft(alias)d Fu(and)i
@@ -19105,7 +19216,7 @@ b(preferred)g(to)i(the)g(Bourne)f(shell's)h Ft(``)e Fu(\(whic)m(h)i(is)
 f(also)330 4495 y(implemen)m(ted)31 b(for)f(bac)m(kw)m(ards)h
 (compatibilit)m(y\).)225 4631 y Fq(\017)60 b Fu(Bash)31
 b(has)f(pro)s(cess)g(substitution)g(\(see)h(Section)g(3.5.6)h([Pro)s
-(cess)f(Substitution],)f(page)h(30\).)225 4766 y Fq(\017)60
+(cess)f(Substitution],)f(page)h(31\).)225 4766 y Fq(\017)60
 b Fu(Bash)55 b(automatically)j(assigns)e(v)-5 b(ariables)55
 b(that)h(pro)m(vide)f(information)h(ab)s(out)f(the)g(curren)m(t)330
 4876 y(user)40 b(\()p Ft(UID)p Fu(,)i Ft(EUID)p Fu(,)g(and)e
@@ -19121,10 +19232,10 @@ Fu(v)-5 b(ariable)45 b(is)f(used)f(to)i(split)f(only)g(the)g(results)g
 y(Section)29 b(3.5.7)h([W)-8 b(ord)29 b(Splitting],)h(page)f(31\).)41
 b(This)28 b(closes)h(a)g(longstanding)g(shell)f(securit)m(y)h(hole.)p
 eop end
-%%Page: 156 162
-TeXDict begin 156 161 bop 150 -116 a Fu(App)s(endix)29
+%%Page: 157 163
+TeXDict begin 157 162 bop 150 -116 a Fu(App)s(endix)29
 b(B:)i(Ma)5 b(jor)31 b(Di\013erences)g(F)-8 b(rom)31
-b(The)f(Bourne)g(Shell)1258 b(156)225 299 y Fq(\017)60
+b(The)f(Bourne)g(Shell)1258 b(157)225 299 y Fq(\017)60
 b Fu(The)36 b(\014lename)h(expansion)f(brac)m(k)m(et)i(expression)f(co)
 s(de)f(uses)g(`)p Ft(!)p Fu(')h(and)f(`)p Ft(^)p Fu(')h(to)g(negate)h
 (the)f(set)g(of)330 408 y(c)m(haracters)32 b(b)s(et)m(w)m(een)f(the)f
@@ -19134,11 +19245,11 @@ Ft(!)p Fu('.)225 536 y Fq(\017)60 b Fu(Bash)38 b(implemen)m(ts)g(the)g
 (erators,)i(including)d Fr(c)m(har-)330 646 y(acter)i(classes)p
 Fu(,)j Fr(equiv)-5 b(alence)39 b(classes)p Fu(,)j(and)37
 b Fr(collating)k(sym)m(b)s(ols)g Fu(\(see)e(Section)g(3.5.8)h
-([Filename)330 756 y(Expansion],)30 b(page)h(31\).)225
+([Filename)330 756 y(Expansion],)30 b(page)h(32\).)225
 883 y Fq(\017)60 b Fu(Bash)35 b(implemen)m(ts)g(extended)g(pattern)g
 (matc)m(hing)h(features)f(when)f(the)h Ft(extglob)d Fu(shell)j(option)
 330 993 y(is)30 b(enabled)h(\(see)g(Section)g(3.5.8.1)i([P)m(attern)f
-(Matc)m(hing],)g(page)f(32\).)225 1121 y Fq(\017)60 b
+(Matc)m(hing],)g(page)f(33\).)225 1121 y Fq(\017)60 b
 Fu(It)22 b(is)g(p)s(ossible)g(to)h(ha)m(v)m(e)g(a)f(v)-5
 b(ariable)23 b(and)f(a)g(function)g(with)g(the)g(same)g(name;)j
 Ft(sh)d Fu(do)s(es)g(not)g(separate)330 1230 y(the)31
@@ -19151,20 +19262,20 @@ Fu(builtin,)i(and)e(th)m(us)330 1468 y(useful)i(recursiv)m(e)g
 b(ariable)25 b(assignmen)m(ts)g(preceding)e(commands)h(a\013ect)h(only)
 f(that)g(command,)h(ev)m(en)f(builtins)g(and)330 1705
 y(functions)36 b(\(see)h(Section)g(3.7.4)h([En)m(vironmen)m(t],)h(page)
-e(39\).)60 b(In)35 b Ft(sh)p Fu(,)j(all)f(v)-5 b(ariable)37
+e(40\).)60 b(In)35 b Ft(sh)p Fu(,)j(all)f(v)-5 b(ariable)37
 b(assignmen)m(ts)330 1815 y(preceding)30 b(commands)g(are)h(global)h
 (unless)d(the)i(command)f(is)h(executed)g(from)f(the)g(\014le)h
 (system.)225 1943 y Fq(\017)60 b Fu(Bash)44 b(p)s(erforms)e(\014lename)
 i(expansion)f(on)h(\014lenames)g(sp)s(eci\014ed)f(as)h(op)s(erands)e
 (to)j(input)e(and)330 2052 y(output)30 b(redirection)h(op)s(erators)g
-(\(see)g(Section)g(3.6)h([Redirections],)g(page)f(33\).)225
+(\(see)g(Section)g(3.6)h([Redirections],)g(page)f(34\).)225
 2180 y Fq(\017)60 b Fu(Bash)29 b(con)m(tains)h(the)f(`)p
 Ft(<>)p Fu(')f(redirection)i(op)s(erator,)f(allo)m(wing)i(a)e(\014le)g
 (to)g(b)s(e)f(op)s(ened)g(for)h(b)s(oth)f(read-)330 2290
 y(ing)35 b(and)f(writing,)i(and)e(the)h(`)p Ft(&>)p Fu(')g(redirection)
 g(op)s(erator,)h(for)f(directing)g(standard)f(output)h(and)330
 2399 y(standard)30 b(error)g(to)h(the)f(same)h(\014le)f(\(see)i
-(Section)f(3.6)g([Redirections],)h(page)g(33\).)225 2527
+(Section)f(3.6)g([Redirections],)h(page)g(34\).)225 2527
 y Fq(\017)60 b Fu(Bash)21 b(includes)f(the)h(`)p Ft(<<<)p
 Fu(')g(redirection)g(op)s(erator,)i(allo)m(wing)g(a)e(string)f(to)i(b)s
 (e)e(used)g(as)h(the)g(standard)330 2637 y(input)29 b(to)j(a)e
@@ -19175,11 +19286,11 @@ Fu(')e(redirection)j(op)s(erators,)g(whic)m(h)f(mo)m(v)m(e)330
 3002 y Fq(\017)60 b Fu(Bash)25 b(treats)h(a)f(n)m(um)m(b)s(er)e(of)i
 (\014lenames)g(sp)s(ecially)g(when)f(they)h(are)g(used)f(in)g
 (redirection)i(op)s(erators)330 3112 y(\(see)31 b(Section)h(3.6)f
-([Redirections],)h(page)f(33\).)225 3240 y Fq(\017)60
+([Redirections],)h(page)f(34\).)225 3240 y Fq(\017)60
 b Fu(Bash)33 b(can)f(op)s(en)g(net)m(w)m(ork)i(connections)f(to)h
 (arbitrary)e(mac)m(hines)h(and)f(services)h(with)f(the)h(redi-)330
 3349 y(rection)e(op)s(erators)g(\(see)g(Section)g(3.6)h
-([Redirections],)g(page)f(33\).)225 3477 y Fq(\017)60
+([Redirections],)g(page)f(34\).)225 3477 y Fq(\017)60
 b Fu(The)29 b Ft(noclobber)e Fu(option)j(is)g(a)m(v)-5
 b(ailable)32 b(to)e(a)m(v)m(oid)h(o)m(v)m(erwriting)g(existing)g
 (\014les)e(with)h(output)f(redi-)330 3587 y(rection)39
@@ -19214,10 +19325,10 @@ y Fq(\017)60 b Fu(Shell)29 b(functions)g(ma)m(y)h(b)s(e)f(exp)s(orted)g
 (to)h(c)m(hildren)f(via)h(the)g(en)m(vironmen)m(t)g(using)f
 Ft(export)f(-f)h Fu(\(see)330 5340 y(Section)i(3.3)h([Shell)e(F)-8
 b(unctions],)32 b(page)f(17\).)p eop end
-%%Page: 157 163
-TeXDict begin 157 162 bop 150 -116 a Fu(App)s(endix)29
+%%Page: 158 164
+TeXDict begin 158 163 bop 150 -116 a Fu(App)s(endix)29
 b(B:)i(Ma)5 b(jor)31 b(Di\013erences)g(F)-8 b(rom)31
-b(The)f(Bourne)g(Shell)1258 b(157)225 299 y Fq(\017)60
+b(The)f(Bourne)g(Shell)1258 b(158)225 299 y Fq(\017)60
 b Fu(The)40 b(Bash)h Ft(export)p Fu(,)h Ft(readonly)p
 Fu(,)f(and)g Ft(declare)d Fu(builtins)j(can)g(tak)m(e)h(a)f
 Ft(-f)f Fu(option)i(to)f(act)h(on)330 408 y(shell)30
@@ -19311,10 +19422,10 @@ Fu(builtin)i(\(see)h(Section)g(4.1)g([Bourne)f(Shell)g(Builtins],)j
 5340 y(signal)30 b(sp)s(eci\014cation,)h(similar)f(to)g
 Ft(EXIT)f Fu(and)g Ft(DEBUG)p Fu(.)39 b(Commands)28 b(sp)s(eci\014ed)h
 (with)g(an)g Ft(ERR)g Fu(trap)p eop end
-%%Page: 158 164
-TeXDict begin 158 163 bop 150 -116 a Fu(App)s(endix)29
+%%Page: 159 165
+TeXDict begin 159 164 bop 150 -116 a Fu(App)s(endix)29
 b(B:)i(Ma)5 b(jor)31 b(Di\013erences)g(F)-8 b(rom)31
-b(The)f(Bourne)g(Shell)1258 b(158)330 299 y(are)40 b(executed)g(after)g
+b(The)f(Bourne)g(Shell)1258 b(159)330 299 y(are)40 b(executed)g(after)g
 (a)f(simple)h(command)f(fails,)j(with)d(a)h(few)f(exceptions.)68
 b(The)39 b Ft(ERR)g Fu(trap)g(is)330 408 y(not)g(inherited)f(b)m(y)h
 (shell)g(functions)f(unless)g(the)h Ft(-o)29 b(errtrace)37
@@ -19396,10 +19507,10 @@ Fu(.)57 b(If)35 b(the)i(shell)f(is)h(started)g(from)e(a)i(pro)s(cess)f
 (with)g Ft(SIGSEGV)e Fu(blo)s(c)m(k)m(ed)k(\(e.g.,)h(b)m(y)d(using)330
 5340 y(the)31 b Ft(system\(\))d Fu(C)i(library)g(function)g(call\),)i
 (it)f(misb)s(eha)m(v)m(es)g(badly)-8 b(.)p eop end
-%%Page: 159 165
-TeXDict begin 159 164 bop 150 -116 a Fu(App)s(endix)29
+%%Page: 160 166
+TeXDict begin 160 165 bop 150 -116 a Fu(App)s(endix)29
 b(B:)i(Ma)5 b(jor)31 b(Di\013erences)g(F)-8 b(rom)31
-b(The)f(Bourne)g(Shell)1258 b(159)225 299 y Fq(\017)60
+b(The)f(Bourne)g(Shell)1258 b(160)225 299 y Fq(\017)60
 b Fu(In)30 b(a)i(questionable)g(attempt)g(at)g(securit)m(y)-8
 b(,)33 b(the)e(SVR4.2)h(shell,)g(when)e(in)m(v)m(ok)m(ed)j(without)e
 (the)h Ft(-p)330 408 y Fu(option,)39 b(will)d(alter)i(its)e(real)h(and)
@@ -19430,8 +19541,8 @@ Fm(posix)330 1738 y Fu(standard.)225 1873 y Fq(\017)60
 b Fu(The)30 b(SVR4.2)h(shell)g(b)s(eha)m(v)m(es)f(di\013eren)m(tly)h
 (when)f(in)m(v)m(ok)m(ed)i(as)e Ft(jsh)g Fu(\(it)h(turns)e(on)h(job)g
 (con)m(trol\).)p eop end
-%%Page: 160 166
-TeXDict begin 160 165 bop 3614 -116 a Fu(160)150 299
+%%Page: 161 167
+TeXDict begin 161 166 bop 3614 -116 a Fu(161)150 299
 y Fp(App)t(endix)52 b(C)81 b(GNU)54 b(F)-13 b(ree)53
 b(Do)t(cumen)l(tation)e(License)1359 502 y Fu(V)-8 b(ersion)31
 b(1.3,)g(3)g(No)m(v)m(em)m(b)s(er)h(2008)390 635 y(Cop)m(yrigh)m(t)842
@@ -19512,10 +19623,10 @@ b(\\In)m(v)-5 b(arian)m(t)27 b(Sections")g(are)f(certain)g(Secondary)g
 5340 y(b)s(eing)e(those)h(of)g(In)m(v)-5 b(arian)m(t)27
 b(Sections,)i(in)d(the)h(notice)h(that)f(sa)m(ys)g(that)g(the)g(Do)s
 (cumen)m(t)g(is)g(released)p eop end
-%%Page: 161 167
-TeXDict begin 161 166 bop 150 -116 a Fu(App)s(endix)29
+%%Page: 162 168
+TeXDict begin 162 167 bop 150 -116 a Fu(App)s(endix)29
 b(C:)h(GNU)h(F)-8 b(ree)31 b(Do)s(cumen)m(tation)i(License)1560
-b(161)330 299 y(under)26 b(this)i(License.)40 b(If)27
+b(162)330 299 y(under)26 b(this)i(License.)40 b(If)27
 b(a)h(section)h(do)s(es)f(not)f(\014t)h(the)g(ab)s(o)m(v)m(e)h
 (de\014nition)e(of)h(Secondary)f(then)h(it)g(is)330 408
 y(not)k(allo)m(w)m(ed)i(to)e(b)s(e)g(designated)g(as)g(In)m(v)-5
@@ -19606,10 +19717,10 @@ b(Disclaimers)f(are)g(considered)e(to)330 4970 y(b)s(e)k(included)g(b)m
 b(Disclaimers)f(ma)m(y)g(ha)m(v)m(e)g(is)f(v)m(oid)g(and)f(has)h(no)330
 5189 y(e\013ect)32 b(on)e(the)h(meaning)f(of)h(this)f(License.)199
 5340 y(2.)61 b(VERBA)-8 b(TIM)31 b(COPYING)p eop end
-%%Page: 162 168
-TeXDict begin 162 167 bop 150 -116 a Fu(App)s(endix)29
+%%Page: 163 169
+TeXDict begin 163 168 bop 150 -116 a Fu(App)s(endix)29
 b(C:)h(GNU)h(F)-8 b(ree)31 b(Do)s(cumen)m(tation)i(License)1560
-b(162)330 299 y(Y)-8 b(ou)39 b(ma)m(y)f(cop)m(y)h(and)e(distribute)h
+b(163)330 299 y(Y)-8 b(ou)39 b(ma)m(y)f(cop)m(y)h(and)e(distribute)h
 (the)g(Do)s(cumen)m(t)h(in)f(an)m(y)g(medium,)h(either)g(commercially)h
 (or)330 408 y(noncommercially)-8 b(,)48 b(pro)m(vided)42
 b(that)h(this)f(License,)47 b(the)42 b(cop)m(yrigh)m(t)i(notices,)j
@@ -19699,10 +19810,10 @@ b(in)f(the)h(Title)h(P)m(age)g(\(and)f(on)f(the)h(co)m(v)m(ers,)i(if)e
 5340 y(Do)s(cumen)m(t,)j(and)d(from)g(those)i(of)f(previous)f(v)m
 (ersions)h(\(whic)m(h)g(should,)g(if)g(there)g(w)m(ere)g(an)m(y)-8
 b(,)p eop end
-%%Page: 163 169
-TeXDict begin 163 168 bop 150 -116 a Fu(App)s(endix)29
+%%Page: 164 170
+TeXDict begin 164 169 bop 150 -116 a Fu(App)s(endix)29
 b(C:)h(GNU)h(F)-8 b(ree)31 b(Do)s(cumen)m(tation)i(License)1560
-b(163)510 299 y(b)s(e)31 b(listed)h(in)f(the)g(History)h(section)g(of)g
+b(164)510 299 y(b)s(e)31 b(listed)h(in)f(the)g(History)h(section)g(of)g
 (the)f(Do)s(cumen)m(t\).)45 b(Y)-8 b(ou)32 b(ma)m(y)g(use)f(the)g(same)
 h(title)h(as)510 408 y(a)e(previous)f(v)m(ersion)g(if)h(the)f(original)
 i(publisher)d(of)h(that)h(v)m(ersion)g(giv)m(es)h(p)s(ermission.)360
@@ -19781,10 +19892,10 @@ b(arran)m(t)m(y)32 b(Disclaimers.)330 5121 y(If)h(the)g(Mo)s(di\014ed)g
 (designate)h(some)e(or)h(all)g(of)f(these)h(sections)h(as)e(in)m(v)-5
 b(arian)m(t.)48 b(T)-8 b(o)33 b(do)f(this,)h(add)f(their)p
 eop end
-%%Page: 164 170
-TeXDict begin 164 169 bop 150 -116 a Fu(App)s(endix)29
+%%Page: 165 171
+TeXDict begin 165 170 bop 150 -116 a Fu(App)s(endix)29
 b(C:)h(GNU)h(F)-8 b(ree)31 b(Do)s(cumen)m(tation)i(License)1560
-b(164)330 299 y(titles)37 b(to)f(the)f(list)h(of)g(In)m(v)-5
+b(165)330 299 y(titles)37 b(to)f(the)f(list)h(of)g(In)m(v)-5
 b(arian)m(t)36 b(Sections)g(in)f(the)h(Mo)s(di\014ed)f(V)-8
 b(ersion's)36 b(license)g(notice.)57 b(These)330 408
 y(titles)32 b(m)m(ust)e(b)s(e)g(distinct)h(from)e(an)m(y)i(other)g
@@ -19869,10 +19980,10 @@ b(ma)m(y)g(extract)h(a)f(single)g(do)s(cumen)m(t)f(from)g(suc)m(h)g(a)h
 5230 y(do)s(cumen)m(t,)d(and)f(follo)m(w)i(this)e(License)h(in)g(all)g
 (other)g(resp)s(ects)f(regarding)h(v)m(erbatim)g(cop)m(ying)h(of)330
 5340 y(that)d(do)s(cumen)m(t.)p eop end
-%%Page: 165 171
-TeXDict begin 165 170 bop 150 -116 a Fu(App)s(endix)29
+%%Page: 166 172
+TeXDict begin 166 171 bop 150 -116 a Fu(App)s(endix)29
 b(C:)h(GNU)h(F)-8 b(ree)31 b(Do)s(cumen)m(tation)i(License)1560
-b(165)199 299 y(7.)61 b(A)m(GGREGA)-8 b(TION)32 b(WITH)e(INDEPENDENT)h
+b(166)199 299 y(7.)61 b(A)m(GGREGA)-8 b(TION)32 b(WITH)e(INDEPENDENT)h
 (W)m(ORKS)330 441 y(A)d(compilation)i(of)e(the)g(Do)s(cumen)m(t)h(or)f
 (its)g(deriv)-5 b(ativ)m(es)30 b(with)d(other)i(separate)g(and)e(indep)
 s(enden)m(t)330 551 y(do)s(cumen)m(ts)33 b(or)g(w)m(orks,)h(in)f(or)h
@@ -19957,10 +20068,10 @@ b(ha)m(v)m(e)h(receiv)m(ed)h(copies)e(or)h(righ)m(ts)f(from)g(y)m(ou)g
 (reinstated,)i(receipt)f(of)f(a)g(cop)m(y)h(of)f(some)h(or)f(all)h(of)f
 (the)330 5340 y(same)31 b(material)h(do)s(es)e(not)g(giv)m(e)i(y)m(ou)f
 (an)m(y)g(righ)m(ts)f(to)i(use)e(it.)p eop end
-%%Page: 166 172
-TeXDict begin 166 171 bop 150 -116 a Fu(App)s(endix)29
+%%Page: 167 173
+TeXDict begin 167 172 bop 150 -116 a Fu(App)s(endix)29
 b(C:)h(GNU)h(F)-8 b(ree)31 b(Do)s(cumen)m(tation)i(License)1560
-b(166)154 299 y(10.)61 b(FUTURE)30 b(REVISIONS)f(OF)i(THIS)e(LICENSE)
+b(167)154 299 y(10.)61 b(FUTURE)30 b(REVISIONS)f(OF)i(THIS)e(LICENSE)
 330 433 y(The)41 b(F)-8 b(ree)43 b(Soft)m(w)m(are)f(F)-8
 b(oundation)43 b(ma)m(y)f(publish)e(new,)k(revised)d(v)m(ersions)h(of)g
 (the)g(GNU)g(F)-8 b(ree)330 543 y(Do)s(cumen)m(tation)34
@@ -20024,10 +20135,10 @@ f(of)g(that)330 2944 y(license)31 b(published)e(b)m(y)h(that)h(same)g
 g(under)330 3895 y(CC-BY-SA)30 b(on)g(the)h(same)f(site)h(at)g(an)m(y)g
 (time)g(b)s(efore)e(August)h(1,)h(2009,)h(pro)m(vided)e(the)g(MMC)h(is)
 330 4005 y(eligible)h(for)e(relicensing.)p eop end
-%%Page: 167 173
-TeXDict begin 167 172 bop 150 -116 a Fu(App)s(endix)29
+%%Page: 168 174
+TeXDict begin 168 173 bop 150 -116 a Fu(App)s(endix)29
 b(C:)h(GNU)h(F)-8 b(ree)31 b(Do)s(cumen)m(tation)i(License)1560
-b(167)150 299 y Fs(ADDENDUM:)45 b(Ho)l(w)h(to)f(use)g(this)h(License)f
+b(168)150 299 y Fs(ADDENDUM:)45 b(Ho)l(w)h(to)f(use)g(this)h(License)f
 (for)g(y)l(our)g(do)t(cumen)l(ts)150 458 y Fu(T)-8 b(o)35
 b(use)f(this)h(License)g(in)f(a)h(do)s(cumen)m(t)g(y)m(ou)f(ha)m(v)m(e)
 i(written,)g(include)f(a)f(cop)m(y)i(of)f(the)f(License)h(in)g(the)150
@@ -20062,8 +20173,8 @@ y(If)23 b(y)m(our)h(do)s(cumen)m(t)f(con)m(tains)i(non)m(trivial)g
 b(as)g(the)g(GNU)150 2331 y(General)31 b(Public)f(License,)i(to)f(p)s
 (ermit)e(their)i(use)f(in)g(free)g(soft)m(w)m(are.)p
 eop end
-%%Page: 168 174
-TeXDict begin 168 173 bop 3614 -116 a Fu(168)150 299
+%%Page: 169 175
+TeXDict begin 169 174 bop 3614 -116 a Fu(169)150 299
 y Fp(App)t(endix)52 b(D)81 b(Indexes)150 639 y Fs(D.1)68
 b(Index)45 b(of)g(Shell)g(Builtin)g(Commands)146 806
 y(.)150 923 y Fe(.)19 b Fc(:)13 b(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
@@ -20220,9 +20331,9 @@ g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)21 b Fb(59)2025
 5235 y Fe(suspend)d Fc(:)d(:)e(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
 (:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)
 f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)33 b Fb(105)p eop end
-%%Page: 169 175
-TeXDict begin 169 174 bop 150 -116 a Fu(App)s(endix)29
-b(D:)i(Indexes)2623 b(169)146 294 y Fs(T)150 410 y Fe(test)11
+%%Page: 170 176
+TeXDict begin 170 175 bop 150 -116 a Fu(App)s(endix)29
+b(D:)i(Indexes)2623 b(170)146 294 y Fs(T)150 410 y Fe(test)11
 b Fc(:)j(:)f(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
 g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g
 (:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)25 b Fb(47)150 497
@@ -20326,37 +20437,37 @@ h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)23 b Fb(10)2021
 (:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)
 f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)23
 b Fb(10)p eop end
-%%Page: 170 176
-TeXDict begin 170 175 bop 150 -116 a Fu(App)s(endix)29
-b(D:)i(Indexes)2623 b(170)150 299 y Fs(D.3)68 b(P)l(arameter)47
+%%Page: 171 177
+TeXDict begin 171 176 bop 150 -116 a Fu(App)s(endix)29
+b(D:)i(Indexes)2623 b(171)150 299 y Fs(D.3)68 b(P)l(arameter)47
 b(and)d(V)-11 b(ariable)46 b(Index)146 955 y(!)150 1073
 y Fe(!)19 b Fc(:)13 b(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f
 (:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)
 g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)33
-b Fb(21)146 1327 y Fs(#)150 1445 y Fe(#)19 b Fc(:)13
+b Fb(22)146 1327 y Fs(#)150 1445 y Fe(#)19 b Fc(:)13
 b(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
 (:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)
 f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)33 b Fb(21)146
 1701 y Fs($)150 1820 y Fe($)19 b Fc(:)13 b(:)g(:)g(:)h(:)f(:)g(:)g(:)g
 (:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
 g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f
-(:)g(:)g(:)33 b Fb(21)150 1909 y Fe($!)16 b Fc(:)e(:)f(:)g(:)g(:)g(:)g
+(:)g(:)g(:)33 b Fb(22)150 1909 y Fe($!)16 b Fc(:)e(:)f(:)g(:)g(:)g(:)g
 (:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)
 g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
-(:)g(:)g(:)g(:)31 b Fb(21)150 1997 y Fe($#)16 b Fc(:)e(:)f(:)g(:)g(:)g
+(:)g(:)g(:)g(:)31 b Fb(22)150 1997 y Fe($#)16 b Fc(:)e(:)f(:)g(:)g(:)g
 (:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)
 f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g
 (:)g(:)g(:)g(:)g(:)31 b Fb(21)150 2085 y Fe($$)16 b Fc(:)e(:)f(:)g(:)g
 (:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)
 h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g
-(:)g(:)g(:)g(:)g(:)g(:)31 b Fb(21)150 2173 y Fe($*)16
+(:)g(:)g(:)g(:)g(:)g(:)31 b Fb(22)150 2173 y Fe($*)16
 b Fc(:)e(:)f(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)
 g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
 (:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)31 b Fb(21)150
 2261 y Fe($-)16 b Fc(:)e(:)f(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
 g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h
 (:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)31
-b Fb(21)150 2350 y Fe($?)16 b Fc(:)e(:)f(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)
+b Fb(22)150 2350 y Fe($?)16 b Fc(:)e(:)f(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)
 g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g
 (:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)
 31 b Fb(21)150 2438 y Fe($@)16 b Fc(:)e(:)f(:)g(:)g(:)g(:)g(:)h(:)f(:)g
@@ -20365,17 +20476,17 @@ g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g
 (:)31 b Fb(21)150 2526 y Fe($_)16 b Fc(:)e(:)f(:)g(:)g(:)g(:)g(:)h(:)f
 (:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)
 g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
-(:)g(:)31 b Fb(21)150 2613 y Fe($0)16 b Fc(:)e(:)f(:)g(:)g(:)g(:)g(:)h
+(:)g(:)31 b Fb(22)150 2613 y Fe($0)16 b Fc(:)e(:)f(:)g(:)g(:)g(:)g(:)h
 (:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)
 g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g
-(:)g(:)g(:)31 b Fb(21)146 2876 y Fs(*)150 2994 y Fe(*)19
+(:)g(:)g(:)31 b Fb(22)146 2876 y Fs(*)150 2994 y Fe(*)19
 b Fc(:)13 b(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
 (:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)
 g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)33 b
 Fb(21)146 3248 y Fs({)150 3366 y Fe(-)19 b Fc(:)13 b(:)g(:)g(:)h(:)f(:)
 g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g
 (:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
-g(:)h(:)f(:)g(:)g(:)33 b Fb(21)146 3620 y Fs(?)150 3738
+g(:)h(:)f(:)g(:)g(:)33 b Fb(22)146 3620 y Fs(?)150 3738
 y Fe(?)19 b Fc(:)13 b(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f
 (:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)
 g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)33
@@ -20386,11 +20497,11 @@ f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)33 b Fb(21)p
 156 4364 41 6 v 150 4482 a Fe(_)19 b Fc(:)13 b(:)g(:)g(:)h(:)f(:)g(:)g
 (:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
 g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h
-(:)f(:)g(:)g(:)33 b Fb(21)146 4736 y Fs(0)150 4854 y
+(:)f(:)g(:)g(:)33 b Fb(22)146 4736 y Fs(0)150 4854 y
 Fe(0)19 b Fc(:)13 b(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g
 (:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
 g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)33
-b Fb(21)146 5108 y Fs(A)150 5226 y Fe(auto_resume)8 b
+b Fb(22)146 5108 y Fs(A)150 5226 y Fe(auto_resume)8 b
 Fc(:)16 b(:)d(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g
 (:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
 23 b Fb(105)2021 954 y Fs(B)2025 1074 y Fe(BASH)11 b
@@ -20410,7 +20521,7 @@ b Fb(73)2025 1429 y Fe(BASH_ARGV0)13 b Fc(:)i(:)e(:)g(:)g(:)h(:)f(:)g
 g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)27 b Fb(73)2025
 1517 y Fe(BASH_CMDS)15 b Fc(:)g(:)f(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f
 (:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)
-g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)30 b Fb(73)2025 1606
+g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)30 b Fb(74)2025 1606
 y Fe(BASH_COMMAND)8 b Fc(:)15 b(:)f(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f
 (:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)
 g(:)g(:)g(:)g(:)h(:)22 b Fb(74)2025 1695 y Fe(BASH_COMPAT)10
@@ -20432,7 +20543,7 @@ h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g
 (:)g(:)g(:)g(:)g(:)g(:)h(:)22 b Fb(74)2025 2226 y Fe(BASH_SOURCE)10
 b Fc(:)16 b(:)d(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f
 (:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)
-g(:)25 b Fb(74)2025 2315 y Fe(BASH_SUBSHELL)g Fc(:)13
+g(:)25 b Fb(75)2025 2315 y Fe(BASH_SUBSHELL)g Fc(:)13
 b(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
 (:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)37
 b Fb(75)2025 2403 y Fe(BASH_VERSINFO)25 b Fc(:)13 b(:)g(:)g(:)h(:)f(:)g
@@ -20513,12 +20624,12 @@ y Fe(COPROC)6 b Fc(:)14 b(:)f(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f
 (:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)
 g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)21 b Fb(76)p
 eop end
-%%Page: 171 177
-TeXDict begin 171 176 bop 150 -116 a Fu(App)s(endix)29
-b(D:)i(Indexes)2623 b(171)146 294 y Fs(D)150 416 y Fe(DIRSTACK)18
+%%Page: 172 178
+TeXDict begin 172 177 bop 150 -116 a Fu(App)s(endix)29
+b(D:)i(Indexes)2623 b(172)146 294 y Fs(D)150 416 y Fe(DIRSTACK)18
 b Fc(:)d(:)e(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)
 g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g
-(:)g(:)h(:)f(:)32 b Fb(76)150 503 y Fe(disable-completion)7
+(:)g(:)h(:)f(:)32 b Fb(77)150 503 y Fe(disable-completion)7
 b Fc(:)18 b(:)13 b(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h
 (:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)22 b Fb(111)146
 791 y Fs(E)150 913 y Fe(echo-control-characters)12 b
@@ -20583,7 +20694,7 @@ g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g
 (:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)25 b Fb(78)150
 3720 y Fe(HISTFILE)18 b Fc(:)d(:)e(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g
 (:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)
-h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)32 b Fb(78)150 3809
+h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)32 b Fb(79)150 3809
 y Fe(HISTFILESIZE)8 b Fc(:)16 b(:)d(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g
 (:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
 g(:)g(:)h(:)f(:)g(:)22 b Fb(79)150 3899 y Fe(HISTIGNORE)13
@@ -20613,100 +20724,102 @@ y Fe(HOSTNAME)18 b Fc(:)d(:)e(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
 f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)32 b Fb(79)150 4700 y
 Fe(HOSTTYPE)18 b Fc(:)d(:)e(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h
 (:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)
-g(:)g(:)g(:)g(:)g(:)h(:)f(:)32 b Fb(79)2021 294 y Fs(I)2025
-421 y Fe(IFS)14 b Fc(:)f(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)
+g(:)g(:)g(:)g(:)g(:)h(:)f(:)32 b Fb(80)2021 294 y Fs(I)2025
+420 y Fe(IFS)14 b Fc(:)f(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)
 g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
 (:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)28
-b Fb(72)2025 512 y Fe(IGNOREEOF)15 b Fc(:)g(:)f(:)f(:)g(:)g(:)g(:)g(:)g
+b Fb(72)2025 510 y Fe(IGNOREEOF)15 b Fc(:)g(:)f(:)f(:)g(:)g(:)g(:)g(:)g
 (:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)
 f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)30 b Fb(80)2025
-602 y Fe(input-meta)11 b Fc(:)k(:)e(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g
+600 y Fe(input-meta)11 b Fc(:)k(:)e(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g
 (:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)
-h(:)f(:)g(:)g(:)g(:)g(:)26 b Fb(112)2025 693 y Fe(INPUTRC)c
+h(:)f(:)g(:)g(:)g(:)g(:)26 b Fb(113)2025 691 y Fe(INPUTRC)c
 Fc(:)13 b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g
 (:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
-g(:)g(:)h(:)f(:)g(:)35 b Fb(80)2025 780 y Fe(isearch-terminators)26
-b Fc(:)13 b(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
-(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)37 b Fb(113)2021 1088
-y Fs(K)2025 1211 y Fe(keymap)22 b Fc(:)13 b(:)g(:)g(:)h(:)f(:)g(:)g(:)g
-(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)
-h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)36
-b Fb(113)2021 1531 y Fs(L)2025 1658 y Fe(LANG)11 b Fc(:)j(:)f(:)g(:)g
-(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)
-f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g
-(:)g(:)g(:)g(:)26 b Fb(80)2025 1748 y Fe(LC_ALL)6 b Fc(:)14
-b(:)f(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h
-(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)
-g(:)g(:)g(:)g(:)g(:)21 b Fb(80)2025 1839 y Fe(LC_COLLATE)13
+g(:)g(:)h(:)f(:)g(:)35 b Fb(80)2025 781 y Fe(INSIDE_EMACS)8
+b Fc(:)15 b(:)f(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
+(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)
+22 b Fb(80)2025 868 y Fe(isearch-terminators)k Fc(:)13
+b(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
+(:)h(:)f(:)g(:)g(:)g(:)37 b Fb(113)2021 1167 y Fs(K)2025
+1290 y Fe(keymap)22 b Fc(:)13 b(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h
+(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)
+g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)36 b Fb(113)2021
+1601 y Fs(L)2025 1727 y Fe(LANG)11 b Fc(:)j(:)f(:)g(:)g(:)g(:)h(:)f(:)g
+(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
+g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)26
+b Fb(80)2025 1817 y Fe(LC_ALL)6 b Fc(:)14 b(:)f(:)h(:)f(:)g(:)g(:)g(:)g
+(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)
+h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)21
+b Fb(80)2025 1907 y Fe(LC_COLLATE)13 b Fc(:)i(:)e(:)g(:)g(:)h(:)f(:)g
+(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
+g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)27 b Fb(80)2025
+1998 y Fe(LC_CTYPE)18 b Fc(:)d(:)e(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
+(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
+g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)33 b Fb(80)2025 2088
+y Fe(LC_MESSAGES)21 b Fc(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h
+(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)
+g(:)g(:)g(:)34 b Fb(7,)26 b(80)2025 2178 y Fe(LC_NUMERIC)13
 b Fc(:)i(:)e(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
 g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
-(:)h(:)27 b Fb(80)2025 1930 y Fe(LC_CTYPE)18 b Fc(:)d(:)e(:)g(:)g(:)g
+(:)h(:)27 b Fb(80)2025 2269 y Fe(LC_TIME)22 b Fc(:)13
+b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g
 (:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)
-h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)33
-b Fb(80)2025 2021 y Fe(LC_MESSAGES)21 b Fc(:)13 b(:)g(:)h(:)f(:)g(:)g
-(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
-g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)34 b Fb(7,)26 b(80)2025
-2111 y Fe(LC_NUMERIC)13 b Fc(:)i(:)e(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
-g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h
-(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)27 b Fb(80)2025 2202 y
-Fe(LC_TIME)22 b Fc(:)13 b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g
-(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)
-g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)35 b Fb(80)2025 2293
-y Fe(LINENO)6 b Fc(:)14 b(:)f(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f
-(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)
-g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)21 b Fb(80)2025
-2380 y Fe(LINES)9 b Fc(:)14 b(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g
-(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
-g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)23
-b Fb(80)2021 2688 y Fs(M)2025 2815 y Fe(MACHTYPE)18 b
-Fc(:)d(:)e(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g
-(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
-g(:)g(:)g(:)33 b Fb(80)2025 2906 y Fe(MAIL)11 b Fc(:)j(:)f(:)g(:)g(:)g
-(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)
-g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
-(:)g(:)g(:)26 b Fb(72)2025 2996 y Fe(MAILCHECK)15 b Fc(:)g(:)f(:)f(:)g
-(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)
-g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)30
-b Fb(80)2025 3087 y Fe(MAILPATH)18 b Fc(:)d(:)e(:)g(:)g(:)g(:)g(:)h(:)f
+h(:)f(:)g(:)35 b Fb(80)2025 2359 y Fe(LINENO)6 b Fc(:)14
+b(:)f(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h
+(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)
+g(:)g(:)g(:)g(:)g(:)21 b Fb(80)2025 2446 y Fe(LINES)9
+b Fc(:)14 b(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h
+(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)
+g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)23 b Fb(80)2021 2746
+y Fs(M)2025 2872 y Fe(MACHTYPE)18 b Fc(:)d(:)e(:)g(:)g(:)g(:)g(:)h(:)f
 (:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)
 g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)33 b
-Fb(72)2025 3178 y Fe(MAPFILE)22 b Fc(:)13 b(:)g(:)g(:)g(:)h(:)f(:)g(:)g
-(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
-g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)35
-b Fb(80)2025 3269 y Fe(mark-modified-lines)26 b Fc(:)13
-b(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
-(:)h(:)f(:)g(:)g(:)g(:)37 b Fb(113)2025 3359 y Fe
-(mark-symlinked-directories)27 b Fc(:)13 b(:)g(:)g(:)g(:)h(:)f(:)g(:)g
-(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)36 b Fb(113)2025 3450
-y Fe(match-hidden-files)7 b Fc(:)17 b(:)d(:)f(:)g(:)g(:)g(:)g(:)g(:)g
-(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)22
-b Fb(113)2025 3541 y Fe(menu-complete-display-prefix)17
-b Fc(:)h(:)13 b(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)31
-b Fb(114)2025 3628 y Fe(meta-flag)13 b Fc(:)i(:)e(:)h(:)f(:)g(:)g(:)g
+Fb(80)2025 2962 y Fe(MAIL)11 b Fc(:)j(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g
 (:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
-g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)28 b Fb(112)2021
-3947 y Fs(O)2025 4074 y Fe(OLDPWD)6 b Fc(:)14 b(:)f(:)h(:)f(:)g(:)g(:)g
-(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)
-g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)21
-b Fb(81)2025 4165 y Fe(OPTARG)6 b Fc(:)14 b(:)f(:)h(:)f(:)g(:)g(:)g(:)g
-(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)
-h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)21
-b Fb(72)2025 4256 y Fe(OPTERR)6 b Fc(:)14 b(:)f(:)h(:)f(:)g(:)g(:)g(:)g
-(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)
-h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)21
-b Fb(81)2025 4347 y Fe(OPTIND)6 b Fc(:)14 b(:)f(:)h(:)f(:)g(:)g(:)g(:)g
-(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)
-h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)21
-b Fb(72)2025 4437 y Fe(OSTYPE)6 b Fc(:)14 b(:)f(:)h(:)f(:)g(:)g(:)g(:)g
-(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)
-h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)21
-b Fb(81)2025 4525 y Fe(output-meta)8 b Fc(:)16 b(:)d(:)g(:)g(:)g(:)g(:)
-g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f
-(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)23 b Fb(114)p
-eop end
-%%Page: 172 178
-TeXDict begin 172 177 bop 150 -116 a Fu(App)s(endix)29
-b(D:)i(Indexes)2623 b(172)146 294 y Fs(P)150 410 y Fe(page-completions)
+g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)26
+b Fb(72)2025 3052 y Fe(MAILCHECK)15 b Fc(:)g(:)f(:)f(:)g(:)g(:)g(:)g(:)
+g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h
+(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)30 b Fb(80)2025
+3143 y Fe(MAILPATH)18 b Fc(:)d(:)e(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
+(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
+g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)33 b Fb(72)2025 3233
+y Fe(MAPFILE)22 b Fc(:)13 b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g
+(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)
+g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)35 b Fb(81)2025 3323
+y Fe(mark-modified-lines)26 b Fc(:)13 b(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g
+(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)37
+b Fb(113)2025 3414 y Fe(mark-symlinked-directories)27
+b Fc(:)13 b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)
+36 b Fb(113)2025 3504 y Fe(match-hidden-files)7 b Fc(:)17
+b(:)d(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f
+(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)22 b Fb(114)2025 3594
+y Fe(menu-complete-display-prefix)17 b Fc(:)h(:)13 b(:)h(:)f(:)g(:)g(:)
+g(:)g(:)g(:)h(:)f(:)g(:)g(:)31 b Fb(114)2025 3681 y Fe(meta-flag)13
+b Fc(:)i(:)e(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
+g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h
+(:)f(:)28 b Fb(113)2021 3992 y Fs(O)2025 4118 y Fe(OLDPWD)6
+b Fc(:)14 b(:)f(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g
+(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)
+h(:)f(:)g(:)g(:)g(:)g(:)g(:)21 b Fb(81)2025 4208 y Fe(OPTARG)6
+b Fc(:)14 b(:)f(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g
+(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)
+h(:)f(:)g(:)g(:)g(:)g(:)g(:)21 b Fb(72)2025 4299 y Fe(OPTERR)6
+b Fc(:)14 b(:)f(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g
+(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)
+h(:)f(:)g(:)g(:)g(:)g(:)g(:)21 b Fb(81)2025 4389 y Fe(OPTIND)6
+b Fc(:)14 b(:)f(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g
+(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)
+h(:)f(:)g(:)g(:)g(:)g(:)g(:)21 b Fb(72)2025 4480 y Fe(OSTYPE)6
+b Fc(:)14 b(:)f(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g
+(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)
+h(:)f(:)g(:)g(:)g(:)g(:)g(:)21 b Fb(81)2025 4567 y Fe(output-meta)8
+b Fc(:)16 b(:)d(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h
+(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)
+23 b Fb(114)p eop end
+%%Page: 173 179
+TeXDict begin 173 178 bop 150 -116 a Fu(App)s(endix)29
+b(D:)i(Indexes)2623 b(173)146 294 y Fs(P)150 410 y Fe(page-completions)
 13 b Fc(:)j(:)d(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
 (:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)27 b Fb(114)150
 497 y Fe(PATH)11 b Fc(:)j(:)f(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h
@@ -20747,10 +20860,10 @@ g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)28
 b Fb(81)146 1689 y Fs(R)150 1804 y Fe(RANDOM)6 b Fc(:)15
 b(:)e(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f
 (:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)
-g(:)g(:)g(:)h(:)f(:)20 b Fb(81)150 1892 y Fe(READLINE_LINE)25
+g(:)g(:)g(:)h(:)f(:)20 b Fb(82)150 1892 y Fe(READLINE_LINE)25
 b Fc(:)13 b(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
 (:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)37
-b Fb(81)150 1979 y Fe(READLINE_POINT)23 b Fc(:)13 b(:)g(:)g(:)g(:)h(:)f
+b Fb(82)150 1979 y Fe(READLINE_POINT)23 b Fc(:)13 b(:)g(:)g(:)g(:)h(:)f
 (:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)
 g(:)g(:)g(:)h(:)f(:)g(:)g(:)34 b Fb(82)150 2066 y Fe(REPLY)9
 b Fc(:)14 b(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g
@@ -20779,7 +20892,7 @@ g(:)h(:)f(:)g(:)g(:)g(:)23 b Fb(82)150 2851 y Fe(show-all-if-ambiguous)
 g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)37
 b Fb(114)2025 347 y Fe(skip-completed-text)26 b Fc(:)13
 b(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
-(:)h(:)f(:)g(:)g(:)g(:)37 b Fb(114)2021 675 y Fs(T)2025
+(:)h(:)f(:)g(:)g(:)g(:)37 b Fb(115)2021 675 y Fs(T)2025
 803 y Fe(TEXTDOMAIN)15 b Fc(:)g(:)e(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h
 (:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)
 g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)30 b Fb(7)2025 894 y
@@ -20854,9 +20967,9 @@ f(:)g(:)g(:)g(:)g(:)g(:)g(:)34 b Fb(127)2025 5340 y Fe
 (complete-hostname)29 b(\(M-@\))20 b Fc(:)13 b(:)g(:)g(:)g(:)h(:)f(:)g
 (:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)34
 b Fb(127)p eop end
-%%Page: 173 179
-TeXDict begin 173 178 bop 150 -116 a Fu(App)s(endix)29
-b(D:)i(Indexes)2623 b(173)150 264 y Fe(complete-into-braces)30
+%%Page: 174 180
+TeXDict begin 174 179 bop 150 -116 a Fu(App)s(endix)29
+b(D:)i(Indexes)2623 b(174)150 264 y Fe(complete-into-braces)30
 b(\(M-{\))11 b Fc(:)j(:)f(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g
 (:)g(:)g(:)g(:)26 b Fb(128)150 354 y Fe(complete-username)j(\(M-~\))20
 b Fc(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
@@ -20981,9 +21094,9 @@ b(\(C-o\))11 b Fc(:)j(:)f(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f
 b Fc(:)c(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)
 g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)32 b Fb(124)p
 eop end
-%%Page: 174 180
-TeXDict begin 174 179 bop 150 -116 a Fu(App)s(endix)29
-b(D:)i(Indexes)2623 b(174)146 294 y Fs(P)150 414 y Fe
+%%Page: 175 181
+TeXDict begin 175 180 bop 150 -116 a Fu(App)s(endix)29
+b(D:)i(Indexes)2623 b(175)146 294 y Fs(P)150 414 y Fe
 (possible-command-completions)32 b(\(C-x)26 b(!\))9 b
 Fc(:)14 b(:)g(:)f(:)g(:)g(:)24 b Fb(127)150 503 y Fe
 (possible-completions)30 b(\(M-?\))11 b Fc(:)j(:)f(:)h(:)f(:)g(:)g(:)g
@@ -21079,7 +21192,7 @@ b(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g
 (:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)37 b Fb(91)150 4832 y(arithmetic)26
 b(expansion)11 b Fc(:)j(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h
 (:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)26
-b Fb(30)150 4923 y(arithmetic,)h(shell)6 b Fc(:)14 b(:)f(:)g(:)g(:)g(:)
+b Fb(31)150 4923 y(arithmetic,)h(shell)6 b Fc(:)14 b(:)f(:)g(:)g(:)g(:)
 g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h
 (:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)20 b Fb(91)150 5010
 y(arra)n(ys)h Fc(:)14 b(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g
@@ -21090,28 +21203,28 @@ f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g
 (:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)28 b Fb(102)2025
 4739 y(Bash)e(con\014guration)11 b Fc(:)j(:)f(:)g(:)g(:)g(:)g(:)h(:)f
 (:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)
-g(:)g(:)26 b Fb(145)2025 4829 y(Bash)g(installation)9
+g(:)g(:)26 b Fb(146)2025 4829 y(Bash)g(installation)9
 b Fc(:)15 b(:)e(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f
 (:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)24
-b Fb(145)2025 4918 y(Bourne)i(shell)20 b Fc(:)13 b(:)g(:)g(:)g(:)h(:)f
+b Fb(146)2025 4918 y(Bourne)i(shell)20 b Fc(:)13 b(:)g(:)g(:)g(:)h(:)f
 (:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)
 g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)35 b
 Fb(5)2025 5008 y(brace)26 b(expansion)9 b Fc(:)k(:)g(:)h(:)f(:)g(:)g(:)
 g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g
-(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)24 b Fb(22)2025 5095 y(builtin)15
+(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)24 b Fb(23)2025 5095 y(builtin)15
 b Fc(:)e(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)
 g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g
 (:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)30 b Fb(3)p eop end
-%%Page: 175 181
-TeXDict begin 175 180 bop 150 -116 a Fu(App)s(endix)29
-b(D:)i(Indexes)2623 b(175)146 294 y Fs(C)150 418 y Fb(command)26
+%%Page: 176 182
+TeXDict begin 176 181 bop 150 -116 a Fu(App)s(endix)29
+b(D:)i(Indexes)2623 b(176)146 294 y Fs(C)150 418 y Fb(command)26
 b(editing)19 b Fc(:)14 b(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)
 g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)34
 b Fb(107)150 507 y(command)26 b(execution)12 b Fc(:)h(:)g(:)g(:)g(:)g
 (:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)
 g(:)h(:)f(:)g(:)g(:)26 b Fb(38)150 597 y(command)g(expansion)c
 Fc(:)13 b(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g
-(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)36 b Fb(37)150
+(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)36 b Fb(38)150
 687 y(command)26 b(history)18 b Fc(:)13 b(:)g(:)g(:)g(:)g(:)h(:)f(:)g
 (:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
 g(:)g(:)g(:)33 b Fb(140)150 777 y(command)26 b(searc)n(h)16
@@ -21150,7 +21263,7 @@ g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)28 b Fb(7)150
 g(:)36 b Fb(133)150 1943 y(con\014guration)22 b Fc(:)13
 b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g
 (:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)36
-b Fb(145)150 2033 y(con)n(trol)26 b(op)r(erator)8 b Fc(:)15
+b Fb(146)150 2033 y(con)n(trol)26 b(op)r(erator)8 b Fc(:)15
 b(:)e(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g
 (:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)23
 b Fb(3)150 2120 y(copro)r(cess)18 b Fc(:)c(:)f(:)h(:)f(:)g(:)g(:)g(:)g
@@ -21164,14 +21277,14 @@ b Fc(:)d(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)
 f(:)g(:)g(:)g(:)g(:)g(:)g(:)32 b Fb(107)150 3046 y(en)n(vironmen)n(t)18
 b Fc(:)12 b(:)h(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
 (:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)
-f(:)32 b Fb(39)150 3136 y(ev)l(aluation,)26 b(arithmetic)12
+f(:)32 b Fb(40)150 3136 y(ev)l(aluation,)26 b(arithmetic)12
 b Fc(:)i(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)
 g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)26 b Fb(91)150 3226
 y(ev)n(en)n(t)f(designators)c Fc(:)13 b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
 (:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)
 g(:)h(:)34 b Fb(143)150 3316 y(execution)26 b(en)n(vironmen)n(t)17
 b Fc(:)12 b(:)h(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f
-(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)31 b Fb(38)150 3405
+(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)31 b Fb(39)150 3405
 y(exit)25 b(status)7 b Fc(:)14 b(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
 g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h
 (:)f(:)g(:)g(:)g(:)g(:)g(:)22 b Fb(3,)k(40)150 3495 y(expansion)9
@@ -21179,17 +21292,17 @@ b Fc(:)14 b(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h
 (:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)
 g(:)g(:)g(:)g(:)24 b Fb(22)150 3585 y(expansion,)i(arithmetic)18
 b Fc(:)c(:)f(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)
-g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)32 b Fb(30)150 3674
+g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)32 b Fb(31)150 3674
 y(expansion,)26 b(brace)16 b Fc(:)d(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
 (:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)
-f(:)g(:)g(:)30 b Fb(22)150 3764 y(expansion,)c(\014lename)18
+f(:)g(:)g(:)30 b Fb(23)150 3764 y(expansion,)c(\014lename)18
 b Fc(:)13 b(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
-(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)32 b Fb(31)150
+(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)32 b Fb(32)150
 3854 y(expansion,)26 b(parameter)21 b Fc(:)13 b(:)g(:)g(:)g(:)g(:)g(:)g
 (:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)
 g(:)34 b Fb(24)150 3944 y(expansion,)26 b(pathname)7
 b Fc(:)13 b(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
-(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)22 b Fb(31)150
+(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)22 b Fb(32)150
 4033 y(expansion,)k(tilde)14 b Fc(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g
 (:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)
 h(:)f(:)g(:)g(:)g(:)28 b Fb(23)150 4123 y(expressions,)f(arithmetic)13
@@ -21205,7 +21318,7 @@ g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
 g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)36
 b Fb(3)2025 593 y(\014lename)26 b(expansion)11 b Fc(:)i(:)h(:)f(:)g(:)g
 (:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
-g(:)g(:)h(:)f(:)g(:)g(:)26 b Fb(31)2025 682 y(foreground)9
+g(:)g(:)h(:)f(:)g(:)g(:)26 b Fb(32)2025 682 y(foreground)9
 b Fc(:)14 b(:)f(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
 (:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)
 h(:)f(:)24 b Fb(102)2025 769 y(functions,)i(shell)9 b
@@ -21233,7 +21346,7 @@ b Fc(:)d(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)
 f(:)g(:)g(:)g(:)32 b Fb(109)2025 2102 y(installation)21
 b Fc(:)13 b(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f
 (:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)
-g(:)34 b Fb(145)2025 2191 y(in)n(teraction,)26 b(readline)7
+g(:)34 b Fb(146)2025 2191 y(in)n(teraction,)26 b(readline)7
 b Fc(:)15 b(:)e(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g
 (:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)22 b Fb(106)2025
 2280 y(in)n(teractiv)n(e)k(shell)20 b Fc(:)13 b(:)h(:)f(:)g(:)g(:)g(:)g
@@ -21263,13 +21376,13 @@ h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)21
 b Fb(86)2021 4100 y Fs(M)2025 4221 y Fb(matc)n(hing,)26
 b(pattern)9 b Fc(:)k(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)
 g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)24
-b Fb(32)2025 4308 y(metac)n(haracter)7 b Fc(:)14 b(:)f(:)h(:)f(:)g(:)g
+b Fb(33)2025 4308 y(metac)n(haracter)7 b Fc(:)14 b(:)f(:)h(:)f(:)g(:)g
 (:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
 g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)22 b Fb(3)p
 eop end
-%%Page: 176 182
-TeXDict begin 176 181 bop 150 -116 a Fu(App)s(endix)29
-b(D:)i(Indexes)2623 b(176)146 294 y Fs(N)150 410 y Fb(name)19
+%%Page: 177 183
+TeXDict begin 177 182 bop 150 -116 a Fu(App)s(endix)29
+b(D:)i(Indexes)2623 b(177)146 294 y Fs(N)150 410 y Fb(name)19
 b Fc(:)14 b(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g
 (:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)
 g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)34 b Fb(3)150 497
@@ -21289,15 +21402,15 @@ b Fb(24)150 1388 y(parameters)c Fc(:)13 b(:)g(:)g(:)h(:)f(:)g(:)g(:)g
 g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)37 b Fb(19)150
 1475 y(parameters,)27 b(p)r(ositional)7 b Fc(:)15 b(:)e(:)g(:)g(:)g(:)g
 (:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)
-f(:)g(:)21 b Fb(20)150 1562 y(parameters,)27 b(sp)r(ecial)7
+f(:)g(:)21 b Fb(21)150 1562 y(parameters,)27 b(sp)r(ecial)7
 b Fc(:)14 b(:)f(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
 (:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)21
 b Fb(21)150 1649 y(pathname)k(expansion)18 b Fc(:)c(:)f(:)g(:)g(:)g(:)g
 (:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)
-h(:)f(:)g(:)32 b Fb(31)150 1736 y(pattern)25 b(matc)n(hing)c
+h(:)f(:)g(:)32 b Fb(32)150 1736 y(pattern)25 b(matc)n(hing)c
 Fc(:)13 b(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g
 (:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)34
-b Fb(32)150 1824 y(pip)r(eline)12 b Fc(:)h(:)g(:)h(:)f(:)g(:)g(:)g(:)g
+b Fb(33)150 1824 y(pip)r(eline)12 b Fc(:)h(:)g(:)h(:)f(:)g(:)g(:)g(:)g
 (:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)
 h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)27
 b Fb(8)150 1911 y(POSIX)22 b Fc(:)13 b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
@@ -21313,7 +21426,7 @@ g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)30 b Fb(3)150 2172 y(pro)r(cess)d
 (:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)
 g(:)26 b Fb(3)150 2259 y(pro)r(cess)h(substitution)11
 b Fc(:)h(:)i(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)
-h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)25 b Fb(30)150
+h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)25 b Fb(31)150
 2347 y(programmable)i(completion)8 b Fc(:)14 b(:)g(:)f(:)g(:)g(:)g(:)g
 (:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)23
 b Fb(131)150 2434 y(prompting)17 b Fc(:)c(:)g(:)g(:)h(:)f(:)g(:)g(:)g
@@ -21330,7 +21443,7 @@ b Fc(:)i(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
 g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)26 b Fb(105)150 3325
 y(redirection)13 b Fc(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g
 (:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
-g(:)g(:)h(:)f(:)g(:)g(:)g(:)27 b Fb(33)150 3412 y(reserv)n(ed)f(w)n
+g(:)g(:)h(:)f(:)g(:)g(:)g(:)27 b Fb(34)150 3412 y(reserv)n(ed)f(w)n
 (ord)13 b Fc(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
 g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g
 (:)h(:)f(:)28 b Fb(3)150 3499 y(restricted)e(shell)14
@@ -21358,7 +21471,7 @@ b Fb(87)2025 892 y(signal)13 b Fc(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g
 g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)28
 b Fb(4)2025 984 y(signal)f(handling)6 b Fc(:)13 b(:)g(:)g(:)h(:)f(:)g
 (:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
-g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)21 b Fb(40)2025 1077
+g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)21 b Fb(41)2025 1077
 y(sp)r(ecial)27 b(builtin)16 b Fc(:)d(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h
 (:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)
 g(:)g(:)g(:)g(:)31 b Fb(4,)26 b(71)2025 1170 y(startup)f(\014les)10
index c97e1175c1ee9b17adaa56f76946093d7764f388..cb67c8a255b0d7d1aafba6f9d3409da079c13e50 100644 (file)
@@ -876,7 +876,9 @@ zero if no condition tested true.
 The syntax of the @code{case} command is:
 
 @example
-case @var{word} in [ [(] @var{pattern} [| @var{pattern}]@dots{}) @var{command-list} ;;]@dots{} esac
+case @var{word} in
+    [ [(] @var{pattern} [| @var{pattern}]@dots{}) @var{command-list} ;;]@dots{}
+esac
 @end example
 
 @code{case} will selectively execute the @var{command-list} corresponding to
@@ -1028,7 +1030,8 @@ to be matched as a string.
 An additional binary operator, @samp{=~}, is available, with the same
 precedence as @samp{==} and @samp{!=}.
 When it is used, the string to the right of the operator is considered
-an extended regular expression and matched accordingly (as in @i{regex}3)).
+a @sc{POSIX} extended regular expression and matched accordingly
+(as in @i{regex}3)).
 The return value is 0 if the string matches
 the pattern, and 1 otherwise.
 If the regular expression is syntactically incorrect, the conditional
@@ -1283,7 +1286,8 @@ from a file (in this case, filenames listed one per line):
 @noindent
 with a more compact syntax reminiscent of lambdas:
 @example
-cat list | parallel "do-something1 @{@} config-@{@} ; do-something2 < @{@}" | process-output
+cat list | parallel "do-something1 @{@} config-@{@} ; do-something2 < @{@}" |
+           process-output
 @end example
 
 Parallel provides a built-in mechanism to remove filename extensions, which
@@ -1306,13 +1310,21 @@ parallel "zcat @{@} | bzip2 >@{.@}.bz2 && rm @{@}" ::: *.gz
 If a command generates output, you may want to preserve the input order in
 the output.  For instance, the following command
 @example
-@{ echo foss.org.my ; echo debian.org; echo freenetproject.org; @} | parallel traceroute
+@{
+    echo foss.org.my ;
+    echo debian.org ;
+    echo freenetproject.org ;
+@} | parallel traceroute
 @end example
 @noindent
 will display as output the traceroute invocation that finishes first.
 Adding the @option{-k} option 
 @example
-@{ echo foss.org.my ; echo debian.org; echo freenetproject.org; @} | parallel -k traceroute
+@{
+    echo foss.org.my ;
+    echo debian.org ;
+    echo freenetproject.org ;
+@} | parallel -k traceroute
 @end example
 @noindent
 will ensure that the output of @code{traceroute foss.org.my} is displayed first.
@@ -1663,8 +1675,16 @@ separators.
 
 @item @@
 @vindex $@@
-($@@) Expands to the positional parameters, starting from one.  When the
-expansion occurs within double quotes, each parameter expands to a
+($@@) Expands to the positional parameters, starting from one.
+In contexts where word splitting is performed, this expands each
+positional parameter to a separate word; if not within double
+quotes, these words are subject to word splitting.
+In contexts where word splitting is not performed,
+this expands to a single word
+with each positional parameter separated by a space.
+When the
+expansion occurs within double quotes, and word splitting is performed,
+each parameter expands to a
 separate word.  That is, @code{"$@@"} is equivalent to
 @code{"$1" "$2" @dots{}}.
 If the double-quoted expansion occurs within a word, the expansion of
@@ -1926,6 +1946,12 @@ The string that would be displayed by @samp{dirs +@var{N}}
 The string that would be displayed by @samp{dirs -@var{N}}
 @end table
 
+Bash also performs tilde expansion on words satisfying the conditions of
+variable assignments (@pxref{Shell Parameters})
+when they appear as arguments to simple commands.
+Bash does not do this, except for the @var{declaration} commands listed
+above, when in @sc{posix} mode.
+
 @node Shell Parameter Expansion
 @subsection Shell Parameter Expansion
 @cindex parameter expansion
@@ -1954,11 +1980,11 @@ interpreted as part of its name.
 
 If the first character of @var{parameter} is an exclamation point (!),
 and @var{parameter} is not a @var{nameref},
-it introduces a level of variable indirection.
-Bash uses the value of the variable formed from the rest of
-@var{parameter} 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 @var{parameter} itself.
+it introduces a level of indirection.
+Bash uses the value formed by expanding the rest of
+@var{parameter} as the new @var{parameter}; this is then
+expanded and that value is used in the rest of the expansion, rather
+than the expansion of the original @var{parameter}.
 This is known as @code{indirect expansion}.
 The value is subject to tilde expansion,
 parameter expansion, command substitution, and arithmetic expansion.
@@ -4353,8 +4379,8 @@ parent.
 @item mapfile
 @btindex mapfile
 @example
-mapfile [-d @var{delim}] [-n @var{count}] [-O @var{origin}] [-s @var{count}] [-t] [-u @var{fd}]
-    [-C @var{callback}] [-c @var{quantum}] [@var{array}]
+mapfile [-d @var{delim}] [-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 the indexed array variable @var{array},
@@ -4561,8 +4587,8 @@ Read input from file descriptor @var{fd}.
 @item readarray
 @btindex readarray
 @example
-readarray [-d @var{delim}] [-n @var{count}] [-O @var{origin}] [-s @var{count}] [-t] [-u @var{fd}]
-    [-C @var{callback}] [-c @var{quantum}] [@var{array}]
+readarray [-d @var{delim}] [-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 the indexed array variable @var{array},
@@ -5617,7 +5643,8 @@ The shell sets @code{BASH_ARGC} only when in extended debugging mode
 (see @ref{The Shopt Builtin}
 for a description of the @code{extdebug} option to the @code{shopt}
 builtin).
-Setting @code{extdebug} after the shell has started to execute a script
+Setting @code{extdebug} after the shell has started to execute a script,
+or referencing this variable when @code{extdebug} is not set,
 may result in inconsistent values.
 
 @item BASH_ARGV
@@ -5630,7 +5657,8 @@ The shell sets @code{BASH_ARGV} only when in extended debugging mode
 (see @ref{The Shopt Builtin}
 for a description of the @code{extdebug} option to the @code{shopt}
 builtin).
-Setting @code{extdebug} after the shell has started to execute a script
+Setting @code{extdebug} after the shell has started to execute a script,
+or referencing this variable when @code{extdebug} is not set,
 may result in inconsistent values.
 
 @item BASH_ARGV0
@@ -6073,6 +6101,11 @@ input to the shell.  This is only in effect for interactive shells.
 The name of the Readline initialization file, overriding the default
 of @file{~/.inputrc}.
 
+@item INSIDE_EMACS
+If Bash finds this variable in the environment when the shell
+starts, it assumes that the shell is running in an Emacs shell buffer
+and may disable line editing depending on the value of @env{TERM}.
+
 @item LANG  
 Used to determine the locale category for any category not specifically
 selected with a variable starting with @code{LC_}.
@@ -6156,7 +6189,9 @@ as if the command
 @code{set -o posix}
 @end example
 @noindent
-had been executed.  
+had been executed.
+When the shell enters @sc{posix} mode, it sets this variable if it was
+not already set.
 
 @item PPID
 The process @sc{id} of the shell's parent process.  This variable
@@ -6330,9 +6365,12 @@ This chapter describes features unique to Bash.
 @section Invoking Bash
 
 @example
-bash [long-opt] [-ir] [-abefhkmnptuvxdBCDHP] [-o @var{option}] [-O @var{shopt_option}] [@var{argument} @dots{}]
-bash [long-opt] [-abefhkmnptuvxdBCDHP] [-o @var{option}] [-O @var{shopt_option}] -c @var{string} [@var{argument} @dots{}]
-bash [long-opt] -s [-abefhkmnptuvxdBCDHP] [-o @var{option}] [-O @var{shopt_option}] [@var{argument} @dots{}]
+bash [long-opt] [-ir] [-abefhkmnptuvxdBCDHP] [-o @var{option}]
+    [-O @var{shopt_option}] [@var{argument} @dots{}]
+bash [long-opt] [-abefhkmnptuvxdBCDHP] [-o @var{option}]
+    [-O @var{shopt_option}] -c @var{string} [@var{argument} @dots{}]
+bash [long-opt] -s [-abefhkmnptuvxdBCDHP] [-o @var{option}]
+    [-O @var{shopt_option}] [@var{argument} @dots{}]
 @end example
 
 All of the single-character options used with the @code{set} builtin
@@ -7421,7 +7459,7 @@ shell session.
 After the string is decoded, it is expanded via
 parameter expansion, command substitution, arithmetic
 expansion, and quote removal, subject to the value of the
-@code{promptvars} shell option (@pxref{Bash Builtins}).
+@code{promptvars} shell option (@pxref{The Shopt Builtin}).
 
 @node The Restricted Shell
 @section The Restricted Shell
@@ -7492,6 +7530,9 @@ startup files.
 The following list is what's changed when `@sc{posix} mode' is in effect:
 
 @enumerate
+@item
+Bash ensures that the @env{POSIXLY_CORRECT} variable is set.
+
 @item
 When a command in the hash table no longer exists, Bash will re-search
 @env{$PATH} to find the new location.  This is also available with
index 4614dc504ca82051becb86e92de9f5882921a78d..b9a67274ffa4c49da73cefb1199808f075036ec8 100644 (file)
@@ -210,71 +210,78 @@ B\bBA\bAS\bSH\bH B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS
               The return value is true unless an invalid option  is  supplied,
               or no matches were generated.
 
-       c\bco\bom\bmp\bpl\ble\bet\bte\be  [-\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-D\bDE\bE] [-\b-A\bA _\ba_\bc_\bt_\bi_\bo_\bn] [-\b-G\bG _\bg_\bl_\bo_\bb_\b-
+       c\bco\bom\bmp\bpl\ble\bet\bte\be  [-\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-D\bDE\bEI\bI] [-\b-A\bA _\ba_\bc_\bt_\bi_\bo_\bn] [-\b-G\bG _\bg_\bl_\bo_\bb_\b-
        _\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 [-\b-D\bDE\bE] [_\bn_\ba_\bm_\be ...]
+       c\bco\bom\bmp\bpl\ble\bet\bte\be -\b-p\bpr\br [-\b-D\bDE\bEI\bI] [_\bn_\ba_\bm_\be ...]
               Specify how arguments to each _\bn_\ba_\bm_\be should be completed.  If  the
               -\b-p\bp  option  is supplied, or if no options are supplied, existing
               completion specifications are printed in a way that allows  them
               to be reused as input.  The -\b-r\br option removes a completion spec-
               ification for each _\bn_\ba_\bm_\be, or, if no _\bn_\ba_\bm_\bes are supplied, all  com-
-              pletion  specifications.   The  -\b-D\bD  option  indicates  that  the
-              remaining options and actions should apply  to  the  ``default''
-              command  completion;  that is, completion attempted on a command
-              for which no completion has previously  been  defined.   The  -\b-E\bE
-              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  under  P\bPr\bro\bog\bgr\bra\bam\bm-\b-
+              pletion specifications.  The -\b-D\bD option indicates that other sup-
+              plied options and actions should apply to the  ``default''  com-
+              mand  completion; that is, completion attempted on a command for
+              which no completion has previously been defined.  The -\b-E\bE  option
+              indicates  that  other supplied options and actions should apply
+              to ``empty'' command completion; that is,  completion  attempted
+              on  a  blank  line.  The -\b-I\bI option indicates that other supplied
+              options and actions should apply to  completion  on  the  inital
+              non-assignment  word  on  the line, or after a command delimiter
+              such as ;\b; or |\b|, which is usually command  name  completion.   If
+              multiple  options  are  supplied, the -\b-D\bD option takes precedence
+              over -\b-E\bE, and both take precedence over -\b-I\bI.  If any of -\b-D\bD, -\b-E\bE, or
+              -\b-I\bI  are  supplied,  any  other _\bn_\ba_\bm_\be arguments are ignored; these
+              completions only apply to the case specified by the option.
+
+              The process of applying  these  completion  specifications  when
+              word  completion  is attempted is described above under P\bPr\bro\bog\bgr\bra\bam\bm-\b-
               m\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
-                              names, quoting special characters, or  suppress-
-                              ing  trailing spaces).  Intended to be used with
+                              Tell readline that the compspec generates  file-
+                              names,  so  it can perform any filename-specific
+                              processing (like adding  a  slash  to  directory
+                              names,  quoting special characters, or suppress-
+                              ing trailing spaces).  Intended to be used  with
                               shell functions.
-                      n\bno\boq\bqu\buo\bot\bte\be Tell readline not to quote the  completed  words
-                              if  they are filenames (quoting filenames is the
+                      n\bno\boq\bqu\buo\bot\bte\be Tell  readline  not to quote the completed words
+                              if they are filenames (quoting filenames is  the
                               default).
-                      n\bno\bos\bso\bor\brt\bt  Tell readline not to sort the list  of  possible
+                      n\bno\bos\bso\bor\brt\bt  Tell  readline  not to sort the list of possible
                               completions alphabetically.
-                      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
@@ -282,7 +289,7 @@ B\bBA\bAS\bSH\bH 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
@@ -291,17 +298,17 @@ B\bBA\bAS\bSH\bH 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.
@@ -310,190 +317,194 @@ B\bBA\bAS\bSH\bH 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-C\bC _\bc_\bo_\bm_\bm_\ba_\bn_\bd
-                      _\bc_\bo_\bm_\bm_\ba_\bn_\b is  executed in a subshell environment, and its
+                      _\bc_\bo_\bm_\bm_\ba_\bn_\bis executed in a subshell environment,  and  its
                       output is used as the possible completions.
               -\b-F\bF _\bf_\bu_\bn_\bc_\bt_\bi_\bo_\bn
-                      The shell function _\bf_\bu_\bn_\bc_\bt_\bi_\bo_\bn is executed in  the  current
-                      shell  environment.   When the function is executed, the
-                      first argument ($\b$1\b1) is the name  of  the  command  whose
-                      arguments  are being completed, the second argument ($\b$2\b2)
+                      The  shell  function _\bf_\bu_\bn_\bc_\bt_\bi_\bo_\bn is executed in the current
+                      shell environment.  When the function is  executed,  the
+                      first  argument  ($\b$1\b1)  is  the name of the command whose
+                      arguments are being completed, the second argument  ($\b$2\b2)
                       is the word being completed, and the third argument ($\b$3\b3)
-                      is  the  word  preceding the word being completed on the
-                      current command line.  When it  finishes,  the  possible
-                      completions  are retrieved from the value of the C\bCO\bOM\bMP\bPR\bRE\bE-\b-
+                      is the word preceding the word being  completed  on  the
+                      current  command  line.   When it finishes, the possible
+                      completions are retrieved from the value of the  C\bCO\bOM\bMP\bPR\bRE\bE-\b-
                       P\bPL\bLY\bY array variable.
               -\b-G\bG _\bg_\bl_\bo_\bb_\bp_\ba_\bt
-                      The pathname expansion pattern _\bg_\bl_\bo_\bb_\bp_\ba_\bt  is  expanded  to
+                      The  pathname  expansion  pattern _\bg_\bl_\bo_\bb_\bp_\ba_\bt is expanded to
                       generate the possible completions.
               -\b-P\bP _\bp_\br_\be_\bf_\bi_\bx
-                      _\bp_\br_\be_\bf_\bi_\b is  added at the beginning of each possible com-
+                      _\bp_\br_\be_\bf_\bi_\bis added at the beginning of each  possible  com-
                       pletion after all other options have been applied.
               -\b-S\bS _\bs_\bu_\bf_\bf_\bi_\bx
                       _\bs_\bu_\bf_\bf_\bi_\bx is appended to each possible completion after all
                       other options have been applied.
               -\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.  Shell quoting is honored within _\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.  Shell quoting is honored within  _\bw_\bo_\br_\bd_\bl_\bi_\bs_\bt,
                       in order to provide a mechanism for the words to contain
-                      shell  metacharacters or characters in the value of I\bIF\bFS\bS.
-                      The possible completions are the members of  the  resul-
+                      shell metacharacters or characters in the value of  I\bIF\bFS\bS.
+                      The  possible  completions are the members of the resul-
                       tant list which match the word being completed.
               -\b-X\bX _\bf_\bi_\bl_\bt_\be_\br_\bp_\ba_\bt
-                      _\bf_\bi_\bl_\bt_\be_\br_\bp_\ba_\b is  a pattern as used for pathname expansion.
+                      _\bf_\bi_\bl_\bt_\be_\br_\bp_\ba_\bis a pattern as used for  pathname  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
+                      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.
 
-              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-D\bDE\bE] [+\b+o\bo _\bo_\bp_\bt_\bi_\bo_\bn] [_\bn_\ba_\bm_\be]
+       c\bco\bom\bmp\bpo\bop\bpt\bt [-\b-o\bo _\bo_\bp_\bt_\bi_\bo_\bn] [-\b-D\bDE\bEI\bI] [+\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-executing 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\b builtin
-              described  above.   The  -\b-D\bD  option indicates that the remaining
+              _\bo_\bp_\bt_\bi_\bo_\bns, or for the currently-executing 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 -\b-D\bD option indicates  that  other  supplied
               options should apply to the ``default'' command completion; that
-              is,  completion  attempted  on a command for which no completion
-              has previously been defined.  The -\b-E\bE option indicates  that  the
-              remaining  options should apply to ``empty'' command completion;
-              that is, completion attempted on a blank line.
-
-              The return value is true unless an invalid option  is  supplied,
+              is, completion attempted on a command for  which  no  completion
+              has previously been defined.  The -\b-E\bE option indicates that other
+              supplied options should apply to ``empty''  command  completion;
+              that  is,  completion  attempted on a blank line.  The -\b-I\bI option
+              indicates that other supplied options should apply to completion
+              on  the  inital non-assignment word on the line, or after a com-
+              mand delimiter such as ;\b; or |\b|, which  is  usually  command  name
+              completion.
+
+              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
               completion 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 _\bn is not greater
               than or equal to 1.
 
        d\bde\bec\bcl\bla\bar\bre\be [-\b-a\baA\bAf\bfF\bFg\bgi\bil\bln\bnr\brt\btu\bux\bx] [-\b-p\bp] [_\bn_\ba_\bm_\be[=_\bv_\ba_\bl_\bu_\be] ...]
        t\bty\byp\bpe\bes\bse\bet\bt [-\b-a\baA\bAf\bfF\bFg\bgi\bil\bln\bnr\brt\btu\bux\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
+              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, other than -\b-f\bf  and  -\b-F\bF,
-              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
+              with  _\bn_\ba_\bm_\be  arguments, additional options, other than -\b-f\bf and -\b-F\bF,
+              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\b 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
+              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\b option
+              will  restrict  the  display  to shell functions.  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 each _\bn_\ba_\bm_\be is defined are displayed as well.  The -\b-F\bF option
-              implies  -\b-f\bf.   The  -\b-g\bg  option forces variables to be created or
+              implies -\b-f\bf.  The -\b-g\bg option forces variables  to  be  created  or
               modified at the global scope, even when d\bde\bec\bcl\bla\bar\bre\be is executed in a
-              shell  function.  It is ignored in all other cases.  The follow-
+              shell function.  It is ignored in all other cases.  The  follow-
               ing 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  indexed  array  variable  (see A\bAr\brr\bra\bay\bys\bs
+              -\b-a\ba     Each _\bn_\ba_\bm_\be  is  an  indexed  array  variable  (see  A\bAr\brr\bra\bay\bys\bs
                      above).
-              -\b-A\bA     Each _\bn_\ba_\bm_\be is an associative array  variable  (see  A\bAr\brr\bra\bay\bys\bs
+              -\b-A\bA     Each  _\bn_\ba_\bm_\be  is  an associative 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 above) is performed  when
+                     tion  (see A\bAR\bRI\bIT\bTH\bHM\bME\bET\bTI\bIC\bC E\bEV\bVA\bAL\bLU\bUA\bAT\bTI\bIO\bON\bN above) is performed when
                      the variable is assigned a value.
-              -\b-l\bl     When  the  variable  is  assigned a value, all upper-case
-                     characters are converted to lower-case.   The  upper-case
+              -\b-l\bl     When the variable is assigned  a  value,  all  upper-case
+                     characters  are  converted to lower-case.  The upper-case
                      attribute is disabled.
-              -\b-n\bn     Give  each  _\bn_\ba_\bm_\be  the _\bn_\ba_\bm_\be_\br_\be_\bf attribute, making it a name
-                     reference to another variable.  That  other  variable  is
-                     defined  by  the  value of _\bn_\ba_\bm_\be.  All references, assign-
-                     ments, and attribute modifications to _\bn_\ba_\bm_\be, except  those
-                     using  or changing the -\b-n\bn attribute itself, are performed
-                     on the variable referenced by _\bn_\ba_\bm_\be's value.  The  nameref
+              -\b-n\bn     Give each _\bn_\ba_\bm_\be the _\bn_\ba_\bm_\be_\br_\be_\bf attribute, making  it  a  name
+                     reference  to  another  variable.  That other variable is
+                     defined by the value of _\bn_\ba_\bm_\be.   All  references,  assign-
+                     ments,  and attribute modifications to _\bn_\ba_\bm_\be, except those
+                     using or changing the -\b-n\bn attribute itself, are  performed
+                     on  the variable referenced by _\bn_\ba_\bm_\be's value.  The nameref
                      attribute cannot be applied to array variables.
               -\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-u\bu     When  the  variable  is  assigned a value, all lower-case
-                     characters are converted to upper-case.   The  lower-case
+              -\b-u\bu     When the variable is assigned  a  value,  all  lower-case
+                     characters  are  converted to upper-case.  The lower-case
                      attribute is disabled.
-              -\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 will not remove the readonly attribute.   When  used
+              able  and  +\b+r\br will not remove the readonly attribute.  When used
               in a function, d\bde\bec\bcl\bla\bar\bre\be and t\bty\byp\bpe\bes\bse\bet\bt make each _\bn_\ba_\bm_\be local, as with
               the l\blo\boc\bca\bal\bl command, unless the -\b-g\bg option is supplied.  If a vari-
-              able  name  is  followed by =_\bv_\ba_\bl_\bu_\be, the value of the variable is
-              set to _\bv_\ba_\bl_\bu_\be.  When using -\b-a\ba or -\b-A\bA and the  compound  assignment
-              syntax  to  create array variables, additional attributes do not
+              able name is followed by =_\bv_\ba_\bl_\bu_\be, the value of  the  variable  is
+              set  to  _\bv_\ba_\bl_\bu_\be.  When using -\b-a\ba or -\b-A\bA and the compound assignment
+              syntax to create array variables, additional attributes  do  not
               take effect until subsequent assignments.  The return value is 0
-              unless  an  invalid option is encountered, an attempt is made to
-              define a function using ``-f foo=bar'', an attempt  is  made  to
-              assign  a  value  to  a readonly variable, an attempt is made to
-              assign a value to an array variable without using  the  compound
-              assignment  syntax (see A\bAr\brr\bra\bay\bys\bs above), one of the _\bn_\ba_\bm_\be_\bs is not a
-              valid shell variable name, an attempt is made to turn off  read-
-              only  status for a readonly variable, an attempt is made to turn
+              unless an invalid option is encountered, an attempt is  made  to
+              define  a  function  using ``-f foo=bar'', an attempt is made to
+              assign a value to a readonly variable, an  attempt  is  made  to
+              assign  a  value to an array variable without using the compound
+              assignment syntax (see A\bAr\brr\bra\bay\bys\bs above), one of the _\bn_\ba_\bm_\be_\bs is not  a
+              valid  shell variable name, an attempt is made to turn off read-
+              only status for a readonly variable, an attempt is made to  turn
               off array status for an array variable, or an attempt is made to
               display a non-existent function with -\b-f\bf.
 
        d\bdi\bir\brs\bs [\b[-\b-c\bcl\blp\bpv\bv]\b] [\b[+\b+_\bn]\b] [\b[-\b-_\bn]\b]
-              Without  options,  displays  the  list  of  currently remembered
-              directories.  The default display  is  on  a  single  line  with
-              directory  names  separated by spaces.  Directories are added to
-              the list with  the  p\bpu\bus\bsh\bhd\bd  command;  the  p\bpo\bop\bpd\bd  command  removes
-              entries  from  the  list.   The  current directory is always the
+              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.  The  current  directory  is  always  the
               first directory in the stack.
               -\b-c\bc     Clears  the  directory  stack  by  deleting  all  of  the
                      entries.
-              -\b-l\bl     Produces  a  listing  using  full  pathnames; the default
+              -\b-l\bl     Produces a listing  using  full  pathnames;  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.
               +\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.
 
-              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 ... | _\bp_\bi_\bd ... ]
-              Without options, remove each _\bj_\bo_\bb_\bs_\bp_\be_\bc from the  table  of  active
-              jobs.   If _\bj_\bo_\bb_\bs_\bp_\be_\bc is not 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 the  -\b-h\b option
-              is  given,  each  _\bj_\bo_\bb_\bs_\bp_\be_\bc  is not removed from the table, but is
-              marked so that S\bSI\bIG\bGH\bHU\bUP\bP is not  sent  to  the  job  if  the  shell
-              receives  a  S\bSI\bIG\bGH\bHU\bUP\bP.   If  no _\bj_\bo_\bb_\bs_\bp_\be_\bc is supplied, the -\b-a\ba option
-              means to remove or mark all jobs; the -\b-r\br option without  a  _\bj_\bo_\bb_\b-
-              _\bs_\bp_\be_\b argument  restricts operation to running jobs.  The return
+              Without  options,  remove  each _\bj_\bo_\bb_\bs_\bp_\be_\bc from the table of active
+              jobs.  If _\bj_\bo_\bb_\bs_\bp_\be_\bc is not 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 the -\b-h\bh option
+              is given, each _\bj_\bo_\bb_\bs_\bp_\be_\bc is not removed from  the  table,  but  is
+              marked  so  that  S\bSI\bIG\bGH\bHU\bUP\bP  is  not  sent  to the job if the shell
+              receives a S\bSI\bIG\bGH\bHU\bUP\bP.  If no _\bj_\bo_\bb_\bs_\bp_\be_\bc is  supplied,  the  -\b-a\b option
+              means  to  remove or mark all jobs; the -\b-r\br option without a _\bj_\bo_\bb_\b-
+              _\bs_\bp_\be_\bargument restricts operation to running jobs.   The  return
               value is 0 unless a _\bj_\bo_\bb_\bs_\bp_\be_\bc does not specify a valid job.
 
        e\bec\bch\bho\bo [-\b-n\bne\beE\bE] [_\ba_\br_\bg ...]
-              Output the _\ba_\br_\bgs, separated by spaces,  followed  by  a  newline.
-              The  return  status  is 0 unless a write error occurs.  If -\b-n\bn is
+              Output  the  _\ba_\br_\bgs,  separated  by spaces, followed by a newline.
+              The return status is 0 unless a write error occurs.   If  -\b-n\b is
               specified, the trailing newline is suppressed.  If the -\b-e\be option
-              is  given,  interpretation  of  the  following backslash-escaped
-              characters is enabled.  The -\b-E\bE option disables  the  interpreta-
-              tion  of these escape characters, 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\bo does  not  interpret  -\b--\b to
-              mean  the  end of options.  e\bec\bch\bho\bo interprets the following escape
+              is given,  interpretation  of  the  following  backslash-escaped
+              characters  is  enabled.  The -\b-E\bE option disables the interpreta-
+              tion of these escape characters, 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\bo 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
@@ -506,190 +517,190 @@ B\bBA\bAS\bSH\bH 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)
-              \\b\u\bu_\bH_\bH_\bH_\bH the Unicode (ISO/IEC 10646) character whose value is  the
+              \\b\u\bu_\bH_\bH_\bH_\bH the  Unicode (ISO/IEC 10646) character whose value is the
                      hexadecimal value _\bH_\bH_\bH_\bH (one to four hex digits)
               \\b\U\bU_\bH_\bH_\bH_\bH_\bH_\bH_\bH_\bH
-                     the  Unicode (ISO/IEC 10646) character whose value is the
+                     the Unicode (ISO/IEC 10646) character whose value is  the
                      hexadecimal value _\bH_\bH_\bH_\bH_\bH_\bH_\bH_\bH (one to eight 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_\b are
+              to  be  executed without specifying a full pathname, even though
+              the shell normally searches for builtins before  disk  commands.
+              If  -\b-n\bn  is  used,  each  _\bn_\ba_\bm_\be  is disabled; otherwise, _\bn_\ba_\bm_\be_\bs are
               enabled.  For example, to use the t\bte\bes\bst\bt binary found via the P\bPA\bAT\bTH\bH
-              instead of the shell builtin version, run  ``enable  -n  test''.
-              The  -\b-f\bf  option  means to load the new builtin command _\bn_\ba_\bm_\be from
+              instead  of  the  shell builtin version, run ``enable -n test''.
+              The -\b-f\bf option means to load the new builtin  command  _\bn_\ba_\bm_\b from
               shared object _\bf_\bi_\bl_\be_\bn_\ba_\bm_\be, on systems that support dynamic loading.
-              The  -\b-d\bd  option will delete a builtin previously loaded with -\b-f\bf.
+              The -\b-d\bd option will delete a builtin previously loaded  with  -\b-f\bf.
               If no _\bn_\ba_\bm_\be arguments are given, or if the -\b-p\bp option is supplied,
               a list of shell builtins is printed.  With no other option argu-
-              ments, the list consists of all enabled shell builtins.   If  -\b-n\bn
-              is  supplied, only disabled builtins are printed.  If -\b-a\ba is sup-
-              plied, the list printed includes all builtins, with  an  indica-
-              tion  of whether or not each is enabled.  If -\b-s\bs is supplied, the
-              output is restricted to the POSIX _\bs_\bp_\be_\bc_\bi_\ba_\bl builtins.  The  return
-              value  is  0 unless a _\bn_\ba_\bm_\be is not a shell builtin or there is an
+              ments,  the  list consists of all enabled shell builtins.  If -\b-n\bn
+              is supplied, only disabled builtins are printed.  If -\b-a\ba is  sup-
+              plied,  the  list printed includes all builtins, with an indica-
+              tion of whether or not each is enabled.  If -\b-s\bs is supplied,  the
+              output  is restricted to the POSIX _\bs_\bp_\be_\bc_\bi_\ba_\bl builtins.  The return
+              value is 0 unless a _\bn_\ba_\bm_\be is not a shell builtin or there  is  an
               error loading a new builtin from a shared object.
 
        e\bev\bva\bal\bl [_\ba_\br_\bg ...]
-              The _\ba_\br_\bgs are read and concatenated together into a  single  com-
-              mand.   This command is then read and executed by the shell, and
-              its exit status is returned as the value of e\bev\bva\bal\bl.  If there  are
+              The  _\ba_\br_\bgs  are read and concatenated together into a single com-
+              mand.  This command is then read and executed by the shell,  and
+              its  exit status is returned as the value of e\bev\bva\bal\bl.  If there are
               no _\ba_\br_\bg_\bs, or only null arguments, e\bev\bva\bal\bl returns 0.
 
        e\bex\bxe\bec\bc [-\b-c\bcl\bl] [-\b-a\ba _\bn_\ba_\bm_\be] [_\bc_\bo_\bm_\bm_\ba_\bn_\bd [_\ba_\br_\bg_\bu_\bm_\be_\bn_\bt_\bs]]
-              If  _\bc_\bo_\bm_\bm_\ba_\bn_\bd is specified, it replaces the shell.  No new process
-              is created.  The _\ba_\br_\bg_\bu_\bm_\be_\bn_\bt_\bs become the arguments to _\bc_\bo_\bm_\bm_\ba_\bn_\bd.   If
+              If _\bc_\bo_\bm_\bm_\ba_\bn_\bd is specified, it replaces the shell.  No new  process
+              is  created.  The _\ba_\br_\bg_\bu_\bm_\be_\bn_\bt_\bs become the arguments to _\bc_\bo_\bm_\bm_\ba_\bn_\bd.  If
               the -\b-l\bl option is supplied, the shell places a dash at the begin-
-              ning of the zeroth 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  e\bex\bxe\bec\bcf\bfa\bai\bil\bl shell option is enabled.  In that case, it
-              returns failure.  An interactive shell returns  failure  if  the
-              file  cannot  be  executed.  A subshell exits unconditionally if
-              e\bex\bxe\bec\bfails.  If _\bc_\bo_\bm_\bm_\ba_\bn_\bd is not specified, any redirections  take
-              effect  in  the  current  shell, and the return status is 0.  If
+              not  be executed for some reason, a non-interactive shell exits,
+              unless the e\bex\bxe\bec\bcf\bfa\bai\bil\bl shell option is enabled.  In that  case,  it
+              returns  failure.   An  interactive shell returns failure if the
+              file cannot be executed.  A subshell  exits  unconditionally  if
+              e\bex\bxe\bec\b fails.  If _\bc_\bo_\bm_\bm_\ba_\bn_\bd is not specified, any redirections take
+              effect in the current shell, and the return  status  is  0.   If
               there is a redirection error, the return status is 1.
 
        e\bex\bxi\bit\bt [_\bn]
-              Cause the shell to exit with a status of _\bn.  If  _\bn  is  omitted,
+              Cause  the  shell  to exit with a status of _\bn.  If _\bn is omitted,
               the exit status is that of the last command executed.  A trap on
               E\bEX\bXI\bIT\bT is executed before the shell terminates.
 
        e\bex\bxp\bpo\bor\brt\bt [-\b-f\bfn\bn] [_\bn_\ba_\bm_\be[=_\bw_\bo_\br_\bd]] ...
        e\bex\bxp\bpo\bor\brt\bt -\b-p\bp
-              The supplied _\bn_\ba_\bm_\be_\bs are marked for automatic export to the  envi-
-              ronment  of subsequently executed commands.  If the -\b-f\bf option is
-              given, the _\bn_\ba_\bm_\be_\bs refer to functions.  If no _\bn_\ba_\bm_\be_\bs are given,  or
-              if  the  -\b-p\bp  option is supplied, a list of names of all exported
-              variables is printed.  The -\b-n\bn option causes the export  property
+              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 names  of  all  exported
+              variables  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  sup-
+              of  the  _\bn_\ba_\bm_\be_\bs is not a valid shell variable name, or -\b-f\bf is sup-
               plied with a _\bn_\ba_\bm_\be that is not a function.
 
        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]
-              The  first  form  selects a range of commands from _\bf_\bi_\br_\bs_\bt to _\bl_\ba_\bs_\bt
-              from the history list and  displays  or  edits  and  re-executes
-              them.   _\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 current command  number).   If  _\bl_\ba_\bs_\bt  is  not
+              The first form selects a range of commands from  _\bf_\bi_\br_\bs_\bt  to  _\bl_\ba_\bs_\bt
+              from  the  history  list  and  displays or edits and re-executes
+              them.  _\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  current  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 last 10 commands) and to  _\bf_\bi_\br_\bs_\b other-
+              ``fc  -l  -10'' prints the last 10 commands) and to _\bf_\bi_\br_\bs_\bt other-
               wise.  If _\bf_\bi_\br_\bs_\bt is not specified, it is set to the previous com-
               mand 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.  _\bC_\bo_\bm_\bm_\ba_\bn_\bd is interpreted the  same  as
-              _\bf_\bi_\br_\bs_\b above.  A useful alias to use with this is ``r="fc -s"'',
-              so that typing ``r cc'' runs the  last  command  beginning  with
+              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.  _\bC_\bo_\bm_\bm_\ba_\bn_\bd is interpreted the same as
+              _\bf_\bi_\br_\bs_\babove.  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.
 
-              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 _\bn_\ba_\bm_\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\bis 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\b is  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\b returns true if an option, specified or unspecified, is
+              g\bge\bet\bto\bop\bpt\bts\breturns 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]
               Each time h\bha\bas\bsh\bh is invoked, the full pathname of the command _\bn_\ba_\bm_\be
-              is determined by searching the directories in $\b$P\bPA\bAT\bTH\bH  and  remem-
+              is  determined  by searching the directories in $\b$P\bPA\bAT\bTH\bH and remem-
               bered.  Any previously-remembered pathname is discarded.  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  filename of the command.  The -\b-r\br option
-              causes 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_\be corresponds is printed.  If multiple _\bn_\ba_\bm_\be argu-
-              ments 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 dis-
+              is used as the full filename of  the  command.   The  -\b-r\b option
+              causes  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_\be corresponds is printed.  If multiple _\bn_\ba_\bm_\b argu-
+              ments  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  dis-
               played in a format that may be reused as input.  If no arguments
-              are  given,  or if only -\b-l\bl is supplied, information about remem-
-              bered commands is printed.  The return status is true  unless  a
+              are given, or if only -\b-l\bl is supplied, information  about  remem-
+              bered  commands  is 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-d\bdm\bms\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
+              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.
               -\b-d\bd     Display a short description of each _\bp_\ba_\bt_\bt_\be_\br_\bn
               -\b-m\bm     Display the description of each _\bp_\ba_\bt_\bt_\be_\br_\bn in a manpage-like
@@ -707,53 +718,53 @@ 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 -\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
-              _\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
+              _\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
               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.   If  _\bo_\bf_\bf_\bs_\be_\bt
+                     Delete  the  history entry at position _\bo_\bf_\bf_\bs_\be_\bt.  If _\bo_\bf_\bf_\bs_\be_\bt
                      is negative, it is interpreted as relative to one greater
                      than the last history position, so negative indices count
-                     back  from  the  end  of  the history, and an index of -1
+                     back from the end of the history,  and  an  index  of  -1
                      refers to the current h\bhi\bis\bst\bto\bor\bry\by -\b-d\bd command.
               -\b-d\bd _\bs_\bt_\ba_\br_\bt-_\be_\bn_\bd
-                     Delete the history entries between  positions  _\bs_\bt_\ba_\br_\b and
-                     _\be_\bn_\bd,  inclusive.   Positive and negative values for _\bs_\bt_\ba_\br_\bt
+                     Delete  the  history  entries between positions _\bs_\bt_\ba_\br_\bt and
+                     _\be_\bn_\bd, inclusive.  Positive and negative values  for  _\bs_\bt_\ba_\br_\bt
                      and _\be_\bn_\bd are interpreted as described above.
-              -\b-a\ba     Append the ``new'' history lines  to  the  history  file.
-                     These  are  history  lines entered since the beginning of
+              -\b-a\ba     Append  the  ``new''  history  lines to the history file.
+                     These are history lines entered since  the  beginning  of
                      the current b\bba\bas\bsh\bh session, but not already appended 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 append them  to
+              -\b-r\br     Read  the contents of the history file and append them to
                      the current history list.
               -\b-w\bw     Write the current history list to the history file, over-
                      writing 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 variable is set, the time stamp informa-
-              tion associated with each history entry is written to  the  his-
-              tory  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
+              If the H\bHI\bIS\bST\bTT\bTI\bIM\bME\bEF\bFO\bOR\bRM\bMA\bAT\bT variable is set, the time  stamp  informa-
+              tion  associated  with each history entry is written to the his-
+              tory 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 following history entry.  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  sup-
+              reading  or  writing the history file, an invalid _\bo_\bf_\bf_\bs_\be_\bt is sup-
               plied as an argument to -\b-d\bd, or the history expansion supplied as
               an argument to -\b-p\bp fails.
 
@@ -762,210 +773,210 @@ B\bBA\bAS\bSH\bH 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-n\bn     Display  information  only  about  jobs that have changed
+              -\b-n\bn     Display information only about  jobs  that  have  changed
                      status since the user was last notified of their status.
-              -\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-r\br     Display only running jobs.
               -\b-s\bs     Display only 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_\bor _\ba_\br_\bg_\bs with the corresponding  process  group  ID,  and
+              _\bc_\bo_\bm_\bm_\ba_\bn_\b or  _\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|-\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\b is  a  number  specifying either a signal number or the exit
-              status of a process terminated by a signal.  The  -\b-L\bL  option  is
-              equivalent  to -\b-l\bl.  k\bki\bil\bll\bl returns true if at least one signal was
-              successfully sent, or false if an error  occurs  or  an  invalid
+              -\b-l\bis a number specifying either a signal  number  or  the  exit
+              status  of  a  process terminated by a signal.  The -\b-L\bL option is
+              equivalent to -\b-l\bl.  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 above).  If the last _\ba_\br_\bg evaluates  to  0,  l\ble\bet\bt
+              M\bME\bET\bTI\bIC\b E\bEV\bVA\bAL\bLU\bUA\bAT\bTI\bIO\bON\bN  above).   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-
-              tion  and  its children.  If _\bn_\ba_\bm_\be is -, the set of shell options
-              is made local to the function in which l\blo\boc\bca\bal\bl is  invoked:  shell
-              options  changed  using  the s\bse\bet\bt builtin inside the function are
-              restored to their original values  when  the  function  returns.
-              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 l\blo\boc\bca\bal\bl when not within  a
+              variable  _\bn_\ba_\bm_\be  to have a visible scope restricted to that func-
+              tion and its children.  If _\bn_\ba_\bm_\be is -, the set of  shell  options
+              is  made  local to the function in which l\blo\boc\bca\bal\bl is invoked: shell
+              options changed using the s\bse\bet\bt builtin inside  the  function  are
+              restored  to  their  original  values when the function returns.
+              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 l\blo\boc\bca\bal\bl when not within a
               function.  The return status is 0 unless l\blo\boc\bca\bal\bl is used outside a
-              function, an invalid _\bn_\ba_\bm_\be is supplied, or  _\bn_\ba_\bm_\be  is  a  readonly
+              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.
 
-       m\bma\bap\bpf\bfi\bil\ble\b [-\b-d\bd  _\bd_\be_\bl_\bi_\bm] [-\b-n\bn _\bc_\bo_\bu_\bn_\bt] [-\b-O\bO _\bo_\br_\bi_\bg_\bi_\bn] [-\b-s\bs _\bc_\bo_\bu_\bn_\bt] [-\b-t\bt] [-\b-u\bu _\bf_\bd] [-\b-C\bC
+       m\bma\bap\bpf\bfi\bil\ble\b[-\b-d\bd _\bd_\be_\bl_\bi_\bm] [-\b-n\bn _\bc_\bo_\bu_\bn_\bt] [-\b-O\bO _\bo_\br_\bi_\bg_\bi_\bn] [-\b-s\bs _\bc_\bo_\bu_\bn_\bt] [-\b-t\bt] [-\b-u\bu  _\bf_\bd]  [-\b-C\bC
        _\bc_\ba_\bl_\bl_\bb_\ba_\bc_\bk] [-\b-c\bc _\bq_\bu_\ba_\bn_\bt_\bu_\bm] [_\ba_\br_\br_\ba_\by]
        r\bre\bea\bad\bda\bar\brr\bra\bay\by [-\b-d\bd _\bd_\be_\bl_\bi_\bm] [-\b-n\bn _\bc_\bo_\bu_\bn_\bt] [-\b-O\bO _\bo_\br_\bi_\bg_\bi_\bn] [-\b-s\bs _\bc_\bo_\bu_\bn_\bt] [-\b-t\bt] [-\b-u\bu _\bf_\bd] [-\b-C\bC
        _\bc_\ba_\bl_\bl_\bb_\ba_\bc_\bk] [-\b-c\bc _\bq_\bu_\ba_\bn_\bt_\bu_\bm] [_\ba_\br_\br_\ba_\by]
-              Read  lines from the standard input into the indexed array vari-
-              able _\ba_\br_\br_\ba_\by, or from file descriptor _\bf_\bd if the -\b-u\bu option is  sup-
-              plied.   The variable M\bMA\bAP\bPF\bFI\bIL\bLE\bE is the default _\ba_\br_\br_\ba_\by.  Options, if
+              Read lines from the standard input into the indexed array  vari-
+              able  _\ba_\br_\br_\ba_\by, or from file descriptor _\bf_\bd if the -\b-u\bu option is sup-
+              plied.  The variable M\bMA\bAP\bPF\bFI\bIL\bLE\bE is the default _\ba_\br_\br_\ba_\by.  Options,  if
               supplied, have the following meanings:
-              -\b-d\bd     The first character of _\bd_\be_\bl_\bi_\bm is used  to  terminate  each
-                     input  line,  rather than newline.  If _\bd_\be_\bl_\bi_\bm is the empty
+              -\b-d\bd     The  first  character  of _\bd_\be_\bl_\bi_\bm is used to terminate each
+                     input line, rather than newline.  If _\bd_\be_\bl_\bi_\bm is  the  empty
                      string, m\bma\bap\bpf\bfi\bil\ble\be will terminate a line when it reads a NUL
                      character.
-              -\b-n\bn     Copy  at  most _\bc_\bo_\bu_\bn_\bt lines.  If _\bc_\bo_\bu_\bn_\bt is 0, all lines are
+              -\b-n\bn     Copy at most _\bc_\bo_\bu_\bn_\bt lines.  If _\bc_\bo_\bu_\bn_\bt is 0, all  lines  are
                      copied.
-              -\b-O\bO     Begin assigning to _\ba_\br_\br_\ba_\by at index  _\bo_\br_\bi_\bg_\bi_\bn.   The  default
+              -\b-O\bO     Begin  assigning  to  _\ba_\br_\br_\ba_\by at index _\bo_\br_\bi_\bg_\bi_\bn.  The default
                      index is 0.
               -\b-s\bs     Discard the first _\bc_\bo_\bu_\bn_\bt lines read.
-              -\b-t\bt     Remove  a trailing _\bd_\be_\bl_\bi_\bm (default newline) from each line
+              -\b-t\bt     Remove a trailing _\bd_\be_\bl_\bi_\bm (default newline) from each  line
                      read.
-              -\b-u\bu     Read lines from file descriptor _\bf_\bd instead of  the  stan-
+              -\b-u\bu     Read  lines  from file descriptor _\bf_\bd instead of the stan-
                      dard input.
-              -\b-C\bC     Evaluate  _\bc_\ba_\bl_\bl_\bb_\ba_\bc_\bk each time _\bq_\bu_\ba_\bn_\bt_\bu_\bm lines are read.  The
+              -\b-C\bC     Evaluate _\bc_\ba_\bl_\bl_\bb_\ba_\bc_\bk each time _\bq_\bu_\ba_\bn_\bt_\bu_\bm lines are read.   The
                      -\b-c\bc option specifies _\bq_\bu_\ba_\bn_\bt_\bu_\bm.
-              -\b-c\bc     Specify the number of lines read  between  each  call  to
+              -\b-c\bc     Specify  the  number  of  lines read between each call to
                      _\bc_\ba_\bl_\bl_\bb_\ba_\bc_\bk.
 
-              If  -\b-C\bC  is  specified  without  -\b-c\bc, the default quantum is 5000.
+              If -\b-C\bC is specified without -\b-c\bc,  the  default  quantum  is  5000.
               When _\bc_\ba_\bl_\bl_\bb_\ba_\bc_\bk is evaluated, it is supplied the index of the next
               array element to be assigned and the line to be assigned to that
-              element as additional arguments.  _\bc_\ba_\bl_\bl_\bb_\ba_\bc_\bk  is  evaluated  after
+              element  as  additional  arguments.  _\bc_\ba_\bl_\bl_\bb_\ba_\bc_\bk is evaluated after
               the line is read but before the array element is assigned.
 
-              If  not  supplied  with  an  explicit origin, m\bma\bap\bpf\bfi\bil\ble\be will clear
+              If not supplied with an  explicit  origin,  m\bma\bap\bpf\bfi\bil\ble\be  will  clear
               _\ba_\br_\br_\ba_\by before assigning to it.
 
-              m\bma\bap\bpf\bfi\bil\ble\breturns successfully unless an invalid option or  option
-              argument  is  supplied,  _\ba_\br_\br_\ba_\by is invalid or unassignable, or if
+              m\bma\bap\bpf\bfi\bil\ble\b returns successfully unless an invalid option or option
+              argument is supplied, _\ba_\br_\br_\ba_\by is invalid or  unassignable,  or  if
               _\ba_\br_\br_\ba_\by is not an indexed array.
 
        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\bd to
+              Removes  entries  from  the directory stack.  With no arguments,
+              removes the top directory from the stack, and performs a  c\bcd\b 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 -\b-v\bv option causes the output to be
-              assigned to the variable _\bv_\ba_\br rather than being  printed  to  the
+              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 -\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 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 format  specifications,  each
-              of  which  causes  printing of the next successive _\ba_\br_\bg_\bu_\bm_\be_\bn_\bt.  In
+              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 format 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) format specifications, p\bpr\bri\bin\bnt\btf\bf
               interprets the following extensions:
               %\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 in the same way as e\bec\bch\bho\bo -\b-e\be.
-              %\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
+              %\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.
               %\b%(\b(_\bd_\ba_\bt_\be_\bf_\bm_\bt)\b)T\bT
-                     causes  p\bpr\bri\bin\bnt\btf\bf  to  output the date-time string resulting
-                     from using _\bd_\ba_\bt_\be_\bf_\bm_\bt as a format  string  for  _\bs_\bt_\br_\bf_\bt_\bi_\bm_\be(3).
+                     causes p\bpr\bri\bin\bnt\btf\bf to output the  date-time  string  resulting
+                     from  using  _\bd_\ba_\bt_\be_\bf_\bm_\bt  as a format string for _\bs_\bt_\br_\bf_\bt_\bi_\bm_\be(3).
                      The corresponding _\ba_\br_\bg_\bu_\bm_\be_\bn_\bt is an integer representing the
-                     number of seconds since the epoch.  Two special  argument
-                     values  may  be used: -1 represents the current time, and
-                     -2 represents the time the  shell  was  invoked.   If  no
-                     argument  is  specified,  conversion behaves as if -1 had
-                     been given.  This is an exception  to  the  usual  p\bpr\bri\bin\bnt\btf\bf
+                     number  of seconds since the epoch.  Two special argument
+                     values may be used: -1 represents the current  time,  and
+                     -2  represents  the  time  the  shell was invoked.  If no
+                     argument is specified, conversion behaves as  if  -1  had
+                     been  given.   This  is  an exception to the usual p\bpr\bri\bin\bnt\btf\bf
                      behavior.
 
-              Arguments  to non-string format specifiers are treated as C con-
+              Arguments to non-string format specifiers are treated as C  con-
               stants, except that a leading plus or minus sign is allowed, and
-              if  the leading character is a single or double quote, the value
+              if the leading character is a single or double quote, the  value
               is the ASCII value of the following character.
 
-              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
-              directory.  With no  arguments,  p\bpu\bus\bsh\bhd\bd  exchanges  the  top  two
-              directories  and returns 0, unless the directory stack is empty.
+              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,  p\bpu\bus\bsh\bhd\bd  exchanges  the top two
+              directories 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  rotating
-                     or  adding  directories  to  the  stack, so that only the
+              -\b-n\bn     Suppresses  the  normal change of directory when rotating
+                     or 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 as if it had been supplied
+                     new current working directory as if it had been  supplied
                      as the argument to the c\bcd\bd builtin.
 
               If the p\bpu\bus\bsh\bhd\bd command is successful, a d\bdi\bir\brs\bs is performed as well.
-              If  the first form is used, p\bpu\bus\bsh\bhd\bd returns 0 unless the cd to _\bd_\bi_\br
-              fails.  With the second form, p\bpu\bus\bsh\bhd\bd returns 0 unless the  direc-
-              tory  stack  is empty, a non-existent directory stack element is
-              specified, or the directory change to the specified new  current
+              If the first form is used, p\bpu\bus\bsh\bhd\bd returns 0 unless the cd to  _\bd_\bi_\br
+              fails.   With the second form, p\bpu\bus\bsh\bhd\bd returns 0 unless the direc-
+              tory stack is empty, a non-existent directory stack  element  is
+              specified,  or the directory change to the specified new current
               directory fails.
 
        p\bpw\bwd\bd [-\b-L\bLP\bP]
-              Print  the  absolute  pathname of the current working directory.
+              Print the absolute pathname of the  current  working  directory.
               The pathname printed contains no symbolic links if the -\b-P\bP option
               is supplied or the -\b-o\bo p\bph\bhy\bys\bsi\bic\bca\bal\bl option to the s\bse\bet\bt builtin command
-              is enabled.  If the -\b-L\bL option is used, the pathname printed  may
-              contain  symbolic links.  The return status is 0 unless an error
-              occurs while reading the name of the  current  directory  or  an
+              is  enabled.  If the -\b-L\bL option is used, the pathname printed may
+              contain symbolic links.  The return status is 0 unless an  error
+              occurs  while  reading  the  name of the current directory or an
               invalid option is supplied.
 
        r\bre\bea\bad\bd [-\b-e\ber\brs\bs] [-\b-a\ba _\ba_\bn_\ba_\bm_\be] [-\b-d\bd _\bd_\be_\bl_\bi_\bm] [-\b-i\bi _\bt_\be_\bx_\bt] [-\b-n\bn _\bn_\bc_\bh_\ba_\br_\bs] [-\b-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, split
-              into words as described above  under  W\bWo\bor\brd\bd  S\bSp\bpl\bli\bit\btt\bti\bin\bng\bg,  and  the
+              One  line  is  read  from  the  standard input, or from the file
+              descriptor _\bf_\bd supplied as an argument to the  -\b-u\bu  option,  split
+              into  words  as  described  above  under W\bWo\bor\brd\bd S\bSp\bpl\bli\bit\btt\bti\bin\bng\bg, 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.  If there are more words than names, the
               remaining words and their intervening delimiters are 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 val-
-              ues.  The characters in I\bIF\bFS\bS are used  to  split  the  line  into
+              the  last  _\bn_\ba_\bm_\be.   If  there are fewer words read from the input
+              stream than names, the remaining names are assigned  empty  val-
+              ues.   The  characters  in  I\bIF\bFS\bS  are used to split the line into
               words  using  the  same  rules  the  shell  uses  for  expansion
               (described above under W\bWo\bor\brd\bd S\bSp\bpl\bli\bit\btt\bti\bin\bng\bg).  The backslash character
               (\\b\) may be used to remove any special meaning for the next char-
-              acter read and for line  continuation.   Options,  if  supplied,
+              acter  read  and  for  line continuation.  Options, if supplied,
               have the following meanings:
               -\b-a\ba _\ba_\bn_\ba_\bm_\be
                      The words are assigned to sequential indices of the array
@@ -973,31 +984,31 @@ B\bBA\bAS\bSH\bH 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
-                     input  line,  rather than newline.  If _\bd_\be_\bl_\bi_\bm is the empty
-                     string, r\bre\bea\bad\bd will terminate a line when it  reads  a  NUL
+                     The  first  character  of  _\bd_\be_\bl_\bi_\bm is used to terminate the
+                     input line, rather than newline.  If _\bd_\be_\bl_\bi_\bm is  the  empty
+                     string,  r\bre\bea\bad\bd  will  terminate a line when it reads a NUL
                      character.
               -\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.   Read-
-                     line  uses  the  current (or default, if line editing was
-                     not previously active) editing settings, but  uses  Read-
+                     (see  R\bRE\bEA\bAD\bDL\bLI\bIN\bNE\bE  above) is used to obtain the line.  Read-
+                     line uses the current (or default, if  line  editing  was
+                     not  previously  active) editing settings, but uses Read-
                      line's default filename completion.
               -\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
+                     If r\bre\bea\bad\bdl\bli\bin\bne\be is being used  to  read  the  line,  _\bt_\be_\bx_\b 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, but honors a delim-
-                     iter if fewer than _\bn_\bc_\bh_\ba_\br_\bs characters are read before  the
+                     iter  if fewer than _\bn_\bc_\bh_\ba_\br_\bs characters are read before the
                      delimiter.
               -\b-N\bN _\bn_\bc_\bh_\ba_\br_\bs
-                     r\bre\bea\bad\b returns  after  reading  exactly  _\bn_\bc_\bh_\ba_\br_\bs characters
-                     rather than waiting for a complete line of input,  unless
-                     EOF  is encountered or r\bre\bea\bad\bd times out.  Delimiter charac-
-                     ters encountered in the input are not  treated  specially
-                     and  do  not cause r\bre\bea\bad\bd to return until _\bn_\bc_\bh_\ba_\br_\bs characters
-                     are read.  The result is not split on the  characters  in
-                     I\bIF\bFS\bS;  the intent is that the variable is assigned exactly
+                     r\bre\bea\bad\breturns  after  reading  exactly  _\bn_\bc_\bh_\ba_\br_\b characters
+                     rather  than waiting for a complete line of input, unless
+                     EOF is encountered or r\bre\bea\bad\bd times out.  Delimiter  charac-
+                     ters  encountered  in the input are not treated specially
+                     and do not cause r\bre\bea\bad\bd to return until  _\bn_\bc_\bh_\ba_\br_\b characters
+                     are  read.   The result is not split on the characters in
+                     I\bIF\bFS\bS; the intent is that the variable is assigned  exactly
                      the characters read (with the exception of backslash; see
                      the -\b-r\br option below).
               -\b-p\bp _\bp_\br_\bo_\bm_\bp_\bt
@@ -1005,131 +1016,131 @@ B\bBA\bAS\bSH\bH B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS
                      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 (or a specified number  of  characters)  is
-                     not  read within _\bt_\bi_\bm_\be_\bo_\bu_\bt seconds.  _\bt_\bi_\bm_\be_\bo_\bu_\bt may be a deci-
-                     mal number with a fractional portion following the  deci-
-                     mal  point.   This  option  is  only effective if r\bre\bea\bad\bd is
-                     reading input from a terminal,  pipe,  or  other  special
-                     file;  it  has no effect when reading from regular files.
+                     Cause r\bre\bea\bad\bd to time out and return failure if  a  complete
+                     line  of  input  (or a specified number of characters) is
+                     not read within _\bt_\bi_\bm_\be_\bo_\bu_\bt seconds.  _\bt_\bi_\bm_\be_\bo_\bu_\bt may be a  deci-
+                     mal  number with a fractional portion following the deci-
+                     mal point.  This option is  only  effective  if  r\bre\bea\bad\b is
+                     reading  input  from  a  terminal, pipe, or other special
+                     file; it has no effect when reading from  regular  files.
                      If r\bre\bea\bad\bd times out, r\bre\bea\bad\bd saves any partial input read into
-                     the  specified  variable  _\bn_\ba_\bm_\be.   If  _\bt_\bi_\bm_\be_\bo_\bu_\bt  is 0, r\bre\bea\bad\bd
-                     returns immediately, without trying  to  read  any  data.
-                     The  exit status is 0 if input is available on the speci-
-                     fied file descriptor, non-zero otherwise.  The exit  sta-
+                     the specified variable  _\bn_\ba_\bm_\be.   If  _\bt_\bi_\bm_\be_\bo_\bu_\bt  is  0,  r\bre\bea\bad\bd
+                     returns  immediately,  without  trying  to read any data.
+                     The exit status is 0 if input is available on the  speci-
+                     fied  file descriptor, non-zero otherwise.  The exit sta-
                      tus is greater than 128 if the timeout is exceeded.
               -\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 exit status  is  zero,  unless  end-of-file  is
+              able  R\bRE\bEP\bPL\bLY\bY.   The  exit  status  is zero, unless end-of-file is
               encountered, r\bre\bea\bad\bd times out (in which case the status is greater
-              than 128), a variable assignment error (such as assigning  to  a
+              than  128),  a variable assignment error (such as assigning to a
               readonly variable) occurs, or an invalid file descriptor is sup-
               plied as the argument to -\b-u\bu.
 
        r\bre\bea\bad\bdo\bon\bnl\bly\by [-\b-a\baA\bAf\bf] [-\b-p\bp] [_\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\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 indexed
-              arrays; the -\b-A\bA option restricts  the  variables  to  associative
-              arrays.   If both options are supplied, -\b-A\bA takes precedence.  If
-              no _\bn_\ba_\bm_\be arguments are given, or if the -\b-p\bp option is supplied,  a
+              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
+              marked.  The  -\b-a\ba  option  restricts  the  variables  to  indexed
+              arrays;  the  -\b-A\bA  option  restricts the variables to associative
+              arrays.  If both options are supplied, -\b-A\bA takes precedence.   If
+              no  _\bn_\ba_\bm_\be arguments are given, or if the -\b-p\bp option is supplied, a
               list of all readonly names is printed.  The other options may be
-              used to restrict the output to a subset of the set  of  readonly
-              names.   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 variable is set to _\bw_\bo_\br_\bd.  The return
-              status is 0 unless an invalid option is encountered, one of  the
+              used  to  restrict the output to a subset of the set of readonly
+              names.  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 variable 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 function.
 
        r\bre\bet\btu\bur\brn\bn [_\bn]
-              Causes a function to stop executing and return the value  speci-
-              fied  by _\bn to its caller.  If _\bn is omitted, the return status is
-              that of the last command executed  in  the  function  body.   If
-              r\bre\bet\btu\bur\brn\b is  executed by a trap handler, the last command used to
-              determine the status is the last  command  executed  before  the
-              trap  handler.   If  r\bre\bet\btu\bur\brn\bn is executed during a D\bDE\bEB\bBU\bUG\bG trap, the
-              last command used to determine the status is  the  last  command
-              executed  by  the  trap  handler  before r\bre\bet\btu\bur\brn\bn was invoked.  If
-              r\bre\bet\btu\bur\brn\bis 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 _\bn or the exit status  of
-              the  last  command executed within the script as the exit status
-              of the script.  If _\bn is supplied, the return value is its  least
-              significant  8 bits.  The return status is non-zero if r\bre\bet\btu\bur\brn\bn is
-              supplied a non-numeric argument, or is used outside  a  function
-              and  not  during execution of a script by .\b. or s\bso\bou\bur\brc\bce\be.  Any com-
-              mand associated with the R\bRE\bET\bTU\bUR\bRN\bN trap is executed  before  execu-
+              Causes  a function to stop executing and return the value speci-
+              fied by _\bn to its caller.  If _\bn is omitted, the return status  is
+              that  of  the  last  command  executed in the function body.  If
+              r\bre\bet\btu\bur\brn\bis executed by a trap handler, the last command  used  to
+              determine  the  status  is  the last command executed before the
+              trap handler.  If r\bre\bet\btu\bur\brn\bn is executed during a  D\bDE\bEB\bBU\bUG\bG  trap,  the
+              last  command  used  to determine the status is the last command
+              executed by the trap handler  before  r\bre\bet\btu\bur\brn\bn  was  invoked.   If
+              r\bre\bet\btu\bur\brn\b is  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 _\bn or the exit status of
+              the last command executed within the script as the  exit  status
+              of  the script.  If _\bn is supplied, the return value is its least
+              significant 8 bits.  The return status is non-zero if r\bre\bet\btu\bur\brn\b is
+              supplied  a  non-numeric argument, or is used outside a function
+              and not during execution of a script by .\b. or s\bso\bou\bur\brc\bce\be.   Any  com-
+              mand  associated  with the R\bRE\bET\bTU\bUR\bRN\bN trap is executed before execu-
               tion 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_\b-_\bn_\ba_\bm_\be] [_\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_\b-_\bn_\ba_\bm_\be] [_\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 mode, 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 option processing are treated as val-
+              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 option processing are treated as  val-
               ues 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 following
+              $\b$1\b1, $\b$2\b2, .\b..\b..\b.  $\b$_\bn.  Options,  if  specified,  have  the  following
               meanings:
               -\b-a\ba      Each variable or function that is created or modified is
-                      given  the export attribute and marked for export to the
+                      given the export attribute and marked 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 _\bp_\bi_\bp_\be_\bl_\bi_\bn_\be (which may consist  of  a
-                      single  _\bs_\bi_\bm_\bp_\bl_\be  _\bc_\bo_\bm_\bm_\ba_\bn_\bd),  a _\bl_\bi_\bs_\bt, or a _\bc_\bo_\bm_\bp_\bo_\bu_\bn_\bd _\bc_\bo_\bm_\bm_\ba_\bn_\bd
+              -\b-e\be      Exit  immediately  if a _\bp_\bi_\bp_\be_\bl_\bi_\bn_\be (which may consist of a
+                      single _\bs_\bi_\bm_\bp_\bl_\be _\bc_\bo_\bm_\bm_\ba_\bn_\bd), a _\bl_\bi_\bs_\bt, or  a  _\bc_\bo_\bm_\bp_\bo_\bu_\bn_\b _\bc_\bo_\bm_\bm_\ba_\bn_\bd
                       (see S\bSH\bHE\bEL\bLL\bL G\bGR\bRA\bAM\bMM\bMA\bAR\bR above), exits with a non-zero status.
-                      The  shell  does  not  exit if the command that fails is
-                      part of the command list immediately following  a  w\bwh\bhi\bil\ble\be
-                      or  u\bun\bnt\bti\bil\bl  keyword, part of the test following the i\bif\bf or
-                      e\bel\bli\bif\breserved words, part of any command executed  in  a
-                      &\b&&\b or |\b||\b| list except the command following the final &\b&&\b&
+                      The shell does not exit if the  command  that  fails  is
+                      part  of  the command list immediately following a w\bwh\bhi\bil\ble\be
+                      or u\bun\bnt\bti\bil\bl keyword, part of the test following the  i\bif\b or
+                      e\bel\bli\bif\b reserved  words, part of any command executed in a
+                      &\b&&\bor |\b||\b| list except the command following the final  &\b&&\b&
                       or |\b||\b|, any command in a pipeline but the last, or if the
-                      command's  return  value is being inverted with !\b!.  If a
-                      compound command other than a subshell  returns  a  non-
-                      zero  status because a command failed while -\b-e\be was being
-                      ignored, the shell does not exit.  A  trap  on  E\bER\bRR\bR,  if
-                      set,  is  executed  before the shell exits.  This option
+                      command's return value is being inverted with !\b!.   If  a
+                      compound  command  other  than a subshell returns a non-
+                      zero status because a command failed while -\b-e\be was  being
+                      ignored,  the  shell  does  not exit.  A trap on E\bER\bRR\bR, if
+                      set, is executed before the shell  exits.   This  option
                       applies to the shell environment and each subshell envi-
-                      ronment  separately  (see  C\bCO\bOM\bMM\bMA\bAN\bND\bD E\bEX\bXE\bEC\bCU\bUT\bTI\bIO\bON\bN E\bEN\bNV\bVI\bIR\bRO\bON\bNM\bME\bEN\bNT\bT
+                      ronment separately (see  C\bCO\bOM\bMM\bMA\bAN\bND\bD  E\bEX\bXE\bEC\bCU\bUT\bTI\bIO\bON\b E\bEN\bNV\bVI\bIR\bRO\bON\bNM\bME\bEN\bNT\bT
                       above), and may cause subshells to exit before executing
                       all the commands in the subshell.
 
-                      If  a  compound  command or shell function executes in a
-                      context where -\b-e\be is being ignored, none of the  commands
-                      executed  within  the  compound command or function body
-                      will be affected by the -\b-e\be setting, even if  -\b-e\be  is  set
-                      and  a  command returns a failure status.  If a compound
-                      command or shell function sets -\b-e\be while executing  in  a
-                      context  where -\b-e\be is ignored, that setting will not have
-                      any effect until the compound  command  or  the  command
+                      If a compound command or shell function  executes  in  a
+                      context  where -\b-e\be is being ignored, none of the commands
+                      executed within the compound command  or  function  body
+                      will  be  affected  by the -\b-e\be setting, even if -\b-e\be is set
+                      and a command returns a failure status.  If  a  compound
+                      command  or  shell function sets -\b-e\be while executing in a
+                      context where -\b-e\be is ignored, that setting will not  have
+                      any  effect  until  the  compound command or the command
                       containing the function call completes.
               -\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).  All  processes  run
+              -\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).  All processes run
                       in a separate process group.  When a background job com-
                       pletes, the shell prints a line containing its exit sta-
                       tus.
               -\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:
@@ -1137,10 +1148,10 @@ B\bBA\bAS\bSH\bH B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS
                               Same as -\b-a\ba.
                       b\bbr\bra\bac\bce\bee\bex\bxp\bpa\ban\bnd\bd
                               Same as -\b-B\bB.
-                      e\bem\bma\bac\bcs\bs   Use  an  emacs-style command line editing inter-
+                      e\bem\bma\bac\bcs\bs   Use an emacs-style command line  editing  inter-
                               face.  This is enabled by default when the shell
                               is interactive, unless the shell is started with
-                              the -\b--\b-n\bno\boe\bed\bdi\bit\bti\bin\bng\bg option.  This also  affects  the
+                              the  -\b--\b-n\bno\boe\bed\bdi\bit\bti\bin\bng\bg  option.  This also affects the
                               editing interface used for r\bre\bea\bad\bd -\b-e\be.
                       e\ber\brr\bre\bex\bxi\bit\bt Same as -\b-e\be.
                       e\ber\brr\brt\btr\bra\bac\bce\be
@@ -1154,8 +1165,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.
@@ -1170,384 +1181,384 @@ 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
-                              match  the  standard (_\bp_\bo_\bs_\bi_\bx _\bm_\bo_\bd_\be).  See S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+                      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).  See  S\bSE\bEE\b A\bAL\bLS\bSO\bO
                               below for a reference to a document that details
                               how posix mode affects bash's behavior.
                       p\bpr\bri\biv\bvi\bil\ble\beg\bge\bed\bd
                               Same as -\b-p\bp.
                       v\bve\ber\brb\bbo\bos\bse\be Same as -\b-v\bv.
-                      v\bvi\bi      Use  a  vi-style command line editing interface.
+                      v\bvi\bi      Use a vi-style command line  editing  interface.
                               This also affects the editing interface used for
                               r\bre\bea\bad\bd -\b-e\be.
                       x\bxt\btr\bra\bac\bce\be  Same as -\b-x\bx.
                       If -\b-o\bo is supplied with no _\bo_\bp_\bt_\bi_\bo_\bn_\b-_\bn_\ba_\bm_\be, the values of the
-                      current options are printed.  If +\b+o\bo is supplied with  no
-                      _\bo_\bp_\bt_\bi_\bo_\bn_\b-_\bn_\ba_\bm_\be,  a  series  of s\bse\bet\bt commands to recreate the
-                      current option settings is  displayed  on  the  standard
+                      current  options are printed.  If +\b+o\bo is supplied with no
+                      _\bo_\bp_\bt_\bi_\bo_\bn_\b-_\bn_\ba_\bm_\be, a series of s\bse\bet\bt commands  to  recreate  the
+                      current  option  settings  is  displayed on the standard
                       output.
-              -\b-p\bp      Turn  on  _\bp_\br_\bi_\bv_\bi_\bl_\be_\bg_\be_\bd  mode.   In this mode, the $\b$E\bEN\bNV\bV and
-                      $\b$B\bBA\bAS\bSH\bH_\b_E\bEN\bNV\bfiles are not processed, shell  functions  are
-                      not  inherited  from the environment, and the S\bSH\bHE\bEL\bLL\bLO\bOP\bPT\bTS\bS,
-                      B\bBA\bAS\bSH\bHO\bOP\bPT\bTS\bS, C\bCD\bDP\bPA\bAT\bTH\bH,  and  G\bGL\bLO\bOB\bBI\bIG\bGN\bNO\bOR\bRE\bE  variables,  if  they
+              -\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,
+                      B\bBA\bAS\bSH\bHO\bOP\bPT\bTS\bS,  C\bCD\bDP\bPA\bAT\bTH\bH,  and  G\bGL\bLO\bOB\bBI\bIG\bGN\bNO\bOR\bRE\bE  variables,  if they
                       appear in the environment, are ignored.  If the shell is
-                      started with the effective user (group) id not equal  to
-                      the  real user (group) id, and the -\b-p\bp option is not sup-
+                      started  with the effective user (group) id not equal to
+                      the real user (group) id, and the -\b-p\bp option is not  sup-
                       plied, these actions are taken and the effective user id
-                      is  set  to  the real user id.  If the -\b-p\bp option is sup-
-                      plied at startup, the effective user id  is  not  reset.
-                      Turning  this  option  off causes the effective user and
+                      is set to the real user id.  If the -\b-p\bp  option  is  sup-
+                      plied  at  startup,  the effective user id is not reset.
+                      Turning this option off causes the  effective  user  and
                       group ids to be set to the real user and group ids.
               -\b-t\bt      Exit after reading and executing one command.
               -\b-u\bu      Treat unset variables and parameters other than the spe-
-                      cial  parameters "@" and "*" as an error when performing
-                      parameter expansion.  If expansion is  attempted  on  an
-                      unset  variable  or parameter, the shell prints an error
-                      message, and, if not interactive, exits with a  non-zero
+                      cial parameters "@" and "*" as an error when  performing
+                      parameter  expansion.   If  expansion is attempted on an
+                      unset variable or parameter, 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 resolve symbolic  links  when
-                      executing  commands  such  as c\bcd\bd that change the current
+              -\b-P\bP      If  set,  the shell does not resolve 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 settings controlling optional shell behav-
-              ior.  The settings can be either those listed below, or, if  the
+              Toggle the values of settings controlling optional shell  behav-
+              ior.   The settings can be either those listed below, or, if the
               -\b-o\bo option is used, those available with the -\b-o\bo option to the s\bse\bet\bt
               builtin command.  With no options, or with the -\b-p\bp option, a list
-              of  all  settable  options  is  displayed, with an indication of
+              of all settable options is  displayed,  with  an  indication  of
               whether or not each is set; if _\bo_\bp_\bt_\bn_\ba_\bm_\be_\bs are supplied, the output
-              is  restricted to those options.  The -\b-p\bp option causes output to
-              be displayed in a form that  may  be  reused  as  input.   Other
+              is restricted to those options.  The -\b-p\bp option causes output  to
+              be  displayed  in  a  form  that  may be reused as input.  Other
               options have the following 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,  s\bsh\bho\bop\bpt\bt
-              shows  only  those options which are set or unset, respectively.
-              Unless otherwise noted, the s\bsh\bho\bop\bpt\bt options are  disabled  (unset)
+              If  either  -\b-s\bs  or  -\b-u\bu  is used with no _\bo_\bp_\bt_\bn_\ba_\bm_\be arguments, s\bsh\bho\bop\bpt\bt
+              shows only those options which are set or  unset,  respectively.
+              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\bas\bss\bso\boc\bc_\b_e\bex\bxp\bpa\ban\bnd\bd_\b_o\bon\bnc\bce\be
-                      If set, the  shell  suppresses  multiple  evaluation  of
-                      associative  array  subscripts during arithmetic expres-
-                      sion evaluation and while executing  builtins  that  can
+                      If  set,  the  shell  suppresses  multiple evaluation of
+                      associative array subscripts during  arithmetic  expres-
+                      sion  evaluation  and  while executing builtins that can
                       perform variable assignments.
-              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 filename 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 filename is printed, and  the  com-
+                      mand  proceeds.  This option is only used by interactive
                       shells.
               c\bch\bhe\bec\bck\bkh\bha\bas\bsh\bh
                       If set, b\bba\bas\bsh\bh checks that a command found in the hash ta-
-                      ble exists before trying to execute  it.   If  a  hashed
-                      command  no  longer exists, a normal path search is per-
+                      ble  exists  before  trying  to execute it.  If a hashed
+                      command no longer exists, a normal path search  is  per-
                       formed.
               c\bch\bhe\bec\bck\bkj\bjo\bob\bbs\bs
                       If set, b\bba\bas\bsh\bh lists the status of any stopped and running
-                      jobs  before  exiting an interactive shell.  If any jobs
+                      jobs before exiting an interactive shell.  If  any  jobs
                       are running, this causes the exit to be deferred until a
-                      second  exit is attempted without an intervening command
-                      (see J\bJO\bOB\bB C\bCO\bON\bNT\bTR\bRO\bOL\bL above).   The  shell  always  postpones
+                      second exit is attempted without an intervening  command
+                      (see  J\bJO\bOB\bB  C\bCO\bON\bNT\bTR\bRO\bOL\bL  above).   The shell always postpones
                       exiting if any jobs are stopped.
               c\bch\bhe\bec\bck\bkw\bwi\bin\bns\bsi\biz\bze\be
-                      If  set, b\bba\bas\bsh\bh checks the window size after each external
-                      (non-builtin) command and,  if  necessary,  updates  the
+                      If set, b\bba\bas\bsh\bh checks the window size after each  external
+                      (non-builtin)  command  and,  if  necessary, updates the
                       values of L\bLI\bIN\bNE\bES\bS and C\bCO\bOL\bLU\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
-                      easy  re-editing of multi-line commands.  This option is
-                      enabled by default, but only has an  effect  if  command
+              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.  This option  is
+                      enabled  by  default,  but only has an effect if command
                       history is enabled, as described above under H\bHI\bIS\bST\bTO\bOR\bRY\bY.
               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  [\b[[\b conditional
+                      with  respect  to quoted arguments to the [\b[[\b[ conditional
                       command's =\b=~\b~ operator and locale-specific string compar-
-                      ison when using the [\b[[\b[ conditional  command's  <\b<  and  >\b>
-                      operators.   Bash  versions  prior to bash-4.1 use ASCII
+                      ison  when  using  the  [\b[[\b[ conditional command's <\b< and >\b>
+                      operators.  Bash versions prior to  bash-4.1  use  ASCII
                       collation and _\bs_\bt_\br_\bc_\bm_\bp(3); bash-4.1 and later use the cur-
                       rent locale's collation sequence and _\bs_\bt_\br_\bc_\bo_\bl_\bl(3).
               c\bco\bom\bmp\bpa\bat\bt3\b32\b2
                       If set, b\bba\bas\bsh\bh changes its behavior to that of version 3.2
-                      with respect to locale-specific string  comparison  when
-                      using  the  [\b[[\b[  conditional  command's <\b< and >\b> operators
-                      (see previous item) and the  effect  of  interrupting  a
-                      command  list.   Bash  versions 3.2 and earlier continue
-                      with the next command in the list after  one  terminates
+                      with  respect  to locale-specific string comparison when
+                      using the [\b[[\b[ conditional command's  <\b<  and  >\b operators
+                      (see  previous  item)  and  the effect of interrupting a
+                      command list.  Bash versions 3.2  and  earlier  continue
+                      with  the  next command in the list after one terminates
                       due to an interrupt.
               c\bco\bom\bmp\bpa\bat\bt4\b40\b0
                       If set, b\bba\bas\bsh\bh changes its behavior to that of version 4.0
-                      with respect to locale-specific string  comparison  when
-                      using  the  [\b[[\b[  conditional  command's <\b< and >\b> operators
-                      (see description of c\bco\bom\bmp\bpa\bat\bt3\b31\b1) and the effect  of  inter-
-                      rupting  a  command  list.   Bash versions 4.0 and later
-                      interrupt the list as if the shell received  the  inter-
-                      rupt;  previous  versions continue with the next command
+                      with  respect  to locale-specific string comparison when
+                      using the [\b[[\b[ conditional command's  <\b<  and  >\b operators
+                      (see  description  of c\bco\bom\bmp\bpa\bat\bt3\b31\b1) and the effect of inter-
+                      rupting a command list.  Bash  versions  4.0  and  later
+                      interrupt  the  list as if the shell received the inter-
+                      rupt; previous versions continue with the  next  command
                       in the list.
               c\bco\bom\bmp\bpa\bat\bt4\b41\b1
-                      If set, b\bba\bas\bsh\bh, when in _\bp_\bo_\bs_\bi_\bx mode, treats a single  quote
-                      in  a  double-quoted  parameter  expansion  as a special
-                      character.  The single quotes must match (an  even  num-
-                      ber)  and  the  characters between the single quotes are
-                      considered quoted.  This is the behavior of  posix  mode
-                      through  version 4.1.  The default bash behavior remains
+                      If  set, b\bba\bas\bsh\bh, when in _\bp_\bo_\bs_\bi_\bx _\bm_\bo_\bd_\be, treats a single quote
+                      in a double-quoted  parameter  expansion  as  a  special
+                      character.   The  single quotes must match (an even num-
+                      ber) and the characters between the  single  quotes  are
+                      considered  quoted.   This is the behavior of posix mode
+                      through version 4.1.  The default bash behavior  remains
                       as in previous versions.
               c\bco\bom\bmp\bpa\bat\bt4\b42\b2
-                      If set, b\bba\bas\bsh\bh does not process the replacement string  in
-                      the  pattern  substitution  word  expansion  using quote
+                      If  set, b\bba\bas\bsh\bh does not process the replacement string in
+                      the pattern  substitution  word  expansion  using  quote
                       removal.
               c\bco\bom\bmp\bpa\bat\bt4\b43\b3
-                      If set, b\bba\bas\bsh\bh does not print  a  warning  message  if  an
-                      attempt  is  made to use a quoted compound array assign-
-                      ment as an argument to  d\bde\bec\bcl\bla\bar\bre\be,  makes  word  expansion
-                      errors  non-fatal  errors that cause the current command
-                      to fail (the default behavior  is  to  make  them  fatal
+                      If  set,  b\bba\bas\bsh\bh  does  not  print a warning message if an
+                      attempt is made to use a quoted compound  array  assign-
+                      ment  as  an  argument  to d\bde\bec\bcl\bla\bar\bre\be, makes word expansion
+                      errors non-fatal errors that cause the  current  command
+                      to  fail  (the  default  behavior  is to make them fatal
                       errors that cause the shell to exit), and does not reset
-                      the loop state when a shell function is  executed  (this
-                      allows  b\bbr\bre\bea\bak\bk  or c\bco\bon\bnt\bti\bin\bnu\bue\be in a shell function to affect
+                      the  loop  state when a shell function is executed (this
+                      allows b\bbr\bre\bea\bak\bk or c\bco\bon\bnt\bti\bin\bnu\bue\be in a shell function  to  affect
                       loops in the caller's context).
               c\bco\bom\bmp\bpa\bat\bt4\b44\b4
-                      If  set,  b\bba\bas\bsh\bh  saves  the  positional   parameters   to
+                      If   set,   b\bba\bas\bsh\bh  saves  the  positional  parameters  to
                       BASH_ARGV and BASH_ARGC before they are used, regardless
                       of whether or not extended debugging mode is enabled.
               c\bco\bom\bmp\bpl\ble\bet\bte\be_\b_f\bfu\bul\bll\blq\bqu\buo\bot\bte\be
-                      If set, b\bba\bas\bsh\bh quotes all shell  metacharacters  in  file-
-                      names  and  directory  names when performing completion.
+                      If  set,  b\bba\bas\bsh\bh  quotes all shell metacharacters in file-
+                      names and directory names  when  performing  completion.
                       If not set, b\bba\bas\bsh\bh removes metacharacters such as the dol-
-                      lar  sign from the set of characters that will be quoted
-                      in completed filenames when these metacharacters  appear
-                      in  shell  variable references in words to be completed.
-                      This means that dollar  signs  in  variable  names  that
-                      expand  to  directories will not be quoted; however, any
-                      dollar signs appearing in filenames will not be  quoted,
-                      either.   This  is  active only when bash is using back-
-                      slashes to quote completed filenames.  This variable  is
-                      set  by  default,  which is the default bash behavior in
+                      lar sign from the set of characters that will be  quoted
+                      in  completed filenames when these metacharacters appear
+                      in shell variable references in words to  be  completed.
+                      This  means  that  dollar  signs  in variable names that
+                      expand to directories will not be quoted;  however,  any
+                      dollar  signs appearing in filenames will not be quoted,
+                      either.  This is active only when bash  is  using  back-
+                      slashes  to quote completed filenames.  This variable is
+                      set by default, which is the default  bash  behavior  in
                       versions through 4.2.
               d\bdi\bir\bre\bex\bxp\bpa\ban\bnd\bd
-                      If set, b\bba\bas\bsh\bh replaces directory names with  the  results
-                      of  word  expansion when performing filename completion.
-                      This changes the contents of the readline  editing  buf-
-                      fer.   If  not  set,  b\bba\bas\bsh\bh attempts to preserve what the
+                      If  set,  b\bba\bas\bsh\bh replaces directory names with the results
+                      of word expansion when performing  filename  completion.
+                      This  changes  the contents of the readline editing buf-
+                      fer.  If not set, b\bba\bas\bsh\bh attempts  to  preserve  what  the
                       user typed.
               d\bdi\bir\brs\bsp\bpe\bel\bll\bl
-                      If set, b\bba\bas\bsh\bh attempts spelling correction  on  directory
-                      names  during word completion if the directory name ini-
+                      If  set,  b\bba\bas\bsh\bh attempts spelling correction on directory
+                      names during word completion if the directory name  ini-
                       tially supplied does not exist.
-              d\bdo\bot\btg\bgl\blo\bob\bb If set, b\bba\bas\bsh\bh includes filenames beginning with a `.'  in
-                      the  results of pathname expansion.  The filenames `\b``\b`.\b.'\b''\b'
-                      and `\b``\b`.\b..\b.'\b''\b'  must always be matched explicitly,  even  if
+              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.  The filenames  `\b``\b`.\b.'\b''\b'
+                      and  `\b``\b`.\b..\b.'\b''\b'   must always be matched explicitly, even if
                       d\bdo\bot\btg\bgl\blo\bob\bb is set.
               e\bex\bxe\bec\bcf\bfa\bai\bil\bl
                       If set, a non-interactive shell will not exit if it can-
-                      not execute the file specified as  an  argument  to  the
-                      e\bex\bxe\bec\b builtin  command.   An  interactive shell does not
+                      not  execute  the  file  specified as an argument to the
+                      e\bex\bxe\bec\bbuiltin command.  An  interactive  shell  does  not
                       exit if e\bex\bxe\bec\bc fails.
               e\bex\bxp\bpa\ban\bnd\bd_\b_a\bal\bli\bia\bas\bse\bes\bs
-                      If set, aliases are expanded as  described  above  under
+                      If  set,  aliases  are expanded as described above under
                       A\bAL\bLI\bIA\bAS\bSE\bES\bS.  This option is enabled by default for interac-
                       tive shells.
               e\bex\bxt\btd\bde\beb\bbu\bug\bg
-                      If set at  shell  invocation,  arrange  to  execute  the
-                      debugger  profile  before the shell starts, identical to
-                      the -\b--\b-d\bde\beb\bbu\bug\bgg\bge\ber\br option.  If set after invocation,  behav-
+                      If  set  at  shell  invocation,  arrange  to execute the
+                      debugger profile before the shell starts,  identical  to
+                      the  -\b--\b-d\bde\beb\bbu\bug\bgg\bge\ber\br option.  If set after invocation, behav-
                       ior 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),  the  shell
+                      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), the shell
                              simulates a call to r\bre\bet\btu\bur\brn\bn.
-                      4\b4.\b.     B\bBA\bAS\bSH\bH_\b_A\bAR\bRG\bGC\b and B\bBA\bAS\bSH\bH_\b_A\bAR\bRG\bGV\bV are updated as described
+                      4\b4.\b.     B\bBA\bAS\bSH\bH_\b_A\bAR\bRG\bGC\band B\bBA\bAS\bSH\bH_\b_A\bAR\bRG\bGV\bV are updated as  described
                              in their descriptions above.
-                      5\b5.\b.     Function tracing is  enabled:  command  substitu-
+                      5\b5.\b.     Function  tracing  is  enabled: command substitu-
                              tion, shell functions, and subshells invoked with
                              (\b( _\bc_\bo_\bm_\bm_\ba_\bn_\bd )\b) inherit the D\bDE\bEB\bBU\bUG\bG and R\bRE\bET\bTU\bUR\bRN\bN traps.
-                      6\b6.\b.     Error tracing is enabled:  command  substitution,
-                             shell  functions,  and  subshells  invoked with (\b(
+                      6\b6.\b.     Error  tracing  is enabled: command substitution,
+                             shell functions, and  subshells  invoked  with  (\b(
                              _\bc_\bo_\bm_\bm_\ba_\bn_\bd )\b) inherit the E\bER\bRR\bR trap.
               e\bex\bxt\btg\bgl\blo\bob\bb If set, the extended pattern matching features described
                       above under P\bPa\bat\bth\bhn\bna\bam\bme\be E\bEx\bxp\bpa\ban\bns\bsi\bio\bon\bn are enabled.
               e\bex\bxt\btq\bqu\buo\bot\bte\be
-                      If  set,  $\b$'_\bs_\bt_\br_\bi_\bn_\bg'  and  $\b$"_\bs_\bt_\br_\bi_\bn_\bg" quoting is performed
-                      within  $\b${\b{_\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br}\b}  expansions  enclosed   in   double
+                      If set, $\b$'_\bs_\bt_\br_\bi_\bn_\bg' and  $\b$"_\bs_\bt_\br_\bi_\bn_\bg"  quoting  is  performed
+                      within   $\b${\b{_\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br}\b}   expansions  enclosed  in  double
                       quotes.  This option is enabled by default.
               f\bfa\bai\bil\blg\bgl\blo\bob\bb
-                      If  set,  patterns  which fail to match filenames during
+                      If set, patterns which fail to  match  filenames  during
                       pathname expansion result in an expansion error.
               f\bfo\bor\brc\bce\be_\b_f\bfi\big\bgn\bno\bor\bre\be
-                      If set, the suffixes  specified  by  the  F\bFI\bIG\bGN\bNO\bOR\bRE\b shell
-                      variable  cause words to be ignored when performing word
+                      If  set,  the  suffixes  specified  by the F\bFI\bIG\bGN\bNO\bOR\bRE\bE shell
+                      variable cause words to be ignored when performing  word
                       completion even if the ignored words are the only possi-
                       ble  completions.   See  S\bSH\bHE\bEL\bLL\bL  V\bVA\bAR\bRI\bIA\bAB\bBL\bLE\bES\bS  above  for  a
-                      description of  F\bFI\bIG\bGN\bNO\bOR\bRE\bE.   This  option  is  enabled  by
+                      description  of  F\bFI\bIG\bGN\bNO\bOR\bRE\bE.   This  option  is  enabled by
                       default.
               g\bgl\blo\bob\bba\bas\bsc\bci\bii\bir\bra\ban\bng\bge\bes\bs
-                      If  set,  range  expressions  used  in  pattern matching
-                      bracket expressions (see P\bPa\bat\btt\bte\ber\brn\bn M\bMa\bat\btc\bch\bhi\bin\bng\bg above)  behave
-                      as  if  in the traditional C locale when performing com-
+                      If set,  range  expressions  used  in  pattern  matching
+                      bracket  expressions (see P\bPa\bat\btt\bte\ber\brn\bn M\bMa\bat\btc\bch\bhi\bin\bng\bg above) behave
+                      as if in the traditional C locale when  performing  com-
                       parisons.   That  is,  the  current  locale's  collating
-                      sequence  is  not taken into account, so b\bb will not col-
-                      late between A\bA and  B\bB,  and  upper-case  and  lower-case
+                      sequence is not taken into account, so b\bb will  not  col-
+                      late  between  A\bA  and  B\bB,  and upper-case and lower-case
                       ASCII characters will collate together.
               g\bgl\blo\bob\bbs\bst\bta\bar\br
                       If set, the pattern *\b**\b* used in a pathname expansion con-
-                      text will match all files and zero or  more  directories
-                      and  subdirectories.  If the pattern is followed by a /\b/,
+                      text  will  match all files and zero or more directories
+                      and subdirectories.  If the pattern is followed by a  /\b/,
                       only directories and subdirectories match.
               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\bnh\bhe\ber\bri\bit\bt_\b_e\ber\brr\bre\bex\bxi\bit\bt
-                      If set, command substitution inherits the value  of  the
-                      e\ber\brr\bre\bex\bxi\bit\b option, instead of unsetting it in the subshell
-                      environment.  This option is enabled when _\bp_\bo_\bs_\bi_\bx _\bm_\bo_\bd_\b is
+                      If  set,  command substitution inherits the value of the
+                      e\ber\brr\bre\bex\bxi\bit\boption, instead of unsetting it in the  subshell
+                      environment.   This option is enabled when _\bp_\bo_\bs_\bi_\bx _\bm_\bo_\bd_\be is
                       enabled.
               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\bla\bas\bst\btp\bpi\bip\bpe\be
-                      If set, and job control is not active,  the  shell  runs
+                      If  set,  and  job control is not active, the shell runs
                       the last command of a pipeline not executed in the back-
                       ground in the current shell environment.
-              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\boc\bca\bal\blv\bva\bar\br_\b_i\bin\bnh\bhe\ber\bri\bit\bt
                       If set, local variables inherit the value and attributes
                       of a variable of the same name that exists at a previous
-                      scope before any new value  is  assigned.   The  nameref
+                      scope  before  any  new  value is assigned.  The nameref
                       attribute is not inherited.
               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, when performing pattern substi-
-                      tution  word expansions, or when filtering possible com-
+                      tution word expansions, or when filtering possible  com-
                       pletions as part of programmable completion.
               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-
@@ -1555,50 +1566,50 @@ B\bBA\bAS\bSH\bH B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS
                       enabled by default.
               p\bpr\bro\bom\bmp\bpt\btv\bva\bar\brs\bs
                       If set, prompt strings undergo parameter expansion, com-
-                      mand   substitution,  arithmetic  expansion,  and  quote
-                      removal after being expanded as described  in  P\bPR\bRO\bOM\bMP\bPT\bTI\bIN\bNG\bG
+                      mand  substitution,  arithmetic  expansion,  and   quote
+                      removal  after  being expanded as described in P\bPR\bRO\bOM\bMP\bPT\bTI\bIN\bNG\bG
                       above.  This option is enabled by default.
               r\bre\bes\bst\btr\bri\bic\bct\bte\bed\bd_\b_s\bsh\bhe\bel\bll\bl
-                      The   shell  sets  this  option  if  it  is  started  in
+                      The  shell  sets  this  option  if  it  is  started   in
                       restricted mode (see R\bRE\bES\bST\bTR\bRI\bIC\bCT\bTE\bED\bD S\bSH\bHE\bEL\bLL\bL below).  The value
-                      may  not be changed.  This is not reset when the startup
-                      files are executed, allowing the startup files  to  dis-
+                      may not be changed.  This is not reset when the  startup
+                      files  are  executed, allowing the startup files to dis-
                       cover whether or not a shell is restricted.
               s\bsh\bhi\bif\bft\bt_\b_v\bve\ber\brb\bbo\bos\bse\be
-                      If  set,  the s\bsh\bhi\bif\bft\bt builtin prints an error message when
+                      If set, the s\bsh\bhi\bif\bft\bt builtin prints an error  message  when
                       the shift count exceeds the number of positional parame-
                       ters.
               s\bso\bou\bur\brc\bce\bep\bpa\bat\bth\bh
                       If set, the s\bso\bou\bur\brc\bce\be (.\b.) builtin uses the value of P\bPA\bAT\bTH\bH to
-                      find the directory containing the file  supplied  as  an
+                      find  the  directory  containing the file supplied as an
                       argument.  This option is enabled by default.
               x\bxp\bpg\bg_\b_e\bec\bch\bho\bo
-                      If   set,  the  e\bec\bch\bho\bo  builtin  expands  backslash-escape
+                      If  set,  the  e\bec\bch\bho\bo  builtin  expands   backslash-escape
                       sequences by default.
 
        s\bsu\bus\bsp\bpe\ben\bnd\bd [-\b-f\bf]
-              Suspend the execution of this shell until it receives a  S\bSI\bIG\bGC\bCO\bON\bNT\bT
+              Suspend  the execution of this shell until it receives a S\bSI\bIG\bGC\bCO\bON\bNT\bT
               signal.  A login shell cannot be suspended; the -\b-f\bf option can be
               used to override this and force the suspension.  The return sta-
-              tus  is  0  unless the shell is a login shell and -\b-f\bf is not sup-
+              tus is 0 unless the shell is a login shell and -\b-f\bf  is  not  sup-
               plied, or if job control is not enabled.
 
        t\bte\bes\bst\bt _\be_\bx_\bp_\br
        [\b[ _\be_\bx_\bp_\br ]\b]
               Return a status of 0 (true) or 1 (false) depending on the evalu-
               ation of the conditional expression _\be_\bx_\bp_\br.  Each operator and op-
-              erand 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\bdoes not accept any options, nor does it accept and  ignore
+              erand  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\b E\bEX\bXP\bPR\bRE\bES\bSS\bSI\bIO\bON\bNS\bS.
+              t\bte\bes\bst\b 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.  Operator prece-
+              depends on the number of arguments; see below.  Operator  prece-
               dence is used when there are five or more arguments.
               !\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.
@@ -1615,120 +1626,120 @@ 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
                      The following conditions are applied in the order listed.
-                     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.
 
-              When  used  with  t\bte\bes\bst\bt  or [\b[, the <\b< and >\b> operators sort lexico-
+              When used with t\bte\bes\bst\bt or [\b[, the <\b< and  >\b>  operators  sort  lexico-
               graphically using ASCII ordering.
 
-       t\bti\bim\bme\bes\bs  Print the accumulated user and system times for  the  shell  and
+       t\bti\bim\bme\bes\bs  Print  the  accumulated  user and system times for the shell and
               for processes run from the shell.  The return status is 0.
 
        t\btr\bra\bap\bp [-\b-l\blp\bp] [[_\ba_\br_\bg] _\bs_\bi_\bg_\bs_\bp_\be_\bc ...]
-              The  command  _\ba_\br_\bg  is  to  be  read  and executed when the shell
-              receives signal(s) _\bs_\bi_\bg_\bs_\bp_\be_\bc.  If _\ba_\br_\bg is absent (and  there  is  a
-              single  _\bs_\bi_\bg_\bs_\bp_\be_\bc)  or  -\b-,  each  specified signal is reset to its
-              original disposition (the value it  had  upon  entrance  to  the
-              shell).   If _\ba_\br_\bg is the null string the signal specified by each
-              _\bs_\bi_\bg_\bs_\bp_\be_\bis ignored by the shell and by the commands it  invokes.
-              If  _\ba_\br_\bg  is  not present and -\b-p\bp has been supplied, then the trap
-              commands associated with each  _\bs_\bi_\bg_\bs_\bp_\be_\bc  are  displayed.   If  no
-              arguments  are  supplied or if only -\b-p\bp is given, t\btr\bra\bap\bp prints the
-              list of commands associated with each  signal.   The  -\b-l\b option
-              causes  the shell to print a list of signal names and their cor-
-              responding numbers.   Each  _\bs_\bi_\bg_\bs_\bp_\be_\bc  is  either  a  signal  name
-              defined  in  <_\bs_\bi_\bg_\bn_\ba_\bl_\b._\bh>,  or  a signal number.  Signal names are
+              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 S\bSI\bIG\bG 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 exe-
-              cuted before every _\bs_\bi_\bm_\bp_\bl_\be _\bc_\bo_\bm_\bm_\ba_\bn_\bd, _\bf_\bo_\br  command,  _\bc_\ba_\bs_\b command,
-              _\bs_\be_\bl_\be_\bc_\b command,  every  arithmetic  _\bf_\bo_\br command, and before the
-              first command executes in a shell function  (see  S\bSH\bHE\bEL\bLL\b 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
+              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  exe-
+              cuted  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_\bcommand, 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 R\bRE\bET\bTU\bUR\bRN\bN, the command _\ba_\br_\bg is executed each time a shell
               function or a script executed with the .\b. or s\bso\bou\bur\brc\bce\be builtins fin-
               ishes executing.
 
-              If  a  _\bs_\bi_\bg_\bs_\bp_\be_\bc  is  E\bER\bRR\bR,  the command _\ba_\br_\bg is executed whenever a
+              If a _\bs_\bi_\bg_\bs_\bp_\be_\bc is E\bER\bRR\bR, the command  _\ba_\br_\bg  is  executed  whenever  a
               pipeline (which may consist of a single simple command), a list,
               or a compound command returns a non-zero exit status, subject to
-              the following conditions.  The E\bER\bRR\bR trap is not executed  if  the
+              the  following  conditions.  The E\bER\bRR\bR 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\bl keyword, part of the test in an  _\bi_\b statement,
+              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 except the command
-              following the final &\b&&\b& or |\b||\b|, any command in a pipeline but  the
-              last,  or  if the command's return value is being inverted using
-              !\b!.  These are the same conditions obeyed  by  the  e\ber\brr\bre\bex\bxi\bit\b (-\b-e\be)
+              following  the final &\b&&\b& or |\b||\b|, any command in a pipeline but the
+              last, or if the command's return value is being  inverted  using
+              !\b!.   These  are  the  same conditions obeyed by the e\ber\brr\bre\bex\bxi\bit\bt (-\b-e\be)
               option.
 
-              Signals  ignored  upon  entry  to the shell cannot be trapped or
-              reset.  Trapped signals that are not being ignored are reset  to
+              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 subshell or subshell environment when
-              one is created.  The return status is false if  any  _\bs_\bi_\bg_\bs_\bp_\be_\b is
+              one  is  created.   The return status is false if any _\bs_\bi_\bg_\bs_\bp_\be_\bc is
               invalid; otherwise t\btr\bra\bap\bp returns true.
 
        t\bty\byp\bpe\be [-\b-a\baf\bft\btp\bpP\bP] _\bn_\ba_\bm_\be [_\bn_\ba_\bm_\be ...]
-              With  no options, indicate how each _\bn_\ba_\bm_\be would be interpreted if
+              With no options, indicate how each _\bn_\ba_\bm_\be would be interpreted  if
               used as a command name.  If the -\b-t\bt option is used, t\bty\byp\bpe\be prints a
-              string  which  is  one  of _\ba_\bl_\bi_\ba_\bs, _\bk_\be_\by_\bw_\bo_\br_\bd, _\bf_\bu_\bn_\bc_\bt_\bi_\bo_\bn, _\bb_\bu_\bi_\bl_\bt_\bi_\bn, or
-              _\bf_\bi_\bl_\bif  _\bn_\ba_\bm_\be  is  an  alias,  shell  reserved  word,  function,
-              builtin,  or disk file, respectively.  If the _\bn_\ba_\bm_\be is not found,
-              then nothing  is  printed,  and  an  exit  status  of  false  is
-              returned.   If  the  -\b-p\bp  option is used, t\bty\byp\bpe\be either returns the
+              string which is one of _\ba_\bl_\bi_\ba_\bs,  _\bk_\be_\by_\bw_\bo_\br_\bd,  _\bf_\bu_\bn_\bc_\bt_\bi_\bo_\bn,  _\bb_\bu_\bi_\bl_\bt_\bi_\bn,  or
+              _\bf_\bi_\bl_\b if  _\bn_\ba_\bm_\be  is  an  alias,  shell  reserved  word, function,
+              builtin, or disk file, respectively.  If the _\bn_\ba_\bm_\be is not  found,
+              then  nothing  is  printed,  and  an  exit  status  of  false is
+              returned.  If the -\b-p\bp option is used,  t\bty\byp\bpe\be  either  returns  the
               name of the disk file that would be executed if _\bn_\ba_\bm_\be were speci-
               fied as a command name, or nothing if ``type -t name'' would not
-              return _\bf_\bi_\bl_\be.  The -\b-P\bP option forces a P\bPA\bAT\bTH\bH search for each  _\bn_\ba_\bm_\be,
+              return  _\bf_\bi_\bl_\be.  The -\b-P\bP option forces a P\bPA\bAT\bTH\bH search for each _\bn_\ba_\bm_\be,
               even if ``type -t name'' would not return _\bf_\bi_\bl_\be.  If a command is
               hashed, -\b-p\bp and -\b-P\bP print the hashed value, which is not necessar-
-              ily  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
+              ily 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
+              not consulted when using -\b-a\ba.  The  -\b-f\bf  option  suppresses  shell
               function lookup, as with the c\bco\bom\bmm\bma\ban\bnd\bd builtin.  t\bty\byp\bpe\be returns true
               if all of the arguments are found, false if any are not found.
 
        u\bul\bli\bim\bmi\bit\bt [-\b-H\bHS\bSa\bab\bbc\bcd\bde\bef\bfi\bik\bkl\blm\bmn\bnp\bpq\bqr\brs\bst\btu\buv\bvx\bxP\bPT\bT [_\bl_\bi_\bm_\bi_\bt]]
-              Provides  control  over the resources available to the shell and
-              to processes started by it, on systems that allow such  control.
+              Provides control over the resources available to the  shell  and
+              to  processes started by it, on systems that allow such control.
               The -\b-H\bH and -\b-S\bS options specify that the hard or soft limit is set
-              for the given resource.  A hard limit cannot be increased  by  a
-              non-root  user  once it is set; a soft limit may be increased up
-              to the value of the hard limit.  If neither -\b-H\bH nor -\b-S\bS is  speci-
+              for  the  given resource.  A hard limit cannot be increased by a
+              non-root user once it is set; a soft limit may be  increased  up
+              to  the value of the hard limit.  If neither -\b-H\bH nor -\b-S\bS is speci-
               fied, both the soft and hard limits are set.  The value of _\bl_\bi_\bm_\bi_\bt
               can be a number in the unit specified for the resource or one of
               the special values h\bha\bar\brd\bd, s\bso\bof\bft\bt, or u\bun\bnl\bli\bim\bmi\bit\bte\bed\bd, which stand for the
-              current hard limit,  the  current  soft  limit,  and  no  limit,
-              respectively.   If  _\bl_\bi_\bm_\bi_\bt  is  omitted, the current value of the
-              soft limit of the resource is printed, unless the -\b-H\bH  option  is
+              current  hard  limit,  the  current  soft  limit,  and no limit,
+              respectively.  If _\bl_\bi_\bm_\bi_\bt is omitted, the  current  value  of  the
+              soft  limit  of the resource is printed, unless the -\b-H\bH option is
               given.  When more than one resource is specified, the limit name
               and unit are printed before the value.  Other options are inter-
               preted as follows:
@@ -1737,12 +1748,12 @@ B\bBA\bAS\bSH\bH B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS
               -\b-c\bc     The maximum size of core files created
               -\b-d\bd     The maximum size of a process's data segment
               -\b-e\be     The maximum scheduling priority ("nice")
-              -\b-f\bf     The  maximum  size  of files written by the shell and its
+              -\b-f\bf     The maximum size of files written by the  shell  and  its
                      children
               -\b-i\bi     The maximum number of pending signals
               -\b-k\bk     The maximum number of kqueues that may be allocated
               -\b-l\bl     The maximum size that may be locked into memory
-              -\b-m\bm     The maximum resident set size (many systems do not  honor
+              -\b-m\bm     The  maximum resident set size (many systems do not honor
                      this limit)
               -\b-n\bn     The maximum number of open file descriptors (most systems
                      do not allow this value to be set)
@@ -1751,53 +1762,53 @@ 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 and, on some systems, to its children
               -\b-x\bx     The maximum number of file locks
               -\b-P\bP     The maximum number of pseudoterminals
               -\b-T\bT     The maximum number of threads
 
-              If _\bl_\bi_\bm_\bi_\bt is given, and the -\b-a\ba option is not used, _\bl_\bi_\bm_\bi_\bt  is  the
-              new  value  of  the  specified resource.  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; -\b-P\bP, -\b-T\bT, -\b-b\bb, -\b-k\bk, -\b-n\bn, and -\b-u\bu, which are  unscaled  values;
-              and, when in Posix mode, -\b-c\bc and -\b-f\bf, which are in 512-byte incre-
+              If  _\bl_\bi_\bm_\bi_\bt  is given, and the -\b-a\ba option is not used, _\bl_\bi_\bm_\bi_\bt is the
+              new value of the specified resource.  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;  -\b-P\bP,  -\b-T\bT, -\b-b\bb, -\b-k\bk, -\b-n\bn, and -\b-u\bu, which are unscaled values;
+              and, when in posix mode, -\b-c\bc and -\b-f\bf, which are in 512-byte incre-
               ments.  The return status is 0 unless an invalid option or argu-
               ment is supplied, or an error occurs while setting a new limit.
 
        u\bum\bma\bas\bsk\bk [-\b-p\bp] [-\b-S\bS] [_\bm_\bo_\bd_\be]
               The user file-creation mask is set to _\bm_\bo_\bd_\be.  If _\bm_\bo_\bd_\be begins with
-              a digit, it is interpreted as an octal number; otherwise  it  is
-              interpreted  as a symbolic mode mask similar to that accepted by
-              _\bc_\bh_\bm_\bo_\bd(1).  If _\bm_\bo_\bd_\be is omitted, the current value of the mask  is
-              printed.   The  -\b-S\bS  option causes the mask to be printed in sym-
-              bolic form; the default output is an octal number.   If  the  -\b-p\bp
+              a  digit,  it is interpreted as an octal number; otherwise it is
+              interpreted as a symbolic mode mask similar to that accepted  by
+              _\bc_\bh_\bm_\bo_\bd(1).   If _\bm_\bo_\bd_\be is omitted, the current value of the mask is
+              printed.  The -\b-S\bS option causes the mask to be  printed  in  sym-
+              bolic  form;  the  default output is an octal number.  If the -\b-p\bp
               option is supplied, and _\bm_\bo_\bd_\be is omitted, the output is in a form
               that may be reused as input.  The return status is 0 if the mode
-              was  successfully  changed  or if no _\bm_\bo_\bd_\be argument was supplied,
+              was successfully changed or if no _\bm_\bo_\bd_\be  argument  was  supplied,
               and false otherwise.
 
        u\bun\bna\bal\bli\bia\bas\bs [-a\ba] [_\bn_\ba_\bm_\be ...]
-              Remove each _\bn_\ba_\bm_\be from the list of defined  aliases.   If  -\b-a\b is
-              supplied,  all  alias definitions are removed.  The return value
+              Remove  each  _\bn_\ba_\bm_\be  from  the list of defined aliases.  If -\b-a\ba is
+              supplied, all alias definitions are removed.  The  return  value
               is true unless a supplied _\bn_\ba_\bm_\be is not a defined alias.
 
        u\bun\bns\bse\bet\bt [-f\bfv\bv] [-n\bn] [_\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 the -\b-v\bv option is given, each _\bn_\ba_\bm_\be refers to a shell variable,
-              and that variable is removed.  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.  If the -\b-n\b option
-              is  supplied, and _\bn_\ba_\bm_\be is a variable with the _\bn_\ba_\bm_\be_\br_\be_\bf attribute,
-              _\bn_\ba_\bm_\bwill be unset rather than the variable it  references.   -\b-n\bn
-              has  no  effect if the -\b-f\bf option is supplied.  If no options are
-              supplied, each _\bn_\ba_\bm_\be refers to a variable; if there is  no  vari-
-              able  by  that name, any function with that name is unset.  Each
-              unset variable or  function  is  removed  from  the  environment
-              passed  to subsequent commands.  If any of C\bCO\bOM\bMP\bP_\b_W\bWO\bOR\bRD\bDB\bBR\bRE\bEA\bAK\bKS\bS, R\bRA\bAN\bN-\b-
+              and  that  variable  is removed.  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.  If the -\b-n\bn option
+              is supplied, and _\bn_\ba_\bm_\be is a variable with the _\bn_\ba_\bm_\be_\br_\be_\b attribute,
+              _\bn_\ba_\bm_\b will  be unset rather than the variable it references.  -\b-n\bn
+              has no effect if the -\b-f\bf option is supplied.  If no  options  are
+              supplied,  each  _\bn_\ba_\bm_\be refers to a variable; if there is no vari-
+              able by that name, any function with that name is  unset.   Each
+              unset  variable  or  function  is  removed  from the environment
+              passed to subsequent commands.  If any of C\bCO\bOM\bMP\bP_\b_W\bWO\bOR\bRD\bDB\bBR\bRE\bEA\bAK\bKS\bS,  R\bRA\bAN\bN-\b-
               D\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 sub-
               sequently reset.  The exit status is true unless a _\bn_\ba_\bm_\be is read-
@@ -1805,16 +1816,16 @@ B\bBA\bAS\bSH\bH B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS
 
        w\bwa\bai\bit\bt [-\b-f\bfn\bn] [_\bi_\bd _\b._\b._\b.]
               Wait for each specified child process and return its termination
-              status.  Each _\bi_\bd may be a process ID or a job specification;  if
-              a  job  spec  is given, all processes in that job's pipeline are
+              status.   Each _\bi_\bd 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 _\bi_\bd is not given, all currently active child pro-
               cesses are waited for, and the return status is zero.  If the -\b-n\bn
-              option is supplied, w\bwa\bai\bit\bt waits for  any  job  to  terminate  and
-              returns  its exit status.  If the -\b-f\bf option is supplied, and job
+              option  is  supplied,  w\bwa\bai\bit\bt  waits  for any job to terminate and
+              returns its exit status.  If the -\b-f\bf option is supplied, and  job
               control is enabled, w\bwa\bai\bit\bt forces _\bi_\bd to terminate before returning
-              its  status, instead of returning when it changes status.  If _\bi_\bd
-              specifies a non-existent process or job, the  return  status  is
-              127.   Otherwise,  the  return  status is the exit status of the
+              its status, instead of returning when it changes status.  If  _\bi_\bd
+              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 df9ff20ac2e4076ac17f8a4430e72b14957c2ccb..e7e6963e6c9995cdd709a8d981c5d4c4164f049d 100644 (file)
@@ -1,6 +1,6 @@
 %!PS-Adobe-3.0
 %%Creator: groff version 1.22.3
-%%CreationDate: Mon Mar 19 09:43:23 2018
+%%CreationDate: Fri Sep  7 15:34:15 2018
 %%DocumentNeededResources: font Times-Roman
 %%+ font Times-Bold
 %%+ font Times-Italic
@@ -595,51 +595,55 @@ em directly from a completion speci\214cation with the same \215ags.)144
 (will be displayed.)2.5 E(The return v)144 489.6 Q
 (alue is true unless an in)-.25 E -.25(va)-.4 G
 (lid option is supplied, or no matches were generated.).25 E F2
-(complete)108 506.4 Q F0([)3.728 E F2(\255abcdefgjksuv)A F0 3.728(][)C
-F2<ad6f>-3.728 E F3(comp-option)3.728 E F0 3.728(][)C F2(\255DE)-3.728 E
-F0 3.728(][)C F2<ad41>-3.728 E F3(action)3.728 E F0 3.728(][)C F2<ad47>
--3.728 E F3(globpat)3.728 E F0 3.729(][)C F2<ad57>-3.729 E F3(wor)3.729
-E(dlist)-.37 E F0 3.729(][)C F2<ad46>-3.729 E F3(func-)3.729 E(tion)108
-518.4 Q F0 2.5(][)C F2<ad43>-2.5 E F3(command)2.5 E F0(])A([)144 530.4 Q
-F2<ad58>A F3(\214lterpat)2.5 E F0 2.5(][)C F2<ad50>-2.5 E F3(pr)2.5 E
-(e\214x)-.37 E F0 2.5(][)C F2<ad53>-2.5 E F3(suf)2.5 E<8c78>-.18 E F0(])
-A F3(name)2.5 E F0([)2.5 E F3(name ...)A F0(])A F2(complete \255pr)108
-542.4 Q F0([)2.5 E F2(\255DE)A F0 2.5(][)C F3(name)-2.5 E F0(...])2.5 E
-.634(Specify ho)144 554.4 R 3.134(wa)-.25 G -.18(rg)-3.134 G .634
-(uments to each).18 F F3(name)3.134 E F0 .634(should be completed.)3.134
-F .633(If the)5.634 F F2<ad70>3.133 E F0 .633
-(option is supplied, or if no)3.133 F .139(options are supplied, e)144
-566.4 R .139(xisting completion speci\214cations are printed in a w)-.15
-F .14(ay that allo)-.1 F .14(ws them to be)-.25 F .31(reused as input.)
-144 578.4 R(The)5.31 E F2<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 F3
-(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
-F3(name)2.81 E F0(s)A 1.346
-(are supplied, all completion speci\214cations.)144 590.4 R(The)6.347 E
-F2<ad44>3.847 E F0 1.347(option indicates that the remaining options)
-3.847 F .5(and actions should apply to the `)144 602.4 R(`def)-.74 E
+(complete)108 506.4 Q F0([)3.404 E F2(\255abcdefgjksuv)A F0 3.404(][)C
+F2<ad6f>-3.404 E F3(comp-option)3.404 E F0 3.404(][)C F2(\255DEI)-3.404
+E F0 3.404(][)C F2<ad41>-3.404 E F3(action)3.404 E F0 3.404(][)C F2
+<ad47>-3.404 E F3(globpat)3.404 E F0 3.404(][)C F2<ad57>-3.404 E F3(wor)
+3.404 E(dlist)-.37 E F0 3.405(][)C F2<ad46>-3.405 E F3(func-)3.405 E
+(tion)108 518.4 Q F0 2.5(][)C F2<ad43>-2.5 E F3(command)2.5 E F0(])A([)
+144 530.4 Q F2<ad58>A F3(\214lterpat)2.5 E F0 2.5(][)C F2<ad50>-2.5 E F3
+(pr)2.5 E(e\214x)-.37 E F0 2.5(][)C F2<ad53>-2.5 E F3(suf)2.5 E<8c78>
+-.18 E F0(])A F3(name)2.5 E F0([)2.5 E F3(name ...)A F0(])A F2
+(complete \255pr)108 542.4 Q F0([)2.5 E F2(\255DEI)A F0 2.5(][)C F3
+(name)-2.5 E F0(...])2.5 E .634(Specify ho)144 554.4 R 3.134(wa)-.25 G
+-.18(rg)-3.134 G .634(uments to each).18 F F3(name)3.134 E F0 .634
+(should be completed.)3.134 F .633(If the)5.634 F F2<ad70>3.133 E F0
+.633(option is supplied, or if no)3.133 F .139(options are supplied, e)
+144 566.4 R .139(xisting completion speci\214cations are printed in a w)
+-.15 F .14(ay that allo)-.1 F .14(ws them to be)-.25 F .31
+(reused as input.)144 578.4 R(The)5.31 E F2<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 F3(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 F3(name)2.81 E F0(s)A 1.207
+(are supplied, all completion speci\214cations.)144 590.4 R(The)6.207 E
+F2<ad44>3.707 E F0 1.208(option indicates that other supplied options)
+3.708 F .5(and actions should apply to the `)144 602.4 R(`def)-.74 E
 (ault')-.1 E 3('c)-.74 G .5
 (ommand completion; that is, completion attempted on)-3 F 3.455(ac)144
 614.4 S .955(ommand for which no completion has pre)-3.455 F .955
 (viously been de\214ned.)-.25 F(The)5.955 E F2<ad45>3.455 E F0 .955
-(option indicates that)3.455 F .065
-(the remaining options and actions should apply to `)144 626.4 R
-(`empty')-.74 E 2.564('c)-.74 G .064
-(ommand completion; that is, comple-)-2.564 F
-(tion attempted on a blank line.)144 638.4 Q 1.437
+(option indicates that)3.455 F .876
+(other supplied options and actions should apply to `)144 626.4 R
+(`empty')-.74 E 3.376('c)-.74 G .876(ommand completion; that is, com-)
+-3.376 F .447(pletion attempted on a blank line.)144 638.4 R(The)5.447 E
+F2<ad49>2.947 E F0 .448
+(option indicates that other supplied options and actions)2.947 F 1.335
+(should apply to completion on the inital non-assignment w)144 650.4 R
+1.334(ord on the line, or after a command)-.1 F .43(delimiter such as)
+144 662.4 R F2(;)2.93 E F0(or)2.93 E F2(|)2.93 E F0 2.93(,w)C .431
+(hich is usually command name completion.)-2.93 F .431
+(If multiple options are sup-)5.431 F .708(plied, the)144 674.4 R F2
+<ad44>3.208 E F0 .708(option tak)3.208 F .708(es precedence o)-.1 F -.15
+(ve)-.15 G(r).15 E F2<ad45>3.208 E F0 3.208(,a)C .708(nd both tak)-3.208
+F 3.208(ep)-.1 G .707(recedence o)-3.208 F -.15(ve)-.15 G(r).15 E F2
+<ad49>3.207 E F0 5.707(.I)C 3.207(fa)-5.707 G 1.007 -.15(ny o)-3.207 H
+(f).15 E F2<ad44>3.207 E F0(,)A F2<ad45>144 686.4 Q F0 2.603(,o)C(r)
+-2.603 E F2<ad49>2.603 E F0 .103(are supplied, an)2.603 F 2.603(yo)-.15
+G(ther)-2.603 E F3(name)2.603 E F0(ar)2.603 E .103
+(guments are ignored; these completions only apply to the)-.18 F
+(case speci\214ed by the option.)144 698.4 Q 1.438
 (The process of applying these completion speci\214cations when w)144
-662.4 R 1.438(ord completion is attempted is)-.1 F(described abo)144
-674.4 Q .3 -.15(ve u)-.15 H(nder).15 E F2(Pr)2.5 E
-(ogrammable Completion)-.18 E F0(.)A .556
-(Other options, if speci\214ed, ha)144 698.4 R .856 -.15(ve t)-.2 H .555
-(he follo).15 F .555(wing meanings.)-.25 F .555(The ar)5.555 F .555
-(guments to the)-.18 F F2<ad47>3.055 E F0(,)A F2<ad57>3.055 E F0 3.055
-(,a)C(nd)-3.055 E F2<ad58>3.055 E F0 .722(options \(and, if necessary)
-144 710.4 R 3.222(,t)-.65 G(he)-3.222 E F2<ad50>3.222 E F0(and)3.222 E
-F2<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 722.4 Q F2(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 5.0)72 768 Q
+722.4 R 1.437(ord completion is attempted is)-.1 F(GNU Bash 5.0)72 768 Q
 (2004 Apr 20)149.565 E(3)203.725 E 0 Cg EP
 %%Page: 4 4
 %%BeginPageSetup
 %%EndPageSetup
 /F0 10/Times-Roman@0 SF -.35(BA)72 48 S(SH_B).35 E(UIL)-.1 E 87.61
 (TINS\(1\) General)-.92 F(Commands Manual)2.5 E -.35(BA)90.11 G(SH_B).35
-E(UIL)-.1 E(TINS\(1\))-.92 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
+E(UIL)-.1 E(TINS\(1\))-.92 E(described abo)144 84 Q .3 -.15(ve u)-.15 H
+(nder).15 E/F1 10/Times-Bold@0 SF(Pr)2.5 E(ogrammable Completion)-.18 E
+F0(.)A .555(Other options, if speci\214ed, ha)144 108 R .855 -.15(ve t)
+-.2 H .555(he follo).15 F .555(wing meanings.)-.25 F .555(The ar)5.555 F
+.555(guments to the)-.18 F F1<ad47>3.056 E F0(,)A F1<ad57>3.056 E F0
+3.056(,a)C(nd)-3.056 E F1<ad58>3.056 E F0 .723
+(options \(and, if necessary)144 120 R 3.223(,t)-.65 G(he)-3.223 E F1
+<ad50>3.223 E F0(and)3.223 E F1<ad53>3.223 E F0 .722
+(options\) should be quoted to protect them from e)3.223 F(xpan-)-.15 E
+(sion before the)144 132 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 144 Q/F2
+10/Times-Italic@0 SF(comp-option)2.5 E F0(The)184 156 Q F2(comp-option)
+2.79 E F0 .291(controls se)2.791 F -.15(ve)-.25 G .291
 (ral aspects of the compspec').15 F 2.791(sb)-.55 G(eha)-2.791 E .291
 (vior be)-.2 F .291(yond the simple)-.15 F(generation of completions.)
-184 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)
+184 168 Q F2(comp-option)5 E F0(may be one of:)2.5 E F1(bashdefault)184
+180 Q F0 .281(Perform the rest of the def)224 192 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')224 156
-R 5.376(sd)-.55 G(ef)-5.376 E 2.875
+(matches.)224 204 Q F1(default)184 216 Q F0 2.875(Use readline')224 216
+R 5.375(sd)-.55 G(ef)-5.375 E 2.876
 (ault \214lename completion if the compspec generates no)-.1 F(matches.)
-224 168 Q F1(dir)184 180 Q(names)-.15 E F0(Perform directory name compl\
-etion 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 compspec generates \
-\214lenames, so it can perform an).7 F 2.637<798c>-.15 G(le-)-2.637 E
-.134(name\255speci\214c processing \(lik)224 228 R 2.634(ea)-.1 G .134
+224 228 Q F1(dir)184 240 Q(names)-.15 E F0(Perform directory name compl\
+etion if the compspec generates no matches.)224 252 Q F1(\214lenames)184
+264 Q F0 -.7(Te)224 276 S .137(ll readline that the compspec generates \
+\214lenames, so it can perform an).7 F 2.636<798c>-.15 G(le-)-2.636 E
+.134(name\255speci\214c processing \(lik)224 288 R 2.634(ea)-.1 G .134
 (dding a slash to directory names, quoting spe-)-2.634 F .45
-(cial characters, or suppressing trailing spaces\).)224 240 R .45
-(Intended to be used with shell)5.45 F(functions.)224 252 Q F1(noquote)
-184 264 Q F0 -.7(Te)224 264 S .814
+(cial characters, or suppressing trailing spaces\).)224 300 R .45
+(Intended to be used with shell)5.45 F(functions.)224 312 Q F1(noquote)
+184 324 Q F0 -.7(Te)224 324 S .814
 (ll readline not to quote the completed w).7 F .814(ords if the)-.1 F
-3.314(ya)-.15 G .814(re \214lenames \(quoting)-3.314 F
-(\214lenames is the def)224 276 Q(ault\).)-.1 E F1(nosort)184 288 Q F0
--.7(Te)224 288 S(ll readline not to sort the list of possible completio\
-ns alphabetically).7 E(.)-.65 E F1(nospace)184 300 Q F0 -.7(Te)224 300 S
+3.314(ya)-.15 G .815(re \214lenames \(quoting)-3.314 F
+(\214lenames is the def)224 336 Q(ault\).)-.1 E F1(nosort)184 348 Q F0
+-.7(Te)224 348 S(ll readline not to sort the list of possible completio\
+ns alphabetically).7 E(.)-.65 E F1(nospace)184 360 Q F0 -.7(Te)224 360 S
 .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 312 Q F1
-(plusdirs)184 324 Q F0 1.985(After an)224 324 R 4.485(ym)-.15 G 1.985
+F .22(ords completed at the end)-.1 F(of the line.)224 372 Q F1
+(plusdirs)184 384 Q F0 1.985(After an)224 384 R 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 336 R 3.084(ym)-.15 G .584
-(atches are added to the results of the other)-3.084 F(actions.)224 348
-Q F1<ad41>144 360 Q F2(action)2.5 E F0(The)184 372 Q F2(action)2.5 E F0
+.584(completion is attempted and an)224 396 R 3.084(ym)-.15 G .584
+(atches are added to the results of the other)-3.084 F(actions.)224 408
+Q F1<ad41>144 420 Q F2(action)2.5 E F0(The)184 432 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
-384 Q F0(Alias names.)224 384 Q(May also be speci\214ed as)5 E F1<ad61>
-2.5 E F0(.)A F1(arrayv)184 396 Q(ar)-.1 E F0(Array v)224 408 Q
-(ariable names.)-.25 E F1(binding)184 420 Q(Readline)224 420 Q F0 -.1
-(ke)2.5 G 2.5(yb)-.05 G(inding names.)-2.5 E F1 -.2(bu)184 432 S(iltin)
-.2 E F0(Names of shell b)224 432 Q(uiltin commands.)-.2 E
-(May also be speci\214ed as)5 E F1<ad62>2.5 E F0(.)A F1(command)184 444
-Q F0(Command names.)224 456 Q(May also be speci\214ed as)5 E F1<ad63>2.5
-E F0(.)A F1(dir)184 468 Q(ectory)-.18 E F0(Directory names.)224 480 Q
-(May also be speci\214ed as)5 E F1<ad64>2.5 E F0(.)A F1(disabled)184 492
-Q F0(Names of disabled shell b)224 504 Q(uiltins.)-.2 E F1(enabled)184
-516 Q F0(Names of enabled shell b)224 516 Q(uiltins.)-.2 E F1(export)184
-528 Q F0(Names of e)224 528 Q(xported shell v)-.15 E 2.5(ariables. May)
+444 Q F0(Alias names.)224 444 Q(May also be speci\214ed as)5 E F1<ad61>
+2.5 E F0(.)A F1(arrayv)184 456 Q(ar)-.1 E F0(Array v)224 468 Q
+(ariable names.)-.25 E F1(binding)184 480 Q(Readline)224 480 Q F0 -.1
+(ke)2.5 G 2.5(yb)-.05 G(inding names.)-2.5 E F1 -.2(bu)184 492 S(iltin)
+.2 E F0(Names of shell b)224 492 Q(uiltin commands.)-.2 E
+(May also be speci\214ed as)5 E F1<ad62>2.5 E F0(.)A F1(command)184 504
+Q F0(Command names.)224 516 Q(May also be speci\214ed as)5 E F1<ad63>2.5
+E F0(.)A F1(dir)184 528 Q(ectory)-.18 E F0(Directory names.)224 540 Q
+(May also be speci\214ed as)5 E F1<ad64>2.5 E F0(.)A F1(disabled)184 552
+Q F0(Names of disabled shell b)224 564 Q(uiltins.)-.2 E F1(enabled)184
+576 Q F0(Names of enabled shell b)224 576 Q(uiltins.)-.2 E F1(export)184
+588 Q F0(Names of e)224 588 Q(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
-540 Q F0(File names.)224 540 Q(May also be speci\214ed as)5 E F1<ad66>
-2.5 E F0(.)A F1(function)184 552 Q F0(Names of shell functions.)224 564
-Q F1(gr)184 576 Q(oup)-.18 E F0(Group names.)224 576 Q
+600 Q F0(File names.)224 600 Q(May also be speci\214ed as)5 E F1<ad66>
+2.5 E F0(.)A F1(function)184 612 Q F0(Names of shell functions.)224 624
+Q F1(gr)184 636 Q(oup)-.18 E F0(Group names.)224 636 Q
 (May also be speci\214ed as)5 E F1<ad67>2.5 E F0(.)A F1(helptopic)184
-588 Q F0(Help topics as accepted by the)224 600 Q F1(help)2.5 E F0 -.2
-(bu)2.5 G(iltin.).2 E F1(hostname)184 612 Q F0(Hostnames, as tak)224 624
+648 Q F0(Help topics as accepted by the)224 660 Q F1(help)2.5 E F0 -.2
+(bu)2.5 G(iltin.).2 E F1(hostname)184 672 Q F0(Hostnames, as tak)224 684
 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 636 Q F0
-(Job names, if job control is acti)224 636 Q -.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 648 S
-(yw).1 E(ord)-.1 E F0(Shell reserv)224 660 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
-672 Q F0(Names of running jobs, if job control is acti)224 672 Q -.15
-(ve)-.25 G(.).15 E F1(ser)184 684 Q(vice)-.1 E F0(Service names.)224 684
-Q(May also be speci\214ed as)5 E F1<ad73>2.5 E F0(.)A F1(setopt)184 696
-Q F0 -1.11(Va)224 696 S(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 708 Q F0(Shell option names as accepted by the)224 708 Q F1
-(shopt)2.5 E F0 -.2(bu)2.5 G(iltin.).2 E(GNU Bash 5.0)72 768 Q
-(2004 Apr 20)149.565 E(4)203.725 E 0 Cg EP
+(HOSTFILE)2.5 E F0(shell v)2.25 E(ariable.)-.25 E F1(job)184 696 Q F0
+(Job names, if job control is acti)224 696 Q -.15(ve)-.25 G 5(.M).15 G
+(ay also be speci\214ed as)-5 E F1<ad6a>2.5 E F0(.)A(GNU Bash 5.0)72 768
+Q(2004 Apr 20)149.565 E(4)203.725 E 0 Cg EP
 %%Page: 5 5
 %%BeginPageSetup
 BP
 %%EndPageSetup
 /F0 10/Times-Roman@0 SF -.35(BA)72 48 S(SH_B).35 E(UIL)-.1 E 87.61
 (TINS\(1\) General)-.92 F(Commands Manual)2.5 E -.35(BA)90.11 G(SH_B).35
-E(UIL)-.1 E(TINS\(1\))-.92 E/F1 10/Times-Bold@0 SF(signal)184 84 Q F0
-(Signal names.)224 84 Q F1(stopped)184 96 Q F0
-(Names of stopped jobs, if job control is acti)224 96 Q -.15(ve)-.25 G
-(.).15 E F1(user)184 108 Q F0(User names.)224 108 Q
-(May also be speci\214ed as)5 E F1<ad75>2.5 E F0(.)A F1 -.1(va)184 120 S
-(riable).1 E F0(Names of all shell v)224 120 Q 2.5(ariables. May)-.25 F
-(also be speci\214ed as)2.5 E F1<ad76>2.5 E F0(.)A F1<ad43>144 132 Q/F2
-10/Times-Italic@0 SF(command)2.5 E(command)184 144 Q F0 1.056(is e)3.556
-F -.15(xe)-.15 G 1.056(cuted in a subshell en).15 F 1.056
+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(Shell reserv)224 96 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 108 Q
+F0(Names of running jobs, if job control is acti)224 108 Q -.15(ve)-.25
+G(.).15 E F1(ser)184 120 Q(vice)-.1 E F0(Service names.)224 120 Q
+(May also be speci\214ed as)5 E F1<ad73>2.5 E F0(.)A F1(setopt)184 132 Q
+F0 -1.11(Va)224 132 S(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 144 Q F0(Shell option names as accepted by the)224 144 Q F1
+(shopt)2.5 E F0 -.2(bu)2.5 G(iltin.).2 E F1(signal)184 156 Q F0
+(Signal names.)224 156 Q F1(stopped)184 168 Q F0
+(Names of stopped jobs, if job control is acti)224 168 Q -.15(ve)-.25 G
+(.).15 E F1(user)184 180 Q F0(User names.)224 180 Q
+(May also be speci\214ed as)5 E F1<ad75>2.5 E F0(.)A F1 -.1(va)184 192 S
+(riable).1 E F0(Names of all shell v)224 192 Q 2.5(ariables. May)-.25 F
+(also be speci\214ed as)2.5 E F1<ad76>2.5 E F0(.)A F1<ad43>144 204 Q/F2
+10/Times-Italic@0 SF(command)2.5 E(command)184 216 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 156 Q F1<ad46>144 168 Q F2(function)2.5 E F0 .113
-(The shell function)184 180 R F2(function)2.614 E F0 .114(is e)2.614 F
+184 228 Q F1<ad46>144 240 Q F2(function)2.5 E F0 .114
+(The shell function)184 252 R F2(function)2.614 E F0 .114(is e)2.614 F
 -.15(xe)-.15 G .114(cuted in the current shell en).15 F 2.614
-(vironment. When)-.4 F .114(the func-)2.614 F .817(tion is e)184 192 R
--.15(xe)-.15 G .817(cuted, the \214rst ar).15 F .817(gument \()-.18 F F1
-($1)A F0 3.316(\)i)C 3.316(st)-3.316 G .816
+(vironment. When)-.4 F .113(the func-)2.613 F .816(tion is e)184 264 R
+-.15(xe)-.15 G .816(cuted, the \214rst ar).15 F .816(gument \()-.18 F F1
+($1)A F0 3.316(\)i)C 3.316(st)-3.316 G .817
 (he name of the command whose ar)-3.316 F(guments)-.18 E 1.407
-(are being completed, the second ar)184 204 R 1.407(gument \()-.18 F F1
+(are being completed, the second ar)184 276 R 1.407(gument \()-.18 F F1
 ($2)A F0 3.907(\)i)C 3.907(st)-3.907 G 1.407(he w)-3.907 F 1.407
-(ord being completed, and the)-.1 F .104(third ar)184 216 R .104
-(gument \()-.18 F F1($3)A F0 2.604(\)i)C 2.604(st)-2.604 G .104(he w)
--2.604 F .104(ord preceding the w)-.1 F .103
-(ord being completed on the current com-)-.1 F .101(mand line.)184 228 R
-.101(When it \214nishes, the possible completions are retrie)5.101 F
--.15(ve)-.25 G 2.602(df).15 G .102(rom the v)-2.602 F .102(alue of the)
--.25 F/F3 9/Times-Bold@0 SF(COMPREPL)184 240 Q(Y)-.828 E F0(array v)2.25
-E(ariable.)-.25 E F1<ad47>144 252 Q F2(globpat)2.5 E F0 1.008
-(The pathname e)184 264 R 1.008(xpansion pattern)-.15 F F2(globpat)3.507
-E F0 1.007(is e)3.507 F 1.007(xpanded to generate the possible comple-)
--.15 F(tions.)184 276 Q F1<ad50>144 288 Q F2(pr)2.5 E(e\214x)-.37 E(pr)
-184 300 Q(e\214x)-.37 E F0 .534(is added at the be)3.034 F .534
+(ord being completed, and the)-.1 F .103(third ar)184 288 R .103
+(gument \()-.18 F F1($3)A F0 2.603(\)i)C 2.603(st)-2.603 G .103(he w)
+-2.603 F .104(ord preceding the w)-.1 F .104
+(ord being completed on the current com-)-.1 F .102(mand line.)184 300 R
+.102(When it \214nishes, the possible completions are retrie)5.102 F
+-.15(ve)-.25 G 2.601(df).15 G .101(rom the v)-2.601 F .101(alue of the)
+-.25 F/F3 9/Times-Bold@0 SF(COMPREPL)184 312 Q(Y)-.828 E F0(array v)2.25
+E(ariable.)-.25 E F1<ad47>144 324 Q F2(globpat)2.5 E F0 1.007
+(The pathname e)184 336 R 1.007(xpansion pattern)-.15 F F2(globpat)3.507
+E F0 1.007(is e)3.507 F 1.008(xpanded to generate the possible comple-)
+-.15 F(tions.)184 348 Q F1<ad50>144 360 Q F2(pr)2.5 E(e\214x)-.37 E(pr)
+184 372 Q(e\214x)-.37 E F0 .535(is added at the be)3.035 F .534
 (ginning of each possible completion after all other options ha)-.15 F
--.15(ve)-.2 G(been applied.)184 312 Q F1<ad53>144 324 Q F2(suf)2.5 E
-<8c78>-.18 E(suf)184 324 Q<8c78>-.18 E F0
+-.15(ve)-.2 G(been applied.)184 384 Q F1<ad53>144 396 Q F2(suf)2.5 E
+<8c78>-.18 E(suf)184 396 Q<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 F1<ad57>144 336 Q F2(wor)2.5 E
-(dlist)-.37 E F0(The)184 348 Q F2(wor)3.64 E(dlist)-.37 E F0 1.14
-(is split using the characters in the)3.64 F F3(IFS)3.64 E F0 1.139
-(special v)3.39 F 1.139(ariable as delimiters, and)-.25 F .98
-(each resultant w)184 360 R .98(ord is e)-.1 F 3.481(xpanded. Shell)-.15
-F .981(quoting is honored within)3.481 F F2(wor)3.481 E(dlist)-.37 E F0
-3.481(,i)C 3.481(no)-3.481 G .981(rder to)-3.481 F(pro)184 372 Q .766
-(vide a mechanism for the w)-.15 F .765
+E .3 -.15(ve b)-.2 H(een applied.).15 E F1<ad57>144 408 Q F2(wor)2.5 E
+(dlist)-.37 E F0(The)184 420 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 .981
+(each resultant w)184 432 R .981(ord is e)-.1 F 3.481(xpanded. Shell)
+-.15 F .981(quoting is honored within)3.481 F F2(wor)3.481 E(dlist)-.37
+E F0 3.48(,i)C 3.48(no)-3.48 G .98(rder to)-3.48 F(pro)184 444 Q .765
+(vide a mechanism for the w)-.15 F .766
 (ords to contain shell metacharacters or characters in the)-.1 F -.25
-(va)184 384 S 1.964(lue of).25 F F3(IFS)4.464 E/F4 9/Times-Roman@0 SF(.)
+(va)184 456 S 1.965(lue of).25 F F3(IFS)4.465 E/F4 9/Times-Roman@0 SF(.)
 A F0 1.964
 (The possible completions are the members of the resultant list which)
-6.464 F(match the w)184 396 Q(ord being completed.)-.1 E F1<ad58>144 408
-Q F2(\214lterpat)2.5 E(\214lterpat)184 420 Q F0 .456
-(is a pattern as used for pathname e)2.956 F 2.956(xpansion. It)-.15 F
-.455(is applied to the list of possible)2.956 F 1.596
-(completions generated by the preceding options and ar)184 432 R 1.596
-(guments, and each completion)-.18 F(matching)184 444 Q 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 456 Q 2.5(yc)-.15 G
+6.465 F(match the w)184 468 Q(ord being completed.)-.1 E F1<ad58>144 480
+Q F2(\214lterpat)2.5 E(\214lterpat)184 492 Q F0 .455
+(is a pattern as used for pathname e)2.955 F 2.956(xpansion. It)-.15 F
+.456(is applied to the list of possible)2.956 F 1.596
+(completions generated by the preceding options and ar)184 504 R 1.596
+(guments, and each completion)-.18 F(matching)184 516 Q F2(\214lterpat)
+3.204 E F0 .704(is remo)3.204 F -.15(ve)-.15 G 3.204(df).15 G .704
+(rom the list.)-3.204 F 3.204(Al)5.704 G(eading)-3.204 E F1(!)3.204 E F0
+(in)3.204 E F2(\214lterpat)3.205 E F0(ne)3.205 E -.05(ga)-.15 G .705
+(tes the pattern;).05 F(in this case, an)184 528 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 .466(The return v)144 472.8 R .466
+-.15(ve)-.15 G(d.).15 E .467(The return v)144 544.8 R .467
 (alue is true unless an in)-.25 F -.25(va)-.4 G .466
-(lid option is supplied, an option other than).25 F F1<ad70>2.967 E F0
-(or)2.967 E F1<ad72>2.967 E F0 .467(is sup-)2.967 F 1.362
-(plied without a)144 484.8 R F2(name)3.862 E F0(ar)3.862 E 1.361
-(gument, an attempt is made to remo)-.18 F 1.661 -.15(ve a c)-.15 H
-1.361(ompletion speci\214cation for a).15 F F2(name)144 496.8 Q F0
+(lid option is supplied, an option other than).25 F F1<ad70>2.966 E F0
+(or)2.966 E F1<ad72>2.966 E F0 .466(is sup-)2.966 F 1.361
+(plied without a)144 556.8 R 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 568.8 Q F0
 (for which no speci\214cation e)2.5 E
 (xists, or an error occurs adding a completion speci\214cation.)-.15 E
-F1(compopt)108 513.6 Q F0([)2.5 E F1<ad6f>A F2(option)2.5 E F0 2.5(][)C
-F1(\255DE)-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 525.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(cuting).15 E .726
-(completion if no)144 537.6 R F2(name)3.226 E F0 3.226(sa)C .726
-(re supplied.)-3.226 F .725(If no)5.725 F F2(option)3.225 E F0 3.225(sa)
-C .725(re gi)-3.225 F -.15(ve)-.25 G .725
-(n, display the completion options for).15 F(each)144 549.6 Q F2(name)
-3.223 E F0 .723(or the current completion.)3.223 F .724(The possible v)
+F1(compopt)108 585.6 Q F0([)2.5 E F1<ad6f>A F2(option)2.5 E F0 2.5(][)C
+F1(\255DEI)-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 597.6
+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(cuting).15 E .725
+(completion if no)144 609.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 621.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 .724(alid for the)-.25 F F1(com-)3.224 E(plete)144 561.6 Q F0 -.2(bu)
-2.798 G .298(iltin described abo).2 F -.15(ve)-.15 G 5.297(.T).15 G(he)
--5.297 E F1<ad44>2.797 E F0 .297
-(option indicates that the remaining options should apply to)2.797 F
-1.227(the `)144 573.6 R(`def)-.74 E(ault')-.1 E 3.727('c)-.74 G 1.228(o\
+F .723(alid for the)-.25 F F1(com-)3.223 E(plete)144 633.6 Q F0 -.2(bu)
+2.677 G .177(iltin described abo).2 F -.15(ve)-.15 G 5.178(.T).15 G(he)
+-5.178 E F1<ad44>2.678 E F0 .178
+(option indicates that other supplied options should apply to)2.678 F
+1.228(the `)144 645.6 R(`def)-.74 E(ault')-.1 E 3.728('c)-.74 G 1.228(o\
 mmand completion; that is, completion attempted on a command for which \
-no)-3.727 F 2.178(completion has pre)144 585.6 R 2.178
-(viously been de\214ned.)-.25 F(The)7.178 E F1<ad45>4.678 E F0 2.177
-(option indicates that the remaining options)4.677 F(should apply to `)
-144 597.6 Q(`empty')-.74 E 2.5('c)-.74 G
-(ommand completion; that is, completion attempted on a blank line.)-2.5
-E 1.387(The return v)144 621.6 R 1.387(alue is true unless an in)-.25 F
--.25(va)-.4 G 1.388
+no)-3.728 F 2.038(completion has pre)144 657.6 R 2.038
+(viously been de\214ned.)-.25 F(The)7.038 E F1<ad45>4.538 E F0 2.039
+(option indicates that other supplied options)4.538 F 1.539
+(should apply to `)144 669.6 R(`empty')-.74 E 4.039('c)-.74 G 1.538
+(ommand completion; that is, completion attempted on a blank line.)
+-4.039 F(The)144 681.6 Q F1<ad49>3.205 E F0 .705(option indicates that \
+other supplied options should apply to completion on the inital non-)
+3.205 F .868(assignment w)144 693.6 R .868
+(ord on the line, or after a command delimiter such as)-.1 F F1(;)3.368
+E F0(or)3.368 E F1(|)3.368 E F0 3.367(,w)C .867(hich is usually com-)
+-3.367 F(mand name completion.)144 705.6 Q 1.387(The return v)144 729.6
+R 1.387(alue is true unless an in)-.25 F -.25(va)-.4 G 1.388
 (lid option is supplied, an attempt is made to modify the).25 F
-(options for a)144 633.6 Q F2(name)2.5 E F0
-(for which no completion speci\214cation e)2.5 E
-(xists, or an output error occurs.)-.15 E F1(continue)108 650.4 Q F0([)
-2.5 E F2(n)A F0(])A 1.754(Resume the ne)144 662.4 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 674.4 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/F5 10
-/Symbol SF<b3>3.709 E F0 3.709(1. If)3.709 F F2(n)4.069 E F0 1.209
-(is greater than the number of enclosing)3.949 F .514
-(loops, the last enclosing loop \(the `)144 686.4 R(`top-le)-.74 E -.15
-(ve)-.25 G(l').15 E 3.014('l)-.74 G .514(oop\) is resumed.)-3.014 F .513
-(The return v)5.513 F .513(alue is 0 unless)-.25 F F2(n)3.013 E F0(is)
-3.013 E(not greater than or equal to 1.)144 698.4 Q(GNU Bash 5.0)72 768
-Q(2004 Apr 20)149.565 E(5)203.725 E 0 Cg EP
+(GNU Bash 5.0)72 768 Q(2004 Apr 20)149.565 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 87.61
 (TINS\(1\) General)-.92 F(Commands Manual)2.5 E -.35(BA)90.11 G(SH_B).35
-E(UIL)-.1 E(TINS\(1\))-.92 E/F1 10/Times-Bold@0 SF(declar)108 84 Q(e)
--.18 E F0([)2.5 E F1(\255aAfFgilnrtux)A F0 2.5(][)C F1<ad70>-2.5 E F0
-2.5(][)C/F2 10/Times-Italic@0 SF(name)-2.5 E F0([=)A F2(value)A F0 2.5
-(].)C(..])-2.5 E F1(typeset)108 96 Q F0([)2.5 E F1(\255aAfFgilnrtux)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 108 R 1.264(ariables and/or gi)
--.25 F 1.564 -.15(ve t)-.25 H 1.264(hem attrib).15 F 3.765(utes. If)-.2
-F(no)3.765 E F2(name)3.765 E F0 3.765(sa)C 1.265(re gi)-3.765 F -.15(ve)
--.25 G 3.765(nt).15 G 1.265(hen display the v)-3.765 F 1.265(alues of)
--.25 F -.25(va)144 120 S 3.483(riables. The).25 F F1<ad70>3.483 E F0
-.983(option will display the attrib)3.483 F .983(utes and v)-.2 F .982
-(alues of each)-.25 F F2(name)3.482 E F0 5.982(.W).18 G(hen)-5.982 E F1
-<ad70>3.482 E F0 .982(is used)3.482 F(with)144 132 Q F2(name)2.774 E F0
-(ar)2.774 E .274(guments, additional options, other than)-.18 F F1<ad66>
-2.775 E F0(and)2.775 E F1<ad46>2.775 E F0 2.775(,a)C .275(re ignored.)
--2.775 F(When)5.275 E F1<ad70>2.775 E F0 .275(is supplied)2.775 F
-(without)144 144 Q F2(name)4.814 E F0(ar)4.814 E 2.314
+E(UIL)-.1 E(TINS\(1\))-.92 E(options for a)144 84 Q/F1 10/Times-Italic@0
+SF(name)2.5 E F0(for which no completion speci\214cation e)2.5 E
+(xists, or an output error occurs.)-.15 E/F2 10/Times-Bold@0 SF
+(continue)108 100.8 Q F0([)2.5 E F1(n)A F0(])A 1.754(Resume the ne)144
+112.8 R 1.754(xt iteration of the enclosing)-.15 F F2 -.25(fo)4.254 G(r)
+.25 E F0(,)A F2(while)4.254 E F0(,)A F2(until)4.254 E F0 4.254(,o)C(r)
+-4.254 E F2(select)4.254 E F0 4.253(loop. If)4.254 F F1(n)4.613 E F0
+1.753(is speci\214ed,)4.493 F 1.208(resume at the)144 124.8 R F1(n)3.709
+E F0 1.209(th enclosing loop.)B F1(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 F1(n)4.069 E F0 1.209
+(is greater than the number of enclosing)3.949 F .514
+(loops, the last enclosing loop \(the `)144 136.8 R(`top-le)-.74 E -.15
+(ve)-.25 G(l').15 E 3.014('l)-.74 G .514(oop\) is resumed.)-3.014 F .513
+(The return v)5.513 F .513(alue is 0 unless)-.25 F F1(n)3.013 E F0(is)
+3.013 E(not greater than or equal to 1.)144 148.8 Q F2(declar)108 165.6
+Q(e)-.18 E F0([)2.5 E F2(\255aAfFgilnrtux)A F0 2.5(][)C F2<ad70>-2.5 E
+F0 2.5(][)C F1(name)-2.5 E F0([=)A F1(value)A F0 2.5(].)C(..])-2.5 E F2
+(typeset)108 177.6 Q F0([)2.5 E F2(\255aAfFgilnrtux)A F0 2.5(][)C F2
+<ad70>-2.5 E F0 2.5(][)C F1(name)-2.5 E F0([=)A F1(value)A F0 2.5(].)C
+(..])-2.5 E 1.264(Declare v)144 189.6 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 F1(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 201.6 S 3.483(riables. The).25 F F2<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 F1(name)3.482 E F0 5.982(.W).18 G(hen)-5.982 E F2
+<ad70>3.482 E F0 .982(is used)3.482 F(with)144 213.6 Q F1(name)2.774 E
+F0(ar)2.774 E .274(guments, additional options, other than)-.18 F F2
+<ad66>2.775 E F0(and)2.775 E F2<ad46>2.775 E F0 2.775(,a)C .275
+(re ignored.)-2.775 F(When)5.275 E F2<ad70>2.775 E F0 .275(is supplied)
+2.775 F(without)144 225.6 Q F1(name)4.814 E F0(ar)4.814 E 2.314
 (guments, it will display the attrib)-.18 F 2.314(utes and v)-.2 F 2.313
 (alues of all v)-.25 F 2.313(ariables ha)-.25 F 2.313(ving the)-.2 F
-(attrib)144 156 Q 1.181(utes speci\214ed by the additional options.)-.2
-F 1.182(If no other options are supplied with)6.181 F F1<ad70>3.682 E F0
-(,)A F1(declar)3.682 E(e)-.18 E F0 .62(will display the attrib)144 168 R
-.62(utes and v)-.2 F .62(alues of all shell v)-.25 F 3.12(ariables. The)
--.25 F F1<ad66>3.12 E F0 .62(option will restrict the display)3.12 F
-1.29(to shell functions.)144 180 R(The)6.29 E F1<ad46>3.79 E F0 1.291(o\
-ption inhibits the display of function de\214nitions; only the function)
-3.791 F .948(name and attrib)144 192 R .948(utes are printed.)-.2 F .948
-(If the)5.948 F F1(extdeb)3.448 E(ug)-.2 E F0 .948
-(shell option is enabled using)3.448 F F1(shopt)3.448 E F0 3.448(,t)C
+(attrib)144 237.6 Q 1.181(utes speci\214ed by the additional options.)
+-.2 F 1.182(If no other options are supplied with)6.181 F F2<ad70>3.682
+E F0(,)A F2(declar)3.682 E(e)-.18 E F0 .62(will display the attrib)144
+249.6 R .62(utes and v)-.2 F .62(alues of all shell v)-.25 F 3.12
+(ariables. The)-.25 F F2<ad66>3.12 E F0 .62
+(option will restrict the display)3.12 F 1.29(to shell functions.)144
+261.6 R(The)6.29 E F2<ad46>3.79 E F0 1.291(option inhibits the display \
+of function de\214nitions; only the function)3.791 F .948
+(name and attrib)144 273.6 R .948(utes are printed.)-.2 F .948(If the)
+5.948 F F2(extdeb)3.448 E(ug)-.2 E F0 .948
+(shell option is enabled using)3.448 F F2(shopt)3.448 E F0 3.448(,t)C
 .948(he source)-3.448 F 1.69(\214le name and line number where each)144
-204 R F2(name)4.19 E F0 1.69(is de\214ned are displayed as well.)4.19 F
-(The)6.69 E F1<ad46>4.19 E F0(option)4.19 E(implies)144 216 Q F1<ad66>
-3.892 E F0 6.392(.T)C(he)-6.392 E F1<ad67>3.892 E F0 1.391
+285.6 R F1(name)4.19 E F0 1.69(is de\214ned are displayed as well.)4.19
+F(The)6.69 E F2<ad46>4.19 E F0(option)4.19 E(implies)144 297.6 Q F2
+<ad66>3.892 E F0 6.392(.T)C(he)-6.392 E F2<ad67>3.892 E F0 1.391
 (option forces v)3.892 F 1.391
 (ariables to be created or modi\214ed at the global scope, e)-.25 F -.15
-(ve)-.25 G(n).15 E(when)144 228 Q F1(declar)4.382 E(e)-.18 E F0 1.882
+(ve)-.25 G(n).15 E(when)144 309.6 Q F2(declar)4.382 E(e)-.18 E F0 1.882
 (is e)4.382 F -.15(xe)-.15 G 1.882(cuted in a shell function.).15 F
 1.883(It is ignored in all other cases.)6.882 F 1.883(The follo)6.883 F
-(wing)-.25 E .794(options can be used to restrict output to v)144 240 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 252 Q(utes:)-.2 E F1
-<ad61>144 264 Q F0(Each)180 264 Q F2(name)2.5 E F0(is an inde)2.5 E -.15
-(xe)-.15 G 2.5(da).15 G(rray v)-2.5 E(ariable \(see)-.25 E F1(Arrays)2.5
-E F0(abo)2.5 E -.15(ve)-.15 G(\).).15 E F1<ad41>144 276 Q F0(Each)180
-276 Q F2(name)2.5 E F0(is an associati)2.5 E .3 -.15(ve a)-.25 H(rray v)
-.15 E(ariable \(see)-.25 E F1(Arrays)2.5 E F0(abo)2.5 E -.15(ve)-.15 G
-(\).).15 E F1<ad66>144 288 Q F0(Use function names only)180 288 Q(.)-.65
-E F1<ad69>144 300 Q F0 .557(The v)180 300 R .558
+(wing)-.25 E .794(options can be used to restrict output to v)144 321.6
+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 333.6 Q(utes:)-.2 E
+F2<ad61>144 345.6 Q F0(Each)180 345.6 Q F1(name)2.5 E F0(is an inde)2.5
+E -.15(xe)-.15 G 2.5(da).15 G(rray v)-2.5 E(ariable \(see)-.25 E F2
+(Arrays)2.5 E F0(abo)2.5 E -.15(ve)-.15 G(\).).15 E F2<ad41>144 357.6 Q
+F0(Each)180 357.6 Q F1(name)2.5 E F0(is an associati)2.5 E .3 -.15(ve a)
+-.25 H(rray v).15 E(ariable \(see)-.25 E F2(Arrays)2.5 E F0(abo)2.5 E
+-.15(ve)-.15 G(\).).15 E F2<ad66>144 369.6 Q F0(Use function names only)
+180 369.6 Q(.)-.65 E F2<ad69>144 381.6 Q F0 .557(The v)180 381.6 R .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 312 Q F0(abo)2.25
-E -.15(ve)-.15 G 2.5(\)i).15 G 2.5(sp)-2.5 G(erformed when the v)-2.5 E
-(ariable is assigned a v)-.25 E(alue.)-.25 E F1<ad6c>144 324 Q F0 .91
-(When the v)180 324 R .909(ariable is assigned a v)-.25 F .909
+(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 393.6 Q F0(abo)
+2.25 E -.15(ve)-.15 G 2.5(\)i).15 G 2.5(sp)-2.5 G(erformed when the v)
+-2.5 E(ariable is assigned a v)-.25 E(alue.)-.25 E F2<ad6c>144 405.6 Q
+F0 .91(When the v)180 405.6 R .909(ariable is assigned a v)-.25 F .909
 (alue, all upper)-.25 F .909(-case characters are con)-.2 F -.15(ve)-.4
-G .909(rted to lo).15 F(wer)-.25 E(-)-.2 E 2.5(case. The)180 336 R
-(upper)2.5 E(-case attrib)-.2 E(ute is disabled.)-.2 E F1<ad6e>144 348 Q
-F0(Gi)180 348 Q 1.619 -.15(ve e)-.25 H(ach).15 E F2(name)3.819 E F0(the)
-3.819 E F2(namer)3.819 E(ef)-.37 E F0(attrib)3.819 E 1.319
+G .909(rted to lo).15 F(wer)-.25 E(-)-.2 E 2.5(case. The)180 417.6 R
+(upper)2.5 E(-case attrib)-.2 E(ute is disabled.)-.2 E F2<ad6e>144 429.6
+Q F0(Gi)180 429.6 Q 1.619 -.15(ve e)-.25 H(ach).15 E F1(name)3.819 E F0
+(the)3.819 E F1(namer)3.819 E(ef)-.37 E F0(attrib)3.819 E 1.319
 (ute, making it a name reference to another v)-.2 F(ariable.)-.25 E
-1.519(That other v)180 360 R 1.519(ariable is de\214ned by the v)-.25 F
-1.518(alue of)-.25 F F2(name)4.018 E F0 6.518(.A)C 1.518
-(ll references, assignments, and)-6.518 F(attrib)180 372 Q .226
-(ute modi\214cations to)-.2 F F2(name)2.726 E F0 2.726(,e)C .226
-(xcept those using or changing the)-2.876 F F1<ad6e>2.726 E F0(attrib)
-2.726 E .227(ute itself, are)-.2 F .809(performed on the v)180 384 R
-.809(ariable referenced by)-.25 F F2(name)3.308 E F0 1.908 -.55('s v)D
+1.519(That other v)180 441.6 R 1.519(ariable is de\214ned by the v)-.25
+F 1.518(alue of)-.25 F F1(name)4.018 E F0 6.518(.A)C 1.518
+(ll references, assignments, and)-6.518 F(attrib)180 453.6 Q .226
+(ute modi\214cations to)-.2 F F1(name)2.726 E F0 2.726(,e)C .226
+(xcept those using or changing the)-2.876 F F2<ad6e>2.726 E F0(attrib)
+2.726 E .227(ute itself, are)-.2 F .809(performed on the v)180 465.6 R
+.809(ariable referenced by)-.25 F F1(name)3.308 E F0 1.908 -.55('s v)D
 3.308(alue. The).3 F .808(nameref attrib)3.308 F .808(ute cannot be)-.2
-F(applied to array v)180 396 Q(ariables.)-.25 E F1<ad72>144 408 Q F0
-(Mak)180 408 Q(e)-.1 E F2(name)5.046 E F0 5.046(sr)C(eadonly)-5.046 E
+F(applied to array v)180 477.6 Q(ariables.)-.25 E F2<ad72>144 489.6 Q F0
+(Mak)180 489.6 Q(e)-.1 E F1(name)5.046 E F0 5.046(sr)C(eadonly)-5.046 E
 7.546(.T)-.65 G 2.546(hese names cannot then be assigned v)-7.546 F
-2.547(alues by subsequent)-.25 F(assignment statements or unset.)180 420
-Q F1<ad74>144 432 Q F0(Gi)180 432 Q .73 -.15(ve e)-.25 H(ach).15 E F2
-(name)2.93 E F0(the)2.929 E F2(tr)2.929 E(ace)-.15 E F0(attrib)2.929 E
-2.929(ute. T)-.2 F .429(raced functions inherit the)-.35 F F1(DEB)2.929
-E(UG)-.1 E F0(and)2.929 E F1(RETURN)2.929 E F0
-(traps from the calling shell.)180 444 Q(The trace attrib)5 E
-(ute has no special meaning for v)-.2 E(ariables.)-.25 E F1<ad75>144 456
-Q F0 .909(When the v)180 456 R .909(ariable is assigned a v)-.25 F .909
-(alue, all lo)-.25 F(wer)-.25 E .909(-case characters are con)-.2 F -.15
-(ve)-.4 G .91(rted to upper).15 F(-)-.2 E 2.5(case. The)180 468 R(lo)2.5
-E(wer)-.25 E(-case attrib)-.2 E(ute is disabled.)-.2 E F1<ad78>144 480 Q
-F0(Mark)180 480 Q F2(name)2.5 E F0 2.5(sf)C(or e)-2.5 E
+2.547(alues by subsequent)-.25 F(assignment statements or unset.)180
+501.6 Q F2<ad74>144 513.6 Q F0(Gi)180 513.6 Q .73 -.15(ve e)-.25 H(ach)
+.15 E F1(name)2.93 E F0(the)2.929 E F1(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 F2
+(DEB)2.929 E(UG)-.1 E F0(and)2.929 E F2(RETURN)2.929 E F0
+(traps from the calling shell.)180 525.6 Q(The trace attrib)5 E
+(ute has no special meaning for v)-.2 E(ariables.)-.25 E F2<ad75>144
+537.6 Q F0 .909(When the v)180 537.6 R .909(ariable is assigned a v)-.25
+F .909(alue, all lo)-.25 F(wer)-.25 E .909(-case characters are con)-.2
+F -.15(ve)-.4 G .91(rted to upper).15 F(-)-.2 E 2.5(case. The)180 549.6
+R(lo)2.5 E(wer)-.25 E(-case attrib)-.2 E(ute is disabled.)-.2 E F2<ad78>
+144 561.6 Q F0(Mark)180 561.6 Q F1(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 496.8 R 2.621(ft)-.25 G .121
+(Using `+' instead of `\255' turns of)144 578.4 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 .644
-(to destro)144 508.8 R 3.144(ya)-.1 G 3.144(na)-3.144 G .644(rray v)
--3.144 F .644(ariable and)-.25 F F1(+r)3.145 E F0 .645(will not remo)
+(xceptions that)-.15 F F2(+a)2.62 E F0 .12(may not be used)2.62 F .644
+(to destro)144 590.4 R 3.144(ya)-.1 G 3.144(na)-3.144 G .644(rray v)
+-3.144 F .644(ariable and)-.25 F F2(+r)3.145 E F0 .645(will not remo)
 3.145 F .945 -.15(ve t)-.15 H .645(he readonly attrib).15 F 3.145
-(ute. When)-.2 F .645(used in a func-)3.145 F(tion,)144 520.8 Q F1
-(declar)2.835 E(e)-.18 E F0(and)2.835 E F1(typeset)2.835 E F0(mak)2.835
-E 2.835(ee)-.1 G(ach)-2.835 E F2(name)2.835 E F0 .335
-(local, as with the)2.835 F F1(local)2.835 E F0 .335
-(command, unless the)2.835 F F1<ad67>2.835 E F0(option)2.835 E 1.282
-(is supplied.)144 532.8 R 1.282(If a v)6.282 F 1.283
-(ariable name is follo)-.25 F 1.283(wed by =)-.25 F F2(value)A F0 3.783
+(ute. When)-.2 F .645(used in a func-)3.145 F(tion,)144 602.4 Q F2
+(declar)2.835 E(e)-.18 E F0(and)2.835 E F2(typeset)2.835 E F0(mak)2.835
+E 2.835(ee)-.1 G(ach)-2.835 E F1(name)2.835 E F0 .335
+(local, as with the)2.835 F F2(local)2.835 E F0 .335
+(command, unless the)2.835 F F2<ad67>2.835 E F0(option)2.835 E 1.282
+(is supplied.)144 614.4 R 1.282(If a v)6.282 F 1.283
+(ariable name is follo)-.25 F 1.283(wed by =)-.25 F F1(value)A F0 3.783
 (,t)C 1.283(he v)-3.783 F 1.283(alue of the v)-.25 F 1.283
-(ariable is set to)-.25 F F2(value)3.783 E F0(.)A .927(When using)144
-544.8 R F1<ad61>3.427 E F0(or)3.427 E F1<ad41>3.427 E F0 .926
+(ariable is set to)-.25 F F1(value)3.783 E F0(.)A .927(When using)144
+626.4 R F2<ad61>3.427 E F0(or)3.427 E F2<ad41>3.427 E F0 .926
 (and the compound assignment syntax to create array v)3.427 F .926
-(ariables, additional)-.25 F(attrib)144 556.8 Q .592(utes do not tak)-.2
+(ariables, additional)-.25 F(attrib)144 638.4 Q .592(utes do not tak)-.2
 F 3.092(ee)-.1 G -.25(ff)-3.092 G .592
 (ect until subsequent assignments.).25 F .592(The return v)5.592 F .592
 (alue is 0 unless an in)-.25 F -.25(va)-.4 G(lid).25 E .429
 (option is encountered, an attempt is made to de\214ne a function using)
-144 568.8 R/F4 10/Courier@0 SF .428(\255f foo=bar)2.929 F F0 2.928(,a)C
+144 650.4 R/F5 10/Courier@0 SF .428(\255f foo=bar)2.929 F F0 2.928(,a)C
 2.928(na)-2.928 G .428(ttempt is)-2.928 F .062(made to assign a v)144
-580.8 R .062(alue to a readonly v)-.25 F .063
+662.4 R .062(alue to a readonly v)-.25 F .063
 (ariable, an attempt is made to assign a v)-.25 F .063
 (alue to an array v)-.25 F(ari-)-.25 E .102
-(able without using the compound assignment syntax \(see)144 592.8 R F1
+(able without using the compound assignment syntax \(see)144 674.4 R F2
 (Arrays)2.602 E F0(abo)2.602 E -.15(ve)-.15 G .102(\), one of the).15 F
-F2(names)2.602 E F0 .101(is not a)2.602 F -.25(va)144 604.8 S .171
+F1(names)2.602 E F0 .101(is not a)2.602 F -.25(va)144 686.4 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 616.8 R 3.46(fa)
+(ariable, an)-.25 F .96(attempt is made to turn of)144 698.4 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 628.8 Q
-(xistent function with)-.15 E F1<ad66>2.5 E F0(.)A F1
-(dirs [\255clpv] [+)108 645.6 Q F2(n)A F1 2.5(][)C<ad>-2.5 E F2(n)A F1
-(])A F0 -.4(Wi)144 657.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 669.6 R 1.238
-(Directories are added to the list with the)6.238 F F1(pushd)144 681.6 Q
-F0 2.003(command; the)4.503 F F1(popd)4.503 E F0 2.003(command remo)
-4.503 F -.15(ve)-.15 G 4.503(se).15 G 2.003(ntries from the list.)-4.503
-F 2.003(The current directory is)7.003 F(al)144 693.6 Q -.1(wa)-.1 G
-(ys the \214rst directory in the stack.).1 E F1<ad63>144 705.6 Q F0
-(Clears the directory stack by deleting all of the entries.)180 705.6 Q
-F1<ad6c>144 717.6 Q F0 .882
-(Produces a listing using full pathnames; the def)180 717.6 R .881
-(ault listing format uses a tilde to denote)-.1 F(the home directory)180
-729.6 Q(.)-.65 E(GNU Bash 5.0)72 768 Q(2004 Apr 20)149.565 E(6)203.725 E
-0 Cg EP
+(ariable, or an attempt is made to display a)-.25 F(non-e)144 710.4 Q
+(xistent function with)-.15 E F2<ad66>2.5 E F0(.)A(GNU Bash 5.0)72 768 Q
+(2004 Apr 20)149.565 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 87.61
 (TINS\(1\) General)-.92 F(Commands Manual)2.5 E -.35(BA)90.11 G(SH_B).35
-E(UIL)-.1 E(TINS\(1\))-.92 E/F1 10/Times-Bold@0 SF<ad70>144 84 Q F0
-(Print the directory stack with one entry per line.)180 84 Q F1<ad76>144
-96 Q F0 .272(Print the directory stack with one entry per line, pre\214\
-xing each entry with its inde)180 96 R 2.773(xi)-.15 G 2.773(nt)-2.773 G
-(he)-2.773 E(stack.)180 108 Q F1(+)144 120 Q/F2 10/Times-Italic@0 SF(n)A
-F0 1.565(Displays the)180 120 R F2(n)4.065 E F0 1.565
+E(UIL)-.1 E(TINS\(1\))-.92 E/F1 10/Times-Bold@0 SF(dirs [\255clpv] [+)
+108 84 Q/F2 10/Times-Italic@0 SF(n)A F1 2.5(][)C<ad>-2.5 E F2(n)A F1(])A
+F0 -.4(Wi)144 96 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
+F0 2.003(command; the)4.503 F F1(popd)4.503 E F0 2.003(command remo)
+4.503 F -.15(ve)-.15 G 4.503(se).15 G 2.003(ntries from the list.)-4.503
+F 2.003(The current directory is)7.003 F(al)144 132 Q -.1(wa)-.1 G
+(ys the \214rst directory in the stack.).1 E F1<ad63>144 144 Q F0
+(Clears the directory stack by deleting all of the entries.)180 144 Q F1
+<ad6c>144 156 Q F0 .882
+(Produces a listing using full pathnames; the def)180 156 R .881
+(ault listing format uses a tilde to denote)-.1 F(the home directory)180
+168 Q(.)-.65 E F1<ad70>144 180 Q F0
+(Print the directory stack with one entry per line.)180 180 Q F1<ad76>
+144 192 Q F0 .272(Print the directory stack with one entry per line, pr\
+e\214xing each entry with its inde)180 192 R 2.773(xi)-.15 G 2.773(nt)
+-2.773 G(he)-2.773 E(stack.)180 204 Q F1(+)144 216 Q F2(n)A F0 1.565
+(Displays the)180 216 R F2(n)4.065 E F0 1.565
 (th entry counting from the left of the list sho)B 1.564(wn by)-.25 F F1
 (dirs)4.064 E F0 1.564(when in)4.064 F -.2(vo)-.4 G -.1(ke).2 G(d).1 E
-(without options, starting with zero.)180 132 Q F1<ad>144 144 Q F2(n)A
-F0 1.194(Displays the)180 144 R F2(n)3.694 E F0 1.194
+(without options, starting with zero.)180 228 Q F1<ad>144 240 Q F2(n)A
+F0 1.194(Displays the)180 240 R 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 156 Q .258(The return v)144
-172.8 R .258(alue is 0 unless an in)-.25 F -.25(va)-.4 G .258
+(without options, starting with zero.)180 252 Q .258(The return v)144
+268.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 184.8 Q F1(diso)108 201.6 Q(wn)-.1 E F0([)2.5 E F1
+.15 F(tory stack.)144 280.8 Q F1(diso)108 297.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 F2(pid)2.5 E F0(... ])2.5 E -.4(Wi)144 213.6 S .121
+(... |)2.5 E F2(pid)2.5 E F0(... ])2.5 E -.4(Wi)144 309.6 S .121
 (thout options, remo).4 F .422 -.15(ve e)-.15 H(ach).15 E F2(jobspec)
 4.362 E F0 .122(from the table of acti)2.932 F .422 -.15(ve j)-.25 H
 2.622(obs. If).15 F F2(jobspec)4.362 E F0 .122(is not present, and)2.932
-F .096(neither the)144 225.6 R F1<ad61>2.596 E F0 .096(nor the)2.596 F
+F .096(neither the)144 321.6 R F1<ad61>2.596 E F0 .096(nor the)2.596 F
 F1<ad72>2.596 E F0 .096(option is supplied, the)2.596 F F2(curr)2.596 E
 .096(ent job)-.37 F F0 .096(is used.)2.596 F .096(If the)5.096 F F1
 <ad68>2.596 E F0 .096(option is gi)2.596 F -.15(ve)-.25 G .096(n, each)
-.15 F F2(jobspec)145.74 237.6 Q F0 .585(is not remo)3.395 F -.15(ve)-.15
+.15 F F2(jobspec)145.74 333.6 Q F0 .585(is not remo)3.395 F -.15(ve)-.15
 G 3.085(df).15 G .585(rom the table, b)-3.085 F .585(ut is mark)-.2 F
 .585(ed so that)-.1 F/F3 9/Times-Bold@0 SF(SIGHUP)3.085 E F0 .586
-(is not sent to the job if the)2.835 F .962(shell recei)144 249.6 R -.15
+(is not sent to the job if the)2.835 F .962(shell recei)144 345.6 R -.15
 (ve)-.25 G 3.462(sa).15 G F3(SIGHUP)A/F4 9/Times-Roman@0 SF(.)A F0 .962
 (If no)5.462 F F2(jobspec)5.202 E F0 .962(is supplied, the)3.772 F F1
 <ad61>3.462 E F0 .962(option means to remo)3.462 F 1.262 -.15(ve o)-.15
-H 3.462(rm).15 G .962(ark all)-3.462 F 1.358(jobs; the)144 261.6 R F1
+H 3.462(rm).15 G .962(ark all)-3.462 F 1.358(jobs; the)144 357.6 R F1
 <ad72>3.858 E F0 1.358(option without a)3.858 F F2(jobspec)5.598 E F0
 (ar)4.169 E 1.359(gument restricts operation to running jobs.)-.18 F
-1.359(The return)6.359 F -.25(va)144 273.6 S(lue is 0 unless a).25 E F2
+1.359(The return)6.359 F -.25(va)144 369.6 S(lue is 0 unless a).25 E F2
 (jobspec)4.24 E F0(does not specify a v)2.81 E(alid job)-.25 E(.)-.4 E
-F1(echo)108 290.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 .425(Output the)144 302.4 R F2(ar)2.925 E(g)-.37 E
+F1(echo)108 386.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 .425(Output the)144 398.4 R F2(ar)2.925 E(g)-.37 E
 F0 .424(s, separated by spaces, follo)B .424(wed by a ne)-.25 F 2.924
 (wline. The)-.25 F .424(return status is 0 unless a write)2.924 F .307
-(error occurs.)144 314.4 R(If)5.307 E F1<ad6e>2.807 E F0 .307
+(error occurs.)144 410.4 R(If)5.307 E F1<ad6e>2.807 E F0 .307
 (is speci\214ed, the trailing ne)2.807 F .308(wline is suppressed.)-.25
 F .308(If the)5.308 F F1<ad65>2.808 E F0 .308(option is gi)2.808 F -.15
 (ve)-.25 G .308(n, inter).15 F(-)-.2 E 1.349(pretation of the follo)144
-326.4 R 1.348(wing backslash-escaped characters is enabled.)-.25 F(The)
+422.4 R 1.348(wing backslash-escaped characters is enabled.)-.25 F(The)
 6.348 E F1<ad45>3.848 E F0 1.348(option disables the)3.848 F 1.054
-(interpretation of these escape characters, e)144 338.4 R -.15(ve)-.25 G
+(interpretation of these escape characters, e)144 434.4 R -.15(ve)-.25 G
 3.555(no).15 G 3.555(ns)-3.555 G 1.055(ystems where the)-3.555 F 3.555
 (ya)-.15 G 1.055(re interpreted by def)-3.555 F(ault.)-.1 E(The)144
-350.4 Q F1(xpg_echo)3.459 E F0 .959
+446.4 Q F1(xpg_echo)3.459 E F0 .959
 (shell option may be used to dynamically determine whether or not)3.459
 F F1(echo)3.458 E F0 -.15(ex)3.458 G(pands).15 E .715
-(these escape characters by def)144 362.4 R(ault.)-.1 E F1(echo)5.715 E
+(these escape characters by def)144 458.4 R(ault.)-.1 E F1(echo)5.715 E
 F0 .716(does not interpret)3.215 F F1<adad>3.216 E F0 .716
 (to mean the end of options.)3.216 F F1(echo)5.716 E F0
-(interprets the follo)144 374.4 Q(wing escape sequences:)-.25 E F1(\\a)
-144 386.4 Q F0(alert \(bell\))180 386.4 Q F1(\\b)144 398.4 Q F0
-(backspace)180 398.4 Q F1(\\c)144 410.4 Q F0(suppress further output)180
-410.4 Q F1(\\e)144 422.4 Q(\\E)144 434.4 Q F0(an escape character)180
-434.4 Q F1(\\f)144 446.4 Q F0(form feed)180 446.4 Q F1(\\n)144 458.4 Q
-F0(ne)180 458.4 Q 2.5(wl)-.25 G(ine)-2.5 E F1(\\r)144 470.4 Q F0
-(carriage return)180 470.4 Q F1(\\t)144 482.4 Q F0(horizontal tab)180
-482.4 Q F1(\\v)144 494.4 Q F0 -.15(ve)180 494.4 S(rtical tab).15 E F1
-(\\\\)144 506.4 Q F0(backslash)180 506.4 Q F1(\\0)144 518.4 Q F2(nnn)A
-F0(the eight-bit character whose v)180 518.4 Q(alue is the octal v)-.25
+(interprets the follo)144 470.4 Q(wing escape sequences:)-.25 E F1(\\a)
+144 482.4 Q F0(alert \(bell\))180 482.4 Q F1(\\b)144 494.4 Q F0
+(backspace)180 494.4 Q F1(\\c)144 506.4 Q F0(suppress further output)180
+506.4 Q F1(\\e)144 518.4 Q(\\E)144 530.4 Q F0(an escape character)180
+530.4 Q F1(\\f)144 542.4 Q F0(form feed)180 542.4 Q F1(\\n)144 554.4 Q
+F0(ne)180 554.4 Q 2.5(wl)-.25 G(ine)-2.5 E F1(\\r)144 566.4 Q F0
+(carriage return)180 566.4 Q F1(\\t)144 578.4 Q F0(horizontal tab)180
+578.4 Q F1(\\v)144 590.4 Q F0 -.15(ve)180 590.4 S(rtical tab).15 E F1
+(\\\\)144 602.4 Q F0(backslash)180 602.4 Q F1(\\0)144 614.4 Q F2(nnn)A
+F0(the eight-bit character whose v)180 614.4 Q(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 530.4 Q F2(HH)A F0(the eight-bit character whose v)180 530.4 Q
+(\\x)144 626.4 Q F2(HH)A F0(the eight-bit character whose v)180 626.4 Q
 (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
-(\\u)144 542.4 Q F2(HHHH)A F0 1.507
-(the Unicode \(ISO/IEC 10646\) character whose v)180 554.4 R 1.506
+(\\u)144 638.4 Q F2(HHHH)A F0 1.507
+(the Unicode \(ISO/IEC 10646\) character whose v)180 650.4 R 1.506
 (alue is the he)-.25 F 1.506(xadecimal v)-.15 F(alue)-.25 E F2(HHHH)
-4.006 E F0(\(one to four he)180 566.4 Q 2.5(xd)-.15 G(igits\))-2.5 E F1
-(\\U)144 578.4 Q F2(HHHHHHHH)A F0 .547
-(the Unicode \(ISO/IEC 10646\) character whose v)180 590.4 R .547
+4.006 E F0(\(one to four he)180 662.4 Q 2.5(xd)-.15 G(igits\))-2.5 E F1
+(\\U)144 674.4 Q F2(HHHHHHHH)A F0 .547
+(the Unicode \(ISO/IEC 10646\) character whose v)180 686.4 R .547
 (alue is the he)-.25 F .548(xadecimal v)-.15 F(alue)-.25 E F2(HHHHH-)
-3.048 E(HHH)180 602.4 Q F0(\(one to eight he)2.5 E 2.5(xd)-.15 G
-(igits\))-2.5 E F1(enable)108 619.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 631.2 R
-.278(uiltin shell commands.)-.2 F .278(Disabling a b)5.278 F .278
+3.048 E(HHH)180 698.4 Q F0(\(one to eight he)2.5 E 2.5(xd)-.15 G
+(igits\))-2.5 E(GNU Bash 5.0)72 768 Q(2004 Apr 20)149.565 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 87.61
+(TINS\(1\) General)-.92 F(Commands Manual)2.5 E -.35(BA)90.11 G(SH_B).35
+E(UIL)-.1 E(TINS\(1\))-.92 E/F1 10/Times-Bold@0 SF(enable)108 84 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 10/Times-Italic@0 SF(\214lename)2.5 E F0 2.5(][)C F2(name)-2.5 E F0
+(...])2.5 E .278(Enable and disable b)144 96 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 643.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 655.2 R .989
+(the same name as a shell b)144 108 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 120 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 667.2 R F2(names)4.082 E F0 1.582(are enabled.)
+(abled; otherwise,)144 132 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 679.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 691.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 144 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 156 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 703.2 Q F1<ad64>
+(ystems that support dynamic loading.)-4.024 F(The)144 168 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 715.2 R F1<ad70>
+-.18 F -.15(ve)-.25 G .366(n, or).15 F .398(if the)144 180 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
-727.2 R 2.598(uiltins. If)-.2 F F1<ad6e>2.598 E F0 .098
+192 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(GNU Bash 5.0)72 768 Q(2004 Apr 20)149.565
-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 87.61
-(TINS\(1\) General)-.92 F(Commands Manual)2.5 E -.35(BA)90.11 G(SH_B).35
-E(UIL)-.1 E(TINS\(1\))-.92 E 1.916
-(is supplied, the list printed includes all b)144 84 R 1.916
+(If)5.098 E F1<ad61>2.598 E F0 1.916
+(is supplied, the list printed includes all b)144 204 R 1.916
 (uiltins, with an indication of whether or not each is)-.2 F 2.879
-(enabled. If)144 96 R/F1 10/Times-Bold@0 SF<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 108 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 120 Q F1 -2.3 -.15(ev a)108
-136.8 T(l).15 E F0([)2.5 E F2(ar)A(g)-.37 E F0(...])2.5 E(The)144 148.8
-Q F2(ar)3.171 E(g)-.37 E F0 3.171(sa)C .671
+(enabled. If)144 216 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 228 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 240
+Q F1 -2.3 -.15(ev a)108 256.8 T(l).15 E F0([)2.5 E F2(ar)A(g)-.37 E F0
+(...])2.5 E(The)144 268.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 160.8 R -.15(xe)-.15 G
+(This command is then read)5.67 F .495(and e)144 280.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 172.8 Q
+-2.995 F F2(ar)2.995 E(gs)-.37 E F0(,).27 E(or only null ar)144 292.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 189.6 Q F0([)2.5 E F1(\255cl)A F0 2.5(][)C F1<ad61>-2.5 E F2
+(exec)108 309.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 201.6 Q F2(command)3.006 E F0 .306
+-.37 E F0(]])A(If)144 321.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 213.6 R .176
+(guments)-.37 E F0(become)3.075 E .176(the ar)144 333.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 225.6 R .5(gument passed to)-.18
+(ginning of)-.15 F .5(the zeroth ar)144 345.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 237.6 Q F0 .638
+.499(option causes)2.999 F F2(com-)3.199 E(mand)144 357.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 1.078(zeroth ar)144 249.6 R 1.077(gument to the e)-.18 F -.15
+3.319 F 1.078(zeroth ar)144 369.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 261.6 Q .876 -.15(ve s)-.25 H .576(hell e).15 F
+.15 F(non-interacti)144 381.6 Q .876 -.15(ve s)-.25 H .576(hell e).15 F
 .576(xits, unless the)-.15 F F1(execfail)3.076 E F0 .577
 (shell option is enabled.)3.077 F .577(In that case, it returns f)5.577
-F(ail-)-.1 E 3.32(ure. An)144 273.6 R(interacti)3.32 E 1.12 -.15(ve s)
+F(ail-)-.1 E 3.32(ure. An)144 393.6 R(interacti)3.32 E 1.12 -.15(ve s)
 -.25 H .82(hell returns f).15 F .82(ailure if the \214le cannot be e)-.1
 F -.15(xe)-.15 G 3.32(cuted. A).15 F .82(subshell e)3.32 F .82
-(xits uncondi-)-.15 F .287(tionally if)144 285.6 R F1(exec)2.787 E F0
+(xits uncondi-)-.15 F .287(tionally if)144 405.6 R F1(exec)2.787 E F0
 -.1(fa)2.787 G 2.787(ils. If).1 F F2(command)2.987 E F0 .287
 (is not speci\214ed, an)3.557 F 2.788(yr)-.15 G .288(edirections tak)
 -2.788 F 2.788(ee)-.1 G -.25(ff)-2.788 G .288(ect in the current shell,)
-.25 F(and the return status is 0.)144 297.6 Q
+.25 F(and the return status is 0.)144 417.6 Q
 (If there is a redirection error)5 E 2.5(,t)-.4 G
-(he return status is 1.)-2.5 E F1(exit)108 314.4 Q F0([)2.5 E F2(n)A F0
-(])A .096(Cause the shell to e)144 314.4 R .096(xit with a status of)
+(he return status is 1.)-2.5 E F1(exit)108 434.4 Q F0([)2.5 E F2(n)A F0
+(])A .096(Cause the shell to e)144 434.4 R .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 326.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 343.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 355.2 Q F0 .256(The supplied)144 367.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 379.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 391.2 Q F0 .048
-(option is supplied, a list of names of all e)2.547 F .048(xported v)
--.15 F .048(ariables is printed.)-.25 F(The)5.048 E F1<ad6e>2.548 E F0
-.048(option causes the)2.548 F -.15(ex)144 403.2 S 1.447
-(port property to be remo).15 F -.15(ve)-.15 G 3.947(df).15 G 1.447
+-.15 F -.15(exe)144 446.4 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 463.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 475.2 Q
+F0 .256(The supplied)144 487.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 499.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 511.2 Q F0 .048(option is supplied, a list of names of all e)2.547 F
+.048(xported v)-.15 F .048(ariables is printed.)-.25 F(The)5.048 E F1
+<ad6e>2.548 E F0 .048(option causes the)2.548 F -.15(ex)144 523.2 S
+1.447(port property to be remo).15 F -.15(ve)-.15 G 3.947(df).15 G 1.447
 (rom each)-3.947 F F2(name)3.947 E F0 6.447(.I)C 3.947(fav)-6.447 G
 1.447(ariable name is follo)-4.197 F 1.447(wed by =)-.25 F F2(wor)A(d)
--.37 E F0 3.946(,t)C(he)-3.946 E -.25(va)144 415.2 S .741(lue of the v)
+-.37 E F0 3.946(,t)C(he)-3.946 E -.25(va)144 535.2 S .741(lue of the v)
 .25 F .741(ariable is set to)-.25 F F2(wor)3.241 E(d)-.37 E F0(.)A F1
 (export)5.741 E F0 .742(returns an e)3.242 F .742
 (xit status of 0 unless an in)-.15 F -.25(va)-.4 G .742(lid option is)
-.25 F .032(encountered, one of the)144 427.2 R F2(names)2.532 E F0 .032
+.25 F .032(encountered, one of the)144 547.2 R F2(names)2.532 E F0 .032
 (is not a v)2.532 F .032(alid shell v)-.25 F .032(ariable name, or)-.25
 F F1<ad66>2.531 E F0 .031(is supplied with a)2.531 F F2(name)2.891 E F0
-(that)2.711 E(is not a function.)144 439.2 Q F1(fc)108 456 Q F0([)2.5 E
+(that)2.711 E(is not a function.)144 559.2 Q F1(fc)108 576 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
-468 Q F0([)2.5 E F2(pat)A F0(=)A F2 -.37(re)C(p).37 E F0 2.5(][)C F2
+588 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 .431
-(The \214rst form selects a range of commands from)144 480 R F2<8c72>
+(The \214rst form selects a range of commands from)144 600 R F2<8c72>
 4.842 E(st)-.1 E F0(to)3.612 E F2(last)3.022 E F0 .432
 (from the history list and displays or)3.612 F .142(edits and re-e)144
-492 R -.15(xe)-.15 G .142(cutes them.).15 F F2 -.45(Fi)5.141 G -.1(rs)
+612 R -.15(xe)-.15 G .142(cutes them.).15 F F2 -.45(Fi)5.141 G -.1(rs)
 .45 G(t).1 E F0(and)3.321 E F2(last)2.731 E F0 .141
 (may be speci\214ed as a string \(to locate the last command)3.321 F(be)
-144 504 Q .31(ginning with that string\) or as a number \(an inde)-.15 F
+144 624 Q .31(ginning with that string\) or as a number \(an inde)-.15 F
 2.811(xi)-.15 G .311(nto the history list, where a ne)-2.811 F -.05(ga)
 -.15 G(ti).05 E .611 -.15(ve n)-.25 H(umber).15 E .19(is used as an of)
-144 516 R .19(fset from the current command number\).)-.25 F(If)5.19 E
+144 636 R .19(fset from the current command number\).)-.25 F(If)5.19 E
 F2(last)2.779 E F0 .189(is not speci\214ed, it is set to the cur)3.369 F
-(-)-.2 E .948(rent command for listing \(so that)144 528 R/F4 10
-/Courier@0 SF .948(fc \255l \25510)3.448 F F0 .948
-(prints the last 10 commands\) and to)3.448 F F2<8c72>5.359 E(st)-.1 E
-F0(other)4.129 E(-)-.2 E 2.5(wise. If)144 540 R F2<8c72>4.41 E(st)-.1 E
-F0(is not speci\214ed, it is set to the pre)3.18 E
-(vious command for editing and \25516 for listing.)-.25 E(The)144 564 Q
+(-)-.2 E .948(rent command for listing \(so that)144 648 R F4 .948
+(fc \255l \25510)3.448 F F0 .948(prints the last 10 commands\) and to)
+3.448 F F2<8c72>5.359 E(st)-.1 E F0(other)4.129 E(-)-.2 E 2.5(wise. If)
+144 660 R F2<8c72>4.41 E(st)-.1 E F0
+(is not speci\214ed, it is set to the pre)3.18 E
+(vious command for editing and \25516 for listing.)-.25 E(The)144 684 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 576 R .438(If the)5.438
+(rses the order of).15 F .438(the commands.)144 696 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 588 R -.15(ve)-.25 G 2.835(nb).15 G(y)-2.835 E F2
+.335(the editor gi)144 708 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 600 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 612 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 624 S(cuted.).15 E .788(In the second form,)144 648 R F2
-(command)3.288 E F0 .788(is re-e)3.288 F -.15(xe)-.15 G .788
-(cuted after each instance of).15 F F2(pat)3.288 E F0 .788
-(is replaced by)3.288 F F2 -.37(re)3.289 G(p).37 E F0(.)A F2(Com-)5.789
-E(mand)144 660 Q F0 .172(is interpreted the same as)2.672 F F2<8c72>
-2.672 E(st)-.1 E F0(abo)2.672 E -.15(ve)-.15 G 5.172(.A).15 G .171
-(useful alias to use with this is)-2.5 F F4 .171(r='fc \255s')2.671 F F0
-2.671(,s)C 2.671(ot)-2.671 G(hat)-2.671 E(typing)144 672 Q F4 7.165(rc)
-3.665 G(c)-7.165 E F0 1.165(runs the last command be)3.665 F 1.166
-(ginning with)-.15 F F4(cc)3.666 E F0 1.166(and typing)3.666 F F4(r)
-3.666 E F0(re-e)3.666 E -.15(xe)-.15 G 1.166(cutes the last com-).15 F
-(mand.)144 684 Q .142(If the \214rst form is used, the return v)144 708
-R .142(alue is 0 unless an in)-.25 F -.25(va)-.4 G .142
-(lid option is encountered or).25 F F2<8c72>4.552 E(st)-.1 E F0(or)3.322
-E F2(last)2.732 E F0 .454(specify history lines out of range.)144 720 R
-.454(If the)5.454 F F1<ad65>2.954 E F0 .454
-(option is supplied, the return v)2.954 F .455(alue is the v)-.25 F .455
-(alue of the)-.25 F(GNU Bash 5.0)72 768 Q(2004 Apr 20)149.565 E(8)
-203.725 E 0 Cg EP
+(n,).15 E 1.668(the v)144 720 R 1.668(alue of the)-.25 F F3(FCEDIT)4.168
+E F0 -.25(va)3.918 G 1.668(riable is used, and the v).25 F 1.669
+(alue of)-.25 F F3(EDIT)4.169 E(OR)-.162 E F0(if)3.919 E F3(FCEDIT)4.169
+E F0 1.669(is not set.)3.919 F(If)6.669 E(GNU Bash 5.0)72 768 Q
+(2004 Apr 20)149.565 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 87.61
 (TINS\(1\) General)-.92 F(Commands Manual)2.5 E -.35(BA)90.11 G(SH_B).35
-E(UIL)-.1 E(TINS\(1\))-.92 E .788(last command e)144 84 R -.15(xe)-.15 G
-.788(cuted or f).15 F .787
+E(UIL)-.1 E(TINS\(1\))-.92 E .187(neither v)144 84 R .187
+(ariable is set,)-.25 F/F1 10/Times-Italic@0 SF(vi)4.353 E F0 .187
+(is used.)4.353 F .187
+(When editing is complete, the edited commands are echoed and)5.187 F
+-.15(exe)144 96 S(cuted.).15 E .788(In the second form,)144 120 R F1
+(command)3.288 E F0 .788(is re-e)3.288 F -.15(xe)-.15 G .788
+(cuted after each instance of).15 F F1(pat)3.288 E F0 .788
+(is replaced by)3.288 F F1 -.37(re)3.289 G(p).37 E F0(.)A F1(Com-)5.789
+E(mand)144 132 Q F0 .172(is interpreted the same as)2.672 F F1<8c72>
+2.672 E(st)-.1 E F0(abo)2.672 E -.15(ve)-.15 G 5.172(.A).15 G .171
+(useful alias to use with this is)-2.5 F/F2 10/Courier@0 SF .171
+(r='fc \255s')2.671 F F0 2.671(,s)C 2.671(ot)-2.671 G(hat)-2.671 E
+(typing)144 144 Q F2 7.165(rc)3.665 G(c)-7.165 E F0 1.165
+(runs the last command be)3.665 F 1.166(ginning with)-.15 F F2(cc)3.666
+E F0 1.166(and typing)3.666 F F2(r)3.666 E F0(re-e)3.666 E -.15(xe)-.15
+G 1.166(cutes the last com-).15 F(mand.)144 156 Q .142
+(If the \214rst form is used, the return v)144 180 R .142
+(alue is 0 unless an in)-.25 F -.25(va)-.4 G .142
+(lid option is encountered or).25 F F1<8c72>4.552 E(st)-.1 E F0(or)3.322
+E F1(last)2.732 E F0 .454(specify history lines out of range.)144 192 R
+.454(If the)5.454 F/F3 10/Times-Bold@0 SF<ad65>2.954 E F0 .454
+(option is supplied, the return v)2.954 F .455(alue is the v)-.25 F .455
+(alue of the)-.25 F .788(last command e)144 204 R -.15(xe)-.15 G .788
+(cuted or f).15 F .787
 (ailure if an error occurs with the temporary \214le of commands.)-.1 F
 .787(If the)5.787 F 1.135
 (second form is used, the return status is that of the command re-e)144
-96 R -.15(xe)-.15 G 1.136(cuted, unless).15 F/F1 10/Times-Italic@0 SF
-(cmd)3.836 E F0 1.136(does not)4.406 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.654 E F0 1.413
-(in the fore)4.224 F 1.413(ground, and mak)-.15 F 3.913(ei)-.1 G 3.913
-(tt)-3.913 G 1.413(he current job)-3.913 F 6.413(.I)-.4 G(f)-6.413 E F1
-(jobspec)5.653 E F0 1.413(is not present, the)4.223 F(shell')144 148.8 Q
-3.116(sn)-.55 G .616(otion of the)-3.116 F F1(curr)3.116 E .616(ent job)
--.37 F F0 .617(is used.)3.116 F .617(The return v)5.617 F .617
-(alue is that of the command placed into the)-.25 F(fore)144 160.8 Q
+216 R -.15(xe)-.15 G 1.136(cuted, unless).15 F F1(cmd)3.836 E F0 1.136
+(does not)4.406 F(specify a v)144 228 Q
+(alid history line, in which case)-.25 E F3(fc)2.5 E F0(returns f)2.5 E
+(ailure.)-.1 E F3(fg)108 244.8 Q F0([)2.5 E F1(jobspec)A F0(])A(Resume)
+144 256.8 Q F1(jobspec)5.654 E F0 1.413(in the fore)4.224 F 1.413
+(ground, and mak)-.15 F 3.913(ei)-.1 G 3.913(tt)-3.913 G 1.413
+(he current job)-3.913 F 6.413(.I)-.4 G(f)-6.413 E F1(jobspec)5.653 E F0
+1.413(is not present, the)4.223 F(shell')144 268.8 Q 3.116(sn)-.55 G
+.616(otion of the)-3.116 F F1(curr)3.116 E .616(ent job)-.37 F F0 .617
+(is used.)3.116 F .617(The return v)5.617 F .617
+(alue is that of the command placed into the)-.25 F(fore)144 280.8 Q
 .363(ground, or f)-.15 F .363
 (ailure if run when job control is disabled or)-.1 F 2.862(,w)-.4 G .362
-(hen run with job control enabled, if)-2.862 F F1(jobspec)145.74 172.8 Q
+(hen run with job control enabled, if)-2.862 F F1(jobspec)145.74 292.8 Q
 F0(does not specify a v)2.81 E(alid job or)-.25 E F1(jobspec)4.24 E F0
 (speci\214es a job that w)2.81 E(as started without job control.)-.1 E
-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
+F3(getopts)108 309.6 Q F1(optstring name)2.5 E F0([)2.5 E F1(ar)A(gs)
+-.37 E F0(])A F3(getopts)144 321.6 Q F0 .793
 (is used by shell procedures to parse positional parameters.)3.293 F F1
 (optstring)6.023 E F0 .793(contains the option)3.513 F .15
-(characters to be recognized; if a character is follo)144 213.6 R .149
+(characters to be recognized; if a character is follo)144 333.6 R .149
 (wed by a colon, the option is e)-.25 F .149(xpected to ha)-.15 F .449
--.15(ve a)-.2 H(n).15 E(ar)144 225.6 Q .578
+-.15(ve a)-.2 H(n).15 E(ar)144 345.6 Q .578
 (gument, which should be separated from it by white space.)-.18 F .579
 (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 357.6 R 1.665
+(Each time it is in)6.665 F -.2(vo)-.4 G -.1(ke).2 G(d,).1 E F3(getopts)
 4.165 E F0 1.665(places the ne)4.165 F(xt)-.15 E .796
-(option in the shell v)144 249.6 R(ariable)-.25 E F1(name)3.296 E F0
+(option in the shell v)144 369.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
 (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)
+3.297(ft)-3.297 G .797(he ne)-3.297 F(xt)-.15 E(ar)144 381.6 Q .085
+(gument to be processed into the v)-.18 F(ariable)-.25 E/F4 9
+/Times-Bold@0 SF(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 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
+(or a shell script is in)144 393.6 R -.2(vo)-.4 G -.1(ke).2 G 3.345
+(d. When).1 F .845(an option requires an ar)3.345 F(gument,)-.18 E F3
 (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 405.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 417.6 R F3(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 429.6
+Q 2.044(When the end of options is encountered,)144 453.6 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 345.6 Q F0
+(alue greater than zero.)-.25 F F4(OPTIND)144 465.6 Q F0
 (is set to the inde)2.25 E 2.5(xo)-.15 G 2.5(ft)-2.5 G
 (he \214rst non-option ar)-2.5 E(gument, and)-.18 E F1(name)2.5 E F0
-(is set to ?.)2.5 E F2(getopts)144 369.6 Q F0 2.392
+(is set to ?.)2.5 E F3(getopts)144 489.6 Q F0 2.392
 (normally parses the positional parameters, b)4.892 F 2.392
 (ut if more ar)-.2 F 2.393(guments are gi)-.18 F -.15(ve)-.25 G 4.893
-(ni).15 G(n)-4.893 E 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 F1(ar)4.893 E(gs)-.37 E F0(,).27 E F3(getopts)144
+501.6 Q F0(parses those instead.)2.5 E F3(getopts)144 525.6 Q F0 1.166
 (can report errors in tw)3.666 F 3.665(ow)-.1 G 3.665(ays. If)-3.765 F
 1.165(the \214rst character of)3.665 F 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.07
-(reporting is used.)144 417.6 R 1.071
+(reporting is used.)144 537.6 R 1.071
 (In normal operation, diagnostic messages are printed when in)6.07 F
 -.25(va)-.4 G 1.071(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
+549.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 561.6 Q
 -.15(ve)-.25 G 2.5(ni).15 G 2.5(ft)-2.5 G(he \214rst character of)-2.5 E
-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
+F1(optstring)2.73 E F0(is not a colon.)2.72 E .666(If an in)144 585.6 R
+-.25(va)-.4 G .666(lid option is seen,).25 F F3(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
+597.6 R F4(OPT)2.9 E(ARG)-.81 E F5(.)A F0(If)4.899 E F3(getopts)2.899 E
+F0 .399(is silent, the option character found is placed in)2.899 F F4
 (OPT)2.899 E(ARG)-.81 E F0 .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
+(diagnostic message is printed.)144 609.6 Q 1.241(If a required ar)144
+633.6 R 1.241(gument is not found, and)-.18 F 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 F1(name)144 645.6
+Q F0(,).18 E F4(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 657.6 Q F1(name)2.86 E F0(and)2.68 E F4
+(OPT)2.5 E(ARG)-.81 E F0(is set to the option character found.)2.25 E F3
+(getopts)144 681.6 Q F0 .902
 (returns true if an option, speci\214ed or unspeci\214ed, is found.)
 3.401 F .902(It returns f)5.902 F .902(alse if the end of)-.1 F
-(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
-.858(Each time)144 602.4 R F2(hash)3.358 E F0 .858(is in)3.358 F -.2(vo)
--.4 G -.1(ke).2 G .858(d, the full pathname of the command).1 F F1(name)
-3.718 E F0 .858(is determined by searching)3.538 F .956
-(the directories in)144 614.4 R F2($P)3.456 E -.95(AT)-.74 G(H).95 E F0
-.956(and remembered.)3.456 F(An)5.956 E 3.456(yp)-.15 G(re)-3.456 E .956
-(viously-remembered pathname is discarded.)-.25 F .243(If the)144 626.4
-R F2<ad70>2.743 E F0 .243
-(option is supplied, no path search is performed, and)2.743 F F1
-(\214lename)4.653 E F0 .242(is used as the full \214lename)2.923 F 1.711
-(of the command.)144 638.4 R(The)6.711 E F2<ad72>4.211 E F0 1.711
-(option causes the shell to for)4.211 F 1.712
-(get all remembered locations.)-.18 F(The)6.712 E F2<ad64>4.212 E F0
-.833(option causes the shell to for)144 650.4 R .833
-(get the remembered location of each)-.18 F F1(name)3.333 E F0 5.833(.I)
-C 3.333(ft)-5.833 G(he)-3.333 E F2<ad74>3.333 E F0 .833(option is sup-)
-3.333 F .703(plied, the full pathname to which each)144 662.4 R F1(name)
-3.204 E F0 .704(corresponds is printed.)3.204 F .704(If multiple)5.704 F
-F1(name)3.204 E F0(ar)3.204 E(guments)-.18 E .795(are supplied with)144
-674.4 R F2<ad74>3.295 E F0 3.295(,t)C(he)-3.295 E F1(name)3.295 E F0
-.795(is printed before the hashed full pathname.)3.295 F(The)5.795 E F2
-<ad6c>3.295 E F0 .795(option causes)3.295 F .934
-(output to be displayed in a format that may be reused as input.)144
-686.4 R .934(If no ar)5.934 F .935(guments are gi)-.18 F -.15(ve)-.25 G
-.935(n, or if).15 F(only)144 698.4 Q F2<ad6c>2.822 E F0 .322
-(is supplied, information about remembered commands is printed.)2.822 F
-.321(The return status is true)5.321 F(unless a)144 710.4 Q F1(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 5.0)72 768 Q(2004 Apr 20)149.565 E(9)203.725 E 0 Cg EP
+(options is encountered or an error occurs.)144 693.6 Q(GNU Bash 5.0)72
+768 Q(2004 Apr 20)149.565 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 87.61
 (TINS\(1\) General)-.92 F(Commands Manual)2.5 E -.35(BA)90.11 G(SH_B).35
-E(UIL)-.1 E(TINS\(1\))-.92 E/F1 10/Times-Bold@0 SF(help)108 84 Q F0([)
-2.5 E F1(\255dms)A F0 2.5(][)C/F2 10/Times-Italic@0 SF(pattern)-2.5 E F0
-(])A .866(Display helpful information about b)144 96 R .867
-(uiltin commands.)-.2 F(If)5.867 E F2(pattern)4.617 E F0 .867
-(is speci\214ed,)3.607 F F1(help)3.367 E F0(gi)3.367 E -.15(ve)-.25 G
-3.367(sd).15 G(etailed)-3.367 E .307(help on all commands matching)144
-108 R F2(pattern)2.807 E F0 2.807(;o).24 G .307
+E(UIL)-.1 E(TINS\(1\))-.92 E/F1 10/Times-Bold@0 SF(hash)108 84 Q F0([)
+2.5 E F1(\255lr)A F0 2.5(][)C F1<ad70>-2.5 E/F2 10/Times-Italic@0 SF
+(\214lename)2.5 E F0 2.5(][)C F1(\255dt)-2.5 E F0 2.5(][)C F2(name)-2.5
+E F0(])A .858(Each time)144 96 R F1(hash)3.358 E F0 .858(is in)3.358 F
+-.2(vo)-.4 G -.1(ke).2 G .858(d, the full pathname of the command).1 F
+F2(name)3.718 E F0 .858(is determined by searching)3.538 F .956
+(the directories in)144 108 R F1($P)3.456 E -.95(AT)-.74 G(H).95 E F0
+.956(and remembered.)3.456 F(An)5.956 E 3.456(yp)-.15 G(re)-3.456 E .956
+(viously-remembered pathname is discarded.)-.25 F .243(If the)144 120 R
+F1<ad70>2.743 E F0 .243
+(option is supplied, no path search is performed, and)2.743 F F2
+(\214lename)4.653 E F0 .242(is used as the full \214lename)2.923 F 1.711
+(of the command.)144 132 R(The)6.711 E F1<ad72>4.211 E F0 1.711
+(option causes the shell to for)4.211 F 1.712
+(get all remembered locations.)-.18 F(The)6.712 E F1<ad64>4.212 E F0
+.833(option causes the shell to for)144 144 R .833
+(get the remembered location of each)-.18 F F2(name)3.333 E F0 5.833(.I)
+C 3.333(ft)-5.833 G(he)-3.333 E F1<ad74>3.333 E F0 .833(option is sup-)
+3.333 F .703(plied, the full pathname to which each)144 156 R F2(name)
+3.204 E F0 .704(corresponds is printed.)3.204 F .704(If multiple)5.704 F
+F2(name)3.204 E F0(ar)3.204 E(guments)-.18 E .795(are supplied with)144
+168 R F1<ad74>3.295 E F0 3.295(,t)C(he)-3.295 E F2(name)3.295 E F0 .795
+(is printed before the hashed full pathname.)3.295 F(The)5.795 E F1
+<ad6c>3.295 E F0 .795(option causes)3.295 F .934
+(output to be displayed in a format that may be reused as input.)144 180
+R .934(If no ar)5.934 F .935(guments are gi)-.18 F -.15(ve)-.25 G .935
+(n, or if).15 F(only)144 192 Q F1<ad6c>2.822 E F0 .322
+(is supplied, information about remembered commands is printed.)2.822 F
+.321(The return status is true)5.321 F(unless a)144 204 Q F2(name)2.86 E
+F0(is not found or an in)2.68 E -.25(va)-.4 G(lid option is supplied.)
+.25 E F1(help)108 220.8 Q F0([)2.5 E F1(\255dms)A F0 2.5(][)C F2
+(pattern)-2.5 E F0(])A .866(Display helpful information about b)144
+232.8 R .867(uiltin commands.)-.2 F(If)5.867 E F2(pattern)4.617 E F0
+.867(is speci\214ed,)3.607 F F1(help)3.367 E F0(gi)3.367 E -.15(ve)-.25
+G 3.367(sd).15 G(etailed)-3.367 E .307(help on all commands matching)144
+244.8 R F2(pattern)2.807 E F0 2.807(;o).24 G .307
 (therwise help for all the b)-2.807 F .306
-(uiltins and shell control struc-)-.2 F(tures is printed.)144 120 Q F1
-<ad64>144 132 Q F0(Display a short description of each)180 132 Q F2
-(pattern)2.5 E F1<ad6d>144 144 Q F0(Display the description of each)180
-144 Q F2(pattern)2.5 E F0(in a manpage-lik)2.5 E 2.5(ef)-.1 G(ormat)-2.5
-E F1<ad73>144 156 Q F0(Display only a short usage synopsis for each)180
-156 Q F2(pattern)2.5 E F0
-(The return status is 0 unless no command matches)144 172.8 Q F2
-(pattern)2.5 E F0(.).24 E F1(history [)108 189.6 Q F2(n)A F1(])A
-(history \255c)108 201.6 Q(history \255d)108 213.6 Q F2(of)2.5 E(fset)
--.18 E F1(history \255d)108 225.6 Q F2(start)2.5 E F0<ad>A F2(end)A F1
-(history \255anrw)108 237.6 Q F0([)2.5 E F2(\214lename)A F0(])A F1
-(history \255p)108 249.6 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 261.6 Q F2(ar)2.5 E(g)
+(uiltins and shell control struc-)-.2 F(tures is printed.)144 256.8 Q F1
+<ad64>144 268.8 Q F0(Display a short description of each)180 268.8 Q F2
+(pattern)2.5 E F1<ad6d>144 280.8 Q F0(Display the description of each)
+180 280.8 Q F2(pattern)2.5 E F0(in a manpage-lik)2.5 E 2.5(ef)-.1 G
+(ormat)-2.5 E F1<ad73>144 292.8 Q F0
+(Display only a short usage synopsis for each)180 292.8 Q F2(pattern)2.5
+E F0(The return status is 0 unless no command matches)144 309.6 Q F2
+(pattern)2.5 E F0(.).24 E F1(history [)108 326.4 Q F2(n)A F1(])A
+(history \255c)108 338.4 Q(history \255d)108 350.4 Q F2(of)2.5 E(fset)
+-.18 E F1(history \255d)108 362.4 Q F2(start)2.5 E F0<ad>A F2(end)A F1
+(history \255anrw)108 374.4 Q F0([)2.5 E F2(\214lename)A F0(])A F1
+(history \255p)108 386.4 Q F2(ar)2.5 E(g)-.37 E F0([)2.5 E F2(ar)A 2.5
+(g.)-.37 G(..)-2.5 E F0(])A F1(history \255s)108 398.4 Q F2(ar)2.5 E(g)
 -.37 E F0([)2.5 E F2(ar)A 2.5(g.)-.37 G(..)-2.5 E F0(])A -.4(Wi)144
-273.6 S .752
+410.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 .381(been modi\214ed.)144 285.6 R .38(An ar)5.38 F .38(gument of)-.18
+G .381(been modi\214ed.)144 422.4 R .38(An ar)5.38 F .38(gument of)-.18
 F F2(n)3.24 E F0 .38(lists only the last)3.12 F F2(n)3.24 E F0 2.88
 (lines. If)3.12 F .38(the shell v)2.88 F(ariable)-.25 E/F3 9
-/Times-Bold@0 SF(HISTTIMEFOR-)2.88 E(MA)144 297.6 Q(T)-.855 E F0 .264
+/Times-Bold@0 SF(HISTTIMEFOR-)2.88 E(MA)144 434.4 Q(T)-.855 E F0 .264
 (is set and not null, it is used as a format string for)2.514 F F2
 (strftime)2.765 E F0 .265(\(3\) to display the time stamp asso-)B 1.02
-(ciated with each displayed history entry)144 309.6 R 6.019(.N)-.65 G
+(ciated with each displayed history entry)144 446.4 R 6.019(.N)-.65 G
 3.519(oi)-6.019 G(nterv)-3.519 E 1.019
 (ening blank is printed between the formatted)-.15 F .176
-(time stamp and the history line.)144 321.6 R(If)5.176 E F2(\214lename)
+(time stamp and the history line.)144 458.4 R(If)5.176 E F2(\214lename)
 2.676 E F0 .176
 (is supplied, it is used as the name of the history \214le; if)2.676 F
-(not, the v)144 333.6 Q(alue of)-.25 E F3(HISTFILE)2.5 E F0(is used.)
+(not, the v)144 470.4 Q(alue of)-.25 E F3(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 345.6 Q F0
-(Clear the history list by deleting all the entries.)180 345.6 Q F1
-<ad64>144 357.6 Q F2(of)2.5 E(fset)-.18 E F0 .39
-(Delete the history entry at position)180 369.6 R F2(of)2.889 E(fset)
+(wing meanings:)-.25 E F1<ad63>144 482.4 Q F0
+(Clear the history list by deleting all the entries.)180 482.4 Q F1
+<ad64>144 494.4 Q F2(of)2.5 E(fset)-.18 E F0 .39
+(Delete the history entry at position)180 506.4 R F2(of)2.889 E(fset)
 -.18 E F0 5.389(.I)C(f)-5.389 E F2(of)2.889 E(fset)-.18 E F0 .389(is ne)
 2.889 F -.05(ga)-.15 G(ti).05 E -.15(ve)-.25 G 2.889(,i).15 G 2.889(ti)
 -2.889 G 2.889(si)-2.889 G .389(nterpreted as relati)-2.889 F -.15(ve)
 -.25 G .598(to one greater than the last history position, so ne)180
-381.6 R -.05(ga)-.15 G(ti).05 E .899 -.15(ve i)-.25 H .599
-(ndices count back from the end).15 F(of the history)180 393.6 Q 2.5(,a)
+518.4 R -.05(ga)-.15 G(ti).05 E .899 -.15(ve i)-.25 H .599
+(ndices count back from the end).15 F(of the history)180 530.4 Q 2.5(,a)
 -.65 G(nd an inde)-2.5 E 2.5(xo)-.15 G 2.5<66ad>-2.5 G 2.5(1r)-2.5 G
 (efers to the current)-2.5 E F1(history -d)2.5 E F0(command.)2.5 E F1
-<ad64>144 405.6 Q F2(start)2.5 E F0<ad>A F2(end)A F0 .758
-(Delete the history entries between positions)180 417.6 R F2(start)3.258
+<ad64>144 542.4 Q F2(start)2.5 E F0<ad>A F2(end)A F0 .758
+(Delete the history entries between positions)180 554.4 R F2(start)3.258
 E F0(and)3.257 E F2(end)3.257 E F0 3.257(,i)C(nclusi)-3.257 E -.15(ve)
 -.25 G 5.757(.P).15 G(ositi)-5.757 E 1.057 -.15(ve a)-.25 H .757(nd ne)
-.15 F -.05(ga)-.15 G(-).05 E(ti)180 429.6 Q .3 -.15(ve v)-.25 H
+.15 F -.05(ga)-.15 G(-).05 E(ti)180 566.4 Q .3 -.15(ve v)-.25 H
 (alues for)-.1 E F2(start)2.5 E F0(and)2.5 E F2(end)2.5 E F0
 (are interpreted as described abo)2.5 E -.15(ve)-.15 G(.).15 E F1<ad61>
-144 441.6 Q F0 .564(Append the `)180 441.6 R(`ne)-.74 E(w')-.25 E 3.064
+144 578.4 Q F0 .564(Append the `)180 578.4 R(`ne)-.74 E(w')-.25 E 3.064
 ('h)-.74 G .564(istory lines to the history \214le.)-3.064 F .565
-(These are history lines entered since)5.564 F(the be)180 453.6 Q
+(These are history lines entered since)5.564 F(the be)180 590.4 Q
 (ginning of the current)-.15 E F1(bash)2.5 E F0(session, b)2.5 E
-(ut not already appended to the history \214le.)-.2 E F1<ad6e>144 465.6
+(ut not already appended to the history \214le.)-.2 E F1<ad6e>144 602.4
 Q F0 .854(Read the history lines not already read from the history \214\
-le into the current history list.)180 465.6 R .772
-(These are lines appended to the history \214le since the be)180 477.6 R
+le into the current history list.)180 602.4 R .772
+(These are lines appended to the history \214le since the be)180 614.4 R
 .773(ginning of the current)-.15 F F1(bash)3.273 E F0(ses-)3.273 E
-(sion.)180 489.6 Q F1<ad72>144 501.6 Q F0(Read the contents of the hist\
-ory \214le and append them to the current history list.)180 501.6 Q F1
-<ad77>144 513.6 Q F0
-(Write the current history list to the history \214le, o)180 513.6 Q
+(sion.)180 626.4 Q F1<ad72>144 638.4 Q F0(Read the contents of the hist\
+ory \214le and append them to the current history list.)180 638.4 Q F1
+<ad77>144 650.4 Q F0
+(Write the current history list to the history \214le, o)180 650.4 Q
 -.15(ve)-.15 G(rwriting the history \214le').15 E 2.5(sc)-.55 G
-(ontents.)-2.5 E F1<ad70>144 525.6 Q F0 .626
-(Perform history substitution on the follo)180 525.6 R(wing)-.25 E F2
+(ontents.)-2.5 E F1<ad70>144 662.4 Q F0 .626
+(Perform history substitution on the follo)180 662.4 R(wing)-.25 E F2
 (ar)3.125 E(gs)-.37 E F0 .625(and display the result on the standard)
-3.125 F 2.975(output. Does)180 537.6 R .475
+3.125 F 2.975(output. Does)180 674.4 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 549.6 Q(xpansion.)-.15 E F1<ad73>144 561.6 Q F0
-.363(Store the)180 561.6 R F2(ar)3.193 E(gs)-.37 E F0 .363
+(normal history e)180 686.4 Q(xpansion.)-.15 E F1<ad73>144 698.4 Q F0
+.363(Store the)180 698.4 R F2(ar)3.193 E(gs)-.37 E F0 .363
 (in the history list as a single entry)3.133 F 5.363(.T)-.65 G .362
-(he last command in the history list is)-5.363 F(remo)180 573.6 Q -.15
+(he last command in the history list is)-5.363 F(remo)180 710.4 Q -.15
 (ve)-.15 G 2.5(db).15 G(efore the)-2.5 E F2(ar)2.83 E(gs)-.37 E F0
-(are added.)2.77 E .145(If the)144 590.4 R F3(HISTTIMEFORMA)2.645 E(T)
+(are added.)2.77 E .145(If the)144 727.2 R F3(HISTTIMEFORMA)2.645 E(T)
 -.855 E F0 -.25(va)2.395 G .145
 (riable is set, the time stamp information associated with each history)
-.25 F .669(entry is written to the history \214le, mark)144 602.4 R .669
-(ed with the history comment character)-.1 F 5.668(.W)-.55 G .668
-(hen the history)-5.668 F .955(\214le is read, lines be)144 614.4 R .956
-(ginning with the history comment character follo)-.15 F .956
-(wed immediately by a digit)-.25 F 1.796
-(are interpreted as timestamps for the follo)144 626.4 R 1.795
-(wing history entry)-.25 F 6.795(.T)-.65 G 1.795(he return v)-6.795 F
-1.795(alue is 0 unless an)-.25 F(in)144 638.4 Q -.25(va)-.4 G .768(lid \
-option is encountered, an error occurs while reading or writing the his\
-tory \214le, an in).25 F -.25(va)-.4 G(lid).25 E F2(of)144 650.4 Q(fset)
--.18 E F0 1.032(is supplied as an ar)3.532 F 1.031(gument to)-.18 F F1
-<ad64>3.531 E F0 3.531(,o)C 3.531(rt)-3.531 G 1.031(he history e)-3.531
-F 1.031(xpansion supplied as an ar)-.15 F 1.031(gument to)-.18 F F1
-<ad70>3.531 E F0 -.1(fa)144 662.4 S(ils.).1 E F1(jobs)108 679.2 Q F0([)
-2.5 E F1(\255lnprs)A F0 2.5(][)C F2(jobspec)A F0(... ])2.5 E F1
-(jobs \255x)108 691.2 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 703.2 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 715.2 Q F0
-(List process IDs in addition to the normal information.)180 715.2 Q
-(GNU Bash 5.0)72 768 Q(2004 Apr 20)149.565 E(10)198.725 E 0 Cg EP
+.25 F(GNU Bash 5.0)72 768 Q(2004 Apr 20)149.565 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 87.61
 (TINS\(1\) General)-.92 F(Commands Manual)2.5 E -.35(BA)90.11 G(SH_B).35
-E(UIL)-.1 E(TINS\(1\))-.92 E/F1 10/Times-Bold@0 SF<ad6e>144 84 Q F0 .193
-(Display information only about jobs that ha)180 84 R .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 96 Q F1<ad70>144 108 Q F0
-(List only the process ID of the job')180 108 Q 2.5(sp)-.55 G
-(rocess group leader)-2.5 E(.)-.55 E F1<ad72>144 120 Q F0
-(Display only running jobs.)180 120 Q F1<ad73>144 132 Q F0
-(Display only stopped jobs.)180 132 Q(If)144 148.8 Q/F2 10
-/Times-Italic@0 SF(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 160.8 Q
--.25(va)-.4 G(lid option is encountered or an in).25 E -.25(va)-.4 G
-(lid).25 E F2(jobspec)4.24 E F0(is supplied.)2.81 E .394(If the)144
-177.6 R F1<ad78>2.894 E F0 .394(option is supplied,)2.894 F F1(jobs)
-2.894 E F0 .394(replaces an)2.894 F(y)-.15 E F2(jobspec)4.634 E F0 .394
-(found in)3.204 F F2(command)3.094 E F0(or)3.664 E F2(ar)3.224 E(gs)-.37
-E F0 .395(with the corre-)3.164 F(sponding process group ID, and e)144
-189.6 Q -.15(xe)-.15 G(cutes).15 E F2(command)2.7 E F0(passing it)3.27 E
-F2(ar)2.5 E(gs)-.37 E F0 2.5(,r).27 G(eturning its e)-2.5 E(xit status.)
--.15 E F1(kill)108 206.4 Q F0([)2.5 E F1<ad73>A F2(sigspec)2.5 E F0(|)
-2.5 E F1<ad6e>2.5 E F2(signum)2.5 E F0(|)2.5 E F1<ad>2.5 E F2(sigspec)A
-F0 2.5(][)C F2(pid)-2.5 E F0(|)2.5 E F2(jobspec)2.5 E F0 2.5(].)C(..)
--2.5 E F1(kill \255l)108 218.4 Q F0(|)A F1<ad4c>A 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 230.4 R F2(sigspec)2.96 E F0(or)2.93 E F2
-(signum)2.96 E F0 .119(to the processes named by)2.939 F F2(pid)3.869 E
-F0(or)3.389 E F2(jobspec)2.619 E F0(.).31 E F2(sigspec)5.459 E F0(is)
-2.929 E .318(either a case-insensiti)144 242.4 R .618 -.15(ve s)-.25 H
+E(UIL)-.1 E(TINS\(1\))-.92 E .669
+(entry is written to the history \214le, mark)144 84 R .669
+(ed with the history comment character)-.1 F 5.668(.W)-.55 G .668
+(hen the history)-5.668 F .955(\214le is read, lines be)144 96 R .956
+(ginning with the history comment character follo)-.15 F .956
+(wed immediately by a digit)-.25 F 1.796
+(are interpreted as timestamps for the follo)144 108 R 1.795
+(wing history entry)-.25 F 6.795(.T)-.65 G 1.795(he return v)-6.795 F
+1.795(alue is 0 unless an)-.25 F(in)144 120 Q -.25(va)-.4 G .768(lid op\
+tion is encountered, an error occurs while reading or writing the histo\
+ry \214le, an in).25 F -.25(va)-.4 G(lid).25 E/F1 10/Times-Italic@0 SF
+(of)144 132 Q(fset)-.18 E F0 1.032(is supplied as an ar)3.532 F 1.031
+(gument to)-.18 F/F2 10/Times-Bold@0 SF<ad64>3.531 E F0 3.531(,o)C 3.531
+(rt)-3.531 G 1.031(he history e)-3.531 F 1.031
+(xpansion supplied as an ar)-.15 F 1.031(gument to)-.18 F F2<ad70>3.531
+E F0 -.1(fa)144 144 S(ils.).1 E F2(jobs)108 160.8 Q F0([)2.5 E F2
+(\255lnprs)A F0 2.5(][)C F1(jobspec)A F0(... ])2.5 E F2(jobs \255x)108
+172.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 184.8 Q .3 -.15(ve j)-.25 H 2.5
+(obs. The).15 F(options ha)2.5 E .3 -.15(ve t)-.2 H(he follo).15 E
+(wing meanings:)-.25 E F2<ad6c>144 196.8 Q F0
+(List process IDs in addition to the normal information.)180 196.8 Q F2
+<ad6e>144 208.8 Q F0 .193(Display information only about jobs that ha)
+180 208.8 R .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 220.8 Q F2<ad70>
+144 232.8 Q F0(List only the process ID of the job')180 232.8 Q 2.5(sp)
+-.55 G(rocess group leader)-2.5 E(.)-.55 E F2<ad72>144 244.8 Q F0
+(Display only running jobs.)180 244.8 Q F2<ad73>144 256.8 Q F0
+(Display only stopped jobs.)180 256.8 Q(If)144 273.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 285.6 Q -.25
+(va)-.4 G(lid option is encountered or an in).25 E -.25(va)-.4 G(lid).25
+E F1(jobspec)4.24 E F0(is supplied.)2.81 E .394(If the)144 302.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 314.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 331.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 343.2 Q F0(|)A F2<ad4c>A 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 355.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 367.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 254.4 Q F2(signum)4.189 E F0
-1.349(is a signal number)4.169 F 6.349(.I)-.55 G(f)-6.349 E F2(sigspec)
+(pre\214x\) or a signal)2.569 F(number;)144 379.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 266.4 Q .522(gument of)-.18
-F F1<ad6c>3.023 E F0 .523(lists the signal names.)3.023 F .523(If an)
+1.348(is assumed.)3.599 F(An)6.348 E(ar)144 391.2 Q .522(gument of)-.18
+F F2<ad6c>3.023 E F0 .523(lists the signal names.)3.023 F .523(If an)
 5.523 F 3.023(ya)-.15 G -.18(rg)-3.023 G .523(uments are supplied when)
-.18 F F1<ad6c>3.023 E F0 .523(is gi)3.023 F -.15(ve)-.25 G .523
-(n, the names).15 F .28(of the signals corresponding to the ar)144 278.4
+.18 F F2<ad6c>3.023 E F0 .523(is gi)3.023 F -.15(ve)-.25 G .523
+(n, the names).15 F .28(of the signals corresponding to the ar)144 403.2
 R .28(guments are listed, and the return status is 0.)-.18 F(The)5.28 E
-F2 -.2(ex)2.78 G(it_status).2 E F0(ar)144 290.4 Q .377(gument to)-.18 F
-F1<ad6c>2.877 E F0 .378
+F1 -.2(ex)2.78 G(it_status).2 E F0(ar)144 415.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 .963(nated by a signal.)144 302.4
-R(The)5.962 E F1<ad4c>3.462 E F0 .962(option is equi)3.462 F -.25(va)
--.25 G .962(lent to).25 F F1<ad6c>3.462 E F0(.)A F1(kill)5.962 E F0 .962
+(xit status of a process termi-)-.15 F .963(nated by a signal.)144 427.2
+R(The)5.962 E F2<ad4c>3.462 E F0 .962(option is equi)3.462 F -.25(va)
+-.25 G .962(lent to).25 F F2<ad6c>3.462 E F0(.)A F2(kill)5.962 E F0 .962
 (returns true if at least one signal w)3.462 F(as)-.1 E
-(successfully sent, or f)144 314.4 Q(alse if an error occurs or an in)
--.1 E -.25(va)-.4 G(lid option is encountered.).25 E F1(let)108 331.2 Q
-F2(ar)2.5 E(g)-.37 E F0([)2.5 E F2(ar)A(g)-.37 E F0(...])2.5 E(Each)144
-343.2 Q F2(ar)3.026 E(g)-.37 E F0 .196(is an arithmetic e)2.916 F .197
+(successfully sent, or f)144 439.2 Q(alse if an error occurs or an in)
+-.1 E -.25(va)-.4 G(lid option is encountered.).25 E F2(let)108 456 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
+468 Q F1(ar)3.026 E(g)-.37 E F0 .196(is an arithmetic e)2.916 F .197
 (xpression to be e)-.15 F -.25(va)-.25 G .197(luated \(see).25 F F3 .197
 (ARITHMETIC EV)2.697 F(ALU)-1.215 E -.855(AT)-.54 G(ION).855 E F0(abo)
-2.447 E -.15(ve)-.15 G 2.697(\). If).15 F(the last)144 355.2 Q F2(ar)
-2.83 E(g)-.37 E F0 -.25(eva)2.72 G(luates to 0,).25 E F1(let)2.5 E F0
-(returns 1; 0 is returned otherwise.)2.5 E F1(local)108 372 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
-(.. | \255 ])-2.5 E -.15(Fo)144 384 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 396 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
+2.447 E -.15(ve)-.15 G 2.697(\). If).15 F(the last)144 480 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 496.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
+(.. | \255 ])-2.5 E -.15(Fo)144 508.8 S 2.56(re).15 G .06(ach ar)-2.56 F
+.06(gument, a local v)-.18 F .06(ariable named)-.25 F F1(name)2.92 E F0
+.06(is created, and assigned)2.74 F F1(value)2.56 E F0 5.06(.T).18 G(he)
+-5.06 E F1(option)2.56 E F0 .06(can be)2.56 F(an)144 520.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
-408 Q F2(name)3.282 E F0 .422(to ha)3.102 F .722 -.15(ve a v)-.2 H .422
-(isible scope restricted to that function and its children.).15 F(If)
-5.421 E F2(name)2.921 E F0 .421(is \255, the set)2.921 F 1.461
-(of shell options is made local to the function in which)144 420 R F1
+532.8 Q F1(name)3.282 E F0 .422(to ha)3.102 F .722 -.15(ve a v)-.2 H
+.422(isible scope restricted to that function and its children.).15 F
+(If)5.421 E F1(name)2.921 E F0 .421(is \255, the set)2.921 F 1.461
+(of shell options is made local to the function in which)144 544.8 R F2
 (local)3.961 E F0 1.462(is in)3.961 F -.2(vo)-.4 G -.1(ke).2 G 1.462
-(d: shell options changed).1 F 1.563(using the)144 432 R F1(set)4.063 E
-F0 -.2(bu)4.063 G 1.563
+(d: shell options changed).1 F 1.563(using the)144 556.8 R F2(set)4.063
+F0 -.2(bu)4.063 G 1.563
 (iltin inside the function are restored to their original v).2 F 1.562
-(alues when the function)-.25 F 3.743(returns. W)144 444 R 1.243
-(ith no operands,)-.4 F F1(local)3.743 E F0 1.243
+(alues when the function)-.25 F 3.743(returns. W)144 568.8 R 1.243
+(ith no operands,)-.4 F F2(local)3.743 E F0 1.243
 (writes a list of local v)3.743 F 1.244
 (ariables to the standard output.)-.25 F 1.244(It is an)6.244 F .42
-(error to use)144 456 R F1(local)2.92 E F0 .42
+(error to use)144 580.8 R F2(local)2.92 E F0 .42
 (when not within a function.)2.92 F .42(The return status is 0 unless)
-5.42 F F1(local)2.92 E F0 .42(is used outside a)2.92 F(function, an in)
-144 468 Q -.25(va)-.4 G(lid).25 E F2(name)2.86 E F0(is supplied, or)2.68
-E F2(name)2.5 E F0(is a readonly v)2.5 E(ariable.)-.25 E F1(logout)108
-484.8 Q F0(Exit a login shell.)144 484.8 Q F1(map\214le)108 501.6 Q F0
-([)2.5 E F1<ad64>A F2(delim)2.5 E F0 2.5(][)C F1<ad6e>-2.5 E F2(count)
-2.5 E F0 2.5(][)C F1<ad4f>-2.5 E F2(origin)2.5 E F0 2.5(][)C F1<ad73>
--2.5 E F2(count)2.5 E F0 2.5(][)C F1<ad74>-2.5 E F0 2.5(][)C F1<ad75>
--2.5 E F2(fd)2.5 E F0 2.5(][)C F1<ad43>-2.5 E F2(callbac)2.5 E(k)-.2 E
-F0 2.5(][)C F1<ad63>-2.5 E F2(quantum)2.5 E F0 2.5(][)C F2(arr)-2.5 E
-(ay)-.15 E F0(])A F1 -.18(re)108 513.6 S(adarray).18 E F0([)2.5 E F1
-<ad64>A F2(delim)2.5 E F0 2.5(][)C F1<ad6e>-2.5 E F2(count)2.5 E F0 2.5
-(][)C F1<ad4f>-2.5 E F2(origin)2.5 E F0 2.5(][)C F1<ad73>-2.5 E F2
-(count)2.5 E F0 2.5(][)C F1<ad74>-2.5 E F0 2.5(][)C F1<ad75>-2.5 E F2
-(fd)2.5 E F0 2.5(][)C F1<ad43>-2.5 E F2(callbac)2.5 E(k)-.2 E F0 2.5(][)
-C F1<ad63>-2.5 E F2(quantum)2.5 E F0 2.5(][)C F2(arr)-2.5 E(ay)-.15 E F0
-(])A .179(Read lines from the standard input into the inde)144 525.6 R
--.15(xe)-.15 G 2.679(da).15 G .179(rray v)-2.679 F(ariable)-.25 E F2
+5.42 F F2(local)2.92 E F0 .42(is used outside a)2.92 F(function, an in)
+144 592.8 Q -.25(va)-.4 G(lid).25 E F1(name)2.86 E F0(is supplied, or)
+2.68 E F1(name)2.5 E F0(is a readonly v)2.5 E(ariable.)-.25 E F2(logout)
+108 609.6 Q F0(Exit a login shell.)144 609.6 Q F2(map\214le)108 626.4 Q
+F0([)2.5 E F2<ad64>A F1(delim)2.5 E F0 2.5(][)C F2<ad6e>-2.5 E F1(count)
+2.5 E F0 2.5(][)C F2<ad4f>-2.5 E F1(origin)2.5 E F0 2.5(][)C F2<ad73>
+-2.5 E F1(count)2.5 E F0 2.5(][)C F2<ad74>-2.5 E F0 2.5(][)C F2<ad75>
+-2.5 E F1(fd)2.5 E F0 2.5(][)C F2<ad43>-2.5 E F1(callbac)2.5 E(k)-.2 E
+F0 2.5(][)C F2<ad63>-2.5 E F1(quantum)2.5 E F0 2.5(][)C F1(arr)-2.5 E
+(ay)-.15 E F0(])A F2 -.18(re)108 638.4 S(adarray).18 E F0([)2.5 E F2
+<ad64>A F1(delim)2.5 E F0 2.5(][)C F2<ad6e>-2.5 E F1(count)2.5 E F0 2.5
+(][)C F2<ad4f>-2.5 E F1(origin)2.5 E F0 2.5(][)C F2<ad73>-2.5 E F1
+(count)2.5 E F0 2.5(][)C F2<ad74>-2.5 E F0 2.5(][)C F2<ad75>-2.5 E F1
+(fd)2.5 E F0 2.5(][)C F2<ad43>-2.5 E F1(callbac)2.5 E(k)-.2 E F0 2.5(][)
+C F2<ad63>-2.5 E F1(quantum)2.5 E F0 2.5(][)C F1(arr)-2.5 E(ay)-.15 E F0
+(])A .179(Read lines from the standard input into the inde)144 650.4 R
+-.15(xe)-.15 G 2.679(da).15 G .179(rray v)-2.679 F(ariable)-.25 E F1
 (arr)2.68 E(ay)-.15 E F0 2.68(,o).32 G 2.68(rf)-2.68 G .18
-(rom \214le descriptor)-2.68 F F2(fd)4.65 E F0 1.249(if the)144 537.6 R
-F1<ad75>3.749 E F0 1.249(option is supplied.)3.749 F 1.249(The v)6.249 F
+(rom \214le descriptor)-2.68 F F1(fd)4.65 E F0 1.249(if the)144 662.4 R
+F2<ad75>3.749 E F0 1.249(option is supplied.)3.749 F 1.249(The v)6.249 F
 (ariable)-.25 E F3(MAPFILE)3.749 E F0 1.249(is the def)3.499 F(ault)-.1
-E F2(arr)3.748 E(ay)-.15 E F0 6.248(.O)C 1.248(ptions, if supplied,)
--6.248 F(ha)144 549.6 Q .3 -.15(ve t)-.2 H(he follo).15 E
-(wing meanings:)-.25 E F1<ad64>144 561.6 Q F0 .91
-(The \214rst character of)180 561.6 R F2(delim)3.41 E F0 .911
+E F1(arr)3.748 E(ay)-.15 E F0 6.248(.O)C 1.248(ptions, if supplied,)
+-6.248 F(ha)144 674.4 Q .3 -.15(ve t)-.2 H(he follo).15 E
+(wing meanings:)-.25 E F2<ad64>144 686.4 Q F0 .91
+(The \214rst character of)180 686.4 R F1(delim)3.41 E F0 .911
 (is used to terminate each input line, rather than ne)3.41 F 3.411
-(wline. If)-.25 F F2(delim)180 573.6 Q F0(is the empty string,)2.5 E F1
+(wline. If)-.25 F F1(delim)180 698.4 Q F0(is the empty string,)2.5 E F2
 (map\214le)2.5 E F0(will terminate a line when it reads a NUL character)
-2.5 E(.)-.55 E F1<ad6e>144 585.6 Q F0(Cop)180 585.6 Q 2.5(ya)-.1 G 2.5
-(tm)-2.5 G(ost)-2.5 E F2(count)2.7 E F0 2.5(lines. If)3.18 F F2(count)
-2.5 E F0(is 0, all lines are copied.)2.5 E F1<ad4f>144 597.6 Q F0(Be)180
-597.6 Q(gin assigning to)-.15 E F2(arr)2.83 E(ay)-.15 E F0(at inde)2.82
-E(x)-.15 E F2(origin)2.5 E F0 5(.T).24 G(he def)-5 E(ault inde)-.1 E 2.5
-(xi)-.15 G 2.5(s0)-2.5 G(.)-2.5 E F1<ad73>144 609.6 Q F0
-(Discard the \214rst)180 609.6 Q F2(count)2.5 E F0(lines read.)2.5 E F1
-<ad74>144 621.6 Q F0(Remo)180 621.6 Q .3 -.15(ve a t)-.15 H(railing).15
-E F2(delim)2.5 E F0(\(def)2.5 E(ault ne)-.1 E
-(wline\) from each line read.)-.25 E F1<ad75>144 633.6 Q F0
-(Read lines from \214le descriptor)180 633.6 Q F2(fd)2.5 E F0
-(instead of the standard input.)2.5 E F1<ad43>144 645.6 Q F0(Ev)180
-645.6 Q(aluate)-.25 E F2(callbac)2.7 E(k)-.2 E F0(each time)3.17 E F2
-(quantum)2.5 E F0(lines are read.)2.5 E(The)5 E F1<ad63>2.5 E F0
-(option speci\214es)2.5 E F2(quantum)2.5 E F0(.).32 E F1<ad63>144 657.6
-Q F0(Specify the number of lines read between each call to)180 657.6 Q
-F2(callbac)2.5 E(k)-.2 E F0(.).67 E(If)144 674.4 Q F1<ad43>2.968 E F0
-.467(is speci\214ed without)2.967 F F1<ad63>2.967 E F0 2.967(,t)C .467
+2.5 E(.)-.55 E F2<ad6e>144 710.4 Q F0(Cop)180 710.4 Q 2.5(ya)-.1 G 2.5
+(tm)-2.5 G(ost)-2.5 E F1(count)2.7 E F0 2.5(lines. If)3.18 F F1(count)
+2.5 E F0(is 0, all lines are copied.)2.5 E(GNU Bash 5.0)72 768 Q
+(2004 Apr 20)149.565 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 87.61
+(TINS\(1\) General)-.92 F(Commands Manual)2.5 E -.35(BA)90.11 G(SH_B).35
+E(UIL)-.1 E(TINS\(1\))-.92 E/F1 10/Times-Bold@0 SF<ad4f>144 84 Q F0(Be)
+180 84 Q(gin assigning to)-.15 E/F2 10/Times-Italic@0 SF(arr)2.83 E(ay)
+-.15 E F0(at inde)2.82 E(x)-.15 E F2(origin)2.5 E F0 5(.T).24 G(he def)
+-5 E(ault inde)-.1 E 2.5(xi)-.15 G 2.5(s0)-2.5 G(.)-2.5 E F1<ad73>144 96
+Q F0(Discard the \214rst)180 96 Q F2(count)2.5 E F0(lines read.)2.5 E F1
+<ad74>144 108 Q F0(Remo)180 108 Q .3 -.15(ve a t)-.15 H(railing).15 E F2
+(delim)2.5 E F0(\(def)2.5 E(ault ne)-.1 E(wline\) from each line read.)
+-.25 E F1<ad75>144 120 Q F0(Read lines from \214le descriptor)180 120 Q
+F2(fd)2.5 E F0(instead of the standard input.)2.5 E F1<ad43>144 132 Q F0
+(Ev)180 132 Q(aluate)-.25 E F2(callbac)2.7 E(k)-.2 E F0(each time)3.17 E
+F2(quantum)2.5 E F0(lines are read.)2.5 E(The)5 E F1<ad63>2.5 E F0
+(option speci\214es)2.5 E F2(quantum)2.5 E F0(.).32 E F1<ad63>144 144 Q
+F0(Specify the number of lines read between each call to)180 144 Q F2
+(callbac)2.5 E(k)-.2 E F0(.).67 E(If)144 160.8 Q F1<ad43>2.968 E F0 .467
+(is speci\214ed without)2.967 F F1<ad63>2.967 E F0 2.967(,t)C .467
 (he def)-2.967 F .467(ault quantum is 5000.)-.1 F(When)5.467 E F2
 (callbac)2.967 E(k)-.2 E F0 .467(is e)2.967 F -.25(va)-.25 G .467
-(luated, it is sup-).25 F .261(plied the inde)144 686.4 R 2.761(xo)-.15
+(luated, it is sup-).25 F .261(plied the inde)144 172.8 R 2.761(xo)-.15
 G 2.761(ft)-2.761 G .261(he ne)-2.761 F .262(xt array element to be ass\
 igned and the line to be assigned to that element)-.15 F .275
-(as additional ar)144 698.4 R(guments.)-.18 E F2(callbac)5.275 E(k)-.2 E
+(as additional ar)144 184.8 R(guments.)-.18 E F2(callbac)5.275 E(k)-.2 E
 F0 .275(is e)2.775 F -.25(va)-.25 G .274
 (luated after the line is read b).25 F .274
-(ut before the array element is)-.2 F(assigned.)144 710.4 Q
-(If not supplied with an e)144 727.2 Q(xplicit origin,)-.15 E F1
+(ut before the array element is)-.2 F(assigned.)144 196.8 Q
+(If not supplied with an e)144 213.6 Q(xplicit origin,)-.15 E F1
 (map\214le)2.5 E F0(will clear)2.5 E F2(arr)2.5 E(ay)-.15 E F0
-(before assigning to it.)2.5 E(GNU Bash 5.0)72 768 Q(2004 Apr 20)149.565
-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 87.61
-(TINS\(1\) General)-.92 F(Commands Manual)2.5 E -.35(BA)90.11 G(SH_B).35
-E(UIL)-.1 E(TINS\(1\))-.92 E/F1 10/Times-Bold@0 SF(map\214le)144 84 Q F0
-1.905(returns successfully unless an in)4.405 F -.25(va)-.4 G 1.905
-(lid option or option ar).25 F 1.906(gument is supplied,)-.18 F/F2 10
-/Times-Italic@0 SF(arr)4.406 E(ay)-.15 E F0(is)4.406 E(in)144 96 Q -.25
-(va)-.4 G(lid or unassignable, or if).25 E F2(arr)2.5 E(ay)-.15 E F0
+(before assigning to it.)2.5 E F1(map\214le)144 230.4 Q F0 1.905
+(returns successfully unless an in)4.405 F -.25(va)-.4 G 1.905
+(lid option or option ar).25 F 1.906(gument is supplied,)-.18 F F2(arr)
+4.406 E(ay)-.15 E F0(is)4.406 E(in)144 242.4 Q -.25(va)-.4 G
+(lid or unassignable, or if).25 E F2(arr)2.5 E(ay)-.15 E F0
 (is not an inde)2.5 E -.15(xe)-.15 G 2.5(da).15 G(rray)-2.5 E(.)-.65 E
-F1(popd)108 112.8 Q F0<5bad>2.5 E F1(n)A F0 2.5(][)C(+)-2.5 E F2(n)A F0
-2.5(][)C<ad>-2.5 E F2(n)A F0(])A(Remo)144 124.8 Q -.15(ve)-.15 G 2.8(se)
+F1(popd)108 259.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 271.2 Q -.15(ve)-.15 G 2.8(se)
 .15 G .3(ntries from the directory stack.)-2.8 F -.4(Wi)5.299 G .299
 (th no ar).4 F .299(guments, remo)-.18 F -.15(ve)-.15 G 2.799(st).15 G
 .299(he top directory from the)-2.799 F 1.478(stack, and performs a)144
-136.8 R F1(cd)3.978 E F0 1.479(to the ne)3.978 F 3.979(wt)-.25 G 1.479
+283.2 R F1(cd)3.978 E F0 1.479(to the ne)3.978 F 3.979(wt)-.25 G 1.479
 (op directory)-3.979 F 6.479(.A)-.65 G -.18(rg)-6.479 G 1.479
 (uments, if supplied, ha).18 F 1.779 -.15(ve t)-.2 H 1.479(he follo).15
-F(wing)-.25 E(meanings:)144 148.8 Q F1<ad6e>144 160.8 Q F0 .551
-(Suppresses the normal change of directory when remo)180 160.8 R .551
+F(wing)-.25 E(meanings:)144 295.2 Q F1<ad6e>144 307.2 Q F0 .551
+(Suppresses the normal change of directory when remo)180 307.2 R .551
 (ving directories from the stack, so)-.15 F
-(that only the stack is manipulated.)180 172.8 Q F1(+)144 184.8 Q F2(n)A
-F0(Remo)180 184.8 Q -.15(ve)-.15 G 2.64(st).15 G(he)-2.64 E F2(n)2.64 E
+(that only the stack is manipulated.)180 319.2 Q F1(+)144 331.2 Q F2(n)A
+F0(Remo)180 331.2 Q -.15(ve)-.15 G 2.64(st).15 G(he)-2.64 E F2(n)2.64 E
 F0 .14(th entry counting from the left of the list sho)B .14(wn by)-.25
 F F1(dirs)2.64 E F0 2.64(,s)C .14(tarting with zero.)-2.64 F -.15(Fo)180
-196.8 S 2.5(re).15 G(xample:)-2.65 E/F3 10/Courier@0 SF(popd +0)2.5 E F0
+343.2 S 2.5(re).15 G(xample:)-2.65 E/F3 10/Courier@0 SF(popd +0)2.5 E F0
 (remo)2.5 E -.15(ve)-.15 G 2.5(st).15 G(he \214rst directory)-2.5 E(,)
--.65 E F3(popd +1)2.5 E F0(the second.)2.5 E F1<ad>144 208.8 Q F2(n)A F0
-(Remo)180 208.8 Q -.15(ve)-.15 G 3.76(st).15 G(he)-3.76 E F2(n)3.76 E F0
+-.65 E F3(popd +1)2.5 E F0(the second.)2.5 E F1<ad>144 355.2 Q F2(n)A F0
+(Remo)180 355.2 Q -.15(ve)-.15 G 3.76(st).15 G(he)-3.76 E F2(n)3.76 E F0
 1.259(th entry counting from the right of the list sho)B 1.259(wn by)
 -.25 F F1(dirs)3.759 E F0 3.759(,s)C 1.259(tarting with)-3.759 F 2.5
-(zero. F)180 220.8 R(or e)-.15 E(xample:)-.15 E F3(popd -0)2.5 E F0
+(zero. F)180 367.2 R(or e)-.15 E(xample:)-.15 E F3(popd -0)2.5 E F0
 (remo)2.5 E -.15(ve)-.15 G 2.5(st).15 G(he last directory)-2.5 E(,)-.65
 E F3(popd -1)2.5 E F0(the ne)2.5 E(xt to last.)-.15 E .643(If the)144
-237.6 R F1(popd)3.143 E F0 .643(command is successful, a)3.143 F F1
-(dirs)3.143 E F0 .644(is performed as well, and the return status is 0.)
-3.143 F F1(popd)5.644 E F0 .416(returns f)144 249.6 R .416
-(alse if an in)-.1 F -.25(va)-.4 G .415
+384 R F1(popd)3.143 E F0 .643(command is successful, a)3.143 F F1(dirs)
+3.143 E F0 .644(is performed as well, and the return status is 0.)3.143
+F F1(popd)5.644 E F0 .416(returns f)144 396 R .416(alse if an in)-.1 F
+-.25(va)-.4 G .415
 (lid option is encountered, the directory stack is empty).25 F 2.915
 (,an)-.65 G(on-e)-2.915 E .415(xistent direc-)-.15 F
-(tory stack entry is speci\214ed, or the directory change f)144 261.6 Q
-(ails.)-.1 E F1(printf)108 278.4 Q F0([)2.5 E F1<ad76>A F2(var)2.5 E F0
+(tory stack entry is speci\214ed, or the directory change f)144 408 Q
+(ails.)-.1 E F1(printf)108 424.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 1.436
-(Write the formatted)144 290.4 R F2(ar)3.936 E(guments)-.37 E F0 1.437
+(Write the formatted)144 436.8 R F2(ar)3.936 E(guments)-.37 E F0 1.437
 (to the standard output under the control of the)3.936 F F2(format)3.937
 E F0 6.437(.T)C(he)-6.437 E F1<ad76>3.937 E F0 .126
-(option causes the output to be assigned to the v)144 302.4 R(ariable)
+(option causes the output to be assigned to the v)144 448.8 R(ariable)
 -.25 E F2(var)2.626 E F0 .126(rather than being printed to the standard)
-2.626 F(output.)144 314.4 Q(The)144 338.4 Q F2(format)3.017 E F0 .517(i\
+2.626 F(output.)144 460.8 Q(The)144 484.8 Q F2(format)3.017 E F0 .517(i\
 s a character string which contains three types of objects: plain chara\
 cters, which are)3.017 F .704(simply copied to standard output, charact\
-er escape sequences, which are con)144 350.4 R -.15(ve)-.4 G .703
+er escape sequences, which are con)144 496.8 R -.15(ve)-.4 G .703
 (rted and copied to).15 F .036(the standard output, and format speci\
-\214cations, each of which causes printing of the ne)144 362.4 R .037
-(xt successi)-.15 F -.15(ve)-.25 G F2(ar)144 374.4 Q(gument)-.37 E F0
+\214cations, each of which causes printing of the ne)144 508.8 R .037
+(xt successi)-.15 F -.15(ve)-.25 G F2(ar)144 520.8 Q(gument)-.37 E F0
 5.532(.I)C 3.032(na)-5.532 G .532(ddition to the standard)-3.032 F F2
 (printf)3.032 E F0 .532(\(1\) format speci\214cations,)B F1(printf)3.031
-E F0 .531(interprets the follo)3.031 F(w-)-.25 E(ing e)144 386.4 Q
-(xtensions:)-.15 E F1(%b)144 398.4 Q F0(causes)180 398.4 Q F1(printf)
+E F0 .531(interprets the follo)3.031 F(w-)-.25 E(ing e)144 532.8 Q
+(xtensions:)-.15 E F1(%b)144 544.8 Q F0(causes)180 544.8 Q F1(printf)
 2.595 E F0 .096(to e)2.595 F .096
 (xpand backslash escape sequences in the corresponding)-.15 F F2(ar)
-2.596 E(gument)-.37 E F0 .096(in the)2.596 F(same w)180 410.4 Q(ay as)
--.1 E F1(echo \255e)2.5 E F0(.)A F1(%q)144 422.4 Q F0(causes)180 422.4 Q
+2.596 E(gument)-.37 E F0 .096(in the)2.596 F(same w)180 556.8 Q(ay as)
+-.1 E F1(echo \255e)2.5 E F0(.)A F1(%q)144 568.8 Q F0(causes)180 568.8 Q
 F1(printf)2.51 E F0 .01(to output the corresponding)2.51 F F2(ar)2.51 E
 (gument)-.37 E F0 .01(in a format that can be reused as shell)2.51 F
-(input.)180 434.4 Q F1(%\()144 446.4 Q F2(datefmt)A F1(\)T)A F0(causes)
-180 458.4 Q F1(printf)4.403 E F0 1.904
+(input.)180 580.8 Q F1(%\()144 592.8 Q F2(datefmt)A F1(\)T)A F0(causes)
+180 604.8 Q F1(printf)4.403 E F0 1.904
 (to output the date-time string resulting from using)4.403 F F2(datefmt)
-4.404 E F0 1.904(as a format)4.404 F .381(string for)180 470.4 R F2
+4.404 E F0 1.904(as a format)4.404 F .381(string for)180 616.8 R F2
 (strftime)2.881 E F0 2.881(\(3\). The)B(corresponding)2.881 E F2(ar)
 2.881 E(gument)-.37 E F0 .381(is an inte)2.881 F .381
 (ger representing the number)-.15 F .292(of seconds since the epoch.)180
-482.4 R -1 -.8(Tw o)5.293 H .293(special ar)3.593 F .293(gument v)-.18 F
+628.8 R -1 -.8(Tw o)5.293 H .293(special ar)3.593 F .293(gument v)-.18 F
 .293(alues may be used: \2551 represents the)-.25 F .694
-(current time, and \2552 represents the time the shell w)180 494.4 R
+(current time, and \2552 represents the time the shell w)180 640.8 R
 .693(as in)-.1 F -.2(vo)-.4 G -.1(ke).2 G 3.193(d. If).1 F .693(no ar)
-3.193 F .693(gument is speci-)-.18 F .21(\214ed, con)180 506.4 R -.15
+3.193 F .693(gument is speci-)-.18 F .21(\214ed, con)180 652.8 R -.15
 (ve)-.4 G .21(rsion beha).15 F -.15(ve)-.2 G 2.71(sa).15 G 2.71(si)-2.71
 G 2.71<66ad>-2.71 G 2.71(1h)-2.71 G .21(ad been gi)-2.71 F -.15(ve)-.25
 G 2.71(n. This).15 F .21(is an e)2.71 F .21(xception to the usual)-.15 F
-F1(printf)2.71 E F0(beha)180 518.4 Q(vior)-.2 E(.)-.55 E(Ar)144 535.2 Q
+F1(printf)2.71 E F0(beha)180 664.8 Q(vior)-.2 E(.)-.55 E(Ar)144 681.6 Q
 .464(guments to non-string format speci\214ers are treated as C constan\
 ts, e)-.18 F .463(xcept that a leading plus or)-.15 F 1.258
-(minus sign is allo)144 547.2 R 1.259
+(minus sign is allo)144 693.6 R 1.259
 (wed, and if the leading character is a single or double quote, the v)
--.25 F 1.259(alue is the)-.25 F(ASCII v)144 559.2 Q(alue of the follo)
--.25 E(wing character)-.25 E(.)-.55 E(The)144 576 Q F2(format)3.424 E F0
-.923(is reused as necessary to consume all of the)3.424 F F2(ar)3.423 E
-(guments)-.37 E F0 5.923(.I)C 3.423(ft)-5.923 G(he)-3.423 E F2(format)
-3.423 E F0 .923(requires more)3.423 F F2(ar)144 588 Q(guments)-.37 E F0
-.033(than are supplied, the e)2.533 F .033
-(xtra format speci\214cations beha)-.15 F .333 -.15(ve a)-.2 H 2.533(si)
-.15 G 2.533(faz)-2.533 G .033(ero v)-2.533 F .034(alue or null string,)
--.25 F(as appropriate, had been supplied.)144 600 Q(The return v)5 E
-(alue is zero on success, non-zero on f)-.25 E(ailure.)-.1 E F1(pushd)
-108 616.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 628.8 Q F0([)2.5 E F1<ad6e>A F0
-2.5(][)C F2(dir)-2.5 E F0(])A .64(Adds a directory to the top of the di\
-rectory stack, or rotates the stack, making the ne)144 640.8 R 3.139(wt)
--.25 G .639(op of the)-3.139 F .416(stack the current w)144 652.8 R .416
-(orking directory)-.1 F 5.416(.W)-.65 G .416(ith no ar)-5.816 F
-(guments,)-.18 E F1(pushd)2.916 E F0 -.15(ex)2.916 G .416
-(changes the top tw).15 F 2.917(od)-.1 G(irectories)-2.917 E 1.625
-(and returns 0, unless the directory stack is empty)144 664.8 R 6.625
-(.A)-.65 G -.18(rg)-6.625 G 1.625(uments, if supplied, ha).18 F 1.925
--.15(ve t)-.2 H 1.625(he follo).15 F(wing)-.25 E(meanings:)144 676.8 Q
-F1<ad6e>144 688.8 Q F0 1.811(Suppresses the normal change of directory \
-when rotating or adding directories to the)180 688.8 R
-(stack, so that only the stack is manipulated.)180 700.8 Q F1(+)144
-712.8 Q F2(n)A F0 1.268(Rotates the stack so that the)180 712.8 R F2(n)
-3.768 E F0 1.267(th directory \(counting from the left of the list sho)B
-1.267(wn by)-.25 F F1(dirs)180 724.8 Q F0 2.5(,s)C
-(tarting with zero\) is at the top.)-2.5 E(GNU Bash 5.0)72 768 Q
-(2004 Apr 20)149.565 E(12)198.725 E 0 Cg EP
+-.25 F 1.259(alue is the)-.25 F(ASCII v)144 705.6 Q(alue of the follo)
+-.25 E(wing character)-.25 E(.)-.55 E(The)144 722.4 Q F2(format)3.424 E
+F0 .923(is reused as necessary to consume all of the)3.424 F F2(ar)3.423
+E(guments)-.37 E F0 5.923(.I)C 3.423(ft)-5.923 G(he)-3.423 E F2(format)
+3.423 E F0 .923(requires more)3.423 F(GNU Bash 5.0)72 768 Q(2004 Apr 20)
+149.565 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 87.61
 (TINS\(1\) General)-.92 F(Commands Manual)2.5 E -.35(BA)90.11 G(SH_B).35
-E(UIL)-.1 E(TINS\(1\))-.92 E/F1 10/Times-Bold@0 SF<ad>144 84 Q/F2 10
-/Times-Italic@0 SF(n)A F0 .92(Rotates the stack so that the)180 84 R 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 96 Q F0 2.5(,s)C
-(tarting with zero\) is at the top.)-2.5 E F2(dir)144.35 108 Q F0(Adds)
-180 108 Q F2(dir)3.138 E F0 .288
+E(UIL)-.1 E(TINS\(1\))-.92 E/F1 10/Times-Italic@0 SF(ar)144 84 Q
+(guments)-.37 E F0 .033(than are supplied, the e)2.533 F .033
+(xtra format speci\214cations beha)-.15 F .333 -.15(ve a)-.2 H 2.533(si)
+.15 G 2.533(faz)-2.533 G .033(ero v)-2.533 F .034(alue or null string,)
+-.25 F(as appropriate, had been supplied.)144 96 Q(The return v)5 E
+(alue is zero on success, non-zero on f)-.25 E(ailure.)-.1 E/F2 10
+/Times-Bold@0 SF(pushd)108 112.8 Q F0([)2.5 E F2<ad6e>A F0 2.5(][)C(+)
+-2.5 E F1(n)A F0 2.5(][)C<ad>-2.5 E F1(n)A F0(])A F2(pushd)108 124.8 Q
+F0([)2.5 E F2<ad6e>A F0 2.5(][)C F1(dir)-2.5 E F0(])A .64(Adds a direct\
+ory to the top of the directory stack, or rotates the stack, making the\
+ ne)144 136.8 R 3.139(wt)-.25 G .639(op of the)-3.139 F .416
+(stack the current w)144 148.8 R .416(orking directory)-.1 F 5.416(.W)
+-.65 G .416(ith no ar)-5.816 F(guments,)-.18 E F2(pushd)2.916 E F0 -.15
+(ex)2.916 G .416(changes the top tw).15 F 2.917(od)-.1 G(irectories)
+-2.917 E 1.625(and returns 0, unless the directory stack is empty)144
+160.8 R 6.625(.A)-.65 G -.18(rg)-6.625 G 1.625(uments, if supplied, ha)
+.18 F 1.925 -.15(ve t)-.2 H 1.625(he follo).15 F(wing)-.25 E(meanings:)
+144 172.8 Q F2<ad6e>144 184.8 Q F0 1.811(Suppresses the normal change o\
+f directory when rotating or adding directories to the)180 184.8 R
+(stack, so that only the stack is manipulated.)180 196.8 Q F2(+)144
+208.8 Q F1(n)A F0 1.268(Rotates the stack so that the)180 208.8 R F1(n)
+3.768 E F0 1.267(th directory \(counting from the left of the list sho)B
+1.267(wn by)-.25 F F2(dirs)180 220.8 Q F0 2.5(,s)C
+(tarting with zero\) is at the top.)-2.5 E F2<ad>144 232.8 Q F1(n)A F0
+.92(Rotates the stack so that the)180 232.8 R F1(n)3.42 E F0 .92
+(th directory \(counting from the right of the list sho)B .92(wn by)-.25
+F F2(dirs)180 244.8 Q F0 2.5(,s)C(tarting with zero\) is at the top.)
+-2.5 E F1(dir)144.35 256.8 Q F0(Adds)180 256.8 Q F1(dir)3.138 E F0 .288
 (to the directory stack at the top, making it the ne)3.518 F 2.787(wc)
 -.25 G .287(urrent w)-2.787 F .287(orking directory as)-.1 F
-(if it had been supplied as the ar)180 120 Q(gument to the)-.18 E F1(cd)
-2.5 E F0 -.2(bu)2.5 G(iltin.).2 E .488(If the)144 136.8 R F1(pushd)2.988
-E F0 .488(command is successful, a)2.988 F F1(dirs)2.988 E F0 .488
+(if it had been supplied as the ar)180 268.8 Q(gument to the)-.18 E F2
+(cd)2.5 E F0 -.2(bu)2.5 G(iltin.).2 E .488(If the)144 285.6 R F2(pushd)
+2.988 E F0 .488(command is successful, a)2.988 F F2(dirs)2.988 E F0 .488
 (is performed as well.)2.988 F .489(If the \214rst form is used,)5.488 F
-F1(pushd)2.989 E F0 1.04(returns 0 unless the cd to)144 148.8 R F2(dir)
+F2(pushd)2.989 E F0 1.04(returns 0 unless the cd to)144 297.6 R F1(dir)
 3.89 E F0 -.1(fa)4.27 G 3.539(ils. W).1 F 1.039(ith the second form,)-.4
-F F1(pushd)3.539 E F0 1.039(returns 0 unless the directory)3.539 F .846
-(stack is empty)144 160.8 R 3.346(,an)-.65 G(on-e)-3.346 E .847(xistent\
+F F2(pushd)3.539 E F0 1.039(returns 0 unless the directory)3.539 F .846
+(stack is empty)144 309.6 R 3.346(,an)-.65 G(on-e)-3.346 E .847(xistent\
  directory stack element is speci\214ed, or the directory change to the)
--.15 F(speci\214ed ne)144 172.8 Q 2.5(wc)-.25 G(urrent directory f)-2.5
-E(ails.)-.1 E F1(pwd)108 189.6 Q F0([)2.5 E F1(\255LP)A F0(])A .845
-(Print the absolute pathname of the current w)144 201.6 R .845
+-.15 F(speci\214ed ne)144 321.6 Q 2.5(wc)-.25 G(urrent directory f)-2.5
+E(ails.)-.1 E F2(pwd)108 338.4 Q F0([)2.5 E F2(\255LP)A F0(])A .845
+(Print the absolute pathname of the current w)144 350.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
-213.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
+362.4 R F2<ad50>2.681 E F0 .181(option is supplied or the)2.681 F F2
+.181(\255o ph)2.681 F(ysical)-.15 E F0 .181(option to the)2.681 F F2
 (set)2.681 E F0 -.2(bu)2.681 G .182(iltin command is).2 F 3.264
-(enabled. If)144 225.6 R(the)3.264 E F1<ad4c>3.264 E F0 .763
+(enabled. If)144 374.4 R(the)3.264 E F2<ad4c>3.264 E F0 .763
 (option is used, the pathname printed may contain symbolic links.)3.264
 F .763(The return)5.763 F 1.36(status is 0 unless an error occurs while\
- reading the name of the current directory or an in)144 237.6 R -.25(va)
--.4 G(lid).25 E(option is supplied.)144 249.6 Q F1 -.18(re)108 266.4 S
-(ad).18 E F0([)3.817 E F1(\255ers)A F0 3.817(][)C F1<ad61>-3.817 E F2
-(aname)3.817 E F0 3.817(][)C F1<ad64>-3.817 E F2(delim)3.817 E F0 3.817
-(][)C F1<ad69>-3.817 E F2(te)3.817 E(xt)-.2 E F0 3.817(][)C F1<ad6e>
--3.817 E F2(nc)3.816 E(har)-.15 E(s)-.1 E F0 3.816(][)C F1<ad4e>-3.816 E
-F2(nc)3.816 E(har)-.15 E(s)-.1 E F0 3.816(][)C F1<ad70>-3.816 E F2(pr)
-3.816 E(ompt)-.45 E F0 3.816(][)C F1<ad74>-3.816 E F2(timeout)3.816 E F0
-3.816(][)C F1<ad75>-3.816 E F2(fd)3.816 E F0(])A([)108 278.4 Q F2(name)A
+ reading the name of the current directory or an in)144 386.4 R -.25(va)
+-.4 G(lid).25 E(option is supplied.)144 398.4 Q F2 -.18(re)108 415.2 S
+(ad).18 E F0([)3.817 E F2(\255ers)A F0 3.817(][)C F2<ad61>-3.817 E F1
+(aname)3.817 E F0 3.817(][)C F2<ad64>-3.817 E F1(delim)3.817 E F0 3.817
+(][)C F2<ad69>-3.817 E F1(te)3.817 E(xt)-.2 E F0 3.817(][)C F2<ad6e>
+-3.817 E F1(nc)3.816 E(har)-.15 E(s)-.1 E F0 3.816(][)C F2<ad4e>-3.816 E
+F1(nc)3.816 E(har)-.15 E(s)-.1 E F0 3.816(][)C F2<ad70>-3.816 E F1(pr)
+3.816 E(ompt)-.45 E F0 3.816(][)C F2<ad74>-3.816 E F1(timeout)3.816 E F0
+3.816(][)C F2<ad75>-3.816 E F1(fd)3.816 E F0(])A([)108 427.2 Q F1(name)A
 F0(...])2.5 E .516(One line is read from the standard input, or from th\
-e \214le descriptor)144 290.4 R F2(fd)3.016 E F0 .516(supplied as an ar)
-3.016 F .517(gument to)-.18 F(the)144 302.4 Q F1<ad75>3.848 E F0 1.348
+e \214le descriptor)144 439.2 R F1(fd)3.016 E F0 .516(supplied as an ar)
+3.016 F .517(gument to)-.18 F(the)144 451.2 Q F2<ad75>3.848 E F0 1.348
 (option, split into w)3.848 F 1.348(ords as described abo)-.1 F 1.647
--.15(ve u)-.15 H(nder).15 E F1 -.75(Wo)3.847 G 1.347(rd Splitting).75 F
+-.15(ve u)-.15 H(nder).15 E F2 -.75(Wo)3.847 G 1.347(rd Splitting).75 F
 F0 3.847(,a)C 1.347(nd the \214rst w)-3.847 F 1.347(ord is)-.1 F 1.465
-(assigned to the \214rst)144 314.4 R F2(name)3.965 E F0 3.965(,t).18 G
-1.465(he second w)-3.965 F 1.465(ord to the second)-.1 F F2(name)3.965 E
+(assigned to the \214rst)144 463.2 R F1(name)3.965 E F0 3.965(,t).18 G
+1.465(he second w)-3.965 F 1.465(ord to the second)-.1 F F1(name)3.965 E
 F0 3.965(,a).18 G 1.465(nd so on.)-3.965 F 1.465(If there are more)6.465
-F -.1(wo)144 326.4 S 1.112(rds than names, the remaining w).1 F 1.112
+F -.1(wo)144 475.2 S 1.112(rds than names, the remaining w).1 F 1.112
 (ords and their interv)-.1 F 1.112
-(ening delimiters are assigned to the last)-.15 F F2(name)144 338.4 Q F0
+(ening delimiters are assigned to the last)-.15 F F1(name)144 487.2 Q F0
 5.722(.I).18 G 3.222(ft)-5.722 G .722(here are fe)-3.222 F .722(wer w)
 -.25 F .723
 (ords read from the input stream than names, the remaining names are)-.1
-F .532(assigned empty v)144 350.4 R 3.032(alues. The)-.25 F .532
+F .532(assigned empty v)144 499.2 R 3.032(alues. The)-.25 F .532
 (characters in)3.032 F/F3 9/Times-Bold@0 SF(IFS)3.032 E F0 .531
 (are used to split the line into w)2.782 F .531(ords using the same)-.1
-F .197(rules the shell uses for e)144 362.4 R .197
-(xpansion \(described abo)-.15 F .497 -.15(ve u)-.15 H(nder).15 E F1
+F .197(rules the shell uses for e)144 511.2 R .197
+(xpansion \(described abo)-.15 F .497 -.15(ve u)-.15 H(nder).15 E F2
 -.75(Wo)2.697 G .197(rd Splitting).75 F F0 2.697(\). The)B .197
-(backslash charac-)2.697 F .157(ter \()144 374.4 R F1(\\)A F0 2.657(\)m)
+(backslash charac-)2.697 F .157(ter \()144 523.2 R F2(\\)A F0 2.657(\)m)
 C .157(ay be used to remo)-2.657 F .457 -.15(ve a)-.15 H .457 -.15(ny s)
 .15 H .157(pecial meaning for the ne).15 F .156
 (xt character read and for line continu-)-.15 F 2.5(ation. Options,)144
-386.4 R(if supplied, ha)2.5 E .3 -.15(ve t)-.2 H(he follo).15 E
-(wing meanings:)-.25 E F1<ad61>144 398.4 Q F2(aname)2.5 E F0 1.049
-(The w)180 410.4 R 1.049
+535.2 R(if supplied, ha)2.5 E .3 -.15(ve t)-.2 H(he follo).15 E
+(wing meanings:)-.25 E F2<ad61>144 547.2 Q F1(aname)2.5 E F0 1.049
+(The w)180 559.2 R 1.049
 (ords are assigned to sequential indices of the array v)-.1 F(ariable)
--.25 E F2(aname)3.55 E F0 3.55(,s).18 G 1.05(tarting at 0.)-3.55 F F2
-(aname)180.33 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 434.4 Q F2(delim)2.5 E F0
-1.318(The \214rst character of)180 446.4 R F2(delim)3.818 E F0 1.317
+-.25 E F1(aname)3.55 E F0 3.55(,s).18 G 1.05(tarting at 0.)-3.55 F F1
+(aname)180.33 571.2 Q F0(is unset before an)2.68 E 2.5(yn)-.15 G .5 -.25
+(ew va)-2.5 H(lues are assigned.).25 E(Other)5 E F1(name)2.5 E F0(ar)2.5
+E(guments are ignored.)-.18 E F2<ad64>144 583.2 Q F1(delim)2.5 E F0
+1.318(The \214rst character of)180 595.2 R F1(delim)3.818 E F0 1.317
 (is used to terminate the input line, rather than ne)3.818 F 3.817
-(wline. If)-.25 F F2(delim)180 458.4 Q F0(is the empty string,)2.5 E F1
+(wline. If)-.25 F F1(delim)180 607.2 Q F0(is the empty string,)2.5 E F2
 -.18(re)2.5 G(ad).18 E F0
-(will terminate a line when it reads a NUL character)2.5 E(.)-.55 E F1
-<ad65>144 470.4 Q F0 .372
-(If the standard input is coming from a terminal,)180 470.4 R F1 -.18
+(will terminate a line when it reads a NUL character)2.5 E(.)-.55 E F2
+<ad65>144 619.2 Q F0 .372
+(If the standard input is coming from a terminal,)180 619.2 R F2 -.18
 (re)2.873 G(adline).18 E F0(\(see)2.873 E F3(READLINE)2.873 E F0(abo)
 2.623 E -.15(ve)-.15 G 2.873(\)i).15 G 2.873(su)-2.873 G(sed)-2.873 E
-.218(to obtain the line.)180 482.4 R .218
+.218(to obtain the line.)180 631.2 R .218
 (Readline uses the current \(or def)5.218 F .218
 (ault, if line editing w)-.1 F .218(as not pre)-.1 F(viously)-.25 E
-(acti)180 494.4 Q -.15(ve)-.25 G 2.5(\)e).15 G(diting settings, b)-2.5 E
+(acti)180 643.2 Q -.15(ve)-.25 G 2.5(\)e).15 G(diting settings, b)-2.5 E
 (ut uses Readline')-.2 E 2.5(sd)-.55 G(ef)-2.5 E
-(ault \214lename completion.)-.1 E F1<ad69>144 506.4 Q F2(te)2.5 E(xt)
--.2 E F0(If)180 506.4 Q F1 -.18(re)2.715 G(adline).18 E F0 .216
-(is being used to read the line,)2.715 F F2(te)2.716 E(xt)-.2 E F0 .216
+(ault \214lename completion.)-.1 E F2<ad69>144 655.2 Q F1(te)2.5 E(xt)
+-.2 E F0(If)180 655.2 Q F2 -.18(re)2.715 G(adline).18 E F0 .216
+(is being used to read the line,)2.715 F F1(te)2.716 E(xt)-.2 E F0 .216
 (is placed into the editing b)2.716 F(uf)-.2 E .216(fer before edit-)
--.25 F(ing be)180 518.4 Q(gins.)-.15 E F1<ad6e>144 530.4 Q F2(nc)2.5 E
-(har)-.15 E(s)-.1 E F1 -.18(re)180 542.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
+-.25 F(ing be)180 667.2 Q(gins.)-.15 E F2<ad6e>144 679.2 Q F1(nc)2.5 E
+(har)-.15 E(s)-.1 E F2 -.18(re)180 691.2 S(ad).18 E F0 1.395
+(returns after reading)3.895 F F1(nc)3.895 E(har)-.15 E(s)-.1 E F0 1.395
 (characters rather than w)3.895 F 1.394(aiting for a complete line of)
--.1 F(input, b)180 554.4 Q(ut honors a delimiter if fe)-.2 E(wer than)
--.25 E F2(nc)2.5 E(har)-.15 E(s)-.1 E F0
-(characters are read before the delimiter)2.5 E(.)-.55 E F1<ad4e>144
-566.4 Q F2(nc)2.5 E(har)-.15 E(s)-.1 E F1 -.18(re)180 578.4 S(ad).18 E
-F0 1.269(returns after reading e)3.769 F(xactly)-.15 E F2(nc)3.769 E
-(har)-.15 E(s)-.1 E F0 1.269(characters rather than w)3.769 F 1.27
-(aiting for a complete)-.1 F .275
-(line of input, unless EOF is encountered or)180 590.4 R F1 -.18(re)
-2.775 G(ad).18 E F0 .274(times out.)2.774 F .274
-(Delimiter characters encoun-)5.274 F 1.002
-(tered in the input are not treated specially and do not cause)180 602.4
-R F1 -.18(re)3.503 G(ad).18 E F0 1.003(to return until)3.503 F F2(nc)
-3.503 E(har)-.15 E(s)-.1 E F0 .609(characters are read.)180 614.4 R .608
-(The result is not split on the characters in)5.609 F F1(IFS)3.108 E F0
-3.108(;t)C .608(he intent is that the)-3.108 F -.25(va)180 626.4 S .669
-(riable is assigned e).25 F .669
-(xactly the characters read \(with the e)-.15 F .67
-(xception of backslash; see the)-.15 F F1<ad72>180 638.4 Q F0
-(option belo)2.5 E(w\).)-.25 E F1<ad70>144 650.4 Q F2(pr)2.5 E(ompt)-.45
-E F0(Display)180 662.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 674.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 686.4 Q F0 .543(Backslash does not act as an escape character)
-180 686.4 R 5.543(.T)-.55 G .544
-(he backslash is considered to be part of)-5.543 F(the line.)180 698.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
-710.4 Q F0(Silent mode.)180 710.4 Q
-(If input is coming from a terminal, characters are not echoed.)5 E
-(GNU Bash 5.0)72 768 Q(2004 Apr 20)149.565 E(13)198.725 E 0 Cg EP
+-.1 F(input, b)180 703.2 Q(ut honors a delimiter if fe)-.2 E(wer than)
+-.25 E F1(nc)2.5 E(har)-.15 E(s)-.1 E F0
+(characters are read before the delimiter)2.5 E(.)-.55 E(GNU Bash 5.0)72
+768 Q(2004 Apr 20)149.565 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 87.61
 (TINS\(1\) General)-.92 F(Commands Manual)2.5 E -.35(BA)90.11 G(SH_B).35
-E(UIL)-.1 E(TINS\(1\))-.92 E/F1 10/Times-Bold@0 SF<ad74>144 84 Q/F2 10
-/Times-Italic@0 SF(timeout)2.5 E F0(Cause)180 96 Q F1 -.18(re)2.929 G
+E(UIL)-.1 E(TINS\(1\))-.92 E/F1 10/Times-Bold@0 SF<ad4e>144 84 Q/F2 10
+/Times-Italic@0 SF(nc)2.5 E(har)-.15 E(s)-.1 E F1 -.18(re)180 96 S(ad)
+.18 E F0 1.269(returns after reading e)3.769 F(xactly)-.15 E F2(nc)3.769
+E(har)-.15 E(s)-.1 E F0 1.269(characters rather than w)3.769 F 1.27
+(aiting for a complete)-.1 F .275
+(line of input, unless EOF is encountered or)180 108 R F1 -.18(re)2.775
+G(ad).18 E F0 .274(times out.)2.774 F .274(Delimiter characters encoun-)
+5.274 F 1.002
+(tered in the input are not treated specially and do not cause)180 120 R
+F1 -.18(re)3.503 G(ad).18 E F0 1.003(to return until)3.503 F F2(nc)3.503
+E(har)-.15 E(s)-.1 E F0 .609(characters are read.)180 132 R .608
+(The result is not split on the characters in)5.609 F F1(IFS)3.108 E F0
+3.108(;t)C .608(he intent is that the)-3.108 F -.25(va)180 144 S .669
+(riable is assigned e).25 F .669
+(xactly the characters read \(with the e)-.15 F .67
+(xception of backslash; see the)-.15 F F1<ad72>180 156 Q F0(option belo)
+2.5 E(w\).)-.25 E F1<ad70>144 168 Q F2(pr)2.5 E(ompt)-.45 E F0(Display)
+180 180 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 192 Q 2.5(yi)-.15 G 2.5
+(nput. The)-2.5 F
+(prompt is displayed only if input is coming from a terminal.)2.5 E F1
+<ad72>144 204 Q F0 .543(Backslash does not act as an escape character)
+180 204 R 5.543(.T)-.55 G .544(he backslash is considered to be part of)
+-5.543 F(the line.)180 216 Q(In particular)5 E 2.5(,ab)-.4 G
+(ackslash-ne)-2.5 E(wline pair may not be used as a line continuation.)
+-.25 E F1<ad73>144 228 Q F0(Silent mode.)180 228 Q
+(If input is coming from a terminal, characters are not echoed.)5 E F1
+<ad74>144 240 Q F2(timeout)2.5 E F0(Cause)180 252 Q F1 -.18(re)2.929 G
 (ad).18 E F0 .428(to time out and return f)2.929 F .428
 (ailure if a complete line of input \(or a speci\214ed num-)-.1 F .56
-(ber of characters\) is not read within)180 108 R F2(timeout)3.061 E F0
+(ber of characters\) is not read within)180 264 R F2(timeout)3.061 E F0
 (seconds.)3.061 E F2(timeout)5.561 E F0 .561(may be a decimal number)
-3.061 F(with a fractional portion follo)180 120 Q
+3.061 F(with a fractional portion follo)180 276 Q
 (wing the decimal point.)-.25 E(This option is only ef)5 E(fecti)-.25 E
 .3 -.15(ve i)-.25 H(f).15 E F1 -.18(re)2.5 G(ad).18 E F0 .506(is readin\
 g input from a terminal, pipe, or other special \214le; it has no ef)180
-132 R .506(fect when reading)-.25 F .59(from re)180 144 R .59
+288 R .506(fect when reading)-.25 F .59(from re)180 300 R .59
 (gular \214les.)-.15 F(If)5.59 E F1 -.18(re)3.09 G(ad).18 E F0 .589
 (times out,)3.09 F F1 -.18(re)3.089 G(ad).18 E F0(sa)3.089 E -.15(ve)-.2
 G 3.089(sa).15 G .889 -.15(ny p)-3.089 H .589
-(artial input read into the speci\214ed).15 F -.25(va)180 156 S(riable)
+(artial input read into the speci\214ed).15 F -.25(va)180 312 S(riable)
 .25 E F2(name)2.77 E F0 5.27(.I)C(f)-5.27 E F2(timeout)2.77 E F0 .27
 (is 0,)2.77 F F1 -.18(re)2.77 G(ad).18 E F0 .27(returns immediately)2.77
 F 2.77(,w)-.65 G .27(ithout trying to read an)-2.77 F 2.77(yd)-.15 G
-(ata.)-2.77 E 1.12(The e)180 168 R 1.12(xit status is 0 if input is a)
+(ata.)-2.77 E 1.12(The e)180 324 R 1.12(xit status is 0 if input is a)
 -.15 F -.25(va)-.2 G 1.12(ilable on the speci\214ed \214le descriptor)
 .25 F 3.62(,n)-.4 G 1.12(on-zero other)-3.62 F(-)-.2 E 2.5(wise. The)180
-180 R -.15(ex)2.5 G(it status is greater than 128 if the timeout is e)
-.15 E(xceeded.)-.15 E F1<ad75>144 192 Q F2(fd)2.5 E F0
-(Read input from \214le descriptor)180 192 Q F2(fd)2.5 E F0(.)A .476
-(If no)144 208.8 R F2(names)3.336 E F0 .476
+336 R -.15(ex)2.5 G(it status is greater than 128 if the timeout is e)
+.15 E(xceeded.)-.15 E F1<ad75>144 348 Q F2(fd)2.5 E F0
+(Read input from \214le descriptor)180 348 Q F2(fd)2.5 E F0(.)A .476
+(If no)144 364.8 R F2(names)3.336 E F0 .476
 (are supplied, the line read is assigned to the v)3.246 F(ariable)-.25 E
 /F3 9/Times-Bold@0 SF(REPL)2.977 E(Y)-.828 E/F4 9/Times-Roman@0 SF(.)A
 F0 .477(The e)4.977 F .477(xit status is zero,)-.15 F .773
-(unless end-of-\214le is encountered,)144 220.8 R F1 -.18(re)3.273 G(ad)
+(unless end-of-\214le is encountered,)144 376.8 R F1 -.18(re)3.273 G(ad)
 .18 E F0 .772
 (times out \(in which case the status is greater than 128\), a)3.273 F
--.25(va)144 232.8 S 2.004
+-.25(va)144 388.8 S 2.004
 (riable assignment error \(such as assigning to a readonly v).25 F 2.005
 (ariable\) occurs, or an in)-.25 F -.25(va)-.4 G 2.005(lid \214le).25 F
-(descriptor is supplied as the ar)144 244.8 Q(gument to)-.18 E F1<ad75>
-2.5 E F0(.)A F1 -.18(re)108 261.6 S(adonly).18 E F0([)2.5 E F1(\255aAf)A
+(descriptor is supplied as the ar)144 400.8 Q(gument to)-.18 E F1<ad75>
+2.5 E F0(.)A F1 -.18(re)108 417.6 S(adonly).18 E F0([)2.5 E F1(\255aAf)A
 F0 2.5(][)C F1<ad70>-2.5 E F0 2.5(][)C F2(name)-2.5 E F0([=)A F2(wor)A
-(d)-.37 E F0 2.5(].)C(..])-2.5 E .77(The gi)144 273.6 R -.15(ve)-.25 G
+(d)-.37 E F0 2.5(].)C(..])-2.5 E .77(The gi)144 429.6 R -.15(ve)-.25 G
 (n).15 E F2(names)3.27 E F0 .77(are mark)3.27 F .77(ed readonly; the v)
 -.1 F .77(alues of these)-.25 F F2(names)3.63 E F0 .77
-(may not be changed by subse-)3.54 F 1.096(quent assignment.)144 285.6 R
+(may not be changed by subse-)3.54 F 1.096(quent assignment.)144 441.6 R
 1.096(If the)6.096 F F1<ad66>3.596 E F0 1.097
 (option is supplied, the functions corresponding to the)3.596 F F2
-(names)3.597 E F0 1.097(are so)3.597 F(mark)144 297.6 Q 3.334(ed. The)
+(names)3.597 E F0 1.097(are so)3.597 F(mark)144 453.6 Q 3.334(ed. The)
 -.1 F F1<ad61>3.334 E F0 .834(option restricts the v)3.334 F .834
 (ariables to inde)-.25 F -.15(xe)-.15 G 3.334(da).15 G .834(rrays; the)
 -3.334 F F1<ad41>3.334 E F0 .834(option restricts the v)3.334 F(ari-)
--.25 E .776(ables to associati)144 309.6 R 1.076 -.15(ve a)-.25 H 3.276
+-.25 E .776(ables to associati)144 465.6 R 1.076 -.15(ve a)-.25 H 3.276
 (rrays. If).15 F .777(both options are supplied,)3.276 F F1<ad41>3.277 E
 F0(tak)3.277 E .777(es precedence.)-.1 F .777(If no)5.777 F F2(name)
-3.637 E F0(ar)3.457 E(gu-)-.18 E .522(ments are gi)144 321.6 R -.15(ve)
+3.637 E F0(ar)3.457 E(gu-)-.18 E .522(ments are gi)144 477.6 R -.15(ve)
 -.25 G .521(n, or if the).15 F F1<ad70>3.021 E F0 .521
 (option is supplied, a list of all readonly names is printed.)3.021 F
 .521(The other)5.521 F .295(options may be used to restrict the output \
-to a subset of the set of readonly names.)144 333.6 R(The)5.296 E F1
+to a subset of the set of readonly names.)144 489.6 R(The)5.296 E F1
 <ad70>2.796 E F0(option)2.796 E .786
 (causes output to be displayed in a format that may be reused as input.)
-144 345.6 R .786(If a v)5.786 F .785(ariable name is fol-)-.25 F(lo)144
-357.6 Q .717(wed by =)-.25 F F2(wor)A(d)-.37 E F0 3.218(,t)C .718(he v)
+144 501.6 R .786(If a v)5.786 F .785(ariable name is fol-)-.25 F(lo)144
+513.6 Q .717(wed by =)-.25 F F2(wor)A(d)-.37 E F0 3.218(,t)C .718(he v)
 -3.218 F .718(alue of the v)-.25 F .718(ariable is set to)-.25 F F2(wor)
 3.218 E(d)-.37 E F0 5.718(.T)C .718(he return status is 0 unless an in)
 -5.718 F -.25(va)-.4 G(lid).25 E .26(option is encountered, one of the)
-144 369.6 R F2(names)3.12 E F0 .26(is not a v)3.03 F .26(alid shell v)
+144 525.6 R F2(names)3.12 E F0 .26(is not a v)3.03 F .26(alid shell v)
 -.25 F .26(ariable name, or)-.25 F F1<ad66>2.76 E F0 .26
-(is supplied with a)2.76 F F2(name)144.36 381.6 Q F0
-(that is not a function.)2.68 E F1 -.18(re)108 398.4 S(tur).18 E(n)-.15
-E F0([)2.5 E F2(n)A F0(])A .02(Causes a function to stop e)144 410.4 R
+(is supplied with a)2.76 F F2(name)144.36 537.6 Q F0
+(that is not a function.)2.68 E F1 -.18(re)108 554.4 S(tur).18 E(n)-.15
+E F0([)2.5 E F2(n)A F0(])A .02(Causes a function to stop e)144 566.4 R
 -.15(xe)-.15 G .02(cuting and return the v).15 F .021
 (alue speci\214ed by)-.25 F F2(n)2.881 E F0 .021(to its caller)2.761 F
 5.021(.I)-.55 G(f)-5.021 E F2(n)2.881 E F0 .021(is omitted,)2.761 F .597
-(the return status is that of the last command e)144 422.4 R -.15(xe)
+(the return status is that of the last command e)144 578.4 R -.15(xe)
 -.15 G .596(cuted in the function body).15 F 5.596(.I)-.65 G(f)-5.596 E
 F1 -.18(re)3.096 G(tur).18 E(n)-.15 E F0 .596(is e)3.096 F -.15(xe)-.15
-G(cuted).15 E 1.238(by a trap handler)144 434.4 R 3.738(,t)-.4 G 1.238
+G(cuted).15 E 1.238(by a trap handler)144 590.4 R 3.738(,t)-.4 G 1.238
 (he last command used to determine the status is the last command e)
 -3.738 F -.15(xe)-.15 G(cuted).15 E 1.033(before the trap handler)144
-446.4 R 6.033(.I)-.55 G(f)-6.033 E F1 -.18(re)3.533 G(tur).18 E(n)-.15 E
+602.4 R 6.033(.I)-.55 G(f)-6.033 E F1 -.18(re)3.533 G(tur).18 E(n)-.15 E
 F0 1.033(is e)3.533 F -.15(xe)-.15 G 1.033(cuted during a).15 F F1(DEB)
 3.532 E(UG)-.1 E F0 1.032(trap, the last command used to)3.532 F .389
-(determine the status is the last command e)144 458.4 R -.15(xe)-.15 G
+(determine the status is the last command e)144 614.4 R -.15(xe)-.15 G
 .389(cuted by the trap handler before).15 F F1 -.18(re)2.89 G(tur).18 E
 (n)-.15 E F0 -.1(wa)2.89 G 2.89(si).1 G -1.9 -.4(nv o)-2.89 H -.1(ke).4
-G(d.).1 E(If)144 470.4 Q F1 -.18(re)2.584 G(tur).18 E(n)-.15 E F0 .084
+G(d.).1 E(If)144 626.4 Q F1 -.18(re)2.584 G(tur).18 E(n)-.15 E F0 .084
 (is used outside a function, b)2.584 F .084(ut during e)-.2 F -.15(xe)
 -.15 G .084(cution of a script by the).15 F F1(.)2.584 E F0(\()5.084 E
 F1(sour)A(ce)-.18 E F0 2.583(\)c)C .083(ommand, it)-2.583 F .588
-(causes the shell to stop e)144 482.4 R -.15(xe)-.15 G .588
+(causes the shell to stop e)144 638.4 R -.15(xe)-.15 G .588
 (cuting that script and return either).15 F F2(n)3.448 E F0 .589
 (or the e)3.329 F .589(xit status of the last com-)-.15 F .326(mand e)
-144 494.4 R -.15(xe)-.15 G .326(cuted within the script as the e).15 F
+144 650.4 R -.15(xe)-.15 G .326(cuted within the script as the e).15 F
 .326(xit status of the script.)-.15 F(If)5.326 E F2(n)2.826 E F0 .325
 (is supplied, the return v)2.826 F .325(alue is)-.25 F .444
-(its least signi\214cant 8 bits.)144 506.4 R .444
+(its least signi\214cant 8 bits.)144 662.4 R .444
 (The return status is non-zero if)5.444 F F1 -.18(re)2.945 G(tur).18 E
 (n)-.15 E F0 .445(is supplied a non-numeric ar)2.945 F(gu-)-.18 E .381
-(ment, or is used outside a function and not during e)144 518.4 R -.15
+(ment, or is used outside a function and not during e)144 674.4 R -.15
 (xe)-.15 G .381(cution of a script by).15 F F1(.)2.881 E F0(or)3.714 E
 F1(sour)2.881 E(ce)-.18 E F0 5.38(.A)C .68 -.15(ny c)-5.38 H(om-).15 E
-.749(mand associated with the)144 530.4 R F1(RETURN)3.249 E F0 .749
+.749(mand associated with the)144 686.4 R F1(RETURN)3.249 E F0 .749
 (trap is e)3.249 F -.15(xe)-.15 G .749(cuted before e).15 F -.15(xe)-.15
-G .75(cution resumes after the function).15 F(or script.)144 542.4 Q F1
-(set)108 559.2 Q F0([)2.5 E F1(\255\255abefhkmnptuvxBCEHPT)A F0 2.5(][)C
-F1<ad6f>-2.5 E F2(option\255name)2.5 E F0 2.5(][)C F2(ar)-2.5 E(g)-.37 E
-F0(...])2.5 E F1(set)108 571.2 Q F0([)2.5 E F1(+abefhkmnptuvxBCEHPT)A F0
+G .75(cution resumes after the function).15 F(or script.)144 698.4 Q
+(GNU Bash 5.0)72 768 Q(2004 Apr 20)149.565 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 87.61
+(TINS\(1\) General)-.92 F(Commands Manual)2.5 E -.35(BA)90.11 G(SH_B).35
+E(UIL)-.1 E(TINS\(1\))-.92 E/F1 10/Times-Bold@0 SF(set)108 84 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\255name)2.5 E F0 2.5(][)C F2(ar)-2.5 E(g)-.37
+E F0(...])2.5 E F1(set)108 96 Q F0([)2.5 E F1(+abefhkmnptuvxBCEHPT)A F0
 2.5(][)C F1(+o)-2.5 E F2(option\255name)2.5 E F0 2.5(][)C F2(ar)-2.5 E
-(g)-.37 E F0(...])2.5 E -.4(Wi)144 583.2 S .836
+(g)-.37 E F0(...])2.5 E -.4(Wi)144 108 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 595.2
-R 3.284(ariables. Read-only)-.25 F -.25(va)3.284 G .784
-(riables cannot be).25 F 2.912(reset. In)144 607.2 R F2(posix)2.912 E F0
-.412(mode, only shell v)2.912 F .412(ariables are listed.)-.25 F .412
-(The output is sorted according to the current)5.412 F 3.53
-(locale. When)144 619.2 R 1.031(options are speci\214ed, the)3.53 F
-3.531(ys)-.15 G 1.031(et or unset shell attrib)-3.531 F 3.531(utes. An)
--.2 F 3.531(ya)-.15 G -.18(rg)-3.531 G 1.031(uments remaining).18 F
-1.624(after option processing are treated as v)144 631.2 R 1.623
+(reused as input for setting or resetting the currently-set v)144 120 R
+3.284(ariables. Read-only)-.25 F -.25(va)3.284 G .784(riables cannot be)
+.25 F 2.947(reset. In)144 132 R F2 .447(posix mode)2.947 F F0 2.947(,o)C
+.447(nly shell v)-2.947 F .447(ariables are listed.)-.25 F .447
+(The output is sorted according to the current)5.447 F 3.53
+(locale. When)144 144 R 1.031(options are speci\214ed, the)3.53 F 3.531
+(ys)-.15 G 1.031(et or unset shell attrib)-3.531 F 3.531(utes. An)-.2 F
+3.531(ya)-.15 G -.18(rg)-3.531 G 1.031(uments remaining).18 F 1.624
+(after option processing are treated as v)144 156 R 1.623
 (alues for the positional parameters and are assigned, in)-.25 F(order)
-144 643.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 655.2 Q
-F0 1.377(Each v)184 655.2 R 1.377
+144 168 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 180 Q F0
+1.377(Each v)184 180 R 1.377
 (ariable or function that is created or modi\214ed is gi)-.25 F -.15(ve)
 -.25 G 3.877(nt).15 G 1.377(he e)-3.877 F 1.378(xport attrib)-.15 F
-1.378(ute and)-.2 F(mark)184 667.2 Q(ed for e)-.1 E(xport to the en)-.15
-E(vironment of subsequent commands.)-.4 E F1<ad62>144 679.2 Q F0 .132
-(Report the status of terminated background jobs immediately)184 679.2 R
+1.378(ute and)-.2 F(mark)184 192 Q(ed for e)-.1 E(xport to the en)-.15 E
+(vironment of subsequent commands.)-.4 E F1<ad62>144 204 Q F0 .132
+(Report the status of terminated background jobs immediately)184 204 R
 2.632(,r)-.65 G .131(ather than before the ne)-2.632 F(xt)-.15 E
-(primary prompt.)184 691.2 Q(This is ef)5 E(fecti)-.25 E .3 -.15(ve o)
--.25 H(nly when job control is enabled.).15 E F1<ad65>144 703.2 Q F0
-.087(Exit immediately if a)184 703.2 R F2(pipeline)2.587 E F0 .087
+(primary prompt.)184 216 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 228 Q F0 .087
+(Exit immediately if a)184 228 R F2(pipeline)2.587 E F0 .087
 (\(which may consist of a single)2.587 F F2 .088(simple command)2.588 F
-F0 .088(\), a)B F2(list)2.588 E F0 2.588(,o)C(r)-2.588 E(a)184 715.2 Q
-F2 1.521(compound command)4.021 F F0(\(see)4.021 E F3 1.521
-(SHELL GRAMMAR)4.021 F F0(abo)3.771 E -.15(ve)-.15 G 1.521(\), e).15 F
-1.521(xits with a non-zero status.)-.15 F .079(The shell does not e)184
-727.2 R .079(xit if the command that f)-.15 F .08
-(ails is part of the command list immediately)-.1 F(GNU Bash 5.0)72 768
-Q(2004 Apr 20)149.565 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 87.61
-(TINS\(1\) General)-.92 F(Commands Manual)2.5 E -.35(BA)90.11 G(SH_B).35
-E(UIL)-.1 E(TINS\(1\))-.92 E(follo)184 84 Q 1.655(wing a)-.25 F/F1 10
-/Times-Bold@0 SF(while)4.155 E F0(or)4.155 E F1(until)4.155 E F0 -.1(ke)
-4.155 G(yw)-.05 E 1.655(ord, part of the test follo)-.1 F 1.654
+F0 .088(\), a)B F2(list)2.588 E F0 2.588(,o)C(r)-2.588 E(a)184 240 Q F2
+1.521(compound command)4.021 F F0(\(see)4.021 E/F3 9/Times-Bold@0 SF
+1.521(SHELL GRAMMAR)4.021 F F0(abo)3.771 E -.15(ve)-.15 G 1.521(\), e)
+.15 F 1.521(xits with a non-zero status.)-.15 F .079
+(The shell does not e)184 252 R .079(xit if the command that f)-.15 F
+.08(ails is part of the command list immediately)-.1 F(follo)184 264 Q
+1.655(wing a)-.25 F F1(while)4.155 E F0(or)4.155 E F1(until)4.155 E F0
+-.1(ke)4.155 G(yw)-.05 E 1.655(ord, part of the test follo)-.1 F 1.654
 (wing the)-.25 F F1(if)4.154 E F0(or)4.154 E F1(elif)4.154 E F0(reserv)
-4.154 E(ed)-.15 E -.1(wo)184 96 S .581(rds, part of an).1 F 3.081(yc)
+4.154 E(ed)-.15 E -.1(wo)184 276 S .581(rds, part of an).1 F 3.081(yc)
 -.15 G .581(ommand e)-3.081 F -.15(xe)-.15 G .581(cuted in a).15 F F1
 (&&)3.081 E F0(or)3.081 E F1(||)3.081 E F0 .582(list e)3.082 F .582
-(xcept the command follo)-.15 F(wing)-.25 E .918(the \214nal)184 108 R
+(xcept the command follo)-.15 F(wing)-.25 E .918(the \214nal)184 288 R
 F1(&&)3.418 E F0(or)3.418 E F1(||)3.418 E F0 3.418(,a)C 1.218 -.15(ny c)
 -3.418 H .918(ommand in a pipeline b).15 F .917
 (ut the last, or if the command')-.2 F 3.417(sr)-.55 G(eturn)-3.417 E
--.25(va)184 120 S .66(lue is being in).25 F -.15(ve)-.4 G .66(rted with)
+-.25(va)184 300 S .66(lue is being in).25 F -.15(ve)-.4 G .66(rted with)
 .15 F F1(!)3.16 E F0 5.661(.I)C 3.161(fac)-5.661 G .661
 (ompound command other than a subshell returns a)-3.161 F 1.113
-(non-zero status because a command f)184 132 R 1.112(ailed while)-.1 F
+(non-zero status because a command f)184 312 R 1.112(ailed while)-.1 F
 F1<ad65>3.612 E F0 -.1(wa)3.612 G 3.612(sb).1 G 1.112
-(eing ignored, the shell does)-3.612 F .177(not e)184 144 R 2.677
+(eing ignored, the shell does)-3.612 F .177(not e)184 324 R 2.677
 (xit. A)-.15 F .177(trap on)2.677 F F1(ERR)2.677 E F0 2.677(,i)C 2.678
 (fs)-2.677 G .178(et, is e)-2.678 F -.15(xe)-.15 G .178
 (cuted before the shell e).15 F 2.678(xits. This)-.15 F .178
-(option applies to)2.678 F .618(the shell en)184 156 R .617
+(option applies to)2.678 F .618(the shell en)184 336 R .617
 (vironment and each subshell en)-.4 F .617(vironment separately \(see)
--.4 F/F2 9/Times-Bold@0 SF .617(COMMAND EXE-)3.117 F .642(CUTION ENVIR)
-184 168 R(ONMENT)-.27 E F0(abo)2.893 E -.15(ve)-.15 G .643
+-.4 F F3 .617(COMMAND EXE-)3.117 F .642(CUTION ENVIR)184 348 R(ONMENT)
+-.27 E F0(abo)2.893 E -.15(ve)-.15 G .643
 (\), and may cause subshells to e).15 F .643(xit before e)-.15 F -.15
-(xe)-.15 G .643(cuting all).15 F(the commands in the subshell.)184 180 Q
-2.042(If a compound command or shell function e)184 198 R -.15(xe)-.15 G
+(xe)-.15 G .643(cuting all).15 F(the commands in the subshell.)184 360 Q
+2.042(If a compound command or shell function e)184 378 R -.15(xe)-.15 G
 2.042(cutes in a conte).15 F 2.042(xt where)-.15 F F1<ad65>4.542 E F0
-2.042(is being)4.542 F 1.435(ignored, none of the commands e)184 210 R
+2.042(is being)4.542 F 1.435(ignored, none of the commands e)184 390 R
 -.15(xe)-.15 G 1.436(cuted within the compound command or function).15 F
-.194(body will be af)184 222 R .194(fected by the)-.25 F F1<ad65>2.694 E
+.194(body will be af)184 402 R .194(fected by the)-.25 F F1<ad65>2.694 E
 F0 .193(setting, e)2.693 F -.15(ve)-.25 G 2.693(ni).15 G(f)-2.693 E F1
 <ad65>2.693 E F0 .193(is set and a command returns a f)2.693 F(ailure)
--.1 E 3.39(status. If)184 234 R 3.39(ac)3.39 G .89
+-.1 E 3.39(status. If)184 414 R 3.39(ac)3.39 G .89
 (ompound command or shell function sets)-3.39 F F1<ad65>3.39 E F0 .89
 (while e)3.39 F -.15(xe)-.15 G .89(cuting in a conte).15 F(xt)-.15 E
-(where)184 246 Q F1<ad65>3.154 E F0 .654
+(where)184 426 Q F1<ad65>3.154 E F0 .654
 (is ignored, that setting will not ha)3.154 F .953 -.15(ve a)-.2 H .953
 -.15(ny e).15 H -.25(ff).15 G .653(ect until the compound command).25 F
-(or the command containing the function call completes.)184 258 Q F1
-<ad66>144 270 Q F0(Disable pathname e)184 270 Q(xpansion.)-.15 E F1
-<ad68>144 282 Q F0 2.238(Remember the location of commands as the)184
-282 R 4.738(ya)-.15 G 2.239(re look)-4.738 F 2.239(ed up for e)-.1 F
+(or the command containing the function call completes.)184 438 Q F1
+<ad66>144 450 Q F0(Disable pathname e)184 450 Q(xpansion.)-.15 E F1
+<ad68>144 462 Q F0 2.238(Remember the location of commands as the)184
+462 R 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
-294 Q(ault.)-.1 E F1<ad6b>144 306 Q F0 .514(All ar)184 306 R .514
+474 Q(ault.)-.1 E F1<ad6b>144 486 Q F0 .514(All ar)184 486 R .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 318 Q F1
-<ad6d>144 330 Q F0 .148(Monitor mode.)184 330 R .148
+(command, not just those that precede the command name.)184 498 Q F1
+<ad6d>144 510 Q F0 .148(Monitor mode.)184 510 R .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 .651
-(on systems that support it \(see)184 342 R F2 .651(JOB CONTR)3.151 F
+(on systems that support it \(see)184 522 R F3 .651(JOB CONTR)3.151 F
 (OL)-.27 E F0(abo)2.901 E -.15(ve)-.15 G 3.151(\). All).15 F .65
-(processes run in a separate)3.151 F .678(process group.)184 354 R .679
+(processes run in a separate)3.151 F .678(process group.)184 534 R .679
 (When a background job completes, the shell prints a line containing it\
-s)5.678 F -.15(ex)184 366 S(it status.).15 E F1<ad6e>144 378 Q F0 .653
-(Read commands b)184 378 R .653(ut do not e)-.2 F -.15(xe)-.15 G .653
+s)5.678 F -.15(ex)184 546 S(it status.).15 E F1<ad6e>144 558 Q F0 .653
+(Read commands b)184 558 R .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 390 Q(This is ignored by interacti)5 E .3
--.15(ve s)-.25 H(hells.).15 E F1<ad6f>144 402 Q/F3 10/Times-Italic@0 SF
-(option\255name)2.5 E F0(The)184 414 Q F3(option\255name)2.5 E F0
-(can be one of the follo)2.5 E(wing:)-.25 E F1(allexport)184 426 Q F0
-(Same as)224 438 Q F1<ad61>2.5 E F0(.)A F1(braceexpand)184 450 Q F0
-(Same as)224 462 Q F1<ad42>2.5 E F0(.)A F1(emacs)184 474 Q F0 .089
-(Use an emacs-style command line editing interf)224 474 R 2.589
+5.653 F(syntax errors.)184 570 Q(This is ignored by interacti)5 E .3
+-.15(ve s)-.25 H(hells.).15 E F1<ad6f>144 582 Q F2(option\255name)2.5 E
+F0(The)184 594 Q F2(option\255name)2.5 E F0(can be one of the follo)2.5
+E(wing:)-.25 E F1(allexport)184 606 Q F0(Same as)224 618 Q F1<ad61>2.5 E
+F0(.)A F1(braceexpand)184 630 Q F0(Same as)224 642 Q F1<ad42>2.5 E F0(.)
+A F1(emacs)184 654 Q F0 .089
+(Use an emacs-style command line editing interf)224 654 R 2.589
 (ace. This)-.1 F .089(is enabled by def)2.589 F(ault)-.1 E .95
-(when the shell is interacti)224 486 R -.15(ve)-.25 G 3.45(,u).15 G .95
+(when the shell is interacti)224 666 R -.15(ve)-.25 G 3.45(,u).15 G .95
 (nless the shell is started with the)-3.45 F F1(\255\255noediting)3.45 E
-F0 2.5(option. This)224 498 R(also af)2.5 E(fects the editing interf)
+F0 2.5(option. This)224 678 R(also af)2.5 E(fects the editing interf)
 -.25 E(ace used for)-.1 E F1 -.18(re)2.5 G(ad \255e).18 E F0(.)A F1(err)
-184 510 Q(exit)-.18 E F0(Same as)224 510 Q F1<ad65>2.5 E F0(.)A F1
-(errtrace)184 522 Q F0(Same as)224 522 Q F1<ad45>2.5 E F0(.)A F1
-(functrace)184 534 Q F0(Same as)224 546 Q F1<ad54>2.5 E F0(.)A F1
-(hashall)184 558 Q F0(Same as)224 558 Q F1<ad68>2.5 E F0(.)A F1
-(histexpand)184 570 Q F0(Same as)224 582 Q F1<ad48>2.5 E F0(.)A F1
-(history)184 594 Q F0 .586(Enable command history)224 594 R 3.087(,a)
--.65 G 3.087(sd)-3.087 G .587(escribed abo)-3.087 F .887 -.15(ve u)-.15
-H(nder).15 E F2(HIST)3.087 E(OR)-.162 E(Y)-.315 E/F4 9/Times-Roman@0 SF
-(.)A F0 .587(This option is)5.087 F(on by def)224 606 Q
-(ault in interacti)-.1 E .3 -.15(ve s)-.25 H(hells.).15 E F1(ignor)184
-618 Q(eeof)-.18 E F0 1.657(The ef)224 630 R 1.657
-(fect is as if the shell command)-.25 F/F5 10/Courier@0 SF(IGNOREEOF=10)
-4.156 E F0 1.656(had been e)4.156 F -.15(xe)-.15 G(cuted).15 E(\(see)224
-642 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 654 S(yw).1 E(ord)-.1 E F0(Same as)224 666 Q F1
-<ad6b>2.5 E F0(.)A F1(monitor)184 678 Q F0(Same as)224 678 Q F1<ad6d>2.5
-E F0(.)A F1(noclob)184 690 Q(ber)-.1 E F0(Same as)224 702 Q F1<ad43>2.5
-E F0(.)A F1(noexec)184 714 Q F0(Same as)224 714 Q F1<ad6e>2.5 E F0(.)A
+184 690 Q(exit)-.18 E F0(Same as)224 690 Q F1<ad65>2.5 E F0(.)A F1
+(errtrace)184 702 Q F0(Same as)224 702 Q F1<ad45>2.5 E F0(.)A
 (GNU Bash 5.0)72 768 Q(2004 Apr 20)149.565 E(15)198.725 E 0 Cg EP
 %%Page: 16 16
 %%BeginPageSetup
 %%EndPageSetup
 /F0 10/Times-Roman@0 SF -.35(BA)72 48 S(SH_B).35 E(UIL)-.1 E 87.61
 (TINS\(1\) General)-.92 F(Commands Manual)2.5 E -.35(BA)90.11 G(SH_B).35
-E(UIL)-.1 E(TINS\(1\))-.92 E/F1 10/Times-Bold@0 SF(noglob)184 84 Q F0
-(Same as)224 84 Q F1<ad66>2.5 E F0(.)A F1(nolog)184 96 Q F0
-(Currently ignored.)224 96 Q F1(notify)184 108 Q F0(Same as)224 108 Q F1
-<ad62>2.5 E F0(.)A F1(nounset)184 120 Q F0(Same as)224 120 Q F1<ad75>2.5
-E F0(.)A F1(onecmd)184 132 Q F0(Same as)224 132 Q F1<ad74>2.5 E F0(.)A
-F1(ph)184 144 Q(ysical)-.15 E F0(Same as)224 144 Q F1<ad50>2.5 E F0(.)A
-F1(pipefail)184 156 Q F0 1.029(If set, the return v)224 156 R 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 168 R
-1.136
+E(UIL)-.1 E(TINS\(1\))-.92 E/F1 10/Times-Bold@0 SF(functrace)184 84 Q F0
+(Same as)224 96 Q F1<ad54>2.5 E F0(.)A F1(hashall)184 108 Q F0(Same as)
+224 108 Q F1<ad68>2.5 E F0(.)A F1(histexpand)184 120 Q F0(Same as)224
+132 Q F1<ad48>2.5 E F0(.)A F1(history)184 144 Q F0 .586
+(Enable command history)224 144 R 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 156 Q
+(ault in interacti)-.1 E .3 -.15(ve s)-.25 H(hells.).15 E F1(ignor)184
+168 Q(eeof)-.18 E F0 1.657(The ef)224 180 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
+192 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 204 S(yw).1 E(ord)-.1 E F0(Same as)224 216 Q F1
+<ad6b>2.5 E F0(.)A F1(monitor)184 228 Q F0(Same as)224 228 Q F1<ad6d>2.5
+E F0(.)A F1(noclob)184 240 Q(ber)-.1 E F0(Same as)224 252 Q F1<ad43>2.5
+E F0(.)A F1(noexec)184 264 Q F0(Same as)224 264 Q F1<ad6e>2.5 E F0(.)A
+F1(noglob)184 276 Q F0(Same as)224 276 Q F1<ad66>2.5 E F0(.)A F1(nolog)
+184 288 Q F0(Currently ignored.)224 288 Q F1(notify)184 300 Q F0
+(Same as)224 300 Q F1<ad62>2.5 E F0(.)A F1(nounset)184 312 Q F0(Same as)
+224 312 Q F1<ad75>2.5 E F0(.)A F1(onecmd)184 324 Q F0(Same as)224 324 Q
+F1<ad74>2.5 E F0(.)A F1(ph)184 336 Q(ysical)-.15 E F0(Same as)224 336 Q
+F1<ad50>2.5 E F0(.)A F1(pipefail)184 348 Q F0 1.029
+(If set, the return v)224 348 R 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 360
+R 1.136
 (xit with a non-zero status, or zero if all commands in the pipeline)
--.15 F -.15(ex)224 180 S(it successfully).15 E 5(.T)-.65 G
-(his option is disabled by def)-5 E(ault.)-.1 E F1(posix)184 192 Q F0
-2.09(Change the beha)224 192 R 2.091(vior of)-.2 F F1(bash)4.591 E F0
+-.15 F -.15(ex)224 372 S(it successfully).15 E 5(.T)-.65 G
+(his option is disabled by def)-5 E(ault.)-.1 E F1(posix)184 384 Q F0
+2.09(Change the beha)224 384 R 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 1.212(POSIX standard to match the standard \()224
-204 R/F2 10/Times-Italic@0 SF 1.212(posix mode)B F0 3.712(\). See)B/F3 9
-/Times-Bold@0 SF 1.212(SEE ALSO)3.712 F F0(belo)3.462 E(w)-.25 E 2.306
-(for a reference to a document that details ho)224 216 R 4.807(wp)-.25 G
+396 R/F5 10/Times-Italic@0 SF 1.212(posix mode)B F0 3.712(\). See)B F2
+1.212(SEE ALSO)3.712 F F0(belo)3.462 E(w)-.25 E 2.306
+(for a reference to a document that details ho)224 408 R 4.807(wp)-.25 G
 2.307(osix mode af)-4.807 F 2.307(fects bash')-.25 F(s)-.55 E(beha)224
-228 Q(vior)-.2 E(.)-.55 E F1(pri)184 240 Q(vileged)-.1 E F0(Same as)224
-252 Q F1<ad70>2.5 E F0(.)A F1 -.1(ve)184 264 S(rbose).1 E F0(Same as)224
-264 Q F1<ad76>2.5 E F0(.)A F1(vi)184 276 Q F0 1.466
-(Use a vi-style command line editing interf)224 276 R 3.965(ace. This)
+420 Q(vior)-.2 E(.)-.55 E F1(pri)184 432 Q(vileged)-.1 E F0(Same as)224
+444 Q F1<ad70>2.5 E F0(.)A F1 -.1(ve)184 456 S(rbose).1 E F0(Same as)224
+456 Q F1<ad76>2.5 E F0(.)A F1(vi)184 468 Q F0 1.466
+(Use a vi-style command line editing interf)224 468 R 3.965(ace. This)
 -.1 F 1.465(also af)3.965 F 1.465(fects the editing)-.25 F(interf)224
-288 Q(ace used for)-.1 E F1 -.18(re)2.5 G(ad \255e).18 E F0(.)A F1
-(xtrace)184 300 Q F0(Same as)224 300 Q F1<ad78>2.5 E F0(.)A(If)184 318 Q
-F1<ad6f>3.052 E F0 .552(is supplied with no)3.052 F F2(option\255name)
+480 Q(ace used for)-.1 E F1 -.18(re)2.5 G(ad \255e).18 E F0(.)A F1
+(xtrace)184 492 Q F0(Same as)224 492 Q F1<ad78>2.5 E F0(.)A(If)184 510 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
-330 Q F0 1.072(is supplied with no)3.572 F F2(option\255name)3.572 E F0
+522 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 342 Q F1<ad70>
-144 354 Q F0 -.45(Tu)184 354 S 1.071(rn on).45 F F2(privile)4.821 E -.1
+(option settings is displayed on the standard output.)184 534 Q F1<ad70>
+144 546 Q F0 -.45(Tu)184 546 S 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
-F3($ENV)3.572 E F0(and)3.322 E F3($B)3.572 E(ASH_ENV)-.27 E F0 1.072
+F2($ENV)3.572 E F0(and)3.322 E F2($B)3.572 E(ASH_ENV)-.27 E F0 1.072
 (\214les are not pro-)3.322 F 1.501
-(cessed, shell functions are not inherited from the en)184 366 R 1.5
-(vironment, and the)-.4 F F3(SHELLOPTS)4 E/F4 9/Times-Roman@0 SF(,)A F3
--.27(BA)184 378 S(SHOPTS).27 E F4(,)A F3(CDP)2.774 E -.855(AT)-.666 G(H)
-.855 E F4(,)A F0(and)2.774 E F3(GLOBIGNORE)3.024 E F0 -.25(va)2.774 G
-.524(riables, if the).25 F 3.025(ya)-.15 G .525(ppear in the en)-3.025 F
-(vironment,)-.4 E .38(are ignored.)184 390 R .38
+(cessed, shell functions are not inherited from the en)184 558 R 1.5
+(vironment, and the)-.4 F F2(SHELLOPTS)4 E F3(,)A F2 -.27(BA)184 570 S
+(SHOPTS).27 E F3(,)A F2(CDP)2.774 E -.855(AT)-.666 G(H).855 E F3(,)A F0
+(and)2.774 E F2(GLOBIGNORE)3.024 E F0 -.25(va)2.774 G .524
+(riables, if the).25 F 3.025(ya)-.15 G .525(ppear in the en)-3.025 F
+(vironment,)-.4 E .38(are ignored.)184 582 R .38
 (If the shell is started with the ef)5.38 F(fecti)-.25 E .679 -.15(ve u)
 -.25 H .379(ser \(group\) id not equal to the real).15 F .461
-(user \(group\) id, and the)184 402 R F1<ad70>2.961 E F0 .461
+(user \(group\) id, and the)184 594 R F1<ad70>2.961 E F0 .461
 (option is not supplied, these actions are tak)2.961 F .462
-(en and the ef)-.1 F(fec-)-.25 E(ti)184 414 Q .695 -.15(ve u)-.25 H .395
+(en and the ef)-.1 F(fec-)-.25 E(ti)184 606 Q .695 -.15(ve u)-.25 H .395
 (ser id is set to the real user id.).15 F .395(If the)5.395 F F1<ad70>
 2.895 E F0 .394(option is supplied at startup, the ef)2.895 F(fecti)-.25
-E -.15(ve)-.25 G .386(user id is not reset.)184 426 R -.45(Tu)5.386 G
+E -.15(ve)-.25 G .386(user id is not reset.)184 618 R -.45(Tu)5.386 G
 .386(rning this option of).45 F 2.886(fc)-.25 G .387(auses the ef)-2.886
 F(fecti)-.25 E .687 -.15(ve u)-.25 H .387(ser and group ids to be).15 F
-(set to the real user and group ids.)184 438 Q F1<ad74>144 450 Q F0
-(Exit after reading and e)184 450 Q -.15(xe)-.15 G(cuting one command.)
-.15 E F1<ad75>144 462 Q F0 -.35(Tr)184 462 S .044(eat unset v).35 F .044
+(set to the real user and group ids.)184 630 Q F1<ad74>144 642 Q F0
+(Exit after reading and e)184 642 Q -.15(xe)-.15 G(cuting one command.)
+.15 E F1<ad75>144 654 Q F0 -.35(Tr)184 654 S .044(eat unset v).35 F .044
 (ariables and parameters other than the special parameters "@" and "*" \
-as an)-.25 F .182(error when performing parameter e)184 474 R 2.682
+as an)-.25 F .182(error when performing parameter e)184 666 R 2.682
 (xpansion. If)-.15 F -.15(ex)2.682 G .183
 (pansion is attempted on an unset v).15 F(ari-)-.25 E .746
-(able or parameter)184 486 R 3.246(,t)-.4 G .746
+(able or parameter)184 678 R 3.246(,t)-.4 G .746
 (he shell prints an error message, and, if not interacti)-3.246 F -.15
 (ve)-.25 G 3.246(,e).15 G .746(xits with a)-3.396 F(non-zero status.)184
-498 Q F1<ad76>144 510 Q F0(Print shell input lines as the)184 510 Q 2.5
-(ya)-.15 G(re read.)-2.5 E F1<ad78>144 522 Q F0 .315(After e)184 522 R
-.315(xpanding each)-.15 F F2 .315(simple command)2.815 F F0(,)A F1 -.25
+690 Q F1<ad76>144 702 Q F0(Print shell input lines as the)184 702 Q 2.5
+(ya)-.15 G(re read.)-2.5 E F1<ad78>144 714 Q F0 .315(After e)184 714 R
+.315(xpanding each)-.15 F F5 .315(simple command)2.815 F F0(,)A F1 -.25
 (fo)2.815 G(r).25 E F0(command,)2.815 E F1(case)2.815 E F0(command,)
-2.815 E F1(select)2.815 E F0(command,)2.815 E 1.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(,)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)184 558 R 2.578
+2.815 E F1(select)2.815 E F0(command,)2.815 E 3.26(or arithmetic)184 726
+R F1 -.25(fo)5.76 G(r).25 E F0 3.26(command, display the e)5.76 F 3.26
+(xpanded v)-.15 F 3.26(alue of)-.25 F F2(PS4)5.76 E F3(,)A F0(follo)
+5.509 E 3.259(wed by the)-.25 F(GNU Bash 5.0)72 768 Q(2004 Apr 20)
+149.565 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 87.61
+(TINS\(1\) General)-.92 F(Commands Manual)2.5 E -.35(BA)90.11 G(SH_B).35
+E(UIL)-.1 E(TINS\(1\))-.92 E(command and its e)184 84 Q(xpanded ar)-.15
+E(guments or associated w)-.18 E(ord list.)-.1 E/F1 10/Times-Bold@0 SF
+<ad42>144 96 Q F0 2.578(The shell performs brace e)184 96 R 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,)184 582 R F1(bash)2.714 E
+-.15(ve)-.15 G 5.079(\). This).15 F 2.579(is on by)5.079 F(def)184 108 Q
+(ault.)-.1 E F1<ad43>144 120 Q F0 .214(If set,)184 120 R 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
+3.053(tors. This)184 132 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)184 618 R 2.604(yt)-.15 G .104
+.15 F(tor)184 144 Q F1(>|)2.5 E F0(instead of)2.5 E F1(>)2.5 E F0(.)A F1
+<ad45>144 156 Q F0 .104(If set, an)184 156 R 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 .838(mands e)184 168 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)184 654 Q F1(!)3.032 E F0 .532
+(trap is normally not inherited in)3.339 F(such cases.)184 180 Q F1
+<ad48>144 192 Q F0(Enable)184 192 Q 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 .959
-(If set, the shell does not resolv)184 678 R 3.459(es)-.15 G .959
+F .531(ault when the shell is inter)-.1 F(-)-.2 E(acti)184 204 Q -.15
+(ve)-.25 G(.).15 E F1<ad50>144 216 Q F0 .959
+(If set, the shell does not resolv)184 216 R 3.459(es)-.15 G .959
 (ymbolic links when e)-3.459 F -.15(xe)-.15 G .96
 (cuting commands such as).15 F F1(cd)3.46 E F0 2.822
-(that change the current w)184 690 R 2.822(orking directory)-.1 F 7.822
+(that change the current w)184 228 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
+(ysical directory structure)-.05 F 2.685(instead. By)184 240 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 5.0)72 768 Q(2004 Apr 20)149.565 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 87.61
-(TINS\(1\) General)-.92 F(Commands Manual)2.5 E -.35(BA)90.11 G(SH_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)184 84 R 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
+(mands which change the current directory)184 252 Q(.)-.65 E F1<ad54>144
+264 Q F0 .89(If set, an)184 264 R 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
+(substitutions, and commands e)184 276 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)184 120 R .401(guments follo)-.18 F 2.901(wt)-.25 G
+(UG)-.1 E F0(and)4.432 E F1(RETURN)184 288 Q F0
+(traps are normally not inherited in such cases.)2.5 E F1<adad>144 300 Q
+F0 .401(If no ar)184 300 R .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
+(Otherwise,)5.4 E(the positional parameters are set to the)184 312 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)184 144 R F2(ar)4.444 E
+F0(.)A F1<ad>144 324 Q F0 1.944
+(Signal the end of options, cause all remaining)184 324 R 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
+(ssigned to the positional)-4.445 F 3.446(parameters. The)184 336 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
+(parameters remain unchanged.)184 348 Q .425(The options are of)144
+364.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
+(to be turned of)144 376.8 R 2.678(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
+(current set of options may be found in)144 388.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
+(is encountered.)144 400.8 Q F1(shift)108 417.6 Q F0([)2.5 E F2(n)A F0
+(])A .429(The positional parameters from)144 429.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
+.428(rameters represented by the num-).15 F(bers)144 441.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
+(is 0, no parameters are changed.)144 453.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
+(,t)C(he)-2.56 E .143(positional parameters are not changed.)144 465.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([)
+(or less than zero; otherwise 0.)144 477.6 Q F1(shopt)108 494.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 .64(ggle the v).8 F .639
+-2.5 E F0(...])2.5 E -.8(To)144 506.4 S .64(ggle the v).8 F .639
 (alues of settings controlling optional shell beha)-.25 F(vior)-.2 E
 5.639(.T)-.55 G .639(he settings can be either those)-5.639 F .374
-(listed belo)144 338.4 R 1.674 -.65(w, o)-.25 H 1.174 -.4(r, i).65 H
+(listed belo)144 518.4 R 1.674 -.65(w, o)-.25 H 1.174 -.4(r, i).65 H
 2.874(ft).4 G(he)-2.874 E F1<ad6f>2.874 E F0 .375
 (option is used, those a)2.875 F -.25(va)-.2 G .375(ilable with the).25
 F F1<ad6f>2.875 E F0 .375(option to the)2.875 F F1(set)2.875 E F0 -.2
-(bu)2.875 G .375(iltin com-).2 F 3.326(mand. W)144 350.4 R .826
+(bu)2.875 G .375(iltin com-).2 F 3.326(mand. W)144 530.4 R .826
 (ith no options, or with the)-.4 F F1<ad70>3.326 E F0 .825
 (option, a list of all settable options is displayed, with an)3.326 F
-.551(indication of whether or not each is set; if)144 362.4 R F2
+.551(indication of whether or not each is set; if)144 542.4 R F2
 (optnames)3.052 E F0 .552
 (are supplied, the output is restricted to those)3.052 F 2.55
-(options. The)144 374.4 R F1<ad70>2.55 E F0 .049(option causes output t\
+(options. The)144 554.4 R F1<ad70>2.55 E F0 .049(option causes output t\
 o be displayed in a form that may be reused as input.)2.55 F(Other)5.049
-E(options ha)144 386.4 Q .3 -.15(ve t)-.2 H(he follo).15 E
-(wing meanings:)-.25 E F1<ad73>144 398.4 Q F0(Enable \(set\) each)180
-398.4 Q F2(optname)2.5 E F0(.)A F1<ad75>144 410.4 Q F0
-(Disable \(unset\) each)180 410.4 Q F2(optname)2.5 E F0(.)A F1<ad71>144
-422.4 Q F0 .003(Suppresses normal output \(quiet mode\); the return sta\
-tus indicates whether the)180 422.4 R F2(optname)2.504 E F0(is)2.504 E
-.256(set or unset.)180 434.4 R .256(If multiple)5.256 F F2(optname)2.756
+E(options 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)180
+578.4 Q F2(optname)2.5 E F0(.)A F1<ad75>144 590.4 Q F0
+(Disable \(unset\) each)180 590.4 Q F2(optname)2.5 E F0(.)A F1<ad71>144
+602.4 Q F0 .003(Suppresses normal output \(quiet mode\); the return sta\
+tus indicates whether the)180 602.4 R F2(optname)2.504 E F0(is)2.504 E
+.256(set or unset.)180 614.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 446.4 Q F2(optnames)2.5 E
-F0(are enabled; non-zero otherwise.)2.5 E F1<ad6f>144 458.4 Q F0
-(Restricts the v)180 458.4 Q(alues of)-.25 E F2(optname)2.5 E F0
+(he return status is zero if)-2.755 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)180 638.4 Q(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 .624(If either)144 475.2 R F1
+E F1(set)2.5 E F0 -.2(bu)2.5 G(iltin.).2 E .624(If either)144 655.2 R F1
 <ad73>3.124 E F0(or)3.124 E F1<ad75>3.124 E F0 .624(is used with no)
 3.124 F F2(optname)3.124 E F0(ar)3.124 E(guments,)-.18 E F1(shopt)3.124
 E F0(sho)3.124 E .624(ws only those options which are)-.25 F 2.234
-(set or unset, respecti)144 487.2 R -.15(ve)-.25 G(ly).15 E 7.234(.U)
+(set or unset, respecti)144 667.2 R -.15(ve)-.25 G(ly).15 E 7.234(.U)
 -.65 G 2.234(nless otherwise noted, the)-7.234 F F1(shopt)4.734 E F0
-2.234(options are disabled \(unset\) by)4.734 F(def)144 499.2 Q(ault.)
+2.234(options are disabled \(unset\) by)4.734 F(def)144 679.2 Q(ault.)
 -.1 E 1.544(The return status when listing options is zero if all)144
-516 R F2(optnames)4.044 E F0 1.545(are enabled, non-zero otherwise.)
+696 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 528 R F2(optname)3.196 E F0 .696(is not a v)3.196 F .695(alid shell)
--.25 F(option.)144 540 Q(The list of)144 556.8 Q F1(shopt)2.5 E F0
-(options is:)2.5 E F1(assoc_expand_once)144 574.8 Q F0 1.944
-(If set, the shell suppresses multiple e)184 586.8 R -.25(va)-.25 G
+144 708 R F2(optname)3.196 E F0 .696(is not a v)3.196 F .695(alid shell)
+-.25 F(option.)144 720 Q(GNU Bash 5.0)72 768 Q(2004 Apr 20)149.565 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 87.61
+(TINS\(1\) General)-.92 F(Commands Manual)2.5 E -.35(BA)90.11 G(SH_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(assoc_expand_once)144 102 Q F0
+1.944(If set, the shell suppresses multiple e)184 114 R -.25(va)-.25 G
 1.945(luation of associati).25 F 2.245 -.15(ve a)-.25 H 1.945
-(rray subscripts during).15 F .857(arithmetic e)184 598.8 R .857
+(rray subscripts during).15 F .857(arithmetic e)184 126 R .857
 (xpression e)-.15 F -.25(va)-.25 G .857(luation and while e).25 F -.15
 (xe)-.15 G .857(cuting b).15 F .857(uiltins that can perform v)-.2 F
-(ariable)-.25 E(assignments.)184 610.8 Q F1(autocd)144 622.8 Q F0 .199
-(If set, a command name that is the name of a directory is e)184 622.8 R
+(ariable)-.25 E(assignments.)184 138 Q F1(autocd)144 150 Q F0 .199
+(If set, a command name that is the name of a directory is e)184 150 R
 -.15(xe)-.15 G .2(cuted as if it were the ar).15 F(gu-)-.18 E
-(ment to the)184 634.8 Q F1(cd)2.5 E F0 2.5(command. This)2.5 F
+(ment to the)184 162 Q F1(cd)2.5 E F0 2.5(command. This)2.5 F
 (option is only used by interacti)2.5 E .3 -.15(ve s)-.25 H(hells.).15 E
-F1(cdable_v)144 646.8 Q(ars)-.1 E F0 .156(If set, an ar)184 658.8 R .156
+F1(cdable_v)144 174 Q(ars)-.1 E F0 .156(If set, an ar)184 186 R .156
 (gument to the)-.18 F F1(cd)2.656 E F0 -.2(bu)2.656 G .155
 (iltin command that is not a directory is assumed to be the).2 F
-(name of a v)184 670.8 Q(ariable whose v)-.25 E
-(alue is the directory to change to.)-.25 E F1(cdspell)144 682.8 Q F0
+(name of a v)184 198 Q(ariable whose v)-.25 E
+(alue is the directory to change to.)-.25 E F1(cdspell)144 210 Q F0
 1.055
 (If set, minor errors in the spelling of a directory component in a)184
-682.8 R F1(cd)3.555 E F0 1.055(command will be)3.555 F 3.988
-(corrected. The)184 694.8 R 1.488(errors check)3.988 F 1.487
+210 R F1(cd)3.555 E F0 1.055(command will be)3.555 F 3.988
+(corrected. The)184 222 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 .77(one character too man)184 706.8 R 4.57 -.65(y. I)
+-.4 G(nd)-3.987 E .77(one character too man)184 234 R 4.57 -.65(y. I)
 -.15 H 3.27(fac).65 G .77
 (orrection is found, the corrected \214lename is printed, and)-3.27 F
-(the command proceeds.)184 718.8 Q
-(This option is only used by interacti)5 E .3 -.15(ve s)-.25 H(hells.)
-.15 E(GNU Bash 5.0)72 768 Q(2004 Apr 20)149.565 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 87.61
-(TINS\(1\) General)-.92 F(Commands Manual)2.5 E -.35(BA)90.11 G(SH_B).35
-E(UIL)-.1 E(TINS\(1\))-.92 E/F1 10/Times-Bold@0 SF(checkhash)144 84 Q F0
-.737(If set,)184 96 R F1(bash)3.237 E F0 .736
+(the command proceeds.)184 246 Q(This option is only used by interacti)5
+E .3 -.15(ve s)-.25 H(hells.).15 E F1(checkhash)144 258 Q F0 .737
+(If set,)184 270 R F1(bash)3.237 E F0 .736
 (checks that a command found in the hash table e)3.237 F .736
-(xists before trying to e)-.15 F -.15(xe)-.15 G(-).15 E(cute it.)184 108
+(xists before trying to e)-.15 F -.15(xe)-.15 G(-).15 E(cute it.)184 282
 Q(If a hashed command no longer e)5 E
-(xists, a normal path search is performed.)-.15 E F1(checkjobs)144 120 Q
-F0 .448(If set,)184 132 R F1(bash)2.948 E F0 .448
+(xists, a normal path search is performed.)-.15 E F1(checkjobs)144 294 Q
+F0 .448(If set,)184 306 R F1(bash)2.948 E F0 .448
 (lists the status of an)2.948 F 2.949(ys)-.15 G .449
 (topped and running jobs before e)-2.949 F .449(xiting an interacti)-.15
-F -.15(ve)-.25 G 3.439(shell. If)184 144 R(an)3.439 E 3.439(yj)-.15 G
+F -.15(ve)-.25 G 3.439(shell. If)184 318 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 2.203
-(attempted without an interv)184 156 R 2.203(ening command \(see)-.15 F
+(attempted without an interv)184 330 R 2.203(ening command \(see)-.15 F
 /F2 9/Times-Bold@0 SF 2.203(JOB CONTR)4.703 F(OL)-.27 E F0(abo)4.453 E
--.15(ve)-.15 G 4.703(\). The).15 F(shell)4.704 E(al)184 168 Q -.1(wa)-.1
+-.15(ve)-.15 G 4.703(\). The).15 F(shell)4.704 E(al)184 342 Q -.1(wa)-.1
 G(ys postpones e).1 E(xiting if an)-.15 E 2.5(yj)-.15 G
-(obs are stopped.)-2.5 E F1(checkwinsize)144 180 Q F0 1.09(If set,)184
-192 R F1(bash)3.59 E F0 1.09(checks the windo)3.59 F 3.59(ws)-.25 G 1.09
+(obs are stopped.)-2.5 E F1(checkwinsize)144 354 Q F0 1.09(If set,)184
+366 R F1(bash)3.59 E F0 1.09(checks the windo)3.59 F 3.59(ws)-.25 G 1.09
 (ize after each e)-3.59 F 1.09(xternal \(non-b)-.15 F 1.09
-(uiltin\) command and, if)-.2 F(necessary)184 204 Q 2.5(,u)-.65 G
+(uiltin\) command and, if)-.2 F(necessary)184 378 Q 2.5(,u)-.65 G
 (pdates the v)-2.5 E(alues of)-.25 E F2(LINES)2.5 E F0(and)2.25 E F2
-(COLUMNS)2.5 E/F3 9/Times-Roman@0 SF(.)A F1(cmdhist)144 216 Q F0 1.202
-(If set,)184 216 R F1(bash)3.702 E F0 1.202(attempts to sa)3.702 F 1.502
+(COLUMNS)2.5 E/F3 9/Times-Roman@0 SF(.)A F1(cmdhist)144 390 Q F0 1.202
+(If set,)184 390 R F1(bash)3.702 E F0 1.202(attempts to sa)3.702 F 1.502
 -.15(ve a)-.2 H 1.202
 (ll lines of a multiple-line command in the same history).15 F(entry)184
-228 Q 6.133(.T)-.65 G 1.133(his allo)-6.133 F 1.133
+402 Q 6.133(.T)-.65 G 1.133(his allo)-6.133 F 1.133
 (ws easy re-editing of multi-line commands.)-.25 F 1.132
-(This option is enabled by)6.132 F(def)184 240 Q .613(ault, b)-.1 F .613
+(This option is enabled by)6.132 F(def)184 414 Q .613(ault, b)-.1 F .613
 (ut only has an ef)-.2 F .614
 (fect if command history is enabled, as described abo)-.25 F .914 -.15
-(ve u)-.15 H(nder).15 E F2(HIST)184 252 Q(OR)-.162 E(Y)-.315 E F3(.)A F1
-(compat31)144 264 Q F0 .42(If set,)184 276 R F1(bash)2.92 E F0 .42
+(ve u)-.15 H(nder).15 E F2(HIST)184 426 Q(OR)-.162 E(Y)-.315 E F3(.)A F1
+(compat31)144 438 Q F0 .42(If set,)184 450 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 .461(to the)
-184 288 R F1([[)2.961 E F0 .462(conditional command')2.962 F(s)-.55 E F1
+184 462 R F1([[)2.961 E F0 .462(conditional command')2.962 F(s)-.55 E F1
 (=~)2.962 E F0 .462
 (operator and locale-speci\214c string comparison when)2.962 F .71
-(using the)184 300 R F1([[)3.21 E F0 .71(conditional command')3.21 F(s)
+(using the)184 474 R F1([[)3.21 E F0 .71(conditional command')3.21 F(s)
 -.55 E F1(<)3.21 E F0(and)3.21 E F1(>)3.21 E F0 3.21(operators. Bash)
 3.21 F -.15(ve)3.21 G .71(rsions prior to bash-4.1).15 F .82
-(use ASCII collation and)184 312 R/F4 10/Times-Italic@0 SF(str)3.321 E
+(use ASCII collation and)184 486 R/F4 10/Times-Italic@0 SF(str)3.321 E
 (cmp)-.37 E F0 .821(\(3\); bash-4.1 and later use the current locale')
-.19 F 3.321(sc)-.55 G(ollation)-3.321 E(sequence and)184 324 Q F4(str)
-2.5 E(coll)-.37 E F0(\(3\).).51 E F1(compat32)144 336 Q F0 1.41(If set,)
-184 348 R F1(bash)3.91 E F0 1.41(changes its beha)3.91 F 1.409
+.19 F 3.321(sc)-.55 G(ollation)-3.321 E(sequence and)184 498 Q F4(str)
+2.5 E(coll)-.37 E F0(\(3\).).51 E F1(compat32)144 510 Q F0 1.41(If set,)
+184 522 R F1(bash)3.91 E F0 1.41(changes its beha)3.91 F 1.409
 (vior to that of v)-.2 F 1.409
 (ersion 3.2 with respect to locale-speci\214c)-.15 F .422
-(string comparison when using the)184 360 R F1([[)2.922 E F0 .422
+(string comparison when using the)184 534 R F1([[)2.922 E F0 .422
 (conditional command')2.922 F(s)-.55 E F1(<)2.922 E F0(and)2.922 E F1(>)
 2.923 E F0 .423(operators \(see pre-)2.923 F .481
-(vious item\) and the ef)184 372 R .481
+(vious item\) and the ef)184 546 R .481
 (fect of interrupting a command list.)-.25 F .48(Bash v)5.481 F .48
-(ersions 3.2 and earlier)-.15 F(continue with the ne)184 384 Q
+(ersions 3.2 and earlier)-.15 F(continue with the ne)184 558 Q
 (xt command in the list after one terminates due to an interrupt.)-.15 E
-F1(compat40)144 396 Q F0 1.409(If set,)184 408 R F1(bash)3.909 E F0
+F1(compat40)144 570 Q F0 1.409(If set,)184 582 R F1(bash)3.909 E F0
 1.409(changes its beha)3.909 F 1.409(vior to that of v)-.2 F 1.41
 (ersion 4.0 with respect to locale-speci\214c)-.15 F 2.008
-(string comparison when using the)184 420 R F1([[)4.508 E F0 2.007
+(string comparison when using the)184 594 R F1([[)4.508 E F0 2.007
 (conditional command')4.508 F(s)-.55 E F1(<)4.507 E F0(and)4.507 E F1(>)
-4.507 E F0 2.007(operators \(see)4.507 F .769(description of)184 432 R
+4.507 E F0 2.007(operators \(see)4.507 F .769(description of)184 606 R
 F1(compat31)3.269 E F0 3.269(\)a)C .769(nd the ef)-3.269 F .769
 (fect of interrupting a command list.)-.25 F .77(Bash v)5.77 F(ersions)
 -.15 E .087(4.0 and later interrupt the list as if the shell recei)184
-444 R -.15(ve)-.25 G 2.586(dt).15 G .086(he interrupt; pre)-2.586 F .086
-(vious v)-.25 F .086(ersions con-)-.15 F(tinue with the ne)184 456 Q
-(xt command in the list.)-.15 E F1(compat41)144 468 Q F0 1.483(If set,)
-184 480 R F1(bash)3.983 E F0 3.983(,w)C 1.483(hen in)-3.983 F F4(posix)
-3.983 E F0 1.484
-(mode, treats a single quote in a double-quoted parameter)3.983 F -.15
-(ex)184 492 S .959(pansion as a special character).15 F 5.959(.T)-.55 G
-.958(he single quotes must match \(an e)-5.959 F -.15(ve)-.25 G 3.458
-(nn).15 G .958(umber\) and)-3.458 F .59
-(the characters between the single quotes are considered quoted.)184 504
+618 R -.15(ve)-.25 G 2.586(dt).15 G .086(he interrupt; pre)-2.586 F .086
+(vious v)-.25 F .086(ersions con-)-.15 F(tinue with the ne)184 630 Q
+(xt command in the list.)-.15 E F1(compat41)144 642 Q F0 1.523(If set,)
+184 654 R F1(bash)4.023 E F0 4.023(,w)C 1.523(hen in)-4.023 F F4 1.523
+(posix mode)4.023 F F0 4.024(,t)C 1.524
+(reats a single quote in a double-quoted parameter)-4.024 F -.15(ex)184
+666 S .959(pansion as a special character).15 F 5.959(.T)-.55 G .958
+(he single quotes must match \(an e)-5.959 F -.15(ve)-.25 G 3.458(nn).15
+G .958(umber\) and)-3.458 F .59
+(the characters between the single quotes are considered quoted.)184 678
 R .59(This is the beha)5.59 F .59(vior of)-.2 F .59
-(posix mode through v)184 516 R .589(ersion 4.1.)-.15 F .589(The def)
+(posix mode through v)184 690 R .589(ersion 4.1.)-.15 F .589(The def)
 5.589 F .589(ault bash beha)-.1 F .589(vior remains as in pre)-.2 F .589
-(vious v)-.25 F(er)-.15 E(-)-.2 E(sions.)184 528 Q F1(compat42)144 540 Q
-F0 1.796(If set,)184 552 R F1(bash)4.296 E F0 1.796
+(vious v)-.25 F(er)-.15 E(-)-.2 E(sions.)184 702 Q(GNU Bash 5.0)72 768 Q
+(2004 Apr 20)149.565 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 87.61
+(TINS\(1\) General)-.92 F(Commands Manual)2.5 E -.35(BA)90.11 G(SH_B).35
+E(UIL)-.1 E(TINS\(1\))-.92 E/F1 10/Times-Bold@0 SF(compat42)144 84 Q F0
+1.796(If set,)184 96 R F1(bash)4.296 E F0 1.796
 (does not process the replacement string in the pattern substitution w)
-4.296 F(ord)-.1 E -.15(ex)184 564 S(pansion using quote remo).15 E -.25
-(va)-.15 G(l.).25 E F1(compat43)144 576 Q F0 .141(If set,)184 588 R F1
+4.296 F(ord)-.1 E -.15(ex)184 108 S(pansion using quote remo).15 E -.25
+(va)-.15 G(l.).25 E F1(compat43)144 120 Q F0 .141(If set,)184 132 R F1
 (bash)2.641 E F0 .141(does not print a w)2.641 F .14
 (arning message if an attempt is made to use a quoted com-)-.1 F .912
-(pound array assignment as an ar)184 600 R .912(gument to)-.18 F F1
+(pound array assignment as an ar)184 144 R .912(gument to)-.18 F F1
 (declar)3.413 E(e)-.18 E F0 3.413(,m)C(ak)-3.413 E .913(es w)-.1 F .913
-(ord e)-.1 F .913(xpansion errors non-)-.15 F -.1(fa)184 612 S .353
+(ord e)-.1 F .913(xpansion errors non-)-.15 F -.1(fa)184 156 S .353
 (tal errors that cause the current command to f).1 F .353(ail \(the def)
 -.1 F .352(ault beha)-.1 F .352(vior is to mak)-.2 F 2.852(et)-.1 G(hem)
--2.852 E -.1(fa)184 624 S 1.057(tal errors that cause the shell to e).1
+-2.852 E -.1(fa)184 168 S 1.057(tal errors that cause the shell to e).1
 F 1.058(xit\), and does not reset the loop state when a shell)-.15 F
-.375(function is e)184 636 R -.15(xe)-.15 G .375(cuted \(this allo).15 F
+.375(function is e)184 180 R -.15(xe)-.15 G .375(cuted \(this allo).15 F
 (ws)-.25 E F1(br)2.875 E(eak)-.18 E F0(or)2.875 E F1(continue)2.875 E F0
 .374(in a shell function to af)2.875 F .374(fect loops in)-.25 F
-(the caller')184 648 Q 2.5(sc)-.55 G(onte)-2.5 E(xt\).)-.15 E F1
-(compat44)144 660 Q F0 .441(If set,)184 672 R F1(bash)2.941 E F0(sa)
+(the caller')184 192 Q 2.5(sc)-.55 G(onte)-2.5 E(xt\).)-.15 E F1
+(compat44)144 204 Q F0 .441(If set,)184 216 R F1(bash)2.941 E F0(sa)
 2.942 E -.15(ve)-.2 G 2.942(st).15 G .442(he positional parameters to B)
 -2.942 F .442(ASH_ARGV and B)-.35 F .442(ASH_ARGC before)-.35 F(the)184
-684 Q 2.5(ya)-.15 G(re used, re)-2.5 E -.05(ga)-.15 G
+228 Q 2.5(ya)-.15 G(re used, re)-2.5 E -.05(ga)-.15 G
 (rdless of whether or not e).05 E(xtended deb)-.15 E
-(ugging mode is enabled.)-.2 E F1(complete_fullquote)144 696 Q F0 .654
-(If set,)184 708 R F1(bash)3.153 E F0 .653(quotes all shell metacharact\
+(ugging mode is enabled.)-.2 E F1(complete_fullquote)144 240 Q F0 .654
+(If set,)184 252 R F1(bash)3.153 E F0 .653(quotes all shell metacharact\
 ers in \214lenames and directory names when per)3.153 F(-)-.2 E 1.524
-(forming completion.)184 720 R 1.524(If not set,)6.524 F F1(bash)4.024 E
+(forming completion.)184 264 R 1.524(If not set,)6.524 F F1(bash)4.024 E
 F0(remo)4.024 E -.15(ve)-.15 G 4.024(sm).15 G 1.524
-(etacharacters such as the dollar sign)-4.024 F(GNU Bash 5.0)72 768 Q
-(2004 Apr 20)149.565 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 87.61
-(TINS\(1\) General)-.92 F(Commands Manual)2.5 E -.35(BA)90.11 G(SH_B).35
-E(UIL)-.1 E(TINS\(1\))-.92 E 2.667(from the set of characters that will\
- be quoted in completed \214lenames when these)184 84 R .028
-(metacharacters appear in shell v)184 96 R .028(ariable references in w)
--.25 F .029(ords to be completed.)-.1 F .029(This means)5.029 F 1.073
-(that dollar signs in v)184 108 R 1.073(ariable names that e)-.25 F
-1.073(xpand to directories will not be quoted; ho)-.15 F(w-)-.25 E -2.15
--.25(ev e)184 120 T 1.922 -.4(r, a).25 H 1.422 -.15(ny d).4 H 1.123
+(etacharacters such as the dollar sign)-4.024 F 2.667(from the set of c\
+haracters that will be quoted in completed \214lenames when these)184
+276 R .028(metacharacters appear in shell v)184 288 R .028
+(ariable references in w)-.25 F .029(ords to be completed.)-.1 F .029
+(This means)5.029 F 1.073(that dollar signs in v)184 300 R 1.073
+(ariable names that e)-.25 F 1.073
+(xpand to directories will not be quoted; ho)-.15 F(w-)-.25 E -2.15 -.25
+(ev e)184 312 T 1.922 -.4(r, a).25 H 1.422 -.15(ny d).4 H 1.123
 (ollar signs appearing in \214lenames will not be quoted, either).15 F
 6.123(.T)-.55 G 1.123(his is acti)-6.123 F -.15(ve)-.25 G .59
 (only when bash is using backslashes to quote completed \214lenames.)184
-132 R .59(This v)5.59 F .59(ariable is set)-.25 F(by def)184 144 Q
+324 R .59(This v)5.59 F .59(ariable is set)-.25 F(by def)184 336 Q
 (ault, which is the def)-.1 E(ault bash beha)-.1 E(vior in v)-.2 E
-(ersions through 4.2.)-.15 E/F1 10/Times-Bold@0 SF(dir)144 156 Q(expand)
--.18 E F0 .486(If set,)184 168 R F1(bash)2.986 E F0 .486
+(ersions through 4.2.)-.15 E F1(dir)144 348 Q(expand)-.18 E F0 .486
+(If set,)184 360 R F1(bash)2.986 E F0 .486
 (replaces directory names with the results of w)2.986 F .486(ord e)-.1 F
 .487(xpansion when perform-)-.15 F .18(ing \214lename completion.)184
-180 R .179(This changes the contents of the readline editing b)5.18 F
+372 R .179(This changes the contents of the readline editing b)5.18 F
 (uf)-.2 E(fer)-.25 E 5.179(.I)-.55 G 2.679(fn)-5.179 G(ot)-2.679 E(set,)
-184 192 Q F1(bash)2.5 E F0(attempts to preserv)2.5 E 2.5(ew)-.15 G
-(hat the user typed.)-2.5 E F1(dirspell)144 204 Q F0 .858(If set,)184
-204 R F1(bash)3.358 E F0 .858
+184 384 Q F1(bash)2.5 E F0(attempts to preserv)2.5 E 2.5(ew)-.15 G
+(hat the user typed.)-2.5 E F1(dirspell)144 396 Q F0 .858(If set,)184
+396 R F1(bash)3.358 E F0 .858
 (attempts spelling correction on directory names during w)3.358 F .859
 (ord completion if)-.1 F
-(the directory name initially supplied does not e)184 216 Q(xist.)-.15 E
-F1(dotglob)144 228 Q F0 .165(If set,)184 228 R F1(bash)2.665 E F0 .165
+(the directory name initially supplied does not e)184 408 Q(xist.)-.15 E
+F1(dotglob)144 420 Q F0 .165(If set,)184 420 R 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(The \214lenames)184 240 Q F1 -.63(``)2.5 G -.55(.').63
+(xpansion.)-.15 E(The \214lenames)184 432 Q F1 -.63(``)2.5 G -.55(.').63
 G(')-.08 E F0(and)5 E F1 -.63(``)2.5 G(..).63 E -.63('')-.55 G F0
 (must al)5.63 E -.1(wa)-.1 G(ys be matched e).1 E(xplicitly)-.15 E 2.5
 (,e)-.65 G -.15(ve)-2.75 G 2.5(ni).15 G(f)-2.5 E F1(dotglob)2.5 E F0
-(is set.)2.5 E F1(execfail)144 252 Q F0 1.386(If set, a non-interacti)
-184 252 R 1.686 -.15(ve s)-.25 H 1.386(hell will not e).15 F 1.386
+(is set.)2.5 E F1(execfail)144 444 Q F0 1.386(If set, a non-interacti)
+184 444 R 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.387
-(cute the \214le speci\214ed as an).15 F(ar)184 264 Q(gument to the)-.18
+(cute the \214le speci\214ed as an).15 F(ar)184 456 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 276 Q F0 .717
-(If set, aliases are e)184 288 R .717(xpanded as described abo)-.15 F
+-.1(fa)2.5 G(ils.).1 E F1(expand_aliases)144 468 Q F0 .717
+(If set, aliases are e)184 480 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 300 Q(ault for interacti)-.1 E .3 -.15(ve s)-.25 H(hells.)
-.15 E F1(extdeb)144 312 Q(ug)-.2 E F0 .671(If set at shell in)184 324 R
+(by def)184 492 Q(ault for interacti)-.1 E .3 -.15(ve s)-.25 H(hells.)
+.15 E F1(extdeb)144 504 Q(ug)-.2 E F0 .671(If set at shell in)184 516 R
 -.2(vo)-.4 G .671(cation, arrange to e).2 F -.15(xe)-.15 G .671
 (cute the deb).15 F .672(ugger pro\214le before the shell starts,)-.2 F
-.221(identical to the)184 336 R F1<adad646562>2.721 E(ugger)-.2 E F0
+.221(identical to the)184 528 R F1<adad646562>2.721 E(ugger)-.2 E F0
 2.721(option. If)2.721 F .221(set after in)2.721 F -.2(vo)-.4 G .221
-(cation, beha).2 F .22(vior intended for use by)-.2 F(deb)184 348 Q
-(uggers is enabled:)-.2 E F1(1.)184 360 Q F0(The)220 360 Q F1<ad46>4.25
+(cation, beha).2 F .22(vior intended for use by)-.2 F(deb)184 540 Q
+(uggers is enabled:)-.2 E F1(1.)184 552 Q F0(The)220 552 Q 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 372 Q
-(gument.)-.18 E F1(2.)184 384 Q F0 1.667(If the command run by the)220
-384 R 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 396
-Q -.15(xe)-.15 G(cuted.).15 E F1(3.)184 408 Q F0 .84
-(If the command run by the)220 408 R F1(DEB)3.34 E(UG)-.1 E F0 .841
+(number corresponding to each function name supplied as an ar)220 564 Q
+(gument.)-.18 E F1(2.)184 576 Q F0 1.667(If the command run by the)220
+576 R 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 588
+Q -.15(xe)-.15 G(cuted.).15 E F1(3.)184 600 Q F0 .84
+(If the command run by the)220 600 R 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 420 S .488
+(exe)220 612 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 432 Q(ce)-.18 E F0 -.2(bu)2.5 G
+(sour)220 624 Q(ce)-.18 E F0 -.2(bu)2.5 G
 (iltins\), the shell simulates a call to).2 E F1 -.18(re)2.5 G(tur).18 E
-(n)-.15 E F0(.)A F1(4.)184 444 Q F2 -.27(BA)220 444 S(SH_ARGC).27 E F0
+(n)-.15 E F0(.)A F1(4.)184 636 Q F2 -.27(BA)220 636 S(SH_ARGC).27 E F0
 (and)3.153 E F2 -.27(BA)3.403 G(SH_ARGV).27 E F0 .904
-(are updated as described in their descriptions)3.154 F(abo)220 456 Q
--.15(ve)-.15 G(.).15 E F1(5.)184 468 Q F0 1.637(Function tracing is ena\
-bled: command substitution, shell functions, and sub-)220 468 R
-(shells in)220 480 Q -.2(vo)-.4 G -.1(ke).2 G 2.5(dw).1 G(ith)-2.5 E F1
+(are updated as described in their descriptions)3.154 F(abo)220 648 Q
+-.15(ve)-.15 G(.).15 E F1(5.)184 660 Q F0 1.637(Function tracing is ena\
+bled: command substitution, shell functions, and sub-)220 660 R
+(shells in)220 672 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 492 Q F0 1.082(Error tracing is enabled: comman\
-d substitution, shell functions, and subshells)220 492 R(in)220 504 Q
+(traps.)2.5 E F1(6.)184 684 Q F0 1.082(Error tracing is enabled: comman\
+d substitution, shell functions, and subshells)220 684 R(in)220 696 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 F0(trap.)2.5 E F1
-(extglob)144 516 Q F0 .4(If set, the e)184 516 R .4
+(extglob)144 708 Q F0 .4(If set, the e)184 708 R .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 528 Q
-F0(are enabled.)2.5 E F1(extquote)144 540 Q F0 2.473(If set,)184 552 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 564 Q
-(This option is enabled by def)5 E(ault.)-.1 E F1(failglob)144 576 Q F0
-1.425(If set, patterns which f)184 576 R 1.425
-(ail to match \214lenames during pathname e)-.1 F 1.424
-(xpansion result in an)-.15 F -.15(ex)184 588 S(pansion error).15 E(.)
--.55 E F1 -.25(fo)144 600 S -.18(rc).25 G(e_\214gnor).18 E(e)-.18 E F0
-.936(If set, the suf)184 612 R<8c78>-.25 E .936(es speci\214ed by the)
--.15 F F2(FIGNORE)3.436 E F0 .936(shell v)3.186 F .936(ariable cause w)
--.25 F .937(ords to be ignored)-.1 F .32(when performing w)184 624 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 2.947
-(pletions. See)184 636 R F2 .447(SHELL V)2.947 F(ARIABLES)-1.215 E F0
-(abo)2.697 E .747 -.15(ve f)-.15 H .448(or a description of).15 F F2
-(FIGNORE)2.948 E F3(.)A F0 .448(This option is)4.948 F(enabled by def)
-184 648 Q(ault.)-.1 E F1(globasciiranges)144 660 Q F0 2.519
-(If set, range e)184 672 R 2.519
-(xpressions used in pattern matching brack)-.15 F 2.518(et e)-.1 F 2.518
-(xpressions \(see)-.15 F F2 -.09(Pa)5.018 G(tter).09 E(n)-.135 E
-(Matching)184 684 Q F0(abo)2.964 E -.15(ve)-.15 G 3.214(\)b).15 G(eha)
--3.214 E 1.014 -.15(ve a)-.2 H 3.214(si).15 G 3.214(fi)-3.214 G 3.214
-(nt)-3.214 G .714(he traditional C locale when performing comparisons.)
--3.214 F 1.02(That is, the current locale')184 696 R 3.52(sc)-.55 G 1.02
-(ollating sequence is not tak)-3.52 F 1.02(en into account, so)-.1 F F1
-(b)3.52 E F0 1.02(will not)3.52 F .956(collate between)184 708 R F1(A)
-3.456 E F0(and)3.456 E F1(B)3.456 E F0 3.457(,a)C .957(nd upper)-3.457 F
-.957(-case and lo)-.2 F(wer)-.25 E .957
-(-case ASCII characters will collate)-.2 F(together)184 720 Q(.)-.55 E
-(GNU Bash 5.0)72 768 Q(2004 Apr 20)149.565 E(19)198.725 E 0 Cg EP
+-.15 H(nder).15 E F1 -.1(Pa)2.9 G .4(thname Expan-).1 F(sion)184 720 Q
+F0(are enabled.)2.5 E(GNU Bash 5.0)72 768 Q(2004 Apr 20)149.565 E(19)
+198.725 E 0 Cg EP
 %%Page: 20 20
 %%BeginPageSetup
 BP
 %%EndPageSetup
 /F0 10/Times-Roman@0 SF -.35(BA)72 48 S(SH_B).35 E(UIL)-.1 E 87.61
 (TINS\(1\) General)-.92 F(Commands Manual)2.5 E -.35(BA)90.11 G(SH_B).35
-E(UIL)-.1 E(TINS\(1\))-.92 E/F1 10/Times-Bold@0 SF(globstar)144 84 Q F0
-.519(If set, the pattern)184 84 R F1(**)3.019 E F0 .519
-(used in a pathname e)3.019 F .519(xpansion conte)-.15 F .518
+E(UIL)-.1 E(TINS\(1\))-.92 E/F1 10/Times-Bold@0 SF(extquote)144 84 Q F0
+2.473(If set,)184 96 R F1($)4.973 E F0<08>A/F2 10/Times-Italic@0 SF
+(string)A F0 4.973<0861>C(nd)-4.973 E F1($)4.973 E F0(")A F2(string)A F0
+4.973("q)C 2.473(uoting is performed within)-4.973 F F1(${)4.973 E F2
+(par)A(ameter)-.15 E F1(})A F0 -.15(ex)4.973 G(pansions).15 E
+(enclosed in double quotes.)184 108 Q(This option is enabled by def)5 E
+(ault.)-.1 E F1(failglob)144 120 Q F0 1.425(If set, patterns which f)184
+120 R 1.425(ail to match \214lenames during pathname e)-.1 F 1.424
+(xpansion result in an)-.15 F -.15(ex)184 132 S(pansion error).15 E(.)
+-.55 E F1 -.25(fo)144 144 S -.18(rc).25 G(e_\214gnor).18 E(e)-.18 E F0
+.936(If set, the suf)184 156 R<8c78>-.25 E .936(es speci\214ed by the)
+-.15 F/F3 9/Times-Bold@0 SF(FIGNORE)3.436 E F0 .936(shell v)3.186 F .936
+(ariable cause w)-.25 F .937(ords to be ignored)-.1 F .32
+(when performing w)184 168 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 2.947(pletions. See)184 180 R F3
+.447(SHELL V)2.947 F(ARIABLES)-1.215 E F0(abo)2.697 E .747 -.15(ve f)
+-.15 H .448(or a description of).15 F F3(FIGNORE)2.948 E/F4 9
+/Times-Roman@0 SF(.)A F0 .448(This option is)4.948 F(enabled by def)184
+192 Q(ault.)-.1 E F1(globasciiranges)144 204 Q F0 2.519(If set, range e)
+184 216 R 2.519(xpressions used in pattern matching brack)-.15 F 2.518
+(et e)-.1 F 2.518(xpressions \(see)-.15 F F3 -.09(Pa)5.018 G(tter).09 E
+(n)-.135 E(Matching)184 228 Q F0(abo)2.964 E -.15(ve)-.15 G 3.214(\)b)
+.15 G(eha)-3.214 E 1.014 -.15(ve a)-.2 H 3.214(si).15 G 3.214(fi)-3.214
+G 3.214(nt)-3.214 G .714
+(he traditional C locale when performing comparisons.)-3.214 F 1.02
+(That is, the current locale')184 240 R 3.52(sc)-.55 G 1.02
+(ollating sequence is not tak)-3.52 F 1.02(en into account, so)-.1 F F1
+(b)3.52 E F0 1.02(will not)3.52 F .956(collate between)184 252 R F1(A)
+3.456 E F0(and)3.456 E F1(B)3.456 E F0 3.457(,a)C .957(nd upper)-3.457 F
+.957(-case and lo)-.2 F(wer)-.25 E .957
+(-case ASCII characters will collate)-.2 F(together)184 264 Q(.)-.55 E
+F1(globstar)144 276 Q F0 .519(If set, the pattern)184 276 R F1(**)3.019
+E F0 .519(used in a pathname e)3.019 F .519(xpansion conte)-.15 F .518
 (xt will match all \214les and zero)-.15 F .431
-(or more directories and subdirectories.)184 96 R .431
+(or more directories and subdirectories.)184 288 R .431
 (If the pattern is follo)5.431 F .432(wed by a)-.25 F F1(/)2.932 E F0
 2.932(,o)C .432(nly directories)-2.932 F(and subdirectories match.)184
-108 Q F1(gnu_errfmt)144 120 Q F0(If set, shell error messages are writt\
-en in the standard GNU error message format.)184 132 Q F1(histappend)144
-144 Q F0 .676
+300 Q F1(gnu_errfmt)144 312 Q F0(If set, shell error messages are writt\
+en in the standard GNU error message format.)184 324 Q F1(histappend)144
+336 Q F0 .676
 (If set, the history list is appended to the \214le named by the v)184
-156 R .676(alue of the)-.25 F/F2 9/Times-Bold@0 SF(HISTFILE)3.176 E F0
--.25(va)2.926 G(ri-).25 E(able when the shell e)184 168 Q
-(xits, rather than o)-.15 E -.15(ve)-.15 G(rwriting the \214le.).15 E F1
-(histr)144 180 Q(eedit)-.18 E F0 .575(If set, and)184 192 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 204 Q F1(histv)144 216 Q
-(erify)-.1 E F0 .403(If set, and)184 228 R F1 -.18(re)2.903 G(adline).18
-E F0 .403
+348 R .676(alue of the)-.25 F F3(HISTFILE)3.176 E F0 -.25(va)2.926 G
+(ri-).25 E(able when the shell e)184 360 Q(xits, rather than o)-.15 E
+-.15(ve)-.15 G(rwriting the \214le.).15 E F1(histr)144 372 Q(eedit)-.18
+E F0 .575(If set, and)184 384 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 396 Q F1(histv)144 408 Q(erify)-.1 E F0 .403
+(If set, and)184 420 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 240 R 5.661(.I)-.55 G .662
+2.903 F .661(passed to the shell parser)184 432 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 252 S -.25(ff).2 G(er).25 E
+G(adline).18 E F0(editing)3.162 E -.2(bu)184 444 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 264 Q F0 1.182(If set, and)184 276 R F1 -.18(re)3.682
+(hostcomplete)144 456 Q F0 1.182(If set, and)184 468 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
-288 R 1.38(ord containing a)-.1 F F1(@)3.881 E F0 1.381
+480 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 300 Q -.15(ve)-.15 G 2.5(\). This).15 F
-(is enabled by def)2.5 E(ault.)-.1 E F1(huponexit)144 312 Q F0(If set,)
-184 324 Q F1(bash)2.5 E F0(will send)2.5 E F2(SIGHUP)2.5 E F0
+F3(READLINE)3.881 E F0(abo)184 492 Q -.15(ve)-.15 G 2.5(\). This).15 F
+(is enabled by def)2.5 E(ault.)-.1 E F1(huponexit)144 504 Q F0(If set,)
+184 516 Q F1(bash)2.5 E F0(will send)2.5 E F3(SIGHUP)2.5 E F0
 (to all jobs when an interacti)2.25 E .3 -.15(ve l)-.25 H(ogin shell e)
-.15 E(xits.)-.15 E F1(inherit_err)144 336 Q(exit)-.18 E F0 .22
-(If set, command substitution inherits the v)184 348 R .219(alue of the)
+.15 E(xits.)-.15 E F1(inherit_err)144 528 Q(exit)-.18 E F0 .22
+(If set, command substitution inherits the v)184 540 R .219(alue of the)
 -.25 F F1(err)2.719 E(exit)-.18 E F0 .219(option, instead of unsetting)
-2.719 F(it in the subshell en)184 360 Q 2.5(vironment. This)-.4 F
-(option is enabled when)2.5 E/F3 10/Times-Italic@0 SF(posix mode)2.5 E
-F0(is enabled.)2.5 E F1(interacti)144 372 Q -.1(ve)-.1 G(_comments).1 E
-F0 .33(If set, allo)184 384 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
+2.719 F(it in the subshell en)184 552 Q 2.5(vironment. This)-.4 F
+(option is enabled when)2.5 E F2(posix mode)2.5 E F0(is enabled.)2.5 E
+F1(interacti)144 564 Q -.1(ve)-.1 G(_comments).1 E F0 .33(If set, allo)
+184 576 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 396 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 408 Q
-(ault.)-.1 E F1(lastpipe)144 420 Q F0 .066
-(If set, and job control is not acti)184 420 R -.15(ve)-.25 G 2.566(,t)
+(that line to be ignored in an interacti)184 588 R 1.267 -.15(ve s)-.25
+H .967(hell \(see).15 F F3(COMMENTS)3.467 E F0(abo)3.217 E -.15(ve)-.15
+G 3.467(\). This).15 F .967(option is)3.467 F(enabled by def)184 600 Q
+(ault.)-.1 E F1(lastpipe)144 612 Q F0 .066
+(If set, and job control is not acti)184 612 R -.15(ve)-.25 G 2.566(,t)
 .15 G .066(he shell runs the last command of a pipeline not e)-2.566 F
 -.15(xe)-.15 G(-).15 E(cuted in the background in the current shell en)
-184 432 Q(vironment.)-.4 E F1(lithist)144 444 Q F0 .655(If set, and the)
-184 444 R F1(cmdhist)3.155 E F0 .654
+184 624 Q(vironment.)-.4 E F1(lithist)144 636 Q F0 .655(If set, and the)
+184 636 R 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 456 Q
+(with embedded ne)184 648 Q
 (wlines rather than using semicolon separators where possible.)-.25 E F1
-(localv)144 468 Q(ar_inherit)-.1 E F0 .421(If set, local v)184 480 R
+(localv)144 660 Q(ar_inherit)-.1 E F0 .421(If set, local v)184 672 R
 .422(ariables inherit the v)-.25 F .422(alue and attrib)-.25 F .422
 (utes of a v)-.2 F .422(ariable of the same name that)-.25 F -.15(ex)184
-492 S .174(ists at a pre).15 F .174(vious scope before an)-.25 F 2.673
+684 S .174(ists at a pre).15 F .174(vious scope before an)-.25 F 2.673
 (yn)-.15 G .673 -.25(ew va)-2.673 H .173(lue is assigned.).25 F .173
-(The nameref attrib)5.173 F .173(ute is not)-.2 F(inherited.)184 504 Q
-F1(login_shell)144 516 Q F0 .486
-(The shell sets this option if it is started as a login shell \(see)184
-528 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 540 S(lue may not be changed.).25
-E F1(mailwar)144 552 Q(n)-.15 E F0 .815(If set, and a \214le that)184
-564 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 576 S 2.5(sc).1 G(heck)-2.5 E(ed, the message `)-.1 E
-(`The mail in)-.74 E F3(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 588
-Q F0 .324(If set, and)184 600 R F1 -.18(re)2.824 G(adline).18 E F0 .324
-(is being used,)2.824 F F1(bash)2.824 E F0 .324
-(will not attempt to search the)2.824 F F2 -.666(PA)2.825 G(TH)-.189 E
-F0 .325(for possible)2.575 F
-(completions when completion is attempted on an empty line.)184 612 Q F1
-(nocaseglob)144 624 Q F0 .437(If set,)184 636 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 648 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 660 Q F0 1.193(If set,)184
-672 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 .551(while e)184 684 R -.15(xe)-.15 G(cuting).15 E F1(case)3.051 E F0
-(or)3.051 E F1([[)3.051 E F0 .551
-(conditional commands, when performing pattern substitution)3.051 F -.1
-(wo)184 696 S .622(rd e).1 F .623(xpansions, or when \214ltering possib\
-le completions as part of programmable com-)-.15 F(pletion.)184 708 Q
+(The nameref attrib)5.173 F .173(ute is not)-.2 F(inherited.)184 696 Q
 (GNU Bash 5.0)72 768 Q(2004 Apr 20)149.565 E(20)198.725 E 0 Cg EP
 %%Page: 21 21
 %%BeginPageSetup
 %%EndPageSetup
 /F0 10/Times-Roman@0 SF -.35(BA)72 48 S(SH_B).35 E(UIL)-.1 E 87.61
 (TINS\(1\) General)-.92 F(Commands Manual)2.5 E -.35(BA)90.11 G(SH_B).35
-E(UIL)-.1 E(TINS\(1\))-.92 E/F1 10/Times-Bold@0 SF(nullglob)144 84 Q F0
-.855(If set,)184 96 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 108 S(pand to a null string, rather than themselv)
-.15 E(es.)-.15 E F1(pr)144 120 Q(ogcomp)-.18 E F0 .676
-(If set, the programmable completion f)184 132 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 144 Q
-(This option is enabled by def)5 E(ault.)-.1 E F1(pr)144 156 Q(omptv)
--.18 E(ars)-.1 E F0 1.448(If set, prompt strings under)184 168 R 1.448
-(go parameter e)-.18 F 1.447(xpansion, command substitution, arithmetic)
--.15 F -.15(ex)184 180 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 9/Times-Bold@0 SF(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 192 Q(ault.)-.1
-E F1 -.18(re)144 204 S(stricted_shell).18 E F0 1.069
+E(UIL)-.1 E(TINS\(1\))-.92 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 .324(If set, and)184 168 R F1 -.18
+(re)2.824 G(adline).18 E F0 .324(is being used,)2.824 F F1(bash)2.824 E
+F0 .324(will not attempt to search the)2.824 F F2 -.666(PA)2.825 G(TH)
+-.189 E F0 .325(for possible)2.575 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 .551(while e)184 252 R -.15(xe)-.15 G(cuting).15 E F1(case)3.051 E F0
+(or)3.051 E F1([[)3.051 E F0 .551
+(conditional commands, when performing pattern substitution)3.051 F -.1
+(wo)184 264 S .622(rd e).1 F .623(xpansions, or when \214ltering possib\
+le completions as part of programmable com-)-.15 F(pletion.)184 276 Q F1
+(nullglob)144 288 Q F0 .855(If set,)184 300 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 312 S
+(pand to a null string, rather than themselv).15 E(es.)-.15 E F1(pr)144
+324 Q(ogcomp)-.18 E F0 .676(If set, the programmable completion f)184
+336 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 348 Q(This option is enabled by def)5 E(ault.)-.1 E F1
+(pr)144 360 Q(omptv)-.18 E(ars)-.1 E F0 1.448
+(If set, prompt strings under)184 372 R 1.448(go parameter e)-.18 F
+1.447(xpansion, command substitution, arithmetic)-.15 F -.15(ex)184 384
+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 396 Q(ault.)-.1 E F1 -.18(re)144 408
+S(stricted_shell).18 E F0 1.069
 (The shell sets this option if it is started in restricted mode \(see)
-184 216 R F2 1.069(RESTRICTED SHELL)3.569 F F0(belo)184 228 Q 2.86
+184 420 R F2 1.069(RESTRICTED SHELL)3.569 F F0(belo)184 432 Q 2.86
 (w\). The)-.25 F -.25(va)2.86 G .36(lue may not be changed.).25 F .36
 (This is not reset when the startup \214les are e)5.36 F -.15(xe)-.15 G
-(-).15 E(cuted, allo)184 240 Q(wing the startup \214les to disco)-.25 E
+(-).15 E(cuted, allo)184 444 Q(wing the startup \214les to disco)-.25 E
 -.15(ve)-.15 G 2.5(rw).15 G(hether or not a shell is restricted.)-2.5 E
-F1(shift_v)144 252 Q(erbose)-.1 E F0 .502(If set, the)184 264 R F1
+F1(shift_v)144 456 Q(erbose)-.1 E F0 .502(If set, the)184 468 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 276 Q F1(sour)
-144 288 Q(cepath)-.18 E F0 .77(If set, the)184 300 R F1(sour)3.27 E(ce)
+(xceeds the number)-.15 F(of positional parameters.)184 480 Q F1(sour)
+144 492 Q(cepath)-.18 E F0 .77(If set, the)184 504 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 312 Q 2.5(gument. This)-.18 F
-(option is enabled by def)2.5 E(ault.)-.1 E F1(xpg_echo)144 324 Q F0
-(If set, the)184 336 Q F1(echo)2.5 E F0 -.2(bu)2.5 G(iltin e).2 E
+(\214le supplied as an ar)184 516 Q 2.5(gument. This)-.18 F
+(option is enabled by def)2.5 E(ault.)-.1 E F1(xpg_echo)144 528 Q F0
+(If set, the)184 540 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 352.8 Q F0([)2.5 E F1<ad66>A F0(])A 1.002(Suspend the e)144 364.8 R
+108 556.8 Q F0([)2.5 E F1<ad66>A F0(])A 1.002(Suspend the e)144 568.8 R
 -.15(xe)-.15 G 1.002(cution of this shell until it recei).15 F -.15(ve)
 -.25 G 3.501(sa).15 G F2(SIGCONT)A F0 3.501(signal. A)3.251 F 1.001
-(login shell cannot be)3.501 F .022(suspended; the)144 376.8 R F1<ad66>
+(login shell cannot be)3.501 F .022(suspended; the)144 580.8 R F1<ad66>
 2.522 E F0 .022(option can be used to o)2.522 F -.15(ve)-.15 G .022
 (rride this and force the suspension.).15 F .023(The return status is)
-5.023 F 2.5(0u)144 388.8 S(nless the shell is a login shell and)-2.5 E
+5.023 F 2.5(0u)144 592.8 S(nless the shell is a login shell and)-2.5 E
 F1<ad66>2.5 E F0(is not supplied, or if job control is not enabled.)2.5
-E F1(test)108 405.6 Q/F3 10/Times-Italic@0 SF -.2(ex)2.5 G(pr).2 E F1([)
-108 417.6 Q F3 -.2(ex)2.5 G(pr).2 E F1(])2.5 E F0 .878
-(Return a status of 0 \(true\) or 1 \(f)144 417.6 R .877
+E F1(test)108 609.6 Q F3 -.2(ex)2.5 G(pr).2 E F1([)108 621.6 Q F3 -.2
+(ex)2.5 G(pr).2 E F1(])2.5 E F0 .878
+(Return a status of 0 \(true\) or 1 \(f)144 621.6 R .877
 (alse\) depending on the e)-.1 F -.25(va)-.25 G .877
-(luation of the conditional e).25 F(xpression)-.15 E F3 -.2(ex)144 429.6
+(luation of the conditional e).25 F(xpression)-.15 E F3 -.2(ex)144 633.6
 S(pr).2 E F0 5.53(.E).73 G .53
 (ach operator and operand must be a separate ar)-5.53 F 3.03
 (gument. Expressions)-.18 F .53(are composed of the)3.03 F 3.08
-(primaries described abo)144 441.6 R 3.38 -.15(ve u)-.15 H(nder).15 E F2
+(primaries described abo)144 645.6 R 3.38 -.15(ve u)-.15 H(nder).15 E F2
 (CONDITION)5.58 E 3.079(AL EXPRESSIONS)-.18 F/F4 9/Times-Roman@0 SF(.)A
 F1(test)7.579 E F0 3.079(does not accept an)5.579 F(y)-.15 E
-(options, nor does it accept and ignore an ar)144 453.6 Q(gument of)-.18
+(options, nor does it accept and ignore an ar)144 657.6 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 471.6 R .786
+(Expressions may be combined using the follo)144 675.6 R .786
 (wing operators, listed in decreasing order of prece-)-.25 F 3.412
-(dence. The)144 483.6 R -.25(eva)3.412 G .912
+(dence. The)144 687.6 R -.25(eva)3.412 G .912
 (luation depends on the number of ar).25 F .911(guments; see belo)-.18 F
 4.711 -.65(w. O)-.25 H .911(perator precedence is).65 F
-(used when there are \214v)144 495.6 Q 2.5(eo)-.15 G 2.5(rm)-2.5 G
-(ore ar)-2.5 E(guments.)-.18 E F1(!)144 507.6 Q F3 -.2(ex)2.5 G(pr).2 E
-F0 -.35(Tr)180 507.6 S(ue if).35 E F3 -.2(ex)2.5 G(pr).2 E F0(is f)3.23
-E(alse.)-.1 E F1(\()144 519.6 Q F3 -.2(ex)2.5 G(pr).2 E F1(\))2.5 E F0
-.26(Returns the v)180 519.6 R .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 531.6 Q F3 -.2
-(ex)144 543.6 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 555.6 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 567.6 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
-579.6 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 596.4 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 614.4 S -.18(rg)-2.5 G(uments).18 E(The e)
-180 626.4 Q(xpression is f)-.15 E(alse.)-.1 E 2.5(1a)144 638.4 S -.18
-(rg)-2.5 G(ument).18 E(The e)180 650.4 Q
-(xpression is true if and only if the ar)-.15 E(gument is not null.)-.18
-E 2.5(2a)144 662.4 S -.18(rg)-2.5 G(uments).18 E .37(If the \214rst ar)
-180 674.4 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 686.4 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 698.4 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 710.4 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(GNU Bash 5.0)72 768 Q(2004 Apr 20)
-149.565 E(21)198.725 E 0 Cg EP
+(used when there are \214v)144 699.6 Q 2.5(eo)-.15 G 2.5(rm)-2.5 G
+(ore ar)-2.5 E(guments.)-.18 E F1(!)144 711.6 Q F3 -.2(ex)2.5 G(pr).2 E
+F0 -.35(Tr)180 711.6 S(ue if).35 E F3 -.2(ex)2.5 G(pr).2 E F0(is f)3.23
+E(alse.)-.1 E(GNU Bash 5.0)72 768 Q(2004 Apr 20)149.565 E(21)198.725 E 0
+Cg EP
 %%Page: 22 22
 %%BeginPageSetup
 BP
 %%EndPageSetup
 /F0 10/Times-Roman@0 SF -.35(BA)72 48 S(SH_B).35 E(UIL)-.1 E 87.61
 (TINS\(1\) General)-.92 F(Commands Manual)2.5 E -.35(BA)90.11 G(SH_B).35
-E(UIL)-.1 E(TINS\(1\))-.92 E 2.5(3a)144 84 S -.18(rg)-2.5 G(uments).18 E
-.236(The follo)180 96 R .236
+E(UIL)-.1 E(TINS\(1\))-.92 E/F1 10/Times-Bold@0 SF(\()144 84 Q/F2 10
+/Times-Italic@0 SF -.2(ex)2.5 G(pr).2 E F1(\))2.5 E F0 .26
+(Returns the v)180 84 R .26(alue of)-.25 F F2 -.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 96 Q F2 -.2(ex)
+144 108 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 120 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 132 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 144 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 160.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 178.8 S -.18(rg)-2.5 G(uments).18 E(The e)
+180 190.8 Q(xpression is f)-.15 E(alse.)-.1 E 2.5(1a)144 202.8 S -.18
+(rg)-2.5 G(ument).18 E(The e)180 214.8 Q
+(xpression is true if and only if the ar)-.15 E(gument is not null.)-.18
+E 2.5(2a)144 226.8 S -.18(rg)-2.5 G(uments).18 E .37(If the \214rst ar)
+180 238.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 250.8 R .38
+(gument is one of the unary conditional operators listed abo)-.18 F .68
+-.15(ve u)-.15 H(nder).15 E/F3 9/Times-Bold@0 SF(CONDI-)2.88 E(TION)180
+262.8 Q .553(AL EXPRESSIONS)-.18 F/F4 9/Times-Roman@0 SF(,)A F0 .552
+(the e)2.802 F .552(xpression is true if the unary test is true.)-.15 F
+.552(If the \214rst ar)5.552 F(gu-)-.18 E(ment is not a v)180 274.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 286.8 S -.18(rg)-2.5 G
+(uments).18 E .236(The follo)180 298.8 R .236
 (wing conditions are applied in the order listed.)-.25 F .236
 (If the second ar)5.236 F .236(gument is one of)-.18 F .855
-(the binary conditional operators listed abo)180 108 R 1.155 -.15(ve u)
--.15 H(nder).15 E/F1 9/Times-Bold@0 SF(CONDITION)3.355 E .855
-(AL EXPRESSIONS)-.18 F/F2 9/Times-Roman@0 SF(,)A F0(the)3.104 E .578
-(result of the e)180 120 R .578(xpression is the result of the binary t\
-est using the \214rst and third ar)-.15 F(guments)-.18 E 1.333
-(as operands.)180 132 R(The)6.333 E/F3 10/Times-Bold@0 SF<ad61>3.833 E
-F0(and)3.833 E F3<ad6f>3.832 E F0 1.332
+(the binary conditional operators listed abo)180 310.8 R 1.155 -.15
+(ve u)-.15 H(nder).15 E F3(CONDITION)3.355 E .855(AL EXPRESSIONS)-.18 F
+F4(,)A F0(the)3.104 E .578(result of the e)180 322.8 R .578(xpression i\
+s the result of the binary test using the \214rst and third ar)-.15 F
+(guments)-.18 E 1.333(as operands.)180 334.8 R(The)6.333 E F1<ad61>3.833
+E F0(and)3.833 E F1<ad6f>3.832 E F0 1.332
 (operators are considered binary operators when there are)3.832 F .558
-(three ar)180 144 R 3.058(guments. If)-.18 F .558(the \214rst ar)3.058 F
-.558(gument is)-.18 F F3(!)3.058 E F0 3.058(,t)C .558(he v)-3.058 F .558
-(alue is the ne)-.25 F -.05(ga)-.15 G .558(tion of the tw).05 F(o-ar)-.1
-E(gument)-.18 E .521(test using the second and third ar)180 156 R 3.021
-(guments. If)-.18 F .521(the \214rst ar)3.021 F .52(gument is e)-.18 F
-(xactly)-.15 E F3(\()3.02 E F0 .52(and the third)3.02 F(ar)180 168 Q
-.485(gument is e)-.18 F(xactly)-.15 E F3(\))2.985 E F0 2.985(,t)C .485
-(he result is the one-ar)-2.985 F .485(gument test of the second ar)-.18
-F 2.985(gument. Other)-.18 F(-)-.2 E(wise, the e)180 180 Q
-(xpression is f)-.15 E(alse.)-.1 E 2.5(4a)144 192 S -.18(rg)-2.5 G
-(uments).18 E .385(If the \214rst ar)180 204 R .385(gument is)-.18 F F3
-(!)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 216 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 228 Q -.15(ve)
--.15 G(.).15 E 2.5(5o)144 240 S 2.5(rm)-2.5 G(ore ar)-2.5 E(guments)-.18
-E 1.635(The e)180 252 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 264 Q -.15(ve)-.15 G(.).15 E(When used with)144 282 Q F3(test)
-2.5 E F0(or)2.5 E F3([)2.5 E F0 2.5(,t)C(he)-2.5 E F3(<)2.5 E F0(and)2.5
-E F3(>)2.5 E F0(operators sort le)2.5 E
-(xicographically using ASCII ordering.)-.15 E F3(times)108 298.8 Q F0
+(three ar)180 346.8 R 3.058(guments. If)-.18 F .558(the \214rst ar)3.058
+F .558(gument is)-.18 F F1(!)3.058 E F0 3.058(,t)C .558(he v)-3.058 F
+.558(alue is the ne)-.25 F -.05(ga)-.15 G .558(tion of the tw).05 F
+(o-ar)-.1 E(gument)-.18 E .521(test using the second and third ar)180
+358.8 R 3.021(guments. If)-.18 F .521(the \214rst ar)3.021 F .52
+(gument is e)-.18 F(xactly)-.15 E F1(\()3.02 E F0 .52(and the third)3.02
+F(ar)180 370.8 Q .485(gument is e)-.18 F(xactly)-.15 E F1(\))2.985 E F0
+2.985(,t)C .485(he result is the one-ar)-2.985 F .485
+(gument test of the second ar)-.18 F 2.985(gument. Other)-.18 F(-)-.2 E
+(wise, the e)180 382.8 Q(xpression is f)-.15 E(alse.)-.1 E 2.5(4a)144
+394.8 S -.18(rg)-2.5 G(uments).18 E .385(If the \214rst ar)180 406.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 418.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
+430.8 Q -.15(ve)-.15 G(.).15 E 2.5(5o)144 442.8 S 2.5(rm)-2.5 G(ore ar)
+-2.5 E(guments)-.18 E 1.635(The e)180 454.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
+466.8 Q -.15(ve)-.15 G(.).15 E(When used with)144 484.8 Q F1(test)2.5 E
+F0(or)2.5 E F1([)2.5 E F0 2.5(,t)C(he)-2.5 E F1(<)2.5 E F0(and)2.5 E F1
+(>)2.5 E F0(operators sort le)2.5 E
+(xicographically using ASCII ordering.)-.15 E F1(times)108 501.6 Q F0
 1.229(Print the accumulated user and system times for the shell and for\
- processes run from the shell.)144 298.8 R(The return status is 0.)144
-310.8 Q F3(trap)108 327.6 Q F0([)2.5 E F3(\255lp)A F0 2.5(][)C([)-2.5 E
-/F4 10/Times-Italic@0 SF(ar)A(g)-.37 E F0(])A F4(sigspec)2.5 E F0(...])
-2.5 E .703(The command)144 339.6 R F4(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 F4(sigspec)3.202 E F0 5.702(.I).31 G(f)-5.702 E F4
-(ar)3.532 E(g)-.37 E F0(is)3.422 E .608(absent \(and there is a single)
-144 351.6 R F4(sigspec)3.108 E F0 3.108(\)o)C(r)-3.108 E F3<ad>3.108 E
-F0 3.108(,e)C .608
+ processes run from the shell.)144 501.6 R(The return status is 0.)144
+513.6 Q F1(trap)108 530.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 .703(The command)
+144 542.4 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 554.4 R F2(sigspec)3.108 E F0 3.108
+(\)o)C(r)-3.108 E F1<ad>3.108 E F0 3.108(,e)C .608
 (ach speci\214ed signal is reset to its original disposition)-3.108 F
-.659(\(the v)144 363.6 R .659(alue it had upon entrance to the shell\).)
--.25 F(If)5.658 E F4(ar)3.488 E(g)-.37 E F0 .658
-(is the null string the signal speci\214ed by each)3.378 F F4(sigspec)
-144.34 375.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 F4(ar)3.411 E(g)-.37 E
-F0 .581(is not present and)3.301 F F3<ad70>3.081 E F0(has)3.081 E 1.215
-(been supplied, then the trap commands associated with each)144 387.6 R
-F4(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 399.6 R F3<ad70>3.36
-E F0 .86(is gi)3.36 F -.15(ve)-.25 G(n,).15 E F3(trap)3.36 E F0 .86
+.659(\(the v)144 566.4 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 578.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 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 590.4 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 602.4 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 411.6 R F3<ad6c>2.83 E F0 .33(option causes the shell \
+(signal. The)144 614.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.31
-(bers. Each)144 423.6 R F4(sigspec)4.65 E F0 1.811
-(is either a signal name de\214ned in <)4.62 F F4(signal.h)A F0 1.811
+(bers. Each)144 626.4 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
-(names are case insensiti)144 435.6 Q .3 -.15(ve a)-.25 H(nd the).15 E
-F1(SIG)2.5 E F0(pre\214x is optional.)2.25 E 1.649(If a)144 453.6 R F4
-(sigspec)4.489 E F0(is)4.459 E F1(EXIT)4.149 E F0 1.649
-(\(0\) the command)3.899 F F4(ar)4.479 E(g)-.37 E F0 1.649(is e)4.369 F
+(names are case insensiti)144 638.4 Q .3 -.15(ve a)-.25 H(nd the).15 E
+F3(SIG)2.5 E F0(pre\214x is optional.)2.25 E 1.649(If a)144 656.4 R F2
+(sigspec)4.489 E F0(is)4.459 E F3(EXIT)4.149 E F0 1.649
+(\(0\) the command)3.899 F F2(ar)4.479 E(g)-.37 E F0 1.649(is e)4.369 F
 -.15(xe)-.15 G 1.649(cuted on e).15 F 1.648(xit from the shell.)-.15 F
-1.648(If a)6.648 F F4(sigspec)4.488 E F0(is)4.458 E F1(DEB)144 465.6 Q
-(UG)-.09 E F2(,)A F0 1.167(the command)3.417 F F4(ar)3.997 E(g)-.37 E F0
+1.648(If a)6.648 F F2(sigspec)4.488 E F0(is)4.458 E F3(DEB)144 668.4 Q
+(UG)-.09 E F4(,)A F0 1.167(the command)3.417 F F2(ar)3.997 E(g)-.37 E F0
 1.167(is e)3.887 F -.15(xe)-.15 G 1.167(cuted before e).15 F -.15(ve)
--.25 G(ry).15 E F4 1.168(simple command)3.667 F F0(,)A F4(for)3.668 E F0
-(command,)3.668 E F4(case)3.668 E F0(com-)3.668 E(mand,)144 477.6 Q F4
+-.25 G(ry).15 E F2 1.168(simple command)3.667 F F0(,)A F2(for)3.668 E F0
+(command,)3.668 E F2(case)3.668 E F0(com-)3.668 E(mand,)144 680.4 Q F2
 (select)2.647 E F0 .147(command, e)2.647 F -.15(ve)-.25 G .147
-(ry arithmetic).15 F F4(for)2.647 E F0 .146
+(ry arithmetic).15 F F2(for)2.647 E F0 .146
 (command, and before the \214rst command e)2.647 F -.15(xe)-.15 G .146
-(cutes in a).15 F .145(shell function \(see)144 489.6 R F1 .145
+(cutes in a).15 F .145(shell function \(see)144 692.4 R F3 .145
 (SHELL GRAMMAR)2.645 F F0(abo)2.395 E -.15(ve)-.15 G 2.646(\). Refer).15
-F .146(to the description of the)2.646 F F3(extdeb)2.646 E(ug)-.2 E F0
-.146(option to)2.646 F(the)144 501.6 Q F3(shopt)3.201 E F0 -.2(bu)3.201
-G .7(iltin for details of its ef).2 F .7(fect on the)-.25 F F3(DEB)3.2 E
-(UG)-.1 E F0 3.2(trap. If)3.2 F(a)3.2 E F4(sigspec)3.54 E F0(is)3.51 E
-F1(RETURN)3.2 E F2(,)A F0 .7(the com-)2.95 F(mand)144 513.6 Q F4(ar)
+F .146(to the description of the)2.646 F F1(extdeb)2.646 E(ug)-.2 E F0
+.146(option to)2.646 F(the)144 704.4 Q F1(shopt)3.201 E F0 -.2(bu)3.201
+G .7(iltin for details of its ef).2 F .7(fect on the)-.25 F F1(DEB)3.2 E
+(UG)-.1 E F0 3.2(trap. If)3.2 F(a)3.2 E F2(sigspec)3.54 E F0(is)3.51 E
+F3(RETURN)3.2 E F4(,)A F0 .7(the com-)2.95 F(mand)144 716.4 Q F2(ar)
 3.473 E(g)-.37 E F0 .643(is e)3.363 F -.15(xe)-.15 G .643
 (cuted each time a shell function or a script e).15 F -.15(xe)-.15 G
-.644(cuted with the).15 F F3(.)3.144 E F0(or)3.144 E F3(sour)3.144 E(ce)
--.18 E F0 -.2(bu)3.144 G(iltins).2 E(\214nishes e)144 525.6 Q -.15(xe)
--.15 G(cuting.).15 E .961(If a)144 543.6 R F4(sigspec)3.801 E F0(is)
-3.771 E F1(ERR)3.461 E F2(,)A F0 .961(the command)3.211 F F4(ar)3.791 E
-(g)-.37 E F0 .961(is e)3.681 F -.15(xe)-.15 G .961(cuted whene).15 F
--.15(ve)-.25 G 3.461(ra).15 G .96(pipeline \(which may consist of a)
--.001 F .185(single simple command\), a list, or a compound command ret\
-urns a non\255zero e)144 555.6 R .185(xit status, subject to)-.15 F .452
-(the follo)144 567.6 R .452(wing conditions.)-.25 F(The)5.452 E F1(ERR)
-2.952 E F0 .451(trap is not e)2.701 F -.15(xe)-.15 G .451
-(cuted if the f).15 F .451(ailed command is part of the com-)-.1 F .387
-(mand list immediately follo)144 579.6 R .387(wing a)-.25 F F3(while)
-2.887 E F0(or)2.887 E F3(until)2.888 E F0 -.1(ke)2.888 G(yw)-.05 E .388
-(ord, part of the test in an)-.1 F F4(if)2.898 E F0 .388
-(statement, part)4.848 F .778(of a command e)144 591.6 R -.15(xe)-.15 G
-.778(cuted in a).15 F F3(&&)3.278 E F0(or)3.278 E F3(||)3.278 E F0 .778
-(list e)3.278 F .778(xcept the command follo)-.15 F .778
-(wing the \214nal)-.25 F F3(&&)3.278 E F0(or)3.278 E F3(||)3.277 E F0
-3.277(,a)C -.15(ny)-3.277 G 1.28(command in a pipeline b)144 603.6 R
-1.28(ut the last, or if the command')-.2 F 3.78(sr)-.55 G 1.28(eturn v)
--3.78 F 1.28(alue is being in)-.25 F -.15(ve)-.4 G 1.28(rted using).15 F
-F3(!)3.78 E F0(.)A(These are the same conditions obe)144 615.6 Q
-(yed by the)-.15 E F3(err)2.5 E(exit)-.18 E F0(\()2.5 E F3<ad65>A F0 2.5
-(\)o)C(ption.)-2.5 E 1.095
+.644(cuted with the).15 F F1(.)3.144 E F0(or)3.144 E F1(sour)3.144 E(ce)
+-.18 E F0 -.2(bu)3.144 G(iltins).2 E(\214nishes e)144 728.4 Q -.15(xe)
+-.15 G(cuting.).15 E(GNU Bash 5.0)72 768 Q(2004 Apr 20)149.565 E(22)
+198.725 E 0 Cg EP
+%%Page: 23 23
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF -.35(BA)72 48 S(SH_B).35 E(UIL)-.1 E 87.61
+(TINS\(1\) General)-.92 F(Commands Manual)2.5 E -.35(BA)90.11 G(SH_B).35
+E(UIL)-.1 E(TINS\(1\))-.92 E .961(If a)144 84 R/F1 10/Times-Italic@0 SF
+(sigspec)3.801 E F0(is)3.771 E/F2 9/Times-Bold@0 SF(ERR)3.461 E/F3 9
+/Times-Roman@0 SF(,)A F0 .961(the command)3.211 F F1(ar)3.791 E(g)-.37 E
+F0 .961(is e)3.681 F -.15(xe)-.15 G .961(cuted whene).15 F -.15(ve)-.25
+G 3.461(ra).15 G .96(pipeline \(which may consist of a)-.001 F .185(sin\
+gle simple command\), a list, or a compound command returns a non\255ze\
+ro e)144 96 R .185(xit status, subject to)-.15 F .452(the follo)144 108
+R .452(wing conditions.)-.25 F(The)5.452 E F2(ERR)2.952 E F0 .451
+(trap is not e)2.701 F -.15(xe)-.15 G .451(cuted if the f).15 F .451
+(ailed command is part of the com-)-.1 F .387
+(mand list immediately follo)144 120 R .387(wing a)-.25 F/F4 10
+/Times-Bold@0 SF(while)2.887 E F0(or)2.887 E F4(until)2.888 E F0 -.1(ke)
+2.888 G(yw)-.05 E .388(ord, part of the test in an)-.1 F F1(if)2.898 E
+F0 .388(statement, part)4.848 F .778(of a command e)144 132 R -.15(xe)
+-.15 G .778(cuted in a).15 F F4(&&)3.278 E F0(or)3.278 E F4(||)3.278 E
+F0 .778(list e)3.278 F .778(xcept the command follo)-.15 F .778
+(wing the \214nal)-.25 F F4(&&)3.278 E F0(or)3.278 E F4(||)3.277 E F0
+3.277(,a)C -.15(ny)-3.277 G 1.28(command in a pipeline b)144 144 R 1.28
+(ut the last, or if the command')-.2 F 3.78(sr)-.55 G 1.28(eturn v)-3.78
+F 1.28(alue is being in)-.25 F -.15(ve)-.4 G 1.28(rted using).15 F F4(!)
+3.78 E F0(.)A(These are the same conditions obe)144 156 Q(yed by the)
+-.15 E F4(err)2.5 E(exit)-.18 E F0(\()2.5 E F4<ad65>A F0 2.5(\)o)C
+(ption.)-2.5 E 1.095
 (Signals ignored upon entry to the shell cannot be trapped or reset.)144
-633.6 R -.35(Tr)6.095 G 1.095(apped signals that are not).35 F .662
-(being ignored are reset to their original v)144 645.6 R .662
+174 R -.35(Tr)6.095 G 1.095(apped signals that are not).35 F .662
+(being ignored are reset to their original v)144 186 R .662
 (alues in a subshell or subshell en)-.25 F .662(vironment when one is)
--.4 F 2.5(created. The)144 657.6 R(return status is f)2.5 E(alse if an)
--.1 E(y)-.15 E F4(sigspec)2.84 E F0(is in)2.81 E -.25(va)-.4 G
-(lid; otherwise).25 E F3(trap)2.5 E F0(returns true.)2.5 E F3(type)108
-674.4 Q F0([)2.5 E F3(\255aftpP)A F0(])A F4(name)2.5 E F0([)2.5 E F4
-(name)A F0(...])2.5 E -.4(Wi)144 686.4 S .174
-(th no options, indicate ho).4 F 2.674(we)-.25 G(ach)-2.674 E F4(name)
+-.4 F 2.5(created. The)144 198 R(return status is f)2.5 E(alse if an)-.1
+E(y)-.15 E F1(sigspec)2.84 E F0(is in)2.81 E -.25(va)-.4 G
+(lid; otherwise).25 E F4(trap)2.5 E F0(returns true.)2.5 E F4(type)108
+214.8 Q F0([)2.5 E F4(\255aftpP)A F0(])A F1(name)2.5 E F0([)2.5 E F1
+(name)A F0(...])2.5 E -.4(Wi)144 226.8 S .174
+(th no options, indicate ho).4 F 2.674(we)-.25 G(ach)-2.674 E F1(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
-F3<ad74>144 698.4 Q F0 .842(option is used,)3.342 F F3(type)3.342 E F0
-.843(prints a string which is one of)3.343 F F4(alias)3.343 E F0(,).27 E
-F4 -.1(ke)3.343 G(ywor)-.2 E(d)-.37 E F0(,).77 E F4(function)3.343 E F0
-(,).24 E F4 -.2(bu)3.343 G(iltin).2 E F0 3.343(,o).24 G(r)-3.343 E F4
-(\214le)5.253 E F0(if)3.523 E F4(name)144.36 710.4 Q F0 .087
+F4<ad74>144 238.8 Q F0 .842(option is used,)3.342 F F4(type)3.342 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.343 G(iltin).2 E F0 3.343(,o).24 G(r)-3.343 E F1
+(\214le)5.253 E F0(if)3.523 E F1(name)144.36 250.8 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 F4
+(ve)-.25 G(ly).15 E 5.086(.I)-.65 G 2.586(ft)-5.086 G(he)-2.586 E F1
 (name)2.946 E F0 .086(is not)2.766 F .118
-(found, then nothing is printed, and an e)144 722.4 R .118
+(found, then nothing is printed, and an e)144 262.8 R .118
 (xit status of f)-.15 F .118(alse is returned.)-.1 F .119(If the)5.119 F
-F3<ad70>2.619 E F0 .119(option is used,)2.619 F F3(type)2.619 E F0
-(GNU Bash 5.0)72 768 Q(2004 Apr 20)149.565 E(22)198.725 E 0 Cg EP
-%%Page: 23 23
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Roman@0 SF -.35(BA)72 48 S(SH_B).35 E(UIL)-.1 E 87.61
-(TINS\(1\) General)-.92 F(Commands Manual)2.5 E -.35(BA)90.11 G(SH_B).35
-E(UIL)-.1 E(TINS\(1\))-.92 E .855
-(either returns the name of the disk \214le that w)144 84 R .855
-(ould be e)-.1 F -.15(xe)-.15 G .855(cuted if).15 F/F1 10/Times-Italic@0
-SF(name)3.715 E F0 .855(were speci\214ed as a com-)3.535 F .64
-(mand name, or nothing if)144 96 R/F2 10/Courier@0 SF .64(type -t name)
-3.14 F F0 -.1(wo)3.14 G .641(uld not return).1 F F1(\214le)3.141 E F0
-5.641(.T).18 G(he)-5.641 E/F3 10/Times-Bold@0 SF<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 108 R F1(name)2.613 E F0 2.613(,e)C -.15
-(ve)-2.863 G 2.613(ni).15 G(f)-2.613 E F2 .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(fa)-5.113 G .112(command is hashed,)-.001 F F3<ad70>2.612 E
-F0(and)144 120 Q F3<ad50>3.23 E F0 .73(print the hashed v)3.23 F .731
+F4<ad70>2.619 E F0 .119(option is used,)2.619 F F4(type)2.619 E F0 .855
+(either returns the name of the disk \214le that w)144 274.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 .64(mand name, or nothing if)144
+286.8 R/F5 10/Courier@0 SF .64(type -t name)3.14 F F0 -.1(wo)3.14 G .641
+(uld not return).1 F F1(\214le)3.141 E F0 5.641(.T).18 G(he)-5.641 E F4
+<ad50>3.141 E F0 .641(option forces a)3.141 F F2 -.666(PA)3.141 G(TH)
+-.189 E F0 .113(search for each)144 298.8 R F1(name)2.613 E F0 2.613(,e)
+C -.15(ve)-2.863 G 2.613(ni).15 G(f)-2.613 E F5 .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(fa)-5.113 G .112(command is hashed,)-.001 F F4<ad70>
+2.612 E F0(and)144 310.8 Q F4<ad50>3.23 E F0 .73(print the hashed v)3.23
+F .731
 (alue, which is not necessarily the \214le that appears \214rst in)-.25
-F F4 -.666(PA)3.231 G(TH)-.189 E/F5 9/Times-Roman@0 SF(.)A F0 .731
-(If the)5.231 F F3<ad61>144 132 Q F0 1.749(option is used,)4.249 F F3
-(type)4.248 E F0 1.748(prints all of the places that contain an e)4.248
-F -.15(xe)-.15 G 1.748(cutable named).15 F F1(name)4.248 E F0 6.748(.T)
-.18 G(his)-6.748 E .744
-(includes aliases and functions, if and only if the)144 144 R F3<ad70>
+F F2 -.666(PA)3.231 G(TH)-.189 E F3(.)A F0 .731(If the)5.231 F F4<ad61>
+144 322.8 Q F0 1.749(option is used,)4.249 F F4(type)4.248 E F0 1.748
+(prints all of the places that contain an e)4.248 F -.15(xe)-.15 G 1.748
+(cutable named).15 F F1(name)4.248 E F0 6.748(.T).18 G(his)-6.748 E .744
+(includes aliases and functions, if and only if the)144 334.8 R F4<ad70>
 3.244 E F0 .744(option is not also used.)3.244 F .744
 (The table of hashed)5.744 F 1.223(commands is not consulted when using)
-144 156 R F3<ad61>3.723 E F0 6.223(.T)C(he)-6.223 E F3<ad66>3.723 E F0
+144 346.8 R F4<ad61>3.723 E F0 6.223(.T)C(he)-6.223 E F4<ad66>3.723 E F0
 1.223(option suppresses shell function lookup, as)3.723 F .325(with the)
-144 168 R F3(command)2.825 E F0 -.2(bu)2.825 G(iltin.).2 E F3(type)5.325
-E F0 .325(returns true if all of the ar)2.825 F .326
+144 358.8 R F4(command)2.825 E F0 -.2(bu)2.825 G(iltin.).2 E F4(type)
+5.325 E F0 .325(returns true if all of the ar)2.825 F .326
 (guments are found, f)-.18 F .326(alse if an)-.1 F 2.826(ya)-.15 G .326
-(re not)-2.826 F(found.)144 180 Q F3(ulimit)108 196.8 Q F0([)2.5 E F3
+(re not)-2.826 F(found.)144 370.8 Q F4(ulimit)108 387.6 Q F0([)2.5 E F4
 (\255HSabcde\214klmnpqrstuvxPT)A F0([)2.5 E F1(limit)A F0(]])A(Pro)144
-208.8 Q .244(vides control o)-.15 F -.15(ve)-.15 G 2.744(rt).15 G .244
+399.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
 (ilable to the shell and to processes started by it, on systems).25 F
-.943(that allo)144 220.8 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
+.943(that allo)144 411.6 R 3.443(ws)-.25 G .943(uch control.)-3.443 F
+(The)5.943 E F4<ad48>3.443 E F0(and)3.443 E F4<ad53>3.444 E F0 .944
 (options specify that the hard or soft limit is set for the)3.444 F(gi)
-144 232.8 Q -.15(ve)-.25 G 2.709(nr).15 G 2.709(esource. A)-2.709 F .208
+144 423.6 Q -.15(ve)-.25 G 2.709(nr).15 G 2.709(esource. A)-2.709 F .208
 (hard limit cannot be increased by a non-root user once it is set; a so\
-ft limit may)2.709 F .425(be increased up to the v)144 244.8 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
+ft limit may)2.709 F .425(be increased up to the v)144 435.6 R .425
+(alue of the hard limit.)-.25 F .426(If neither)5.425 F F4<ad48>2.926 E
+F0(nor)2.926 E F4<ad53>2.926 E F0 .426
 (is speci\214ed, both the soft and)2.926 F .139(hard limits are set.)144
-256.8 R .139(The v)5.139 F .139(alue of)-.25 F F1(limit)2.729 E F0 .139
+447.6 R .139(The v)5.139 F .139(alue of)-.25 F F1(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 268.8 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)
+.741(of the special v)144 459.6 R(alues)-.25 E F4(hard)3.241 E F0(,)A F4
+(soft)3.241 E F0 3.241(,o)C(r)-3.241 E F4(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 280.8 R -.15(ve)-.25 G(ly).15 E
+(soft limit, and no limit, respecti)144 471.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
 (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 292.8 R F3<ad48>2.999 E F0
+F .498(resource is printed, unless the)144 483.6 R F4<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 304.8 Q 2.5
-(alue. Other)-.25 F(options are interpreted as follo)2.5 E(ws:)-.25 E F3
-<ad61>144 316.8 Q F0(All current limits are reported)180 316.8 Q F3
-<ad62>144 328.8 Q F0(The maximum sock)180 328.8 Q(et b)-.1 E(uf)-.2 E
-(fer size)-.25 E F3<ad63>144 340.8 Q F0
-(The maximum size of core \214les created)180 340.8 Q F3<ad64>144 352.8
-Q F0(The maximum size of a process')180 352.8 Q 2.5(sd)-.55 G(ata se)
--2.5 E(gment)-.15 E F3<ad65>144 364.8 Q F0
-(The maximum scheduling priority \("nice"\))180 364.8 Q F3<ad66>144
-376.8 Q F0
+(limit name and unit are printed before the v)144 495.6 Q 2.5
+(alue. Other)-.25 F(options are interpreted as follo)2.5 E(ws:)-.25 E F4
+<ad61>144 507.6 Q F0(All current limits are reported)180 507.6 Q F4
+<ad62>144 519.6 Q F0(The maximum sock)180 519.6 Q(et b)-.1 E(uf)-.2 E
+(fer size)-.25 E F4<ad63>144 531.6 Q F0
+(The maximum size of core \214les created)180 531.6 Q F4<ad64>144 543.6
+Q F0(The maximum size of a process')180 543.6 Q 2.5(sd)-.55 G(ata se)
+-2.5 E(gment)-.15 E F4<ad65>144 555.6 Q F0
+(The maximum scheduling priority \("nice"\))180 555.6 Q F4<ad66>144
+567.6 Q F0
 (The maximum size of \214les written by the shell and its children)180
-376.8 Q F3<ad69>144 388.8 Q F0(The maximum number of pending signals)180
-388.8 Q F3<ad6b>144 400.8 Q F0
-(The maximum number of kqueues that may be allocated)180 400.8 Q F3
-<ad6c>144 412.8 Q F0(The maximum size that may be lock)180 412.8 Q
-(ed into memory)-.1 E F3<ad6d>144 424.8 Q F0
-(The maximum resident set size \(man)180 424.8 Q 2.5(ys)-.15 G
-(ystems do not honor this limit\))-2.5 E F3<ad6e>144 436.8 Q F0 .791(Th\
+567.6 Q F4<ad69>144 579.6 Q F0(The maximum number of pending signals)180
+579.6 Q F4<ad6b>144 591.6 Q F0
+(The maximum number of kqueues that may be allocated)180 591.6 Q F4
+<ad6c>144 603.6 Q F0(The maximum size that may be lock)180 603.6 Q
+(ed into memory)-.1 E F4<ad6d>144 615.6 Q F0
+(The maximum resident set size \(man)180 615.6 Q 2.5(ys)-.15 G
+(ystems do not honor this limit\))-2.5 E F4<ad6e>144 627.6 Q F0 .791(Th\
 e maximum number of open \214le descriptors \(most systems do not allo)
-180 436.8 R 3.29(wt)-.25 G .79(his v)-3.29 F .79(alue to)-.25 F
-(be set\))180 448.8 Q F3<ad70>144 460.8 Q F0
-(The pipe size in 512-byte blocks \(this may not be set\))180 460.8 Q F3
-<ad71>144 472.8 Q F0
-(The maximum number of bytes in POSIX message queues)180 472.8 Q F3
-<ad72>144 484.8 Q F0(The maximum real-time scheduling priority)180 484.8
-Q F3<ad73>144 496.8 Q F0(The maximum stack size)180 496.8 Q F3<ad74>144
-508.8 Q F0(The maximum amount of cpu time in seconds)180 508.8 Q F3
-<ad75>144 520.8 Q F0(The maximum number of processes a)180 520.8 Q -.25
-(va)-.2 G(ilable to a single user).25 E F3<ad76>144 532.8 Q F0 .47
-(The maximum amount of virtual memory a)180 532.8 R -.25(va)-.2 G .47
-(ilable to the shell and, on some systems, to).25 F(its children)180
-544.8 Q F3<ad78>144 556.8 Q F0(The maximum number of \214le locks)180
-556.8 Q F3<ad50>144 568.8 Q F0(The maximum number of pseudoterminals)180
-568.8 Q F3<ad54>144 580.8 Q F0(The maximum number of threads)180 580.8 Q
-(If)144 597.6 Q F1(limit)3.058 E F0 .468(is gi)3.648 F -.15(ve)-.25 G
-.468(n, and the).15 F F3<ad61>2.968 E F0 .468(option is not used,)2.968
-F F1(limit)2.968 E F0 .468(is the ne)2.968 F 2.968(wv)-.25 G .468
-(alue of the speci\214ed resource.)-3.218 F(If)5.468 E .044
-(no option is gi)144 609.6 R -.15(ve)-.25 G .044(n, then).15 F F3<ad66>
-2.544 E F0 .045(is assumed.)2.545 F -1.11(Va)5.045 G .045
-(lues are in 1024-byte increments, e)1.11 F .045(xcept for)-.15 F F3
+180 627.6 R 3.29(wt)-.25 G .79(his v)-3.29 F .79(alue to)-.25 F
+(be set\))180 639.6 Q F4<ad70>144 651.6 Q F0
+(The pipe size in 512-byte blocks \(this may not be set\))180 651.6 Q F4
+<ad71>144 663.6 Q F0
+(The maximum number of bytes in POSIX message queues)180 663.6 Q F4
+<ad72>144 675.6 Q F0(The maximum real-time scheduling priority)180 675.6
+Q F4<ad73>144 687.6 Q F0(The maximum stack size)180 687.6 Q F4<ad74>144
+699.6 Q F0(The maximum amount of cpu time in seconds)180 699.6 Q F4
+<ad75>144 711.6 Q F0(The maximum number of processes a)180 711.6 Q -.25
+(va)-.2 G(ilable to a single user).25 E(GNU Bash 5.0)72 768 Q
+(2004 Apr 20)149.565 E(23)198.725 E 0 Cg EP
+%%Page: 24 24
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF -.35(BA)72 48 S(SH_B).35 E(UIL)-.1 E 87.61
+(TINS\(1\) General)-.92 F(Commands Manual)2.5 E -.35(BA)90.11 G(SH_B).35
+E(UIL)-.1 E(TINS\(1\))-.92 E/F1 10/Times-Bold@0 SF<ad76>144 84 Q F0 .47
+(The maximum amount of virtual memory a)180 84 R -.25(va)-.2 G .47
+(ilable to the shell and, on some systems, to).25 F(its children)180 96
+Q F1<ad78>144 108 Q F0(The maximum number of \214le locks)180 108 Q F1
+<ad50>144 120 Q F0(The maximum number of pseudoterminals)180 120 Q F1
+<ad54>144 132 Q F0(The maximum number of threads)180 132 Q(If)144 148.8
+Q/F2 10/Times-Italic@0 SF(limit)3.058 E F0 .468(is gi)3.648 F -.15(ve)
+-.25 G .468(n, and the).15 F F1<ad61>2.968 E F0 .468
+(option is not used,)2.968 F F2(limit)2.968 E F0 .468(is the ne)2.968 F
+2.968(wv)-.25 G .468(alue of the speci\214ed resource.)-3.218 F(If)5.468
+E .044(no option is gi)144 160.8 R -.15(ve)-.25 G .044(n, then).15 F F1
+<ad66>2.544 E F0 .045(is assumed.)2.545 F -1.11(Va)5.045 G .045
+(lues are in 1024-byte increments, e)1.11 F .045(xcept for)-.15 F F1
 <ad74>2.545 E F0 2.545(,w)C .045(hich is)-2.545 F 1.589(in seconds;)144
-621.6 R F3<ad70>4.089 E F0 4.089(,w)C 1.589
-(hich is in units of 512-byte blocks;)-4.089 F F3<ad50>4.089 E F0(,)A F3
-<ad54>4.089 E F0(,)A F3<ad62>4.089 E F0(,)A F3<ad6b>4.089 E F0(,)A F3
-<ad6e>4.089 E F0 4.089(,a)C(nd)-4.089 E F3<ad75>4.089 E F0 4.088(,w)C
-1.588(hich are)-4.088 F 1.438(unscaled v)144 633.6 R 1.438
-(alues; and, when in Posix mode,)-.25 F F3<ad63>3.939 E F0(and)3.939 E
-F3<ad66>3.939 E F0 3.939(,w)C 1.439(hich are in 512-byte increments.)
--3.939 F(The)6.439 E .404(return status is 0 unless an in)144 645.6 R
+172.8 R F1<ad70>4.089 E F0 4.089(,w)C 1.589
+(hich is in units of 512-byte blocks;)-4.089 F F1<ad50>4.089 E F0(,)A F1
+<ad54>4.089 E F0(,)A F1<ad62>4.089 E F0(,)A F1<ad6b>4.089 E F0(,)A F1
+<ad6e>4.089 E F0 4.089(,a)C(nd)-4.089 E F1<ad75>4.089 E F0 4.088(,w)C
+1.588(hich are)-4.088 F 1.476(unscaled v)144 184.8 R 1.476
+(alues; and, when in posix mode,)-.25 F F1<ad63>3.976 E F0(and)3.976 E
+F1<ad66>3.976 E F0 3.976(,w)C 1.476(hich are in 512-byte increments.)
+-3.976 F(The)6.476 E .404(return status is 0 unless an in)144 196.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
-657.6 S .5 -.25(ew l)-2.5 H(imit.).25 E F3(umask)108 674.4 Q F0([)2.5 E
-F3<ad70>A F0 2.5(][)C F3<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 686.4 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
+208.8 S .5 -.25(ew l)-2.5 H(imit.).25 E F1(umask)108 225.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 237.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 698.4 R F1 -.15(ch)2.566 G(mod).15 E F0(\(1\).).77 E(If)144
-710.4 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 F3<ad53>2.882 E F0 .382
+pted by)144 249.6 R F2 -.15(ch)2.566 G(mod).15 E F0(\(1\).).77 E(If)144
+261.6 Q F2(mode)3.262 E F0 .382(is omitted, the current v)3.062 F .382
+(alue of the mask is printed.)-.25 F(The)5.382 E F1<ad53>2.882 E F0 .382
 (option causes the mask to be)2.882 F .547
-(printed in symbolic form; the def)144 722.4 R .547
+(printed in symbolic form; the def)144 273.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 F3<ad70>3.047 E F0 .547(option is supplied, and)3.047 F
-(GNU Bash 5.0)72 768 Q(2004 Apr 20)149.565 E(23)198.725 E 0 Cg EP
-%%Page: 24 24
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Roman@0 SF -.35(BA)72 48 S(SH_B).35 E(UIL)-.1 E 87.61
-(TINS\(1\) General)-.92 F(Commands Manual)2.5 E -.35(BA)90.11 G(SH_B).35
-E(UIL)-.1 E(TINS\(1\))-.92 E/F1 10/Times-Italic@0 SF(mode)144.38 84 Q F0
-.551(is omitted, the output is in a form that may be reused as input.)
-3.231 F .552(The return status is 0 if the)5.552 F(mode w)144 96 Q
-(as successfully changed or if no)-.1 E F1(mode)2.5 E F0(ar)2.5 E
-(gument w)-.18 E(as supplied, and f)-.1 E(alse otherwise.)-.1 E/F2 10
-/Times-Bold@0 SF(unalias)108 112.8 Q F0<5bad>2.5 E F2(a)A F0 2.5(][)C F1
-(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 153.6 Q F0<5bad>2.5 E F2
-(fv)A F0 2.5(][)C<ad>-2.5 E F2(n)A F0 2.5(][)C F1(name)-2.5 E F0(...])
-2.5 E -.15(Fo)144 165.6 S 3.827(re).15 G(ach)-3.827 E F1(name)3.827 E F0
+(he)-3.047 E F1<ad70>3.047 E F0 .547(option is supplied, and)3.047 F F2
+(mode)144.38 285.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 297.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 314.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 326.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 338.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 355.2 Q F0<5bad>2.5 E F1
+(fv)A F0 2.5(][)C<ad>-2.5 E F1(n)A F0 2.5(][)C F2(name)-2.5 E F0(...])
+2.5 E -.15(Fo)144 367.2 S 3.827(re).15 G(ach)-3.827 E F2(name)3.827 E F0
 3.827(,r).18 G(emo)-3.827 E 1.627 -.15(ve t)-.15 H 1.327
 (he corresponding v).15 F 1.327(ariable or function.)-.25 F 1.327
-(If the)6.327 F F2<ad76>3.828 E F0 1.328(option is gi)3.828 F -.15(ve)
--.25 G 1.328(n, each).15 F F1(name)144.36 177.6 Q F0 1.551
+(If the)6.327 F F1<ad76>3.828 E F0 1.328(option is gi)3.828 F -.15(ve)
+-.25 G 1.328(n, each).15 F F2(name)144.36 379.2 Q F0 1.551
 (refers to a shell v)4.231 F 1.551(ariable, and that v)-.25 F 1.551
 (ariable is remo)-.25 F -.15(ve)-.15 G 4.05(d. Read-only).15 F -.25(va)
-4.05 G 1.55(riables may not be).25 F 4.641(unset. If)144 189.6 R F2
-<ad66>4.641 E F0 2.141(is speci\214ed, each)4.641 F F1(name)5.001 E F0
+4.05 G 1.55(riables may not be).25 F 4.641(unset. If)144 391.2 R F1
+<ad66>4.641 E F0 2.141(is speci\214ed, each)4.641 F F2(name)5.001 E F0
 2.141(refers to a shell function, and the function de\214nition is)4.821
-F(remo)144 201.6 Q -.15(ve)-.15 G 2.538(d. If).15 F(the)2.537 E F2<ad6e>
-2.537 E F0 .037(option is supplied, and)2.537 F F1(name)2.537 E F0 .037
-(is a v)2.537 F .037(ariable with the)-.25 F F1(namer)2.537 E(ef)-.37 E
-F0(attrib)2.537 E(ute,)-.2 E F1(name)2.537 E F0(will)2.537 E .492
-(be unset rather than the v)144 213.6 R .492(ariable it references.)-.25
-F F2<ad6e>5.492 E F0 .492(has no ef)2.992 F .492(fect if the)-.25 F F2
+F(remo)144 403.2 Q -.15(ve)-.15 G 2.538(d. If).15 F(the)2.537 E F1<ad6e>
+2.537 E F0 .037(option is supplied, and)2.537 F F2(name)2.537 E F0 .037
+(is a v)2.537 F .037(ariable with the)-.25 F F2(namer)2.537 E(ef)-.37 E
+F0(attrib)2.537 E(ute,)-.2 E F2(name)2.537 E F0(will)2.537 E .492
+(be unset rather than the v)144 415.2 R .492(ariable it references.)-.25
+F F1<ad6e>5.492 E F0 .492(has no ef)2.992 F .492(fect if the)-.25 F F1
 <ad66>2.992 E F0 .492(option is supplied.)2.992 F .493(If no)5.493 F
-.221(options are supplied, each)144 225.6 R F1(name)2.721 E F0 .221
+.221(options are supplied, each)144 427.2 R F2(name)2.721 E F0 .221
 (refers to a v)2.721 F .22(ariable; if there is no v)-.25 F .22
 (ariable by that name, an)-.25 F 2.72(yf)-.15 G(unc-)-2.72 E 1.188
-(tion with that name is unset.)144 237.6 R 1.189(Each unset v)6.189 F
+(tion with that name is unset.)144 439.2 R 1.189(Each unset v)6.189 F
 1.189(ariable or function is remo)-.25 F -.15(ve)-.15 G 3.689(df).15 G
 1.189(rom the en)-3.689 F(vironment)-.4 E 3.206
-(passed to subsequent commands.)144 249.6 R 3.206(If an)8.206 F 5.706
+(passed to subsequent commands.)144 451.2 R 3.206(If an)8.206 F 5.706
 (yo)-.15 G(f)-5.706 E/F3 9/Times-Bold@0 SF(COMP_W)5.706 E(ORDBREAKS)-.09
 E/F4 9/Times-Roman@0 SF(,)A F3(RANDOM)5.455 E F4(,)A F3(SECONDS)5.455 E
-F4(,)A F3(LINENO)144 261.6 Q F4(,)A F3(HISTCMD)4.347 E F4(,)A F3(FUNCN)
+F4(,)A F3(LINENO)144 463.2 Q F4(,)A F3(HISTCMD)4.347 E F4(,)A F3(FUNCN)
 4.347 E(AME)-.18 E F4(,)A F3(GR)4.347 E(OUPS)-.27 E F4(,)A F0(or)4.348 E
 F3(DIRST)4.598 E -.495(AC)-.81 G(K).495 E F0 2.098(are unset, the)4.348
 F 4.598(yl)-.15 G 2.098(ose their special)-4.598 F(properties, e)144
-273.6 Q -.15(ve)-.25 G 2.5(ni).15 G 2.5(ft)-2.5 G(he)-2.5 E 2.5(ya)-.15
+475.2 Q -.15(ve)-.25 G 2.5(ni).15 G 2.5(ft)-2.5 G(he)-2.5 E 2.5(ya)-.15
 G(re subsequently reset.)-2.5 E(The e)5 E(xit status is true unless a)
--.15 E F1(name)2.86 E F0(is readonly)2.68 E(.)-.65 E F2(wait)108 290.4 Q
-F0([)2.5 E F2(\255fn)A F0 2.5(][)C F1(id ...)-2.5 E F0(])A -.8(Wa)144
-302.4 S .659(it for each speci\214ed child process and return its termi\
-nation status.).8 F(Each)5.659 E F1(id)3.169 E F0 .658(may be a process)
-3.928 F .008(ID or a job speci\214cation; if a job spec is gi)144 314.4
-R -.15(ve)-.25 G .009(n, all processes in that job').15 F 2.509(sp)-.55
-.009(ipeline are w)-2.509 F .009(aited for)-.1 F 5.009(.I)-.55 G(f)
--5.009 E F1(id)144.01 326.4 Q F0 .522(is not gi)3.792 F -.15(ve)-.25 G
+-.15 E F2(name)2.86 E F0(is readonly)2.68 E(.)-.65 E F1(wait)108 492 Q
+F0([)2.5 E F1(\255fn)A F0 2.5(][)C F2(id ...)-2.5 E F0(])A -.8(Wa)144
+504 S .659(it for each speci\214ed child process and return its termina\
+tion status.).8 F(Each)5.659 E F2(id)3.169 E F0 .658(may be a process)
+3.928 F .008(ID or a job speci\214cation; if a job spec is gi)144 516 R
+-.15(ve)-.25 G .009(n, all processes in that job').15 F 2.509(sp)-.55 G
+.009(ipeline are w)-2.509 F .009(aited for)-.1 F 5.009(.I)-.55 G(f)
+-5.009 E F2(id)144.01 528 Q F0 .522(is not gi)3.792 F -.15(ve)-.25 G
 .521(n, all currently acti).15 F .821 -.15(ve c)-.25 H .521
 (hild processes are w).15 F .521(aited for)-.1 F 3.021(,a)-.4 G .521
-(nd the return status is zero.)-3.021 F(If)5.521 E(the)144 338.4 Q F2
-<ad6e>3.056 E F0 .556(option is supplied,)3.056 F F2(wait)3.057 E F0 -.1
+(nd the return status is zero.)-3.021 F(If)5.521 E(the)144 540 Q F1
+<ad6e>3.056 E F0 .556(option is supplied,)3.056 F F1(wait)3.057 E F0 -.1
 (wa)3.057 G .557(its for an).1 F 3.057(yj)-.15 G .557
 (ob to terminate and returns its e)-3.057 F .557(xit status.)-.15 F .557
-(If the)5.557 F F2<ad66>3.057 E F0 .587
-(option is supplied, and job control is enabled,)144 350.4 R F2(wait)
-3.086 E F0(forces)3.086 E F1(id)3.086 E F0 .586
+(If the)5.557 F F1<ad66>3.057 E F0 .587
+(option is supplied, and job control is enabled,)144 552 R F1(wait)3.086
+E F0(forces)3.086 E F2(id)3.086 E F0 .586
 (to terminate before returning its sta-)3.086 F .755
-(tus, instead of returning when it changes status.)144 362.4 R(If)5.756
-E F1(id)3.266 E F0 .756(speci\214es a non-e)4.026 F .756
-(xistent process or job, the)-.15 F .365(return status is 127.)144 374.4
-.365(Otherwise, the return status is the e)5.365 F .365
-(xit status of the last process or job w)-.15 F(aited)-.1 E(for)144
-386.4 Q(.)-.55 E/F5 10.95/Times-Bold@0 SF(SEE ALSO)72 403.2 Q F0
-(bash\(1\), sh\(1\))108 415.2 Q(GNU Bash 5.0)72 768 Q(2004 Apr 20)
+(tus, instead of returning when it changes status.)144 564 R(If)5.756 E
+F2(id)3.266 E F0 .756(speci\214es a non-e)4.026 F .756
+(xistent process or job, the)-.15 F .365(return status is 127.)144 576 R
+.365(Otherwise, the return status is the e)5.365 F .365
+(xit status of the last process or job w)-.15 F(aited)-.1 E(for)144 588
+Q(.)-.55 E/F5 10.95/Times-Bold@0 SF(SEE ALSO)72 604.8 Q F0
+(bash\(1\), sh\(1\))108 616.8 Q(GNU Bash 5.0)72 768 Q(2004 Apr 20)
 149.565 E(24)198.725 E 0 Cg EP
 %%Trailer
 end
index 9c4c5fd01104fa7c651edcdf4c959f4281e05bb9..53602e2c6664e1a4c5c861907114d986e9d94181 100644 (file)
@@ -1,6 +1,6 @@
 %!PS-Adobe-3.0
 %%Creator: groff version 1.22.3
-%%CreationDate: Mon Mar 19 09:43:23 2018
+%%CreationDate: Fri Sep  7 15:34:15 2018
 %%DocumentNeededResources: font Times-Roman
 %%+ font Times-Bold
 %%DocumentSuppliedResources: procset grops 1.22 3
index 2072eeedf14b5c09a0683246039f2d8160bd5575..7df19724ec3d9a9c0a9b3479d94e80740405ddbc 100644 (file)
@@ -2,10 +2,10 @@
 Copyright (C) 1988-2018 Free Software Foundation, Inc.
 @end ignore
 
-@set LASTCHANGE Thu Mar 15 11:29:49 EDT 2018
+@set LASTCHANGE Tue Aug  7 12:01:22 EDT 2018
 
 @set EDITION 5.0
 @set VERSION 5.0
 
-@set UPDATED 15 March 2018
-@set UPDATED-MONTH March 2018
+@set UPDATED 7 August 2018
+@set UPDATED-MONTH August 2018
diff --git a/eval.c b/eval.c
index 3104bffefed2055ec27fe9e40d310163f9911f82..f02d6e40e8812b7430b2b79179f20d31af8e5369 100644 (file)
--- a/eval.c
+++ b/eval.c
@@ -69,6 +69,9 @@ reader_loop ()
 
   our_indirection_level = ++indirection_level;
 
+  if (just_one_command)
+    reset_readahead_token ();
+
   while (EOF_Reached == 0)
     {
       int code;
index 736c8af1a7757629bbbf8b24406c553e378e8bf9..92b1a8fa1a655c78d3d60a976e87646e21b29417 100644 (file)
 #include "builtins.h"
 #include "common.h"
 
-#define RETURN(x) \
-       do { \
-               if (sp) *sp = sec; \
-               if (usp) *usp = usec; \
-               return (x); \
-       } while (0)
-
 int
 sleep_builtin (list)
 WORD_LIST      *list;
index 3759376e1c4ea1d5671af6317c1d08a7c1baa744..c5972c8d093258bf3ab19661fd6ecb59027c01ea 100644 (file)
@@ -1522,6 +1522,11 @@ execute_in_subshell (command, asynchronous, pipe_in, pipe_out, fds_to_close)
   /* Subshells are neither login nor interactive. */
   login_shell = interactive = 0;
 
+  /* And we're no longer in a loop. See Posix interp 842 (we are not in the
+     "same execution environment"). */
+  if (shell_compatibility_level > 44)
+    loop_level = 0;
+
   if (user_subshell)
     {
       subshell_environment = SUBSHELL_PAREN;   /* XXX */
@@ -1556,13 +1561,13 @@ execute_in_subshell (command, asynchronous, pipe_in, pipe_out, fds_to_close)
       setup_async_signals ();
       asynchronous = 0;
     }
+  else
+    set_sigint_handler ();
 
 #if defined (JOB_CONTROL)
   set_sigchld_handler ();
 #endif /* JOB_CONTROL */
 
-  set_sigint_handler ();
-
   /* Delete all traces that there were any jobs running.  This is
      only for subshells. */
   without_job_control ();
@@ -1672,6 +1677,7 @@ execute_in_subshell (command, asynchronous, pipe_in, pipe_out, fds_to_close)
     return_code = (return_code == EXECUTION_SUCCESS) ? EXECUTION_FAILURE
                                                     : EXECUTION_SUCCESS;
 
+
   /* If we were explicitly placed in a subshell with (), we need
      to do the `shell cleanup' things, such as running traps[0]. */
   if (user_subshell && signal_is_trapped (0))
@@ -2432,7 +2438,7 @@ static void
 lastpipe_cleanup (s)
      int s;
 {
-  unfreeze_jobs_list ();
+  set_jobs_list_frozen (s);
 }
 
 static int
@@ -2442,7 +2448,7 @@ execute_pipeline (command, asynchronous, pipe_in, pipe_out, fds_to_close)
      struct fd_bitmap *fds_to_close;
 {
   int prev, fildes[2], new_bitmap_size, dummyfd, ignore_return, exec_result;
-  int lstdin, lastpipe_flag, lastpipe_jid;
+  int lstdin, lastpipe_flag, lastpipe_jid, old_frozen;
   COMMAND *cmd;
   struct fd_bitmap *fd_bitmap;
   pid_t lastpid;
@@ -2557,9 +2563,9 @@ execute_pipeline (command, asynchronous, pipe_in, pipe_out, fds_to_close)
          prev = NO_PIPE;
          add_unwind_protect (restore_stdin, lstdin);
          lastpipe_flag = 1;
-         freeze_jobs_list ();
+         old_frozen = freeze_jobs_list ();
          lastpipe_jid = stop_pipeline (0, (COMMAND *)NULL);    /* XXX */
-         add_unwind_protect (lastpipe_cleanup, lastpipe_jid);
+         add_unwind_protect (lastpipe_cleanup, old_frozen);
        }
       if (cmd)
        cmd->flags |= CMD_LASTPIPE;
@@ -2605,9 +2611,9 @@ execute_pipeline (command, asynchronous, pipe_in, pipe_out, fds_to_close)
       else if (pipefail_opt)
        exec_result = exec_result | lstdin;     /* XXX */
       /* otherwise we use exec_result */
-        
 #endif
-      unfreeze_jobs_list ();
+
+      set_jobs_list_frozen (old_frozen);
     }
 
   discard_unwind_frame ("lastpipe-exec");
@@ -4062,9 +4068,13 @@ fix_assignment_words (words)
        /* If we have an assignment builtin that does not create local variables,
           make sure we create global variables even if we internally call
           `declare'.  The CHKLOCAL flag means to set attributes or values on
-          an existing local variable */
+          an existing local variable, if there is one. */
        if (b && ((b->flags & (ASSIGNMENT_BUILTIN|LOCALVAR_BUILTIN)) == ASSIGNMENT_BUILTIN))
          w->word->flags |= W_ASSNGLOBAL|W_CHKLOCAL;
+#if 0
+       else if (b && (b->flags & ASSIGNMENT_BUILTIN) && (b->flags & LOCALVAR_BUILTIN))
+         w->word->flags |= W_CHKLOCAL;
+#endif
       }
 #if defined (ARRAY_VARS)
     /* Note that we saw an associative array option to a builtin that takes
index 9faf30598e223c24291615f1e5cc96c275e198e6..b00e56e0d0c79e5233040a5987abbc4c93097a58 100644 (file)
--- a/externs.h
+++ b/externs.h
@@ -109,6 +109,7 @@ extern int return_EOF __P((void));
 extern void push_token __P((int));
 extern char *xparse_dolparen __P((char *, char *, int *, int));
 extern void reset_parser __P((void));
+extern void reset_readahead_token __P((void));
 extern WORD_LIST *parse_string_to_word_list __P((char *, int, const char *));
 
 extern int parser_in_command_position __P((void));
@@ -485,6 +486,14 @@ extern unsigned int fsleep __P((unsigned int, unsigned int));
 extern int u32cconv __P((unsigned long, char *));
 extern void u32reset __P((void));
 
+/* declarations for functions defined in lib/sh/utf8.c */
+extern char *utf8_mbschr __P((const char *, int));
+extern int utf8_mbscmp __P((const char *, const char *));
+extern char *utf8_mbsmbchar __P((const char *));
+extern int utf8_mbsnlen __P((const char *, size_t, int));
+extern int utf8_mblen __P((const char *, size_t));
+extern size_t utf8_mbstrlen __P((const char *));
+
 /* declarations for functions defined in lib/sh/wcsnwidth.c */
 #if defined (HANDLE_MULTIBYTE)
 extern int wcsnwidth __P((const wchar_t *, size_t, int));
index 14cbe833d4ec2455f7f6ceb21a85fff238eeedf4..d89eec8e5fb38a302f8b15714d496abc5e1c1caa 100644 (file)
--- a/general.h
+++ b/general.h
@@ -110,6 +110,13 @@ extern char *strcpy __P((char *, const char *));
   ((TYPE_WIDTH (t) - TYPE_SIGNED (t)) * 302 / 1000 \
    + 1 + TYPE_SIGNED (t))
 
+/* Updated version adapted from gnulib/intprops.h, not used right now.
+   Changes the approximation of log10(2) from 302/1000 to 146/485. */
+#if 0
+#define INT_STRLEN_BOUND(t) \
+  (INT_BITS_STRLEN_BOUND (TYPE_WIDTH (t) - TYPE_SIGNED (t)) + TYPE_SIGNED(t))
+#endif
+
 /* Bound on buffer size needed to represent an integer type or expression T,
    including the terminating null.  */
 #define INT_BUFSIZE_BOUND(t) (INT_STRLEN_BOUND (t) + 1)
index 264cae33fbc6564239fb97fcfe6623fb7fc26451..36902f16bc57b1981190c935a00ed7a9af497264 100644 (file)
@@ -50,6 +50,10 @@ extern int locale_utf8locale;        /* XXX */
 #define MBLEN(s, n)    ((MB_CUR_MAX > 1) ? mblen ((s), (n)) : 1)
 #define MBRLEN(s, n, p)        ((MB_CUR_MAX > 1) ? mbrlen ((s), (n), (p)) : 1)
 
+#define UTF8_SINGLEBYTE(c)     (((c) & 0x80) == 0)
+#define UTF8_MBFIRSTCHAR(c)    (((c) & 0xc0) == 0xc0)
+#define UTF8_MBCHAR(c)         (((c) & 0xc0) == 0x80)
+
 #else /* !HANDLE_MULTIBYTE */
 
 #undef MB_LEN_MAX
@@ -75,6 +79,9 @@ extern int locale_utf8locale; /* XXX */
 #  define wchar_t      int
 #endif
 
+#define UTF8_SINGLEBYTE(c)     (1)
+#define UTF8_MBFIRSTCHAR(c)    (0)
+
 #endif /* !HANDLE_MULTIBYTE */
 
 /* Declare and initialize a multibyte state.  Call must be terminated
@@ -111,7 +118,7 @@ extern int locale_utf8locale;       /* XXX */
            if (_f) \
              mblength = 1; \
            else if (locale_utf8locale && (((_str)[_i] & 0x80) == 0)) \
-             mblength = 1; \
+             mblength = (_str)[_i] != 0; \
            else \
              { \
                state_bak = state; \
@@ -152,6 +159,8 @@ extern int locale_utf8locale;       /* XXX */
            _f = is_basic (*(_str)); \
            if (_f) \
              mblength = 1; \
+           else if (locale_utf8locale && ((*(_str) & 0x80) == 0)) \
+             mblength = *(_str) != 0; \
            else \
              { \
                state_bak = state; \
@@ -271,7 +280,7 @@ extern int locale_utf8locale;       /* XXX */
            if (_k) \
              mblength = 1; \
            else if (locale_utf8locale && ((*(_src) & 0x80) == 0)) \
-             mblength = 1; \
+             mblength = *(_src) != 0; \
            else \
              { \
                state_bak = state; \
@@ -445,6 +454,8 @@ extern int locale_utf8locale;       /* XXX */
            i = is_basic (*((_src) + (_si))); \
            if (i) \
              mblength = 1; \
+           else if (locale_utf8locale && (((_src)[_si] & 0x80) == 0)) \
+             mblength = (_src)[_si] != 0; \
            else \
              { \
                state_bak = state; \
@@ -483,6 +494,8 @@ extern int locale_utf8locale;       /* XXX */
            i = is_basic (*((_src) + (_si))); \
            if (i) \
              mblength = 1; \
+           else if (locale_utf8locale && (((_src)[_si] & 0x80) == 0)) \
+             mblength = (_src)[_si] != 0; \
            else \
              { \
                state_bak = state; \
diff --git a/jobs.c b/jobs.c
index 45ee572d97c78dc32900dfe6c7d9f2947ba0ec1a..f517a248c18689cb22f8fa47982a1d002dc67f24 100644 (file)
--- a/jobs.c
+++ b/jobs.c
@@ -863,7 +863,7 @@ pshash_delindex (psi)
       *bucket = ps->bucket_next;       /* deleting chain head in hash table */
     }
 
-  /* clear out this cell, just in case */
+  /* clear out this cell, in case it gets reused. */
   ps->pid = NO_PID;
   ps->bucket_next = ps->bucket_prev = NO_PIDSTAT;
 }
@@ -4771,6 +4771,13 @@ unfreeze_jobs_list ()
   jobs_list_frozen = 0;
 }
 
+void
+set_jobs_list_frozen (s)
+     int s;
+{
+  jobs_list_frozen = s;
+}
+
 /* Allow or disallow job control to take place.  Returns the old value
    of job_control. */
 int
diff --git a/jobs.h b/jobs.h
index 4eca6260942159d9a6577610d2b463256078ac29..6ebaf4de2a3b337d34548579fc55c3185d20c075 100644 (file)
--- a/jobs.h
+++ b/jobs.h
@@ -259,7 +259,8 @@ extern int give_terminal_to __P((pid_t, int));
 extern void run_sigchld_trap __P((int));
 
 extern int freeze_jobs_list __P((void));
-extern void unfreeze_jobs_list __P((void));
+extern void unfreeeze_jobs_list __P((void));
+extern void set_jobs_list_frozen __P((int));
 extern int set_job_control __P((int));
 extern void without_job_control __P((void));
 extern void end_job_control __P((void));
index 88d777e5add4c4569f9c08320aaec03ecf34f433..5621adf418a69eb4a17ff52e856ad91384be07ab 100644 (file)
 #include <errno.h>
 #include <stdio.h>
 
+#if defined (HAVE_MMAP)
+#include <sys/mman.h>
+#endif
+
 /* Define getpagesize () if the system does not.  */
 #ifndef HAVE_GETPAGESIZE
 #  include "getpagesize.h"
 #  define NO_VALLOC
 #endif
 
+/* SIZEOF_LONG * 4 - 2, usable bins from 1..NBUCKETS-1 */
 #define NBUCKETS       30
 
 #define ISALLOC ((char) 0xf7)  /* magic byte that implies allocation */
@@ -197,6 +202,23 @@ typedef union _malloc_guard {
 
 #define STARTBUCK      1
 
+/* Should we use mmap for large allocations? */
+#if defined (HAVE_MMAP)
+#  if !defined (MAP_ANON) && defined (MAP_ANONYMOUS)
+#    define MAP_ANON MAP_ANONYMOUS
+#  endif
+#endif
+
+#if defined (HAVE_MMAP) && defined (MAP_ANON)
+#  define USE_MMAP
+#endif
+
+#if defined (USE_MMAP)
+#  define MMAP_THRESHOLD       14      /* must be >= SPLIT_MAX, COMBINE_MAX */
+#else
+#  define MMAP_THRESHOLD       (8 * SIZEOF_LONG)
+#endif
+
 /* Flags for the internal functions. */
 #define MALLOC_WRAPPER 0x01    /* wrapper function */
 #define MALLOC_INTERNAL        0x02    /* internal function calling another */
@@ -288,6 +310,9 @@ int malloc_flags = 0;       /* future use */
 int malloc_trace = 0;  /* trace allocations and frees to stderr */
 int malloc_register = 0;       /* future use */
 
+/* Use a variable in case we want to dynamically adapt it in the future */
+int malloc_mmap_threshold = MMAP_THRESHOLD;
+
 #ifdef MALLOC_TRACE
 char _malloc_trace_buckets[NBUCKETS];
 
@@ -594,7 +619,7 @@ morecore (nu)
 
   /* Try to split a larger block here, if we're within the range of sizes
      to split. */
-  if (nu >= SPLIT_MIN)
+  if (nu >= SPLIT_MIN && nu <= malloc_mmap_threshold)
     {
       bsplit (nu);
       if (nextf[nu] != 0)
@@ -603,7 +628,7 @@ morecore (nu)
 
   /* Try to coalesce two adjacent blocks from the free list on nextf[nu - 1],
      if we can, and we're within the range of the block coalescing limits. */
-  if (nu >= COMBINE_MIN && nu < COMBINE_MAX && busy[nu - 1] == 0 && nextf[nu - 1])
+  if (nu >= COMBINE_MIN && nu < COMBINE_MAX && nu <= malloc_mmap_threshold && busy[nu - 1] == 0 && nextf[nu - 1])
     {
       bcoalesce (nu);
       if (nextf[nu] != 0)
@@ -632,6 +657,25 @@ morecore (nu)
       nblks = 1;
     }
 
+#if defined (USE_MMAP)
+  if (nu > malloc_mmap_threshold)
+    {
+      mp = (union mhead *)mmap (0, sbrk_amt, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0);
+      if ((void *)mp == MAP_FAILED)
+       goto morecore_done;
+      nextf[nu] = mp;
+      mp->mh_alloc = ISFREE;
+      mp->mh_index = nu;
+      CHAIN (mp) = 0;
+#ifdef MALLOC_STATS
+      _mstats.nmmap++;
+      _mstats.tmmap += sbrk_amt;
+#endif
+      goto morecore_done;
+    }
+#endif
+       
+
 #ifdef MALLOC_STATS
   _mstats.nsbrk++;
   _mstats.tsbrk += sbrk_amt;
@@ -915,6 +959,17 @@ internal_free (mem, file, line, flags)
   if (mg.i != p->mh_nbytes)
     xbotch (mem, ERR_ASSERT_FAILED, _("free: start and end chunk sizes differ"), file, line);
 
+#if defined (USE_MMAP)
+  if (nunits > malloc_mmap_threshold)
+    {
+      munmap (p, binsize (nunits));
+#if defined (MALLOC_STATS)
+      _mstats.nlesscore[nunits]++;
+#endif
+      goto free_return;
+    }
+#endif
+
 #if GLIBC21
   if (nunits >= LESSCORE_MIN && ((char *)p + binsize(nunits) == sbrk (0)))
 #else
@@ -1053,12 +1108,9 @@ internal_realloc (mem, n, file, line, flags)
   /* If ok, use the same block, just marking its size as changed.  */
   if (RIGHT_BUCKET(nbytes, nunits) || RIGHT_BUCKET(nbytes, nunits-1))
     {
-#if 0
-      m = (char *)mem + p->mh_nbytes;
-#else
       /* Compensate for increment above. */
       m -= 4;
-#endif
+
       *m++ = 0;  *m++ = 0;  *m++ = 0;  *m++ = 0;
       m = (char *)mem + (p->mh_nbytes = n);
 
@@ -1076,6 +1128,8 @@ internal_realloc (mem, n, file, line, flags)
   _mstats.nrcopy++;
 #endif
 
+  /* If we are using mmap and have mremap, we could use it here. */
+
   if ((m = internal_malloc (n, file, line, MALLOC_INTERNAL|MALLOC_NOTRACE|MALLOC_NOREG)) == 0)
     return 0;
   FASTCOPY (mem, m, tocopy);
@@ -1120,11 +1174,7 @@ internal_memalign (alignment, size, file, line, flags)
   if (((long) ptr & (alignment - 1)) == 0)
     return ptr;
   /* Otherwise, get address of byte in the block that has that alignment.  */
-#if 0
-  aligned = (char *) (((long) ptr + alignment - 1) & -alignment);
-#else
   aligned = (char *) (((long) ptr + alignment - 1) & (~alignment + 1));
-#endif
 
   /* Store a suitable indication of how to free the block,
      so that free can find the true beginning of it.  */
index 11389ffc04b873c135718fafc46e663b896b2514..dac0298071a25a44514904355d580acd96652709 100644 (file)
@@ -25,6 +25,7 @@
 
 #ifdef MALLOC_STATS
 
+/* This needs to change if the definition in malloc.c changes */
 #ifndef NBUCKETS
 #  define NBUCKETS 30
 #endif
@@ -77,6 +78,8 @@ struct _malstats {
   int nsplit[NBUCKETS];
   int tbcoalesce;
   int ncoalesce[NBUCKETS];
+  int nmmap;
+  bits32_t tmmap;
 };
 
 /* Return statistics describing allocation of blocks of size BLOCKSIZE.
@@ -98,6 +101,7 @@ struct bucket_stats {
   int nlesscore;
   int nsplit;
   int ncoalesce;
+  int nmmap;           /* currently unused */
 };
 
 extern struct bucket_stats malloc_bucket_stats __P((int));
index ae555a1da41a0749fb8a3189a08cb00ad20b4d12..05247970f36312ec005142254e09229700eba944 100644 (file)
@@ -36,6 +36,8 @@
 
 extern int malloc_free_blocks __P((int));
 
+extern int malloc_mmap_threshold;
+
 extern struct _malstats _mstats;
 
 extern FILE *_imalloc_fopen __P((char *, char *, char *, char *, size_t));
@@ -103,8 +105,12 @@ _print_malloc_stats (s, fp)
   for (i = totused = totfree = 0; i < NBUCKETS; i++)
     {
       v = malloc_bucket_stats (i);
+      /* Show where the mmap threshold is; sizes greater than this use mmap to
+        allocate and munmap to free (munmap shows up as lesscore). */
+      if (i == malloc_mmap_threshold+1)
+       fprintf (fp, "--------\n");
       if (v.nmal > 0)
-       fprintf (fp, "%8lu\t%4d\t%6d\t%5d\t%8d\t%d %5d %8d\n", (unsigned long)v.blocksize, v.nfree, v.nused, v.nmal, v.nmorecore, v.nlesscore, v.nsplit, v.ncoalesce);
+       fprintf (fp, "%8lu\t%4d\t%6d\t%5d\t%8d\t%8d %5d %8d\n", (unsigned long)v.blocksize, v.nfree, v.nused, v.nmal, v.nmorecore, v.nlesscore, v.nsplit, v.ncoalesce);
       totfree += v.nfree * v.blocksize;
       totused += v.nused * v.blocksize;
     }
@@ -115,6 +121,8 @@ _print_malloc_stats (s, fp)
           _mstats.nmal, _mstats.nfre, _mstats.nrealloc, _mstats.nrcopy);
   fprintf (fp, "Total sbrks: %d, total bytes via sbrk: %d\n",
           _mstats.nsbrk, _mstats.tsbrk);
+  fprintf (fp, "Total mmaps: %d, total bytes via mmap: %d\n",
+          _mstats.nmmap, _mstats.tmmap);
   fprintf (fp, "Total blocks split: %d, total block coalesces: %d\n",
           _mstats.tbsplit, _mstats.tbcoalesce);
 }
index 75019efcfd34abc1a4686fd1d4cc80ad8fa32d83..b2ed115417f4f0be4cca21ec0c3d34202a4edbce 100644 (file)
@@ -2987,7 +2987,8 @@ _rl_update_final (void)
       putc (last_line[_rl_screenwidth - 1 + woff], rl_outstream);
     }
   _rl_vis_botlin = 0;
-  rl_crlf ();
+  if (botline_length > 0 || _rl_last_c_pos > 0)
+    rl_crlf ();
   fflush (rl_outstream);
   rl_display_fixed++;
 }
index d28bd48562567cad770e963a4ab825ea9268fe38..dbc21c14d9c870428828b4f9f9047e6ee93d690f 100644 (file)
@@ -403,7 +403,7 @@ to the ``normal'' terminating characters.
 Return an array of tokens parsed out of @var{string}, much as the
 shell might.  The tokens are split on the characters in the
 @var{history_word_delimiters} variable,
-and shell quoting conventions are obeyed.
+and shell quoting conventions are obeyed as described below.
 @end deftypefun
 
 @deftypefun {char *} history_arg_extract (int first, int last, const char *string)
@@ -476,8 +476,24 @@ carriage return, and @samp{=}.
 @end deftypevar
 
 @deftypevar int history_quotes_inhibit_expansion
-If non-zero, double-quoted words are not scanned for the history expansion
-character or the history comment character.  The default value is 0.
+If non-zero, the history expansion code implements shell-like quoting:
+single-quoted words are not scanned for the history expansion
+character or the history comment character, and double-quoted words may
+have history expansion performed, since single quotes are not special
+within double quotes.
+The default value is 0.
+@end deftypevar
+
+@deftypevar int history_quoting_state
+An application may set this variable to indicate that the current line
+being expanded is subject to existing quoting. If set to @samp{'}, the
+history expansion function will assume that the line is single-quoted and
+inhibit expansion until it reads an unquoted closing single quote; if set
+to @samp{"}, history expansion will assume the line is double quoted until
+it reads an unquoted closing double quote. If set to zero, the default,
+the history expansion function will assume the line is not quoted and
+treat quote characters within the line as described above.
+This is only effective if @var{history_quotes_inhibit_expansion} is set.
 @end deftypevar
 
 @deftypevar {rl_linebuf_func_t *} history_inhibit_expansion_function
index d21f65d0f143ebf21a17101bb2e0573a11bb3ad9..521ccc708ba812088ca9aa5345100b4594291a97 100644 (file)
@@ -262,8 +262,8 @@ fix errors in previous commands quickly.
 @ifset BashFeatures
 History expansion is performed immediately after a complete line
 is read, before the shell breaks it into words, and is performed
-on each line individually without taking quoting on previous lines into
-account.
+on each line individually.  Bash attempts to inform the history
+expansion functions about quoting still in effect from previous lines.
 @end ifset
 
 History expansion takes place in two parts.  The first is to determine
@@ -277,9 +277,19 @@ that Bash does, so that several words
 surrounded by quotes are considered one word.
 History expansions are introduced by the appearance of the
 history expansion character, which is @samp{!} by default.
+
+History expansion implements shell-like quoting conventions:
+a backslash can be used to remove the special handling for the next character;
+single quotes enclose verbatim sequences of characters, and can be used to
+inhibit history expansion;
+and characters enclosed within double quotes may be subject to history
+expansion, since backslash can escape the history expansion character,
+but single quotes may not, since they are not treated specially within
+double quotes.
+
 @ifset BashFeatures
-Only @samp{\} and @samp{'} may be used to escape the history expansion
-character, but the history expansion character is
+When using the shell, only @samp{\} and @samp{'} may be used to escape the
+history expansion character, but the history expansion character is
 also treated as quoted if it immediately precedes the closing double quote
 in a double-quoted string. 
 @end ifset
index 7d22b2cb6af6d0dc13085566349cac02f2c6d724..baf036df56ba36ac6853ae53a5730ccb1b0075d1 100644 (file)
@@ -846,12 +846,16 @@ Return the function invoked by @var{keyseq} in keymap @var{map}.
 If @var{map} is @code{NULL}, the current keymap is used.  If @var{type} is
 not @code{NULL}, the type of the object is returned in the @code{int} variable
 it points to (one of @code{ISFUNC}, @code{ISKMAP}, or @code{ISMACR}).
+It takes a "translated" key sequence and should not be used if the key sequence
+can include NUL.
 @end deftypefun
 
-@deftypefun {rl_command_func_t *} rl_function_of_keyseq_len (const char *keyseq, size_t len Keymap map, int *type)
+@deftypefun {rl_command_func_t *} rl_function_of_keyseq_len (const char *keyseq, size_t len, Keymap map, int *type)
 Return the function invoked by @var{keyseq} of length @var{len}
 in keymap @var{map}. Equivalent to @code{rl_function_of_keyseq} with the
 addition of the @var{len} parameter.
+It takes a "translated" key sequence and should be used if the key sequence
+can include NUL.
 @end deftypefun
 
 @deftypefun {char **} rl_invoking_keyseqs (rl_command_func_t *function)
index 1c9acdcc1791bdc334f4db9b061b4a93aa73b3c1..1acc8cda9ef717944815c3059ed3221c9659c893 100644 (file)
@@ -475,6 +475,7 @@ The default value is @samp{off}.
 If set to @samp{on}, and @var{completion-ignore-case} is enabled, Readline
 treats hyphens (@samp{-}) and underscores (@samp{_}) as equivalent when
 performing case-insensitive filename matching and completion.
+The default value is @samp{off}.
 
 @item completion-prefix-display-length
 @vindex completion-prefix-display-length
@@ -802,7 +803,7 @@ Meta-Rubout: backward-kill-word
 Control-o: "> output"
 @end example
 
-In the above example, @kbd{C-u} is bound to the function
+In the example above, @kbd{C-u} is bound to the function
 @code{universal-argument},
 @kbd{M-DEL} is bound to the function @code{backward-kill-word}, and
 @kbd{C-o} is bound to run the macro
@@ -1352,7 +1353,7 @@ This function is intended to be bound to the "bracketed paste" escape
 sequence sent by some terminals, and such a binding is assigned by default.
 It allows Readline to insert the pasted text as a single unit without treating
 each character as if it had been read from the keyboard.  The characters
-are inserted as if each one was bound to @code{self-insert}) instead of
+are inserted as if each one was bound to @code{self-insert} instead of
 executing any editing commands.
 
 @item transpose-chars (C-t)
@@ -2019,10 +2020,10 @@ matches were generated.
 @item complete
 @btindex complete
 @example
-@code{complete [-abcdefgjksuv] [-o @var{comp-option}] [-DE] [-A @var{action}] [-G @var{globpat}] [-W @var{wordlist}]
-[-F @var{function}] [-C @var{command}] [-X @var{filterpat}]
+@code{complete [-abcdefgjksuv] [-o @var{comp-option}] [-DEI] [-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 [-DE] [@var{name} @dots{}]}
+@code{complete -pr [-DEI] [@var{name} @dots{}]}
 @end example
 
 Specify how arguments to each @var{name} should be completed.
@@ -2032,16 +2033,24 @@ 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{-D} option indicates that the remaining options and actions should
+The @option{-D} option indicates that other supplied options and actions should
 apply to the ``default'' command completion; that is, completion attempted
 on a command for which no completion has previously been defined.
-The @option{-E} option indicates that the remaining options and actions should
+The @option{-E} option indicates that other supplied options and actions should
 apply to ``empty'' command completion; that is, completion attempted on a 
 blank line.
+The @option{-I} option indicates that other supplied options and actions should
+apply to completion on the inital non-assignment word on the line, or after a
+command delimiter such as @samp{;} or @samp{|}, which is usually command
+name completion.
+If multiple options are supplied, the @option{-D} option takes precedence
+over @option{-E}, and both take precedence over @option{-I}.
+If any of @option{-D}, @option{-E}, or @option{-I} are supplied, any other
+@var{name} arguments are ignored; these completions only apply to the case
+specified by the option.
 
 The process of applying these completion specifications when word completion
-is attempted is described above (@pxref{Programmable Completion}).  The
-@option{-D} option takes precedence over @option{-E}.
+is attempted is described above (@pxref{Programmable Completion}).
 
 Other options, if specified, have the following meanings.
 The arguments to the @option{-G}, @option{-W}, and @option{-X} options
@@ -2071,7 +2080,7 @@ Perform directory name completion if the compspec generates no matches.
 
 @item filenames
 Tell Readline that the compspec generates filenames, so it can perform any
-filename-specific processing (like adding a slash to directory names
+filename-specific processing (like adding a slash to directory names,
 quoting special characters, or suppressing trailing spaces).
 This option is intended to be used with shell functions specified
 with @option{-F}.
@@ -2226,7 +2235,7 @@ an error occurs adding a completion specification.
 @item compopt
 @btindex compopt
 @example
-@code{compopt} [-o @var{option}] [-DE] [+o @var{option}] [@var{name}]
+@code{compopt} [-o @var{option}] [-DEI] [+o @var{option}] [@var{name}]
 @end example
 Modify completion options for each @var{name} according to the
 @var{option}s, or for the currently-executing completion if no @var{name}s
@@ -2235,14 +2244,19 @@ If no @var{option}s are given, display the completion options for each
 @var{name} or the current completion.
 The possible values of @var{option} are those valid for the @code{complete}
 builtin described above.
-The @option{-D} option indicates that the remaining options should
+The @option{-D} option indicates that other supplied options should
 apply to the ``default'' command completion; that is, completion attempted
 on a command for which no completion has previously been defined.
-The @option{-E} option indicates that the remaining options should
+The @option{-E} option indicates that other supplied options should
 apply to ``empty'' command completion; that is, completion attempted on a 
 blank line.
+The @option{-I} option indicates that other supplied options should
+apply to completion on the inital non-assignment word on the line, or after a
+command delimiter such as @samp{;} or @samp{|}, which is usually command
+name completion.
 
-The @option{-D} option takes precedence over @option{-E}.
+If multiple options are supplied, the @option{-D} option takes precedence
+over @option{-E}, and both take precedence over @option{-I}
 
 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
@@ -2289,7 +2303,7 @@ _comp_cd()
     local cur _skipdot _cdpath
     local i j k
 
-    # Tilde expansion, with side effect of expanding tilde to full pathname
+    # Tilde expansion, which also expands tilde to full pathname
     case "$2" in
     \~*)    eval cur="$2" ;;
     *)      cur=$2 ;;
index 9fefcfae8a02940e1bfeec48c9c4661d50337078..79f419175082f835aabd60bfc41deaa92a214ff2 100644 (file)
@@ -1,10 +1,10 @@
 @ignore
-Copyright (C) 1988-2017 Free Software Foundation, Inc. 
+Copyright (C) 1988-2018 Free Software Foundation, Inc. 
 @end ignore
 
-@set EDITION 7.0
-@set VERSION 7.0
-@set UPDATED 28 December 2017
-@set UPDATED-MONTH December 2017
+@set EDITION 8.0
+@set VERSION 8.0
+@set UPDATED 6 July 2018
+@set UPDATED-MONTH July 2018
 
-@set LASTCHANGE Thu Dec 28 14:44:16 EST 2017
+@set LASTCHANGE Fri Jul  6 16:25:22 MDT 2018
index e9c333d7e7cb6b0924b2f1f31e3e5caf09261392..92b996f9f288ed942bc1e14ca6339d905946684a 100644 (file)
@@ -1,6 +1,6 @@
 /* histexpand.c -- history expansion. */
 
-/* Copyright (C) 1989-2017 Free Software Foundation, Inc.
+/* Copyright (C) 1989-2018 Free Software Foundation, Inc.
 
    This file contains the GNU History Library (History), a set of
    routines for managing the text of previously typed lines.
@@ -107,6 +107,8 @@ char *history_word_delimiters = HISTORY_WORD_DELIMITERS;
    particular history expansion should be performed. */
 rl_linebuf_func_t *history_inhibit_expansion_function;
 
+int history_quoting_state = 0;
+
 /* **************************************************************** */
 /*                                                                 */
 /*                     History Expansion                           */
@@ -961,7 +963,22 @@ history_expand (char *hstring, char **output)
 
       /* `!' followed by one of the characters in history_no_expand_chars
         is NOT an expansion. */
-      for (i = dquote = squote = 0; string[i]; i++)
+      dquote = history_quoting_state == '"';
+      squote = history_quoting_state == '\'';
+
+      /* If the calling application tells us we are already reading a
+        single-quoted string, consume the rest of the string right now
+        and then go on. */
+      i = 0;
+      if (squote && history_quotes_inhibit_expansion)
+       {
+         hist_string_extract_single_quoted (string, &i, 0);
+         squote = 0;
+         if (string[i])
+           i++;
+       }
+
+      for ( ; string[i]; i++)
        {
 #if defined (HANDLE_MULTIBYTE)
          if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
@@ -1049,7 +1066,29 @@ history_expand (char *hstring, char **output)
     }
 
   /* Extract and perform the substitution. */
-  for (passc = dquote = squote = i = j = 0; i < l; i++)
+  dquote = history_quoting_state == '"';
+  squote = history_quoting_state == '\'';
+
+  /* If the calling application tells us we are already reading a
+     single-quoted string, consume the rest of the string right now
+     and then go on. */
+  i = j = 0;
+  if (squote && history_quotes_inhibit_expansion)
+    {
+      int c;
+
+      hist_string_extract_single_quoted (string, &i, 0);
+      squote = 0;
+      for (c = 0; c < i; c++)
+       ADD_CHAR (string[c]);      
+      if (string[i])
+       {
+         ADD_CHAR (string[i]);
+         i++;
+       }
+    }
+
+  for (passc = 0; i < l; i++)
     {
       int qc, tchar = string[i];
 
@@ -1429,11 +1468,11 @@ history_tokenize_word (const char *string, int ind)
        }
     }
 
-  if (member (string[i], "<>;&|$"))
+  if (member (string[i], "<>;&|"))
     {
       int peek = string[i + 1];
 
-      if (peek == string[i] && peek != '$')
+      if (peek == string[i])
        {
          if (peek == '<' && string[i + 2] == '-')
            i++;
@@ -1456,9 +1495,8 @@ history_tokenize_word (const char *string, int ind)
          i += 2;
          return i;
        }
-      /* XXX - separated out for later -- bash-4.2 */
-      else if ((peek == '(' && (string[i] == '>' || string[i] == '<')) || /* ) */
-              (peek == '(' && string[i] == '$')) /*)*/
+      /* XXX - process substitution -- separated out for later -- bash-4.2 */
+      else if (peek == '(' && (string[i] == '>' || string[i] == '<')) /*)*/
        {
          i += 2;
          delimopen = '(';
@@ -1466,34 +1504,9 @@ history_tokenize_word (const char *string, int ind)
          nestdelim = 1;
          goto get_word;
        }
-#if 0
-      else if (peek == '\'' && string[i] == '$')
-        {
-         i += 2;       /* XXX */
-         return i;
-        }
-#endif
-
-      if (string[i] != '$')
-       {
-         i++;
-         return i;
-       }
-    }
-
-  /* same code also used for $(...)/<(...)/>(...) above */
-  if (member (string[i], "!@?+*"))
-    {
-      int peek = string[i + 1];
 
-      if (peek == '(')         /*)*/
-       {
-         /* Shell extended globbing patterns */
-         i += 2;
-         delimopen = '(';
-         delimiter = ')';      /* XXX - not perfect */
-         nestdelim = 1;
-       }
+      i++;
+      return i;
     }
 
 get_word:
@@ -1538,6 +1551,16 @@ get_word:
          continue;
        }
 
+      /* Command and process substitution; shell extended globbing patterns */
+      if (nestdelim == 0 && delimiter == 0 && member (string[i], "<>$!@?+*") && string[i+1] == '(') /*)*/
+       {
+         i += 2;
+         delimopen = '(';
+         delimiter = ')';
+         nestdelim = 1;
+         continue;
+       }
+      
       if (delimiter == 0 && (member (string[i], history_word_delimiters)))
        break;
 
index 399bcc39f9978f82881b62cf724b9a35ca341914..dc64bde1c5acf8c117080eb7c783a2cd3181311d 100644 (file)
@@ -1,6 +1,6 @@
 /* histfile.c - functions to manipulate the history file. */
 
-/* Copyright (C) 1989-2017 Free Software Foundation, Inc.
+/* Copyright (C) 1989-2018 Free Software Foundation, Inc.
 
    This file contains the GNU History Library (History), a set of
    routines for managing the text of previously typed lines.
@@ -396,7 +396,7 @@ read_history_range (const char *filename, int from, int to)
          {
            if (HIST_TIMESTAMP_START(line_start) == 0)
              {
-               if (last_ts == NULL && history_multiline_entries)
+               if (last_ts == NULL && history_length > 0 && history_multiline_entries)
                  _hs_append_history_line (history_length - 1, line_start);
                else
                  add_history (line_start);
index fceb99cae52c0cbf3bb33a02077539b35ba6d1c1..cc3de29a64231d083d7b282e2eb247d692dbe521 100644 (file)
@@ -261,7 +261,9 @@ extern char *history_word_delimiters;
 extern char history_comment_char;
 extern char *history_no_expand_chars;
 extern char *history_search_delimiter_chars;
+
 extern int history_quotes_inhibit_expansion;
+extern int history_quoting_state;
 
 extern int history_write_timestamps;
 
index 983a98482d92fecc27e7cd1246d64a030987aa9f..9fdfc77280cc43c23fdb42fbb493eea446bf9fea 100644 (file)
@@ -322,7 +322,7 @@ rl_unix_word_rubout (int count, int key)
            rl_point--;
 
          while (rl_point && (whitespace (rl_line_buffer[rl_point - 1]) == 0))
-           rl_point--;
+           rl_point--;         /* XXX - multibyte? */
        }
 
       rl_kill_text (orig_point, rl_point);
@@ -359,7 +359,7 @@ rl_unix_filename_rubout (int count, int key)
 
          while (rl_point && (whitespace (c) == 0) && c != '/')
            {
-             rl_point--;
+             rl_point--;       /* XXX - multibyte? */
              c = rl_line_buffer[rl_point - 1];
            }
        }
@@ -677,7 +677,7 @@ rl_bracketed_paste_begin (int count, int key)
   size_t len, cap;
   char *buf;
 
-  retval = 1;
+  retval = 0;
   len = 0;
   buf = xmalloc (cap = 64);
 
@@ -708,7 +708,7 @@ rl_bracketed_paste_begin (int count, int key)
       if (len == cap)
        buf = xrealloc (buf, cap + 1);
       buf[len] = '\0';
-      retval = rl_insert_text (buf);
+      retval = rl_insert_text (buf) == len ? 0 : 1;
     }
 
   xfree (buf);
index 65543416cb64c2bf0ccbde5d7143ce805aab1ea9..17716357feb0c31b686636ccece7a1567426db35 100644 (file)
@@ -75,6 +75,57 @@ int _rl_utf8locale = 0;
 
 #if defined(HANDLE_MULTIBYTE)
 
+/* **************************************************************** */
+/*                                                                 */
+/*             UTF-8 specific Character Utility Functions          */
+/*                                                                 */
+/* **************************************************************** */
+
+/* Return the length in bytes of the possibly-multibyte character beginning
+   at S. Encoding is UTF-8. */
+static int
+_rl_utf8_mblen (const char *s, size_t n)
+{
+  unsigned char c, c1;
+
+  if (s == 0)
+    return (0);        /* no shift states */
+  if (n <= 0)
+    return (-1);
+
+  c = (unsigned char)*s;
+  if (c < 0x80)
+    return (c != 0);
+  if (c >= 0xc2)
+    {
+      c1 = (unsigned char)s[1];
+      if (c < 0xe0)
+       {
+         if (n >= 2 && (s[1] ^ 0x80) < 0x40)
+           return 2;
+       }
+      else if (c < 0xf0)
+       {
+         if (n >= 3
+               && (s[1] ^ 0x80) < 0x40 && (s[2] ^ 0x80) < 0x40
+               && (c >= 0xe1 || c1 >= 0xa0)
+               && (c != 0xed || c1 < 0xa0))
+           return 3;
+       }
+      else if (c < 0xf8)
+       {
+         if (n >= 4
+               && (s[1] ^ 0x80) < 0x40 && (s[2] ^ 0x80) < 0x40
+               && (s[3] ^ 0x80) < 0x40
+               && (c >= 0xf1 || c1 >= 0x90)
+               && (c < 0xf4 || (c == 0xf4 && c1 < 0x90)))
+           return 4;
+       }
+    }
+  /* invalid or incomplete multibyte character */
+  return -1;
+}
+
 static int
 _rl_find_next_mbchar_internal (char *string, int seed, int count, int find_non_zero)
 {
@@ -228,11 +279,16 @@ _rl_get_char_len (char *src, mbstate_t *ps)
 
   /* Look at no more than MB_CUR_MAX characters */
   l = (size_t)strlen (src);
-  mb_cur_max = MB_CUR_MAX;
-  tmp = mbrlen((const char *)src, (l < mb_cur_max) ? l : mb_cur_max, ps);
+  if (_rl_utf8locale && l > 0 && UTF8_SINGLEBYTE(*src))
+    tmp = (*src != 0) ? 1 : 0;
+  else
+    {
+      mb_cur_max = MB_CUR_MAX;
+      tmp = mbrlen((const char *)src, (l < mb_cur_max) ? l : mb_cur_max, ps);
+    }
   if (tmp == (size_t)(-2))
     {
-      /* shorted to compose multibyte char */
+      /* too short to compose multibyte char */
       if (ps)
        memset (ps, 0, sizeof(mbstate_t));
       return -2;
index 4842a02e0524a90cd32aaee65825d4de91739d5a..678f989c51aba1d522b366e67ed93968ced01cc1 100644 (file)
@@ -214,6 +214,9 @@ int _rl_eof_char = CTRL ('D');
 /* Non-zero makes this the next keystroke to read. */
 int rl_pending_input = 0;
 
+/* If non-zero when readline_internal returns, it means we found EOF */
+int _rl_eof_found = 0;
+
 /* Pointer to a useful terminal name. */
 const char *rl_terminal_name = (const char *)NULL;
 
@@ -222,7 +225,7 @@ int _rl_horizontal_scroll_mode = 0;
 
 /* Non-zero means to display an asterisk at the starts of history lines
    which have been modified. */
-int _rl_mark_modified_lines = 0;  
+int _rl_mark_modified_lines = 0;
 
 /* The style of `bell' notification preferred.  This can be set to NO_BELL,
    AUDIBLE_BELL, or VISIBLE_BELL. */
@@ -664,11 +667,9 @@ readline_internal_charloop (void)
 static char *
 readline_internal (void)
 {
-  int eof;
-
   readline_internal_setup ();
-  eof = readline_internal_charloop ();
-  return (readline_internal_teardown (eof));
+  _rl_eof_found = readline_internal_charloop ();
+  return (readline_internal_teardown (_rl_eof_found));
 }
 
 void
@@ -1055,7 +1056,7 @@ _rl_subseq_result (int r, Keymap map, int key, int got_subseq)
        /* We probably shadowed a keymap, so keep going. */
        r = _rl_dispatch (ANYOTHERKEY, m);
     }
-  else if (r && map[ANYOTHERKEY].function)
+  else if (r < 0 && map[ANYOTHERKEY].function)
     {
       /* We didn't match (r is probably -1), so return something to
         tell the caller that it should try ANYOTHERKEY for an
index 2081b197b68adfb33158291663dbeea4730bbbf2..4e08b2e97db4e4298fdea2f6c682b075e5e3fea1 100644 (file)
@@ -39,8 +39,8 @@ extern "C" {
 #endif
 
 /* Hex-encoded Readline version number. */
-#define RL_READLINE_VERSION    0x0700          /* Readline 7.0 */
-#define RL_VERSION_MAJOR       7
+#define RL_READLINE_VERSION    0x0800          /* Readline 8.0 */
+#define RL_VERSION_MAJOR       8
 #define RL_VERSION_MINOR       0
 
 /* Readline data structures. */
index 8b88de40afbc17cf519a9a6bd6a8c7730c3d6414..6fd03f6a0c1e5819f47f74e25d93ddee5f14ff9e 100644 (file)
@@ -173,6 +173,8 @@ _rl_wcwidth (wc)
 #endif
 
 #define UTF8_SINGLEBYTE(c)     (((c) & 0x80) == 0)
+#define UTF8_MBFIRSTCHAR(c)    (((c) & 0xc0) == 0xc0)
+#define UTF8_MBCHAR(c)         (((c) & 0xc0) == 0x80)
 
 #else /* !HANDLE_MULTIBYTE */
 
index 05ee9302b1b6b2c71481d37ef7b057e55257eb08..69943de5270eac2316a4730b6a413002294866d8 100644 (file)
@@ -382,6 +382,7 @@ extern void _rl_set_cursor PARAMS((int, int));
 extern void _rl_fix_point PARAMS((int));
 extern int _rl_replace_text PARAMS((const char *, int, int));
 extern int _rl_forward_char_internal PARAMS((int));
+extern int _rl_backward_char_internal PARAMS((int));
 extern int _rl_insert_char PARAMS((int, int));
 extern int _rl_overwrite_char PARAMS((int, int));
 extern int _rl_overwrite_rubout PARAMS((int, int));
@@ -511,6 +512,7 @@ extern FILE *_rl_in_stream;
 extern FILE *_rl_out_stream;
 extern int _rl_last_command_was_kill;
 extern int _rl_eof_char;
+extern int _rl_eof_found;
 extern procenv_t _rl_top_level;
 extern _rl_keyseq_cxt *_rl_kscxt;
 extern int _rl_keyseq_timeout;
index 6d9071921b3d6a00db129c20bf3a4022da158785..2ee36a7cb5a283c7eb853404e1db7a27b251476d 100644 (file)
@@ -691,7 +691,11 @@ rl_deprep_terminal (void)
   tty = rl_instream ? fileno (rl_instream) : fileno (stdin);
 
   if (terminal_prepped & TPX_BRACKPASTE)
-    fprintf (rl_outstream, BRACK_PASTE_FINI);
+    {
+      fprintf (rl_outstream, BRACK_PASTE_FINI);
+      if (_rl_eof_found)
+       fprintf (rl_outstream, "\n");
+    }
 
   if (_rl_enable_keypad)
     _rl_control_keypad (0);
index 81de2a99c97b3f48f4150ab1949080599e193882..cddaeebd2d7832d81c292146f26a751ea3aae518 100644 (file)
@@ -297,13 +297,40 @@ _rl_forward_char_internal (int count)
 #endif
 
     if (rl_end < 0)
-       rl_end = 0;
+      rl_end = 0;
 #else
   point = rl_point + count;
+#endif
+
   if (point > rl_end)
     point = rl_end;
+  return (point);
+}
+
+int
+_rl_backward_char_internal (int count)
+{
+  int point;
+
+  point = rl_point;
+#if defined (HANDLE_MULTIBYTE)
+  if (count > 0)
+    {
+      while (count > 0 && point > 0)
+       {
+         point = _rl_find_prev_mbchar (rl_line_buffer, point, MB_FIND_NONZERO);
+         count--;
+       }
+      if (count > 0)
+        return 0;      /* XXX - rl_ding() here? */
+    }
+#else
+  if (count > 0)
+    point -= count;
 #endif
 
+  if (point < 0)
+    point = 0;
   return (point);
 }
 
index 3cb7e8c992e2e22e6a8a76f87428b12593b320ef..d6fa38e9779e16b42ba7209e8424b6ce54dd10f8 100644 (file)
@@ -1,7 +1,7 @@
 /* vi_mode.c -- A vi emulation mode for Bash.
    Derived from code written by Jeff Sparkes (jsparkes@bnr.ca).  */
 
-/* Copyright (C) 1987-2017 Free Software Foundation, Inc.
+/* Copyright (C) 1987-2018 Free Software Foundation, Inc.
 
    This file is part of the GNU Readline Library (Readline), a library
    for reading lines of text with interactive input and history editing.      
 #define member(c, s) ((c) ? (char *)strchr ((s), (c)) != (char *)NULL : 0)
 #endif
 
+/* Increment START to the next character in RL_LINE_BUFFER, handling multibyte chars */
+#if defined (HANDLE_MULTIBYTE)
+#define INCREMENT_POS(start) \
+  do { \
+       if (MB_CUR_MAX == 1 || rl_byte_oriented) \
+         start++; \
+       else \
+         start = _rl_find_next_mbchar (rl_line_buffer, start, 1, MB_FIND_ANY); \
+  } while (0)
+#else /* !HANDLE_MULTIBYTE */
+#define INCREMENT_POS(start)    (start)++
+#endif /* !HANDLE_MULTIBYTE */
+
 /* This is global so other parts of the code can check whether the last
    command was a text modification command. */
 int _rl_vi_last_command = 'i'; /* default `.' puts you in insert mode */
@@ -118,7 +131,7 @@ static void _rl_vi_save_insert PARAMS((UNDO_LIST *));
 
 static void vi_save_insert_buffer PARAMS ((int, int));
 
-static void _rl_vi_backup PARAMS((void));
+static inline void _rl_vi_backup PARAMS((void));
 
 static int _rl_vi_arg_dispatch PARAMS((int));
 static int rl_digit_loop1 PARAMS((void));
@@ -126,6 +139,9 @@ static int rl_digit_loop1 PARAMS((void));
 static int _rl_vi_set_mark PARAMS((void));
 static int _rl_vi_goto_mark PARAMS((void));
 
+static inline int _rl_vi_advance_point PARAMS((void));
+static inline int _rl_vi_backup_point PARAMS((void));
+
 static void _rl_vi_append_forward PARAMS((int));
 
 static int _rl_vi_callback_getchar PARAMS((char *, int));
@@ -383,7 +399,7 @@ rl_vi_complete (int ignore, int key)
     {
       if (!whitespace (rl_line_buffer[rl_point + 1]))
        rl_vi_end_word (1, 'E');
-      rl_point++;
+      _rl_vi_advance_point ();
     }
 
   if (key == '*')
@@ -451,6 +467,69 @@ rl_vi_next_word (int count, int key)
   return (0);
 }
 
+static inline int
+_rl_vi_advance_point (void)
+{
+  int point;
+
+  point = rl_point;
+  if (rl_point < rl_end)
+#if defined (HANDLE_MULTIBYTE)
+    {
+      if (MB_CUR_MAX == 1 || rl_byte_oriented)
+       rl_point++;
+      else
+       {
+         point = rl_point;
+         rl_point = _rl_forward_char_internal (1);
+         if (point == rl_point || rl_point > rl_end)
+           rl_point = rl_end;
+       }
+    }
+#else
+    rl_point++;
+#endif
+
+  return point;
+}
+
+/* Move the cursor back one character. */
+static inline void
+_rl_vi_backup (void)
+{
+  if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
+    rl_point = _rl_find_prev_mbchar (rl_line_buffer, rl_point, MB_FIND_NONZERO);
+  else
+    rl_point--;
+}
+
+/* Move the point back one character, returning the starting value and not
+   doing anything at the beginning of the line */
+static inline int
+_rl_vi_backup_point (void)
+{
+  int point;
+
+  point = rl_point;
+  if (rl_point > 0)
+#if defined (HANDLE_MULTIBYTE)
+    {
+      if (MB_CUR_MAX == 1 || rl_byte_oriented)
+       rl_point--;
+      else
+       {
+         point = rl_point;
+         rl_point = _rl_backward_char_internal (1);
+         if (rl_point < 0)
+           rl_point = 0;               /* XXX - not really necessary */
+       }
+    }
+#else
+    rl_point--;
+#endif
+  return point;
+}
+
 /* Move to the end of the ?next? word. */
 int
 rl_vi_end_word (int count, int key)
@@ -476,11 +555,11 @@ rl_vi_fWord (int count, int ignore)
     {
       /* Skip until whitespace. */
       while (!whitespace (rl_line_buffer[rl_point]) && rl_point < rl_end)
-       rl_point++;
+       _rl_vi_advance_point ();
 
       /* Now skip whitespace. */
       while (whitespace (rl_line_buffer[rl_point]) && rl_point < rl_end)
-       rl_point++;
+       _rl_vi_advance_point ();
     }
   return (0);
 }
@@ -497,12 +576,18 @@ rl_vi_bWord (int count, int ignore)
        rl_point--;
 
       while (rl_point > 0 && whitespace (rl_line_buffer[rl_point]))
-       rl_point--;
+       _rl_vi_backup_point ();
 
       if (rl_point > 0)
        {
-         while (--rl_point >= 0 && !whitespace (rl_line_buffer[rl_point]));
-         rl_point++;
+         do
+           _rl_vi_backup_point ();
+         while (rl_point > 0 && !whitespace (rl_line_buffer[rl_point]));
+         if (rl_point > 0)     /* hit whitespace */
+           rl_point++;         
+
+         if (rl_point < 0)
+           rl_point = 0;
        }
     }
   return (0);
@@ -511,28 +596,32 @@ rl_vi_bWord (int count, int ignore)
 int
 rl_vi_eWord (int count, int ignore)
 {
+  int opoint;
+
   while (count-- && rl_point < (rl_end - 1))
     {
-      if (!whitespace (rl_line_buffer[rl_point]))
-       rl_point++;
+      if (whitespace (rl_line_buffer[rl_point]) == 0)
+       _rl_vi_advance_point ();
 
       /* Move to the next non-whitespace character (to the start of the
         next word). */
       while (rl_point < rl_end && whitespace (rl_line_buffer[rl_point]))
-       rl_point++;
+       _rl_vi_advance_point ();
 
       if (rl_point && rl_point < rl_end)
        {
+         opoint = rl_point;
+
          /* Skip whitespace. */
          while (rl_point < rl_end && whitespace (rl_line_buffer[rl_point]))
-           rl_point++;
+           opoint = _rl_vi_advance_point ();   /* XXX - why? */
 
          /* Skip until whitespace. */
          while (rl_point < rl_end && !whitespace (rl_line_buffer[rl_point]))
-           rl_point++;
+           opoint = _rl_vi_advance_point ();
 
          /* Move back to the last character of the word. */
-         rl_point--;
+         rl_point = opoint;
        }
     }
   return (0);
@@ -541,24 +630,28 @@ rl_vi_eWord (int count, int ignore)
 int
 rl_vi_fword (int count, int ignore)
 {
+  int opoint;
+
   while (count-- && rl_point < (rl_end - 1))
     {
       /* Move to white space (really non-identifer). */
       if (_rl_isident (rl_line_buffer[rl_point]))
        {
          while (_rl_isident (rl_line_buffer[rl_point]) && rl_point < rl_end)
-           rl_point++;
+           _rl_vi_advance_point ();
        }
       else /* if (!whitespace (rl_line_buffer[rl_point])) */
        {
          while (!_rl_isident (rl_line_buffer[rl_point]) &&
                 !whitespace (rl_line_buffer[rl_point]) && rl_point < rl_end)
-           rl_point++;
+           _rl_vi_advance_point ();
        }
 
+      opoint = rl_point;
+
       /* Move past whitespace. */
       while (whitespace (rl_line_buffer[rl_point]) && rl_point < rl_end)
-       rl_point++;
+       opoint = _rl_vi_advance_point ();
     }
   return (0);
 }
@@ -566,9 +659,11 @@ rl_vi_fword (int count, int ignore)
 int
 rl_vi_bword (int count, int ignore)
 {
+  int opoint;
+
   while (count-- && rl_point > 0)
     {
-      int last_is_ident;
+      int prev_is_ident, cur_is_ident;
 
       /* If we are at the start of a word, move back to whitespace
         so we will go back to the start of the previous word. */
@@ -581,22 +676,35 @@ rl_vi_bword (int count, int ignore)
         back so we don't get messed up by the rl_point++ down there in
         the while loop.  Without this code, words like `l;' screw up the
         function. */
-      last_is_ident = _rl_isident (rl_line_buffer[rl_point - 1]);
-      if ((_rl_isident (rl_line_buffer[rl_point]) && !last_is_ident) ||
-         (!_rl_isident (rl_line_buffer[rl_point]) && last_is_ident))
-       rl_point--;
+      cur_is_ident = _rl_isident (rl_line_buffer[rl_point]);
+      opoint = _rl_vi_backup_point ();
+      prev_is_ident = _rl_isident (rl_line_buffer[rl_point]);
+      if ((cur_is_ident && !prev_is_ident) || (!cur_is_ident && prev_is_ident))
+       ;       /* leave point alone, we backed it up one character */
+      else
+       rl_point = opoint;
 
       while (rl_point > 0 && whitespace (rl_line_buffer[rl_point]))
-       rl_point--;
+       _rl_vi_backup_point ();
 
       if (rl_point > 0)
        {
+         opoint = rl_point;
          if (_rl_isident (rl_line_buffer[rl_point]))
-           while (--rl_point >= 0 && _rl_isident (rl_line_buffer[rl_point]));
+           do
+             opoint = _rl_vi_backup_point ();
+           while (rl_point > 0 && _rl_isident (rl_line_buffer[rl_point]));
          else
-           while (--rl_point >= 0 && !_rl_isident (rl_line_buffer[rl_point]) &&
+           do
+             opoint = _rl_vi_backup_point ();
+           while (rl_point > 0 && !_rl_isident (rl_line_buffer[rl_point]) &&
                   !whitespace (rl_line_buffer[rl_point]));
-         rl_point++;
+
+         if (rl_point > 0)
+           rl_point = opoint;
+
+         if (rl_point < 0)
+           rl_point = 0;
        }
     }
   return (0);
@@ -605,23 +713,34 @@ rl_vi_bword (int count, int ignore)
 int
 rl_vi_eword (int count, int ignore)
 {
-  while (count-- && rl_point < rl_end - 1)
+  int opoint;
+
+  while (count-- && rl_point < (rl_end - 1))
     {
-      if (!whitespace (rl_line_buffer[rl_point]))
-       rl_point++;
+      if (whitespace (rl_line_buffer[rl_point]) == 0)
+       _rl_vi_advance_point ();
 
       while (rl_point < rl_end && whitespace (rl_line_buffer[rl_point]))
-       rl_point++;
+       _rl_vi_advance_point ();
 
+      opoint = rl_point;
       if (rl_point < rl_end)
        {
          if (_rl_isident (rl_line_buffer[rl_point]))
-           while (++rl_point < rl_end && _rl_isident (rl_line_buffer[rl_point]));
+           do
+             {
+               opoint = _rl_vi_advance_point ();
+             }
+           while (rl_point < rl_end && _rl_isident (rl_line_buffer[rl_point]));
          else
-           while (++rl_point < rl_end && !_rl_isident (rl_line_buffer[rl_point])
+           do
+             {
+               opoint = _rl_vi_advance_point ();
+             }
+           while (rl_point < rl_end && !_rl_isident (rl_line_buffer[rl_point])
                   && !whitespace (rl_line_buffer[rl_point]));
        }
-      rl_point--;
+      rl_point = opoint;
     }
   return (0);
 }
@@ -637,20 +756,7 @@ rl_vi_insert_beg (int count, int key)
 static void
 _rl_vi_append_forward (int key)
 {
-  int point;
-
-  if (rl_point < rl_end)
-    {
-      if (MB_CUR_MAX == 1 || rl_byte_oriented)
-       rl_point++;
-      else
-       {
-         point = rl_point;
-         rl_point = _rl_forward_char_internal (1);
-         if (point == rl_point)
-           rl_point = rl_end;
-       }
-    }
+  _rl_vi_advance_point ();
 }
 
 int
@@ -859,7 +965,7 @@ _rl_vi_change_mbchar_case (int count)
          rl_begin_undo_group ();
          rl_vi_delete (1, 0);
          if (rl_point < p)     /* Did we retreat at EOL? */
-           rl_point++; /* XXX - should we advance more than 1 for mbchar? */
+           _rl_vi_advance_point ();
          rl_insert_text (mb);
          rl_end_undo_group ();
          rl_vi_check ();
@@ -931,27 +1037,12 @@ rl_vi_put (int count, int key)
   return (0);
 }
 
-/* Move the cursor back one character. */
-static void
-_rl_vi_backup (void)
-{
-  if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
-    rl_point = _rl_find_prev_mbchar (rl_line_buffer, rl_point, MB_FIND_NONZERO);
-  else
-    rl_point--;
-}
-
 /* Move the cursor back one character if you're at the end of the line */
 int
 rl_vi_check (void)
 {
   if (rl_point && rl_point == rl_end)
-    {
-      if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
-       rl_point = _rl_find_prev_mbchar (rl_line_buffer, rl_point, MB_FIND_NONZERO);
-      else
-       rl_point--;
-    }
+    _rl_vi_backup ();
   return (0);
 }
 
@@ -962,7 +1053,10 @@ rl_vi_column (int count, int key)
   if (count > rl_end)
     rl_end_of_line (1, key);
   else
-    rl_point = count - 1;
+    {
+      rl_point = 0;
+      rl_point = _rl_forward_char_internal (count - 1);
+    }
   return (0);
 }
 
@@ -1113,7 +1207,7 @@ _rl_vi_domove_motion_cleanup (int c, _rl_vimotion_cxt *m)
      non-whitespace character, move back one (presumably to whitespace). */
   if ((_rl_to_upper (c) == 'W') && rl_point < rl_end && rl_point > rl_mark &&
       !whitespace (rl_line_buffer[rl_point]))
-    rl_point--;
+    rl_point--;                /* XXX */
 
   /* If cw or cW, back up to the end of a word, so the behaviour of ce
      or cE is the actual result.  Brute-force, no subtlety. */
@@ -1126,14 +1220,14 @@ _rl_vi_domove_motion_cleanup (int c, _rl_vimotion_cxt *m)
       /* Posix.2 says that if cw or cW moves the cursor towards the end of
         the line, the character under the cursor should be deleted. */
       if (rl_point == rl_mark)
-       rl_point++;
+       _rl_vi_advance_point ();
       else
        {
          /* Move past the end of the word so that the kill doesn't
             remove the last letter of the previous word.  Only do this
             if we are not at the end of the line. */
          if (rl_point >= 0 && rl_point < (rl_end - 1) && !whitespace (rl_line_buffer[rl_point]))
-           rl_point++;
+           _rl_vi_advance_point ();
        }
     }
 
@@ -1271,7 +1365,7 @@ vi_delete_dispatch (_rl_vimotion_cxt *m)
      mark. */
   if (((strchr (" l|h^0bBFT`", m->motion) == 0) && (rl_point >= m->start)) &&
       (rl_mark < rl_end))
-    rl_mark++;
+    INCREMENT_POS (rl_mark);
 
   rl_kill_text (rl_point, rl_mark);
   return (0);
@@ -1334,7 +1428,7 @@ vi_change_dispatch (_rl_vimotion_cxt *m)
      and already leave the mark at the correct location. */
   if (((strchr (" l|hwW^0bBFT`", m->motion) == 0) && (rl_point >= m->start)) &&
       (rl_mark < rl_end))
-    rl_mark++;
+    INCREMENT_POS (rl_mark);
 
   /* The cursor never moves with c[wW]. */
   if ((_rl_to_upper (m->motion) == 'W') && rl_point < m->start)
@@ -1421,7 +1515,7 @@ vi_yank_dispatch (_rl_vimotion_cxt *m)
      mark. */
   if (((strchr (" l|h^0%bBFT`", m->motion) == 0) && (rl_point >= m->start)) &&
       (rl_mark < rl_end))
-    rl_mark++;
+    INCREMENT_POS (rl_mark);
 
   rl_begin_undo_group ();
   rl_kill_text (rl_point, rl_mark);
@@ -1611,8 +1705,8 @@ rl_vi_unix_word_rubout (int count, int key)
            while (rl_point && vi_unix_word_boundary (rl_line_buffer[rl_point - 1]))
              rl_point--;
          else if (rl_point > 0 && vi_unix_word_boundary (rl_line_buffer[rl_point]) == 0)
-           while (rl_point && (vi_unix_word_boundary (rl_line_buffer[rl_point - 1]) == 0))
-             rl_point--;
+           while (rl_point > 0 && (vi_unix_word_boundary (rl_line_buffer[rl_point - 1]) == 0))
+             _rl_vi_backup_point ();
        }
 
       rl_kill_text (orig_point, rl_point);
@@ -2100,7 +2194,7 @@ rl_vi_possible_completions (void)
     {
       while (rl_point < rl_end && rl_line_buffer[rl_point] != ' ' &&
             rl_line_buffer[rl_point] != ';')
-       rl_point++;
+       _rl_vi_advance_point ();
     }
   else if (rl_line_buffer[rl_point - 1] == ';')
     {
index b1a086d6fd958c01ef0b46276c4ec2d0975a0940..06917ba4e28c8e3172018acd86517f80f766dc9f 100644 (file)
@@ -92,7 +92,8 @@ CSOURCES = clktck.c clock.c getcwd.c getenv.c oslib.c setlinebuf.c \
           mktime.c strftime.c mbschr.c zcatfd.c zmapfd.c winsize.c eaccess.c \
           wcsdup.c fpurge.c zgetline.c mbscmp.c uconvert.c ufuncs.c \
           casemod.c dprintf.c input_avail.c mbscasecmp.c fnxform.c \
-          strchrnul.c unicode.c wcswidth.c wcsnwidth.c shmbchar.c strdup.c
+          strchrnul.c unicode.c wcswidth.c wcsnwidth.c shmbchar.c strdup.c \
+          utf8.c
 
 # The header files for this library.
 HSOURCES = 
@@ -107,7 +108,7 @@ OBJECTS = clktck.o clock.o getenv.o oslib.o setlinebuf.o strnlen.o \
          fmtullong.o fmtumax.o zcatfd.o zmapfd.o winsize.o wcsdup.o \
          fpurge.o zgetline.o mbscmp.o uconvert.o ufuncs.o casemod.o \
          input_avail.o mbscasecmp.o fnxform.o unicode.o shmbchar.o \
-         wcsnwidth.o ${LIBOBJS}
+         utf8.o wcsnwidth.o ${LIBOBJS}
 
 SUPPORT = Makefile
 
@@ -200,6 +201,7 @@ tmpfile.o: tmpfile.c
 uconvert.o: uconvert.c
 ufuncs.o: ufuncs.c
 unicode.o: unicode.c
+utf8.o: utf8.c
 vprint.o: vprint.c
 wcsdup.o: wcsdup.c
 wcsnwidth.o: wcsnwidth.c
@@ -277,6 +279,7 @@ tmpfile.o: ${BUILD_DIR}/config.h
 uconvert.o: ${BUILD_DIR}/config.h
 ufuncs.o: ${BUILD_DIR}/config.h
 unicode.o: ${BUILD_DIR}/config.h
+utf8.o: ${BUILD_DIR}/config.h
 vprint.o: ${BUILD_DIR}/config.h
 wcsdup.o: ${BUILD_DIR}/config.h
 wcsnwidth.o: ${BUILD_DIR}/config.h
@@ -612,6 +615,10 @@ unicode.o: ${topdir}/bashansi.h ${BASHINCDIR}/ansi_stdlib.h
 unicode.o: ${BASHINCDIR}/stdc.h
 unicode.o: ${topdir}/xmalloc.h
 
+utf8.o: ${topdir}/bashansi.h
+utf8.o: ${BASHINCDIR}/ansi_stdlib.h
+utf8.o: ${BASHINCDIR}/shmbutil.h ${BASHINCDIR}/shmbchar.h
+
 winsize.o: ${BASHINCDIR}/stdc.h
 winsize.o: ${topdir}/xmalloc.h
 winsize.o: ${topdir}/bashtypes.h
index 8b5e34060accd1ba5fc6fdd5fd30aaa424139cb8..1e682aefb0a2be11a7f8a1467944d1904a9ad4a8 100644 (file)
@@ -69,7 +69,7 @@ getenv (name)
       if (var && exported_p (var))
        return (value_cell (var));
     }
-  else
+  else if (environ)
     {
       register int i, len;
 
index fdce6d5a176f97b5ea12a10dd8c996cac3a4d350..639962d46317785baabae86bac6623b101ad2cc6 100644 (file)
@@ -32,13 +32,7 @@ extern int locale_utf8locale;
 
 #undef mbschr
 
-static inline char *
-utf8_mbschr (s, c)
-     const char *s;
-     int c;
-{
-  return strchr (s, c);                /* for now */
-}
+extern char *utf8_mbschr (const char *, int);  /* XXX */
 
 /* In some locales, the non-first byte of some multibyte characters have
    the same value as some ascii character.  Faced with these strings, a
index aaf81f5e5afe8df734ec15f835f4d28e138c1203..c7c8443578f1ea28232590460a5ef99e386bd7d6 100644 (file)
@@ -1,6 +1,6 @@
 /* mbscmp - multibyte string comparison. */
 
-/* Copyright (C) 1995-2015 Free Software Foundation, Inc.
+/* Copyright (C) 1995-2018 Free Software Foundation, Inc.
 
    This file is part of GNU Bash, the Bourne Again SHell.
 
 #include <stddef.h>
 #include <string.h>
 
+extern int locale_utf8locale;
+
+extern int utf8_mbscmp (const char *, const char *);
+
 /* Compare MBS1 and MBS2.  */
 int
 mbscmp (mbs1, mbs2)
index 80858ebf23667540094ae327f4351a1ebd80a6ab..f2f2582b442d5ca45b49933d3e4a9dfba3ff6df5 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001, 2006, 2009, 2010, 2012, 2015 Free Software Foundation, Inc.
+/* Copyright (C) 2001, 2006, 2009, 2010, 2012, 2015-2018 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
@@ -45,102 +45,9 @@ const unsigned int is_basic_table [UCHAR_MAX / 32 + 1] =
 
 extern int locale_utf8locale;
 
-/* We can optimize this if we know the locale is UTF-8, but needs to handle
-   malformed byte sequences. */
-static inline size_t
-utf8_mbstrlen(s)
-     const char *s;
-{
-  size_t num = 0;
-  register unsigned char c;
-
-  while ((c = *s++))
-    /* bytes 0xc0 through 0xff are first byte of multi-byte sequence */
-    if ((c & 0xc0) != 0x80)    /* skip continuation bytes */
-      ++num;
-  return (num);
-}
-
-/* Adapted from GNU libutf8 */
-static inline int
-utf8_mblen (s, n)
-     const char *s;
-     int n;
-{
-  unsigned char c;
-
-  if (s == 0)
-    return 0;
-  else if (n == 0)
-    return -1;
-
-  c = (unsigned char) *s;
-  if (c < 0x80)
-    return (c != 0);
-  else if (c < 0xc0)
-    goto return_error;
-  else
-    {
-      const char *start = s;
-      size_t count;
-      int check_unsafe;
+extern char *utf8_mbsmbchar (const char *);
+extern int utf8_mblen (const char *, size_t);
 
-      if (c < 0xe0)
-        {
-          count = 1;
-          if (c < 0xc2)
-           goto return_error;
-         check_unsafe = 0;
-        }
-      else if (c < 0xf0)
-       {
-         count = 2;
-         check_unsafe = (c == 0xe0);
-       }
-#if SIZEOF_WCHAR_T == 4
-      else if (c < 0xf8)
-       {
-         count = 3;
-         check_unsafe = (c == 0xe0);
-       }
-      else if (c < 0xfc)
-       {
-         count = 4;
-         check_unsafe = (c == 0xf8);
-       }
-      else if (c < 0xfe)
-       {
-         count = 5;
-         check_unsafe = (c == 0xfc);
-       }
-#endif
-      else
-       goto return_error;
-      if (n <= count)
-       return -1;
-      s++;
-      c = (unsigned char) *s++ ^ 0x80;
-      if (c >= 0x40)
-       goto return_error;
-      if (--count > 0)
-       {
-         if (check_unsafe && ((c >> (6 - count)) == 0))
-           goto return_error;
-         do
-           {
-             c = (unsigned char) *s++ ^ 0x80;
-             if (c >= 0x40)
-               goto return_error;
-           }
-         while (--count > 0);
-       }
-      return s - start;
-    }
-return_error:
-  errno = EILSEQ;
-  return -1;
-}
-  
 /* Count the number of characters in S, counting multi-byte characters as a
    single character. */
 size_t
@@ -170,18 +77,6 @@ mbstrlen (s)
   return nc;
 }
 
-static inline char *
-utf8_mbsmbchar (str)
-     const char *str;
-{
-  register char *s;
-
-  for (s = (char *)str; *s; s++)
-    if ((*s & 0xc0) == 0x80)
-      return s;
-  return (0);
-}
-
 /* Return pointer to first multibyte char in S, or NULL if none. */
 /* XXX - if we know that the locale is UTF-8, we can just check whether or
    not any byte has the eighth bit turned on */
@@ -219,22 +114,6 @@ mbsmbchar (s)
   return 0;
 }
 
-static inline int
-utf_mbsnlen(src, srclen, maxlen)
-     const char *src;
-     size_t srclen;
-     int maxlen;
-{
-  register int sind, count;
-
-  for (sind = count = 0; src[sind] && sind <= maxlen; sind++)
-    {
-      if ((src[sind] & 0xc0) != 0x80)
-       count++;
-    }
-  return (count);
-}
-
 int
 sh_mbsnlen(src, srclen, maxlen)
      const char *src;
index 87ca2173c946e65065bebac5e805f886283afacb..6e5892ee701f41ed92a445b63bb389781e56824e 100644 (file)
@@ -142,9 +142,11 @@ extern char *fmtullong __P((unsigned long long int, int, char *, size_t, int));
    302 / 1000 is log10 (2) rounded up;
    add one for integer division truncation;
    add one more for a minus sign if t is signed.  */
+#ifndef INT_STRLEN_BOUND
 #define INT_STRLEN_BOUND(t) \
   ((sizeof (t) * CHAR_BIT - TYPE_SIGNED (t)) * 302 / 1000 \
      + 1 + TYPE_SIGNED (t))
+#endif
 
 /* conversion flags */
 #define PF_ALTFORM     0x00001         /* # */
diff --git a/lib/sh/utf8.c b/lib/sh/utf8.c
new file mode 100644 (file)
index 0000000..d27fcf5
--- /dev/null
@@ -0,0 +1,147 @@
+/* utf8.c - UTF-8 character handling functions */
+
+/* Copyright (C) 2018 Free Software Foundation, Inc.
+
+   This file is part of GNU Bash, the Bourne Again SHell.
+
+   Bash is free software: you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation, either version 3 of the License, or
+   (at your option) any later version.
+
+   Bash is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with Bash.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#include <config.h>
+
+#ifdef HAVE_STDLIB_H
+#  include <stdlib.h>
+#endif
+
+#include "bashansi.h"
+#include "shmbutil.h"
+
+extern int locale_mb_cur_max;
+extern int locale_utf8locale;
+
+#if defined (HANDLE_MULTIBYTE)
+
+char *
+utf8_mbschr (s, c)
+     const char *s;
+     int c;
+{
+  return strchr (s, c);                /* for now */
+}
+
+int
+utf8_mbscmp (s1, s2)
+     const char *s1, *s2;
+{
+  /* Use the fact that the UTF-8 encoding preserves lexicographic order.  */
+  return strcmp (s1, s2);
+}
+
+char *
+utf8_mbsmbchar (str)
+     const char *str;
+{
+  register char *s;
+
+  for (s = (char *)str; *s; s++)
+    if ((*s & 0xc0) == 0x80)
+      return s;
+  return (0);
+}
+
+int
+utf8_mbsnlen(src, srclen, maxlen)
+     const char *src;
+     size_t srclen;
+     int maxlen;
+{
+  register int sind, count;
+
+  for (sind = count = 0; src[sind] && sind <= maxlen; sind++)
+    {
+      if ((src[sind] & 0xc0) != 0x80)
+       count++;
+    }
+  return (count);
+}
+
+/* Adapted from GNU gnulib */
+int
+utf8_mblen (s, n)
+     const char *s;
+     size_t n;
+{
+  unsigned char c, c1;
+
+  if (s == 0)
+    return (0);        /* no shift states */
+  if (n <= 0)
+    return (-1);
+
+  c = (unsigned char)*s;
+  if (c < 0x80)
+    return (c != 0);
+  if (c >= 0xc2)
+    {
+      c1 = (unsigned char)s[1];
+      if (c < 0xe0)
+       {
+         if (n >= 2 && (s[1] ^ 0x80) < 0x40)
+           return 2;
+       }
+      else if (c < 0xf0)
+       {
+         if (n >= 3
+               && (s[1] ^ 0x80) < 0x40 && (s[2] ^ 0x80) < 0x40
+               && (c >= 0xe1 || c1 >= 0xa0)
+               && (c != 0xed || c1 < 0xa0))
+           return 3;
+       }
+      else if (c < 0xf8)
+       {
+         if (n >= 4
+               && (s[1] ^ 0x80) < 0x40 && (s[2] ^ 0x80) < 0x40
+               && (s[3] ^ 0x80) < 0x40
+               && (c >= 0xf1 || c1 >= 0x90)
+               && (c < 0xf4 || (c == 0xf4 && c1 < 0x90)))
+           return 4;
+       }
+    }
+  /* invalid or incomplete multibyte character */
+  return -1;
+}
+
+/* We can optimize this if we know the locale is UTF-8, but needs to handle
+   malformed byte sequences. */
+size_t
+utf8_mbstrlen(s)
+     const char *s;
+{
+  size_t clen, nc;
+  int mb_cur_max;
+
+  nc = 0;
+  mb_cur_max = MB_CUR_MAX;
+  while (*s && (clen = (size_t)utf8_mblen(s, mb_cur_max)) != 0)
+    {
+      if (MB_INVALIDCH(clen))
+       clen = 1;       /* assume single byte */
+
+      s += clen;
+      nc++;
+    }
+  return nc;
+}
+
+#endif
index c42046bb83d872e1ef77aef7e57a915e65c4eb04..d62547f643771ee6e7f7a4876e2728de2dd19c82 100644 (file)
--- a/locale.c
+++ b/locale.c
@@ -43,7 +43,7 @@
 extern int errno;
 #endif
 
-int locale_utf8locale; /* set but unused for now */
+int locale_utf8locale;
 int locale_mb_cur_max; /* value of MB_CUR_MAX for current locale (LC_CTYPE) */
 int locale_shiftstates;
 
index 472624b92168f93af3e19753f498156e6d49362c..2201a29ac9f927d2b4535d0508fb54d75acf09a6 100644 (file)
--- a/nojobs.c
+++ b/nojobs.c
@@ -1037,6 +1037,12 @@ unfreeze_jobs_list ()
 {
 }
 
+void
+set_jobs_list_frozen (s)
+     int s;
+{
+}
+
 int
 count_all_jobs ()
 {
diff --git a/parse.y b/parse.y
index 6457782babfa553859a094ba9bf5db9662373a60..0eb64130530970b25faa6520eddca4d8dbc15a28 100644 (file)
--- a/parse.y
+++ b/parse.y
@@ -2414,20 +2414,21 @@ shell_getc (remove_quoted_newline)
        {
          char *expansions;
 #  if defined (BANG_HISTORY)
-         int old_hist;
-
          /* If the current delimiter is a single quote, we should not be
             performing history expansion, even if we're on a different
             line from the original single quote. */
-         old_hist = history_expansion_inhibited;
          if (current_delimiter (dstack) == '\'')
-           history_expansion_inhibited = 1;
+           history_quoting_state = '\'';
+         else if (current_delimiter (dstack) == '"')
+           history_quoting_state = '"';
+         else
+           history_quoting_state = 0;
 #  endif
          /* Calling with a third argument of 1 allows remember_on_history to
             determine whether or not the line is saved to the history list */
          expansions = pre_process_line (shell_input_line, 1, 1);
 #  if defined (BANG_HISTORY)
-         history_expansion_inhibited = old_hist;
+         history_quoting_state = 0;
 #  endif
          if (expansions != shell_input_line)
            {
@@ -3167,6 +3168,13 @@ reset_parser ()
   token_to_read = '\n';
 }
 
+void
+reset_readahead_token ()
+{
+  if (token_to_read == '\n')
+    token_to_read = 0;
+}
+
 /* Read the next token.  Command can be READ (normal operation) or
    RESET (to normalize state). */
 static int
index 6efd737164311c3209469c94bcbe40ca07339882..d5b5c0994b18d50824cd97db9fdb5ce6924ba3f8 100644 (file)
@@ -148,7 +148,7 @@ extern int yydebug;
 
 union YYSTYPE
 {
-#line 328 "/usr/homes/chet/src/bash/src/parse.y" /* yacc.c:1909  */
+#line 328 "./parse.y" /* yacc.c:1909  */
 
   WORD_DESC *word;             /* the word that we read. */
   int number;                  /* the number that we read. */
index 7a5f102f5b082e4fa8ef4de853c9c45c27dba940..8f0b4808340f5ba7c253ba3f29cffa54da81dc4e 100644 (file)
@@ -151,7 +151,7 @@ static int progcomp_debug = 0;
 
 int prog_completion_enabled = 1;
 
-#ifdef ALIAS
+#ifdef ALIAS   /* bash-5.0-beta */
 int progcomp_alias = 0;        /* unavailable to user code for now */
 #endif
 
@@ -1688,7 +1688,7 @@ programmable_completions (cmd, word, start, end, foundp)
          /* Find the first word of the alias value and use that as OCMD. We
             don't check the alias value to see whether it begins with a valid
             command name, so this can be fooled. */
-         ind = skip_to_delim (ntxt, 0, "()<>;&| \t\n", SD_NOJMP|SD_COMPLETE); /*)*/
+         ind = skip_to_delim (ntxt, 0, "()<>;&| \t\n", SD_NOJMP|SD_COMPLETE);
          if (ind > 0)
            ncmd = substring (ntxt, 0, ind);
          else
index 2ae8224eb77bb57ce2481ef988ce52c72ecfbfbf..38932ac2f24c4ff9c509bf7dc9cb7221285f79b2 100644 (file)
@@ -107,6 +107,7 @@ typedef struct _list_of_items {
 
 #define EMPTYCMD       "_EmptycmD_"
 #define DEFAULTCMD     "_DefaultCmD_"
+#define INITIALWORD    "_InitialWorD_"
 
 extern HASH_TABLE *prog_completes;
 
index 673066533ee6dfa7c27c389879337c7a8f5ed229..5217a12efba9b256ac47a35ba73ce1d2d465c4ea 100644 (file)
@@ -277,7 +277,7 @@ mostlyclean:
 clean: mostlyclean
 
 distclean: clean
-       rm -f Makefile Makefile.in POTFILES *.mo
+       rm -f Makefile Makefile.in POTFILES *.mo stamp-po
 
 maintainer-clean: distclean
        @echo "This command is intended for maintainers to use;"
index c6953b85bf846fc3beefae4dd9e0ef768ac77770..e0ab2c75158507a1cef9bb2bec0c3556f36ee131 100644 (file)
@@ -8,10 +8,11 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2018-04-27 14:15-0400\n"
+"POT-Creation-Date: 2018-09-07 16:16-0400\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: \n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=CHARSET\n"
 "Content-Transfer-Encoding: 8bit\n"
@@ -21,52 +22,52 @@ msgstr ""
 msgid "bad array subscript"
 msgstr ""
 
-#: arrayfunc.c:373 builtins/declare.def:618 variables.c:2188 variables.c:2214
-#: variables.c:2922
+#: arrayfunc.c:375 builtins/declare.def:638 variables.c:2230 variables.c:2256
+#: variables.c:3072
 #, c-format
 msgid "%s: removing nameref attribute"
 msgstr ""
 
-#: arrayfunc.c:398 builtins/declare.def:831
+#: arrayfunc.c:400 builtins/declare.def:851
 #, c-format
 msgid "%s: cannot convert indexed to associative array"
 msgstr ""
 
-#: arrayfunc.c:582
+#: arrayfunc.c:584
 #, c-format
 msgid "%s: invalid associative array key"
 msgstr ""
 
-#: arrayfunc.c:584
+#: arrayfunc.c:586
 #, c-format
 msgid "%s: cannot assign to non-numeric index"
 msgstr ""
 
-#: arrayfunc.c:629
+#: arrayfunc.c:631
 #, c-format
 msgid "%s: %s: must use subscript when assigning associative array"
 msgstr ""
 
-#: bashhist.c:436
+#: bashhist.c:451
 #, c-format
 msgid "%s: cannot create: %s"
 msgstr ""
 
-#: bashline.c:4111
+#: bashline.c:4120
 msgid "bash_execute_unix_command: cannot find keymap for command"
 msgstr ""
 
-#: bashline.c:4221
+#: bashline.c:4230
 #, c-format
 msgid "%s: first non-whitespace character is not `\"'"
 msgstr ""
 
-#: bashline.c:4250
+#: bashline.c:4259
 #, c-format
 msgid "no closing `%c' in %s"
 msgstr ""
 
-#: bashline.c:4284
+#: bashline.c:4293
 #, c-format
 msgid "%s: missing colon separator"
 msgstr ""
@@ -86,7 +87,7 @@ msgstr ""
 msgid "brace expansion: failed to allocate memory for `%s'"
 msgstr ""
 
-#: builtins/alias.def:131
+#: builtins/alias.def:131 variables.c:1818
 #, c-format
 msgid "`%s': invalid alias name"
 msgstr ""
@@ -144,7 +145,7 @@ msgstr ""
 msgid "HOME not set"
 msgstr ""
 
-#: builtins/cd.def:327 builtins/common.c:161 test.c:889
+#: builtins/cd.def:327 builtins/common.c:161 test.c:891
 msgid "too many arguments"
 msgstr ""
 
@@ -196,7 +197,7 @@ msgstr ""
 msgid "%s: invalid option name"
 msgstr ""
 
-#: builtins/common.c:230 execute_cmd.c:2342 general.c:294 general.c:299
+#: builtins/common.c:230 execute_cmd.c:2358 general.c:294 general.c:299
 #, c-format
 msgid "`%s': not a valid identifier"
 msgstr ""
@@ -299,26 +300,26 @@ msgstr ""
 msgid "help not available in this version"
 msgstr ""
 
-#: builtins/complete.def:278
+#: builtins/complete.def:281
 #, c-format
 msgid "%s: invalid action name"
 msgstr ""
 
-#: builtins/complete.def:452 builtins/complete.def:653
-#: builtins/complete.def:874
+#: builtins/complete.def:474 builtins/complete.def:679
+#: builtins/complete.def:910
 #, c-format
 msgid "%s: no completion specification"
 msgstr ""
 
-#: builtins/complete.def:707
+#: builtins/complete.def:733
 msgid "warning: -F option may not work as you expect"
 msgstr ""
 
-#: builtins/complete.def:709
+#: builtins/complete.def:735
 msgid "warning: -C option may not work as you expect"
 msgstr ""
 
-#: builtins/complete.def:847
+#: builtins/complete.def:883
 msgid "not currently executing completion function"
 msgstr ""
 
@@ -326,47 +327,47 @@ msgstr ""
 msgid "can only be used in a function"
 msgstr ""
 
-#: builtins/declare.def:369 builtins/declare.def:736
+#: builtins/declare.def:369 builtins/declare.def:756
 #, c-format
 msgid "%s: reference variable cannot be an array"
 msgstr ""
 
-#: builtins/declare.def:380 variables.c:3161
+#: builtins/declare.def:380 variables.c:3322
 #, c-format
 msgid "%s: nameref variable self references not allowed"
 msgstr ""
 
-#: builtins/declare.def:385 variables.c:2018 variables.c:3083 variables.c:3095
-#: variables.c:3158
+#: builtins/declare.def:385 variables.c:2060 variables.c:3233 variables.c:3245
+#: variables.c:3319
 #, c-format
 msgid "%s: circular name reference"
 msgstr ""
 
-#: builtins/declare.def:390 builtins/declare.def:742 builtins/declare.def:753
+#: builtins/declare.def:390 builtins/declare.def:762 builtins/declare.def:773
 #, c-format
 msgid "`%s': invalid variable name for name reference"
 msgstr ""
 
-#: builtins/declare.def:500
+#: builtins/declare.def:520
 msgid "cannot use `-f' to make functions"
 msgstr ""
 
-#: builtins/declare.def:512 execute_cmd.c:5797
+#: builtins/declare.def:532 execute_cmd.c:5823
 #, c-format
 msgid "%s: readonly function"
 msgstr ""
 
-#: builtins/declare.def:804
+#: builtins/declare.def:824
 #, c-format
 msgid "%s: quoted compound array assignment deprecated"
 msgstr ""
 
-#: builtins/declare.def:818
+#: builtins/declare.def:838
 #, c-format
 msgid "%s: cannot destroy array variables in this way"
 msgstr ""
 
-#: builtins/declare.def:825 builtins/read.def:784
+#: builtins/declare.def:845 builtins/read.def:785
 #, c-format
 msgid "%s: cannot convert associative to indexed array"
 msgstr ""
@@ -400,7 +401,7 @@ msgstr ""
 msgid "%s: cannot delete: %s"
 msgstr ""
 
-#: builtins/evalfile.c:138 builtins/hash.def:184 execute_cmd.c:5629
+#: builtins/evalfile.c:138 builtins/hash.def:184 execute_cmd.c:5655
 #, c-format
 msgid "%s: is a directory"
 msgstr ""
@@ -728,7 +729,7 @@ msgstr ""
 msgid "%s: invalid timeout specification"
 msgstr ""
 
-#: builtins/read.def:729
+#: builtins/read.def:730
 #, c-format
 msgid "read error: %d: %s"
 msgstr ""
@@ -746,7 +747,7 @@ msgstr ""
 msgid "%s: cannot unset"
 msgstr ""
 
-#: builtins/set.def:902 variables.c:3597
+#: builtins/set.def:902 variables.c:3764
 #, c-format
 msgid "%s: cannot unset: readonly %s"
 msgstr ""
@@ -770,11 +771,11 @@ msgstr ""
 msgid "shift count"
 msgstr ""
 
-#: builtins/shopt.def:301
+#: builtins/shopt.def:312
 msgid "cannot set and unset shell options simultaneously"
 msgstr ""
 
-#: builtins/shopt.def:403
+#: builtins/shopt.def:422
 #, c-format
 msgid "%s: invalid shell option name"
 msgstr ""
@@ -910,7 +911,7 @@ msgstr ""
 msgid "%s: unbound variable"
 msgstr ""
 
-#: eval.c:242
+#: eval.c:245
 #, c-format
 msgid "\atimed out waiting for input: auto-logout\n"
 msgstr ""
@@ -920,66 +921,66 @@ msgstr ""
 msgid "cannot redirect standard input from /dev/null: %s"
 msgstr ""
 
-#: execute_cmd.c:1294
+#: execute_cmd.c:1304
 #, c-format
 msgid "TIMEFORMAT: `%c': invalid format character"
 msgstr ""
 
-#: execute_cmd.c:2330
+#: execute_cmd.c:2346
 #, c-format
 msgid "execute_coproc: coproc [%d:%s] still exists"
 msgstr ""
 
-#: execute_cmd.c:2456
+#: execute_cmd.c:2472
 msgid "pipe error"
 msgstr ""
 
-#: execute_cmd.c:4624
+#: execute_cmd.c:4644
 #, c-format
 msgid "eval: maximum eval nesting level exceeded (%d)"
 msgstr ""
 
-#: execute_cmd.c:4636
+#: execute_cmd.c:4656
 #, c-format
 msgid "%s: maximum source nesting level exceeded (%d)"
 msgstr ""
 
-#: execute_cmd.c:4742
+#: execute_cmd.c:4762
 #, c-format
 msgid "%s: maximum function nesting level exceeded (%d)"
 msgstr ""
 
-#: execute_cmd.c:5285
+#: execute_cmd.c:5311
 #, c-format
 msgid "%s: restricted: cannot specify `/' in command names"
 msgstr ""
 
-#: execute_cmd.c:5383
+#: execute_cmd.c:5409
 #, c-format
 msgid "%s: command not found"
 msgstr ""
 
-#: execute_cmd.c:5627
+#: execute_cmd.c:5653
 #, c-format
 msgid "%s: %s"
 msgstr ""
 
-#: execute_cmd.c:5665
+#: execute_cmd.c:5691
 #, c-format
 msgid "%s: %s: bad interpreter"
 msgstr ""
 
-#: execute_cmd.c:5702
+#: execute_cmd.c:5728
 #, c-format
 msgid "%s: cannot execute binary file: %s"
 msgstr ""
 
-#: execute_cmd.c:5788
+#: execute_cmd.c:5814
 #, c-format
 msgid "`%s': is a special builtin"
 msgstr ""
 
-#: execute_cmd.c:5840
+#: execute_cmd.c:5866
 #, c-format
 msgid "cannot duplicate fd %d to fd %d"
 msgstr ""
@@ -1058,7 +1059,7 @@ msgstr ""
 msgid "getcwd: cannot access parent directories"
 msgstr ""
 
-#: input.c:99 subst.c:5858
+#: input.c:99 subst.c:5867
 #, c-format
 msgid "cannot reset nodelay mode for fd %d"
 msgstr ""
@@ -1222,51 +1223,51 @@ msgstr ""
 msgid "no job control in this shell"
 msgstr ""
 
-#: lib/malloc/malloc.c:306
+#: lib/malloc/malloc.c:331
 #, c-format
 msgid "malloc: failed assertion: %s\n"
 msgstr ""
 
-#: lib/malloc/malloc.c:322
+#: lib/malloc/malloc.c:347
 #, c-format
 msgid ""
 "\r\n"
 "malloc: %s:%d: assertion botched\r\n"
 msgstr ""
 
-#: lib/malloc/malloc.c:323
+#: lib/malloc/malloc.c:348
 msgid "unknown"
 msgstr ""
 
-#: lib/malloc/malloc.c:811
+#: lib/malloc/malloc.c:855
 msgid "malloc: block on free list clobbered"
 msgstr ""
 
-#: lib/malloc/malloc.c:888
+#: lib/malloc/malloc.c:932
 msgid "free: called with already freed block argument"
 msgstr ""
 
-#: lib/malloc/malloc.c:891
+#: lib/malloc/malloc.c:935
 msgid "free: called with unallocated block argument"
 msgstr ""
 
-#: lib/malloc/malloc.c:910
+#: lib/malloc/malloc.c:954
 msgid "free: underflow detected; mh_nbytes out of range"
 msgstr ""
 
-#: lib/malloc/malloc.c:916
+#: lib/malloc/malloc.c:960
 msgid "free: start and end chunk sizes differ"
 msgstr ""
 
-#: lib/malloc/malloc.c:1015
+#: lib/malloc/malloc.c:1070
 msgid "realloc: called with unallocated block argument"
 msgstr ""
 
-#: lib/malloc/malloc.c:1030
+#: lib/malloc/malloc.c:1085
 msgid "realloc: underflow detected; mh_nbytes out of range"
 msgstr ""
 
-#: lib/malloc/malloc.c:1036
+#: lib/malloc/malloc.c:1091
 msgid "realloc: start and end chunk sizes differ"
 msgstr ""
 
@@ -1376,103 +1377,103 @@ msgid ""
 "truncated"
 msgstr ""
 
-#: parse.y:2772
+#: parse.y:2773
 msgid "maximum here-document count exceeded"
 msgstr ""
 
-#: parse.y:3511 parse.y:3881
+#: parse.y:3519 parse.y:3889
 #, c-format
 msgid "unexpected EOF while looking for matching `%c'"
 msgstr ""
 
-#: parse.y:4581
+#: parse.y:4589
 msgid "unexpected EOF while looking for `]]'"
 msgstr ""
 
-#: parse.y:4586
+#: parse.y:4594
 #, c-format
 msgid "syntax error in conditional expression: unexpected token `%s'"
 msgstr ""
 
-#: parse.y:4590
+#: parse.y:4598
 msgid "syntax error in conditional expression"
 msgstr ""
 
-#: parse.y:4668
+#: parse.y:4676
 #, c-format
 msgid "unexpected token `%s', expected `)'"
 msgstr ""
 
-#: parse.y:4672
+#: parse.y:4680
 msgid "expected `)'"
 msgstr ""
 
-#: parse.y:4700
+#: parse.y:4708
 #, c-format
 msgid "unexpected argument `%s' to conditional unary operator"
 msgstr ""
 
-#: parse.y:4704
+#: parse.y:4712
 msgid "unexpected argument to conditional unary operator"
 msgstr ""
 
-#: parse.y:4750
+#: parse.y:4758
 #, c-format
 msgid "unexpected token `%s', conditional binary operator expected"
 msgstr ""
 
-#: parse.y:4754
+#: parse.y:4762
 msgid "conditional binary operator expected"
 msgstr ""
 
-#: parse.y:4776
+#: parse.y:4784
 #, c-format
 msgid "unexpected argument `%s' to conditional binary operator"
 msgstr ""
 
-#: parse.y:4780
+#: parse.y:4788
 msgid "unexpected argument to conditional binary operator"
 msgstr ""
 
-#: parse.y:4791
+#: parse.y:4799
 #, c-format
 msgid "unexpected token `%c' in conditional command"
 msgstr ""
 
-#: parse.y:4794
+#: parse.y:4802
 #, c-format
 msgid "unexpected token `%s' in conditional command"
 msgstr ""
 
-#: parse.y:4798
+#: parse.y:4806
 #, c-format
 msgid "unexpected token %d in conditional command"
 msgstr ""
 
-#: parse.y:6220
+#: parse.y:6228
 #, c-format
 msgid "syntax error near unexpected token `%s'"
 msgstr ""
 
-#: parse.y:6238
+#: parse.y:6246
 #, c-format
 msgid "syntax error near `%s'"
 msgstr ""
 
-#: parse.y:6248
+#: parse.y:6256
 msgid "syntax error: unexpected end of file"
 msgstr ""
 
-#: parse.y:6248
+#: parse.y:6256
 msgid "syntax error"
 msgstr ""
 
-#: parse.y:6310
+#: parse.y:6318
 #, c-format
 msgid "Use \"%s\" to leave the shell.\n"
 msgstr ""
 
-#: parse.y:6472
+#: parse.y:6480
 msgid "unexpected EOF while looking for matching `)'"
 msgstr ""
 
@@ -1548,7 +1549,7 @@ msgstr ""
 msgid "/dev/(tcp|udp)/host/port not supported without networking"
 msgstr ""
 
-#: redir.c:870 redir.c:985 redir.c:1046 redir.c:1211
+#: redir.c:870 redir.c:985 redir.c:1046 redir.c:1214
 msgid "redirection error: cannot duplicate fd"
 msgstr ""
 
@@ -1646,7 +1647,7 @@ msgstr ""
 msgid "General help using GNU software: <http://www.gnu.org/gethelp/>\n"
 msgstr ""
 
-#: sig.c:695
+#: sig.c:727
 #, c-format
 msgid "sigprocmask: %d: invalid operation"
 msgstr ""
@@ -1820,107 +1821,107 @@ msgstr ""
 msgid "Unknown Signal #%d"
 msgstr ""
 
-#: subst.c:1450 subst.c:1641
+#: subst.c:1453 subst.c:1644
 #, c-format
 msgid "bad substitution: no closing `%s' in %s"
 msgstr ""
 
-#: subst.c:3209
+#: subst.c:3216
 #, c-format
 msgid "%s: cannot assign list to array member"
 msgstr ""
 
-#: subst.c:5734 subst.c:5750
+#: subst.c:5743 subst.c:5759
 msgid "cannot make pipe for process substitution"
 msgstr ""
 
-#: subst.c:5796
+#: subst.c:5805
 msgid "cannot make child for process substitution"
 msgstr ""
 
-#: subst.c:5848
+#: subst.c:5857
 #, c-format
 msgid "cannot open named pipe %s for reading"
 msgstr ""
 
-#: subst.c:5850
+#: subst.c:5859
 #, c-format
 msgid "cannot open named pipe %s for writing"
 msgstr ""
 
-#: subst.c:5873
+#: subst.c:5882
 #, c-format
 msgid "cannot duplicate named pipe %s as fd %d"
 msgstr ""
 
-#: subst.c:5990
+#: subst.c:5999
 msgid "command substitution: ignored null byte in input"
 msgstr ""
 
-#: subst.c:6121
+#: subst.c:6127
 msgid "cannot make pipe for command substitution"
 msgstr ""
 
-#: subst.c:6164
+#: subst.c:6170
 msgid "cannot make child for command substitution"
 msgstr ""
 
-#: subst.c:6190
+#: subst.c:6196
 msgid "command_substitute: cannot duplicate pipe as fd 1"
 msgstr ""
 
-#: subst.c:6641 subst.c:9483
+#: subst.c:6647 subst.c:9515
 #, c-format
 msgid "%s: invalid variable name for name reference"
 msgstr ""
 
-#: subst.c:6737 subst.c:6755 subst.c:6903
+#: subst.c:6743 subst.c:6761 subst.c:6915
 #, c-format
 msgid "%s: invalid indirect expansion"
 msgstr ""
 
-#: subst.c:6771 subst.c:6910
+#: subst.c:6777 subst.c:6922
 #, c-format
 msgid "%s: invalid variable name"
 msgstr ""
 
-#: subst.c:6962
+#: subst.c:6974
 #, c-format
 msgid "%s: parameter not set"
 msgstr ""
 
-#: subst.c:6964
+#: subst.c:6976
 #, c-format
 msgid "%s: parameter null or not set"
 msgstr ""
 
-#: subst.c:7201 subst.c:7216
+#: subst.c:7213 subst.c:7228
 #, c-format
 msgid "%s: substring expression < 0"
 msgstr ""
 
-#: subst.c:8839 subst.c:8860
+#: subst.c:8871 subst.c:8892
 #, c-format
 msgid "%s: bad substitution"
 msgstr ""
 
-#: subst.c:8948
+#: subst.c:8980
 #, c-format
 msgid "$%s: cannot assign in this way"
 msgstr ""
 
-#: subst.c:9346
+#: subst.c:9378
 msgid ""
 "future versions of the shell will force evaluation as an arithmetic "
 "substitution"
 msgstr ""
 
-#: subst.c:9903
+#: subst.c:9937
 #, c-format
 msgid "bad substitution: no closing \"`\" in %s"
 msgstr ""
 
-#: subst.c:10907
+#: subst.c:10965
 #, c-format
 msgid "no match: %s"
 msgstr ""
@@ -1943,17 +1944,17 @@ msgstr ""
 msgid "`)' expected, found %s"
 msgstr ""
 
-#: test.c:282 test.c:748 test.c:751
+#: test.c:282 test.c:750 test.c:753
 #, c-format
 msgid "%s: unary operator expected"
 msgstr ""
 
-#: test.c:469 test.c:791
+#: test.c:469 test.c:793
 #, c-format
 msgid "%s: binary operator expected"
 msgstr ""
 
-#: test.c:873
+#: test.c:875
 msgid "missing `]'"
 msgstr ""
 
@@ -1977,78 +1978,78 @@ msgstr ""
 msgid "trap_handler: bad signal %d"
 msgstr ""
 
-#: variables.c:399
+#: variables.c:408
 #, c-format
 msgid "error importing function definition for `%s'"
 msgstr ""
 
-#: variables.c:801
+#: variables.c:817
 #, c-format
 msgid "shell level (%d) too high, resetting to 1"
 msgstr ""
 
-#: variables.c:2512
+#: variables.c:2620
 msgid "make_local_variable: no function context at current scope"
 msgstr ""
 
-#: variables.c:2531
+#: variables.c:2639
 #, c-format
 msgid "%s: variable may not be assigned value"
 msgstr ""
 
-#: variables.c:3246
+#: variables.c:3407
 #, c-format
 msgid "%s: assigning integer to name reference"
 msgstr ""
 
-#: variables.c:4149
+#: variables.c:4316
 msgid "all_local_variables: no function context at current scope"
 msgstr ""
 
-#: variables.c:4437
+#: variables.c:4652
 #, c-format
 msgid "%s has null exportstr"
 msgstr ""
 
-#: variables.c:4442 variables.c:4451
+#: variables.c:4657 variables.c:4666
 #, c-format
 msgid "invalid character %d in exportstr for %s"
 msgstr ""
 
-#: variables.c:4457
+#: variables.c:4672
 #, c-format
 msgid "no `=' in exportstr for %s"
 msgstr ""
 
-#: variables.c:4911
+#: variables.c:5167
 msgid "pop_var_context: head of shell_variables not a function context"
 msgstr ""
 
-#: variables.c:4924
+#: variables.c:5180
 msgid "pop_var_context: no global_variables context"
 msgstr ""
 
-#: variables.c:4999
+#: variables.c:5260
 msgid "pop_scope: head of shell_variables not a temporary environment scope"
 msgstr ""
 
-#: variables.c:5862
+#: variables.c:6196
 #, c-format
 msgid "%s: %s: cannot open as FILE"
 msgstr ""
 
-#: variables.c:5867
+#: variables.c:6201
 #, c-format
 msgid "%s: %s: invalid value for trace file descriptor"
 msgstr ""
 
-#: variables.c:5912
+#: variables.c:6246
 #, c-format
 msgid "%s: %s: compatibility value out of range"
 msgstr ""
 
 #: version.c:46 version2.c:46
-msgid "Copyright (C) 2016 Free Software Foundation, Inc."
+msgid "Copyright (C) 2018 Free Software Foundation, Inc."
 msgstr ""
 
 #: version.c:47 version2.c:47
@@ -2378,7 +2379,7 @@ msgstr ""
 
 #: builtins.c:231
 msgid ""
-"complete [-abcdefgjksuv] [-pr] [-DE] [-o option] [-A action] [-G globpat] [-"
+"complete [-abcdefgjksuv] [-pr] [-DEI] [-o option] [-A action] [-G globpat] [-"
 "W wordlist]  [-F function] [-C command] [-X filterpat] [-P prefix] [-S "
 "suffix] [name ...]"
 msgstr ""
@@ -2390,7 +2391,7 @@ msgid ""
 msgstr ""
 
 #: builtins.c:239
-msgid "compopt [-o|+o option] [-DE] [name ...]"
+msgid "compopt [-o|+o option] [-DEI] [name ...]"
 msgstr ""
 
 #: builtins.c:242
@@ -2510,7 +2511,7 @@ msgid ""
 "    \n"
 "    Exit Status:\n"
 "    Returns the exit status of SHELL-BUILTIN, or false if SHELL-BUILTIN is\n"
-"    not a shell builtin.."
+"    not a shell builtin."
 msgstr ""
 
 #: builtins.c:369
@@ -4031,8 +4032,8 @@ msgid ""
 "successive\n"
 "    argument.\n"
 "    \n"
-"    In addition to the standard format specifications described in printf"
-"(1),\n"
+"    In addition to the standard format specifications described in "
+"printf(1),\n"
 "    printf interprets:\n"
 "    \n"
 "      %b\texpand backslash escape sequences in the corresponding argument\n"
@@ -4071,16 +4072,20 @@ msgid ""
 "    \t\twithout any specific completion defined\n"
 "      -E\tapply the completions and actions to \"empty\" commands --\n"
 "    \t\tcompletion attempted on a blank line\n"
+"      -I\tapply the completions and actions to the intial (usually the\n"
+"    \t\tcommand) word\n"
 "    \n"
 "    When completion is attempted, the actions are applied in the order the\n"
-"    uppercase-letter options are listed above.  The -D option takes\n"
-"    precedence over -E.\n"
+"    uppercase-letter options are listed above.  If multiple options are "
+"supplied,\n"
+"    the -D option takes precedence over -E, and both take precedence over -"
+"I.\n"
 "    \n"
 "    Exit Status:\n"
 "    Returns success unless an invalid option is supplied or an error occurs."
 msgstr ""
 
-#: builtins.c:1985
+#: builtins.c:1987
 msgid ""
 "Display possible completions depending on the options.\n"
 "    \n"
@@ -4093,7 +4098,7 @@ msgid ""
 "    Returns success unless an invalid option is supplied or an error occurs."
 msgstr ""
 
-#: builtins.c:2000
+#: builtins.c:2002
 msgid ""
 "Modify or display completion options.\n"
 "    \n"
@@ -4108,6 +4113,7 @@ msgid ""
 "    \t-o option\tSet completion option OPTION for each NAME\n"
 "    \t-D\t\tChange options for the \"default\" command completion\n"
 "    \t-E\t\tChange options for the \"empty\" command completion\n"
+"    \t-I\t\tChange options for completion on the initial word\n"
 "    \n"
 "    Using `+o' instead of `-o' turns off the specified option.\n"
 "    \n"
@@ -4124,7 +4130,7 @@ msgid ""
 "    have a completion specification defined."
 msgstr ""
 
-#: builtins.c:2030
+#: builtins.c:2033
 msgid ""
 "Read lines from the standard input into an indexed array variable.\n"
 "    \n"
@@ -4166,7 +4172,7 @@ msgid ""
 "    not an indexed array."
 msgstr ""
 
-#: builtins.c:2066
+#: builtins.c:2069
 msgid ""
 "Read lines from a file into an array variable.\n"
 "    \n"
index b992002764938ee783f10e1c81e733dbde34f045..752238ec83e5e448b5c680c02ffde911606c2912 100644 (file)
--- a/po/de.po
+++ b/po/de.po
 # German language file for GNU Bash 4.4
 # Copyright (C) 2011 Free Software Foundation, Inc.
 # This file is distributed under the same license as the bash package.
-# Nils Naumann <nau@gmx.net>, 1996-2017.
+# Nils Naumann <nau@gmx.net>, 1996-2018.
 msgid ""
 msgstr ""
 "Project-Id-Version: bash 4.4\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2018-04-27 14:15-0400\n"
-"PO-Revision-Date: 2017-06-11 12:12+0200\n"
+"POT-Creation-Date: 2016-09-10 12:42-0400\n"
+"PO-Revision-Date: 2018-07-22 00:02+0200\n"
 "Last-Translator: Nils Naumann <nau@gmx.net>\n"
 "Language-Team: German <translation-team-de@lists.sourceforge.net>\n"
+"Language: de\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8-bit\n"
-"Language: de\n"
 "X-Bugs: Report translation errors to the Language-Team address.\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
-#: arrayfunc.c:58
+#: arrayfunc.c:54
 msgid "bad array subscript"
 msgstr "Falscher Feldbezeichner."
 
-#: arrayfunc.c:373 builtins/declare.def:618 variables.c:2188 variables.c:2214
-#: variables.c:2922
+#: arrayfunc.c:368 builtins/declare.def:574 variables.c:2092 variables.c:2118
+#: variables.c:2730
 #, c-format
 msgid "%s: removing nameref attribute"
 msgstr "%s: Entferne das Nameref Attribut."
 
-#: arrayfunc.c:398 builtins/declare.def:831
+#: arrayfunc.c:393 builtins/declare.def:780
 #, c-format
 msgid "%s: cannot convert indexed to associative array"
 msgstr "%s: Kann nicht das indizierte in ein assoziatives Array umwandeln."
 
-#: arrayfunc.c:582
+#: arrayfunc.c:578
 #, c-format
 msgid "%s: invalid associative array key"
 msgstr "%s: Ungültiger Schlüssel für das assoziative Array."
 
-#: arrayfunc.c:584
+#: arrayfunc.c:580
 #, c-format
 msgid "%s: cannot assign to non-numeric index"
 msgstr "%s: Kann nicht auf einen nicht-numerischen Index zuweisen."
 
-#: arrayfunc.c:629
+#: arrayfunc.c:625
 #, c-format
 msgid "%s: %s: must use subscript when assigning associative array"
-msgstr ""
-"%s: %s: Ein Feldbezeicher wird zum Zuweisen eines assoziativen Arrays "
-"benötigt."
+msgstr "%s: %s: Ein Feldbezeicher wird zum Zuweisen eines assoziativen Arrays benötigt."
 
-#: bashhist.c:436
+#: bashhist.c:421
 #, c-format
 msgid "%s: cannot create: %s"
 msgstr "%s: Kann die Datei %s nicht erzeugen."
 
-#: bashline.c:4111
+#: bashline.c:4091
 msgid "bash_execute_unix_command: cannot find keymap for command"
-msgstr ""
-"bash_execute_unix_command: Kann nicht die Tastenzuordnung für das Kommando "
-"finden."
+msgstr "bash_execute_unix_command: Kann nicht die Tastenzuordnung für das Kommando finden."
 
-#: bashline.c:4221
+#: bashline.c:4189
 #, c-format
 msgid "%s: first non-whitespace character is not `\"'"
 msgstr " %s: Das erste Zeichen ist nicht `\\'."
 
-#: bashline.c:4250
+#: bashline.c:4218
 #, c-format
 msgid "no closing `%c' in %s"
 msgstr "fehlende schließende `%c' in %s."
 
-#: bashline.c:4284
+#: bashline.c:4252
 #, c-format
 msgid "%s: missing colon separator"
 msgstr "%s: Fehlender Doppelpunkt."
 
-#: braces.c:331
+#: braces.c:329
 #, c-format
 msgid "brace expansion: cannot allocate memory for %s"
 msgstr "Klammererweiterung: Konnte keinen Speicher für %s zuweisen."
 
-#: braces.c:429
-#, fuzzy, c-format
-msgid "brace expansion: failed to allocate memory for %u elements"
+#: braces.c:427
+#, c-format
+msgid "brace expansion: failed to allocate memory for %d elements"
 msgstr "Klammererweiterung: Konnte für %d Elemente keinen Speicher zuweisen."
 
-#: braces.c:473
+#: braces.c:471
 #, c-format
 msgid "brace expansion: failed to allocate memory for `%s'"
 msgstr "Klammererweiterung: Konnte keinen Speicher für `%s' zuweisen."
 
-#: builtins/alias.def:131
+#: builtins/alias.def:133
 #, c-format
 msgid "`%s': invalid alias name"
 msgstr "`%s': Ungültiger Alias Name."
 
-#: builtins/bind.def:122 builtins/bind.def:125
+#: builtins/bind.def:123 builtins/bind.def:126
 msgid "line editing not enabled"
 msgstr "Zeileneditierung ist nicht aktiviert."
 
-#: builtins/bind.def:212
+#: builtins/bind.def:213
 #, c-format
 msgid "`%s': invalid keymap name"
 msgstr "`%s': Ungültiger KEYMAP-Name."
 
-#: builtins/bind.def:252
+#: builtins/bind.def:253
 #, c-format
 msgid "%s: cannot read: %s"
 msgstr "%s: Nicht lesbar: %s"
 
-#: builtins/bind.def:304 builtins/bind.def:334
+#: builtins/bind.def:270
+#, c-format
+msgid "`%s': cannot unbind"
+msgstr "`%s': Bindung kann nicht gelöst werden."
+
+#: builtins/bind.def:308 builtins/bind.def:338
 #, c-format
 msgid "`%s': unknown function name"
 msgstr "%s: Unbekannter Funktionsname."
 
-#: builtins/bind.def:312
+#: builtins/bind.def:316
 #, c-format
 msgid "%s is not bound to any keys.\n"
 msgstr "%s ist keiner Taste zugeordnet.\n"
 
-#: builtins/bind.def:316
+#: builtins/bind.def:320
 #, c-format
 msgid "%s can be invoked via "
 msgstr "%s kann aufgerufen werden durch "
 
-#: builtins/bind.def:353 builtins/bind.def:368
-#, c-format
-msgid "`%s': cannot unbind"
-msgstr "`%s': Bindung kann nicht gelöst werden."
-
-#: builtins/break.def:77 builtins/break.def:119
+#: builtins/break.def:79 builtins/break.def:121
 msgid "loop count"
 msgstr "Schleifen Zähler"
 
-#: builtins/break.def:139
+#: builtins/break.def:141
 msgid "only meaningful in a `for', `while', or `until' loop"
 msgstr "nur in einer `for', `while' oder `until' Schleife sinnvoll."
 
@@ -145,163 +141,163 @@ msgid ""
 "    Without EXPR, returns "
 msgstr ""
 
-#: builtins/cd.def:319
+#: builtins/cd.def:321
 msgid "HOME not set"
 msgstr "HOME ist nicht zugewiesen."
 
-#: builtins/cd.def:327 builtins/common.c:161 test.c:889
+#: builtins/cd.def:329 builtins/common.c:167 test.c:885
 msgid "too many arguments"
 msgstr "Zu viele Argumente."
 
-#: builtins/cd.def:334
+#: builtins/cd.def:336
 msgid "null directory"
 msgstr "NULL Verzeichnis"
 
-#: builtins/cd.def:345
+#: builtins/cd.def:347
 msgid "OLDPWD not set"
 msgstr "OLDPWD ist nicht zugewiesen."
 
 # Debug Ausgabe
-#: builtins/common.c:96
+#: builtins/common.c:102
 #, c-format
 msgid "line %d: "
 msgstr "Zeile %d: "
 
-#: builtins/common.c:134 error.c:264
+#: builtins/common.c:140 error.c:265
 #, c-format
 msgid "warning: "
 msgstr "Warnung: "
 
-#: builtins/common.c:148
+#: builtins/common.c:154
 #, c-format
 msgid "%s: usage: "
 msgstr "%s: Aufruf: "
 
-#: builtins/common.c:193 shell.c:510 shell.c:838
+#: builtins/common.c:199 shell.c:514 shell.c:825
 #, c-format
 msgid "%s: option requires an argument"
 msgstr "%s: Die Option erfordert ein Argument."
 
-#: builtins/common.c:200
+#: builtins/common.c:206
 #, c-format
 msgid "%s: numeric argument required"
 msgstr "%s: Ein numerischer Parameter ist erforderlich."
 
-#: builtins/common.c:207
+#: builtins/common.c:213
 #, c-format
 msgid "%s: not found"
 msgstr "%s: Nicht gefunden."
 
-#: builtins/common.c:216 shell.c:851
+#: builtins/common.c:222 shell.c:838
 #, c-format
 msgid "%s: invalid option"
 msgstr "%s: Ungültige Option"
 
-#: builtins/common.c:223
+#: builtins/common.c:229
 #, c-format
 msgid "%s: invalid option name"
 msgstr "%s: Ungültiger Optionsname."
 
-#: builtins/common.c:230 execute_cmd.c:2342 general.c:294 general.c:299
+#: builtins/common.c:236 general.c:293 general.c:298
 #, c-format
 msgid "`%s': not a valid identifier"
 msgstr "`%s': Ist kein gültiger Bezeichner."
 
-#: builtins/common.c:240
+#: builtins/common.c:246
 msgid "invalid octal number"
 msgstr "Ungültige Oktalzahl."
 
-#: builtins/common.c:242
+#: builtins/common.c:248
 msgid "invalid hex number"
 msgstr "Ungültige hexadezimale Zahl."
 
-#: builtins/common.c:244 expr.c:1538
+#: builtins/common.c:250 expr.c:1473
 msgid "invalid number"
 msgstr "Ungültige Zahl."
 
-#: builtins/common.c:252
+#: builtins/common.c:258
 #, c-format
 msgid "%s: invalid signal specification"
 msgstr "%s: Ungültige Signalbezeichnung."
 
-#: builtins/common.c:259
+#: builtins/common.c:265
 #, c-format
 msgid "`%s': not a pid or valid job spec"
 msgstr "`%s': Ist keine gültige Prozess- oder Jobbezeichnung."
 
-#: builtins/common.c:266 error.c:510
+#: builtins/common.c:272 error.c:511
 #, c-format
 msgid "%s: readonly variable"
 msgstr "%s: Schreibgeschützte Variable."
 
-#: builtins/common.c:274
+#: builtins/common.c:280
 #, c-format
 msgid "%s: %s out of range"
 msgstr "%s: %s ist außerhalb des Gültigkeitsbereiches."
 
-#: builtins/common.c:274 builtins/common.c:276
+#: builtins/common.c:280 builtins/common.c:282
 msgid "argument"
 msgstr "Argument"
 
-#: builtins/common.c:276
+#: builtins/common.c:282
 #, c-format
 msgid "%s out of range"
 msgstr "%s ist außerhalb des Gültigkeitsbereiches."
 
-#: builtins/common.c:284
+#: builtins/common.c:290
 #, c-format
 msgid "%s: no such job"
 msgstr "%s: Kein solcher Job."
 
-#: builtins/common.c:292
+#: builtins/common.c:298
 #, c-format
 msgid "%s: no job control"
 msgstr "%s: Keine Job Steuerung in dieser Shell."
 
-#: builtins/common.c:294
+#: builtins/common.c:300
 msgid "no job control"
 msgstr "Keine Job Steuerung in dieser Shell."
 
-#: builtins/common.c:304
+#: builtins/common.c:310
 #, c-format
 msgid "%s: restricted"
 msgstr "%s: gesperrt"
 
-#: builtins/common.c:306
+#: builtins/common.c:312
 msgid "restricted"
 msgstr "gesperrt"
 
-#: builtins/common.c:314
+#: builtins/common.c:320
 #, c-format
 msgid "%s: not a shell builtin"
 msgstr "%s: Ist kein Shell Kommando."
 
-#: builtins/common.c:323
+#: builtins/common.c:329
 #, c-format
 msgid "write error: %s"
 msgstr "Schreibfehler: %s."
 
-#: builtins/common.c:331
+#: builtins/common.c:337
 #, c-format
 msgid "error setting terminal attributes: %s"
 msgstr "Fehler beim Setzen der Terminalattribute: %s"
 
-#: builtins/common.c:333
+#: builtins/common.c:339
 #, c-format
 msgid "error getting terminal attributes: %s"
 msgstr "Fehler beim Ermitteln der Terminalattribute: %s"
 
-#: builtins/common.c:579
+#: builtins/common.c:585
 #, c-format
 msgid "%s: error retrieving current directory: %s: %s\n"
 msgstr "%s: Kann das aktuelle Verzeichnis nicht wiederfinden: %s: %s\n"
 
-#: builtins/common.c:645 builtins/common.c:647
+#: builtins/common.c:651 builtins/common.c:653
 #, c-format
 msgid "%s: ambiguous job spec"
 msgstr "%s: Mehrdeutige Job Bezeichnung."
 
-#: builtins/common.c:908
+#: builtins/common.c:918
 msgid "help not available in this version"
 msgstr "In dieser Version ist keine Hilfe verfügbar."
 
@@ -310,73 +306,72 @@ msgstr "In dieser Version ist keine Hilfe verfügbar."
 msgid "%s: invalid action name"
 msgstr "%s: Ungültige Methode."
 
-#: builtins/complete.def:452 builtins/complete.def:653
-#: builtins/complete.def:874
+#: builtins/complete.def:452 builtins/complete.def:647
+#: builtins/complete.def:858
 #, c-format
 msgid "%s: no completion specification"
 msgstr "%s: Keine Komplettierung angegeben."
 
-#: builtins/complete.def:707
+#: builtins/complete.def:699
 msgid "warning: -F option may not work as you expect"
 msgstr "Warnung: Die -F Option könnte unerwartete Ergebnisse liefern."
 
-#: builtins/complete.def:709
+#: builtins/complete.def:701
 msgid "warning: -C option may not work as you expect"
 msgstr "Warnung: Die -C Option könnte unerwartete Ergebnisse liefern."
 
-#: builtins/complete.def:847
+#: builtins/complete.def:831
 msgid "not currently executing completion function"
 msgstr "Gegenwärtig wird keine Komplettierungsfunktion ausgeführt."
 
-#: builtins/declare.def:132
+#: builtins/declare.def:127
 msgid "can only be used in a function"
 msgstr "kann nur innerhalb einer Funktion benutzt werden."
 
-#: builtins/declare.def:369 builtins/declare.def:736
+#: builtins/declare.def:332 builtins/declare.def:685
 #, c-format
 msgid "%s: reference variable cannot be an array"
 msgstr ""
 
-#: builtins/declare.def:380 variables.c:3161
+#: builtins/declare.def:343 variables.c:2959
 #, c-format
 msgid "%s: nameref variable self references not allowed"
 msgstr ""
 
-#: builtins/declare.def:385 variables.c:2018 variables.c:3083 variables.c:3095
-#: variables.c:3158
+#: builtins/declare.def:348 variables.c:1928 variables.c:2877 variables.c:2889
+#: variables.c:2956
 #, c-format
 msgid "%s: circular name reference"
 msgstr "%s: Zirkularbezug auf indirekte Variable."
 
-#: builtins/declare.def:390 builtins/declare.def:742 builtins/declare.def:753
+#: builtins/declare.def:353 builtins/declare.def:691 builtins/declare.def:702
 #, c-format
 msgid "`%s': invalid variable name for name reference"
 msgstr "`%s': Ungültiger Name für indirekte Variablenreferenz."
 
-#: builtins/declare.def:500
+#: builtins/declare.def:463
 msgid "cannot use `-f' to make functions"
 msgstr "Mit `-f' können keine Funktionen erzeugt werden."
 
-#: builtins/declare.def:512 execute_cmd.c:5797
+#: builtins/declare.def:475 execute_cmd.c:5632
 #, c-format
 msgid "%s: readonly function"
 msgstr "%s: Schreibgeschützte Funktion."
 
-#: builtins/declare.def:804
+#: builtins/declare.def:753
 #, c-format
 msgid "%s: quoted compound array assignment deprecated"
 msgstr ""
 
-#: builtins/declare.def:818
+#: builtins/declare.def:767
 #, c-format
 msgid "%s: cannot destroy array variables in this way"
 msgstr "%s: Kann Feldvariablen nicht auf diese Art löschen."
 
-#: builtins/declare.def:825 builtins/read.def:784
+#: builtins/declare.def:774 builtins/read.def:751
 #, c-format
 msgid "%s: cannot convert associative to indexed array"
-msgstr ""
-"%s: Konvertieren von assoziativen in indizierte Arrays ist nicht möglich."
+msgstr "%s: Konvertieren von assoziativen in indizierte Arrays ist nicht möglich."
 
 #: builtins/enable.def:143 builtins/enable.def:151
 msgid "dynamic loading not available"
@@ -407,68 +402,68 @@ msgstr "%s: Ist nicht dynamisch geladen."
 msgid "%s: cannot delete: %s"
 msgstr "%s: Kann nicht löschen: %s"
 
-#: builtins/evalfile.c:138 builtins/hash.def:184 execute_cmd.c:5629
+#: builtins/evalfile.c:144 builtins/hash.def:172 execute_cmd.c:5472
 #, c-format
 msgid "%s: is a directory"
 msgstr "%s: ist ein Verzeichnis."
 
-#: builtins/evalfile.c:144
+#: builtins/evalfile.c:150
 #, c-format
 msgid "%s: not a regular file"
 msgstr "%s: Ist keine normale Datei."
 
-#: builtins/evalfile.c:153
+#: builtins/evalfile.c:159
 #, c-format
 msgid "%s: file is too large"
 msgstr "%s: Die Datei ist zu groß."
 
-#: builtins/evalfile.c:188 builtins/evalfile.c:206 shell.c:1623
+#: builtins/evalfile.c:194 builtins/evalfile.c:212 shell.c:1578
 #, c-format
 msgid "%s: cannot execute binary file"
 msgstr "%s: Kann die Datei nicht ausführen."
 
-#: builtins/exec.def:155 builtins/exec.def:157 builtins/exec.def:237
+#: builtins/exec.def:156 builtins/exec.def:158 builtins/exec.def:235
 #, c-format
 msgid "%s: cannot execute: %s"
 msgstr "%s: Kann nicht ausführen: %s"
 
-#: builtins/exit.def:64
+#: builtins/exit.def:67
 #, c-format
 msgid "logout\n"
 msgstr "Abgemeldet\n"
 
-#: builtins/exit.def:89
+#: builtins/exit.def:92
 msgid "not login shell: use `exit'"
 msgstr "Keine Login Shell: Mit `exit' abmelden!"
 
-#: builtins/exit.def:121
+#: builtins/exit.def:124
 #, c-format
 msgid "There are stopped jobs.\n"
 msgstr "Es gibt noch angehaltene Prozesse.\n"
 
-#: builtins/exit.def:123
+#: builtins/exit.def:126
 #, c-format
 msgid "There are running jobs.\n"
 msgstr "Es gibt noch laufende Prozesse.\n"
 
-#: builtins/fc.def:265
+#: builtins/fc.def:269
 msgid "no command found"
 msgstr "Kein Kommando gefunden."
 
-#: builtins/fc.def:323 builtins/fc.def:372
+#: builtins/fc.def:327 builtins/fc.def:376
 msgid "history specification"
 msgstr ""
 
-#: builtins/fc.def:393
+#: builtins/fc.def:397
 #, c-format
 msgid "%s: cannot open temp file: %s"
 msgstr "%s: Kann die tempräre Datei nicht öffnen: %s"
 
-#: builtins/fg_bg.def:152 builtins/jobs.def:284
+#: builtins/fg_bg.def:153 builtins/jobs.def:284
 msgid "current"
 msgstr "gegenwärtig"
 
-#: builtins/fg_bg.def:161
+#: builtins/fg_bg.def:162
 #, c-format
 msgid "job %d started without job control"
 msgstr "Job %d wurde ohne Jobsteuerung gestartet."
@@ -483,40 +478,38 @@ msgstr "%s: Ungültige Option -- %c\n"
 msgid "%s: option requires an argument -- %c\n"
 msgstr "%s: Diese Option erfordert ein Argument -- %c\n"
 
-#: builtins/hash.def:91
+#: builtins/hash.def:92
 msgid "hashing disabled"
 msgstr "Hashing deaktiviert."
 
-#: builtins/hash.def:138
+#: builtins/hash.def:139
 #, c-format
 msgid "%s: hash table empty\n"
 msgstr "%s: Die Hashtabelle ist leer.\n"
 
-#: builtins/hash.def:266
+#: builtins/hash.def:254
 #, c-format
 msgid "hits\tcommand\n"
 msgstr "Treffer\tBefehl\n"
 
-#: builtins/help.def:133
+#: builtins/help.def:135
+#, c-format
 msgid "Shell commands matching keyword `"
 msgid_plural "Shell commands matching keywords `"
 msgstr[0] "Shell Kommandos auf die das Schlüsselwort zutrifft `"
 msgstr[1] "Shell Kommandos auf die die Schlüsselwörter zutreffen `"
 
-#: builtins/help.def:185
+#: builtins/help.def:187
 #, c-format
-msgid ""
-"no help topics match `%s'.  Try `help help' or `man -k %s' or `info %s'."
-msgstr ""
-"Auf `%s' trifft kein Hilfethema zu.  Probieren Sie `help help', `man -k %s' "
-"oder `info %s'."
+msgid "no help topics match `%s'.  Try `help help' or `man -k %s' or `info %s'."
+msgstr "Auf `%s' trifft kein Hilfethema zu.  Probieren Sie `help help', `man -k %s' oder `info %s'."
 
-#: builtins/help.def:224
+#: builtins/help.def:226
 #, c-format
 msgid "%s: cannot open: %s"
 msgstr "%s: Kann die Datei nicht öffnen: %s"
 
-#: builtins/help.def:524
+#: builtins/help.def:526
 #, c-format
 msgid ""
 "These shell commands are defined internally.  Type `help' to see this list.\n"
@@ -536,21 +529,20 @@ msgstr ""
 "Ein Stern (*) neben dem Namen kennzeichnet deaktivierte Kommandos.\n"
 "\n"
 
-#: builtins/history.def:154
+#: builtins/history.def:155
 msgid "cannot use more than one of -anrw"
 msgstr "Es darf nur eine Option aus -anrw angegeben werden."
 
-#: builtins/history.def:187 builtins/history.def:197 builtins/history.def:212
-#: builtins/history.def:229 builtins/history.def:241 builtins/history.def:248
+#: builtins/history.def:187
 msgid "history position"
 msgstr "Kommandostapelposition."
 
-#: builtins/history.def:331
+#: builtins/history.def:264
 #, c-format
 msgid "%s: invalid timestamp"
 msgstr "%s: Ungültiger Zeitstempel."
 
-#: builtins/history.def:442
+#: builtins/history.def:375
 #, c-format
 msgid "%s: history expansion failed"
 msgstr "%s: Kommandoersetzung gescheitert."
@@ -564,16 +556,16 @@ msgstr "%s: inlib gescheitert."
 msgid "no other options allowed with `-x'"
 msgstr "Keine weiteren Optionen mit `-x' erlaubt."
 
-#: builtins/kill.def:200
+#: builtins/kill.def:202
 #, c-format
 msgid "%s: arguments must be process or job IDs"
 msgstr "%s: Die Argumente müssen Prozess- oder Jobbezeichnungen sein."
 
-#: builtins/kill.def:263
+#: builtins/kill.def:265
 msgid "Unknown error"
 msgstr "Unbekannter Fehler."
 
-#: builtins/let.def:97 builtins/let.def:122 expr.c:614 expr.c:632
+#: builtins/let.def:97 builtins/let.def:122 expr.c:583 expr.c:598
 msgid "expression expected"
 msgstr "Ausdruck erwartet."
 
@@ -582,69 +574,69 @@ msgstr "Ausdruck erwartet."
 msgid "%s: not an indexed array"
 msgstr "%s: Ist kein indiziertes Array."
 
-#: builtins/mapfile.def:271 builtins/read.def:305
+#: builtins/mapfile.def:272 builtins/read.def:306
 #, c-format
 msgid "%s: invalid file descriptor specification"
 msgstr "%s: Ungültige Datei-Deskriptor Angabe."
 
-#: builtins/mapfile.def:279 builtins/read.def:312
+#: builtins/mapfile.def:280 builtins/read.def:313
 #, c-format
 msgid "%d: invalid file descriptor: %s"
 msgstr "%d: Ungültiger Datei-Deskriptor: %s"
 
-#: builtins/mapfile.def:288 builtins/mapfile.def:326
+#: builtins/mapfile.def:289 builtins/mapfile.def:327
 #, c-format
 msgid "%s: invalid line count"
 msgstr "%s: Ungültige Zeilenanzahlangabe."
 
-#: builtins/mapfile.def:299
+#: builtins/mapfile.def:300
 #, c-format
 msgid "%s: invalid array origin"
 msgstr "%s:  Ungültiger Zeilenindex für den Array Beginn."
 
-#: builtins/mapfile.def:316
+#: builtins/mapfile.def:317
 #, c-format
 msgid "%s: invalid callback quantum"
 msgstr ""
 
-#: builtins/mapfile.def:349
+#: builtins/mapfile.def:350
 msgid "empty array variable name"
 msgstr "Fehlender Name für die Array Variable."
 
-#: builtins/mapfile.def:370
+#: builtins/mapfile.def:371
 msgid "array variable support required"
 msgstr "Die Array Variablen Unterstützung ist in dieser Shell nicht vorhanden."
 
-#: builtins/printf.def:416
+#: builtins/printf.def:412
 #, c-format
 msgid "`%s': missing format character"
 msgstr "`%s': Fehlendes Formatierungszeichen."
 
-#: builtins/printf.def:471
+#: builtins/printf.def:467
 #, c-format
 msgid "`%c': invalid time format specification"
 msgstr "`%c': Ungültige Zeitformatangabe."
 
-#: builtins/printf.def:673
+#: builtins/printf.def:669
 #, c-format
 msgid "`%c': invalid format character"
 msgstr "`%c': Ungültiges Formatierungszeichen."
 
-#: builtins/printf.def:699
+#: builtins/printf.def:695
 #, c-format
 msgid "warning: %s: %s"
 msgstr "Warnung: %s: %s"
 
-#: builtins/printf.def:785
+#: builtins/printf.def:781
 #, c-format
 msgid "format parsing problem: %s"
 msgstr "Formatleseproblem: %s"
 
-#: builtins/printf.def:882
+#: builtins/printf.def:878
 msgid "missing hex digit for \\x"
 msgstr "Fehlende hexadezimale Ziffer nach \\x."
 
-#: builtins/printf.def:897
+#: builtins/printf.def:893
 #, c-format
 msgid "missing unicode digit for \\%c"
 msgstr "Fehlendes Unicode Zeichen für \\%c."
@@ -658,19 +650,19 @@ msgstr "kein anderes Verzeichnis"
 msgid "%s: invalid argument"
 msgstr "%s: Ungültiges Argument."
 
-#: builtins/pushd.def:480
+#: builtins/pushd.def:475
 msgid "<no current directory>"
 msgstr "<kein aktuelles Verzeichnis>"
 
-#: builtins/pushd.def:524
+#: builtins/pushd.def:519
 msgid "directory stack empty"
 msgstr "Der Verzeichnisstapel ist leer."
 
-#: builtins/pushd.def:526
+#: builtins/pushd.def:521
 msgid "directory stack index"
 msgstr "Verzeichnisstapelindex"
 
-#: builtins/pushd.def:701
+#: builtins/pushd.def:696
 msgid ""
 "Display the list of currently remembered directories.  Directories\n"
 "    find their way onto the list with the `pushd' command; you can get\n"
@@ -685,12 +677,10 @@ msgid ""
 "    \twith its position in the stack\n"
 "    \n"
 "    Arguments:\n"
-"      +N\tDisplays the Nth entry counting from the left of the list shown "
-"by\n"
+"      +N\tDisplays the Nth entry counting from the left of the list shown by\n"
 "    \tdirs when invoked without options, starting with zero.\n"
 "    \n"
-"      -N\tDisplays the Nth entry counting from the right of the list shown "
-"by\n"
+"      -N\tDisplays the Nth entry counting from the right of the list shown by\n"
 "\tdirs when invoked without options, starting with zero."
 msgstr ""
 "Zeigt die Liste der gegenwärtig gespeicherten Verzeichnisse an.  Durch\n"
@@ -712,7 +702,7 @@ msgstr ""
 "\t-N\tZeigt den N'ten Eintrag von rechts an, der von »dirs« ausgegeben\n"
 "\twird, wenn es ohne Optionen aufgerufen wird, beginnend mit Null."
 
-#: builtins/pushd.def:723
+#: builtins/pushd.def:718
 msgid ""
 "Adds a directory to the top of the directory stack, or rotates\n"
 "    the stack, making the new top of the stack the current working\n"
@@ -758,7 +748,7 @@ msgstr ""
 "    \n"
 "    Das `dirs' Kommando zeigt den Verueichnisstapel an."
 
-#: builtins/pushd.def:748
+#: builtins/pushd.def:743
 msgid ""
 "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"
@@ -799,48 +789,45 @@ msgstr ""
 "    \n"
 "    Das `dirs' Kommando zeigt den Verzeichnisstapel an."
 
-#: builtins/read.def:277
+#: builtins/read.def:279
 #, c-format
 msgid "%s: invalid timeout specification"
 msgstr "%s: Ungültige Wartezeitangebe."
 
-#: builtins/read.def:729
+#: builtins/read.def:696
 #, c-format
 msgid "read error: %d: %s"
 msgstr "Lesefehler: %d: %s"
 
-#: builtins/return.def:68
+#: builtins/return.def:71
 msgid "can only `return' from a function or sourced script"
-msgstr ""
-"»Return« ist nur aus einer Funktion oder einem mit »source« ausgeführten "
-"Skript möglich."
+msgstr "»Return« ist nur aus einer Funktion oder einem mit »source« ausgeführten Skript möglich."
 
-#: builtins/set.def:834
+#: builtins/set.def:841
 msgid "cannot simultaneously unset a function and a variable"
-msgstr ""
-"Gleichzeitiges `unset' einer Funktion und einer Variable ist nicht möglich."
+msgstr "Gleichzeitiges `unset' einer Funktion und einer Variable ist nicht möglich."
 
-#: builtins/set.def:881
+#: builtins/set.def:888
 #, c-format
 msgid "%s: cannot unset"
 msgstr "%s: `unset' nicht möglich."
 
-#: builtins/set.def:902 variables.c:3597
+#: builtins/set.def:909 variables.c:3389
 #, c-format
 msgid "%s: cannot unset: readonly %s"
 msgstr "%s: `unset' nicht möglich: Schreibgeschützt %s"
 
-#: builtins/set.def:915
+#: builtins/set.def:922
 #, c-format
 msgid "%s: not an array variable"
 msgstr "%s: Ist keine Feldvariable."
 
-#: builtins/setattr.def:189
+#: builtins/setattr.def:191
 #, c-format
 msgid "%s: not a function"
 msgstr "%s: Ist keine Funktion."
 
-#: builtins/setattr.def:194
+#: builtins/setattr.def:196
 #, c-format
 msgid "%s: cannot export"
 msgstr "%s: exportieren nicht möglich."
@@ -849,20 +836,20 @@ msgstr "%s: exportieren nicht möglich."
 msgid "shift count"
 msgstr "Verschiebezähler"
 
-#: builtins/shopt.def:301
+#: builtins/shopt.def:289
 msgid "cannot set and unset shell options simultaneously"
 msgstr "Kann nicht Shell Optinen gleichzeitig aktivieren und deaktivieren."
 
-#: builtins/shopt.def:403
+#: builtins/shopt.def:391
 #, c-format
 msgid "%s: invalid shell option name"
 msgstr "%s: Ungültiger Shell Optionen Name."
 
-#: builtins/source.def:128
+#: builtins/source.def:131
 msgid "filename argument required"
-msgstr "Ein Dateiname wird as Argument benötigt."
+msgstr "Ein Dateiname wird als Argument benötigt."
 
-#: builtins/source.def:154
+#: builtins/source.def:157
 #, c-format
 msgid "%s: file not found"
 msgstr "%s: Datei nicht gefunden."
@@ -876,61 +863,61 @@ msgstr "Kann die Shell nicht unterbrechen."
 msgid "cannot suspend a login shell"
 msgstr "Kann die Loginshell nicht unterbrechen."
 
-#: builtins/type.def:235
+#: builtins/type.def:236
 #, c-format
 msgid "%s is aliased to `%s'\n"
 msgstr "%s ist ein Alias von `%s'.\n"
 
-#: builtins/type.def:256
+#: builtins/type.def:257
 #, c-format
 msgid "%s is a shell keyword\n"
 msgstr "%s Ist ein reserviertes Schlüsselwort der Shell.\n"
 
-#: builtins/type.def:275
+#: builtins/type.def:276
 #, c-format
 msgid "%s is a function\n"
 msgstr "%s ist eine Funktion.\n"
 
-#: builtins/type.def:299
+#: builtins/type.def:300
 #, c-format
 msgid "%s is a special shell builtin\n"
 msgstr "%s ist eine spezielle eingebaute Funktion.\n"
 
-#: builtins/type.def:301
+#: builtins/type.def:302
 #, c-format
 msgid "%s is a shell builtin\n"
 msgstr "%s ist eine von der Shell mitgelieferte Funktion.\n"
 
-#: builtins/type.def:323 builtins/type.def:408
+#: builtins/type.def:324 builtins/type.def:409
 #, c-format
 msgid "%s is %s\n"
 msgstr "%s ist %s\n"
 
-#: builtins/type.def:343
+#: builtins/type.def:344
 #, c-format
 msgid "%s is hashed (%s)\n"
 msgstr ""
 
-#: builtins/ulimit.def:396
+#: builtins/ulimit.def:398
 #, c-format
 msgid "%s: invalid limit argument"
 msgstr "%s: Ungültiges Grenzwertargument."
 
-#: builtins/ulimit.def:422
+#: builtins/ulimit.def:424
 #, c-format
 msgid "`%c': bad command"
 msgstr "`%c': Falsches Kommando."
 
-#: builtins/ulimit.def:451
+#: builtins/ulimit.def:453
 #, c-format
 msgid "%s: cannot get limit: %s"
 msgstr "%s: Kann die nicht Grenze setzen: %s"
 
-#: builtins/ulimit.def:477
+#: builtins/ulimit.def:479
 msgid "limit"
 msgstr "Grenze"
 
-#: builtins/ulimit.def:489 builtins/ulimit.def:789
+#: builtins/ulimit.def:491 builtins/ulimit.def:791
 #, c-format
 msgid "%s: cannot modify limit: %s"
 msgstr "%s: Kann die Grenze nicht ändern: %s"
@@ -949,210 +936,204 @@ msgstr "`%c': Ungültiger Operator für den symbolischen Modus."
 msgid "`%c': invalid symbolic mode character"
 msgstr "`%c': Ungültiges Zeichen im symbolischen Modus."
 
-#: error.c:89 error.c:347 error.c:349 error.c:351
+#: error.c:90 error.c:348 error.c:350 error.c:352
 msgid " line "
 msgstr " Zeile "
 
-#: error.c:164
+#: error.c:165
 #, c-format
 msgid "last command: %s\n"
 msgstr "Letztes Kommando: %s\n"
 
-#: error.c:172
+#: error.c:173
 #, c-format
 msgid "Aborting..."
 msgstr "Abbruch..."
 
 #. TRANSLATORS: this is a prefix for informational messages.
-#: error.c:287
+#: error.c:288
 #, c-format
 msgid "INFORM: "
 msgstr "INFO: "
 
-#: error.c:462
+#: error.c:463
 msgid "unknown command error"
 msgstr "Unbekanntes Kommando"
 
-#: error.c:463
+#: error.c:464
 msgid "bad command type"
 msgstr ""
 
 # Programmierfehler
-#: error.c:464
+#: error.c:465
 msgid "bad connector"
 msgstr ""
 
-#: error.c:465
+#: error.c:466
 msgid "bad jump"
 msgstr "Falscher Sprung"
 
-#: error.c:503
+#: error.c:504
 #, c-format
 msgid "%s: unbound variable"
 msgstr "%s ist nicht gesetzt."
 
-#: eval.c:242
+#: eval.c:209
 #, c-format
 msgid "\atimed out waiting for input: auto-logout\n"
 msgstr "\aZu lange keine Eingabe: Automatisch ausgeloggt.\n"
 
-#: execute_cmd.c:536
+#: execute_cmd.c:527
 #, c-format
 msgid "cannot redirect standard input from /dev/null: %s"
 msgstr "Kann nicht die Standardeingabe von /dev/null umleiten: %s"
 
-#: execute_cmd.c:1294
+#: execute_cmd.c:1275
 #, c-format
 msgid "TIMEFORMAT: `%c': invalid format character"
 msgstr "TIMEFORMAT: `%c': Ungültiges Formatzeichen."
 
-#: execute_cmd.c:2330
+#: execute_cmd.c:2273
 #, c-format
 msgid "execute_coproc: coproc [%d:%s] still exists"
 msgstr ""
 
-#: execute_cmd.c:2456
+#: execute_cmd.c:2377
 msgid "pipe error"
 msgstr "Pipe-Fehler"
 
-#: execute_cmd.c:4624
+#: execute_cmd.c:4496
 #, c-format
 msgid "eval: maximum eval nesting level exceeded (%d)"
 msgstr "eval: Maximale Schachtelungstiefe überschritten (%d)"
 
-#: execute_cmd.c:4636
+#: execute_cmd.c:4508
 #, c-format
 msgid "%s: maximum source nesting level exceeded (%d)"
 msgstr "%s: Maximale Quellcode Schachtelungstiefe überschritten (%d)"
 
-#: execute_cmd.c:4742
+#: execute_cmd.c:4616
 #, c-format
 msgid "%s: maximum function nesting level exceeded (%d)"
 msgstr "%s: maximale Funkrionsschachtelungstiefe überschritten (%d)"
 
-#: execute_cmd.c:5285
+#: execute_cmd.c:5144
 #, c-format
 msgid "%s: restricted: cannot specify `/' in command names"
 msgstr "%s: Verboten:  `/' ist in Kommandonamen unzulässig."
 
-#: execute_cmd.c:5383
+#: execute_cmd.c:5232
 #, c-format
 msgid "%s: command not found"
 msgstr "%s: Kommando nicht gefunden."
 
-#: execute_cmd.c:5627
+#: execute_cmd.c:5470
 #, c-format
 msgid "%s: %s"
 msgstr "%s: %s"
 
-#: execute_cmd.c:5665
+#: execute_cmd.c:5508
 #, c-format
 msgid "%s: %s: bad interpreter"
 msgstr "%s: %s: Defekter Interpreter"
 
-#: execute_cmd.c:5702
+#: execute_cmd.c:5545
 #, c-format
 msgid "%s: cannot execute binary file: %s"
 msgstr "%s: Kann die Binärdatei nicht ausführen: %s"
 
-#: execute_cmd.c:5788
+#: execute_cmd.c:5623
 #, c-format
 msgid "`%s': is a special builtin"
 msgstr "`%s' ist eine spezielle eingebaute Funktion."
 
-#: execute_cmd.c:5840
+#: execute_cmd.c:5675
 #, c-format
 msgid "cannot duplicate fd %d to fd %d"
 msgstr "Kann fd %d nicht auf fd %d verdoppeln."
 
-#: expr.c:263
+#: expr.c:259
 msgid "expression recursion level exceeded"
 msgstr "Zu viele Rekursionen in Ausdruck."
 
-#: expr.c:291
+#: expr.c:283
 msgid "recursion stack underflow"
 msgstr "Rekursionsstapel leer."
 
-#: expr.c:453
+#: expr.c:431
 msgid "syntax error in expression"
 msgstr "Syntaxfehler im Ausdruck."
 
-#: expr.c:497
+#: expr.c:475
 msgid "attempted assignment to non-variable"
 msgstr "Versuchte Zuweisung zu keiner Variablen."
 
-#: expr.c:506
-#, fuzzy
-msgid "syntax error in variable assignment"
-msgstr "Syntaxfehler im Ausdruck."
-
-#: expr.c:520 expr.c:886
+#: expr.c:495 expr.c:858
 msgid "division by 0"
 msgstr "Division durch 0."
 
-#: expr.c:567
+#: expr.c:542
 msgid "bug: bad expassign token"
 msgstr "Fehler: Falscher Zuweisungsoperator."
 
-#: expr.c:621
+#: expr.c:595
 msgid "`:' expected for conditional expression"
 msgstr "`:' für ein bedingten Ausdruck erwaret."
 
-#: expr.c:947
+#: expr.c:919
 msgid "exponent less than 0"
 msgstr "Der Exponent ist kleiner als 0."
 
-#: expr.c:1004
+#: expr.c:976
 msgid "identifier expected after pre-increment or pre-decrement"
-msgstr ""
-"Nach einem Präinkrement oder Prädekrement wird ein Bezeichner erwartet."
+msgstr "Nach einem Präinkrement oder Prädekrement wird ein Bezeichner erwartet."
 
-#: expr.c:1030
+#: expr.c:1002
 msgid "missing `)'"
 msgstr "Fehlende `)'"
 
-#: expr.c:1081 expr.c:1458
+#: expr.c:1053 expr.c:1393
 msgid "syntax error: operand expected"
 msgstr "Syntax Fehler: Operator erwartet."
 
-#: expr.c:1460
+#: expr.c:1395
 msgid "syntax error: invalid arithmetic operator"
 msgstr "Syntaxfehler: Ungültiger arithmetischer Operator."
 
-#: expr.c:1484
+#: expr.c:1419
 #, c-format
 msgid "%s%s%s: %s (error token is \"%s\")"
 msgstr "%s%s%s: %s (Fehlerverursachendes Zeichen ist \\\"%s\\\")."
 
-#: expr.c:1542
+#: expr.c:1477
 msgid "invalid arithmetic base"
 msgstr "Ungültige Basis."
 
-#: expr.c:1562
+#: expr.c:1497
 msgid "value too great for base"
 msgstr "Der Wert ist für die aktuelle Basis zu groß."
 
-#: expr.c:1611
+#: expr.c:1546
 #, c-format
 msgid "%s: expression error\n"
 msgstr "%s: Fehler im Ausdruck.\n"
 
-#: general.c:69
+#: general.c:68
 msgid "getcwd: cannot access parent directories"
 msgstr "getwd: Kann auf das übergeordnete Verzeichnis nicht zugreifen."
 
-#: input.c:99 subst.c:5858
+#: input.c:102 subst.c:5858
 #, c-format
 msgid "cannot reset nodelay mode for fd %d"
 msgstr "Konnte den No-Delay Modus für fd %d nicht wieder herstellen."
 
-#: input.c:266
+#: input.c:271
 #, c-format
 msgid "cannot allocate new file descriptor for bash input from fd %d"
 msgstr "Kann keinen neuen Filedeskriptor für die Eingabe von fd %d zuweisen."
 
 # Debug Ausgabe
-#: input.c:274
+#: input.c:279
 #, c-format
 msgid "save_bash_input: buffer already exists for new fd %d"
 msgstr "save_bash_input: Es existiert bereits ein Puffer für den neuen fd %d."
@@ -1161,165 +1142,159 @@ msgstr "save_bash_input: Es existiert bereits ein Puffer für den neuen fd %d."
 msgid "start_pipeline: pgrp pipe"
 msgstr "start_pipeline: pgrp pipe"
 
-#: jobs.c:1080
+#: jobs.c:1035
 #, c-format
 msgid "forked pid %d appears in running job %d"
 msgstr "Die geforkte PID %d erscheint im laufenden Prozess %d."
 
-#: jobs.c:1199
+#: jobs.c:1154
 #, c-format
 msgid "deleting stopped job %d with process group %ld"
 msgstr "Lösche den gestoppten Prozess %d der Prozessgruppe %ld."
 
-#: jobs.c:1303
+#: jobs.c:1258
 #, c-format
 msgid "add_process: process %5ld (%s) in the_pipeline"
 msgstr ""
 
-#: jobs.c:1306
+#: jobs.c:1261
 #, c-format
 msgid "add_process: pid %5ld (%s) marked as still alive"
 msgstr ""
 
 # Programmierfehler
-#: jobs.c:1635
+#: jobs.c:1590
 #, c-format
 msgid "describe_pid: %ld: no such pid"
 msgstr "describe_pid: %ld: Prozessnummer existiert nicht."
 
-#: jobs.c:1650
+#: jobs.c:1605
 #, c-format
 msgid "Signal %d"
 msgstr "Signal %d"
 
-#: jobs.c:1664 jobs.c:1690
+#: jobs.c:1619 jobs.c:1645
 msgid "Done"
 msgstr "Fertig"
 
-#: jobs.c:1669 siglist.c:123
+#: jobs.c:1624 siglist.c:123
 msgid "Stopped"
 msgstr "Angehalten"
 
-#: jobs.c:1673
+#: jobs.c:1628
 #, c-format
 msgid "Stopped(%s)"
 msgstr "Angehalten(%s)"
 
-#: jobs.c:1677
+#: jobs.c:1632
 msgid "Running"
 msgstr "Läuft"
 
-#: jobs.c:1694
+#: jobs.c:1649
 #, c-format
 msgid "Done(%d)"
 msgstr "Fertig(%d)"
 
-#: jobs.c:1696
+#: jobs.c:1651
 #, c-format
 msgid "Exit %d"
 msgstr "Exit %d"
 
-#: jobs.c:1699
+#: jobs.c:1654
 msgid "Unknown status"
 msgstr "Unbekannter Status"
 
-#: jobs.c:1786
+#: jobs.c:1741
 #, c-format
 msgid "(core dumped) "
 msgstr "(Speicherabzug geschrieben) "
 
-#: jobs.c:1805
+#: jobs.c:1760
 #, c-format
 msgid "  (wd: %s)"
 msgstr "  (wd: %s)"
 
 # interner Fehler
-#: jobs.c:2033
+#: jobs.c:1985
 #, c-format
 msgid "child setpgid (%ld to %ld)"
 msgstr ""
 
-#: jobs.c:2395 nojobs.c:657
+#: jobs.c:2347 nojobs.c:654
 #, c-format
 msgid "wait: pid %ld is not a child of this shell"
 msgstr "wait: Prozess %ld wurde nicht von dieser Shell gestartet."
 
-#: jobs.c:2687
+#: jobs.c:2602
 #, c-format
 msgid "wait_for: No record of process %ld"
 msgstr ""
 
-#: jobs.c:3048
+#: jobs.c:2929
 #, c-format
 msgid "wait_for_job: job %d is stopped"
 msgstr "wait_for_job: Der Job %d ist gestoppt."
 
-#: jobs.c:3355
+#: jobs.c:3221
 #, c-format
 msgid "%s: job has terminated"
 msgstr "%s: Der Job ist beendet."
 
-#: jobs.c:3364
+#: jobs.c:3230
 #, c-format
 msgid "%s: job %d already in background"
 msgstr "%s: Der Job %d läuft bereits im Hintergrund."
 
-#: jobs.c:3590
+#: jobs.c:3455
 msgid "waitchld: turning on WNOHANG to avoid indefinite block"
 msgstr ""
 
 # Debug Ausgabe
-#: jobs.c:4114
+#: jobs.c:3970
 #, c-format
 msgid "%s: line %d: "
 msgstr "%s: Zeile %d: "
 
-#: jobs.c:4128 nojobs.c:900
+#: jobs.c:3984 nojobs.c:897
 #, c-format
 msgid " (core dumped)"
 msgstr " (Speicherabzug geschrieben)"
 
-#: jobs.c:4140 jobs.c:4153
+#: jobs.c:3996 jobs.c:4009
 #, c-format
 msgid "(wd now: %s)\n"
 msgstr "(gegenwärtiges Arbeitsverzeichnis ist: %s)\n"
 
 # interner Fehler
-#: jobs.c:4185
+#: jobs.c:4041
 msgid "initialize_job_control: getpgrp failed"
 msgstr "initialize_jobs: getpgrp war nicht erfolgreich."
 
 # interner Fehler
-#: jobs.c:4241
-#, fuzzy
-msgid "initialize_job_control: no job control in background"
-msgstr "initialize_job_control: line discipline"
-
-# interner Fehler
-#: jobs.c:4257
+#: jobs.c:4104
 msgid "initialize_job_control: line discipline"
 msgstr "initialize_job_control: line discipline"
 
 # interner Fehler
-#: jobs.c:4267
+#: jobs.c:4114
 msgid "initialize_job_control: setpgid"
 msgstr "initialize_job_control: setpgid"
 
-#: jobs.c:4288 jobs.c:4297
+#: jobs.c:4135 jobs.c:4144
 #, c-format
 msgid "cannot set terminal process group (%d)"
 msgstr "Kann die Prozessgruppe des Terminals nicht setzen (%d)."
 
-#: jobs.c:4302
+#: jobs.c:4149
 msgid "no job control in this shell"
 msgstr "Keine Job Steuerung in dieser Shell."
 
-#: lib/malloc/malloc.c:306
+#: lib/malloc/malloc.c:296
 #, c-format
 msgid "malloc: failed assertion: %s\n"
 msgstr "malloc: Speicherzusicherung gescheitert: %s.\n"
 
-#: lib/malloc/malloc.c:322
+#: lib/malloc/malloc.c:312
 #, c-format
 msgid ""
 "\r\n"
@@ -1328,63 +1303,56 @@ msgstr ""
 "\\r\n"
 "malloc: %s:%d: Speicherzusicherung verpfuscht\\r\n"
 
-#: lib/malloc/malloc.c:323
+#: lib/malloc/malloc.c:313
 msgid "unknown"
 msgstr "Unbekannt"
 
-#: lib/malloc/malloc.c:811
+#: lib/malloc/malloc.c:801
 msgid "malloc: block on free list clobbered"
-msgstr ""
-"Malloc:  Ein frei gekennzeichneter Speicherbereich wurde überschrieben."
+msgstr "Malloc:  Ein frei gekennzeichneter Speicherbereich wurde überschrieben."
 
-#: lib/malloc/malloc.c:888
+#: lib/malloc/malloc.c:878
 msgid "free: called with already freed block argument"
 msgstr "free:  Wurde für bereits freigegebenen Speicherbereich aufgerufen."
 
-#: lib/malloc/malloc.c:891
+#: lib/malloc/malloc.c:881
 msgid "free: called with unallocated block argument"
 msgstr "free: Wurde für nicht zugeordneten Speicherbereich aufgerufen."
 
-#: lib/malloc/malloc.c:910
+#: lib/malloc/malloc.c:900
 msgid "free: underflow detected; mh_nbytes out of range"
 msgstr "free: Underflow erkannt; mh_nbytes außerhalb des Gültigkeitsbereichs."
 
-#: lib/malloc/malloc.c:916
+#: lib/malloc/malloc.c:906
 msgid "free: start and end chunk sizes differ"
 msgstr "free: Beginn und Ende Segmentgrößen sind unterschiedlich."
 
-#: lib/malloc/malloc.c:1015
+#: lib/malloc/malloc.c:1005
 msgid "realloc: called with unallocated block argument"
 msgstr "realloc: Mit nicht zugewiesenen Argument aufgerufen."
 
-#: lib/malloc/malloc.c:1030
+#: lib/malloc/malloc.c:1020
 msgid "realloc: underflow detected; mh_nbytes out of range"
-msgstr ""
-"realloc: Underflow erkannt; mh_nbytes außerhalb des Gültigkeitsbereichs."
+msgstr "realloc: Underflow erkannt; mh_nbytes außerhalb des Gültigkeitsbereichs."
 
-#: lib/malloc/malloc.c:1036
+#: lib/malloc/malloc.c:1026
 msgid "realloc: start and end chunk sizes differ"
 msgstr "realloc: Beginn und Ende Segmentgrößen sind unterschiedlich.<"
 
 #: lib/malloc/table.c:191
 #, c-format
 msgid "register_alloc: alloc table is full with FIND_ALLOC?\n"
-msgstr ""
-"register_alloc: Speicherzuordnungstabelle ist mit FIND_ALLOC gefüllt?\n"
+msgstr "register_alloc: Speicherzuordnungstabelle ist mit FIND_ALLOC gefüllt?\n"
 
 #: lib/malloc/table.c:200
 #, c-format
 msgid "register_alloc: %p already in table as allocated?\n"
-msgstr ""
-"register_alloc: %p ist bereits in der Speicherzuordnungstabelle als belegt "
-"gekennzeichnet?\n"
+msgstr "register_alloc: %p ist bereits in der Speicherzuordnungstabelle als belegt gekennzeichnet?\n"
 
 #: lib/malloc/table.c:253
 #, c-format
 msgid "register_free: %p already in table as free?\n"
-msgstr ""
-"register_free: %p ist bereits in der Speicherzuordnungstabelle als frei "
-"gekennzeichnet?\n"
+msgstr "register_free: %p ist bereits in der Speicherzuordnungstabelle als frei gekennzeichnet?\n"
 
 #: lib/sh/fmtulong.c:102
 msgid "invalid base"
@@ -1409,22 +1377,22 @@ msgstr "%s: Fehlerhafte Netzwerkspfadangabe."
 msgid "network operations not supported"
 msgstr "Der Netzwerkbetrieb ist nicht unterstützt."
 
-#: locale.c:205
+#: locale.c:200
 #, c-format
 msgid "setlocale: LC_ALL: cannot change locale (%s)"
 msgstr "setlocale: LC_ALL: Kann die Locale nicht ändern (%s)."
 
-#: locale.c:207
+#: locale.c:202
 #, c-format
 msgid "setlocale: LC_ALL: cannot change locale (%s): %s"
 msgstr "setlocale: LC_ALL: Kann die Locale nicht ändern (%s): %s"
 
-#: locale.c:272
+#: locale.c:259
 #, c-format
 msgid "setlocale: %s: cannot change locale (%s)"
 msgstr "setlocale: %s: Kann die Standorteinstellungen nicht ändern (%s)."
 
-#: locale.c:274
+#: locale.c:261
 #, c-format
 msgid "setlocale: %s: cannot change locale (%s): %s"
 msgstr "setlocale: %s: Kann nicht die Locale ändern (%s): %s"
@@ -1443,151 +1411,147 @@ msgstr "Sie haben neue Post in $_."
 msgid "The mail in %s has been read\n"
 msgstr "Die Post in %s wurde bereits gelesen.\n"
 
-#: make_cmd.c:317
+#: make_cmd.c:329
 msgid "syntax error: arithmetic expression required"
 msgstr "Syntaxfehler: Es wird ein arithmetischer Ausdruck benötigt."
 
-#: make_cmd.c:319
+#: make_cmd.c:331
 msgid "syntax error: `;' unexpected"
 msgstr "Syntax Fehler: unerwartetes `;'."
 
-#: make_cmd.c:320
+#: make_cmd.c:332
 #, c-format
 msgid "syntax error: `((%s))'"
 msgstr "Syntax Fehler: `((%s))'."
 
 # interner Fehler
-#: make_cmd.c:572
+#: make_cmd.c:584
 #, c-format
 msgid "make_here_document: bad instruction type %d"
 msgstr "make_here_document: Falscher Befehlstyp %d."
 
-#: make_cmd.c:657
+#: make_cmd.c:669
 #, c-format
 msgid "here-document at line %d delimited by end-of-file (wanted `%s')"
-msgstr ""
-"Das in der Zeile %d beginnende Here-Dokument geht bis zum Dateiende "
-"(erwartet wird `%s')."
+msgstr "Das in der Zeile %d beginnende Here-Dokument geht bis zum Dateiende (erwartet wird `%s')."
 
-#: make_cmd.c:756
+#: make_cmd.c:768
 #, c-format
 msgid "make_redirection: redirection instruction `%d' out of range"
 msgstr ""
 
-#: parse.y:2369
+#: parse.y:2324
 #, c-format
-msgid ""
-"shell_getc: shell_input_line_size (%zu) exceeds SIZE_MAX (%lu): line "
-"truncated"
+msgid "shell_getc: shell_input_line_size (%zu) exceeds SIZE_MAX (%lu): line truncated"
 msgstr ""
 
-#: parse.y:2772
+#: parse.y:2700
 msgid "maximum here-document count exceeded"
 msgstr ""
 
-#: parse.y:3511 parse.y:3881
+#: parse.y:3390 parse.y:3748
 #, c-format
 msgid "unexpected EOF while looking for matching `%c'"
 msgstr "Dateiende beim Suchen nach `%c' erreicht."
 
-#: parse.y:4581
+#: parse.y:4410
 msgid "unexpected EOF while looking for `]]'"
 msgstr "Dateiende beim Suchen nach `]]' erreicht."
 
-#: parse.y:4586
+#: parse.y:4415
 #, c-format
 msgid "syntax error in conditional expression: unexpected token `%s'"
 msgstr "Syntaxfehler im bedingten Ausdruck: Unerwartetes Zeichen `%s'."
 
-#: parse.y:4590
+#: parse.y:4419
 msgid "syntax error in conditional expression"
 msgstr "Syntaxfehler im bedingen Ausdruck."
 
-#: parse.y:4668
+#: parse.y:4497
 #, c-format
 msgid "unexpected token `%s', expected `)'"
 msgstr "Unerwartetes Zeichen: `%s' anstatt von `)'"
 
-#: parse.y:4672
+#: parse.y:4501
 msgid "expected `)'"
 msgstr "`)' erwartet."
 
-#: parse.y:4700
+#: parse.y:4529
 #, c-format
 msgid "unexpected argument `%s' to conditional unary operator"
 msgstr ""
 
-#: parse.y:4704
+#: parse.y:4533
 msgid "unexpected argument to conditional unary operator"
 msgstr ""
 
-#: parse.y:4750
+#: parse.y:4579
 #, c-format
 msgid "unexpected token `%s', conditional binary operator expected"
 msgstr ""
 
-#: parse.y:4754
+#: parse.y:4583
 msgid "conditional binary operator expected"
 msgstr ""
 
-#: parse.y:4776
+#: parse.y:4605
 #, c-format
 msgid "unexpected argument `%s' to conditional binary operator"
 msgstr ""
 
-#: parse.y:4780
+#: parse.y:4609
 msgid "unexpected argument to conditional binary operator"
 msgstr ""
 
-#: parse.y:4791
+#: parse.y:4620
 #, c-format
 msgid "unexpected token `%c' in conditional command"
 msgstr ""
 
-#: parse.y:4794
+#: parse.y:4623
 #, c-format
 msgid "unexpected token `%s' in conditional command"
 msgstr ""
 
-#: parse.y:4798
+#: parse.y:4627
 #, c-format
 msgid "unexpected token %d in conditional command"
 msgstr ""
 
-#: parse.y:6220
+#: parse.y:5996
 #, c-format
 msgid "syntax error near unexpected token `%s'"
 msgstr "Syntaxfehler beim unerwarteten Wort `%s'"
 
-#: parse.y:6238
+#: parse.y:6014
 #, c-format
 msgid "syntax error near `%s'"
 msgstr "Syntaxfehler beim unerwarteten Wort `%s'"
 
-#: parse.y:6248
+#: parse.y:6024
 msgid "syntax error: unexpected end of file"
 msgstr "Syntax Fehler: Unerwartetes Dateiende."
 
-#: parse.y:6248
+#: parse.y:6024
 msgid "syntax error"
 msgstr "Syntax Fehler"
 
 # Du oder Sie?
-#: parse.y:6310
+#: parse.y:6086
 #, c-format
 msgid "Use \"%s\" to leave the shell.\n"
 msgstr "Benutze \"%s\" um die Shell zu verlassen.\n"
 
-#: parse.y:6472
+#: parse.y:6248
 msgid "unexpected EOF while looking for matching `)'"
 msgstr "Dateiende beim Suchen nach passender `)' erreicht."
 
-#: pcomplete.c:1132
+#: pcomplete.c:1126
 #, c-format
 msgid "completion: function `%s' not found"
 msgstr ""
 
-#: pcomplete.c:1722
+#: pcomplete.c:1646
 #, c-format
 msgid "programmable_completion: %s: possible retry loop"
 msgstr ""
@@ -1597,113 +1561,109 @@ msgstr ""
 msgid "progcomp_insert: %s: NULL COMPSPEC"
 msgstr ""
 
-#: print_cmd.c:300
+#: print_cmd.c:302
 #, c-format
 msgid "print_command: bad connector `%d'"
 msgstr "print_command: Falsches Verbindungszeichen `%d'."
 
-#: print_cmd.c:373
+#: print_cmd.c:375
 #, c-format
 msgid "xtrace_set: %d: invalid file descriptor"
 msgstr "xtrace_set: %d: Ungültige Dateibeschreibung."
 
-#: print_cmd.c:378
+#: print_cmd.c:380
 msgid "xtrace_set: NULL file pointer"
 msgstr ""
 
-#: print_cmd.c:382
+#: print_cmd.c:384
 #, c-format
 msgid "xtrace fd (%d) != fileno xtrace fp (%d)"
 msgstr ""
 
-#: print_cmd.c:1538
+#: print_cmd.c:1534
 #, c-format
 msgid "cprintf: `%c': invalid format character"
 msgstr ""
 
-#: redir.c:121 redir.c:167
+#: redir.c:124 redir.c:171
 msgid "file descriptor out of range"
 msgstr ""
 
-#: redir.c:174
+#: redir.c:178
 #, c-format
 msgid "%s: ambiguous redirect"
 msgstr "%s: Mehrdeutige Umlenkung."
 
-#: redir.c:178
+#: redir.c:182
 #, c-format
 msgid "%s: cannot overwrite existing file"
 msgstr "%s: Kann existierende Datei nicht überschreiben."
 
-#: redir.c:183
+#: redir.c:187
 #, c-format
 msgid "%s: restricted: cannot redirect output"
 msgstr "%s: Gesperrt: Die Ausgabe darf nicht umgeleitet werden."
 
-#: redir.c:188
+#: redir.c:192
 #, c-format
 msgid "cannot create temp file for here-document: %s"
 msgstr "Kann die temporäre Datei für das Hier Dokument nicht anlegen: %s"
 
-#: redir.c:192
+#: redir.c:196
 #, c-format
 msgid "%s: cannot assign fd to variable"
 msgstr "%s: Kann fd keiner Variable zuweisen."
 
-#: redir.c:588
+#: redir.c:586
 msgid "/dev/(tcp|udp)/host/port not supported without networking"
 msgstr "/dev/(tcp|udp)/host/port Wird ohne Netzwerk nicht unterstützt"
 
-#: redir.c:870 redir.c:985 redir.c:1046 redir.c:1211
+#: redir.c:868 redir.c:983 redir.c:1044 redir.c:1209
 msgid "redirection error: cannot duplicate fd"
 msgstr ""
 
-#: shell.c:343
+#: shell.c:347
 msgid "could not find /tmp, please create!"
 msgstr "Konnte das /tmp Verzeichnis nicht finden, bitte anlegen."
 
-#: shell.c:347
+#: shell.c:351
 msgid "/tmp must be a valid directory name"
 msgstr "/tmp muss ein gültiger Verzeichnisname sein."
 
-#: shell.c:798
-msgid "pretty-printing mode ignored in interactive shells"
-msgstr ""
-
-#: shell.c:940
+#: shell.c:927
 #, c-format
 msgid "%c%c: invalid option"
 msgstr "%c%c: Ungültige Option"
 
-#: shell.c:1299
+#: shell.c:1282
 #, c-format
 msgid "cannot set uid to %d: effective uid %d"
 msgstr "Konnte nicht die uid in %d ändern: Die geltende uid ist %d"
 
-#: shell.c:1306
+#: shell.c:1289
 #, c-format
 msgid "cannot set gid to %d: effective gid %d"
 msgstr "Konnte nicht die gid in %d ändern: Die geltende gid ist %d"
 
-#: shell.c:1494
+#: shell.c:1458
 msgid "cannot start debugger; debugging mode disabled"
 msgstr "Kann keinen Debugger starten. Der Debugmodus ist gesperrt."
 
-#: shell.c:1608
+#: shell.c:1566
 #, c-format
 msgid "%s: Is a directory"
 msgstr "%s: Ist ein Verzeichnis."
 
-#: shell.c:1826
+#: shell.c:1777
 msgid "I have no name!"
 msgstr "Ich habe keinen Benutzernamen!"
 
-#: shell.c:1980
+#: shell.c:1930
 #, c-format
 msgid "GNU bash, version %s-(%s)\n"
 msgstr "GNU bash, Version %s-(%s)\n"
 
-#: shell.c:1981
+#: shell.c:1931
 #, c-format
 msgid ""
 "Usage:\t%s [GNU long option] [option] ...\n"
@@ -1712,50 +1672,49 @@ msgstr ""
 "Aufruf:\t%s [Lange GNU Option] [Option] ...\n"
 "\t\t%s [Lange GNU Option] [Option] Script-Datei ...\n"
 
-#: shell.c:1983
+#: shell.c:1933
 msgid "GNU long options:\n"
 msgstr "Lange GNU Optionen:\n"
 
-#: shell.c:1987
+#: shell.c:1937
 msgid "Shell options:\n"
 msgstr "Shell-Optionen:\n"
 
-#: shell.c:1988
+#: shell.c:1938
 msgid "\t-ilrsD or -c command or -O shopt_option\t\t(invocation only)\n"
-msgstr ""
-"\t-ilrsD oder -c Kommando\toder -O shopt_option            (Nur Aufruf)\n"
+msgstr "\t-ilrsD oder -c Kommando\toder -O shopt_option            (Nur Aufruf)\n"
 
-#: shell.c:2003
+#: shell.c:1953
 #, c-format
 msgid "\t-%s or -o option\n"
 msgstr "\t-%s oder Option -o\n"
 
-#: shell.c:2009
+#: shell.c:1959
 #, c-format
 msgid "Type `%s -c \"help set\"' for more information about shell options.\n"
 msgstr "`%s -c \"help set\"' für mehr Informationen über Shell-Optionen.\n"
 
-#: shell.c:2010
+#: shell.c:1960
 #, c-format
 msgid "Type `%s -c help' for more information about shell builtin commands.\n"
 msgstr "`%s -c help' für mehr Information über Shell-Kommandos.\n"
 
-#: shell.c:2011
+#: shell.c:1961
 #, c-format
 msgid "Use the `bashbug' command to report bugs.\n"
 msgstr "Mit dem `bashbug' Kommando können Fehler gemeldet werden.\n"
 
-#: shell.c:2013
+#: shell.c:1963
 #, c-format
 msgid "bash home page: <http://www.gnu.org/software/bash>\n"
 msgstr "Bash Homepage: <http://www.gnu.org/software/bash>\n"
 
-#: shell.c:2014
+#: shell.c:1964
 #, c-format
 msgid "General help using GNU software: <http://www.gnu.org/gethelp/>\n"
 msgstr "Allgemeine Hilfe für GNU Software: <http://www.gnu.org/gethelp/>\n"
 
-#: sig.c:695
+#: sig.c:707
 #, c-format
 msgid "sigprocmask: %d: invalid operation"
 msgstr "sigprocmask: %d: Ungültige Operation"
@@ -1929,21 +1888,21 @@ msgstr "Unbekannte Signalnummer."
 msgid "Unknown Signal #%d"
 msgstr "Unbekanntes Signal Nr.: %d."
 
-#: subst.c:1450 subst.c:1641
+#: subst.c:1445 subst.c:1608
 #, c-format
 msgid "bad substitution: no closing `%s' in %s"
 msgstr "Falsche Ersetzung: Keine schließende `%s' in `%s' enthalten."
 
-#: subst.c:3209
+#: subst.c:3154
 #, c-format
 msgid "%s: cannot assign list to array member"
 msgstr "%s: Kann einem Feldelement keine Liste zuweisen."
 
-#: subst.c:5734 subst.c:5750
+#: subst.c:5740 subst.c:5756
 msgid "cannot make pipe for process substitution"
 msgstr "Kann keine Pipe für die Prozessersetzung erzeugen."
 
-#: subst.c:5796
+#: subst.c:5798
 msgid "cannot make child for process substitution"
 msgstr "Kann den Kindsprozess für die Prozessersetzung nicht erzeugen."
 
@@ -1962,78 +1921,69 @@ msgstr "Kann nicht die benannte Pipe %s zum schreiben öffnen."
 msgid "cannot duplicate named pipe %s as fd %d"
 msgstr "Kann die benannte Pipe %s nicht auf fd %d."
 
-#: subst.c:5990
+#: subst.c:5959
 msgid "command substitution: ignored null byte in input"
 msgstr "Kommansosubstitution: NULL byte in der Eingabe ignoriert."
 
-#: subst.c:6121
+#: subst.c:6083
 msgid "cannot make pipe for command substitution"
 msgstr "Kann keine Pipes für Kommandoersetzung erzeugen."
 
-#: subst.c:6164
+#: subst.c:6127
 msgid "cannot make child for command substitution"
 msgstr "Kann keinen Unterprozess für die Kommandoersetzung erzeugen."
 
 # interner Fehler
-#: subst.c:6190
+#: subst.c:6153
 msgid "command_substitute: cannot duplicate pipe as fd 1"
 msgstr "Kommandosubstitution: Kann Pipe nicht als fd 1 duplizieren."
 
-#: subst.c:6641 subst.c:9483
+#: subst.c:6580 subst.c:8939
 #, c-format
 msgid "%s: invalid variable name for name reference"
 msgstr ""
 
-#: subst.c:6737 subst.c:6755 subst.c:6903
+#: subst.c:6666 subst.c:8351 subst.c:8371
+#, c-format
+msgid "%s: bad substitution"
+msgstr "%s: Falsche Substitution."
+
+#: subst.c:6800
 #, c-format
 msgid "%s: invalid indirect expansion"
 msgstr "%s: Ungültige indirekte Expansion"
 
-#: subst.c:6771 subst.c:6910
+#: subst.c:6807
 #, c-format
 msgid "%s: invalid variable name"
 msgstr "`%s': Ungültiger Variablenname."
 
-#: subst.c:6962
-#, fuzzy, c-format
-msgid "%s: parameter not set"
-msgstr "%s: Parameter ist Null oder nicht gesetzt."
-
-#: subst.c:6964
+#: subst.c:6854
 #, c-format
 msgid "%s: parameter null or not set"
 msgstr "%s: Parameter ist Null oder nicht gesetzt."
 
 # interner Fehler
-#: subst.c:7201 subst.c:7216
+#: subst.c:7089 subst.c:7104
 #, c-format
 msgid "%s: substring expression < 0"
 msgstr "%s: Teilstring-Ausdruck < 0."
 
-#: subst.c:8839 subst.c:8860
-#, c-format
-msgid "%s: bad substitution"
-msgstr "%s: Falsche Substitution."
-
-#: subst.c:8948
+#: subst.c:8450
 #, c-format
 msgid "$%s: cannot assign in this way"
 msgstr "$%s: Kann so nicht zuweisen."
 
-#: subst.c:9346
-msgid ""
-"future versions of the shell will force evaluation as an arithmetic "
-"substitution"
-msgstr ""
-"Zukünftige Versionen dieser Shell werden das Auswerten arithmetischer "
-"Ersetzungen erzwingen."
+#: subst.c:8802
+msgid "future versions of the shell will force evaluation as an arithmetic substitution"
+msgstr "Zukünftige Versionen dieser Shell werden das Auswerten arithmetischer Ersetzungen erzwingen."
 
-#: subst.c:9903
+#: subst.c:9349
 #, c-format
 msgid "bad substitution: no closing \"`\" in %s"
 msgstr "Falsche Ersetzung: Keine schließende \"`\" in %s."
 
-#: subst.c:10907
+#: subst.c:10298
 #, c-format
 msgid "no match: %s"
 msgstr "Keine Entsprechung: %s"
@@ -2056,107 +2006,106 @@ msgstr "`)' erwartet."
 msgid "`)' expected, found %s"
 msgstr "`)' erwartet, %s gefunden."
 
-#: test.c:282 test.c:748 test.c:751
+#: test.c:282 test.c:744 test.c:747
 #, c-format
 msgid "%s: unary operator expected"
 msgstr "%s: Einstelliger (unärer) Operator erwartet."
 
-#: test.c:469 test.c:791
+#: test.c:469 test.c:787
 #, c-format
 msgid "%s: binary operator expected"
 msgstr "%s: Zweistelliger (binärer) Operator erwartet."
 
-#: test.c:873
+#: test.c:869
 msgid "missing `]'"
 msgstr "Fehlende `]'"
 
-#: trap.c:216
+#: trap.c:224
 msgid "invalid signal number"
 msgstr "Ungültige Signalnummer."
 
-#: trap.c:379
+#: trap.c:387
 #, c-format
 msgid "run_pending_traps: bad value in trap_list[%d]: %p"
 msgstr "run_pending_traps: Ungültiger Wert in trap_list[%d]: %p"
 
-#: trap.c:383
+#: trap.c:391
 #, c-format
-msgid ""
-"run_pending_traps: signal handler is SIG_DFL, resending %d (%s) to myself"
+msgid "run_pending_traps: signal handler is SIG_DFL, resending %d (%s) to myself"
 msgstr ""
 
 # Programmierfehler
-#: trap.c:439
+#: trap.c:447
 #, c-format
 msgid "trap_handler: bad signal %d"
 msgstr "trap_handler: Falsches Signal %d."
 
-#: variables.c:399
+#: variables.c:409
 #, c-format
 msgid "error importing function definition for `%s'"
 msgstr "Fehler beim Importieren der Funktionsdefinition für `%s'."
 
-#: variables.c:801
+#: variables.c:814
 #, c-format
 msgid "shell level (%d) too high, resetting to 1"
 msgstr "Der Shell Level (%d) ist zu hoch und wird auf 1 zurückgesetzt."
 
-#: variables.c:2512
+#: variables.c:2413
 msgid "make_local_variable: no function context at current scope"
 msgstr ""
 
-#: variables.c:2531
+#: variables.c:2432
 #, c-format
 msgid "%s: variable may not be assigned value"
 msgstr "%s: Der Variable könnte kein Wert zugewiesen sein."
 
-#: variables.c:3246
+#: variables.c:3043
 #, c-format
 msgid "%s: assigning integer to name reference"
 msgstr ""
 
-#: variables.c:4149
+#: variables.c:3940
 msgid "all_local_variables: no function context at current scope"
 msgstr ""
 
-#: variables.c:4437
+#: variables.c:4218
 #, c-format
 msgid "%s has null exportstr"
 msgstr ""
 
-#: variables.c:4442 variables.c:4451
+#: variables.c:4223 variables.c:4232
 #, c-format
 msgid "invalid character %d in exportstr for %s"
 msgstr ""
 
-#: variables.c:4457
+#: variables.c:4238
 #, c-format
 msgid "no `=' in exportstr for %s"
 msgstr ""
 
-#: variables.c:4911
+#: variables.c:4684
 msgid "pop_var_context: head of shell_variables not a function context"
 msgstr ""
 
-#: variables.c:4924
+#: variables.c:4697
 msgid "pop_var_context: no global_variables context"
 msgstr ""
 
-#: variables.c:4999
+#: variables.c:4772
 msgid "pop_scope: head of shell_variables not a temporary environment scope"
 msgstr ""
 
-#: variables.c:5862
+#: variables.c:5619
 #, c-format
 msgid "%s: %s: cannot open as FILE"
 msgstr "%s: %s: Kann nicht als Datei geöffnet werden."
 
-#: variables.c:5867
+#: variables.c:5624
 #, c-format
 msgid "%s: %s: invalid value for trace file descriptor"
 msgstr ""
 
-#: variables.c:5912
+#: variables.c:5669
 #, c-format
 msgid "%s: %s: compatibility value out of range"
 msgstr "%s: %s: Kompatibilitätswert außerhalb des Gültigkeitsbereiches."
@@ -2166,12 +2115,8 @@ msgid "Copyright (C) 2016 Free Software Foundation, Inc."
 msgstr "Copyright (C) 2016 Free Software Foundation, Inc."
 
 #: version.c:47 version2.c:47
-msgid ""
-"License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl."
-"html>\n"
-msgstr ""
-"Lizenz GPLv3+: GNU GPL Version 3 oder jünger <http://gnu.org/licenses/gpl."
-"html>\n"
+msgid "License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>\n"
+msgstr "Lizenz GPLv3+: GNU GPL Version 3 oder jünger <http://gnu.org/licenses/gpl.html>\n"
 
 #: version.c:86 version2.c:86
 #, c-format
@@ -2186,22 +2131,22 @@ msgstr "Dies ist freie Software.  Sie darf verändert und verteilt werden."
 msgid "There is NO WARRANTY, to the extent permitted by law."
 msgstr "Es wird keine Garantie gewährt, soweit das Gesetz es zulässt."
 
-#: xmalloc.c:93
+#: xmalloc.c:91
 #, c-format
 msgid "%s: cannot allocate %lu bytes (%lu bytes allocated)"
 msgstr "%s: Konnte nicht %lu Bytes reservieren (%lu bytes reserviert)."
 
-#: xmalloc.c:95
+#: xmalloc.c:93
 #, c-format
 msgid "%s: cannot allocate %lu bytes"
 msgstr "%s: Konnte nicht %lu Bytes reservieren."
 
-#: xmalloc.c:165
+#: xmalloc.c:163
 #, c-format
 msgid "%s: %s:%d: cannot allocate %lu bytes (%lu bytes allocated)"
 msgstr "%s: %s:%d: Konnte nicht %lu Bytes reservieren (%lu bytes reserviert)."
 
-#: xmalloc.c:167
+#: xmalloc.c:165
 #, c-format
 msgid "%s: %s:%d: cannot allocate %lu bytes"
 msgstr "%s: %s:%d: Konnte nicht %lu Bytes reservieren."
@@ -2215,13 +2160,10 @@ msgid "unalias [-a] name [name ...]"
 msgstr "unalias [-a] Name [Name ...]"
 
 #: builtins.c:53
-msgid ""
-"bind [-lpsvPSVX] [-m keymap] [-f filename] [-q name] [-u name] [-r keyseq] [-"
-"x keyseq:shell-command] [keyseq:readline-function or readline-command]"
+msgid "bind [-lpsvPSVX] [-m keymap] [-f filename] [-q name] [-u name] [-r keyseq] [-x keyseq:shell-command] [keyseq:readline-function or readline-command]"
 msgstr ""
 "bind [-lpsvPSVX] [-m Tastaturtabelle] [-f Dateiname] [-q Name] [-u\n"
-"Name] [-r Tastenfolge] [-x Tastenfolge:Shell Kommando] [Tastenfolge:readline-"
-"Funktion oder -Kommando]"
+"Name] [-r Tastenfolge] [-x Tastenfolge:Shell Kommando] [Tastenfolge:readline-Funktion oder -Kommando]"
 
 #: builtins.c:56
 msgid "break [n]"
@@ -2298,9 +2240,7 @@ msgstr "logout [n]"
 
 #: builtins.c:105
 msgid "fc [-e ename] [-lnr] [first] [last] or fc -s [pat=rep] [command]"
-msgstr ""
-"fc [-e Editor] [-lnr] [Anfang] [Ende] oder fc -s [Muster=Ersetzung] "
-"[Kommando]"
+msgstr "fc [-e Editor] [-lnr] [Anfang] [Ende] oder fc -s [Muster=Ersetzung] [Kommando]"
 
 #: builtins.c:109
 msgid "fg [job_spec]"
@@ -2319,12 +2259,8 @@ msgid "help [-dms] [pattern ...]"
 msgstr "help [-dms] [Muster ...]"
 
 #: builtins.c:123
-msgid ""
-"history [-c] [-d offset] [n] or history -anrw [filename] or history -ps arg "
-"[arg...]"
-msgstr ""
-"history [-c] [-d Offset] [n] oder history -anrw [Dateiname] oder history -ps "
-"Argument [Argument...]"
+msgid "history [-c] [-d offset] [n] or history -anrw [filename] or history -ps arg [arg...]"
+msgstr "history [-c] [-d Offset] [n] oder history -anrw [Dateiname] oder history -ps Argument [Argument...]"
 
 #: builtins.c:127
 msgid "jobs [-lnprs] [jobspec ...] or jobs -x command [args]"
@@ -2335,24 +2271,16 @@ msgid "disown [-h] [-ar] [jobspec ... | pid ...]"
 msgstr "disown [-h] [-ar] [Jobbezeichnung ... | pid ...]"
 
 #: builtins.c:134
-msgid ""
-"kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... or kill -l "
-"[sigspec]"
-msgstr ""
-"kill [-s Signalname | -n Signalnummer | -Signalname] pid | jobspec ... oder "
-"kill -l [Signalname]"
+msgid "kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... or kill -l [sigspec]"
+msgstr "kill [-s Signalname | -n Signalnummer | -Signalname] pid | jobspec ... oder kill -l [Signalname]"
 
 #: builtins.c:136
 msgid "let arg [arg ...]"
 msgstr "let Argument [Argument ...]"
 
 #: builtins.c:138
-msgid ""
-"read [-ers] [-a array] [-d delim] [-i text] [-n nchars] [-N nchars] [-p "
-"prompt] [-t timeout] [-u fd] [name ...]"
-msgstr ""
-"read [-ers] [-a Feld] [-d Begrenzer] [-i Text] [-n Zeichenanzahl] [-N "
-"Zeichenanzahl] [-p Prompt] [-t Zeitlimit] [-u fd] [Name ...]"
+msgid "read [-ers] [-a array] [-d delim] [-i text] [-n nchars] [-N nchars] [-p prompt] [-t timeout] [-u fd] [name ...]"
+msgstr "read [-ers] [-a Feld] [-d Begrenzer] [-i Text] [-n Zeichenanzahl] [-N Zeichenanzahl] [-p Prompt] [-t Zeitlimit] [-u fd] [Name ...]"
 
 #: builtins.c:140
 msgid "return [n]"
@@ -2415,8 +2343,7 @@ msgid "umask [-p] [-S] [mode]"
 msgstr "umask [-p] [-S] [Modus]"
 
 #: builtins.c:177
-#, fuzzy
-msgid "wait [-fn] [id ...]"
+msgid "wait [-n] [id ...]"
 msgstr "wait [-n] [id ...]"
 
 #: builtins.c:181
@@ -2444,12 +2371,8 @@ msgid "case WORD in [PATTERN [| PATTERN]...) COMMANDS ;;]... esac"
 msgstr "case Wort in [Muster [| Muster]...) Kommandos ;;]... esac"
 
 #: builtins.c:194
-msgid ""
-"if COMMANDS; then COMMANDS; [ elif COMMANDS; then COMMANDS; ]... [ else "
-"COMMANDS; ] fi"
-msgstr ""
-"if Kommandos; then Kommandos; [ elif Kommandos; then Kommandos; ]... [ else "
-"Kommandos; ] fi"
+msgid "if COMMANDS; then COMMANDS; [ elif COMMANDS; then COMMANDS; ]... [ else COMMANDS; ] fi"
+msgstr "if Kommandos; then Kommandos; [ elif Kommandos; then Kommandos; ]... [ else Kommandos; ] fi"
 
 #: builtins.c:196
 msgid "while COMMANDS; do COMMANDS; done"
@@ -2508,44 +2431,24 @@ msgid "printf [-v var] format [arguments]"
 msgstr "printf [-v var] Format [Argumente]"
 
 #: builtins.c:231
-msgid ""
-"complete [-abcdefgjksuv] [-pr] [-DE] [-o option] [-A action] [-G globpat] [-"
-"W wordlist]  [-F function] [-C command] [-X filterpat] [-P prefix] [-S "
-"suffix] [name ...]"
-msgstr ""
-"complete [-abcdefgjksuv] [-pr] [-DE] [-o Option] [-A Aktion] [-G Suchmuster] "
-"[-W Wortliste]  [-F Funktion] [-C Kommando] [-X Filtermuster] [-P Prefix] [-"
-"S Suffix] [Name ...]"
+msgid "complete [-abcdefgjksuv] [-pr] [-DE] [-o option] [-A action] [-G globpat] [-W wordlist]  [-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] [name ...]"
+msgstr "complete [-abcdefgjksuv] [-pr] [-DE] [-o Option] [-A Aktion] [-G Suchmuster] [-W Wortliste]  [-F Funktion] [-C Kommando] [-X Filtermuster] [-P Prefix] [-S Suffix] [Name ...]"
 
 #: builtins.c:235
-msgid ""
-"compgen [-abcdefgjksuv] [-o option] [-A action] [-G globpat] [-W wordlist]  "
-"[-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] [word]"
-msgstr ""
-"compgen [-abcdefgjksuv] [-o Option] [-A Aktion] [-G Suchmuster] [-W "
-"Wortliste] [-F Funktion] [-C Kommando] [-X Filtermuster] [-P Prefix] [-S "
-"Suffix] [Wort]"
+msgid "compgen [-abcdefgjksuv] [-o option] [-A action] [-G globpat] [-W wordlist]  [-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] [word]"
+msgstr "compgen [-abcdefgjksuv] [-o Option] [-A Aktion] [-G Suchmuster] [-W Wortliste] [-F Funktion] [-C Kommando] [-X Filtermuster] [-P Prefix] [-S Suffix] [Wort]"
 
 #: builtins.c:239
 msgid "compopt [-o|+o option] [-DE] [name ...]"
 msgstr "compopt [-o|+o Option] [-DE] [Name ...]"
 
 #: builtins.c:242
-msgid ""
-"mapfile [-d delim] [-n count] [-O origin] [-s count] [-t] [-u fd] [-C "
-"callback] [-c quantum] [array]"
-msgstr ""
-"mapfile [-d Begrenzer] [-n Anzahl] [-O Quelle] [-s Anzahl] [-t] [-u fd] [-C "
-"Callback] [-c Menge] [Feldvariable]"
+msgid "mapfile [-d delim] [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c quantum] [array]"
+msgstr "mapfile [-d Begrenzer] [-n Anzahl] [-O Quelle] [-s Anzahl] [-t] [-u fd] [-C Callback] [-c Menge] [Feldvariable]"
 
 #: builtins.c:244
-#, fuzzy
-msgid ""
-"readarray [-d delim] [-n count] [-O origin] [-s count] [-t] [-u fd] [-C "
-"callback] [-c quantum] [array]"
-msgstr ""
-"readarray [-n Anzahl] [-O Quelle] [-s Anzahl] [-t] [-u fd] [-C Callback] [-c "
-"Menge] [Feldvariable]"
+msgid "readarray [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c quantum] [array]"
+msgstr "readarray [-n Anzahl] [-O Quelle] [-s Anzahl] [-t] [-u fd] [-C Callback] [-c Menge] [Feldvariable]"
 
 # alias
 #: builtins.c:256
@@ -2563,8 +2466,7 @@ msgid ""
 "      -p\tprint all defined aliases in a reusable format\n"
 "    \n"
 "    Exit Status:\n"
-"    alias returns true unless a NAME is supplied for which no alias has "
-"been\n"
+"    alias returns true unless a NAME is supplied for which no alias has been\n"
 "    defined."
 msgstr ""
 "Definiert Aliase oder zeigt sie an.\n"
@@ -2614,30 +2516,25 @@ msgid ""
 "    Options:\n"
 "      -m  keymap         Use KEYMAP as the keymap for the duration of this\n"
 "                         command.  Acceptable keymap names are emacs,\n"
-"                         emacs-standard, emacs-meta, emacs-ctlx, vi, vi-"
-"move,\n"
+"                         emacs-standard, emacs-meta, emacs-ctlx, vi, vi-move,\n"
 "                         vi-command, and vi-insert.\n"
 "      -l                 List names of functions.\n"
 "      -P                 List function names and bindings.\n"
 "      -p                 List functions and bindings in a form that can be\n"
 "                         reused as input.\n"
-"      -S                 List key sequences that invoke macros and their "
-"values\n"
-"      -s                 List key sequences that invoke macros and their "
-"values\n"
+"      -S                 List key sequences that invoke macros and their values\n"
+"      -s                 List key sequences that invoke macros and their values\n"
 "                         in a form that can be reused as input.\n"
 "      -V                 List variable names and values\n"
 "      -v                 List variable names and values in a form that can\n"
 "                         be reused as input.\n"
 "      -q  function-name  Query about which keys invoke the named function.\n"
-"      -u  function-name  Unbind all keys which are bound to the named "
-"function.\n"
+"      -u  function-name  Unbind all keys which are bound to the named function.\n"
 "      -r  keyseq         Remove the binding for KEYSEQ.\n"
 "      -f  filename       Read key bindings from FILENAME.\n"
 "      -x  keyseq:shell-command\tCause SHELL-COMMAND to be executed when\n"
 "    \t\t\t\tKEYSEQ is entered.\n"
-"      -X                 List key sequences bound with -x and associated "
-"commands\n"
+"      -X                 List key sequences bound with -x and associated commands\n"
 "                         in a form that can be reused as input.\n"
 "    \n"
 "    Exit Status:\n"
@@ -2652,47 +2549,33 @@ msgstr ""
 "    re-read-init-file'.\n"
 "    \n"
 "    Optionen:\n"
-"      -m  Keymap         Benutzt KEYMAP as Tastaturbelegung für die "
-"Laufzeit\n"
-"                         dieses Kommandos.  Gültige Keymapnamen sind: "
-"emacs,\n"
-"                         emacs-standard, emacs-meta, emacs-ctlx, vi, vi-"
-"move,\n"
+"      -m  Keymap         Benutzt KEYMAP as Tastaturbelegung für die Laufzeit\n"
+"                         dieses Kommandos.  Gültige Keymapnamen sind: emacs,\n"
+"                         emacs-standard, emacs-meta, emacs-ctlx, vi, vi-move,\n"
 "                         vi-command und vi-insert.\n"
 "      -l                 Listet Funktionsnamen auf.\n"
 "      -P                 Listet Funktionsnamen und Tastenzuordnungen auf.\n"
-"      -p                 Listet Funktionsnamen und Tastenzuordnungen so "
-"auf,\n"
-"                         dass sie direkt als Eingabe verwendet werden "
-"können.\n"
-"      -S                 Listet Tastenfolgen und deren Werte auf, die "
-"Makros \n"
+"      -p                 Listet Funktionsnamen und Tastenzuordnungen so auf,\n"
+"                         dass sie direkt als Eingabe verwendet werden können.\n"
+"      -S                 Listet Tastenfolgen und deren Werte auf, die Makros \n"
 "                         aufrufen.\n"
-"      -s                 Listet Tastenfolgen und deren Werte auf, die "
-"Makros \n"
-"                         aufrufen, dass sie als Eingabe wiederverwendet "
-"werden\n"
+"      -s                 Listet Tastenfolgen und deren Werte auf, die Makros \n"
+"                         aufrufen, dass sie als Eingabe wiederverwendet werden\n"
 "                         können.\n"
 "      -V                 Listet Variablennamen und Werte auf.\n"
-"      -v                 Listet Variablennamen und Werte so auf, dass sie "
-"als\n"
+"      -v                 Listet Variablennamen und Werte so auf, dass sie als\n"
 "                         Eingabe verwendet werden können.\n"
 "      -q  Funktionsname  Sucht die Tastenfolgen, welche die angegebene\n"
 "                         Funktion aufrufen.\n"
-"      -u  Funktionsname  Entfernt alle der Funktion zugeordneten "
-"Tastenfolgen.\n"
-"      -r  Tastenfolge    Entfernt die Zuweisungen der angegebeben "
-"Tastenfolge.\n"
-"      -f  Dateiname      Liest die Tastenzuordnungen aus der angegebenen "
-"Datei.\n"
-"      -x  Tastenfolge:Shellkommando\tWeist der Tastenfolge das "
-"Shellkommando\n"
+"      -u  Funktionsname  Entfernt alle der Funktion zugeordneten Tastenfolgen.\n"
+"      -r  Tastenfolge    Entfernt die Zuweisungen der angegebeben Tastenfolge.\n"
+"      -f  Dateiname      Liest die Tastenzuordnungen aus der angegebenen Datei.\n"
+"      -x  Tastenfolge:Shellkommando\tWeist der Tastenfolge das Shellkommando\n"
 "    \t\t\t\t\tzu.\n"
 "      -X                                Listet mit -x erzeugte\n"
 "                                        Tastenfolgen und deren Werte\n"
 "                                        auf, die Makros aufrufen, dass\n"
-"                                        sie als Eingabe wiederverwendet "
-"werden\n"
+"                                        sie als Eingabe wiederverwendet werden\n"
 "                                        können.\n"
 "    \n"
 "    Rückgabewert: \n"
@@ -2746,8 +2629,7 @@ msgid ""
 "    \n"
 "    Execute SHELL-BUILTIN with arguments ARGs without performing command\n"
 "    lookup.  This is useful when you wish to reimplement a shell builtin\n"
-"    as a shell function, but need to execute the builtin within the "
-"function.\n"
+"    as a shell function, but need to execute the builtin within the function.\n"
 "    \n"
 "    Exit Status:\n"
 "    Returns the exit status of SHELL-BUILTIN, or false if SHELL-BUILTIN is\n"
@@ -2783,16 +2665,14 @@ msgstr ""
 "Gibt Informationen zum aktuellen Subrutinenaufruf aus.\n"
 "    \n"
 "    Ohne Argument wird die Zeilennummer und der Dateeiname angezeigt.  Mit\n"
-"    Argument werden Zeilennummer, Subroutinnenname und Dateiname "
-"ausgegeben.\n"
+"    Argument werden Zeilennummer, Subroutinnenname und Dateiname ausgegeben.\n"
 "    Mit diesen Informationen kann ein Stack Trace erzeugt werden.\n"
 "        \n"
 "    Das Argument gibt die angezeigte Position im Funktionsaufrufstapel an,\n"
 "    wobei 0 der aktuelle Funktionsaufruf ist.\n"
 "    \n"
 "    Rückgabewert:\n"
-"    Ist ungleich 0 wenn keine Shellfunktion ausgeführt wird oder das "
-"Argument\n"
+"    Ist ungleich 0 wenn keine Shellfunktion ausgeführt wird oder das Argument\n"
 "    ungültig ist, sonst 0."
 
 # cd
@@ -2800,22 +2680,16 @@ msgstr ""
 msgid ""
 "Change the shell working directory.\n"
 "    \n"
-"    Change the current directory to DIR.  The default DIR is the value of "
-"the\n"
+"    Change the current directory to DIR.  The default DIR is the value of the\n"
 "    HOME shell variable.\n"
 "    \n"
-"    The variable CDPATH defines the search path for the directory "
-"containing\n"
-"    DIR.  Alternative directory names in CDPATH are separated by a colon "
-"(:).\n"
-"    A null directory name is the same as the current directory.  If DIR "
-"begins\n"
+"    The variable CDPATH defines the search path for the directory containing\n"
+"    DIR.  Alternative directory names in CDPATH are separated by a colon (:).\n"
+"    A null directory name is the same as the current directory.  If DIR begins\n"
 "    with a slash (/), then CDPATH is not used.\n"
 "    \n"
-"    If the directory is not found, and the shell option `cdable_vars' is "
-"set,\n"
-"    the word is assumed to be  a variable name.  If that variable has a "
-"value,\n"
+"    If the directory is not found, and the shell option `cdable_vars' is set,\n"
+"    the word is assumed to be  a variable name.  If that variable has a value,\n"
 "    its value is used for DIR.\n"
 "    \n"
 "    Options:\n"
@@ -2831,18 +2705,16 @@ msgid ""
 "    \t\tattributes as a directory containing the file attributes\n"
 "    \n"
 "    The default is to follow symbolic links, as if `-L' were specified.\n"
-"    `..' is processed by removing the immediately previous pathname "
-"component\n"
+"    `..' is processed by removing the immediately previous pathname component\n"
 "    back to a slash or the beginning of DIR.\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns 0 if the directory is changed, and if $PWD is set successfully "
-"when\n"
+"    Returns 0 if the directory is changed, and if $PWD is set successfully when\n"
 "    -P is used; non-zero otherwise."
 msgstr ""
 "Wechselt das Arbeitsverzeichnis.\n"
 "\n"
-"    Wechselt in das angegebene Abeitsverzeichnis.  Ohne Angabe eines\n"
+"    Wechselt in das angegebene Arbeitsverzeichnis.  Ohne Angabe eines\n"
 "    Verzeichnisses wird in das in der HOME Variable definierte\n"
 "    Verzeichnis gewechselt.\n"
 "\n"
@@ -2960,8 +2832,7 @@ msgid ""
 "Execute a simple command or display information about commands.\n"
 "    \n"
 "    Runs COMMAND with ARGS suppressing  shell function lookup, or display\n"
-"    information about the specified COMMANDs.  Can be used to invoke "
-"commands\n"
+"    information about the specified COMMANDs.  Can be used to invoke commands\n"
 "    on disk when a function with the same name exists.\n"
 "    \n"
 "    Options:\n"
@@ -2973,8 +2844,7 @@ msgid ""
 "    Exit Status:\n"
 "    Returns exit status of COMMAND, or failure if COMMAND is not found."
 msgstr ""
-"Führt ein einfaches Kommando aus oder zeigt Informationen über Kommandos "
-"an.\n"
+"Führt ein einfaches Kommando aus oder zeigt Informationen über Kommandos an.\n"
 "\n"
 "    Führt das Kommando mit den angegebeneb Argumenten aus, ohne\n"
 "    Shell-Funktion nachzuschlagen oder zeigt Informationen über die\n"
@@ -2982,21 +2852,18 @@ msgstr ""
 "    werden, wenn eine Shell-Funktion gleichen Namens existiert.\n"
 "    \n"
 "    Optionen:\n"
-"      -p\ts wird ein Standardwert für PATH verwendet, der garantiert, dass "
-"alle\n"
+"      -p\ts wird ein Standardwert für PATH verwendet, der garantiert, dass alle\n"
 "    \t\tStandard-Dienstprogramme gefunden werden.\n"
 "      -v\tBeschreibung des Kommandos ausgeben.\n"
 "    \t\tÄhnlich dem eingebauten Kommando »type«.\n"
 "      -V\tEine ausführlichere Beschreibung jedes Kommandos ausgeben.\n"
 "    \n"
 "    Rückgabewert:\n"
-"    Gibt den Rückgabewert des Kommandos zurück, oder eine Fehlermeldung, "
-"wenn\n"
+"    Gibt den Rückgabewert des Kommandos zurück, oder eine Fehlermeldung, wenn\n"
 "    das Kommando nicht gefunden wird."
 
 # declare
 #: builtins.c:490
-#, fuzzy
 msgid ""
 "Set variable values and attributes.\n"
 "    \n"
@@ -3015,11 +2882,11 @@ msgid ""
 "      -a\tto make NAMEs indexed arrays (if supported)\n"
 "      -A\tto make NAMEs associative arrays (if supported)\n"
 "      -i\tto make NAMEs have the `integer' attribute\n"
-"      -l\tto convert the value of each NAME to lower case on assignment\n"
+"      -l\tto convert NAMEs to lower case on assignment\n"
 "      -n\tmake NAME a reference to the variable named by its value\n"
 "      -r\tto make NAMEs readonly\n"
 "      -t\tto make NAMEs have the `trace' attribute\n"
-"      -u\tto convert the value of each NAME to upper case on assignment\n"
+"      -u\tto convert NAMEs to upper case on assignment\n"
 "      -x\tto make NAMEs export\n"
 "    \n"
 "    Using `+' instead of `-' turns off the given attribute.\n"
@@ -3027,8 +2894,7 @@ msgid ""
 "    Variables with the integer attribute have arithmetic evaluation (see\n"
 "    the `let' command) performed when the variable is assigned a value.\n"
 "    \n"
-"    When used in a function, `declare' makes NAMEs local, as with the "
-"`local'\n"
+"    When used in a function, `declare' makes NAMEs local, as with the `local'\n"
 "    command.  The `-g' option suppresses this behavior.\n"
 "    \n"
 "    Exit Status:\n"
@@ -3119,8 +2985,7 @@ msgstr ""
 msgid ""
 "Write arguments to the standard output.\n"
 "    \n"
-"    Display the ARGs, separated by a single space character and followed by "
-"a\n"
+"    Display the ARGs, separated by a single space character and followed by a\n"
 "    newline, on the standard output.\n"
 "    \n"
 "    Options:\n"
@@ -3262,8 +3127,7 @@ msgstr ""
 msgid ""
 "Execute arguments as a shell command.\n"
 "    \n"
-"    Combine ARGs into a single string, use the result as input to the "
-"shell,\n"
+"    Combine ARGs into a single string, use the result as input to the shell,\n"
 "    and execute the resulting commands.\n"
 "    \n"
 "    Exit Status:\n"
@@ -3365,8 +3229,7 @@ msgid ""
 "Replace the shell with the given command.\n"
 "    \n"
 "    Execute COMMAND, replacing this shell with the specified program.\n"
-"    ARGUMENTS become the arguments to COMMAND.  If COMMAND is not "
-"specified,\n"
+"    ARGUMENTS become the arguments to COMMAND.  If COMMAND is not specified,\n"
 "    any redirections take effect in the current shell.\n"
 "    \n"
 "    Options:\n"
@@ -3374,13 +3237,11 @@ msgid ""
 "      -c\texecute COMMAND with an empty environment\n"
 "      -l\tplace a dash in the zeroth argument to COMMAND\n"
 "    \n"
-"    If the command cannot be executed, a non-interactive shell exits, "
-"unless\n"
+"    If the command cannot be executed, a non-interactive shell exits, unless\n"
 "    the shell option `execfail' is set.\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns success unless COMMAND is not found or a redirection error "
-"occurs."
+"    Returns success unless COMMAND is not found or a redirection error occurs."
 msgstr ""
 "Ersetzt die Shell durch das angegebene Kommando.\n"
 "    \n"
@@ -3411,8 +3272,7 @@ msgid ""
 msgstr ""
 "Beendet die aktuelle Shell.\n"
 "\n"
-"    Beendet die aktuelle Shell mit dem Rückgabewert N.  Wenn N nicht "
-"angegeben ist,\n"
+"    Beendet die aktuelle Shell mit dem Rückgabewert N.  Wenn N nicht angegeben ist,\n"
 "    wird der Rückgabewert des letzten ausgeführten Kommandos übernommen."
 
 # logout
@@ -3420,8 +3280,7 @@ msgstr ""
 msgid ""
 "Exit a login shell.\n"
 "    \n"
-"    Exits a login shell with exit status N.  Returns an error if not "
-"executed\n"
+"    Exits a login shell with exit status N.  Returns an error if not executed\n"
 "    in a login shell."
 msgstr ""
 "    Beendet eine Login-Shell.\n"
@@ -3435,15 +3294,13 @@ msgstr ""
 msgid ""
 "Display or execute commands from the history list.\n"
 "    \n"
-"    fc is used to list or edit and re-execute commands from the history "
-"list.\n"
+"    fc is used to list or edit and re-execute commands from the history list.\n"
 "    FIRST and LAST can be numbers specifying the range, or FIRST can be a\n"
 "    string, which means the most recent command beginning with that\n"
 "    string.\n"
 "    \n"
 "    Options:\n"
-"      -e ENAME\tselect which editor to use.  Default is FCEDIT, then "
-"EDITOR,\n"
+"      -e ENAME\tselect which editor to use.  Default is FCEDIT, then EDITOR,\n"
 "    \t\tthen vi\n"
 "      -l \tlist lines instead of editing\n"
 "      -n\tomit line numbers when listing\n"
@@ -3457,8 +3314,7 @@ msgid ""
 "    the last command.\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns success or status of executed command; non-zero if an error "
-"occurs."
+"    Returns success or status of executed command; non-zero if an error occurs."
 msgstr ""
 
 #: builtins.c:758
@@ -3485,10 +3341,8 @@ msgstr ""
 msgid ""
 "Move jobs to the background.\n"
 "    \n"
-"    Place the jobs identified by each JOB_SPEC in the background, as if "
-"they\n"
-"    had been started with `&'.  If JOB_SPEC is not present, the shell's "
-"notion\n"
+"    Place the jobs identified by each JOB_SPEC in the background, as if they\n"
+"    had been started with `&'.  If JOB_SPEC is not present, the shell's notion\n"
 "    of the current job is used.\n"
 "    \n"
 "    Exit Status:\n"
@@ -3508,8 +3362,7 @@ msgid ""
 "Remember or display program locations.\n"
 "    \n"
 "    Determine and remember the full pathname of each command NAME.  If\n"
-"    no arguments are given, information about remembered commands is "
-"displayed.\n"
+"    no arguments are given, information about remembered commands is displayed.\n"
 "    \n"
 "    Options:\n"
 "      -d\tforget the remembered location of each NAME\n"
@@ -3529,7 +3382,6 @@ msgstr ""
 
 # help
 #: builtins.c:812
-#, fuzzy
 msgid ""
 "Display information about builtin commands.\n"
 "    \n"
@@ -3544,11 +3396,10 @@ msgid ""
 "    \t\tPATTERN\n"
 "    \n"
 "    Arguments:\n"
-"      PATTERN\tPattern specifying a help topic\n"
+"      PATTERN\tPattern specifiying a help topic\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns success unless PATTERN is not found or an invalid option is "
-"given."
+"    Returns success unless PATTERN is not found or an invalid option is given."
 msgstr ""
 "Informationen zu eingebauten Kommandos.\n"
 "    \n"
@@ -3579,8 +3430,7 @@ msgid ""
 "    \n"
 "    Options:\n"
 "      -c\tclear the history list by deleting all of the entries\n"
-"      -d offset\tdelete the history entry at position OFFSET. Negative\n"
-"    \t\toffsets count back from the end of the history list\n"
+"      -d offset\tdelete the history entry at position OFFSET.\n"
 "    \n"
 "      -a\tappend history lines from this session to the history file\n"
 "      -n\tread all history lines not already read from the history file\n"
@@ -3598,14 +3448,13 @@ msgid ""
 "    \n"
 "    If the HISTTIMEFORMAT variable is set and not null, its value is used\n"
 "    as a format string for strftime(3) to print the time stamp associated\n"
-"    with each displayed history entry.  No time stamps are printed "
-"otherwise.\n"
+"    with each displayed history entry.  No time stamps are printed otherwise.\n"
 "    \n"
 "    Exit Status:\n"
 "    Returns success unless an invalid option is given or an error occurs."
 msgstr ""
 
-#: builtins.c:873
+#: builtins.c:872
 msgid ""
 "Display status of jobs.\n"
 "    \n"
@@ -3629,7 +3478,7 @@ msgid ""
 "    If -x is used, returns the exit status of COMMAND."
 msgstr ""
 
-#: builtins.c:900
+#: builtins.c:899
 msgid ""
 "Remove jobs from current shell.\n"
 "    \n"
@@ -3646,7 +3495,7 @@ msgid ""
 "    Returns success unless an invalid option or JOBSPEC is given."
 msgstr ""
 
-#: builtins.c:919
+#: builtins.c:918
 msgid ""
 "Send a signal to a job.\n"
 "    \n"
@@ -3669,15 +3518,14 @@ msgid ""
 "    Returns success unless an invalid option is given or an error occurs."
 msgstr ""
 
-#: builtins.c:943
+#: builtins.c:942
 msgid ""
 "Evaluate arithmetic expressions.\n"
 "    \n"
 "    Evaluate each ARG as an arithmetic expression.  Evaluation is done in\n"
 "    fixed-width integers with no check for overflow, though division by 0\n"
 "    is trapped and flagged as an error.  The following list of operators is\n"
-"    grouped into levels of equal-precedence operators.  The levels are "
-"listed\n"
+"    grouped into levels of equal-precedence operators.  The levels are listed\n"
 "    in order of decreasing precedence.\n"
 "    \n"
 "    \tid++, id--\tvariable post-increment, post-decrement\n"
@@ -3714,34 +3562,30 @@ msgid ""
 "    If the last ARG evaluates to 0, let returns 1; let returns 0 otherwise."
 msgstr ""
 
-#: builtins.c:988
+#: builtins.c:987
 msgid ""
 "Read a line from the standard input and split it into fields.\n"
 "    \n"
 "    Reads a single line from the standard input, or from file descriptor FD\n"
-"    if the -u option is supplied.  The line is split into fields as with "
-"word\n"
+"    if the -u option is supplied.  The line is split into fields as with word\n"
 "    splitting, and the first word is assigned to the first NAME, the second\n"
 "    word to the second NAME, and so on, with any leftover words assigned to\n"
-"    the last NAME.  Only the characters found in $IFS are recognized as "
-"word\n"
+"    the last NAME.  Only the characters found in $IFS are recognized as word\n"
 "    delimiters.\n"
 "    \n"
-"    If no NAMEs are supplied, the line read is stored in the REPLY "
-"variable.\n"
+"    If no NAMEs are supplied, the line read is stored in the REPLY variable.\n"
 "    \n"
 "    Options:\n"
 "      -a array\tassign the words read to sequential indices of the array\n"
 "    \t\tvariable ARRAY, starting at zero\n"
 "      -d delim\tcontinue until the first character of DELIM is read, rather\n"
 "    \t\tthan newline\n"
-"      -e\tuse Readline to obtain the line\n"
+"      -e\tuse Readline to obtain the line in an interactive shell\n"
 "      -i text\tuse TEXT as the initial text for Readline\n"
 "      -n nchars\treturn after reading NCHARS characters rather than waiting\n"
 "    \t\tfor a newline, but honor a delimiter if fewer than\n"
 "    \t\tNCHARS characters are read before the delimiter\n"
-"      -N nchars\treturn only after reading exactly NCHARS characters, "
-"unless\n"
+"      -N nchars\treturn only after reading exactly NCHARS characters, unless\n"
 "    \t\tEOF is encountered or read times out, ignoring any\n"
 "    \t\tdelimiter\n"
 "      -p prompt\toutput the string PROMPT without a trailing newline before\n"
@@ -3759,14 +3603,12 @@ msgid ""
 "      -u fd\tread from file descriptor FD instead of the standard input\n"
 "    \n"
 "    Exit Status:\n"
-"    The return code is zero, unless end-of-file is encountered, read times "
-"out\n"
-"    (in which case it's greater than 128), a variable assignment error "
-"occurs,\n"
+"    The return code is zero, unless end-of-file is encountered, read times out\n"
+"    (in which case it's greater than 128), a variable assignment error occurs,\n"
 "    or an invalid file descriptor is supplied as the argument to -u."
 msgstr ""
 
-#: builtins.c:1035
+#: builtins.c:1034
 msgid ""
 "Return from a shell function.\n"
 "    \n"
@@ -3778,7 +3620,7 @@ msgid ""
 "    Returns N, or failure if the shell is not executing a function or script."
 msgstr ""
 
-#: builtins.c:1048
+#: builtins.c:1047
 msgid ""
 "Set or unset values of shell options and positional parameters.\n"
 "    \n"
@@ -3821,8 +3663,7 @@ msgid ""
 "              physical     same as -P\n"
 "              pipefail     the return value of a pipeline is the status of\n"
 "                           the last command to exit with a non-zero status,\n"
-"                           or zero if no command exited with a non-zero "
-"status\n"
+"                           or zero if no command exited with a non-zero status\n"
 "              posix        change the behavior of bash where the default\n"
 "                           operation differs from the Posix standard to\n"
 "                           match the standard\n"
@@ -3846,8 +3687,7 @@ msgid ""
 "          by default when the shell is interactive.\n"
 "      -P  If set, do not resolve symbolic links when executing commands\n"
 "          such as cd which change the current directory.\n"
-"      -T  If set, the DEBUG and RETURN traps are inherited by shell "
-"functions.\n"
+"      -T  If set, the DEBUG and RETURN traps are inherited by shell functions.\n"
 "      --  Assign any remaining arguments to the positional parameters.\n"
 "          If there are no remaining arguments, the positional parameters\n"
 "          are unset.\n"
@@ -3864,7 +3704,7 @@ msgid ""
 "    Returns success unless an invalid option is given."
 msgstr ""
 
-#: builtins.c:1133
+#: builtins.c:1132
 msgid ""
 "Unset values and attributes of shell variables and functions.\n"
 "    \n"
@@ -3876,8 +3716,7 @@ msgid ""
 "      -n\ttreat each NAME as a name reference and unset the variable itself\n"
 "    \t\trather than the variable it references\n"
 "    \n"
-"    Without options, unset first tries to unset a variable, and if that "
-"fails,\n"
+"    Without options, unset first tries to unset a variable, and if that fails,\n"
 "    tries to unset a function.\n"
 "    \n"
 "    Some variables cannot be unset; also see `readonly'.\n"
@@ -3886,13 +3725,12 @@ msgid ""
 "    Returns success unless an invalid option is given or a NAME is read-only."
 msgstr ""
 
-#: builtins.c:1155
+#: builtins.c:1154
 msgid ""
 "Set export attribute for shell variables.\n"
 "    \n"
 "    Marks each NAME for automatic export to the environment of subsequently\n"
-"    executed commands.  If VALUE is supplied, assign VALUE before "
-"exporting.\n"
+"    executed commands.  If VALUE is supplied, assign VALUE before exporting.\n"
 "    \n"
 "    Options:\n"
 "      -f\trefer to shell functions\n"
@@ -3905,7 +3743,7 @@ msgid ""
 "    Returns success unless an invalid option is given or NAME is invalid."
 msgstr ""
 
-#: builtins.c:1174
+#: builtins.c:1173
 msgid ""
 "Mark shell variables as unchangeable.\n"
 "    \n"
@@ -3926,7 +3764,7 @@ msgid ""
 "    Returns success unless an invalid option is given or NAME is invalid."
 msgstr ""
 
-#: builtins.c:1196
+#: builtins.c:1195
 msgid ""
 "Shift positional parameters.\n"
 "    \n"
@@ -3937,7 +3775,7 @@ msgid ""
 "    Returns success unless N is negative or greater than $#."
 msgstr ""
 
-#: builtins.c:1208 builtins.c:1223
+#: builtins.c:1207 builtins.c:1222
 msgid ""
 "Execute commands from a file in the current shell.\n"
 "    \n"
@@ -3951,7 +3789,7 @@ msgid ""
 "    FILENAME cannot be read."
 msgstr ""
 
-#: builtins.c:1239
+#: builtins.c:1238
 msgid ""
 "Suspend shell execution.\n"
 "    \n"
@@ -3965,7 +3803,7 @@ msgid ""
 "    Returns success unless job control is not enabled or an error occurs."
 msgstr ""
 
-#: builtins.c:1255
+#: builtins.c:1254
 msgid ""
 "Evaluate conditional expression.\n"
 "    \n"
@@ -3999,8 +3837,7 @@ msgid ""
 "      -x FILE        True if the file is executable by you.\n"
 "      -O FILE        True if the file is effectively owned by you.\n"
 "      -G FILE        True if the file is effectively owned by your group.\n"
-"      -N FILE        True if the file has been modified since it was last "
-"read.\n"
+"      -N FILE        True if the file has been modified since it was last read.\n"
 "    \n"
 "      FILE1 -nt FILE2  True if file1 is newer than file2 (according to\n"
 "                       modification date).\n"
@@ -4021,8 +3858,7 @@ msgid ""
 "      STRING1 != STRING2\n"
 "                     True if the strings are not equal.\n"
 "      STRING1 < STRING2\n"
-"                     True if STRING1 sorts before STRING2 "
-"lexicographically.\n"
+"                     True if STRING1 sorts before STRING2 lexicographically.\n"
 "      STRING1 > STRING2\n"
 "                     True if STRING1 sorts after STRING2 lexicographically.\n"
 "    \n"
@@ -4049,7 +3885,7 @@ msgid ""
 msgstr ""
 
 # [
-#: builtins.c:1337
+#: builtins.c:1336
 msgid ""
 "Evaluate conditional expression.\n"
 "    \n"
@@ -4063,12 +3899,11 @@ msgstr ""
 "    schließt."
 
 # times
-#: builtins.c:1346
+#: builtins.c:1345
 msgid ""
 "Display process times.\n"
 "    \n"
-"    Prints the accumulated user and system times for the shell and all of "
-"its\n"
+"    Prints the accumulated user and system times for the shell and all of its\n"
 "    child processes.\n"
 "    \n"
 "    Exit Status:\n"
@@ -4082,12 +3917,11 @@ msgstr ""
 "    Rückgabewert:\n"
 "    Immer 0."
 
-#: builtins.c:1358
+#: builtins.c:1357
 msgid ""
 "Trap signals and other events.\n"
 "    \n"
-"    Defines and activates handlers to be run when the shell receives "
-"signals\n"
+"    Defines and activates handlers to be run when the shell receives signals\n"
 "    or other conditions.\n"
 "    \n"
 "    ARG is a command to be read and executed when the shell receives the\n"
@@ -4096,37 +3930,29 @@ msgid ""
 "    value.  If ARG is the null string each SIGNAL_SPEC is ignored by the\n"
 "    shell and by the commands it invokes.\n"
 "    \n"
-"    If a SIGNAL_SPEC is EXIT (0) ARG is executed on exit from the shell.  "
-"If\n"
-"    a SIGNAL_SPEC is DEBUG, ARG is executed before every simple command.  "
-"If\n"
-"    a SIGNAL_SPEC is RETURN, ARG is executed each time a shell function or "
-"a\n"
-"    script run by the . or source builtins finishes executing.  A "
-"SIGNAL_SPEC\n"
-"    of ERR means to execute ARG each time a command's failure would cause "
-"the\n"
+"    If a SIGNAL_SPEC is EXIT (0) ARG is executed on exit from the shell.  If\n"
+"    a SIGNAL_SPEC is DEBUG, ARG is executed before every simple command.  If\n"
+"    a SIGNAL_SPEC is RETURN, ARG is executed each time a shell function or a\n"
+"    script run by the . or source builtins finishes executing.  A SIGNAL_SPEC\n"
+"    of ERR means to execute ARG each time a command's failure would cause the\n"
 "    shell to exit when the -e option is enabled.\n"
 "    \n"
-"    If no arguments are supplied, trap prints the list of commands "
-"associated\n"
+"    If no arguments are supplied, trap prints the list of commands associated\n"
 "    with each signal.\n"
 "    \n"
 "    Options:\n"
 "      -l\tprint a list of signal names and their corresponding numbers\n"
 "      -p\tdisplay the trap commands associated with each SIGNAL_SPEC\n"
 "    \n"
-"    Each SIGNAL_SPEC is either a signal name in <signal.h> or a signal "
-"number.\n"
+"    Each SIGNAL_SPEC is either a signal name in <signal.h> or a signal number.\n"
 "    Signal names are case insensitive and the SIG prefix is optional.  A\n"
 "    signal may be sent to the shell with \"kill -signal $$\".\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns success unless a SIGSPEC is invalid or an invalid option is "
-"given."
+"    Returns success unless a SIGSPEC is invalid or an invalid option is given."
 msgstr ""
 
-#: builtins.c:1394
+#: builtins.c:1393
 msgid ""
 "Display information about command type.\n"
 "    \n"
@@ -4152,16 +3978,14 @@ msgid ""
 "      NAME\tCommand name to be interpreted.\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns success if all of the NAMEs are found; fails if any are not "
-"found."
+"    Returns success if all of the NAMEs are found; fails if any are not found."
 msgstr ""
 
-#: builtins.c:1425
+#: builtins.c:1424
 msgid ""
 "Modify shell resource limits.\n"
 "    \n"
-"    Provides control over the resources available to the shell and "
-"processes\n"
+"    Provides control over the resources available to the shell and processes\n"
 "    it creates, on systems that allow such control.\n"
 "    \n"
 "    Options:\n"
@@ -4205,7 +4029,7 @@ msgid ""
 "    Returns success unless an invalid option is supplied or an error occurs."
 msgstr ""
 
-#: builtins.c:1475
+#: builtins.c:1474
 msgid ""
 "Display or set file mode mask.\n"
 "    \n"
@@ -4223,44 +4047,38 @@ msgid ""
 "    Returns success unless MODE is invalid or an invalid option is given."
 msgstr ""
 
-#: builtins.c:1495
+#: builtins.c:1494
 msgid ""
 "Wait for job completion and return exit status.\n"
 "    \n"
-"    Waits for each process identified by an ID, which may be a process ID or "
-"a\n"
+"    Waits for each process identified by an ID, which may be a process ID or a\n"
 "    job specification, and reports its termination status.  If ID is not\n"
 "    given, waits for all currently active child processes, and the return\n"
-"    status is zero.  If ID is a job specification, waits for all processes\n"
+"    status is zero.  If ID is a job specification, waits for all processes\n"
 "    in that job's pipeline.\n"
 "    \n"
 "    If the -n option is supplied, waits for the next job to terminate and\n"
 "    returns its exit status.\n"
 "    \n"
-"    If the -f option is supplied, and job control is enabled, waits for the\n"
-"    specified ID to terminate, instead of waiting for it to change status.\n"
-"    \n"
 "    Exit Status:\n"
 "    Returns the status of the last ID; fails if ID is invalid or an invalid\n"
 "    option is given."
 msgstr ""
 
-#: builtins.c:1519
+#: builtins.c:1515
 msgid ""
 "Wait for process completion and return exit status.\n"
 "    \n"
-"    Waits for each process specified by a PID and reports its termination "
-"status.\n"
+"    Waits for each process specified by a PID and reports its termination status.\n"
 "    If PID is not given, waits for all currently active child processes,\n"
 "    and the return status is zero.  PID must be a process ID.\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns the status of the last PID; fails if PID is invalid or an "
-"invalid\n"
+"    Returns the status of the last PID; fails if PID is invalid or an invalid\n"
 "    option is given."
 msgstr ""
 
-#: builtins.c:1534
+#: builtins.c:1530
 msgid ""
 "Execute commands for each member in a list.\n"
 "    \n"
@@ -4273,7 +4091,7 @@ msgid ""
 "    Returns the status of the last command executed."
 msgstr ""
 
-#: builtins.c:1548
+#: builtins.c:1544
 msgid ""
 "Arithmetic for loop.\n"
 "    \n"
@@ -4290,7 +4108,7 @@ msgid ""
 "    Returns the status of the last command executed."
 msgstr ""
 
-#: builtins.c:1566
+#: builtins.c:1562
 msgid ""
 "Select words from a list and execute commands.\n"
 "    \n"
@@ -4310,7 +4128,7 @@ msgid ""
 "    Returns the status of the last command executed."
 msgstr ""
 
-#: builtins.c:1587
+#: builtins.c:1583
 msgid ""
 "Report time consumed by pipeline's execution.\n"
 "    \n"
@@ -4326,7 +4144,7 @@ msgid ""
 "    The return status is the return status of PIPELINE."
 msgstr ""
 
-#: builtins.c:1604
+#: builtins.c:1600
 msgid ""
 "Execute commands based on pattern matching.\n"
 "    \n"
@@ -4337,28 +4155,23 @@ msgid ""
 "    Returns the status of the last command executed."
 msgstr ""
 
-#: builtins.c:1616
+#: builtins.c:1612
 msgid ""
 "Execute commands based on conditional.\n"
 "    \n"
-"    The `if COMMANDS' list is executed.  If its exit status is zero, then "
-"the\n"
-"    `then COMMANDS' list is executed.  Otherwise, each `elif COMMANDS' list "
-"is\n"
+"    The `if COMMANDS' list is executed.  If its exit status is zero, then the\n"
+"    `then COMMANDS' list is executed.  Otherwise, each `elif COMMANDS' list is\n"
 "    executed in turn, and if its exit status is zero, the corresponding\n"
-"    `then COMMANDS' list is executed and the if command completes.  "
-"Otherwise,\n"
-"    the `else COMMANDS' list is executed, if present.  The exit status of "
-"the\n"
-"    entire construct is the exit status of the last command executed, or "
-"zero\n"
+"    `then COMMANDS' list is executed and the if command completes.  Otherwise,\n"
+"    the `else COMMANDS' list is executed, if present.  The exit status of the\n"
+"    entire construct is the exit status of the last command executed, or zero\n"
 "    if no condition tested true.\n"
 "    \n"
 "    Exit Status:\n"
 "    Returns the status of the last command executed."
 msgstr ""
 
-#: builtins.c:1633
+#: builtins.c:1629
 msgid ""
 "Execute commands as long as a test succeeds.\n"
 "    \n"
@@ -4369,7 +4182,7 @@ msgid ""
 "    Returns the status of the last command executed."
 msgstr ""
 
-#: builtins.c:1645
+#: builtins.c:1641
 msgid ""
 "Execute commands as long as a test does not succeed.\n"
 "    \n"
@@ -4380,7 +4193,7 @@ msgid ""
 "    Returns the status of the last command executed."
 msgstr ""
 
-#: builtins.c:1657
+#: builtins.c:1653
 msgid ""
 "Create a coprocess named NAME.\n"
 "    \n"
@@ -4393,13 +4206,12 @@ msgid ""
 "    The coproc command returns an exit status of 0."
 msgstr ""
 
-#: builtins.c:1671
+#: builtins.c:1667
 msgid ""
 "Define shell function.\n"
 "    \n"
 "    Create a shell function named NAME.  When invoked as a simple command,\n"
-"    NAME runs COMMANDs in the calling shell's context.  When NAME is "
-"invoked,\n"
+"    NAME runs COMMANDs in the calling shell's context.  When NAME is invoked,\n"
 "    the arguments are passed to the function as $1...$n, and the function's\n"
 "    name is in $FUNCNAME.\n"
 "    \n"
@@ -4407,7 +4219,7 @@ msgid ""
 "    Returns success unless NAME is readonly."
 msgstr ""
 
-#: builtins.c:1685
+#: builtins.c:1681
 msgid ""
 "Group commands as a unit.\n"
 "    \n"
@@ -4418,7 +4230,7 @@ msgid ""
 "    Returns the status of the last command executed."
 msgstr ""
 
-#: builtins.c:1697
+#: builtins.c:1693
 msgid ""
 "Resume job in foreground.\n"
 "    \n"
@@ -4433,7 +4245,7 @@ msgid ""
 msgstr ""
 
 # (( ))
-#: builtins.c:1712
+#: builtins.c:1708
 msgid ""
 "Evaluate arithmetic expression.\n"
 "    \n"
@@ -4453,16 +4265,13 @@ msgstr ""
 "       Gibt »1« zurück, wenn die Auswertung des letzten Arguments Null\n"
 "       ergibt, sonst »0«."
 
-#: builtins.c:1724
+#: builtins.c:1720
 msgid ""
 "Execute conditional command.\n"
 "    \n"
-"    Returns a status of 0 or 1 depending on the evaluation of the "
-"conditional\n"
-"    expression EXPRESSION.  Expressions are composed of the same primaries "
-"used\n"
-"    by the `test' builtin, and may be combined using the following "
-"operators:\n"
+"    Returns a status of 0 or 1 depending on the evaluation of the conditional\n"
+"    expression EXPRESSION.  Expressions are composed of the same primaries used\n"
+"    by the `test' builtin, and may be combined using the following operators:\n"
 "    \n"
 "      ( EXPRESSION )\tReturns the value of EXPRESSION\n"
 "      ! EXPRESSION\t\tTrue if EXPRESSION is false; else false\n"
@@ -4482,7 +4291,7 @@ msgid ""
 msgstr ""
 
 # variable_help
-#: builtins.c:1750
+#: builtins.c:1746
 msgid ""
 "Common shell variable names and usage.\n"
 "    \n"
@@ -4555,8 +4364,7 @@ msgstr ""
 "                Anzahl EOF Zeichen (Ctrl-D) abgewartet, bis die Shell\n"
 "                verlassen wird.  Der Vorgabewert ist 10. Ist IGNOREEOF\n"
 "                nicht gesetzt, signalisiert EOF das Ende der Eingabe.\n"
-"    MACHTYPE    Eine Zeichenkette die das aktuell laufende System "
-"beschreibt.\n"
+"    MACHTYPE    Eine Zeichenkette die das aktuell laufende System beschreibt.\n"
 "    MAILCHECK\tZeit in s, nach der nach E-Mail gesehen wird.\n"
 "    MAILPATH\tEine durch Doppelpunkt getrennte Liste von Dateinamen,\n"
 "                die nach E-Mail durchsucht werden.\n"
@@ -4594,7 +4402,7 @@ msgstr ""
 "                      Kommandos angibt.\n"
 
 # pushd
-#: builtins.c:1807
+#: builtins.c:1803
 msgid ""
 "Add directories to stack.\n"
 "    \n"
@@ -4650,7 +4458,7 @@ msgstr ""
 "    wurde oder der Verzeichniswechsel nicht erfolgreich war."
 
 # popd
-#: builtins.c:1841
+#: builtins.c:1837
 msgid ""
 "Remove directories from stack.\n"
 "    \n"
@@ -4704,7 +4512,7 @@ msgstr ""
 "        wurde oder der Verzeichniswechsel nicht erfolgreich war."
 
 # dirs
-#: builtins.c:1871
+#: builtins.c:1867
 msgid ""
 "Display directory stack.\n"
 "    \n"
@@ -4758,14 +4566,13 @@ msgstr ""
 "    Gibt Erfolg zurück, außer bei einer ungültigen Option oder wenn\n"
 "    ein Fehler auftritt."
 
-#: builtins.c:1902
-#, fuzzy
+#: builtins.c:1898
 msgid ""
 "Set and unset shell options.\n"
 "    \n"
 "    Change the setting of each shell option OPTNAME.  Without any option\n"
-"    arguments, list each supplied OPTNAME, or all shell options if no\n"
-"    OPTNAMEs are given, with an indication of whether or not each is set.\n"
+"    arguments, list all shell options with an indication of whether or not each\n"
+"    is set.\n"
 "    \n"
 "    Options:\n"
 "      -o\trestrict OPTNAMEs to those defined for use with `set -o'\n"
@@ -4798,7 +4605,7 @@ msgstr ""
 "    worden ist, wird Fehler zurückgegeben."
 
 # printf
-#: builtins.c:1923
+#: builtins.c:1919
 msgid ""
 "Formats and prints ARGUMENTS under control of the FORMAT.\n"
 "    \n"
@@ -4806,47 +4613,38 @@ msgid ""
 "      -v var\tassign the output to shell variable VAR rather than\n"
 "    \t\tdisplay it on the standard output\n"
 "    \n"
-"    FORMAT is a character string which contains three types of objects: "
-"plain\n"
-"    characters, which are simply copied to standard output; character "
-"escape\n"
+"    FORMAT is a character string which contains three types of objects: plain\n"
+"    characters, which are simply copied to standard output; character escape\n"
 "    sequences, which are converted and copied to the standard output; and\n"
-"    format specifications, each of which causes printing of the next "
-"successive\n"
+"    format specifications, each of which causes printing of the next successive\n"
 "    argument.\n"
 "    \n"
-"    In addition to the standard format specifications described in printf"
-"(1),\n"
+"    In addition to the standard format specifications described in printf(1),\n"
 "    printf interprets:\n"
 "    \n"
 "      %b\texpand backslash escape sequences in the corresponding argument\n"
 "      %q\tquote the argument in a way that can be reused as shell input\n"
-"      %(fmt)T\toutput the date-time string resulting from using FMT as a "
-"format\n"
+"      %(fmt)T\toutput the date-time string resulting from using FMT as a format\n"
 "    \t        string for strftime(3)\n"
 "    \n"
 "    The format is re-used as necessary to consume all of the arguments.  If\n"
 "    there are fewer arguments than the format requires,  extra format\n"
-"    specifications behave as if a zero value or null string, as "
-"appropriate,\n"
+"    specifications behave as if a zero value or null string, as appropriate,\n"
 "    had been supplied.\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns success unless an invalid option is given or a write or "
-"assignment\n"
+"    Returns success unless an invalid option is given or a write or assignment\n"
 "    error occurs."
 msgstr ""
 "Returns success unless an invalid option is given or a write or\n"
 "    assignment error occurs.<"
 
-#: builtins.c:1957
+#: builtins.c:1953
 msgid ""
 "Specify how arguments are to be completed by Readline.\n"
 "    \n"
-"    For each NAME, specify how arguments are to be completed.  If no "
-"options\n"
-"    are supplied, existing completion specifications are printed in a way "
-"that\n"
+"    For each NAME, specify how arguments are to be completed.  If no options\n"
+"    are supplied, existing completion specifications are printed in a way that\n"
 "    allows them to be reused as input.\n"
 "    \n"
 "    Options:\n"
@@ -4866,29 +4664,25 @@ msgid ""
 "    Returns success unless an invalid option is supplied or an error occurs."
 msgstr ""
 
-#: builtins.c:1985
+#: builtins.c:1981
 msgid ""
 "Display possible completions depending on the options.\n"
 "    \n"
 "    Intended to be used from within a shell function generating possible\n"
-"    completions.  If the optional WORD argument is supplied, matches "
-"against\n"
+"    completions.  If the optional WORD argument is supplied, matches against\n"
 "    WORD are generated.\n"
 "    \n"
 "    Exit Status:\n"
 "    Returns success unless an invalid option is supplied or an error occurs."
 msgstr ""
 
-#: builtins.c:2000
+#: builtins.c:1996
 msgid ""
 "Modify or display completion options.\n"
 "    \n"
-"    Modify the completion options for each NAME, or, if no NAMEs are "
-"supplied,\n"
-"    the completion currently being executed.  If no OPTIONs are given, "
-"print\n"
-"    the completion options for each NAME or the current completion "
-"specification.\n"
+"    Modify the completion options for each NAME, or, if no NAMEs are supplied,\n"
+"    the completion currently being executed.  If no OPTIONs are given, print\n"
+"    the completion options for each NAME or the current completion specification.\n"
 "    \n"
 "    Options:\n"
 "    \t-o option\tSet completion option OPTION for each NAME\n"
@@ -4910,26 +4704,21 @@ msgid ""
 "    have a completion specification defined."
 msgstr ""
 
-#: builtins.c:2030
+#: builtins.c:2026
 msgid ""
 "Read lines from the standard input into an indexed array variable.\n"
 "    \n"
-"    Read lines from the standard input into the indexed array variable "
-"ARRAY, or\n"
-"    from file descriptor FD if the -u option is supplied.  The variable "
-"MAPFILE\n"
+"    Read lines from the standard input into the indexed array variable ARRAY, or\n"
+"    from file descriptor FD if the -u option is supplied.  The variable MAPFILE\n"
 "    is the default ARRAY.\n"
 "    \n"
 "    Options:\n"
 "      -d delim\tUse DELIM to terminate lines, instead of newline\n"
-"      -n count\tCopy at most COUNT lines.  If COUNT is 0, all lines are "
-"copied\n"
-"      -O origin\tBegin assigning to ARRAY at index ORIGIN.  The default "
-"index is 0\n"
+"      -n count\tCopy at most COUNT lines.  If COUNT is 0, all lines are copied\n"
+"      -O origin\tBegin assigning to ARRAY at index ORIGIN.  The default index is 0\n"
 "      -s count\tDiscard the first COUNT lines read\n"
 "      -t\tRemove a trailing DELIM from each line read (default newline)\n"
-"      -u fd\tRead lines from file descriptor FD instead of the standard "
-"input\n"
+"      -u fd\tRead lines from file descriptor FD instead of the standard input\n"
 "      -C callback\tEvaluate CALLBACK each time QUANTUM lines are read\n"
 "      -c quantum\tSpecify the number of lines read between each call to\n"
 "    \t\t\tCALLBACK\n"
@@ -4942,18 +4731,16 @@ msgid ""
 "    element to be assigned and the line to be assigned to that element\n"
 "    as additional arguments.\n"
 "    \n"
-"    If not supplied with an explicit origin, mapfile will clear ARRAY "
-"before\n"
+"    If not supplied with an explicit origin, mapfile will clear ARRAY before\n"
 "    assigning to it.\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns success unless an invalid option is given or ARRAY is readonly "
-"or\n"
+"    Returns success unless an invalid option is given or ARRAY is readonly or\n"
 "    not an indexed array."
 msgstr ""
 
 # readarray
-#: builtins.c:2066
+#: builtins.c:2062
 msgid ""
 "Read lines from a file into an array variable.\n"
 "    \n"
index 2f22ab2fd8a27654a89fcf8272065fbe945f365e..24ad700759c640d2b750be30448ece754e713df0 100644 (file)
--- a/po/es.po
+++ b/po/es.po
-# Spanish translation for GNU bash-4.4
+# Mensajes en español para GNU bash
 # Copyright (C) 2018 Free Software Foundation, Inc.
 # This file is distributed under the same license as the bash package.
 # Cristian Othón Martínez Vera <cfuga@cfuga.mx>, 2000 - 2011.
 # Francisco Javier Serrador <fserrador@gmail.com>
+# Antonio Ceballos Roa <aceballos@gmail.com>, 2018
+#
 msgid ""
 msgstr ""
 "Project-Id-Version: GNU bash 4.4\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2018-04-27 14:15-0400\n"
-"PO-Revision-Date: 2018-04-24 15:37+0200\n"
-"Last-Translator: Francisco Javier Serrador <fserrador@gmail.com>\n"
+"POT-Creation-Date: 2016-09-10 12:42-0400\n"
+"PO-Revision-Date: 2018-06-04 22:22+0200\n"
+"Last-Translator: Antonio Ceballos Roa <aceballos@gmail.com>\n"
 "Language-Team: Spanish <es@tp.org.es>\n"
+"Language: es\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"Language: es\n"
 "X-Bugs: Report translation errors to the Language-Team address.\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"X-Generator: Poedit 2.0.4\n"
 
-# Vocabulario
-# array: unimatriz, matríz lineal
-# shift: arrastre lateral
-#: arrayfunc.c:58
+#: arrayfunc.c:54
 msgid "bad array subscript"
-msgstr "subíndice de unimatriz equivocado"
+msgstr "subíndice de matriz incorrecto"
 
-#: arrayfunc.c:373 builtins/declare.def:618 variables.c:2188 variables.c:2214
-#: variables.c:2922
+#: arrayfunc.c:368 builtins/declare.def:574 variables.c:2092 variables.c:2118
+#: variables.c:2730
 #, c-format
 msgid "%s: removing nameref attribute"
-msgstr "%s: quitando atributo de referencial del nombre"
+msgstr "%s: se elimina el atributo nameref"
 
-#: arrayfunc.c:398 builtins/declare.def:831
+#: arrayfunc.c:393 builtins/declare.def:780
 #, c-format
 msgid "%s: cannot convert indexed to associative array"
-msgstr "%s: no se puede convertir la matriz de indizada a asociativa"
+msgstr "%s: no se puede convertir la matriz indexada en asociativa"
 
-#: arrayfunc.c:582
+#: arrayfunc.c:578
 #, c-format
 msgid "%s: invalid associative array key"
-msgstr "%s: índice de unimatriz asociativa inválido"
+msgstr "%s: clave de matriz asociativa no válida"
 
-#: arrayfunc.c:584
+#: arrayfunc.c:580
 #, c-format
 msgid "%s: cannot assign to non-numeric index"
 msgstr "%s: no se puede asignar a un índice que no es numérico"
 
-#: arrayfunc.c:629
+#: arrayfunc.c:625
 #, c-format
 msgid "%s: %s: must use subscript when assigning associative array"
 msgstr "%s: %s: se debe usar un subíndice al asignar a una matriz asociativa"
 
-#: bashhist.c:436
+#: bashhist.c:421
 #, c-format
 msgid "%s: cannot create: %s"
 msgstr "%s: no se puede crear: %s"
 
-#: bashline.c:4111
+#: bashline.c:4091
 msgid "bash_execute_unix_command: cannot find keymap for command"
-msgstr ""
-"bash_execute_unix_command: no se puede encontrar la combinación de teclas "
-"para el mandato"
+msgstr "bash_execute_unix_command: no se puede encontrar la combinación de teclas para la orden"
 
-#: bashline.c:4221
+#: bashline.c:4189
 #, c-format
 msgid "%s: first non-whitespace character is not `\"'"
 msgstr "%s: el primer carácter que no es espacio en blanco no es «\"»"
 
-#: bashline.c:4250
+#: bashline.c:4218
 #, c-format
 msgid "no closing `%c' in %s"
 msgstr "no hay un `%c' que cierre en %s"
 
-#: bashline.c:4284
+#: bashline.c:4252
 #, c-format
 msgid "%s: missing colon separator"
 msgstr "%s: falta un «:» separador"
 
-#: braces.c:331
+#: braces.c:329
 #, c-format
 msgid "brace expansion: cannot allocate memory for %s"
-msgstr "rama expansión: no puede reubicar memoria para %s"
+msgstr "expansión de llaves: no se puede asignar memoria a %s"
 
-#: braces.c:429
-#, fuzzy, c-format
-msgid "brace expansion: failed to allocate memory for %u elements"
-msgstr "expansión de rama: fallado para asignar memoria para %d elementos"
+#: braces.c:427
+#, c-format
+msgid "brace expansion: failed to allocate memory for %d elements"
+msgstr "expansión de llaves: fallo al asignar memoria a %d elementos"
 
-#: braces.c:473
+#: braces.c:471
 #, c-format
 msgid "brace expansion: failed to allocate memory for `%s'"
-msgstr "rama expansiva: fallada a reservar memoria para «%s»"
+msgstr "expansión de llaves: fallo al asignar memoria a «%s»"
 
-#: builtins/alias.def:131
+#: builtins/alias.def:133
 #, c-format
 msgid "`%s': invalid alias name"
 msgstr "`%s': nombre de alias inválido"
 
-#: builtins/bind.def:122 builtins/bind.def:125
+#: builtins/bind.def:123 builtins/bind.def:126
 msgid "line editing not enabled"
 msgstr "no se activó la edición de línea"
 
-#: builtins/bind.def:212
+#: builtins/bind.def:213
 #, c-format
 msgid "`%s': invalid keymap name"
 msgstr "`%s': nombre de combinación de teclas inválido"
 
-#: builtins/bind.def:252
+#: builtins/bind.def:253
 #, c-format
 msgid "%s: cannot read: %s"
 msgstr "%s: no se puede leer: %s"
 
-#: builtins/bind.def:304 builtins/bind.def:334
+#: builtins/bind.def:270
+#, c-format
+msgid "`%s': cannot unbind"
+msgstr "`%s': no se puede borrar la asignación"
+
+#: builtins/bind.def:308 builtins/bind.def:338
 #, c-format
 msgid "`%s': unknown function name"
 msgstr "`%s': nombre de función desconocido"
 
-#: builtins/bind.def:312
+#: builtins/bind.def:316
 #, c-format
 msgid "%s is not bound to any keys.\n"
 msgstr "%s no está asignado a ninguna tecla.\n"
 
-#: builtins/bind.def:316
+#: builtins/bind.def:320
 #, c-format
 msgid "%s can be invoked via "
 msgstr "%s se puede invocar vía "
 
-#: builtins/bind.def:353 builtins/bind.def:368
-#, c-format
-msgid "`%s': cannot unbind"
-msgstr "%s: no se puede borrar la asignación"
-
-#: builtins/break.def:77 builtins/break.def:119
+#: builtins/break.def:79 builtins/break.def:121
 msgid "loop count"
-msgstr "cuenta de ciclo"
+msgstr "cuenta de bucle"
 
-#: builtins/break.def:139
+#: builtins/break.def:141
 msgid "only meaningful in a `for', `while', or `until' loop"
-msgstr ""
-"sólo tiene significado dentro de `for', `while', o `until' como un bucle"
+msgstr "solo tiene significado en un bucle `for', `while', o `until'"
 
 #: builtins/caller.def:136
 msgid ""
@@ -151,238 +146,238 @@ msgstr ""
 "    \n"
 "    Sin EXPR, devuelve "
 
-#: builtins/cd.def:319
+#: builtins/cd.def:321
 msgid "HOME not set"
 msgstr "HOME no está definido"
 
-#: builtins/cd.def:327 builtins/common.c:161 test.c:889
+#: builtins/cd.def:329 builtins/common.c:167 test.c:885
 msgid "too many arguments"
 msgstr "demasiados argumentos"
 
-#: builtins/cd.def:334
+#: builtins/cd.def:336
 msgid "null directory"
 msgstr "directorio nulo"
 
-#: builtins/cd.def:345
+#: builtins/cd.def:347
 msgid "OLDPWD not set"
 msgstr "OLDPWD no está establecido"
 
-#: builtins/common.c:96
+#: builtins/common.c:102
 #, c-format
 msgid "line %d: "
 msgstr "línea %d: "
 
-#: builtins/common.c:134 error.c:264
+#: builtins/common.c:140 error.c:265
 #, c-format
 msgid "warning: "
 msgstr "aviso: "
 
-#: builtins/common.c:148
+#: builtins/common.c:154
 #, c-format
 msgid "%s: usage: "
 msgstr "%s: modo de empleo: "
 
-#: builtins/common.c:193 shell.c:510 shell.c:838
+#: builtins/common.c:199 shell.c:514 shell.c:825
 #, c-format
 msgid "%s: option requires an argument"
 msgstr "%s: la opción requiere un argumento"
 
-#: builtins/common.c:200
+#: builtins/common.c:206
 #, c-format
 msgid "%s: numeric argument required"
 msgstr "%s: se requiere un argumento numérico"
 
-#: builtins/common.c:207
+#: builtins/common.c:213
 #, c-format
 msgid "%s: not found"
 msgstr "%s: no encontrado"
 
-#: builtins/common.c:216 shell.c:851
+#: builtins/common.c:222 shell.c:838
 #, c-format
 msgid "%s: invalid option"
 msgstr "%s: opción inválida"
 
-#: builtins/common.c:223
+#: builtins/common.c:229
 #, c-format
 msgid "%s: invalid option name"
-msgstr "%s: nombre opcional inválido"
+msgstr "%s: nombre de opción inválido"
 
-#: builtins/common.c:230 execute_cmd.c:2342 general.c:294 general.c:299
+#: builtins/common.c:236 general.c:293 general.c:298
 #, c-format
 msgid "`%s': not a valid identifier"
 msgstr "`%s': no es un identificador válido"
 
-#: builtins/common.c:240
+#: builtins/common.c:246
 msgid "invalid octal number"
 msgstr "número octal inválido"
 
-#: builtins/common.c:242
+#: builtins/common.c:248
 msgid "invalid hex number"
 msgstr "número hexadecimal inválido"
 
-#: builtins/common.c:244 expr.c:1538
+#: builtins/common.c:250 expr.c:1473
 msgid "invalid number"
 msgstr "número inválido"
 
-#: builtins/common.c:252
+#: builtins/common.c:258
 #, c-format
 msgid "%s: invalid signal specification"
-msgstr "%s: señal especificada no válida"
+msgstr "%s: la especificación de señal no es válida"
 
-#: builtins/common.c:259
+#: builtins/common.c:265
 #, c-format
 msgid "`%s': not a pid or valid job spec"
-msgstr "`%s': no es un pid o una especificación válida de tarea"
+msgstr "`%s': no es un pid o una especificación válida de trabajo"
 
-#: builtins/common.c:266 error.c:510
+#: builtins/common.c:272 error.c:511
 #, c-format
 msgid "%s: readonly variable"
 msgstr "%s: variable de sólo lectura"
 
-#: builtins/common.c:274
+#: builtins/common.c:280
 #, c-format
 msgid "%s: %s out of range"
 msgstr "%s: %s fuera de rango"
 
-#: builtins/common.c:274 builtins/common.c:276
+#: builtins/common.c:280 builtins/common.c:282
 msgid "argument"
 msgstr "argumento"
 
-#: builtins/common.c:276
+#: builtins/common.c:282
 #, c-format
 msgid "%s out of range"
 msgstr "%s fuera de rango"
 
-#: builtins/common.c:284
+#: builtins/common.c:290
 #, c-format
 msgid "%s: no such job"
-msgstr "%s: no existe esa tarea"
+msgstr "%s: no existe ese trabajo"
 
-#: builtins/common.c:292
+#: builtins/common.c:298
 #, c-format
 msgid "%s: no job control"
-msgstr "%s: no hay control de tareas"
+msgstr "%s: no hay control de trabajos"
 
-#: builtins/common.c:294
+#: builtins/common.c:300
 msgid "no job control"
-msgstr "no hay control de tarea"
+msgstr "no hay control de trabajos"
 
-#: builtins/common.c:304
+#: builtins/common.c:310
 #, c-format
 msgid "%s: restricted"
 msgstr "%s: restringido"
 
-#: builtins/common.c:306
+#: builtins/common.c:312
 msgid "restricted"
 msgstr "restringido"
 
-#: builtins/common.c:314
+#: builtins/common.c:320
 #, c-format
 msgid "%s: not a shell builtin"
-msgstr "%s: no una shell interna"
+msgstr "%s: no es una orden interna de shell"
 
-#: builtins/common.c:323
+#: builtins/common.c:329
 #, c-format
 msgid "write error: %s"
 msgstr "error de escritura: %s"
 
-#: builtins/common.c:331
+#: builtins/common.c:337
 #, c-format
 msgid "error setting terminal attributes: %s"
 msgstr "error al establecer los atributos de la terminal: %s"
 
-#: builtins/common.c:333
+#: builtins/common.c:339
 #, c-format
 msgid "error getting terminal attributes: %s"
 msgstr "error al obtener los atributos de la terminal: %s"
 
-#: builtins/common.c:579
+#: builtins/common.c:585
 #, c-format
 msgid "%s: error retrieving current directory: %s: %s\n"
-msgstr "%s: error obteniendo directorio actual: %s: %s\n"
+msgstr "%s: error al obtener el directorio actual: %s: %s\n"
 
-#: builtins/common.c:645 builtins/common.c:647
+#: builtins/common.c:651 builtins/common.c:653
 #, c-format
 msgid "%s: ambiguous job spec"
-msgstr "%s: especificación de tarea ambigua"
+msgstr "%s: especificación de trabajo ambigua"
 
-#: builtins/common.c:908
+#: builtins/common.c:918
 msgid "help not available in this version"
-msgstr "ayuda no disponible dentro de esta versión"
+msgstr "ayuda no disponible en esta versión"
 
 #: builtins/complete.def:278
 #, c-format
 msgid "%s: invalid action name"
 msgstr "%s: nombre de acción inválido"
 
-#: builtins/complete.def:452 builtins/complete.def:653
-#: builtins/complete.def:874
+#: builtins/complete.def:452 builtins/complete.def:647
+#: builtins/complete.def:858
 #, c-format
 msgid "%s: no completion specification"
-msgstr "%s: no hay completado de especificación"
+msgstr "%s: no hay especificación para completado"
 
-#: builtins/complete.def:707
+#: builtins/complete.def:699
 msgid "warning: -F option may not work as you expect"
 msgstr "aviso: es posible que la opción -F no funcione como se espera"
 
-#: builtins/complete.def:709
+#: builtins/complete.def:701
 msgid "warning: -C option may not work as you expect"
 msgstr "aviso: es posible que la opción -C no funcione como se espera"
 
-#: builtins/complete.def:847
+#: builtins/complete.def:831
 msgid "not currently executing completion function"
 msgstr "no se está ejecutando la función de completado"
 
 # sólo se puede usar. sv
 # De acuerdo. cfuga
-#: builtins/declare.def:132
+#: builtins/declare.def:127
 msgid "can only be used in a function"
-msgstr "sólo se puede emplear dentro de una función"
+msgstr "sólo se puede usar dentro de una función"
 
-#: builtins/declare.def:369 builtins/declare.def:736
+#: builtins/declare.def:332 builtins/declare.def:685
 #, c-format
 msgid "%s: reference variable cannot be an array"
-msgstr "%s: referencia variable no puede ser una unimatriz"
+msgstr "%s: referencia variable no puede ser una matriz"
 
-#: builtins/declare.def:380 variables.c:3161
+#: builtins/declare.def:343 variables.c:2959
 #, c-format
 msgid "%s: nameref variable self references not allowed"
-msgstr "%s: variable nombrada referenciada a sí mismo no permitido"
+msgstr "%s: no se permiten las autoreferencias a variables nameref"
 
-#: builtins/declare.def:385 variables.c:2018 variables.c:3083 variables.c:3095
-#: variables.c:3158
+#: builtins/declare.def:348 variables.c:1928 variables.c:2877 variables.c:2889
+#: variables.c:2956
 #, c-format
 msgid "%s: circular name reference"
-msgstr "%s: nombre circular referenciado"
+msgstr "%s: referencia de nombre circular"
 
-#: builtins/declare.def:390 builtins/declare.def:742 builtins/declare.def:753
+#: builtins/declare.def:353 builtins/declare.def:691 builtins/declare.def:702
 #, c-format
 msgid "`%s': invalid variable name for name reference"
-msgstr "`%s': nombre variable inválido para referencia del nombre"
+msgstr "`%s': nombre variable inválido para referencia de nombre"
 
-#: builtins/declare.def:500
+#: builtins/declare.def:463
 msgid "cannot use `-f' to make functions"
 msgstr "no se puede usar `-f' para hacer funciones"
 
-#: builtins/declare.def:512 execute_cmd.c:5797
+#: builtins/declare.def:475 execute_cmd.c:5632
 #, c-format
 msgid "%s: readonly function"
 msgstr "%s: función de sólo lectura"
 
-#: builtins/declare.def:804
+#: builtins/declare.def:753
 #, c-format
 msgid "%s: quoted compound array assignment deprecated"
-msgstr "%s: asignación entrecomillado compuesto matriciado obsoleto"
+msgstr "%s: asignación obsoleta de matriz compuesta entrecomillada"
 
-#: builtins/declare.def:818
+#: builtins/declare.def:767
 #, c-format
 msgid "%s: cannot destroy array variables in this way"
 msgstr "%s: no se pueden destruir variables de matriz de esta forma"
 
-#: builtins/declare.def:825 builtins/read.def:784
+#: builtins/declare.def:774 builtins/read.def:751
 #, c-format
 msgid "%s: cannot convert associative to indexed array"
-msgstr "%s: no se puede convertir una matriz asociativa a indizada"
+msgstr "%s: no se puede convertir una matriz asociativa a indexada"
 
 #: builtins/enable.def:143 builtins/enable.def:151
 msgid "dynamic loading not available"
@@ -401,7 +396,7 @@ msgstr "no se puede encontrar %s en el objeto compartido %s: %s"
 #: builtins/enable.def:387
 #, c-format
 msgid "load function for %s returns failure (%d): not loaded"
-msgstr "función de carga para %s devuelve fallo (%d): no cargado"
+msgstr "función de carga para %s devuelve fallo (%d): no se ha efectuado la carga"
 
 #: builtins/enable.def:512
 #, c-format
@@ -413,73 +408,73 @@ msgstr "%s: no cargado dinámicamente"
 msgid "%s: cannot delete: %s"
 msgstr "%s: no se puede borrar: %s"
 
-#: builtins/evalfile.c:138 builtins/hash.def:184 execute_cmd.c:5629
+#: builtins/evalfile.c:144 builtins/hash.def:172 execute_cmd.c:5472
 #, c-format
 msgid "%s: is a directory"
 msgstr "%s: es un directorio"
 
-#: builtins/evalfile.c:144
+#: builtins/evalfile.c:150
 #, c-format
 msgid "%s: not a regular file"
 msgstr "%s: no es un fichero regular"
 
-#: builtins/evalfile.c:153
+#: builtins/evalfile.c:159
 #, c-format
 msgid "%s: file is too large"
 msgstr "%s: el fichero es demasiado grande"
 
 # file=fichero. archive=archivo. Si no, es imposible traducir tar. sv
 # De acuerdo. Corregido en todo el fichero. cfuga
-#: builtins/evalfile.c:188 builtins/evalfile.c:206 shell.c:1623
+#: builtins/evalfile.c:194 builtins/evalfile.c:212 shell.c:1578
 #, c-format
 msgid "%s: cannot execute binary file"
 msgstr "%s: no se puede ejecutar el fichero binario"
 
-#: builtins/exec.def:155 builtins/exec.def:157 builtins/exec.def:237
+#: builtins/exec.def:156 builtins/exec.def:158 builtins/exec.def:235
 #, c-format
 msgid "%s: cannot execute: %s"
 msgstr "%s: no se puede ejecutar: %s"
 
-#: builtins/exit.def:64
+#: builtins/exit.def:67
 #, c-format
 msgid "logout\n"
-msgstr "salida\n"
+msgstr "cerrar sesión\n"
 
-#: builtins/exit.def:89
+#: builtins/exit.def:92
 msgid "not login shell: use `exit'"
-msgstr "no es un shell de entrada: use `exit'"
+msgstr "no es un shell de inicio de sesión: utilice `exit'"
 
-#: builtins/exit.def:121
+#: builtins/exit.def:124
 #, c-format
 msgid "There are stopped jobs.\n"
-msgstr "Hay tareas detenidas.\n"
+msgstr "Hay trabajos detenidos.\n"
 
-#: builtins/exit.def:123
+#: builtins/exit.def:126
 #, c-format
 msgid "There are running jobs.\n"
-msgstr "Hay tareas en ejecución.\n"
+msgstr "Hay trabajos en ejecución.\n"
 
-#: builtins/fc.def:265
+#: builtins/fc.def:269
 msgid "no command found"
-msgstr "no se encontró el mandato"
+msgstr "no se ha encontrado ninguna orden"
 
-#: builtins/fc.def:323 builtins/fc.def:372
+#: builtins/fc.def:327 builtins/fc.def:376
 msgid "history specification"
 msgstr "especificación de historia"
 
-#: builtins/fc.def:393
+#: builtins/fc.def:397
 #, c-format
 msgid "%s: cannot open temp file: %s"
 msgstr "%s: no se puede abrir el fichero temporal: %s"
 
-#: builtins/fg_bg.def:152 builtins/jobs.def:284
+#: builtins/fg_bg.def:153 builtins/jobs.def:284
 msgid "current"
 msgstr "actual"
 
-#: builtins/fg_bg.def:161
+#: builtins/fg_bg.def:162
 #, c-format
 msgid "job %d started without job control"
-msgstr "tarea %d iniciada sin control de tarea"
+msgstr "trabajo %d iniciado sin control de trabajo"
 
 #: builtins/getopt.c:110
 #, c-format
@@ -491,40 +486,38 @@ msgstr "%s: opción ilegal -- %c\n"
 msgid "%s: option requires an argument -- %c\n"
 msgstr "%s: la opción requiere un argumento -- %c\n"
 
-#: builtins/hash.def:91
+#: builtins/hash.def:92
 msgid "hashing disabled"
 msgstr "asociación desactivada"
 
-#: builtins/hash.def:138
+#: builtins/hash.def:139
 #, c-format
 msgid "%s: hash table empty\n"
 msgstr "%s: tabla de asociación vacía\n"
 
-#: builtins/hash.def:266
+#: builtins/hash.def:254
 #, c-format
 msgid "hits\tcommand\n"
-msgstr "coinc\tmandato\n"
+msgstr "coinc\torden\n"
 
-#: builtins/help.def:133
+#: builtins/help.def:135
+#, c-format
 msgid "Shell commands matching keyword `"
 msgid_plural "Shell commands matching keywords `"
-msgstr[0] "Orden del shell que coinciden con la palabra `"
-msgstr[1] "Órdenes del shell que coinciden con la palabra `"
+msgstr[0] "Órdenes de shell que coinciden con la palabra clave`"
+msgstr[1] "Órdenes de shell que coinciden con las palabras claves`"
 
-#: builtins/help.def:185
+#: builtins/help.def:187
 #, c-format
-msgid ""
-"no help topics match `%s'.  Try `help help' or `man -k %s' or `info %s'."
-msgstr ""
-"no hay temas de ayuda que coincidan con `%s'.  Pruebe `help help' o `man -k %"
-"s' o `info %s'."
+msgid "no help topics match `%s'.  Try `help help' or `man -k %s' or `info %s'."
+msgstr "no hay temas de ayuda que coincidan con `%s'.  Pruebe `help help' o `man -k %s' o `info %s'."
 
-#: builtins/help.def:224
+#: builtins/help.def:226
 #, c-format
 msgid "%s: cannot open: %s"
 msgstr "%s: no se puede abrir: %s"
 
-#: builtins/help.def:524
+#: builtins/help.def:526
 #, c-format
 msgid ""
 "These shell commands are defined internally.  Type `help' to see this list.\n"
@@ -535,32 +528,30 @@ msgid ""
 "A star (*) next to a name means that the command is disabled.\n"
 "\n"
 msgstr ""
-"Estas órdenes del shell están definidas internamente.  Teclee `help' para\n"
+"Estas órdenes de shell están definidas internamente.  Teclee `help' para\n"
 "ver esta lista.\n"
 "Teclee `help nombre' para saber más sobre la función `nombre'.\n"
-"Use `info bash' para saber más sobre el shell en general.\n"
-"Use `man -k' o `info' para saber más sobre los mandatos que no están en\n"
+"Utilice `info bash' para saber más sobre la shell en general.\n"
+"Utilice `man -k' o `info' para saber más sobre las órdenes que no están en\n"
 "esta lista.\n"
 "\n"
-"Un asterisco (*) junto a un nombre significa que el comando está "
-"desactivado.\n"
+"Un asterisco (*) junto a un nombre significa que la orden está desactivada.\n"
 "\n"
 
-#: builtins/history.def:154
+#: builtins/history.def:155
 msgid "cannot use more than one of -anrw"
 msgstr "no se puede usar más de uno de -anrw"
 
-#: builtins/history.def:187 builtins/history.def:197 builtins/history.def:212
-#: builtins/history.def:229 builtins/history.def:241 builtins/history.def:248
+#: builtins/history.def:187
 msgid "history position"
 msgstr "posición en la historia"
 
-#: builtins/history.def:331
+#: builtins/history.def:264
 #, c-format
 msgid "%s: invalid timestamp"
-msgstr "%s: sello inválido"
+msgstr "%s: marca de tiempo inválida"
 
-#: builtins/history.def:442
+#: builtins/history.def:375
 #, c-format
 msgid "%s: history expansion failed"
 msgstr "%s: falló la expansión de la historia"
@@ -574,87 +565,87 @@ msgstr "%s: falló inlib"
 msgid "no other options allowed with `-x'"
 msgstr "no se permiten otras opciones con `-x'"
 
-#: builtins/kill.def:200
+#: builtins/kill.def:202
 #, c-format
 msgid "%s: arguments must be process or job IDs"
-msgstr "%s: argumentos deben ser procesos o los ID de tareas"
+msgstr "%s: los argumentos deben ser IDs de procesos o trabajos"
 
-#: builtins/kill.def:263
+#: builtins/kill.def:265
 msgid "Unknown error"
 msgstr "Error desconocido"
 
-#: builtins/let.def:97 builtins/let.def:122 expr.c:614 expr.c:632
+#: builtins/let.def:97 builtins/let.def:122 expr.c:583 expr.c:598
 msgid "expression expected"
 msgstr "se esperaba una expresión"
 
 #: builtins/mapfile.def:178
 #, c-format
 msgid "%s: not an indexed array"
-msgstr "%s: no es una matriz indizada"
+msgstr "%s: no es una matriz indexada"
 
-#: builtins/mapfile.def:271 builtins/read.def:305
+#: builtins/mapfile.def:272 builtins/read.def:306
 #, c-format
 msgid "%s: invalid file descriptor specification"
 msgstr "%s: especificación de descriptor de fichero inválida"
 
-#: builtins/mapfile.def:279 builtins/read.def:312
+#: builtins/mapfile.def:280 builtins/read.def:313
 #, c-format
 msgid "%d: invalid file descriptor: %s"
 msgstr "%d: descriptor de fichero inválido: %s"
 
-#: builtins/mapfile.def:288 builtins/mapfile.def:326
+#: builtins/mapfile.def:289 builtins/mapfile.def:327
 #, c-format
 msgid "%s: invalid line count"
 msgstr "%s: cuenta de líneas inválida"
 
-#: builtins/mapfile.def:299
+#: builtins/mapfile.def:300
 #, c-format
 msgid "%s: invalid array origin"
 msgstr "%s: origen de matriz inválido"
 
-#: builtins/mapfile.def:316
+#: builtins/mapfile.def:317
 #, c-format
 msgid "%s: invalid callback quantum"
 msgstr "%s: quantum de llamada inválido"
 
-#: builtins/mapfile.def:349
+#: builtins/mapfile.def:350
 msgid "empty array variable name"
-msgstr "nombre de variable unimatricional vacío"
+msgstr "nombre de variable matriz vacío"
 
-#: builtins/mapfile.def:370
+#: builtins/mapfile.def:371
 msgid "array variable support required"
 msgstr "se requiere el soporte de variable de matriz"
 
-#: builtins/printf.def:416
+#: builtins/printf.def:412
 #, c-format
 msgid "`%s': missing format character"
 msgstr "`%s': falta el carácter de formato"
 
-#: builtins/printf.def:471
+#: builtins/printf.def:467
 #, c-format
 msgid "`%c': invalid time format specification"
 msgstr "`%c': especificación de formato de tiempo inválida"
 
-#: builtins/printf.def:673
+#: builtins/printf.def:669
 #, c-format
 msgid "`%c': invalid format character"
 msgstr "`%c': carácter de formato inválido"
 
-#: builtins/printf.def:699
+#: builtins/printf.def:695
 #, c-format
 msgid "warning: %s: %s"
 msgstr "aviso: %s: %s"
 
-#: builtins/printf.def:785
+#: builtins/printf.def:781
 #, c-format
 msgid "format parsing problem: %s"
-msgstr "problema interpretando formato: %s"
+msgstr "problema con el análisis del formato: %s"
 
-#: builtins/printf.def:882
+#: builtins/printf.def:878
 msgid "missing hex digit for \\x"
 msgstr "falta el dígito hexadecimal para \\x"
 
-#: builtins/printf.def:897
+#: builtins/printf.def:893
 #, c-format
 msgid "missing unicode digit for \\%c"
 msgstr "falta el dígito unicode para \\%c"
@@ -666,21 +657,21 @@ msgstr "no hay otro directorio"
 #: builtins/pushd.def:360
 #, c-format
 msgid "%s: invalid argument"
-msgstr "%s: argumento no válido"
+msgstr "%s: argumento inválido"
 
-#: builtins/pushd.def:480
+#: builtins/pushd.def:475
 msgid "<no current directory>"
 msgstr "<no hay directorio actual>"
 
-#: builtins/pushd.def:524
+#: builtins/pushd.def:519
 msgid "directory stack empty"
 msgstr "la pila de directorios está vacía"
 
-#: builtins/pushd.def:526
+#: builtins/pushd.def:521
 msgid "directory stack index"
-msgstr "pila indexada de directorios"
+msgstr "índice de pilas de directorios"
 
-#: builtins/pushd.def:701
+#: builtins/pushd.def:696
 msgid ""
 "Display the list of currently remembered directories.  Directories\n"
 "    find their way onto the list with the `pushd' command; you can get\n"
@@ -695,36 +686,32 @@ msgid ""
 "    \twith its position in the stack\n"
 "    \n"
 "    Arguments:\n"
-"      +N\tDisplays the Nth entry counting from the left of the list shown "
-"by\n"
+"      +N\tDisplays the Nth entry counting from the left of the list shown by\n"
 "    \tdirs when invoked without options, starting with zero.\n"
 "    \n"
-"      -N\tDisplays the Nth entry counting from the right of the list shown "
-"by\n"
+"      -N\tDisplays the Nth entry counting from the right of the list shown by\n"
 "\tdirs when invoked without options, starting with zero."
 msgstr ""
-"Enseña la lista de directorios actualmente grabados.  Los directorios\n"
-"    se guardan en la lista con el mandato `pushd'; pueden ir saliendo de\n"
-"    la lista con el mandato `popd'.\n"
+"Muestra la lista de directorios actualmente grabados.  Los directorios\n"
+"    encuentran en la lista con la orden `pushd'; pueden ir saliendo de\n"
+"    la lista con la orden `popd'.\n"
 "    \n"
 "    Opciones:\n"
-"      -c\tlimpia la pila de directorios, eliminando todos los elementos\n"
+"      -c\tlimpia la pila de directorios eliminando todos los elementos\n"
 "      -l\tno muestra las versiones con prefijo de tilde de los directorios\n"
 "    \t\trelativos a su directorio inicial\n"
 "      -p\tmuestra la pila de directorios con una entrada por línea\n"
 "      -v\tmuestra la pila de directorios con una entrada por línea con\n"
-"    \t\tsu posición en la pila como prefijo\n"
+"    \tsu posición en la pila como prefijo\n"
 "    \n"
 "    Argumentos:\n"
-"      +N\tMuestra la N-ésima entrada contando desde la izquierda de\n"
-"    \t\tla lista mostrada por dirs cuando se llama sin opciones,\n"
-"    \t\tempezando desde cero.\n"
+"      +N\tMuestra la N-ésima entrada contando desde la izquierda de la lista\n"
+"    \tmostrada por dirs cuando se llama sin opciones, empezando en cero.\n"
 "    \n"
-"      -N\tMuestra la N-ésima entrada contando desde la derecha de\n"
-"\t\tla lista mostrada por dirs cuando se llama sin opciones,\n"
-"\t\tempezando desde cero."
+"      -N\tMuestra la N-ésima entrada contando desde la derecha de la lista\n"
+"    \tmostrada por dirs cuando se llama sin opciones, empezando en cero."
 
-#: builtins/pushd.def:723
+#: builtins/pushd.def:718
 msgid ""
 "Adds a directory to the top of the directory stack, or rotates\n"
 "    the stack, making the new top of the stack the current working\n"
@@ -748,25 +735,29 @@ msgid ""
 "    \n"
 "    The `dirs' builtin displays the directory stack."
 msgstr ""
-"Agrega un directorio al techo de la pila de directorios, o rota\n"
-"    la pila, haciendo que el nuevo techo de la pila sea el\n"
-"    directorio de trabajo actual.  Sin argumentos, intercambia\n"
-"    los dos directorios del techo.\n"
+"Agrega un directorio a la parte superior de la pila de directorios\n"
+"    o rota la pila, haciendo que la nueva parte superior de la pila\n"
+"    sea el directorio de trabajo actual.  Sin argumentos, intercambia\n"
+"    los dos directorios de la parte superior.\n"
+"    \n"
+"    Opciones:\n"
+"      -n\tSuprime el cambio normal de directorio al añadir directorios\n"
+"    \ta la pila, de forma que solo se manipula la pila.\n"
 "    \n"
 "    Argumentos:\n"
-"    +N\t Rota la pila para que el N-ésimo directorio (contando\n"
-"    \t de la izquierda de la lista mostrada por `dirs',\n"
-"    \t comenzando desde cero) esté en el techo.\n"
-"    -N\t Rota la pila para que el N-ésimo directorio (contando\n"
-"    \t de la derecha de la lista mostrada por `dirs',\n"
-"    \t comenzando desde cero) esté en el techo.\n"
+"      +N\tRota la pila para que el N-ésimo directorio (contando\n"
+"    \tdesde la izquierda de la lista mostrada por `dirs',\n"
+"    \tcomenzando desde cero) esté en la parte superior.\n"
+"      -N\tRota la pila para que el N-ésimo directorio (contando\n"
+"    \tdesde la derecha de la lista mostrada por `dirs',\n"
+"    \tcomenzando desde cero) esté en la parte superior.\n"
 "    \n"
-"     dir\t Añade DIR a la pila de directorios en el techo,\n"
-"    \t haciéndolo el nuevo directorio de trabajo actual.\n"
+"      dir\tAñade DIR a la pila de directorios en la parte superior,\n"
+"    \thaciéndolo el nuevo directorio de trabajo actual.\n"
 "    \n"
-"    Los «dir» internos enseña la pila de directorios."
+"    La orden interna `dirs' muestra la pila de directorios."
 
-#: builtins/pushd.def:748
+#: builtins/pushd.def:743
 msgid ""
 "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"
@@ -787,87 +778,86 @@ msgid ""
 "    The `dirs' builtin displays the directory stack."
 msgstr ""
 "Quita entradas de la pila de directorios.  Sin argumentos, borra\n"
-"    directorio techo de la pila, y cambia al nuevo directorio techo.\n"
+"    el directorio superior de la pila, y cambia al nuevo directorio superior.\n"
 "    \n"
 "    Opciones:\n"
-"      -n\t suprime el cambio normal de directorio cuando se borran\n"
-"    \t directorios de la pila, así sólo se manipula la pila.\n"
+"      -n\tSuprime el cambio normal de directorio cuando se borran\n"
+"    \tdirectorios de la pila, de modo que solo se manipula la pila.\n"
 "    \n"
 "    Argumentos:\n"
-"      +N\tBorra la N-ésima entrada contando de la izquierda de\n"
-"    \t la lista mostrada por `dirs', comenzando desde cero.\n"
-"    \t Por ejemplo: `popd +0' borra el primer directorio, `popd +1'\n"
-"    \t el segundo.\n"
+"      +N\tBorra la N-ésima entrada contando desde la izquierda de\n"
+"    \tla lista mostrada por `dirs', comenzando desde cero.\n"
+"    \tPor ejemplo: `popd +0' borra el primer directorio, `popd +1'\n"
+"    \tel segundo.\n"
 "    \n"
-"      -N\tBorra la N-ésima entrada contando de la derecha de\n"
-"    \t la lista mostrada por `dirs', comenzando desde cero. Por\n"
-"    \t ejemplo: `popd -0' borra el último directorio, `popd -1' el\n"
-"    \t penúltimo.\n"
+"      -N\tBorra la N-ésima entrada contando desde la derecha de\n"
+"    \tla lista mostrada por `dirs', comenzando desde cero. Por\n"
+"    \tejemplo: `popd -0' borra el último directorio, `popd -1' el\n"
+"    \tpenúltimo.\n"
 "    \n"
-"    El mandato interno `dirs' muestra la pila de directorios."
+"    La orden interna `dirs' muestra la pila de directorios."
 
-#: builtins/read.def:277
+#: builtins/read.def:279
 #, c-format
 msgid "%s: invalid timeout specification"
-msgstr "%s: tiempo de expiración especificado inválido"
+msgstr "%s: especificación del tiempo de expiración inválida"
 
-#: builtins/read.def:729
+#: builtins/read.def:696
 #, c-format
 msgid "read error: %d: %s"
 msgstr "error de lectura: %d: %s"
 
-#: builtins/return.def:68
+#: builtins/return.def:71
 msgid "can only `return' from a function or sourced script"
-msgstr "sólo se puede usar `return' desde una función o un guion de origen"
+msgstr "sólo se puede usar `return' desde una función o un script leído con `source'"
 
-#: builtins/set.def:834
+#: builtins/set.def:841
 msgid "cannot simultaneously unset a function and a variable"
 msgstr "no se puede borrar al mismo tiempo una función y una variable"
 
-#: builtins/set.def:881
+#: builtins/set.def:888
 #, c-format
 msgid "%s: cannot unset"
-msgstr "%s: no se puede deseleccionar"
+msgstr "%s: no se puede borrar"
 
-#: builtins/set.def:902 variables.c:3597
+#: builtins/set.def:909 variables.c:3389
 #, c-format
 msgid "%s: cannot unset: readonly %s"
-msgstr "%s: no se puede deseleccionar: %s es de solo lectura"
+msgstr "%s: no se puede borrar: %s es de solo lectura"
 
-#: builtins/set.def:915
+#: builtins/set.def:922
 #, c-format
 msgid "%s: not an array variable"
-msgstr "%s: no es una variable de unimatriz"
+msgstr "%s: no es una variable de matriz"
 
-#: builtins/setattr.def:189
+#: builtins/setattr.def:191
 #, c-format
 msgid "%s: not a function"
 msgstr "%s: no es una función"
 
-#: builtins/setattr.def:194
+#: builtins/setattr.def:196
 #, c-format
 msgid "%s: cannot export"
 msgstr "%s: no se puede exportar"
 
-# shift: arrastre
 #: builtins/shift.def:73 builtins/shift.def:79
 msgid "shift count"
-msgstr "contador de arrastre"
+msgstr "contador de desplazamiento"
 
-#: builtins/shopt.def:301
+#: builtins/shopt.def:289
 msgid "cannot set and unset shell options simultaneously"
 msgstr "no se pueden activar y desactivar opciones del shell simultáneamente"
 
-#: builtins/shopt.def:403
+#: builtins/shopt.def:391
 #, c-format
 msgid "%s: invalid shell option name"
-msgstr "%s: nombre de opción del shell inválido"
+msgstr "%s: nombre de opción de shell inválido"
 
-#: builtins/source.def:128
+#: builtins/source.def:131
 msgid "filename argument required"
 msgstr "argumento de nombre de fichero requerido"
 
-#: builtins/source.def:154
+#: builtins/source.def:157
 #, c-format
 msgid "%s: file not found"
 msgstr "%s: no se encontró el fichero"
@@ -880,61 +870,61 @@ msgstr "no se puede suspender"
 msgid "cannot suspend a login shell"
 msgstr "no se puede suspender un shell de entrada"
 
-#: builtins/type.def:235
+#: builtins/type.def:236
 #, c-format
 msgid "%s is aliased to `%s'\n"
 msgstr "%s es un alias de `%s'\n"
 
-#: builtins/type.def:256
+#: builtins/type.def:257
 #, c-format
 msgid "%s is a shell keyword\n"
 msgstr "%s es una palabra clave del shell\n"
 
-#: builtins/type.def:275
+#: builtins/type.def:276
 #, c-format
 msgid "%s is a function\n"
 msgstr "%s: es una función\n"
 
-#: builtins/type.def:299
+#: builtins/type.def:300
 #, c-format
 msgid "%s is a special shell builtin\n"
-msgstr "%s: es una shell especial incorporada\n"
+msgstr "%s es una función interna de shell especial\n"
 
-#: builtins/type.def:301
+#: builtins/type.def:302
 #, c-format
 msgid "%s is a shell builtin\n"
-msgstr "%s es un mandato interna del shell\n"
+msgstr "%s es una orden interna del shell\n"
 
-#: builtins/type.def:323 builtins/type.def:408
+#: builtins/type.def:324 builtins/type.def:409
 #, c-format
 msgid "%s is %s\n"
 msgstr "%s is %s\n"
 
-#: builtins/type.def:343
+#: builtins/type.def:344
 #, c-format
 msgid "%s is hashed (%s)\n"
 msgstr "%s está asociado (%s)\n"
 
-#: builtins/ulimit.def:396
+#: builtins/ulimit.def:398
 #, c-format
 msgid "%s: invalid limit argument"
 msgstr "%s: límite de argumento inválido"
 
-#: builtins/ulimit.def:422
+#: builtins/ulimit.def:424
 #, c-format
 msgid "`%c': bad command"
-msgstr "`%c': mandato equivocado"
+msgstr "`%c': orden incorrecta"
 
-#: builtins/ulimit.def:451
+#: builtins/ulimit.def:453
 #, c-format
 msgid "%s: cannot get limit: %s"
 msgstr "%s: no se puede obtener el límite: %s"
 
-#: builtins/ulimit.def:477
+#: builtins/ulimit.def:479
 msgid "limit"
 msgstr "límite"
 
-#: builtins/ulimit.def:489 builtins/ulimit.def:789
+#: builtins/ulimit.def:491 builtins/ulimit.def:791
 #, c-format
 msgid "%s: cannot modify limit: %s"
 msgstr "%s: no se puede modificar el límite: %s"
@@ -946,389 +936,375 @@ msgstr "número octal"
 #: builtins/umask.def:232
 #, c-format
 msgid "`%c': invalid symbolic mode operator"
-msgstr "`%c': modo simbólico de operador inválido"
+msgstr "`%c': operador de modo simbólico inválido"
 
 #: builtins/umask.def:287
 #, c-format
 msgid "`%c': invalid symbolic mode character"
-msgstr "`%c': modo simbólico de carácter inválido"
+msgstr "`%c': carácter de modo simbólico inválido"
 
-#: error.c:89 error.c:347 error.c:349 error.c:351
+#: error.c:90 error.c:348 error.c:350 error.c:352
 msgid " line "
 msgstr " línea "
 
-#: error.c:164
+#: error.c:165
 #, c-format
 msgid "last command: %s\n"
-msgstr "último mandato: %s\n"
+msgstr "última orden: %s\n"
 
-#: error.c:172
+#: error.c:173
 #, c-format
 msgid "Aborting..."
 msgstr "Abortando..."
 
 #. TRANSLATORS: this is a prefix for informational messages.
-#: error.c:287
+#: error.c:288
 #, c-format
 msgid "INFORM: "
 msgstr "INFORME: "
 
-#: error.c:462
+#: error.c:463
 msgid "unknown command error"
-msgstr "error de mandato desconocido"
+msgstr "error de orden desconocida"
 
-#: error.c:463
+#: error.c:464
 msgid "bad command type"
-msgstr "tipo de mandato equivocado"
+msgstr "tipo de orden incorrecto"
 
-#: error.c:464
+#: error.c:465
 msgid "bad connector"
-msgstr "conector equivocado"
+msgstr "conector erróneo"
 
-#: error.c:465
+#: error.c:466
 msgid "bad jump"
-msgstr "omisión equivocada"
+msgstr "salto erróneo"
 
-#: error.c:503
+#: error.c:504
 #, c-format
 msgid "%s: unbound variable"
 msgstr "%s: variable sin asignar"
 
-#: eval.c:242
+#: eval.c:209
 #, c-format
 msgid "\atimed out waiting for input: auto-logout\n"
 msgstr "\aha expirado mientras esperaba alguna entrada: auto-logout\n"
 
-#: execute_cmd.c:536
+#: execute_cmd.c:527
 #, c-format
 msgid "cannot redirect standard input from /dev/null: %s"
-msgstr "no se puede redirigir la salida común desde /dev/null: %s"
+msgstr "no se puede redirigir la entrada estándar desde /dev/null: %s"
 
-#: execute_cmd.c:1294
+#: execute_cmd.c:1275
 #, c-format
 msgid "TIMEFORMAT: `%c': invalid format character"
 msgstr "TIMEFORMAT: `%c': carácter de formato inválido"
 
-#: execute_cmd.c:2330
+#: execute_cmd.c:2273
 #, c-format
 msgid "execute_coproc: coproc [%d:%s] still exists"
 msgstr "execute_coproc: coproc [%d:%s] aún existe"
 
-#: execute_cmd.c:2456
+#: execute_cmd.c:2377
 msgid "pipe error"
 msgstr "error de tubería"
 
-#: execute_cmd.c:4624
+#: execute_cmd.c:4496
 #, c-format
 msgid "eval: maximum eval nesting level exceeded (%d)"
-msgstr "eval: evaluación máxima anidando nivel excedido (%d)"
+msgstr "eval: nivel máximo de anidamiento de evaluaciones excedido (%d)"
 
-#: execute_cmd.c:4636
+#: execute_cmd.c:4508
 #, c-format
 msgid "%s: maximum source nesting level exceeded (%d)"
-msgstr "%s: nivel de origen máximo anidado excedido (%d)"
+msgstr "%s: nivel máximo de anidamiento de lecturas con `source' excedido (%d)"
 
-#: execute_cmd.c:4742
+#: execute_cmd.c:4616
 #, c-format
 msgid "%s: maximum function nesting level exceeded (%d)"
-msgstr "%s: función anidada de nivel máximo excedido (%d)"
+msgstr "%s: nivel máximo de anidamiento de funciones excedido (%d)"
 
-#: execute_cmd.c:5285
+#: execute_cmd.c:5144
 #, c-format
 msgid "%s: restricted: cannot specify `/' in command names"
 msgstr "%s: restringido: no se puede especificar `/' en nombres de órdenes"
 
-#: execute_cmd.c:5383
+#: execute_cmd.c:5232
 #, c-format
 msgid "%s: command not found"
-msgstr "%s: mandato no encontrado"
+msgstr "%s: orden no encontrada"
 
-#: execute_cmd.c:5627
+#: execute_cmd.c:5470
 #, c-format
 msgid "%s: %s"
 msgstr "%s: %s"
 
-#: execute_cmd.c:5665
+#: execute_cmd.c:5508
 #, c-format
 msgid "%s: %s: bad interpreter"
 msgstr "%s: %s: intérprete erróneo"
 
 # file=fichero. archive=archivo. Si no, es imposible traducir tar. sv
 # De acuerdo. Corregido en todo el fichero. cfuga
-#: execute_cmd.c:5702
+#: execute_cmd.c:5545
 #, c-format
 msgid "%s: cannot execute binary file: %s"
-msgstr "%s: no puede ejecutar fichero binario: %s"
+msgstr "%s: no se puede ejecutar fichero binario: %s"
 
-#: execute_cmd.c:5788
+#: execute_cmd.c:5623
 #, c-format
 msgid "`%s': is a special builtin"
-msgstr "`%s': es un constructor especial"
+msgstr "`%s': es una orden interna especial"
 
-#: execute_cmd.c:5840
+#: execute_cmd.c:5675
 #, c-format
 msgid "cannot duplicate fd %d to fd %d"
 msgstr "no se puede duplicar el df %d al df %d"
 
-#: expr.c:263
+#: expr.c:259
 msgid "expression recursion level exceeded"
 msgstr "se ha excedido el nivel de recursión de la expresión"
 
-#: expr.c:291
+#: expr.c:283
 msgid "recursion stack underflow"
-msgstr "desbordamiento de la base de la pila de recursión"
+msgstr "desbordamiento de la pila de recursión"
 
-#: expr.c:453
+#: expr.c:431
 msgid "syntax error in expression"
 msgstr "error sintáctico en la expresión"
 
-#: expr.c:497
+#: expr.c:475
 msgid "attempted assignment to non-variable"
 msgstr "se intentó asignar a algo que no es una variable"
 
-#: expr.c:506
-#, fuzzy
-msgid "syntax error in variable assignment"
-msgstr "error sintáctico en la expresión"
-
-#: expr.c:520 expr.c:886
+#: expr.c:495 expr.c:858
 msgid "division by 0"
 msgstr "división por 0"
 
 # token en bison fue traducido como terminal. ¿Lo traducimos igual aquí
 # o lo dejamos como 'unidad' o 'elemento'? cfuga
-#: expr.c:567
+#: expr.c:542
 msgid "bug: bad expassign token"
 msgstr "defecto: elemento de asignación de expresión erróneo"
 
-#: expr.c:621
+#: expr.c:595
 msgid "`:' expected for conditional expression"
 msgstr "se esperaba `:' para la expresión condicional"
 
-#: expr.c:947
+#: expr.c:919
 msgid "exponent less than 0"
 msgstr "exponente menor que 0"
 
-#: expr.c:1004
+#: expr.c:976
 msgid "identifier expected after pre-increment or pre-decrement"
-msgstr ""
-"se esperaba un identificador después del pre-incremento o pre-decremento"
+msgstr "se esperaba un identificador después del pre-incremento o pre-decremento"
 
 # falta , singular em+
 # mmmh, puede faltar más de un paréntesis cfuga
 # tiene razón Enrique, es singular. cfuga
-#: expr.c:1030
+#: expr.c:1002
 msgid "missing `)'"
 msgstr "falta un `)'"
 
-#: expr.c:1081 expr.c:1458
+#: expr.c:1053 expr.c:1393
 msgid "syntax error: operand expected"
 msgstr "error sintáctico: se esperaba un operando"
 
-#: expr.c:1460
+#: expr.c:1395
 msgid "syntax error: invalid arithmetic operator"
 msgstr "error sintáctico: operador aritmético inválido"
 
-#: expr.c:1484
+#: expr.c:1419
 #, c-format
 msgid "%s%s%s: %s (error token is \"%s\")"
 msgstr "%s%s%s: %s (el elemento de error es \"%s\")"
 
-#: expr.c:1542
+#: expr.c:1477
 msgid "invalid arithmetic base"
 msgstr "base aritmética inválida"
 
-#: expr.c:1562
+#: expr.c:1497
 msgid "value too great for base"
 msgstr "valor demasiado grande para la base"
 
-#: expr.c:1611
+#: expr.c:1546
 #, c-format
 msgid "%s: expression error\n"
 msgstr "%s: error de expresión\n"
 
-#: general.c:69
+#: general.c:68
 msgid "getcwd: cannot access parent directories"
 msgstr "getcwd: no se puede acceder a los directorios padre"
 
-#: input.c:99 subst.c:5858
+#: input.c:102 subst.c:5858
 #, c-format
 msgid "cannot reset nodelay mode for fd %d"
 msgstr "no se puede reestablecer el modo nodelay para el df %d"
 
-#: input.c:266
+#: input.c:271
 #, c-format
 msgid "cannot allocate new file descriptor for bash input from fd %d"
-msgstr ""
-"no se puede asignar un nuevo descriptor de fichero para la entrada de bash "
-"desde el df %d"
+msgstr "no se puede asignar un nuevo descriptor de fichero para la entrada de bash desde el df %d"
 
 # buffer: espacio intermedio , alojamiento intermedio ( me gusta menos )
 # em+
 # almacenamiento intermedio. cfuga
-#: input.c:274
+#: input.c:279
 #, c-format
 msgid "save_bash_input: buffer already exists for new fd %d"
-msgstr ""
-"save_bash_input: el almacenamiento intermedio ya existe para el nuevo df %d"
+msgstr "save_bash_input: el almacenamiento intermedio ya existe para el nuevo df %d"
 
 #: jobs.c:527
 msgid "start_pipeline: pgrp pipe"
 msgstr "start_pipeline: tubería de pgrp"
 
-#: jobs.c:1080
+#: jobs.c:1035
 #, c-format
 msgid "forked pid %d appears in running job %d"
-msgstr "el pid `forked' %d aparece en la tarea en ejecución %d"
+msgstr "el pid `forked' %d aparece en el trabajo en ejecución %d"
 
-#: jobs.c:1199
+#: jobs.c:1154
 #, c-format
 msgid "deleting stopped job %d with process group %ld"
-msgstr "borrando la tarea detenida %d con grupo de proceso %ld"
+msgstr "borrando el trabajo detenido %d con grupo de proceso %ld"
 
-#: jobs.c:1303
+#: jobs.c:1258
 #, c-format
 msgid "add_process: process %5ld (%s) in the_pipeline"
 msgstr "add_process: el proceso %5ld (%s) en the_pipeline"
 
-#: jobs.c:1306
+#: jobs.c:1261
 #, c-format
 msgid "add_process: pid %5ld (%s) marked as still alive"
 msgstr "add_process: pid %5ld (%s) se marca como vivo aún"
 
 # Cambiaría 'hay' por 'existe' em+
-#: jobs.c:1635
+#: jobs.c:1590
 #, c-format
 msgid "describe_pid: %ld: no such pid"
 msgstr "describe_pid: %ld: no existe tal pid"
 
-#: jobs.c:1650
+#: jobs.c:1605
 #, c-format
 msgid "Signal %d"
 msgstr "Señal %d"
 
-#: jobs.c:1664 jobs.c:1690
+#: jobs.c:1619 jobs.c:1645
 msgid "Done"
 msgstr "Hecho"
 
-#: jobs.c:1669 siglist.c:123
+#: jobs.c:1624 siglist.c:123
 msgid "Stopped"
 msgstr "Detenido"
 
-#: jobs.c:1673
+#: jobs.c:1628
 #, c-format
 msgid "Stopped(%s)"
 msgstr "Detenido(%s)"
 
-#: jobs.c:1677
+#: jobs.c:1632
 msgid "Running"
 msgstr "Ejecutando"
 
-#: jobs.c:1694
+#: jobs.c:1649
 #, c-format
 msgid "Done(%d)"
 msgstr "Hecho(%d)"
 
-#: jobs.c:1696
+#: jobs.c:1651
 #, c-format
 msgid "Exit %d"
 msgstr "Salida %d"
 
-#: jobs.c:1699
+#: jobs.c:1654
 msgid "Unknown status"
 msgstr "Estado desconocido"
 
-#: jobs.c:1786
+#: jobs.c:1741
 #, c-format
 msgid "(core dumped) "
 msgstr "(`core' generado) "
 
-#: jobs.c:1805
+#: jobs.c:1760
 #, c-format
 msgid "  (wd: %s)"
 msgstr "  (da: %s)"
 
-#: jobs.c:2033
+#: jobs.c:1985
 #, c-format
 msgid "child setpgid (%ld to %ld)"
 msgstr "setpgid hijo (%ld a %ld)"
 
-#: jobs.c:2395 nojobs.c:657
+#: jobs.c:2347 nojobs.c:654
 #, c-format
 msgid "wait: pid %ld is not a child of this shell"
 msgstr "wait: pid %ld no es un proceso hijo de este shell"
 
-#: jobs.c:2687
+#: jobs.c:2602
 #, c-format
 msgid "wait_for: No record of process %ld"
 msgstr "wait_for: No hay un registro del proceso %ld"
 
-#: jobs.c:3048
+#: jobs.c:2929
 #, c-format
 msgid "wait_for_job: job %d is stopped"
-msgstr "wait_for_job: la tarea %d está detenida"
+msgstr "wait_for_job: el trabajo %d está detenido"
 
-#: jobs.c:3355
+#: jobs.c:3221
 #, c-format
 msgid "%s: job has terminated"
-msgstr "%s: la tarea ha terminado"
+msgstr "%s: el trabajo ha terminado"
 
-#: jobs.c:3364
+#: jobs.c:3230
 #, c-format
 msgid "%s: job %d already in background"
-msgstr "%s: la tarea %d ya está en segundo plano"
+msgstr "%s: el trabajo %d ya está en segundo plano"
 
-#: jobs.c:3590
+#: jobs.c:3455
 msgid "waitchld: turning on WNOHANG to avoid indefinite block"
 msgstr "waitchld: se activa WNOHANG para evitar el bloque indefinido"
 
-#: jobs.c:4114
+#: jobs.c:3970
 #, c-format
 msgid "%s: line %d: "
 msgstr "%s: línea %d: "
 
-#: jobs.c:4128 nojobs.c:900
+#: jobs.c:3984 nojobs.c:897
 #, c-format
 msgid " (core dumped)"
 msgstr " (`core' generado)"
 
-#: jobs.c:4140 jobs.c:4153
+#: jobs.c:3996 jobs.c:4009
 #, c-format
 msgid "(wd now: %s)\n"
 msgstr "(dir ahora: %s)\n"
 
-#: jobs.c:4185
+#: jobs.c:4041
 msgid "initialize_job_control: getpgrp failed"
 msgstr "initialize_jobs_control: falló getpgrp"
 
-#: jobs.c:4241
-#, fuzzy
-msgid "initialize_job_control: no job control in background"
-msgstr "initialize_jobs_control: disciplina de línea"
-
-#: jobs.c:4257
+#: jobs.c:4104
 msgid "initialize_job_control: line discipline"
 msgstr "initialize_jobs_control: disciplina de línea"
 
-#: jobs.c:4267
+#: jobs.c:4114
 msgid "initialize_job_control: setpgid"
 msgstr "initialize_jobs_control: setpgid"
 
-#: jobs.c:4288 jobs.c:4297
+#: jobs.c:4135 jobs.c:4144
 #, c-format
 msgid "cannot set terminal process group (%d)"
 msgstr "no se puede establecer el grupo de proceso de terminal (%d)"
 
-#: jobs.c:4302
+#: jobs.c:4149
 msgid "no job control in this shell"
-msgstr "no hay control de tareas en este shell"
+msgstr "no hay control de trabajos en este shell"
 
-#: lib/malloc/malloc.c:306
+#: lib/malloc/malloc.c:296
 #, c-format
 msgid "malloc: failed assertion: %s\n"
 msgstr "malloc: falló la aserción: %s\n"
 
-#: lib/malloc/malloc.c:322
+#: lib/malloc/malloc.c:312
 #, c-format
 msgid ""
 "\r\n"
@@ -1337,41 +1313,39 @@ msgstr ""
 "\r\n"
 "malloc: %s:%d: aserción arruinada\r\n"
 
-#: lib/malloc/malloc.c:323
+#: lib/malloc/malloc.c:313
 msgid "unknown"
 msgstr "desconocido"
 
-#: lib/malloc/malloc.c:811
+#: lib/malloc/malloc.c:801
 msgid "malloc: block on free list clobbered"
 msgstr "malloc: bloque en la lista libre sobreescrito"
 
-#: lib/malloc/malloc.c:888
+#: lib/malloc/malloc.c:878
 msgid "free: called with already freed block argument"
 msgstr "free: se llamó con un argumento de bloque previamente liberado"
 
-#: lib/malloc/malloc.c:891
+#: lib/malloc/malloc.c:881
 msgid "free: called with unallocated block argument"
 msgstr "free: se llamó con un argumento de bloque sin asignar"
 
-#: lib/malloc/malloc.c:910
+#: lib/malloc/malloc.c:900
 msgid "free: underflow detected; mh_nbytes out of range"
-msgstr ""
-"free: se detectó un desbordamiento por debajo; mh_nbytes fuera de rango"
+msgstr "free: se detectó un desbordamiento por debajo; mh_nbytes fuera de rango"
 
-#: lib/malloc/malloc.c:916
+#: lib/malloc/malloc.c:906
 msgid "free: start and end chunk sizes differ"
-msgstr "free: los tamaños de los pedazos de inicio y final son diferentes"
+msgstr "free: los tamaños de los fragmentos del inicio y del final son diferentes"
 
-#: lib/malloc/malloc.c:1015
+#: lib/malloc/malloc.c:1005
 msgid "realloc: called with unallocated block argument"
 msgstr "realloc: se llamó con un argumento de bloque sin asignar"
 
-#: lib/malloc/malloc.c:1030
+#: lib/malloc/malloc.c:1020
 msgid "realloc: underflow detected; mh_nbytes out of range"
-msgstr ""
-"realloc: se detectó un desbordamiento por debajo; mh_nbytes fuera de rango"
+msgstr "realloc: se detectó un desbordamiento por debajo; mh_nbytes fuera de rango"
 
-#: lib/malloc/malloc.c:1036
+#: lib/malloc/malloc.c:1026
 msgid "realloc: start and end chunk sizes differ"
 msgstr "realloc: los tamaños de los pedazos de inicio y fin son diferentes"
 
@@ -1413,22 +1387,22 @@ msgstr "%s: especificación de ruta de red errónea"
 msgid "network operations not supported"
 msgstr "no hay soporte para operaciones de red"
 
-#: locale.c:205
+#: locale.c:200
 #, c-format
 msgid "setlocale: LC_ALL: cannot change locale (%s)"
 msgstr "setlocale: LC_ALL: no se puede cambiar el local (%s)"
 
-#: locale.c:207
+#: locale.c:202
 #, c-format
 msgid "setlocale: LC_ALL: cannot change locale (%s): %s"
 msgstr "setlocale: LC_ALL: no se puede cambiar el local (%s): %s"
 
-#: locale.c:272
+#: locale.c:259
 #, c-format
 msgid "setlocale: %s: cannot change locale (%s)"
 msgstr "setlocale: %s: no se puede cambiar el local (%s)"
 
-#: locale.c:274
+#: locale.c:261
 #, c-format
 msgid "setlocale: %s: cannot change locale (%s): %s"
 msgstr "setlocale: %s: no se puede cambiar el local (%s): %s"
@@ -1446,118 +1420,111 @@ msgstr "Tiene correo nuevo en $_"
 msgid "The mail in %s has been read\n"
 msgstr "El correo en %s fue leído\n"
 
-#: make_cmd.c:317
+#: make_cmd.c:329
 msgid "syntax error: arithmetic expression required"
 msgstr "error sintáctico: se requiere una expresión aritmética"
 
-#: make_cmd.c:319
+#: make_cmd.c:331
 msgid "syntax error: `;' unexpected"
 msgstr "error sintáctico: `;' inesperado"
 
-#: make_cmd.c:320
+#: make_cmd.c:332
 #, c-format
 msgid "syntax error: `((%s))'"
 msgstr "error sintáctico: `((%s))'"
 
-#: make_cmd.c:572
+#: make_cmd.c:584
 #, c-format
 msgid "make_here_document: bad instruction type %d"
 msgstr "make_here_document: tipo de instrucción %d erróneo"
 
-#: make_cmd.c:657
+#: make_cmd.c:669
 #, c-format
 msgid "here-document at line %d delimited by end-of-file (wanted `%s')"
-msgstr ""
-"el documento-aquí en la línea %d está delimitado por fin-de-fichero (se "
-"esperaba `%s')"
+msgstr "el documento-aquí en la línea %d está delimitado por fin-de-fichero (se esperaba `%s')"
 
-#: make_cmd.c:756
+#: make_cmd.c:768
 #, c-format
 msgid "make_redirection: redirection instruction `%d' out of range"
-msgstr ""
-"make_redirection: la instrucción de redirección `%d' está fuera de rango"
+msgstr "make_redirection: la instrucción de redirección `%d' está fuera de rango"
 
-#: parse.y:2369
+#: parse.y:2324
 #, c-format
-msgid ""
-"shell_getc: shell_input_line_size (%zu) exceeds SIZE_MAX (%lu): line "
-"truncated"
-msgstr ""
-"shell_getc: shell_input_line_size (%zu) excede TAMAÑO_MAX (%lu): línea "
-"truncada"
+msgid "shell_getc: shell_input_line_size (%zu) exceeds SIZE_MAX (%lu): line truncated"
+msgstr "shell_getc: shell_input_line_size (%zu) excede TAMAÑO_MAX (%lu): línea truncada"
 
-#: parse.y:2772
+#: parse.y:2700
 msgid "maximum here-document count exceeded"
-msgstr "contador máximo aquí-documento excedido"
+msgstr "número máximo de documentos en «here--document» excedido"
 
-#: parse.y:3511 parse.y:3881
+#: parse.y:3390 parse.y:3748
 #, c-format
 msgid "unexpected EOF while looking for matching `%c'"
-msgstr "inesperado FDL mientras se buscaba una coincidencia `%c'"
+msgstr "EOF inesperado mientras se buscaba un `%c' coincidente"
 
-#: parse.y:4581
+#: parse.y:4410
 msgid "unexpected EOF while looking for `]]'"
-msgstr "inesperado FDL mientras se buscaba `]]'"
+msgstr "EOF inesperado mientras se buscaba `]]'"
 
-#: parse.y:4586
+#: parse.y:4415
 #, c-format
 msgid "syntax error in conditional expression: unexpected token `%s'"
 msgstr "error sintáctico en la expresión condicional: elemento inesperado `%s'"
 
-#: parse.y:4590
+#: parse.y:4419
 msgid "syntax error in conditional expression"
 msgstr "error sintáctico en la expresión condicional"
 
-#: parse.y:4668
+#: parse.y:4497
 #, c-format
 msgid "unexpected token `%s', expected `)'"
 msgstr "elemento inesperado `%s', se esperaba `)'"
 
-#: parse.y:4672
+#: parse.y:4501
 msgid "expected `)'"
 msgstr "se esperaba `)'"
 
-#: parse.y:4700
+#: parse.y:4529
 #, c-format
 msgid "unexpected argument `%s' to conditional unary operator"
 msgstr "argumento inesperado `%s' para el operador unario condicional"
 
-#: parse.y:4704
+#: parse.y:4533
 msgid "unexpected argument to conditional unary operator"
 msgstr "argumento inesperado para el operador unario condicional"
 
-#: parse.y:4750
+#: parse.y:4579
 #, c-format
 msgid "unexpected token `%s', conditional binary operator expected"
 msgstr "elemento inesperado `%s', se esperaba un operador binario condicional"
 
-#: parse.y:4754
+#: parse.y:4583
 msgid "conditional binary operator expected"
 msgstr "se esperaba un operador binario condicional"
 
-#: parse.y:4776
+#: parse.y:4605
 #, c-format
 msgid "unexpected argument `%s' to conditional binary operator"
 msgstr "argumento inesperado `%s' para el operador binario condicional"
 
-#: parse.y:4780
+#: parse.y:4609
 msgid "unexpected argument to conditional binary operator"
 msgstr "argumento inesperado para el operador binario condicional"
 
-#: parse.y:4791
+#: parse.y:4620
 #, c-format
 msgid "unexpected token `%c' in conditional command"
-msgstr "elemento inesperado `%c' en el mandato condicional"
+msgstr "elemento inesperado `%c' en la orden condicional"
 
-#: parse.y:4794
+#: parse.y:4623
 #, c-format
 msgid "unexpected token `%s' in conditional command"
-msgstr "elemento inesperado `%s' en el mandato condicional"
+msgstr "elemento inesperado `%s' en la orden condicional"
 
-#: parse.y:4798
+#: parse.y:4627
 #, c-format
 msgid "unexpected token %d in conditional command"
-msgstr "elemento inesperado %d en el mandato condicional"
+msgstr "elemento inesperado %d en la orden condicional"
 
 # Token: elemento ?
 # error sintáctico, no se esperaba el símbolo `%c' em+
@@ -1565,12 +1532,12 @@ msgstr "elemento inesperado %d en el mandato condicional"
 # provocado por el símbolo. Simplemente estar cerca del mismo. cfuga
 # Por consistencia con el siguiente, yo borraría la coma. sv
 # Cierto. Coma borrada. cfuga
-#: parse.y:6220
+#: parse.y:5996
 #, c-format
 msgid "syntax error near unexpected token `%s'"
 msgstr "error sintáctico cerca del elemento inesperado `%s'"
 
-#: parse.y:6238
+#: parse.y:6014
 #, c-format
 msgid "syntax error near `%s'"
 msgstr "error sintáctico cerca de `%s'"
@@ -1579,29 +1546,29 @@ msgstr "error sintáctico cerca de `%s'"
 # no se esperaba el final de la línea em+
 # Ojo, que end of file es fin de fichero, no de línea. sv
 # Se hicieron ambos cambios. cfuga
-#: parse.y:6248
+#: parse.y:6024
 msgid "syntax error: unexpected end of file"
 msgstr "error sintáctico: no se esperaba el final del fichero"
 
-#: parse.y:6248
+#: parse.y:6024
 msgid "syntax error"
 msgstr "error sintáctico"
 
-#: parse.y:6310
+#: parse.y:6086
 #, c-format
 msgid "Use \"%s\" to leave the shell.\n"
-msgstr "Use \"%s\" para dejar el shell.\n"
+msgstr "Utilice \"%s\" para dejar el shell.\n"
 
-#: parse.y:6472
+#: parse.y:6248
 msgid "unexpected EOF while looking for matching `)'"
-msgstr "esperado FDL mientras se buscaba una coincidencia `)'"
+msgstr "EOF inesperado mientras se buscaba un `)' coincidente"
 
-#: pcomplete.c:1132
+#: pcomplete.c:1126
 #, c-format
 msgid "completion: function `%s' not found"
 msgstr "completion: función `%s' no encontrada"
 
-#: pcomplete.c:1722
+#: pcomplete.c:1646
 #, c-format
 msgid "programmable_completion: %s: possible retry loop"
 msgstr "programmable_completion: %s: posible bucle de reintento"
@@ -1611,99 +1578,95 @@ msgstr "programmable_completion: %s: posible bucle de reintento"
 msgid "progcomp_insert: %s: NULL COMPSPEC"
 msgstr "progcomp_insert: %s: COMPSPEC nulo"
 
-#: print_cmd.c:300
+#: print_cmd.c:302
 #, c-format
 msgid "print_command: bad connector `%d'"
 msgstr "print_command: conector erróneo `%d'"
 
-#: print_cmd.c:373
+#: print_cmd.c:375
 #, c-format
 msgid "xtrace_set: %d: invalid file descriptor"
 msgstr "xtrace_set: %d: descriptor de fichero inválido"
 
-#: print_cmd.c:378
+#: print_cmd.c:380
 msgid "xtrace_set: NULL file pointer"
-msgstr "xtrace_set: puntero a fichero NULO"
+msgstr "xtrace_set: puntero NULL a fichero"
 
-#: print_cmd.c:382
+#: print_cmd.c:384
 #, c-format
 msgid "xtrace fd (%d) != fileno xtrace fp (%d)"
 msgstr "xtrace fd (%d) != numfich xtrace fp (%d)"
 
-#: print_cmd.c:1538
+#: print_cmd.c:1534
 #, c-format
 msgid "cprintf: `%c': invalid format character"
 msgstr "cprintf: `%c': carácter de formato inválido"
 
-#: redir.c:121 redir.c:167
+#: redir.c:124 redir.c:171
 msgid "file descriptor out of range"
 msgstr "descriptor de fichero fuera de rango"
 
-#: redir.c:174
+#: redir.c:178
 #, c-format
 msgid "%s: ambiguous redirect"
 msgstr "%s: redireccionamiento ambiguo"
 
-#: redir.c:178
+#: redir.c:182
 #, c-format
 msgid "%s: cannot overwrite existing file"
 msgstr "%s: no se puede sobreescribir un fichero existente"
 
-#: redir.c:183
+#: redir.c:187
 #, c-format
 msgid "%s: restricted: cannot redirect output"
 msgstr "%s: restringido: no se puede redirigir la salida"
 
-#: redir.c:188
+#: redir.c:192
 #, c-format
 msgid "cannot create temp file for here-document: %s"
 msgstr "no se puede crear un fichero temporal para el documento-aquí: %s"
 
-#: redir.c:192
+#: redir.c:196
 #, c-format
 msgid "%s: cannot assign fd to variable"
 msgstr "%s: no se puede asignar el fd a la variable"
 
-#: redir.c:588
+#: redir.c:586
 msgid "/dev/(tcp|udp)/host/port not supported without networking"
 msgstr "no se admite /dev/(tcp|udp)/anfitrion/puerto sin red"
 
-#: redir.c:870 redir.c:985 redir.c:1046 redir.c:1211
+#: redir.c:868 redir.c:983 redir.c:1044 redir.c:1209
 msgid "redirection error: cannot duplicate fd"
 msgstr "error de redirección: no se puede duplicar el df"
 
-#: shell.c:343
+#: shell.c:347
 msgid "could not find /tmp, please create!"
 msgstr "¡no se puede encontrar /tmp, crear por favor!"
 
-#: shell.c:347
+#: shell.c:351
 msgid "/tmp must be a valid directory name"
 msgstr "/tmp debe ser un nombre de directorio válido"
 
-#: shell.c:798
-msgid "pretty-printing mode ignored in interactive shells"
-msgstr ""
-
-#: shell.c:940
+#: shell.c:927
 #, c-format
 msgid "%c%c: invalid option"
 msgstr "%c%c: opción inválida"
 
-#: shell.c:1299
+#: shell.c:1282
 #, c-format
 msgid "cannot set uid to %d: effective uid %d"
 msgstr "no se puede establecer el uid %d: uid efectivo %d"
 
-#: shell.c:1306
+#: shell.c:1289
 #, c-format
 msgid "cannot set gid to %d: effective gid %d"
 msgstr "no se puede establecer gid a %d: gid efectivo %d"
 
-#: shell.c:1494
+#: shell.c:1458
 msgid "cannot start debugger; debugging mode disabled"
 msgstr "no puede ejecutar el depurador; modo depurado desactivado"
 
-#: shell.c:1608
+#: shell.c:1566
 #, c-format
 msgid "%s: Is a directory"
 msgstr "%s: es un directorio"
@@ -1711,11 +1674,11 @@ msgstr "%s: es un directorio"
 # Yo pondría "no tengo ningún nombre". sv
 # Revisé el código fuente de bash. Es un mensaje de error cuando no se
 # encuentra el nombre del usuario que ejecuta el shell. cfuga
-#: shell.c:1826
+#: shell.c:1777
 msgid "I have no name!"
 msgstr "¡No tengo nombre de usuario!"
 
-#: shell.c:1980
+#: shell.c:1930
 #, c-format
 msgid "GNU bash, version %s-(%s)\n"
 msgstr "GNU bash, versión %s-(%s)\n"
@@ -1725,62 +1688,58 @@ msgstr "GNU bash, versión %s-(%s)\n"
 # traducido en otras ocasiones. Sehll script lo henmos traducido
 # como guión del shell , eso es seguro ... así que puede estar
 # bien así , ya lo verán otros em+
-#: shell.c:1981
+#: shell.c:1931
 #, c-format
 msgid ""
 "Usage:\t%s [GNU long option] [option] ...\n"
 "\t%s [GNU long option] [option] script-file ...\n"
 msgstr ""
 "Modo de empleo:\t%s [opción GNU larga] [opción] ...\n"
-"\t%s [opción GNU larga] [opción] guión-del-shell\n"
+"\t%s [opción GNU larga] [opción] fichero de shell ...\n"
 
-#: shell.c:1983
+#: shell.c:1933
 msgid "GNU long options:\n"
 msgstr "Opciones GNU largas:\n"
 
-#: shell.c:1987
+#: shell.c:1937
 msgid "Shell options:\n"
 msgstr "Opciones del shell:\n"
 
-#: shell.c:1988
+#: shell.c:1938
 msgid "\t-ilrsD or -c command or -O shopt_option\t\t(invocation only)\n"
-msgstr "\t-irsD o -c mandato o -O opción_shopt\t\t(sólo invocación)\n"
+msgstr "\t-irsD o -c orden o -O opción_shopt\t\t(sólo invocación)\n"
 
-#: shell.c:2003
+#: shell.c:1953
 #, c-format
 msgid "\t-%s or -o option\n"
 msgstr "\t-%s o -o opción\n"
 
-#: shell.c:2009
+#: shell.c:1959
 #, c-format
 msgid "Type `%s -c \"help set\"' for more information about shell options.\n"
-msgstr ""
-"Teclee `%s -c \"help set\"' para más información sobre las opciones del "
-"shell.\n"
+msgstr "Teclee `%s -c \"help set\"' para más información sobre las opciones del shell.\n"
 
-#: shell.c:2010
+#: shell.c:1960
 #, c-format
 msgid "Type `%s -c help' for more information about shell builtin commands.\n"
-msgstr ""
-"Teclee `%s -c help' para más información sobre los mandatos internos del "
-"shell.\n"
+msgstr "Teclee `%s -c help' para más información sobre las órdenes internas del shell.\n"
 
-#: shell.c:2011
+#: shell.c:1961
 #, c-format
 msgid "Use the `bashbug' command to report bugs.\n"
-msgstr "Use el mandato `bashbug' para reportar defectos.\n"
+msgstr "Utilice la orden `bashbug' para reportar defectos.\n"
 
-#: shell.c:2013
+#: shell.c:1963
 #, c-format
 msgid "bash home page: <http://www.gnu.org/software/bash>\n"
 msgstr "página inicial bash: <http://www.gnu.org/software/bash>\n"
 
-#: shell.c:2014
+#: shell.c:1964
 #, c-format
 msgid "General help using GNU software: <http://www.gnu.org/gethelp/>\n"
 msgstr "Ayuda general utilizando software GNU: <http://www.gnu.org/gethelp/>\n"
 
-#: sig.c:695
+#: sig.c:707
 #, c-format
 msgid "sigprocmask: %d: invalid operation"
 msgstr "sigprocmask: %d: operación inválida"
@@ -1839,7 +1798,7 @@ msgstr "Violación de segmento"
 # llamada a la función del sistema, no la llamada en sí cfuga
 #: siglist.c:99
 msgid "Bad system call"
-msgstr "Llamada al sistema equivocada"
+msgstr "Llamada al sistema errónea"
 
 # (pipe) no, por favor. Esto ya está traducido en libc, así que a estas
 # alturas, la gente ya debería saber qué es eso de la tubería. sv
@@ -1950,7 +1909,7 @@ msgstr "el modo monitor HTF ha sido retirado"
 
 #: siglist.c:211
 msgid "HFT sound sequence has completed"
-msgstr "la secuencia sonora HFT ha sido completada"
+msgstr "la secuencia de sonido HFT ha sido completada"
 
 #: siglist.c:215
 msgid "Information request"
@@ -1965,21 +1924,21 @@ msgstr "Señal Desconocida #"
 msgid "Unknown Signal #%d"
 msgstr "Señal Desconocida #%d"
 
-#: subst.c:1450 subst.c:1641
+#: subst.c:1445 subst.c:1608
 #, c-format
 msgid "bad substitution: no closing `%s' in %s"
-msgstr "sustitución equivocada: no hay un `%s' que cierre en %s"
+msgstr "sustitución errónea: no hay un `%s' que cierre en %s"
 
-#: subst.c:3209
+#: subst.c:3154
 #, c-format
 msgid "%s: cannot assign list to array member"
 msgstr "%s: no se puede asignar una lista a un miembro de la matriz"
 
-#: subst.c:5734 subst.c:5750
+#: subst.c:5740 subst.c:5756
 msgid "cannot make pipe for process substitution"
 msgstr "no se puede crear la tubería para la sustitución del proceso"
 
-#: subst.c:5796
+#: subst.c:5798
 msgid "cannot make child for process substitution"
 msgstr "no se puede crear un proceso hijo para la sustitución del proceso"
 
@@ -1998,76 +1957,67 @@ msgstr "no se puede abrir la tubería llamada %s para escritura"
 msgid "cannot duplicate named pipe %s as fd %d"
 msgstr "no se puede duplicar la tubería llamada %s como df %d"
 
-#: subst.c:5990
+#: subst.c:5959
 msgid "command substitution: ignored null byte in input"
-msgstr "sustitución mandato: ignorado byte nulo en entrada"
+msgstr "sustitución de orden: se ignora byte nulo en la entrada"
 
-#: subst.c:6121
+#: subst.c:6083
 msgid "cannot make pipe for command substitution"
-msgstr "no se puede crear la tubería para la sustitución del mandato"
+msgstr "no se puede crear la tubería para la sustitución de la orden"
 
-#: subst.c:6164
+#: subst.c:6127
 msgid "cannot make child for command substitution"
-msgstr "no se puede crear un proceso hijo para la sustitución del mandato"
+msgstr "no se puede crear un proceso hijo para la sustitución de la orden"
 
-#: subst.c:6190
+#: subst.c:6153
 msgid "command_substitute: cannot duplicate pipe as fd 1"
 msgstr "command_substitute: no se puede duplicar la tubería como df 1"
 
-#: subst.c:6641 subst.c:9483
+#: subst.c:6580 subst.c:8939
 #, c-format
 msgid "%s: invalid variable name for name reference"
-msgstr "%s: nombre variable inválido para referencia de nombre"
+msgstr "%s: nombre de variable inválido para referencia de nombre"
 
-#: subst.c:6737 subst.c:6755 subst.c:6903
+#: subst.c:6666 subst.c:8351 subst.c:8371
+#, c-format
+msgid "%s: bad substitution"
+msgstr "%s: sustitución errónea"
+
+#: subst.c:6800
 #, c-format
 msgid "%s: invalid indirect expansion"
 msgstr "%s: expansión indirecta inválida"
 
-#: subst.c:6771 subst.c:6910
+#: subst.c:6807
 #, c-format
 msgid "%s: invalid variable name"
-msgstr "%s: nombre de variable no válida"
-
-#: subst.c:6962
-#, fuzzy, c-format
-msgid "%s: parameter not set"
-msgstr "%s: parámetro nulo o no establecido"
+msgstr "%s: nombre de variable inválido"
 
-#: subst.c:6964
+#: subst.c:6854
 #, c-format
 msgid "%s: parameter null or not set"
 msgstr "%s: parámetro nulo o no establecido"
 
-#: subst.c:7201 subst.c:7216
+#: subst.c:7089 subst.c:7104
 #, c-format
 msgid "%s: substring expression < 0"
 msgstr "%s: expresión de subcadena < 0"
 
-#: subst.c:8839 subst.c:8860
-#, c-format
-msgid "%s: bad substitution"
-msgstr "%s: sustitución errónea"
-
-#: subst.c:8948
+#: subst.c:8450
 #, c-format
 msgid "$%s: cannot assign in this way"
 msgstr "$%s: no se puede asignar de esta forma"
 
-#: subst.c:9346
-msgid ""
-"future versions of the shell will force evaluation as an arithmetic "
-"substitution"
-msgstr ""
-"versiones futuras del intérprete obligarán la evaluación como una "
-"sustitución aritmética"
+#: subst.c:8802
+msgid "future versions of the shell will force evaluation as an arithmetic substitution"
+msgstr "versiones futuras del intérprete obligarán la evaluación como una sustitución aritmética"
 
-#: subst.c:9903
+#: subst.c:9349
 #, c-format
 msgid "bad substitution: no closing \"`\" in %s"
-msgstr "sustitución equivocada: no hay una \"`\" que cierre en %s"
+msgstr "sustitución errónea: no hay una \"`\" que cierre en %s"
 
-#: subst.c:10907
+#: subst.c:10298
 #, c-format
 msgid "no match: %s"
 msgstr "no hay coincidencia: %s"
@@ -2090,12 +2040,12 @@ msgstr "`)' esperado"
 msgid "`)' expected, found %s"
 msgstr "se esperaba `)', se encontró %s"
 
-#: test.c:282 test.c:748 test.c:751
+#: test.c:282 test.c:744 test.c:747
 #, c-format
 msgid "%s: unary operator expected"
 msgstr "%s: se esperaba un operador unario"
 
-#: test.c:469 test.c:791
+#: test.c:469 test.c:787
 #, c-format
 msgid "%s: binary operator expected"
 msgstr "%s: se esperaba un operador binario"
@@ -2107,115 +2057,106 @@ msgstr "%s: se esperaba un operador binario"
 # Abreviando "falta [al menos] un `]'" saldría: "falta un `]'".
 # ¿No es mejor "falta algún `]'"? cfuga
 # Tiene razón Enrique: singular. cfuga
-#: test.c:873
+#: test.c:869
 msgid "missing `]'"
 msgstr "falta un `]'"
 
-#: trap.c:216
+#: trap.c:224
 msgid "invalid signal number"
 msgstr "número de señal inválido"
 
-#: trap.c:379
+#: trap.c:387
 #, c-format
 msgid "run_pending_traps: bad value in trap_list[%d]: %p"
 msgstr "run_pending_traps: valor erróneo en trap_list[%d]: %p"
 
-#: trap.c:383
+#: trap.c:391
 #, c-format
-msgid ""
-"run_pending_traps: signal handler is SIG_DFL, resending %d (%s) to myself"
-msgstr ""
-"run_pending_traps: el manejador de señal es SIG_DFL, reenviando %d (%s) a mí "
-"mismo"
+msgid "run_pending_traps: signal handler is SIG_DFL, resending %d (%s) to myself"
+msgstr "run_pending_traps: el manejador de señal es SIG_DFL, reenviando %d (%s) a mí mismo"
 
-#: trap.c:439
+#: trap.c:447
 #, c-format
 msgid "trap_handler: bad signal %d"
 msgstr "trap_handler: señal errónea %d"
 
-#: variables.c:399
+#: variables.c:409
 #, c-format
 msgid "error importing function definition for `%s'"
 msgstr "error al importar la definición de la función para `%s'"
 
-#: variables.c:801
+#: variables.c:814
 #, c-format
 msgid "shell level (%d) too high, resetting to 1"
 msgstr "el nivel de shell (%d) es demasiado alto, se reestablece a 1"
 
-#: variables.c:2512
+#: variables.c:2413
 msgid "make_local_variable: no function context at current scope"
 msgstr "make_local_variable: no hay contexto de función en el ámbito actual"
 
-#: variables.c:2531
+#: variables.c:2432
 #, c-format
 msgid "%s: variable may not be assigned value"
 msgstr "%s: variable quizá no es valor asignado"
 
-#: variables.c:3246
+#: variables.c:3043
 #, c-format
 msgid "%s: assigning integer to name reference"
 msgstr "%s: asignando entero a nombre referencia"
 
-#: variables.c:4149
+#: variables.c:3940
 msgid "all_local_variables: no function context at current scope"
 msgstr "all_local_variables: no hay contexto de función en el ámbito actual"
 
-#: variables.c:4437
+#: variables.c:4218
 #, c-format
 msgid "%s has null exportstr"
 msgstr "%s tiene exportstr nulo"
 
-#: variables.c:4442 variables.c:4451
+#: variables.c:4223 variables.c:4232
 #, c-format
 msgid "invalid character %d in exportstr for %s"
 msgstr "carácter inválido %d en exportstr para %s"
 
-#: variables.c:4457
+#: variables.c:4238
 #, c-format
 msgid "no `=' in exportstr for %s"
 msgstr "no hay `=' en exportstr para %s"
 
-#: variables.c:4911
+#: variables.c:4684
 msgid "pop_var_context: head of shell_variables not a function context"
-msgstr ""
-"pop_var_context: la cabeza de shell_variables no es un contexto de función"
+msgstr "pop_var_context: la cabeza de shell_variables no es un contexto de función"
 
-#: variables.c:4924
+#: variables.c:4697
 msgid "pop_var_context: no global_variables context"
 msgstr "pop_var_context: no es un contexto global_variables"
 
-#: variables.c:4999
+#: variables.c:4772
 msgid "pop_scope: head of shell_variables not a temporary environment scope"
-msgstr ""
-"pop_scope: la cabeza de shell_variables no es un ámbito de ambiente temporal"
+msgstr "pop_scope: la cabeza de shell_variables no es un ámbito de entorno temporal"
 
-#: variables.c:5862
+#: variables.c:5619
 #, c-format
 msgid "%s: %s: cannot open as FILE"
 msgstr "%s: %s: no se puede abrir como FICHERO"
 
-#: variables.c:5867
+#: variables.c:5624
 #, c-format
 msgid "%s: %s: invalid value for trace file descriptor"
 msgstr "%s: %s: valor inválido para el descriptor de fichero de rastreo"
 
-#: variables.c:5912
+#: variables.c:5669
 #, c-format
 msgid "%s: %s: compatibility value out of range"
 msgstr "%s: %s: valor de compatibilidad fuera del rango"
 
 #: version.c:46 version2.c:46
 msgid "Copyright (C) 2016 Free Software Foundation, Inc."
-msgstr "© 1999 Free Software Foundation, Inc."
+msgstr "Copyright (C) 2016 Free Software Foundation, Inc."
 
 #: version.c:47 version2.c:47
-msgid ""
-"License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl."
-"html>\n"
-msgstr ""
-"Licencia GPLv3+: GPL de GNU versión 3 o posterior <http://gnu.org/licenses/"
-"gpl.html>\n"
+msgid "License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>\n"
+msgstr "Licencia GPLv3+: GPL de GNU versión 3 o posterior <http://gnu.org/licenses/gpl.html>\n"
 
 #: version.c:86 version2.c:86
 #, c-format
@@ -2230,22 +2171,22 @@ msgstr "Esto es software libre, es libre para modificar y redistribuirlo."
 msgid "There is NO WARRANTY, to the extent permitted by law."
 msgstr "No hay NINGUNA GARANTÍA, a la extensión permitida por la ley."
 
-#: xmalloc.c:93
+#: xmalloc.c:91
 #, c-format
 msgid "%s: cannot allocate %lu bytes (%lu bytes allocated)"
 msgstr "%s: no se pueden asignar %lu bytes (%lu bytes asignados)"
 
-#: xmalloc.c:95
+#: xmalloc.c:93
 #, c-format
 msgid "%s: cannot allocate %lu bytes"
 msgstr "%s: no se pueden asignar %lu bytes"
 
-#: xmalloc.c:165
+#: xmalloc.c:163
 #, c-format
 msgid "%s: %s:%d: cannot allocate %lu bytes (%lu bytes allocated)"
 msgstr "%s: %s:%d: no se pueden asignar %lu bytes (%lu bytes asignados)"
 
-#: xmalloc.c:167
+#: xmalloc.c:165
 #, c-format
 msgid "%s: %s:%d: cannot allocate %lu bytes"
 msgstr "%s: %s:%d: no se pueden asignar %lu bytes"
@@ -2259,13 +2200,8 @@ msgid "unalias [-a] name [name ...]"
 msgstr "unalias [-a] nombre [nombre ...]"
 
 #: builtins.c:53
-msgid ""
-"bind [-lpsvPSVX] [-m keymap] [-f filename] [-q name] [-u name] [-r keyseq] [-"
-"x keyseq:shell-command] [keyseq:readline-function or readline-command]"
-msgstr ""
-"bind [-lpsvPSVX] [-m comb_teclas] [-f fichero] [-q nombre] [-u nombre] [-r "
-"secteclas] [-x secteclas:mandato-shell] [secteclas:función-leerlinea o "
-"mandato-leerlinea]"
+msgid "bind [-lpsvPSVX] [-m keymap] [-f filename] [-q name] [-u name] [-r keyseq] [-x keyseq:shell-command] [keyseq:readline-function or readline-command]"
+msgstr "bind [-lpsvPSVX] [-m comb_teclas] [-f fichero] [-q nombre] [-u nombre] [-r secteclas] [-x secteclas:orden-shell] [secteclas:función-leerlinea o orden-leerlinea]"
 
 #: builtins.c:56
 msgid "break [n]"
@@ -2277,7 +2213,7 @@ msgstr "continue [n]"
 
 #: builtins.c:60
 msgid "builtin [shell-builtin [arg ...]]"
-msgstr "builtin [mandato-interno-shell [arg ...]]"
+msgstr "builtin [orden-interna-shell [arg ...]]"
 
 #: builtins.c:63
 msgid "caller [expr]"
@@ -2293,7 +2229,7 @@ msgstr "pwd [-LP]"
 
 #: builtins.c:76
 msgid "command [-pVv] command [arg ...]"
-msgstr "command [-pVv] mandato [arg ...]"
+msgstr "command [-pVv] orden [arg ...]"
 
 #: builtins.c:78
 msgid "declare [-aAfFgilnrtux] [-p] [name[=value] ...]"
@@ -2329,7 +2265,7 @@ msgstr "getopts cadena_opciones nombre [arg]"
 
 #: builtins.c:98
 msgid "exec [-cl] [-a name] [command [arguments ...]] [redirection ...]"
-msgstr "exec [-cl] [-a nombre] [mandato [argumentos ...]] [redirección ...]"
+msgstr "exec [-cl] [-a nombre] [orden [argumentos ...]] [redirección ...]"
 
 #: builtins.c:100
 msgid "exit [n]"
@@ -2341,15 +2277,15 @@ msgstr "logout [n]"
 
 #: builtins.c:105
 msgid "fc [-e ename] [-lnr] [first] [last] or fc -s [pat=rep] [command]"
-msgstr "fc [-e nombre_e] [-lnr] [primero] [último] o fc -s [pat=rep] [mandato]"
+msgstr "fc [-e nombre_e] [-lnr] [primero] [último] o fc -s [pat=rep] [orden]"
 
 #: builtins.c:109
 msgid "fg [job_spec]"
-msgstr "fg [id_tarea]"
+msgstr "fg [id_trabajo]"
 
 #: builtins.c:113
 msgid "bg [job_spec ...]"
-msgstr "bg [id_tarea ...]"
+msgstr "bg [id_trabajo ...]"
 
 #: builtins.c:116
 msgid "hash [-lr] [-p pathname] [-dt] [name ...]"
@@ -2360,12 +2296,8 @@ msgid "help [-dms] [pattern ...]"
 msgstr "help [-dms] [patrón ...]"
 
 #: builtins.c:123
-msgid ""
-"history [-c] [-d offset] [n] or history -anrw [filename] or history -ps arg "
-"[arg...]"
-msgstr ""
-"history [-c] [-d despl] [n] o history -anrw [fichero] o history -ps arg "
-"[arg...]"
+msgid "history [-c] [-d offset] [n] or history -anrw [filename] or history -ps arg [arg...]"
+msgstr "history [-c] [-d despl] [n] o history -anrw [fichero] o history -ps arg [arg...]"
 
 # jobspec no es sólo el pid del proceso, puede ser tambien
 # el nombre de la orden que se creo con el proceso em+
@@ -2373,32 +2305,24 @@ msgstr ""
 # mucho. ¿Sugerencias? cfuga
 #: builtins.c:127
 msgid "jobs [-lnprs] [jobspec ...] or jobs -x command [args]"
-msgstr "jobs [-lnprs] [tarea_id ...] o jobs -x mandato [args]"
+msgstr "jobs [-lnprs] [idtrabajo ...] o jobs -x orden [args]"
 
 # lo mismo em+
 #: builtins.c:131
 msgid "disown [-h] [-ar] [jobspec ... | pid ...]"
-msgstr "disown [-h] [-ar] [idtarea ... | pid ...]"
+msgstr "disown [-h] [-ar] [idtrabajo ... | pid ...]"
 
 #: builtins.c:134
-msgid ""
-"kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... or kill -l "
-"[sigspec]"
-msgstr ""
-"kill [-s id_señal | -n num_señal | -id_señal] pid | idtarea ... o kill -l "
-"[id_señal]"
+msgid "kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... or kill -l [sigspec]"
+msgstr "kill [-s id_señal | -n num_señal | -id_señal] pid | idtrabajo ... o kill -l [id_señal]"
 
 #: builtins.c:136
 msgid "let arg [arg ...]"
 msgstr "let arg [arg ...]"
 
 #: builtins.c:138
-msgid ""
-"read [-ers] [-a array] [-d delim] [-i text] [-n nchars] [-N nchars] [-p "
-"prompt] [-t timeout] [-u fd] [name ...]"
-msgstr ""
-"read [-ers] [-a matriz] [-d delim] [-i texto] [-n ncars] [-N ncars] [-p "
-"prompt] [-t tiempo] [-u df] [nombre ...]"
+msgid "read [-ers] [-a array] [-d delim] [-i text] [-n nchars] [-N nchars] [-p prompt] [-t timeout] [-u fd] [name ...]"
+msgstr "read [-ers] [-a matriz] [-d delim] [-i texto] [-n ncars] [-N ncars] [-p prompt] [-t tiempo] [-u df] [nombre ...]"
 
 #: builtins.c:140
 msgid "return [n]"
@@ -2461,8 +2385,7 @@ msgid "umask [-p] [-S] [mode]"
 msgstr "umask [-p] [-S] [modo]"
 
 #: builtins.c:177
-#, fuzzy
-msgid "wait [-fn] [id ...]"
+msgid "wait [-n] [id ...]"
 msgstr "wait [-n] [id ...]"
 
 #: builtins.c:181
@@ -2471,15 +2394,15 @@ msgstr "wait [pid ...]"
 
 #: builtins.c:184
 msgid "for NAME [in WORDS ... ] ; do COMMANDS; done"
-msgstr "for NOMBRE [in PALABRAS ... ] ; do MANDATOS; done"
+msgstr "for NOMBRE [in PALABRAS ... ] ; do ÓRDENES; done"
 
 #: builtins.c:186
 msgid "for (( exp1; exp2; exp3 )); do COMMANDS; done"
-msgstr "for (( exp1; exp2; exp3 )); do MANDATOS; done"
+msgstr "for (( exp1; exp2; exp3 )); do ÓRDENES; done"
 
 #: builtins.c:188
 msgid "select NAME [in WORDS ... ;] do COMMANDS; done"
-msgstr "select NOMBRE [in PALABRAS ... ;] do MANDATOS; done"
+msgstr "select NOMBRE [in PALABRAS ... ;] do ÓRDENES; done"
 
 #: builtins.c:190
 msgid "time [-p] pipeline"
@@ -2487,39 +2410,35 @@ msgstr "time [-p] tubería"
 
 #: builtins.c:192
 msgid "case WORD in [PATTERN [| PATTERN]...) COMMANDS ;;]... esac"
-msgstr "case PALABRA in [PATRÓN [| PATRÓN]...) MANDATOS ;;]... esac"
+msgstr "case PALABRA in [PATRÓN [| PATRÓN]...) ÓRDENES ;;]... esac"
 
 #: builtins.c:194
-msgid ""
-"if COMMANDS; then COMMANDS; [ elif COMMANDS; then COMMANDS; ]... [ else "
-"COMMANDS; ] fi"
-msgstr ""
-"if MANDATOS; then MANDATOS; [ elif MANDATOS; then MANDATOS; ]...[ else "
-"MANDATOS; ] fi"
+msgid "if COMMANDS; then COMMANDS; [ elif COMMANDS; then COMMANDS; ]... [ else COMMANDS; ] fi"
+msgstr "if ÓRDENES; then ÓRDENES; [ elif ÓRDENES; then ÓRDENES; ]...[ else ÓRDENES; ] fi"
 
 #: builtins.c:196
 msgid "while COMMANDS; do COMMANDS; done"
-msgstr "while MANDATOS; do MANDATOS; done"
+msgstr "while ÓRDENES; do ÓRDENES; done"
 
 #: builtins.c:198
 msgid "until COMMANDS; do COMMANDS; done"
-msgstr "until MANDATOS; do MANDATOS; done"
+msgstr "until ÓRDENES; do ÓRDENES; done"
 
 #: builtins.c:200
 msgid "coproc [NAME] command [redirections]"
-msgstr "coproc [NOMBRE] mandato [redirecciones]"
+msgstr "coproc [NOMBRE] orden [redirecciones]"
 
 #: builtins.c:202
 msgid "function name { COMMANDS ; } or name () { COMMANDS ; }"
-msgstr "function nombre { MANDATOS ; } ó nombre () { MANDATOS ; }"
+msgstr "function nombre { ÓRDENES ; } o nombre () { ÓRDENES ; }"
 
 #: builtins.c:204
 msgid "{ COMMANDS ; }"
-msgstr "{ MANDATOS ; }"
+msgstr "{ ÓRDENES ; }"
 
 #: builtins.c:206
 msgid "job_spec [&]"
-msgstr "id_tarea [&]"
+msgstr "id_trabajo [&]"
 
 #: builtins.c:208
 msgid "(( expression ))"
@@ -2554,44 +2473,24 @@ msgid "printf [-v var] format [arguments]"
 msgstr "printf [-v var] formato [argumentos]"
 
 #: builtins.c:231
-msgid ""
-"complete [-abcdefgjksuv] [-pr] [-DE] [-o option] [-A action] [-G globpat] [-"
-"W wordlist]  [-F function] [-C command] [-X filterpat] [-P prefix] [-S "
-"suffix] [name ...]"
-msgstr ""
-"complete [-abcdefgjksuv] [-pr] [-DE] [-o opción] [-A acción] [-G patglob] [-"
-"W listapalabras] [-F función] [-C mandato] [-X patfiltro] [-P prefijo] [-S "
-"sufijo] [nombre ...]"
+msgid "complete [-abcdefgjksuv] [-pr] [-DE] [-o option] [-A action] [-G globpat] [-W wordlist]  [-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] [name ...]"
+msgstr "complete [-abcdefgjksuv] [-pr] [-DE] [-o opción] [-A acción] [-G patglob] [-W listapalabras] [-F función] [-C orden] [-X patfiltro] [-P prefijo] [-S sufijo] [nombre ...]"
 
 #: builtins.c:235
-msgid ""
-"compgen [-abcdefgjksuv] [-o option] [-A action] [-G globpat] [-W wordlist]  "
-"[-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] [word]"
-msgstr ""
-"compgen [-abcdefgjksuv] [-o opción]  [-A acción] [-G patglob] [-W "
-"listapalabras] [-F función] [-C mandato] [-X patfiltro] [-P prefijo] [-S "
-"sufijo] [palabra]"
+msgid "compgen [-abcdefgjksuv] [-o option] [-A action] [-G globpat] [-W wordlist]  [-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] [word]"
+msgstr "compgen [-abcdefgjksuv] [-o opción]  [-A acción] [-G patglob] [-W listapalabras] [-F función] [-C orden] [-X patfiltro] [-P prefijo] [-S sufijo] [palabra]"
 
 #: builtins.c:239
 msgid "compopt [-o|+o option] [-DE] [name ...]"
 msgstr "compopt [-o|+o opción] [-DE] [nombre ...]"
 
 #: builtins.c:242
-msgid ""
-"mapfile [-d delim] [-n count] [-O origin] [-s count] [-t] [-u fd] [-C "
-"callback] [-c quantum] [array]"
-msgstr ""
-"mapfile [-d delim] [-n cuenta] [-O origen] [-s cuenta] [-t] [-u df] [-C "
-"llamada] [-c quantum] [matriz]"
+msgid "mapfile [-d delim] [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c quantum] [array]"
+msgstr "mapfile [-d delim] [-n cuenta] [-O origen] [-s cuenta] [-t] [-u df] [-C llamada] [-c quantum] [matriz]"
 
 #: builtins.c:244
-#, fuzzy
-msgid ""
-"readarray [-d delim] [-n count] [-O origin] [-s count] [-t] [-u fd] [-C "
-"callback] [-c quantum] [array]"
-msgstr ""
-"readarray [-n cuenta] [-O origen] [-s cuenta] [-t] [-u df] [-C llamada] [-c "
-"quantum] [matriz]"
+msgid "readarray [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c quantum] [array]"
+msgstr "readarray [-n cuenta] [-O origen] [-s cuenta] [-t] [-u df] [-C llamada] [-c quantum] [matriz]"
 
 # Más en español sería: se define un alias por cada NOMBRE cuyo VALOR se da. sv
 # Lo mismo de antes: el alias es expandido -> el alias se expande. sv
@@ -2612,25 +2511,24 @@ msgid ""
 "      -p\tprint all defined aliases in a reusable format\n"
 "    \n"
 "    Exit Status:\n"
-"    alias returns true unless a NAME is supplied for which no alias has "
-"been\n"
+"    alias returns true unless a NAME is supplied for which no alias has been\n"
 "    defined."
 msgstr ""
-"Define o enseña aliases.\n"
+"Define o muestra alias.\n"
 "    \n"
-"    Sin argumentos `alias' escribe la lista de aliases en formato\n"
-"    reutilizable `alias NOMBRE=VALOR' en la salida común.\n"
+"    Sin argumentos `alias' muestra la lista de alias en el formato\n"
+"    reutilizable `alias NOMBRE=VALOR' en la salida estándar.\n"
 "    \n"
-"    De otra manera, se define un alias por cada NOMBRE cuyo VALOR se\n"
+"    En caso contrario, se define un alias por cada NOMBRE cuyo VALOR se\n"
 "    proporcione.  Un espacio final en VALOR causa que se revise\n"
 "    la siguiente palabra para sustitución de alias cuando se expande\n"
 "    el alias.\n"
 "    \n"
 "    Opciones:\n"
-"      -p\tMuestra todos los aliases definidos en un formato reusable\n"
+"      -p\tmuestra todos los alias definidos en un formato reutilizable\n"
 "    \n"
-"    Estado de salida:\n"
-"    alias devuelve verdadero a menos que se de un NOMBRE para el cual\n"
+"    Estado de Salida:\n"
+"    alias devuelve verdadero a menos que se dé un NOMBRE para el cual\n"
 "    no se haya definido ningún alias."
 
 #: builtins.c:278
@@ -2663,76 +2561,65 @@ msgid ""
 "    Options:\n"
 "      -m  keymap         Use KEYMAP as the keymap for the duration of this\n"
 "                         command.  Acceptable keymap names are emacs,\n"
-"                         emacs-standard, emacs-meta, emacs-ctlx, vi, vi-"
-"move,\n"
+"                         emacs-standard, emacs-meta, emacs-ctlx, vi, vi-move,\n"
 "                         vi-command, and vi-insert.\n"
 "      -l                 List names of functions.\n"
 "      -P                 List function names and bindings.\n"
 "      -p                 List functions and bindings in a form that can be\n"
 "                         reused as input.\n"
-"      -S                 List key sequences that invoke macros and their "
-"values\n"
-"      -s                 List key sequences that invoke macros and their "
-"values\n"
+"      -S                 List key sequences that invoke macros and their values\n"
+"      -s                 List key sequences that invoke macros and their values\n"
 "                         in a form that can be reused as input.\n"
 "      -V                 List variable names and values\n"
 "      -v                 List variable names and values in a form that can\n"
 "                         be reused as input.\n"
 "      -q  function-name  Query about which keys invoke the named function.\n"
-"      -u  function-name  Unbind all keys which are bound to the named "
-"function.\n"
+"      -u  function-name  Unbind all keys which are bound to the named function.\n"
 "      -r  keyseq         Remove the binding for KEYSEQ.\n"
 "      -f  filename       Read key bindings from FILENAME.\n"
 "      -x  keyseq:shell-command\tCause SHELL-COMMAND to be executed when\n"
 "    \t\t\t\tKEYSEQ is entered.\n"
-"      -X                 List key sequences bound with -x and associated "
-"commands\n"
+"      -X                 List key sequences bound with -x and associated commands\n"
 "                         in a form that can be reused as input.\n"
 "    \n"
 "    Exit Status:\n"
 "    bind returns 0 unless an unrecognized option is given or an error occurs."
 msgstr ""
-"Establece secuencias de teclas Readline y variables.\n"
-"\n"
+"Establece secuencias de teclas y variables de Readline.\n"
+"    \n"
 "    Asigna una secuencia de teclas a una función Readline o a una macro, o\n"
 "    establece una variable Readline.  La sintaxis de los argumentos que\n"
 "    no son opciones es equivalente a la que se encuentra en ~/.inputrc,\n"
 "    pero se debe pasar como un solo argumento:\n"
-"    p.e., bind '\"\\C-x\\C-r\": re-read-init-file'.\n"
+"    p.ej., bind '\"\\C-x\\C-r\": re-read-init-file'.\n"
 "    \n"
 "    Opciones:\n"
-"    \n"
-"      -m  comb_teclas    Usa COMB_TECLAS como la combinación de teclas por "
-"la\n"
-"                         duración de este mandato.  Los nombres de "
-"combinaciones\n"
+"      -m  comb_teclas    Usa COMB_TECLAS como la combinación de teclas durante el\n"
+"                         que dure esta orden.  Los nombres de combinaciones\n"
 "                         de teclas aceptables son emacs, emacs-standard,\n"
 "                         emacs-meta, emacs-ctlx, vi, vi-move, vi-command y\n"
 "                         vi-insert.\n"
 "      -l                 Lista los nombres de las funciones.\n"
 "      -P                 Lista los nombres de las funciones y asignaciones.\n"
-"      -p                 Lista las funciones y asignaciones en una forma "
-"que\n"
-"                         se puede reusar como entrada.\n"
+"      -p                 Lista las funciones y asignaciones de tal forma que\n"
+"                         se pueda ruutilizar como entrada.\n"
 "      -S                 Lista las secuencias de teclas que invocan macros\n"
 "                         y sus valores.\n"
 "      -s                 Lista las secuencias de teclas que invocan macros\n"
-"                         y sus valores en una forma que se pueden reusar "
-"como\n"
+"                         y sus valores en una forma que se pueden reutilizar como\n"
 "                         entrada.\n"
 "      -V                 Lista los nombres de variables y valores.\n"
 "      -v                 Lista los nombres de variables y valores en una\n"
-"                         forma que se pueden reusar como entrada.\n"
+"                         forma que se pueden reutilizar como entrada.\n"
 "      -q nombre-función  Pregunta qué teclas invocan la función nombrada.\n"
 "      -u nombre-función  Borra todas las teclas que están ligadas a\n"
 "                         la función nombrada.\n"
 "      -r secteclas       Borra la asignación para la SECTECLAS.\n"
 "      -f fichero         Lee las asignaciones de teclas del FICHERO.\n"
-"      -x secteclas:mandato-shell\tCausa que se ejecute el MANDATO-SHELL "
-"cuando\n"
+"      -x secteclas:orden-shell\tCausa que se ejecute la ORDEN-SHELL cuando\n"
 "    \t\t\t\tse introduce la SECTECLAS.\n"
 "    \n"
-"    Estado de salida:\n"
+"    Estado de Salida:\n"
 "    bind devuelve 0 a menos que se presente una opción desconocida o suceda\n"
 "    un error."
 
@@ -2746,12 +2633,12 @@ msgid ""
 "    Exit Status:\n"
 "    The exit status is 0 unless N is not greater than or equal to 1."
 msgstr ""
-"Termina ciclos for, while o until.\n"
+"Termina bucles for, while o until.\n"
 "    \n"
-"    Termina un ciclo FOR, WHILE o UNTIL.  Si se especifica N, termina\n"
-"    N ciclos anidados.\n"
+"    Termina un bucle FOR, WHILE o UNTIL.  Si se especifica N, termina\n"
+"    N bucles anidados.\n"
 "    \n"
-"    Estado de salida:\n"
+"    Estado de Salida:\n"
 "    El estado de salida es 0 a menos que N no sea mayor o igual a 1."
 
 #: builtins.c:342
@@ -2764,11 +2651,10 @@ msgid ""
 "    Exit Status:\n"
 "    The exit status is 0 unless N is not greater than or equal to 1."
 msgstr ""
-"Continúa iteraciones for, while o until\n"
+"Reanuda bucles for, while o until\n"
 "    \n"
-"    Continúa la siguiente iteración del ciclo FOR, WHILE o UNTIL\n"
-"    circundante.  Si se especifica N, retoma en el N-ésimo ciclo "
-"circundante.\n"
+"    Reanuda la siguiente iteración del bucle FOR, WHILE o UNTIL\n"
+"    circundante.  Si se especifica N, reanuda en el N-ésimo bucle circundante.\n"
 "    \n"
 "    Estado de Salida:\n"
 "    El estado de salida es 0 a menos que N no sea mayor o igual a 1."
@@ -2779,24 +2665,22 @@ msgid ""
 "    \n"
 "    Execute SHELL-BUILTIN with arguments ARGs without performing command\n"
 "    lookup.  This is useful when you wish to reimplement a shell builtin\n"
-"    as a shell function, but need to execute the builtin within the "
-"function.\n"
+"    as a shell function, but need to execute the builtin within the function.\n"
 "    \n"
 "    Exit Status:\n"
 "    Returns the exit status of SHELL-BUILTIN, or false if SHELL-BUILTIN is\n"
 "    not a shell builtin.."
 msgstr ""
-"Ejecuta mandatos internos del shell\n"
+"Ejecuta órdenes internas del shell\n"
 "    \n"
-"    Ejecuta el MANDATO-INTERNA-SHELL con los argumentos ARGs sin realizar\n"
-"    la búsqueda interna de mandatos.  Esto es útil cuando desea "
-"reimplementar\n"
-"    un mandato interno del shell como una función de shell, pero necesita\n"
-"    ejecutar el mandato interno dentro de la función.\n"
+"    Ejecuta la ORDEN-INTERNA-SHELL con los argumentos ARGs sin realizar la\n"
+"    búsqueda interna de órdenes.  Esto es útil cuando se desea reimplementar\n"
+"    una orden interna de la shell como una función de shell, pero se necesita\n"
+"    ejecutar la orden interna dentro de la función.\n"
 "    \n"
 "    Estado de Salida:\n"
-"    Devuelve el estado de salida del MANDATO-INTERNA-SHELL, o falso si la\n"
-"    ORDEN-INTERNA-SHELL no es un mandato interno de shell."
+"    Devuelve el estado de salida de la ORDEN-INTERNA-SHELL, o falso si la\n"
+"    ORDEN-INTERNA-SHELL no es una orden interna de shell."
 
 #: builtins.c:369
 msgid ""
@@ -2817,9 +2701,9 @@ msgstr ""
 "    \n"
 "    Sin EXPR, devuelve \"$linea $nombrefichero\".  Con EXPR, devuelve\n"
 "    \"$linea $subrutina $nombrefichero\"; esta información adicional\n"
-"    se puede usar para proveer un volcado de pila.\n"
+"    se puede usar para proporcionar un volcado de pila.\n"
 "    \n"
-"    El valor de EXPR indica cuántos marcos de llamada se debe retroceder\n"
+"    El valor de EXPR indica cuántos marcos de llamada hay que retroceder\n"
 "    antes del actual; el marco superior es el marco 0.\n"
 "    \n"
 "    Estado de Salida:\n"
@@ -2833,22 +2717,16 @@ msgstr ""
 msgid ""
 "Change the shell working directory.\n"
 "    \n"
-"    Change the current directory to DIR.  The default DIR is the value of "
-"the\n"
+"    Change the current directory to DIR.  The default DIR is the value of the\n"
 "    HOME shell variable.\n"
 "    \n"
-"    The variable CDPATH defines the search path for the directory "
-"containing\n"
-"    DIR.  Alternative directory names in CDPATH are separated by a colon "
-"(:).\n"
-"    A null directory name is the same as the current directory.  If DIR "
-"begins\n"
+"    The variable CDPATH defines the search path for the directory containing\n"
+"    DIR.  Alternative directory names in CDPATH are separated by a colon (:).\n"
+"    A null directory name is the same as the current directory.  If DIR begins\n"
 "    with a slash (/), then CDPATH is not used.\n"
 "    \n"
-"    If the directory is not found, and the shell option `cdable_vars' is "
-"set,\n"
-"    the word is assumed to be  a variable name.  If that variable has a "
-"value,\n"
+"    If the directory is not found, and the shell option `cdable_vars' is set,\n"
+"    the word is assumed to be  a variable name.  If that variable has a value,\n"
 "    its value is used for DIR.\n"
 "    \n"
 "    Options:\n"
@@ -2864,21 +2742,19 @@ msgid ""
 "    \t\tattributes as a directory containing the file attributes\n"
 "    \n"
 "    The default is to follow symbolic links, as if `-L' were specified.\n"
-"    `..' is processed by removing the immediately previous pathname "
-"component\n"
+"    `..' is processed by removing the immediately previous pathname component\n"
 "    back to a slash or the beginning of DIR.\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns 0 if the directory is changed, and if $PWD is set successfully "
-"when\n"
+"    Returns 0 if the directory is changed, and if $PWD is set successfully when\n"
 "    -P is used; non-zero otherwise."
 msgstr ""
-"Modifica el directorio de tarea del shell.\n"
+"Modifica el directorio de trabajo del shell.\n"
 "    \n"
 "    Modifica el directorio actual a DIR.  DIR por defecto es el valor de la\n"
 "    variable de shell HOME.\n"
 "    \n"
-"    La variable CDPATH define la ruta de búsqueda por el directorio que\n"
+"    La variable CDPATH define la ruta de búsqueda para el directorio que\n"
 "    contiene DIR.  Los nombres alternativos de directorio en CDPATH se\n"
 "    separan con dos puntos (:).  Un nombre de directorio nulo es igual que\n"
 "    el directorio actual.  Si DIR comienza con una barra inclinada (/),\n"
@@ -2886,20 +2762,23 @@ msgstr ""
 "    \n"
 "    Si no se encuentra el directorio, y la opción del shell `cdable_vars'\n"
 "    está activa, entonces se trata la palabra como un nombre de variable.\n"
-"    Si esa variable tiene un valor, se utiliza su valor como DIR.\n"
+"    Si esa variable tiene un valor, se utiliza su valor para DIR.\n"
 "    \n"
 "    Opciones:\n"
-"        -L\t fuerza a seguir los enlaces simbólicos\n"
-"        -P\t usa la estructura física de directorios sin seguir los enlaces\n"
-"    \t\tsimbólicos\n"
-"        -e\t si se da la opción -P, y el directorio actual de tarea no se\n"
-"    \t\t puede determinar con éxito, termina con un estado diferente de "
-"cero.\n"
+"      -L\tfuerza a seguir los enlaces simbólicos: resuelve los enlaces\n"
+"    \t\tsimbólicos en DIR después de procesar las instancias de `..'\n"
+"      -P\tusa la estructura física de directorios sin seguir los enlaces\n"
+"    \t\tsimbólicos: resuelve los enlaces simbólicos en DIR antes de procesar\n"
+"    \t\tlas instancias de `..'\n"
+"      -e\tsi se da la opción -P y el directorio actual de trabajo no se\n"
+"    \t\tpuede determinar con éxito, termina con un estado diferente de cero.\n"
 "    \n"
 "    La acción por defecto es seguir los enlaces simbólicos, como si se\n"
 "    especificara `-L'.\n"
+"    `..' se procesa quitando la componente del nombre de la ruta inmediatamente\n"
+"    anterior hasta una barra inclinada o el comienzo de DIR.\n"
 "    \n"
-"    Estado de salida:\n"
+"    Estado de Salida:\n"
 "    Devuelve 0 si se cambia el directorio, y si $PWD está definido como\n"
 "    correcto cuando se emplee -P; de otra forma es diferente a cero."
 
@@ -2918,11 +2797,11 @@ msgid ""
 "    Returns 0 unless an invalid option is given or the current directory\n"
 "    cannot be read."
 msgstr ""
-"Escribe el nombre del directorio de trabajo actual.\n"
+"Muestra el nombre del directorio de trabajo actual.\n"
 "    \n"
 "    Opciones:\n"
 "      -L\tmuestra el valor de $PWD si nombra al directorio de\n"
-"    \ttarea actual\n"
+"    \ttrabajo actual\n"
 "      -P\tmuestra el directorio físico, sin enlaces simbólicos\n"
 "    \n"
 "    Por defecto, `pwd' se comporta como si se especificara `-L'.\n"
@@ -2942,10 +2821,10 @@ msgid ""
 msgstr ""
 "Orden nula.\n"
 "    \n"
-"    Sin efecto; el mandato no hace nada.\n"
+"    Sin efecto; la orden no hace nada.\n"
 "    \n"
 "    Estado de Salida:\n"
-"    Siempre con éxito."
+"    Siempre correcto."
 
 #: builtins.c:453
 msgid ""
@@ -2956,7 +2835,7 @@ msgid ""
 msgstr ""
 "Devuelve un resultado correcto.\n"
 "    \n"
-"    Estado de salida:\n"
+"    Estado de Salida:\n"
 "    Siempre correcto."
 
 #: builtins.c:462
@@ -2968,7 +2847,7 @@ msgid ""
 msgstr ""
 "Devuelve un resultado incorrecto.\n"
 "    \n"
-"    Estado de salida:\n"
+"    Estado de Salida:\n"
 "    Siempre incorrecto."
 
 #: builtins.c:471
@@ -2976,8 +2855,7 @@ msgid ""
 "Execute a simple command or display information about commands.\n"
 "    \n"
 "    Runs COMMAND with ARGS suppressing  shell function lookup, or display\n"
-"    information about the specified COMMANDs.  Can be used to invoke "
-"commands\n"
+"    information about the specified COMMANDs.  Can be used to invoke commands\n"
 "    on disk when a function with the same name exists.\n"
 "    \n"
 "    Options:\n"
@@ -2989,29 +2867,25 @@ msgid ""
 "    Exit Status:\n"
 "    Returns exit status of COMMAND, or failure if COMMAND is not found."
 msgstr ""
-"Ejecuta un mandato simple o enseña información sobre mandatos.\n"
+"Ejecuta una orden simple o muestra información sobre órdenes.\n"
 "    \n"
-"    Ejecuta el MANDATO con ARGumentos, suprimiendo la búsqueda de funciones\n"
-"    de shell, o muestra información sobre las MANDATOs especificados. Se "
-"puede\n"
-"    usar para invocar mandatos en disco cuando existe una función con el "
-"mismo\n"
+"    Ejecuta la ORDEN con ARGumentos, suprimiendo la búsqueda de funciones\n"
+"    de shell, o muestra información sobre las ORDENes especificadas. Se puede\n"
+"    usar para invocar órdenes en disco cuando existe una función con el mismo\n"
 "    nombre.\n"
 "    \n"
 "    Opciones:\n"
-"      -p    emplee un valor predeterminado para rutas PATH para garantizar "
-"que\n"
-"                 encuentre todas las utilidades comunes\n"
-"      -v    escribe una descripción del MANDATO similar al mandato\n"
-"                 interna `type'\n"
-"      -V    escribe una descripción más detallada de cada MANDATO\n"
+"      -p    utiliza un valor predeterminado de RUTA que garantiza que se\n"
+"            encuentren todas las utilidades comunes\n"
+"      -v    muestra una descripción de la ORDEN similar a la orden\n"
+"            interna `type'\n"
+"      -V    muestra una descripción más detallada de cada ORDEN\n"
 "    \n"
 "    Estado de Salida:\n"
-"    Devuelve el estado de salida del MANDATO, o falla si no se encuentra\n"
-"    el MANDATO."
+"    Devuelve el estado de salida de la ORDEN, o fallo si no se encuentra\n"
+"    la ORDEN."
 
 #: builtins.c:490
-#, fuzzy
 msgid ""
 "Set variable values and attributes.\n"
 "    \n"
@@ -3030,11 +2904,11 @@ msgid ""
 "      -a\tto make NAMEs indexed arrays (if supported)\n"
 "      -A\tto make NAMEs associative arrays (if supported)\n"
 "      -i\tto make NAMEs have the `integer' attribute\n"
-"      -l\tto convert the value of each NAME to lower case on assignment\n"
+"      -l\tto convert NAMEs to lower case on assignment\n"
 "      -n\tmake NAME a reference to the variable named by its value\n"
 "      -r\tto make NAMEs readonly\n"
 "      -t\tto make NAMEs have the `trace' attribute\n"
-"      -u\tto convert the value of each NAME to upper case on assignment\n"
+"      -u\tto convert NAMEs to upper case on assignment\n"
 "      -x\tto make NAMEs export\n"
 "    \n"
 "    Using `+' instead of `-' turns off the given attribute.\n"
@@ -3042,8 +2916,7 @@ msgid ""
 "    Variables with the integer attribute have arithmetic evaluation (see\n"
 "    the `let' command) performed when the variable is assigned a value.\n"
 "    \n"
-"    When used in a function, `declare' makes NAMEs local, as with the "
-"`local'\n"
+"    When used in a function, `declare' makes NAMEs local, as with the `local'\n"
 "    command.  The `-g' option suppresses this behavior.\n"
 "    \n"
 "    Exit Status:\n"
@@ -3056,36 +2929,36 @@ msgstr ""
 "    muestra los atributos y valores de todas las variables.\n"
 "    \n"
 "    Opciones:\n"
-"      -f\t restringe la acción o muestra a nombres y definiciones\n"
-"    \t de funciones\n"
-"      -F\t restringe la muestra a nombres de funciones (con número de\n"
-"    \t línea y fichero fuente al depurar)\n"
-"      -g\t crea variables globales cuando se usa en una función de shell;\n"
-"    \t de otra forma se descarta\n"
-"      -p\t enseña los atributos y valor de cada NOMBRE\n"
+"      -f\trestringe la acción o la información a nombres y definiciones\n"
+"    \t\tde funciones\n"
+"      -F\trestringe la información a nombres de funciones únicamente (con\n"
+"    \t\tnúmero de línea y fichero fuente al depurar)\n"
+"      -g\tcrea variables globales cuando se usa en una función de shell;\n"
+"    \t\ten caso contrario, se descarta\n"
+"      -p\tmuestra los atributos y el valor de cada NOMBRE\n"
 "    \n"
 "    Opciones que establecen atributos:\n"
-"      -a\t establece NOMBREs como matrices indizadas (si se admiten)\n"
-"      -A\t establece NOMBREs como matrices asociativas (si se admiten)\n"
-"      -i\t establece NOMBREs con el atributo `integer'\n"
-"      -l\t convierte NOMBREs a minúsculas en la asignación\n"
-"      -r\t crea NOMBREs como de sólo lectura\n"
-"      -t\t crea NOMBREs con el atributo `trace'\n"
-"      -u\t convierte NOMBREs a mayúsculas en la asignación\n"
-"      -x\t crea NOMBREs para exportar\n"
+"      -a\testablece NOMBREs como matrices indexadas (si se admiten)\n"
+"      -A\testablece NOMBREs como matrices asociativas (si se admiten)\n"
+"      -i\testablece NOMBREs con el atributo `integer'\n"
+"      -l\tconvierte NOMBREs a minúsculas en la asignación\n"
+"      -r\tcrea NOMBREs como de sólo lectura\n"
+"      -t\tcrea NOMBREs con el atributo `trace'\n"
+"      -u\tconvierte NOMBREs a mayúsculas en la asignación\n"
+"      -x\tcrea NOMBREs para exportar\n"
 "    \n"
-"    Si usa `+' en lugar de `-' desactiva el atributo dado.\n"
+"    Si se usa `+' en lugar de `-', se desactiva el atributo dado.\n"
 "    \n"
 "    Las variables con el atributo ‘integer’ realizan evaluación aritmética\n"
-"    (vea el mandato `let') cuando se asigna un valor a la variable.\n"
+"    (vea la orden `let') cuando se asigna un valor a la variable.\n"
 "    \n"
 "    Cuando se usa en una función, `declare' hace locales a los NOMBREs,\n"
-"    como sucede con el mandato `local'.  La opción `-g' suprime esta\n"
+"    como sucede con la orden `local'.  La opción `-g' suprime esta\n"
 "    conducta.\n"
 "    \n"
 "    Estado de Salida:\n"
 "    Devuelve correcto a menos que se dé una opción inválida o\n"
-"    suceda un error."
+"    suceda un error de asignación de variable."
 
 #: builtins.c:530
 msgid ""
@@ -3093,9 +2966,9 @@ msgid ""
 "    \n"
 "    A synonym for `declare'.  See `help declare'."
 msgstr ""
-"Establece valores variables y atributos.\n"
+"Establece valores de variables y atributos.\n"
 "    \n"
-"    Un sinónimo para `declare'.  Vea `help declare'."
+"    Sinónimo de `declare'.  Vea `help declare'."
 
 #: builtins.c:538
 msgid ""
@@ -3116,19 +2989,18 @@ msgstr ""
 "    Crea una variable local llamada NOMBRE, y le da un VALOR.  OPCIÓN puede\n"
 "    ser cualquier opción aceptada por `declare'.\n"
 "    \n"
-"    Las variables locales sólo se pueden usar en una función; son visibles\n"
-"    sólo en la función donde se definen y sus descendientes.\n"
+"    Las variables locales sólo pueden usarse dentro de funciones; son\n"
+"    visibles solo en la función donde se definen y sus hijos.\n"
 "    \n"
 "    Estado de Salida:\n"
-"    Devuelve correcto a menos que se de una opción inválida, suceda\n"
-"    un error, o el shell no esté ejecutando una función."
+"    Devuelve correcto a menos que se dé una opción inválida, suceda\n"
+"    un error de asignación, o el shell no esté ejecutando una función."
 
 #: builtins.c:555
 msgid ""
 "Write arguments to the standard output.\n"
 "    \n"
-"    Display the ARGs, separated by a single space character and followed by "
-"a\n"
+"    Display the ARGs, separated by a single space character and followed by a\n"
 "    newline, on the standard output.\n"
 "    \n"
 "    Options:\n"
@@ -3156,36 +3028,36 @@ msgid ""
 "    Exit Status:\n"
 "    Returns success unless a write error occurs."
 msgstr ""
-"Escribe argumentos en la salida común.\n"
+"Escribe argumentos en la salida estándar.\n"
 "    \n"
-"    Enseña los ARGumentos en la salida común seguidos por un carácter\n"
+"    Muestra los ARGumentos en la salida estándar seguidos por un carácter\n"
 "    de fin de línea.\n"
 "    \n"
 "    Opciones:\n"
 "      -n\tno agrega un carácter de fin de línea\n"
-"      -e\tactiva la interpretación de caracteres de escape de\n"
-"    \t\tde barra invertida\n"
+"      -e\tactiva la interpretación de los siguientes caracteres de escape de\n"
+"    \t\tbarra invertida\n"
 "      -E\tdesactiva explícitamente la interpretación de caracteres de\n"
-"    \t\tde escape de barra invertida\n"
-"    \n"
-"    `echo' interpreta los siguientes caracteres de escape de barra "
-"invertida:\n"
-"     \a\talerta (timbre)\n"
-"     \\b\tespacio hacia atrás\n"
-"     \\c\tsuprime toda salida a continuación\n"
-"     \\E\tcarácter de escape\n"
-"     \\f\talimentación de papel\n"
-"     \\n\tlínea nueva\n"
-"     \\r\tretorno de carro\n"
-"     \\t\ttabulador horizontal\n"
-"     \\v\ttabulador vertical\n"
-"     \\\\\tbarra invertida\n"
-"     \\0nnn\tel carácter cuyo código ASCII es NNN (octal).  NNN puede ser\n"
+"    \t\tescape de barra invertida\n"
+"    \n"
+"    `echo' interpreta los siguientes caracteres de escape de barra invertida:\n"
+"      \\a\talerta (timbre)\n"
+"      \\b\tborrado hacia atrás\n"
+"      \\c\tsuprime toda salida a continuación\n"
+"      \\e\tcarácter de escape\n"
+"      \\E\tcarácter de escape\n"
+"      \\f\talimentación de papel\n"
+"      \\n\tlínea nueva\n"
+"      \\r\tretorno de carro\n"
+"      \\t\ttabulador horizontal\n"
+"      \\v\ttabulador vertical\n"
+"      \\\\\tbarra invertida\n"
+"      \\0nnn\tcarácter cuyo código ASCII es NNN (octal).  NNN puede ser\n"
 "    \t\tde 0 a 3 dígitos octales\n"
-"     \\xHH\tel carácter de ocho bits cuyo valor es HH (hexadecimal).  HH\n"
+"      \\xHH\tel de ocho bits cuyo valor es HH (hexadecimal).  HH\n"
 "    \t\tpuede ser de uno o dos dígitos hexadecimales\n"
 "    \n"
-"    Estado de salida:\n"
+"    Estado de Salida:\n"
 "    Devuelve correcto a menos que suceda un error de escritura."
 
 #: builtins.c:591
@@ -3200,14 +3072,14 @@ msgid ""
 "    Exit Status:\n"
 "    Returns success unless a write error occurs."
 msgstr ""
-"Escribe argumentos en la salida común.\n"
+"Escribe argumentos en la salida estándar.\n"
 "    \n"
-"    Enseña los ARGumentos en la salida común seguidos por un carácter\n"
+"    Muestra los ARGumentos en la salida estándar seguidos por un carácter\n"
 "    de fin de línea.\n"
 "    Opciones:\n"
 "      -n\tno agrega un carácter de fin de línea\n"
 "    \n"
-"    Estado de salida:\n"
+"    Estado de Salida:\n"
 "    Devuelve correcto a menos que suceda un error de escritura."
 
 #: builtins.c:606
@@ -3236,54 +3108,49 @@ msgid ""
 "    Exit Status:\n"
 "    Returns success unless NAME is not a shell builtin or an error occurs."
 msgstr ""
-"Activa y desactiva los mandatos internos del shell.\n"
+"Activa y desactiva las órdenes internas del shell.\n"
 "    \n"
-"    Activa y desactiva los mandatos internos del shell.  El desactivar le\n"
-"    permite ejecutar un mandato del disco que tenga el mismo nombre que\n"
-"    el mandato interno del shell, sin usar el nombre de ruta completo.\n"
+"    Activa y desactiva las órdenes internas del shell.  El desactivar le\n"
+"    permite ejecutar una orden del disco que tenga el mismo nombre que\n"
+"    la orden interna del shell, sin usar el nombre de ruta completo.\n"
 "    \n"
 "    Opciones:\n"
-"      -a\t escribe la lista de mandatos internos indicando si están activas "
-"o no\n"
-"      -n\t desactiva cada NOMBRE o muestra la lista de mandatos internos\n"
-"    \t desactivadas\n"
-"      -p\t escribe la lista de mandatos internos en una forma reusable\n"
-"      -s\t escribe sólo los nombres de los mandatos internos `especiales' "
-"Posix\n"
+"      -a\tmuestra la lista de órdenes internas indicando si están activas o no\n"
+"      -n\tdesactiva cada NOMBRE o muestra la lista de órdenes internas\n"
+"    \t\tdesactivadas\n"
+"      -p\tmuestra la lista de órdenes internas en una forma reusable\n"
+"      -s\tmuestra solo los nombres de las órdenes internas `especiales' Posix\n"
 "    \n"
 "    Opciones que controlan la carga dinámica:\n"
-"      -f\t carga interna de NOMBRE desde objeto compartido FICHERO\n"
-"      -d\t borra un mandato interno cargado con -f\n"
+"      -f\tCarga la función interna NOMBRE desde el objeto compartido FICHERO\n"
+"      -d\tBorra una orden interna cargada con -f\n"
 "    \n"
 "    Sin opciones, se activa cada NOMBRE.\n"
 "    \n"
-"    Para usar `test' que se encuentra en $PATH en lugar del mandato interno\n"
+"    Para usar el `test' que se encuentra en $PATH en lugar de la orden interna\n"
 "    del shell, ejecute `enable -n test'.\n"
 "    \n"
 "    Estado de Salida:\n"
-"    Devuelve correcto a menos que NOMBRE no sea un mandato interno del "
-"shell\n"
+"    Devuelve correcto a menos que NOMBRE no sea una orden interna del shell\n"
 "    o suceda un error."
 
 #: builtins.c:634
 msgid ""
 "Execute arguments as a shell command.\n"
 "    \n"
-"    Combine ARGs into a single string, use the result as input to the "
-"shell,\n"
+"    Combine ARGs into a single string, use the result as input to the shell,\n"
 "    and execute the resulting commands.\n"
 "    \n"
 "    Exit Status:\n"
 "    Returns exit status of command or success if command is null."
 msgstr ""
-"Ejecuta argumentos como un mandato de shell.\n"
+"Ejecuta argumentos como una orden de shell.\n"
 "    \n"
-"    Combina los ARGumentos en una sola cadena, usa el resultado como "
-"entrada\n"
-"    para el shell, y ejecuta los mandatos resultantes.\n"
+"    Combina los ARGumentos en una sola cadena, usa el resultado como entrada\n"
+"    para el shell, y ejecuta las órdenes resultantes.\n"
 "    \n"
 "    Estado de Salida:\n"
-"    Devuelve el estado de salida del mandato o éxito si el mandato es nula."
+"    Devuelve el estado de salida de la orden o éxito si la orden es nula."
 
 # "a ser reconocidas" no está en español.
 # Yo pondría "las letras de opción que se reconocen". sv
@@ -3375,8 +3242,7 @@ msgid ""
 "Replace the shell with the given command.\n"
 "    \n"
 "    Execute COMMAND, replacing this shell with the specified program.\n"
-"    ARGUMENTS become the arguments to COMMAND.  If COMMAND is not "
-"specified,\n"
+"    ARGUMENTS become the arguments to COMMAND.  If COMMAND is not specified,\n"
 "    any redirections take effect in the current shell.\n"
 "    \n"
 "    Options:\n"
@@ -3384,32 +3250,28 @@ msgid ""
 "      -c\texecute COMMAND with an empty environment\n"
 "      -l\tplace a dash in the zeroth argument to COMMAND\n"
 "    \n"
-"    If the command cannot be executed, a non-interactive shell exits, "
-"unless\n"
+"    If the command cannot be executed, a non-interactive shell exits, unless\n"
 "    the shell option `execfail' is set.\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns success unless COMMAND is not found or a redirection error "
-"occurs."
+"    Returns success unless COMMAND is not found or a redirection error occurs."
 msgstr ""
-"Reemplaza el shell con el mandato dada.\n"
+"Reemplaza el shell con la orden dada.\n"
 "    \n"
-"    Ejecuta el MANDATO, reemplazando este shell con el programa "
-"especificado.\n"
-"    Los ARGUMENTOS se vuelven los argumentos del MANDATO.  Si no se\n"
-"    especifica el MANDATO, cualquier redirección toma efecto en el shell "
-"actual.\n"
+"    Ejecuta la ORDEN, reemplazando este shell con el programa especificado.\n"
+"    Los ARGUMENTOS se vuelven los argumentos de la ORDEN.  Si no se\n"
+"    especifica la ORDEN, cualquier redirección toma efecto en el shell actual.\n"
 "    \n"
 "    Opciones:\n"
-"      -a nombre\tpasa el NOMBRE como el argumento cero del MANDATO\n"
-"      -c\tejecuta el MANDATO en un ambiente vacío\n"
-"      -l\tcoloca un guion en el argumento cero del MANDATO\n"
+"      -a nombre\tpasa el NOMBRE como el argumento cero de la ORDEN\n"
+"      -c\tejecuta la ORDEN en un entorno vacío\n"
+"      -l\tcoloca un guion en el argumento cero de la ORDEN\n"
 "    \n"
-"    Si el mandato no se puede ejecutar, termina un shell no interactivo,\n"
+"    Si la orden no se puede ejecutar, termina un shell no interactivo,\n"
 "    a menos que la opción de shell `execfail' esté activa.\n"
 "    \n"
 "    Estado de Salida:\n"
-"    Devuelve éxito a menos que no se encuentre el MANDATO o que suceda un\n"
+"    Devuelve éxito a menos que no se encuentre la ORDEN o que suceda un\n"
 "    error de redirección."
 
 #: builtins.c:709
@@ -3421,16 +3283,14 @@ msgid ""
 msgstr ""
 "Termina el shell.\n"
 "    \n"
-"    Termina el shell con un estado de N.  Si se omite N, el estado de "
-"salida\n"
-"    es el mismo del último mandato ejecutado."
+"    Termina el shell con un estado de N.  Si se omite N, el estado de salida\n"
+"    es el mismo de la última orden ejecutada."
 
 #: builtins.c:718
 msgid ""
 "Exit a login shell.\n"
 "    \n"
-"    Exits a login shell with exit status N.  Returns an error if not "
-"executed\n"
+"    Exits a login shell with exit status N.  Returns an error if not executed\n"
 "    in a login shell."
 msgstr ""
 "Termina un shell de entrada.\n"
@@ -3442,15 +3302,13 @@ msgstr ""
 msgid ""
 "Display or execute commands from the history list.\n"
 "    \n"
-"    fc is used to list or edit and re-execute commands from the history "
-"list.\n"
+"    fc is used to list or edit and re-execute commands from the history list.\n"
 "    FIRST and LAST can be numbers specifying the range, or FIRST can be a\n"
 "    string, which means the most recent command beginning with that\n"
 "    string.\n"
 "    \n"
 "    Options:\n"
-"      -e ENAME\tselect which editor to use.  Default is FCEDIT, then "
-"EDITOR,\n"
+"      -e ENAME\tselect which editor to use.  Default is FCEDIT, then EDITOR,\n"
 "    \t\tthen vi\n"
 "      -l \tlist lines instead of editing\n"
 "      -n\tomit line numbers when listing\n"
@@ -3464,33 +3322,30 @@ msgid ""
 "    the last command.\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns success or status of executed command; non-zero if an error "
-"occurs."
+"    Returns success or status of executed command; non-zero if an error occurs."
 msgstr ""
-"Enseña o ejecuta órdenes de la lista de historia.\n"
+"Muestra o ejecuta órdenes de la lista de la historia.\n"
 "    \n"
-"    fc se usa para listar o editar y re-ejecutar mandatos de la lista de\n"
-"    historia.  PRIMERO y ÚLTIMO pueden ser números que especifican el "
-"rango,\n"
-"    o PRIMERO puede ser una cadena, que significa el mandato más reciente "
-"que\n"
+"    fc se usa para listar o editar y reejecutar órdenes de la lista de la\n"
+"    historia.  PRIMERO y ÚLTIMO pueden ser números que especifican el rango,\n"
+"    o PRIMERO puede ser una cadena, que significa la orden más reciente que\n"
 "    comience con esa cadena.\n"
 "    \n"
-"       -e NOMBRE_E selecciona el editor a usar.  Por defecto es FCEDIT,\n"
-"    \t\t tras EDITOR, después vi\n"
-"       -l lista líneas en lugar de editar\n"
-"       -n omite los números de línea al listar\n"
-"       -r invierte el orden de las líneas (listados primero más recientes)\n"
+"       -e NOMBRE_E\tselecciona el editor a usar.  Por defecto es FCEDIT,\n"
+"    \t\tdespués EDITOR, después vi\n"
+"       -l \tlista laslíneas en lugar de editar\n"
+"       -n\tomite los números de línea al listar\n"
+"       -r\tinvierte el orden de las líneas (muestra primero las más recientes)\n"
 "    \n"
-"    Con el formato `fc -s [pat=rep ...] [orden]', el MANDATO se\n"
+"    Con el formato `fc -s [pat=rep ...] [orden]', la ORDEN se\n"
 "    ejecuta de nuevo después de realizar la sustitución ANT=NUEVO.\n"
 "    \n"
-"    Un alias útil para usar con esto es r='fc -s', así que al teclear\n"
-"    `r cc' ejecuta el último mandato que comience con `cc' y al teclear\n"
-"    `r' re-ejecuta el último mandato.\n"
+"    Un alias útil para usar con esto es r='fc -s', tal que al teclear\n"
+"    `r cc' ejecuta la última orden que comience con `cc' y al teclear\n"
+"    `r' reejecuta la última orden.\n"
 "    \n"
 "    Estado de Salida:\n"
-"    Devuelve correcto o el estado del mandato ejecutado; si sucede un error\n"
+"    Devuelve correcto o el estado de la orden ejecutada; si sucede un error,\n"
 "    es diferente de cero."
 
 #: builtins.c:758
@@ -3504,37 +3359,34 @@ msgid ""
 "    Exit Status:\n"
 "    Status of command placed in foreground, or failure if an error occurs."
 msgstr ""
-"Mueve la tarea al primer plano.\n"
+"Mueve el trabajo al primer plano.\n"
 "    \n"
-"    Ubica a la tarea identificada con IDTAREA en el plano principal, y\n"
-"    lo hace la tarea actual.  Si IDTAREA no está presente, se usa\n"
-"    la noción del shell de tarea actual.\n"
+"    Ubica el trabajo identificado con IDTRABAJO en primer plano y\n"
+"    lo convierte en el trabajo actual.  Si IDTRABAJO no está presente, se usa\n"
+"    la noción del shell del trabajo actual.\n"
 "    \n"
 "    Estado de Salida:\n"
-"    El estado del mandato ubicado en primer plano, o falla si sucede un "
-"error."
+"    El estado de la orden ubicada en primer plano, o falla si sucede un error."
 
 #: builtins.c:773
 msgid ""
 "Move jobs to the background.\n"
 "    \n"
-"    Place the jobs identified by each JOB_SPEC in the background, as if "
-"they\n"
-"    had been started with `&'.  If JOB_SPEC is not present, the shell's "
-"notion\n"
+"    Place the jobs identified by each JOB_SPEC in the background, as if they\n"
+"    had been started with `&'.  If JOB_SPEC is not present, the shell's notion\n"
 "    of the current job is used.\n"
 "    \n"
 "    Exit Status:\n"
 "    Returns success unless job control is not enabled or an error occurs."
 msgstr ""
-"Mueve tareas al segundo plano.\n"
+"Mueve trabajos al segundo plano.\n"
 "    \n"
-"    Coloca las tareas identificados por cada JOB_SPEC en segundo plano,\n"
-"    como si se hubieran iniciado con `&'.  Si JOB_SPEC no está presente,\n"
-"    se usa la noción del shell de la tarea actual.\n"
+"    Coloca los trabajos identificados por cada IDTRABAJO en segundo plano,\n"
+"    como si se hubieran iniciado con `&'.  Si IDTRABAJO no está presente,\n"
+"    se usa la noción del shell del trabajo actual.\n"
 "    \n"
 "    Estado de Salida:\n"
-"    Devuelve correcto a menos que el control de tareas no esté activado o\n"
+"    Devuelve correcto a menos que el control de trabajos no esté activado o\n"
 "    suceda un error."
 
 #: builtins.c:787
@@ -3542,8 +3394,7 @@ msgid ""
 "Remember or display program locations.\n"
 "    \n"
 "    Determine and remember the full pathname of each command NAME.  If\n"
-"    no arguments are given, information about remembered commands is "
-"displayed.\n"
+"    no arguments are given, information about remembered commands is displayed.\n"
 "    \n"
 "    Options:\n"
 "      -d\tforget the remembered location of each NAME\n"
@@ -3567,15 +3418,15 @@ msgstr ""
 "    órdenes almacenadas.\n"
 "    \n"
 "    Opciones:\n"
-"      -d\t\tolvida la ubicación almacenada de cada NOMBRE\n"
-"      -l\t\tmuestra en un formato que se puede reusar como entrada\n"
+"      -d\tolvida la ubicación almacenada de cada NOMBRE\n"
+"      -l\tmuestra en un formato que se puede reutilizar como entrada\n"
 "      -p ruta\tusa RUTA como la ruta completa de NOMBRE\n"
-"      -r\t\tolvida todas las ubicaciones almacenadas\n"
-"      -t\t\tmuestra la ubicación almacenada de cada NOMBRE,\n"
-"    \t\tcada ubicación con el NOMBRE correspondiente\n"
-"    \t\tse dan varios NOMBREs\n"
+"      -r\tolvida todas las ubicaciones almacenadas\n"
+"      -t\tmuestra la ubicación almacenada de cada NOMBRE,\n"
+"    \t\tcada ubicación precedida del NOMBRE correspondiente\n"
+"    \t\tsi se dan varios NOMBREs\n"
 "    Argumentos:\n"
-"      NOMBRE\t\tCada NOMBRE se busca en $PATH y se agrega a la lista\n"
+"      NOMBRE\tCada NOMBRE se busca en $PATH y se agrega a la lista\n"
 "    \t\tde órdenes almacenadas.\n"
 "    \n"
 "    Estado de Salida\n"
@@ -3583,7 +3434,6 @@ msgstr ""
 "    una opción inválida."
 
 #: builtins.c:812
-#, fuzzy
 msgid ""
 "Display information about builtin commands.\n"
 "    \n"
@@ -3598,17 +3448,16 @@ msgid ""
 "    \t\tPATTERN\n"
 "    \n"
 "    Arguments:\n"
-"      PATTERN\tPattern specifying a help topic\n"
+"      PATTERN\tPattern specifiying a help topic\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns success unless PATTERN is not found or an invalid option is "
-"given."
+"    Returns success unless PATTERN is not found or an invalid option is given."
 msgstr ""
-"Enseña información sobre órdenes internas.\n"
+"Muestra información sobre órdenes internas.\n"
 "    \n"
-"    Enseña un resumen breve de los mandatos internos.  Si se especifica\n"
-"    un PATRÓN, da ayuda detallada sobre todas los mandatos que\n"
-"    coincidan con el PATRÓN, de otra forma se muestra la lista de\n"
+"    Muestra un resumen breve de las órdenes internas.  Si se especifica\n"
+"    un PATRÓN, da ayuda detallada sobre todas las órdenes que\n"
+"    coincidan con el PATRÓN; en caso contrario, se muestra la lista de\n"
 "    tópicos de ayuda.\n"
 "    \n"
 "    Opciones:\n"
@@ -3625,7 +3474,6 @@ msgstr ""
 "    una opción inválida."
 
 #: builtins.c:836
-#, fuzzy
 msgid ""
 "Display or manipulate the history list.\n"
 "    \n"
@@ -3634,8 +3482,7 @@ msgid ""
 "    \n"
 "    Options:\n"
 "      -c\tclear the history list by deleting all of the entries\n"
-"      -d offset\tdelete the history entry at position OFFSET. Negative\n"
-"    \t\toffsets count back from the end of the history list\n"
+"      -d offset\tdelete the history entry at position OFFSET.\n"
 "    \n"
 "      -a\tappend history lines from this session to the history file\n"
 "      -n\tread all history lines not already read from the history file\n"
@@ -3653,24 +3500,22 @@ msgid ""
 "    \n"
 "    If the HISTTIMEFORMAT variable is set and not null, its value is used\n"
 "    as a format string for strftime(3) to print the time stamp associated\n"
-"    with each displayed history entry.  No time stamps are printed "
-"otherwise.\n"
+"    with each displayed history entry.  No time stamps are printed otherwise.\n"
 "    \n"
 "    Exit Status:\n"
 "    Returns success unless an invalid option is given or an error occurs."
 msgstr ""
-"Enseña o manipula la lista de la historia.\n"
+"Muestra o manipula la lista de la historia.\n"
 "    \n"
-"    Enseña la lista de la historia con números de línea, mostrando\n"
-"    cada línea modificada con un `*' como prefijo.  Un argumento\n"
-"    de N lista solamente las últimas N entradas.\n"
+"    Muestra la lista de la historia con números de línea, mostrando\n"
+"    cada línea modificada con un `*' como prefijo.  El argumento N\n"
+"    muestra solamente las últimas N entradas.\n"
 "    \n"
 "    Opciones:\n"
 "      -c\tborra la lista de historia eliminando todas las entradas\n"
 "      -d despl\tborra la entrada de la historia en la posición DESPL\n"
 "    \n"
-"      -a\tagrega las líneas de historia de esta sesión al fichero de "
-"historia\n"
+"      -a\tagrega las líneas de historia de esta sesión al fichero de historia\n"
 "      -n\tlee todas las líneas de historia que no se han leído del fichero\n"
 "    \tde historia\n"
 "      -r\tlee el fichero de historia y agrega el contenido al fichero\n"
@@ -3691,11 +3536,10 @@ msgstr ""
 "    tiempo asociada con cada entrada de historia mostrada.  No se muestra\n"
 "    ninguna marca de tiempo de otra forma.\n"
 "    \n"
-"    Estado de salida:\n"
-"    Devuelve correcto a no ser que se dé una opción inválida u ocurra un "
-"erroe."
+"    Estado de Salida:\n"
+"    Devuelve correcto a no ser que se dé una opción inválida u ocurra un error."
 
-#: builtins.c:873
+#: builtins.c:872
 msgid ""
 "Display status of jobs.\n"
 "    \n"
@@ -3718,30 +3562,29 @@ msgid ""
 "    Returns success unless an invalid option is given or an error occurs.\n"
 "    If -x is used, returns the exit status of COMMAND."
 msgstr ""
-"Enseña el estado de las tareas.\n"
+"Muestra el estado de los trabajos.\n"
 "    \n"
-"    Muestra las tareas activas.  JOBSPEC restringe la salida a\n"
-"    esa tarea.  Sin opciones, se enseña el estado de todas las tareas\n"
-"    activas.\n"
+"    Muestra los trabajos activos.  IDTRABAJO restringe la salida a\n"
+"    esa trabajo.  Sin opciones, se muestra el estado de todas los trabajos\n"
+"    activos.\n"
 "    \n"
 "    Opciones:\n"
-"      -l\t muestra los IDs de los procesos, además\n"
-"    \t de la información común\n"
-"      -n\t solo muestra los procesos que han cambia de estado desde\n"
-"    \t la última notificación\n"
-"      -p\t solo muestra los id de los procesos\n"
-"      -r\t restringe la salida a las tareas en ejecución\n"
-"      -s\t restringe la salida a las tareas detenidos\n"
-"    \n"
-"    Si se especifica -x, el MANDATO se ejecuta después de que todas las\n"
-"    especificaciones de tarea que aparecen en ARGS se han reemplazado\n"
-"    con el ID de proceso del líder del grupo de procesos de dicha tarea.\n"
+"      -l\tmuestra los IDs de los procesos, además de la información normal\n"
+"      -n\tsolo muestra los procesos que han cambiado de estado desde\n"
+"    \t\tla última notificación\n"
+"      -p\tsolo muestra los IDs de los procesos\n"
+"      -r\trestringe la salida a los trabajos en ejecución\n"
+"      -s\trestringe la salida a los trabajos detenidos\n"
+"    \n"
+"    Si se especifica -x, la ORDEN se ejecuta después de que todas las\n"
+"    especificaciones de trabajo que aparecen en ARGS se hayan reemplazado\n"
+"    con el ID de proceso del líder del grupo de procesos de dicho trabajo.\n"
 "    \n"
 "    Estado de Salida:\n"
-"    Devuelve correcto a menos que se de una opción inválida o suceda un\n"
-"    error.  Si se usa -x, devuelve el estado de salida del MANDATO."
+"    Devuelve correcto a menos que se dé una opción inválida o suceda un\n"
+"    error.  Si se usa -x, devuelve el estado de salida de la ORDEN."
 
-#: builtins.c:900
+#: builtins.c:899
 msgid ""
 "Remove jobs from current shell.\n"
 "    \n"
@@ -3757,22 +3600,22 @@ msgid ""
 "    Exit Status:\n"
 "    Returns success unless an invalid option or JOBSPEC is given."
 msgstr ""
-"Quita tareas del shell actual.\n"
+"Quita trabajos del shell actual.\n"
 "    \n"
-"    Quita cada argumento IDTAREA de la distribución de tareas activas.  Sin\n"
-"    algún IDTAREA, el shell utiliza su noción del tarea actual.\n"
+"    Quita cada argumento IDTRABAJO de la tabla de trabajos activos.  Sin\n"
+"    ningún IDTRABAJO, el shell utiliza su noción del trabajo actual.\n"
 "    \n"
 "    Opciones:\n"
-"      -a\t quita todas las tareas si no se proporciona IDTAREAS\n"
-"      -h\t marca cada IDTAREA para no se envíe SIGHUP a la tarea\n"
-"    \t\t si el shell recibe un SIGHUP\n"
-"      -r\t quita solo las tareas en ejecución\n"
+"      -a\tquita todas los trabajos si no se proporciona IDTRABAJO\n"
+"      -h\tmarca cada IDTRABAJO para que no se le envíe SIGHUP\n"
+"    \t\tsi el shell recibe un SIGHUP\n"
+"      -r\tquita solo los trabajos en ejecución\n"
 "    \n"
 "    Estado de Salida:\n"
 "    Devuelve correcto a menos que se proporcionen una opción o\n"
-"    una IDTAREA inválida."
+"    un IDTRABAJO inválida."
 
-#: builtins.c:919
+#: builtins.c:918
 msgid ""
 "Send a signal to a job.\n"
 "    \n"
@@ -3794,27 +3637,26 @@ msgid ""
 "    Exit Status:\n"
 "    Returns success unless an invalid option is given or an error occurs."
 msgstr ""
-"Envía una señal a una tarea.\n"
+"Envía una señal a una trabajo.\n"
 "    \n"
-"    Envía a los procesos nombrados por PID (o IDTAREA) la señal ID_SEÑAL\n"
+"    Envía a los procesos nombrados por PID (o IDTRABAJO) la señal ID_SEÑAL\n"
 "    o NUM_SEÑAL. Si no están presentes ni ID_SEÑAL o NUM_SEÑAL, se asume\n"
 "    SIGTERM.\n"
 "    \n"
 "    Opciones:\n"
-"      -s sig\t SIG es un nombre de señal\n"
-"      -n sig\t SIG es un número de señal\n"
-"      -l\t lista los nombres de señales; si hay argumentos a continuación\n"
-"    \tde `-l', se asume que son números de señal para las cuales se debe\n"
+"      -s sig\tSIG es un nombre de señal\n"
+"      -n sig\tSIG es un número de señal\n"
+"      -l\tlista los nombres de señales; si hay argumentos a continuación\n"
+"    \t\tde `-l', se asume que son números de señal para las cuales se debe\n"
 "    mostrar el nombre.\n"
 "    \n"
-"    Kill es un mandato interno del shell por dos razones: permite que se\n"
-"    puedan utilizar varios ID de tareas en lugar de varios ID de proceso,\n"
-"    y permite matar procesos si ha alcanzado el límite de procesos que\n"
-"    puede crear.\n"
+"    Kill es una orden interna del shell por dos razones: permite que se\n"
+"    puedan utilizar IDs de trabajo en lugar de IDs de proceso y permite\n"
+"    matar procesos si se ha alcanzado el límite de procesos que se pueden\n"
+"    crear.\n"
 "    \n"
 "    Estado de Salida:\n"
-"    Devuelve correcto a menos que se de una opción inválida o suceda un "
-"error."
+"    Devuelve correcto a menos que se dé una opción inválida o suceda un error."
 
 # "a ser evaluada" no está en español. sv
 # Cierto. ¿Así está mejor? cfuga
@@ -3824,15 +3666,14 @@ msgstr ""
 # No sé si existe precedencia en español, pero me suena fatal.
 # Yo pondría simplemente "prioridad". sv
 # Creo que si existe, pero tu sugerencia es mejor. cfuga
-#: builtins.c:943
+#: builtins.c:942
 msgid ""
 "Evaluate arithmetic expressions.\n"
 "    \n"
 "    Evaluate each ARG as an arithmetic expression.  Evaluation is done in\n"
 "    fixed-width integers with no check for overflow, though division by 0\n"
 "    is trapped and flagged as an error.  The following list of operators is\n"
-"    grouped into levels of equal-precedence operators.  The levels are "
-"listed\n"
+"    grouped into levels of equal-precedence operators.  The levels are listed\n"
 "    in order of decreasing precedence.\n"
 "    \n"
 "    \tid++, id--\tvariable post-increment, post-decrement\n"
@@ -3872,31 +3713,30 @@ msgstr ""
 "    \n"
 "    Evalúa cada ARG como una expresión aritmética.  La evaluación se hace\n"
 "    con enteros de longitud fija, sin revisar desbordamientos, aunque la\n"
-"    la división por 0 se captura y se marca como un error.  La siguiente "
-"lista\n"
-"    de operadores está agrupada en niveles de operadores de la misma\n"
+"    la división por 0 se captura y se marca como un error.  La siguiente\n"
+"    lista de operadores está agrupada en niveles de operadores de la misma\n"
 "    prioridad.  Los niveles se muestran en orden de prioridad decreciente.\n"
 "    \n"
 "    \tid++, id--\tpost-incremento, post-decremento de variable\n"
 "    \t++id, --id\tpre-incremento, pre-decremento de variable\n"
 "    \t-, +\t\tmenos, más unario\n"
-"    \t!, ~\t\t negación lógica y basada en bits\n"
-"    \t**\t\t exponenciación\n"
-"    \t*, /, %\t\t multiplicación, división, residuo\n"
-"    \t+, -\t\t adición, sustracción\n"
-"    \t<<, >>\t\t desplazamientos de varios bit izquierdo y derecho\n"
-"    \t<=, >=, <, >\t comparación\n"
-"    \t==, !=\t\t equivalencia, inequivalencia\n"
-"    \t&\t\t Y de varios bit\n"
-"    \t^\t\tXO de varios bit\n"
-"    \t|\t\tO de varios bit\n"
-"    \t&&\t\t Y lógico\n"
-"    \t||\t\t O lógico\n"
+"    \t!, ~\t\tnegación lógica y basada en bits\n"
+"    \t**\t\texponenciación\n"
+"    \t*, /, %\t\tmultiplicación, división, residuo\n"
+"    \t+, -\t\tadición, sustracción\n"
+"    \t<<, >>\t\tdesplazamientos de varios bit izquierdo y derecho\n"
+"    \t<=, >=, <, >\tcomparación\n"
+"    \t==, !=\t\tequivalencia, inequivalencia\n"
+"    \t&\t\tAND de varios bit\n"
+"    \t^\t\tXOR de varios bit\n"
+"    \t|\t\tOR de varios bit\n"
+"    \t&&\t\tAND lógico\n"
+"    \t||\t\tOR lógico\n"
 "    \texpr ? expr : expr\n"
-"    \t\t\t operador condicional\n"
+"    \t\t\toperador condicional\n"
 "    \t=, *=, /=, %=,\n"
 "    \t+=, -=, <<=, >>=,\n"
-"    \t&=, ^=, |=\t asignación\n"
+"    \t&=, ^=, |=\tasignación\n"
 "    \n"
 "    Se permiten las variables de shell como operandos.  El nombre\n"
 "    de la variable se reemplaza por su valor (coercionado a un\n"
@@ -3908,39 +3748,34 @@ msgstr ""
 "    evalúan las sub-expresiones en paréntesis y pueden sobrepasar\n"
 "    las reglas de prioridad anteriores.\n"
 "    \n"
-"    Estado de salida:\n"
+"    Estado de Salida:\n"
 "    Si el último ARGumento se evalúa como 0, ‘let’ devuelve 1; de\n"
 "    otra forma, ‘let’ devuelve 0."
 
-#: builtins.c:988
-#, fuzzy
+#: builtins.c:987
 msgid ""
 "Read a line from the standard input and split it into fields.\n"
 "    \n"
 "    Reads a single line from the standard input, or from file descriptor FD\n"
-"    if the -u option is supplied.  The line is split into fields as with "
-"word\n"
+"    if the -u option is supplied.  The line is split into fields as with word\n"
 "    splitting, and the first word is assigned to the first NAME, the second\n"
 "    word to the second NAME, and so on, with any leftover words assigned to\n"
-"    the last NAME.  Only the characters found in $IFS are recognized as "
-"word\n"
+"    the last NAME.  Only the characters found in $IFS are recognized as word\n"
 "    delimiters.\n"
 "    \n"
-"    If no NAMEs are supplied, the line read is stored in the REPLY "
-"variable.\n"
+"    If no NAMEs are supplied, the line read is stored in the REPLY variable.\n"
 "    \n"
 "    Options:\n"
 "      -a array\tassign the words read to sequential indices of the array\n"
 "    \t\tvariable ARRAY, starting at zero\n"
 "      -d delim\tcontinue until the first character of DELIM is read, rather\n"
 "    \t\tthan newline\n"
-"      -e\tuse Readline to obtain the line\n"
+"      -e\tuse Readline to obtain the line in an interactive shell\n"
 "      -i text\tuse TEXT as the initial text for Readline\n"
 "      -n nchars\treturn after reading NCHARS characters rather than waiting\n"
 "    \t\tfor a newline, but honor a delimiter if fewer than\n"
 "    \t\tNCHARS characters are read before the delimiter\n"
-"      -N nchars\treturn only after reading exactly NCHARS characters, "
-"unless\n"
+"      -N nchars\treturn only after reading exactly NCHARS characters, unless\n"
 "    \t\tEOF is encountered or read times out, ignoring any\n"
 "    \t\tdelimiter\n"
 "      -p prompt\toutput the string PROMPT without a trailing newline before\n"
@@ -3958,59 +3793,55 @@ msgid ""
 "      -u fd\tread from file descriptor FD instead of the standard input\n"
 "    \n"
 "    Exit Status:\n"
-"    The return code is zero, unless end-of-file is encountered, read times "
-"out\n"
-"    (in which case it's greater than 128), a variable assignment error "
-"occurs,\n"
+"    The return code is zero, unless end-of-file is encountered, read times out\n"
+"    (in which case it's greater than 128), a variable assignment error occurs,\n"
 "    or an invalid file descriptor is supplied as the argument to -u."
 msgstr ""
-"Lee una línea de la salida común y la divide en campos.\n"
+"Lee una línea de la salida estándar y la divide en campos.\n"
 "    \n"
-"    Lee una sola línea de la entrada común, o del descriptor de\n"
-"    fichero FD si se proporciona la opción -u.  La línea se divide en "
-"campos\n"
+"    Lee una sola línea de la entrada estándar, o del descriptor de\n"
+"    fichero FD si se proporciona la opción -u.  La línea se divide en campos\n"
 "    con separación de palabras, y la primera palabra se asigna al primer\n"
-"    NOMBRE, la segunda palabra al segundo NOMBRE, y así sucesivamente,\n"
-"    con las palabras restantes asignadas al último NOMBRE.  Sólo los "
-"caracteres\n"
+"    NOMBRE, la segunda palabra al segundo NOMBRE, y así sucesivamente, con\n"
+"    las palabras restantes asignadas al último NOMBRE.  Sólo los caracteres\n"
 "    que se encuentran en $IFS se reconocen como delimitadores de palabras.\n"
 "    \n"
 "    Si no se proporciona ningún NOMBRE, la línea leída se guarda en la\n"
 "    variable REPLY.\n"
 "    \n"
 "    Opciones:\n"
-"      -a matriz\t asigna las palabras leídas a índices secuenciales de\n"
-"    \t\t la variable matricial MATRIZ, empezando en cero\n"
-"      -d delim\t continúa hasta que se lea el primer carácter de DELIM,\n"
-"    \t\t en lugar de línea nueva\n"
-"      -e\t emplea Readline para obtener la línea en un shell interactivo\n"
-"      -i texto\t Emplea el TEXTO como el texto inicial para Readline\n"
-"      -n ncars\t regresa tras leer NCARS caracteres en lugar de\n"
-"    \t\t esperar una línea nueva, pero honra a un delimitador si\n"
-"    \t\t se leen menos de NCARS caracteres antes del delimitador\n"
-"      -N ncars\t devuelve sólo después de leer exactamente NCARS\n"
-"    \t\t caracteres, a menos que se encuentre el fin del fichero\n"
-"    \t\t o expire la lectura, descartando cualquier delimitador\n"
-"      -p prompt\t sale la cadena PROMPT sin un carácter de línea nueva\n"
-"    \t\t al final antes de intentar leer\n"
-"      -r\t\t no permite que las barras invertidas escapen caracteres\n"
-"      -s\t\t no muestra la salida que proviene de una terminal\n"
-"      -t tiempo\t expira y devuelve fallo si no se lee una línea completa\n"
-"    \t\t de entrada en TIEMPO segundos.  El valor de la variable TMOUT\n"
-"    \t\t es el tiempo de expiración por defecto.  TIEMPO puede ser un\n"
-"    \t\t número fraccionario.  Si TIEMPO es 0, ‘read’ devuelve correcto\n"
-"    \t\t sólo si hay entrada disponible en el descriptor de fichero\n"
-"    \t\t especificado.  El estado de salida es mayor que 128 si se excede\n"
-"    \t\t el tiempo de expiración.\n"
-"      -u df\t\t lee del descriptor de fichero DF en lugar de la entrada\n"
-"    \t\t común\n"
+"      -a matriz\tasigna las palabras leídas a índices secuenciales de\n"
+"    \t\tla variable matricial MATRIZ, empezando en cero\n"
+"      -d delim\tcontinúa hasta que se lea el primer carácter de DELIM,\n"
+"    \t\ten lugar de línea nueva\n"
+"      -e\tusa Readline para obtener la línea en un shell interactivo\n"
+"      -i texto\tEmplea el TEXTO como el texto inicial para Readline\n"
+"      -n ncars\tregresa tras leer NCARS caracteres en lugar de\n"
+"    \t\tesperar una línea nueva, pero honra a un delimitador si\n"
+"    \t\tse leen menos de NCARS caracteres antes del delimitador\n"
+"      -N ncars\tdevuelve sólo después de leer exactamente NCARS\n"
+"    \t\tcaracteres, a menos que se encuentre el fin del fichero\n"
+"    \t\to expire la lectura, descartando cualquier delimitador\n"
+"      -p prompt\tsale la cadena PROMPT sin un carácter de línea nueva\n"
+"    \t\tal final antes de intentar leer\n"
+"      -r\t\tno permite que las barras invertidas escapen caracteres\n"
+"      -s\t\tno muestra la salida que proviene de una terminal\n"
+"      -t tiempo\texpira y devuelve fallo si no se lee una línea completa\n"
+"    \t\tde entrada en TIEMPO segundos.  El valor de la variable TMOUT\n"
+"    \t\tes el tiempo de expiración por defecto.  TIEMPO puede ser un\n"
+"    \t\tnúmero fraccionario.  Si TIEMPO es 0, ‘read’ devuelve correcto\n"
+"    \t\tsólo si hay entrada disponible en el descriptor de fichero\n"
+"    \t\tespecificado.  El estado de salida es mayor que 128 si se excede\n"
+"    \t\tel tiempo de expiración.\n"
+"      -u df\t\tlee del descriptor de fichero DF en lugar de la entrada\n"
+"    \t\testándar\n"
 "    \n"
 "    Estado de Salida:\n"
 "    El código de devolución es cero, a menos que se encuentre un final de\n"
 "    línea, el tiempo de lectura se agote, o se proporcione un descriptor\n"
 "    de fichero inválido como el argumento de -u."
 
-#: builtins.c:1035
+#: builtins.c:1034
 msgid ""
 "Return from a shell function.\n"
 "    \n"
@@ -4023,15 +3854,14 @@ msgid ""
 msgstr ""
 "Devuelve de una función de shell.\n"
 "    \n"
-"    Causa que una función o un guión leído termine con el valor devuelto\n"
-"    especificado por N.  Si se omite N, el estado devuelto es el del último\n"
-"    mandato ejecutado dentro de la función o guión.\n"
+"    Causa que una función o un script leído termine con el valor devuelto\n"
+"    especificado por N.  Si se omite N, el estado devuelto es el de la última\n"
+"    orden ejecutada dentro de la función o script.\n"
 "    \n"
 "    Estado de Salida:\n"
-"    Devuelve N, o falla si el shell no está ejecutando una función o un "
-"guión."
+"    Devuelve N, o falla si el shell no está ejecutando una función o un script."
 
-#: builtins.c:1048
+#: builtins.c:1047
 msgid ""
 "Set or unset values of shell options and positional parameters.\n"
 "    \n"
@@ -4074,8 +3904,7 @@ msgid ""
 "              physical     same as -P\n"
 "              pipefail     the return value of a pipeline is the status of\n"
 "                           the last command to exit with a non-zero status,\n"
-"                           or zero if no command exited with a non-zero "
-"status\n"
+"                           or zero if no command exited with a non-zero status\n"
 "              posix        change the behavior of bash where the default\n"
 "                           operation differs from the Posix standard to\n"
 "                           match the standard\n"
@@ -4099,8 +3928,7 @@ msgid ""
 "          by default when the shell is interactive.\n"
 "      -P  If set, do not resolve symbolic links when executing commands\n"
 "          such as cd which change the current directory.\n"
-"      -T  If set, the DEBUG and RETURN traps are inherited by shell "
-"functions.\n"
+"      -T  If set, the DEBUG and RETURN traps are inherited by shell functions.\n"
 "      --  Assign any remaining arguments to the positional parameters.\n"
 "          If there are no remaining arguments, the positional parameters\n"
 "          are unset.\n"
@@ -4119,38 +3947,34 @@ msgstr ""
 "Establece o borra los valores de las opciones de shell y los parámetros\n"
 "posicionales.\n"
 "    \n"
-"    Modifica el valor de los atributos de shell y los parámetros "
-"posicionales,\n"
+"    Modifica el valor de los atributos de shell y los parámetros posicionales,\n"
 "    o muestra los nombres y valores de las variables de shell.\n"
 "    \n"
 "    Opciones:\n"
 "      -a  Marca las variables que se modifican o crean para exportación.\n"
-"      -b  Notifica el término de tareas inmediatamente.\n"
-"      -e  Termina inmediatamente si un mandato termina con un estado\n"
-"              diferente a cero.\n"
+"      -b  Notifica el término de trabajos inmediatamente.\n"
+"      -e  Termina inmediatamente si una orden termina con un estado\n"
+"          diferente a cero.\n"
 "      -f  Desactiva la generación de nombres de ficheros (englobamiento).\n"
-"      -h  Recuerda la ubicación de los mandatos como se localizaron.\n"
-"      -k  Todos los argumentos de asignación se colocan en el ambiente para "
-"un\n"
-"              mandato, no solo aquellos que preceden al nombre del mandato.\n"
-"      -m  Activa el control de tareas.\n"
+"      -h  Recuerda la ubicación de las órdenes como se localizaron.\n"
+"      -k  Todos los argumentos de asignación se colocan en el ambiente para una\n"
+"          orden, no solo aquellos que preceden al nombre de la orden.\n"
+"      -m  Activa el control de trabajos.\n"
 "      -n  Lee órdenes pero no las ejecuta.\n"
-"      -o  nombre-opcion\n"
+"      -o nombre-opción\n"
 "          Establece la variable correspondiente a nombre-opción:\n"
 "              allexport    igual que -a\n"
 "              braceexpand  igual que -B\n"
-"              emacs        emplea una interfaz de edición lineal estilo "
-"emacs\n"
+"              emacs        usa una interfaz de edición lineal estilo emacs\n"
 "              errexit      igual que -e\n"
 "              errtrace     igual que -E\n"
 "              functrace    igual que -T\n"
 "              hashall      igual que -h\n"
 "              histexpand   igual que -H\n"
 "              history      activa la historia de órdenes\n"
-"              ignoreeof    el shell no terminará después de leer FDL\n"
+"              ignoreeof    el shell no terminará después de leer EOF\n"
 "              interactive-comments\n"
-"                           permite que haya comentarios en órdenes "
-"interactivas\n"
+"                           permite que haya comentarios en órdenes interactivas\n"
 "              keyword      igual que -k\n"
 "              monitor      igual que -m\n"
 "              noclobber    igual que -C\n"
@@ -4161,57 +3985,49 @@ msgstr ""
 "              nounset      igual que -u\n"
 "              onecmd       igual que -t\n"
 "              physical     igual que -P\n"
-"              pipefail     el valor devuelto de una tubería es el estado\n"
-"                           del último mandato que sale con un estado "
-"diferente\n"
-"                           de cero, o cero si ningún mandato termina con un\n"
+"              pipefail     el valor de retorno de una tubería es el estado\n"
+"                           de la última orden que sale con un estado diferente\n"
+"                           de cero, o cero si ninguna orden termina con un\n"
 "                           estado diferente de cero\n"
-"              posix        modifica el comportamiento de ‘bash’ donde la\n"
+"              posix        modifica el comportamiento de bash donde la\n"
 "                           operación por defecto difiere del estándar POSIX\n"
-"                           para que coincida con la estandarización\n"
+"                           para que coincida con el estándar\n"
 "              privileged   igual que -p\n"
 "              verbose      igual que -v\n"
 "              vi           usa una interfaz de edición de línea estilo vi\n"
 "              xtrace       igual que -x\n"
-"      -p  Activo cuando los id real y efectivo del usuario no coinciden.\n"
+"      -p  Activo cuando los ids real y efectivo del usuario no coinciden.\n"
 "          Desactiva el procesamiento del fichero $ENV y la importación de\n"
-"          funciones de shell.  Si se desactiva esta opción causa que el uid "
-"y\n"
+"          funciones de shell.  Si se desactiva esta opción causa que el uid y\n"
 "          el gid efectivos sean iguales al uid y el gid real.\n"
-"      -t  Termina después de leer y ejecutar un mandato.\n"
+"      -t  Termina después de leer y ejecutar una orden.\n"
 "      -u  Trata las variables sin definir como un error al sustituir.\n"
-"      -v  Escribe las líneas de entrada del shell mientras se leen.\n"
-"      -x  Escribe los mandatos y sus argumentos mientras se ejecutan.\n"
+"      -v  Muestra las líneas de entrada del shell mientras se leen.\n"
+"      -x  Muestra las órdenes y sus argumentos mientras se ejecutan.\n"
 "      -B  el shell realizará expansión de llaves.\n"
 "      -C  Si se activa, no permite que los ficheros regulares existentes\n"
-"          se sobrescriban por redirección de la salida.\n"
+"          se sobreescriban por redirección de la salida.\n"
 "      -E  Si se activa, las funciones del shell heredan la trampa ERR.\n"
 "      -H  Activa el estilo de sustitución de historia ! . Esta opción está\n"
 "          activa por defecto cuando el shell es interactivo.\n"
-"      -P  Si se activa, no sigue enlaces simbólicos cuando se ejecutan "
-"órdenes\n"
+"      -P  Si se activa, no sigue enlaces simbólicos cuando se ejecutan órdenes\n"
 "          como cd, que cambian el directorio actual.\n"
 "      -T  Si se activa, las funciones del shell heredan la trampa DEBUG.\n"
-"      --  Asigna cualquier argumento restante a los parámetros "
-"posicionales.\n"
-"          Si no restan argumentos, se desactivan los parámetros "
-"posicionales.\n"
-"      -   Asigna cualquier argumento restante a los parámetros "
-"posicionales.\n"
+"      --  Asigna cualquier argumento restante a los parámetros posicionales.\n"
+"          Si no restan argumentos, se desactivan los parámetros posicionales.\n"
+"      -   Asigna cualquier argumento restante a los parámetros posicionales.\n"
 "          Las opciones -x y -v se desactivan.\n"
 "    \n"
 "    Si se usa + en lugar de - causa que estas opciones se desactiven. Las\n"
-"    opciones también se pueden usar en la invocación del shell.  El "
-"conjunto\n"
+"    opciones también se pueden usar en la invocación del shell.  El conjunto\n"
 "    actual de opciones se puede encontrar en $-.  Los n ARGs restantes son\n"
-"    parámetros posicionales que se asignan, en orden, a $1, $2, .. $n.  Si "
-"no\n"
+"    parámetros posicionales que se asignan, en orden, a $1, $2, .. $n.  Si no\n"
 "    se proporciona ningún ARG, se muestran todas las variables del shell.\n"
 "    \n"
 "    Estado de Salida:\n"
 "    Devuelve correcto a menos que se proporcione una opción inválida."
 
-#: builtins.c:1133
+#: builtins.c:1132
 msgid ""
 "Unset values and attributes of shell variables and functions.\n"
 "    \n"
@@ -4223,8 +4039,7 @@ msgid ""
 "      -n\ttreat each NAME as a name reference and unset the variable itself\n"
 "    \t\trather than the variable it references\n"
 "    \n"
-"    Without options, unset first tries to unset a variable, and if that "
-"fails,\n"
+"    Without options, unset first tries to unset a variable, and if that fails,\n"
 "    tries to unset a function.\n"
 "    \n"
 "    Some variables cannot be unset; also see `readonly'.\n"
@@ -4237,11 +4052,10 @@ msgstr ""
 "    Por cada NOMBRE, borra la función o variable correspondiente.\n"
 "    \n"
 "    Opciones:\n"
-"      -f\t trata cada NOMBRE como una función de shell\n"
-"      -v\t trata cada NOMBRE como una variable de shell\n"
-"      -n\t trata cada NOMBRE como una referencia de nombre y\n"
-"    \t\t desestablece la misma variable mejor que a la variable\n"
-"    \t\t referenciada\n"
+"      -f\ttrata cada NOMBRE como una función de shell\n"
+"      -v\ttrata cada NOMBRE como una variable de shell\n"
+"      -n\ttrata cada NOMBRE como una referencia de nombre y desasigna\n"
+"    \t\tla propia variable, no aquella a la que hace referencia\n"
 "    \n"
 "    Sin opciones, unset primero trata de borrar una variable, y si falla,\n"
 "    trata de borrar una función.\n"
@@ -4252,13 +4066,12 @@ msgstr ""
 "    Devuelve correcto a menos que se proporcione una opción inválida o\n"
 "    un NOMBRE sea de sólo lectura."
 
-#: builtins.c:1155
+#: builtins.c:1154
 msgid ""
 "Set export attribute for shell variables.\n"
 "    \n"
 "    Marks each NAME for automatic export to the environment of subsequently\n"
-"    executed commands.  If VALUE is supplied, assign VALUE before "
-"exporting.\n"
+"    executed commands.  If VALUE is supplied, assign VALUE before exporting.\n"
 "    \n"
 "    Options:\n"
 "      -f\trefer to shell functions\n"
@@ -4272,15 +4085,14 @@ msgid ""
 msgstr ""
 "Establece el atributo de exportación para las variables de shell.\n"
 "    \n"
-"    Marca cada NOMBRE para exportación automática al ambiente para los "
-"mandatos\n"
+"    Marca cada NOMBRE para exportación automática al ambiente para las órdenes\n"
 "    ejecutadas subsecuentemente.  Si se proporciona un VALOR, se asigna el\n"
 "    VALOR antes de exportar.\n"
 "    \n"
 "    Opciones:\n"
-"      -f\t se refiere a funciones de shell\n"
-"      -n\t borra la propiedad de exportación para cada NOMBRE\n"
-"      -p\t muestra una lista de todas las variables y funciones exportadas\n"
+"      -f\tse refiere a funciones de shell\n"
+"      -n\tborra la propiedad de exportación para cada NOMBRE\n"
+"      -p\tmuestra una lista de todas las variables y funciones exportadas\n"
 "    \n"
 "    El argumento `--' desactiva el procesamiento posterior de opciones.\n"
 "    \n"
@@ -4288,7 +4100,7 @@ msgstr ""
 "    Devuelve correcto a menos que se proporcione una opción inválida o que\n"
 "    NOMBRE sea inválido."
 
-#: builtins.c:1174
+#: builtins.c:1173
 msgid ""
 "Mark shell variables as unchangeable.\n"
 "    \n"
@@ -4311,17 +4123,15 @@ msgstr ""
 "Marca las variables de shell para evitar su modificación.\n"
 "    \n"
 "    Marca cada NOMBRE como de sólo lectura; los valores de esos NOMBREs\n"
-"    no se pueden modificar por asignaciones subsecuentes.  Si se "
-"proporciona\n"
+"    no se pueden modificar por asignaciones subsecuentes.  Si se proporciona\n"
 "    un VALOR, se asigna el VALOR antes de marcar como de sólo lectura.\n"
 "    \n"
 "    Opciones:\n"
-"      -a\t se refiere a variables de matriz indizada\n"
-"      -A\t se refiere a variables de matriz asociativa\n"
-"      -f\t se refiere a funciones de shell\n"
-"      -p\t enseña una lista de todas las variables y funciones de sólo "
-"lectura,\n"
-"    \t\t dependiendo de si i no la opción -f está dada\n"
+"      -a\tse refiere a variables de matriz indexada\n"
+"      -A\tse refiere a variables de matriz asociativa\n"
+"      -f\tse refiere a funciones de shell\n"
+"      -p\tmuestra una lista de todas las variables y funciones de sólo lectura,\n"
+"    \t\tdependiendo de si se pone o no la opción -f\n"
 "    \n"
 "    El argumento `--' desactiva el procesamiento posterior de opciones.\n"
 "    \n"
@@ -4329,7 +4139,7 @@ msgstr ""
 "    Devuelve correcto a menos que se proporcione una opción inválida o\n"
 "    el NOMBRE sea inválido."
 
-#: builtins.c:1196
+#: builtins.c:1195
 msgid ""
 "Shift positional parameters.\n"
 "    \n"
@@ -4347,7 +4157,7 @@ msgstr ""
 "    Estado de Salida:\n"
 "    Devuelve correcto a menos que N sea negativo o mayor que $#."
 
-#: builtins.c:1208 builtins.c:1223
+#: builtins.c:1207 builtins.c:1222
 msgid ""
 "Execute commands from a file in the current shell.\n"
 "    \n"
@@ -4362,17 +4172,16 @@ msgid ""
 msgstr ""
 "Ejecuta órdenes de un fichero en el shell actual.\n"
 "    \n"
-"    Lee y ejecuta mandatos del FICHERO en el shell actual.  Se utilizan las\n"
+"    Lee y ejecuta órdenes del FICHERO en el shell actual.  Se utilizan las\n"
 "    entradas en $PATH para encontrar el directorio que contiene el FICHERO.\n"
-"    Si se proporciona ARGUMENTOS, se convierten en los parámetros "
-"posicionales\n"
+"    Si se proporciona ARGUMENTOS, se convierten en los parámetros posicionales\n"
 "    cuando se ejecuta el FICHERO.\n"
 "    \n"
 "    Estado de Salida:\n"
-"    Devuelve el estado del último mandato ejecutado del FICHERO; falla si\n"
+"    Devuelve el estado de la última orden ejecutada del FICHERO; falla si\n"
 "    no se puede leer el FICHERO."
 
-#: builtins.c:1239
+#: builtins.c:1238
 msgid ""
 "Suspend shell execution.\n"
 "    \n"
@@ -4388,17 +4197,16 @@ msgstr ""
 "Suspende la ejecución del shell.\n"
 "    \n"
 "    Suspende la ejecución de este shell hasta que recibe una señal SIGCONT.\n"
-"    Los shells de entrada no se pueden suspender, a menos que sean "
-"forzados.\n"
+"    Los shells de entrada no se pueden suspender, a menos que sean forzados.\n"
 "    \n"
 "    Opciones:\n"
 "      -f\tfuerza la suspensión, aún si el shell es un shell de entrada\n"
 "    \n"
 "    Estado de Salida:\n"
-"    Devuelve correcto a menos que no esté activo el control de tareas o\n"
+"    Devuelve correcto a menos que no esté activo el control de trabajos o\n"
 "    suceda un error."
 
-#: builtins.c:1255
+#: builtins.c:1254
 msgid ""
 "Evaluate conditional expression.\n"
 "    \n"
@@ -4432,8 +4240,7 @@ msgid ""
 "      -x FILE        True if the file is executable by you.\n"
 "      -O FILE        True if the file is effectively owned by you.\n"
 "      -G FILE        True if the file is effectively owned by your group.\n"
-"      -N FILE        True if the file has been modified since it was last "
-"read.\n"
+"      -N FILE        True if the file has been modified since it was last read.\n"
 "    \n"
 "      FILE1 -nt FILE2  True if file1 is newer than file2 (according to\n"
 "                       modification date).\n"
@@ -4454,8 +4261,7 @@ msgid ""
 "      STRING1 != STRING2\n"
 "                     True if the strings are not equal.\n"
 "      STRING1 < STRING2\n"
-"                     True if STRING1 sorts before STRING2 "
-"lexicographically.\n"
+"                     True if STRING1 sorts before STRING2 lexicographically.\n"
 "      STRING1 > STRING2\n"
 "                     True if STRING1 sorts after STRING2 lexicographically.\n"
 "    \n"
@@ -4488,8 +4294,8 @@ msgstr ""
 "    de un fichero.  Hay también operadores de cadenas, y operadores de\n"
 "    comparación numérica.\n"
 "    \n"
-"    La conducta de test depende del número de argumentos.  Lea la página\n"
-"    del manual de bash para la especificación completa.\n"
+"    El comportamiento de test depende del número de argumentos.  Lea la página\n"
+"    de manual de bash para la especificación completa.\n"
 "    \n"
 "    Operadores de fichero:\n"
 "    \n"
@@ -4498,14 +4304,11 @@ msgstr ""
 "      -c FICHERO     Verdadero si el fichero es especial de caracteres.\n"
 "      -d FICHERO     Verdadero si el fichero es un directorio.\n"
 "      -e FICHERO     Verdadero si el fichero existe.\n"
-"      -f FICHERO     Verdadero si el fichero existe y es un fichero "
-"regular.\n"
-"      -g FICHERO     Verdadero si el fichero tiene activado el set-group-"
-"id.\n"
+"      -f FICHERO     Verdadero si el fichero existe y es un fichero regular.\n"
+"      -g FICHERO     Verdadero si el fichero tiene activado el set-group-id.\n"
 "      -h FICHERO     Verdadero si el fichero es un enlace simbólico.\n"
 "      -L FICHERO     Verdadero si el fichero es un enlace simbólico.\n"
-"      -k FICHERO     Verdadero si el fichero tiene el bit `sticky' "
-"activado.\n"
+"      -k FICHERO     Verdadero si el fichero tiene el bit `sticky' activado.\n"
 "      -p FICHERO     Verdadero si el fichero es una tubería nombrada.\n"
 "      -r FICHERO     Verdadero si el fichero es legible para usted.\n"
 "      -s FICHERO     Verdadero si el fichero existe y no está vacío.\n"
@@ -4516,8 +4319,7 @@ msgstr ""
 "      -x FICHERO     Verdadero si usted puede ejecutar el fichero.\n"
 "      -O FICHERO     Verdadero si usted efectivamente posee el fichero.\n"
 "      -G FICHERO     Verdadero si su grupo efectivamente posee el fichero.\n"
-"      -N FICHERO     Verdadero si el fichero se modificó desde la última "
-"lectura.\n"
+"      -N FICHERO     Verdadero si el fichero se modificó desde la última lectura.\n"
 "    \n"
 "      FICH1 -nt FICH2  Verdadero si fich1 es más reciente que fich2\n"
 "                       (de acuerdo a la fecha de modificación).\n"
@@ -4548,11 +4350,10 @@ msgstr ""
 "    \n"
 "      -o OPCIÓN      Verdadero si la opción del shell OPCIÓN está activada.\n"
 "      -v VAR         Verdadero si la variable de shell VAR está activada.\n"
-"      -R VAR         Verdadero si la variable VAR está activada y es un "
-"nombre\n"
-"                       referencial.\n"
+"      -R VAR         Verdadero si la variable VAR está activada y es una\n"
+"                       referencia de nombre\n"
 "      ! EXPR         Verdadero si expr es falso.\n"
-"      EXPR1 -a EXPR2 Verdadero si ambos expr1 Y expr2 are son verdaderas.\n"
+"      EXPR1 -a EXPR2 Verdadero si expr1 Y expr2 son ambas verdaderas.\n"
 "      EXPR1 -o EXPR2 Verdadero si cualquiera de expr1 O expr2 es verdadera.\n"
 "    \n"
 "      arg1 OP arg2   Pruebas aritméticas.  OP es uno de -eq, -ne,\n"
@@ -4565,7 +4366,7 @@ msgstr ""
 "    Devuelve correcto si EXPR evalúa a verdadero; falla si EXPR evalúa a\n"
 "    falso o se proporciona un argumento inválido."
 
-#: builtins.c:1337
+#: builtins.c:1336
 msgid ""
 "Evaluate conditional expression.\n"
 "    \n"
@@ -4574,35 +4375,32 @@ msgid ""
 msgstr ""
 "Evalúa una expresión condicional.\n"
 "    \n"
-"    Este es un sinónimo para el mandato interno \"test\", pero el último\n"
-"    argumento debe ser un `]' literal, que coincida con el `[' inicial."
+"    Este es un sinónimo para la orden interna \"test\", pero el último\n"
+"    argumento debe ser un `]' literal, que concuerde con el `[' inicial."
 
-#: builtins.c:1346
+#: builtins.c:1345
 msgid ""
 "Display process times.\n"
 "    \n"
-"    Prints the accumulated user and system times for the shell and all of "
-"its\n"
+"    Prints the accumulated user and system times for the shell and all of its\n"
 "    child processes.\n"
 "    \n"
 "    Exit Status:\n"
 "    Always succeeds."
 msgstr ""
-"Enseña los tiempos de proceso.\n"
+"Muestra los tiempos de proceso.\n"
 "    \n"
-"    Escribe los tiempos de usuario y sistema acumulados por el shell y "
-"todos\n"
-"    sus subprocesos.\n"
+"    Muestra los tiempos de usuario y sistema acumulados por el shell y todos\n"
+"    sus procesos hijos.\n"
 "    \n"
-"    Estado de salida:\n"
+"    Estado de Salida:\n"
 "    Siempre correcto."
 
-#: builtins.c:1358
+#: builtins.c:1357
 msgid ""
 "Trap signals and other events.\n"
 "    \n"
-"    Defines and activates handlers to be run when the shell receives "
-"signals\n"
+"    Defines and activates handlers to be run when the shell receives signals\n"
 "    or other conditions.\n"
 "    \n"
 "    ARG is a command to be read and executed when the shell receives the\n"
@@ -4611,61 +4409,52 @@ msgid ""
 "    value.  If ARG is the null string each SIGNAL_SPEC is ignored by the\n"
 "    shell and by the commands it invokes.\n"
 "    \n"
-"    If a SIGNAL_SPEC is EXIT (0) ARG is executed on exit from the shell.  "
-"If\n"
-"    a SIGNAL_SPEC is DEBUG, ARG is executed before every simple command.  "
-"If\n"
-"    a SIGNAL_SPEC is RETURN, ARG is executed each time a shell function or "
-"a\n"
-"    script run by the . or source builtins finishes executing.  A "
-"SIGNAL_SPEC\n"
-"    of ERR means to execute ARG each time a command's failure would cause "
-"the\n"
+"    If a SIGNAL_SPEC is EXIT (0) ARG is executed on exit from the shell.  If\n"
+"    a SIGNAL_SPEC is DEBUG, ARG is executed before every simple command.  If\n"
+"    a SIGNAL_SPEC is RETURN, ARG is executed each time a shell function or a\n"
+"    script run by the . or source builtins finishes executing.  A SIGNAL_SPEC\n"
+"    of ERR means to execute ARG each time a command's failure would cause the\n"
 "    shell to exit when the -e option is enabled.\n"
 "    \n"
-"    If no arguments are supplied, trap prints the list of commands "
-"associated\n"
+"    If no arguments are supplied, trap prints the list of commands associated\n"
 "    with each signal.\n"
 "    \n"
 "    Options:\n"
 "      -l\tprint a list of signal names and their corresponding numbers\n"
 "      -p\tdisplay the trap commands associated with each SIGNAL_SPEC\n"
 "    \n"
-"    Each SIGNAL_SPEC is either a signal name in <signal.h> or a signal "
-"number.\n"
+"    Each SIGNAL_SPEC is either a signal name in <signal.h> or a signal number.\n"
 "    Signal names are case insensitive and the SIG prefix is optional.  A\n"
 "    signal may be sent to the shell with \"kill -signal $$\".\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns success unless a SIGSPEC is invalid or an invalid option is "
-"given."
+"    Returns success unless a SIGSPEC is invalid or an invalid option is given."
 msgstr ""
 "Atrapa señales y otros eventos.\n"
 "    \n"
-"    Define y activa manipuladores a ejecutar cuando el shell recibe señales\n"
+"    Define y activa manejadores para ejecutar cuando el shell recibe señales\n"
 "    u otras condiciones.\n"
 "    \n"
-"    ARG es un mandato para leer y ejecutar cuando el shell recibe la(s)\n"
+"    ARG es una orden para leer y ejecutar cuando el shell recibe la(s)\n"
 "    señal(es) ID_SEÑAL.  Si ARG no está presente (y sólo se proporciona\n"
 "    una sola ID_SEÑAL) o se proporciona `-', cada señal especificada se\n"
 "    reestablece a su valor original.  Si ARG es la cadena nula, el shell\n"
-"    y los mandatos que invoque ignoran cada ID_SEÑAL.\n"
+"    y las órdenes que invoque ignoran cada ID_SEÑAL.\n"
 "    \n"
-"    Si una ID_SEÑAL es EXIT (0) se ejecuta el mandato ARG al salir del\n"
-"    shell.  Si una ID_SEÑAL es DEBUG, se ejecuta ARG después de cada\n"
-"    mandato simple.  Si una ID_SEÑAL es RETURN, se ejecuta ARG cada vez\n"
-"    que una función de shell o un guión ejecutado por los mandatos internos\n"
-"    . o source termina su ejecución.  Una ID_SEÑAL de ERR significa que\n"
-"    se ejecuta ARG cada vez que la falla de un mandato causa que el shell\n"
-"    termine cuando la opción -e está activada.\n"
+"    Si una ID_SEÑAL es EXIT (0) se ejecuta la orden ARG al salir del shell.\n"
+"    Si una ID_SEÑAL es DEBUG, se ejecuta ARG después de cada orden simple.\n"
+"    Si una ID_SEÑAL es RETURN, se ejecuta ARG cada vez que una función de\n"
+"    shell o un script ejecutado por las órdenes internas . o source termina\n"
+"    su ejecución.  Una ID_SEÑAL de ERR conlleva que se ejecute ARG cada vez\n"
+"    que un fallo de una orden provocaría que el shell terminase si la\n"
+"    opción -e está activada.\n"
 "    \n"
-"    Si no se proporcionan argumentos, trap muestra la lista de mandatos\n"
+"    Si no se proporcionan argumentos, trap muestra la lista de órdenes\n"
 "    asociadas con cada señal.\n"
 "    \n"
 "    Opciones:\n"
-"      -l\t muestra una lista de nombres de señal con su número "
-"correspondiente\n"
-"      -p\t muestra los mandatos trap asociadas con cada ID_SEÑAL\n"
+"      -l\tmuestra una lista de nombres de señal con su número correspondiente\n"
+"      -p\tmuestra las órdenes trap asociadas con cada ID_SEÑAL\n"
 "    \n"
 "    Cada ID_SEÑAL es un nombre de señal en <signal.h> o un número de señal.\n"
 "    Los nombres de señal no son sensibles a mayúsculas y minúsculas y el\n"
@@ -4673,13 +4462,12 @@ msgstr ""
 "    \"kill -signal $$\".    \n"
 "    \n"
 "    Estado de Salida:\n"
-"    Devuelve correcto a menos que una ID_SEÑAL sea inválida o se "
-"proporcione\n"
+"    Devuelve correcto a menos que una ID_SEÑAL sea inválida o se proporcione\n"
 "    una opción inválida."
 
 #  No he visto que este fichero incluya la posibilidad de traducir las
 #  palabras que muestra `type -t'. Por esta razón, se dejan en inglés. cfuga
-#: builtins.c:1394
+#: builtins.c:1393
 msgid ""
 "Display information about command type.\n"
 "    \n"
@@ -4705,47 +4493,40 @@ msgid ""
 "      NAME\tCommand name to be interpreted.\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns success if all of the NAMEs are found; fails if any are not "
-"found."
+"    Returns success if all of the NAMEs are found; fails if any are not found."
 msgstr ""
-"Enseña información sobre el tipo de mandato.\n"
+"Muestra información sobre el tipo de orden.\n"
 "    \n"
-"    Por cada NOMBRE, indica cómo se interpretaría si se emplea como un\n"
-"    nombre de mandato.\n"
+"    Por cada NOMBRE, indica cómo se interpretaría si se utilizara como un\n"
+"    nombre de orden.\n"
 "    \n"
 "    Opciones:\n"
-"      -a\t enseña todas las ubicaciones que contienen un ejecutable llamado\n"
-"    \t NOMBRE; incluye aliases, mandatos internos, y funciones, si y solo "
-"si\n"
-"    \t no se empleó también la opción `-p'\n"
-"      -f\t suprime la búsqueda de funciones de shell\n"
-"      -P\t fuerza una búsqueda en PATH por cada nombre, aún si hay un "
-"alias,\n"
-"    \t mandato interno, o función, y devuelve el nombre del fichero en el "
-"disco\n"
-"    \t que se ejecutaría\n"
-"      -p\t devuelve ya sea el nombre del fichero en disco que se "
-"ejecutaría,\n"
-"    \t o nada si `type -t NOMBRE' no devuelve `fichero'.\n"
-"      -t\t saca una sola palabra, que es una de `alias', `keyword',\n"
-"    \t`function', `builtin', `file' o `', si el NOMBRE es un alias,\n"
-"    \t palabra reservada del shell, función del shell, mandato interno del\n"
-"    \t shell, fichero de disco, o no se encuentra, respectivamente.\n"
+"      -a\tmuestra todas las ubicaciones que contienen un ejecutable llamado\n"
+"    \t\tNOMBRE; incluye aliases, órdenes internas y funciones, si y solo si\n"
+"    \t\tno se utilizó también la opción `-p'\n"
+"      -f\tsuprime la búsqueda de funciones de shell\n"
+"      -P\tfuerza una búsqueda en PATH por cada nombre, aun si hay un alias,\n"
+"    \t\torden interna o función, y devuelve el nombre del fichero en disco\n"
+"    \t\tque se ejecutaría\n"
+"      -p\tdevuelve el nombre del fichero en disco que se ejecutaría,\n"
+"    \t\to nada si `type -t NOMBRE' no devuelve `fichero'\n"
+"      -t\tsaca una sola palabra, que es una de entre `alias', `keyword',\n"
+"    \t\t`function', `builtin', `file' o `', si el NOMBRE es un alias,\n"
+"    \t\tpalabra reservada del shell, función del shell, orden interna del\n"
+"    \t\tshell, fichero de disco, o no se encuentra, respectivamente.\n"
 "    \n"
 "    Argumentos:\n"
-"      NOMBRE\t Nombre de mandato a interpretar.\n"
+"      NOMBRE\tNombre de orden a interpretar.\n"
 "    \n"
 "    Estado de Salida:\n"
-"    Devuelve como correcto si se encuentran todos los NOMBREs; falla si no "
-"se\n"
-"    encuentra alguno."
+"    Devuelve correcto si se encuentran todos los NOMBREs; falla si alguno\n"
+"    no se encuentra."
 
-#: builtins.c:1425
+#: builtins.c:1424
 msgid ""
 "Modify shell resource limits.\n"
 "    \n"
-"    Provides control over the resources available to the shell and "
-"processes\n"
+"    Provides control over the resources available to the shell and processes\n"
 "    it creates, on systems that allow such control.\n"
 "    \n"
 "    Options:\n"
@@ -4802,8 +4583,7 @@ msgstr ""
 "      -c\tel tamaño máximo de los ficheros `core' creados\n"
 "      -d\tel tamaño máximo del segmento de datos de un proceso\n"
 "      -e\tla prioridad máxima de calendarización (`nice')\n"
-"      -f\tel tamaño máximo de los ficheros escritos por el shell y sus "
-"hijos\n"
+"      -f\tel tamaño máximo de los ficheros escritos por el shell y sus hijos\n"
 "      -i\tel número máximo de señales pendientes\n"
 "      -k\tel número máximo de kcolas ubicadas para este proceso\n"
 "      -l\tel tamaño máximo que un proceso puede bloquear en memoria\n"
@@ -4822,8 +4602,7 @@ msgstr ""
 "    \n"
 "    No todas las opciones están disponibles en todas las plataformas.\n"
 "    \n"
-"    Si se establece LÍMITE, éste es el nuevo valor del recurso "
-"especificado;\n"
+"    Si se establece LÍMITE, éste es el nuevo valor del recurso especificado;\n"
 "    los valores especiales de LÍMITE `soft', `hard' y `unlimited'\n"
 "    corresponden al límite suave actual, el límite duro actual, y\n"
 "    sin límite, respectivamente.  De otra forma, se muestra el valor actual\n"
@@ -4834,12 +4613,11 @@ msgstr ""
 "    es en segundos, -p, el cual es en incrementos de 512 bytes, y -u, el\n"
 "    cual es un número de procesos sin escala.\n"
 "    \n"
-"    Estado de salida:\n"
-"    Devuelve correcto a menos que se proporcione una opción inválida o "
-"suceda\n"
+"    Estado de Salida:\n"
+"    Devuelve correcto a menos que se proporcione una opción inválida o suceda\n"
 "    un error."
 
-#: builtins.c:1475
+#: builtins.c:1474
 msgid ""
 "Display or set file mode mask.\n"
 "    \n"
@@ -4856,14 +4634,13 @@ msgid ""
 "    Exit Status:\n"
 "    Returns success unless MODE is invalid or an invalid option is given."
 msgstr ""
-"Enseña o establece la máscara de modo de ficheros.\n"
+"Muestra o establece la máscara de modo de ficheros.\n"
 "    \n"
 "    Establece la máscara de creación de ficheros del usuario a MODO. Si se\n"
 "    omite el MODO, muestra el valor actual de la máscara.\n"
 "    \n"
 "    Si el MODO empieza con un dígito, se interpreta como un número octal;\n"
-"    de otra forma es una cadena de modo simbólico como la que acepta chmod "
-"(1).\n"
+"    de otra forma es una cadena de modo simbólico como la que acepta chmod (1).\n"
 "    \n"
 "    Opciones:\n"
 "      -p\tsi se omite el MODO, muestra en una forma reusable como entrada\n"
@@ -4873,67 +4650,59 @@ msgstr ""
 "    Devuelve correcto a menos que el MODO sea inválido o se proporcione\n"
 "    una opción inválida."
 
-#: builtins.c:1495
-#, fuzzy
+#: builtins.c:1494
 msgid ""
 "Wait for job completion and return exit status.\n"
 "    \n"
-"    Waits for each process identified by an ID, which may be a process ID or "
-"a\n"
+"    Waits for each process identified by an ID, which may be a process ID or a\n"
 "    job specification, and reports its termination status.  If ID is not\n"
 "    given, waits for all currently active child processes, and the return\n"
-"    status is zero.  If ID is a job specification, waits for all processes\n"
+"    status is zero.  If ID is a job specification, waits for all processes\n"
 "    in that job's pipeline.\n"
 "    \n"
 "    If the -n option is supplied, waits for the next job to terminate and\n"
 "    returns its exit status.\n"
 "    \n"
-"    If the -f option is supplied, and job control is enabled, waits for the\n"
-"    specified ID to terminate, instead of waiting for it to change status.\n"
-"    \n"
 "    Exit Status:\n"
 "    Returns the status of the last ID; fails if ID is invalid or an invalid\n"
 "    option is given."
 msgstr ""
-"Espera la terminación de la tarea y devuelve el estado de salida.\n"
+"Espera la terminación del trabajo y devuelve el estado de salida.\n"
 "    \n"
 "    Espera al proceso identificado por ID, el cual puede ser un ID de\n"
-"    proceso o una especificación de tarea, y boletina su estado de salida.\n"
-"    Si no se proporciona un ID, espera a todos los subprocesos activos,\n"
+"    proceso o una especificación de trabajo e informa de su estado de salida.\n"
+"    Si no se proporciona un ID, espera a todos los procesos hijos activos,\n"
 "    y el estado de devolución es cero.  Si ID es una especificación de\n"
-"    tarea, espera a todos los procesos en la cola de tareas.\n"
+"    trabajo, espera a todos los procesos en la cola de trabajos.\n"
 "    \n"
 "    Estado de Salida:\n"
 "    Devuelve el estado de ID; falla si ID es inválido o se proporciona una\n"
 "    opción inválida."
 
-#: builtins.c:1519
+#: builtins.c:1515
 msgid ""
 "Wait for process completion and return exit status.\n"
 "    \n"
-"    Waits for each process specified by a PID and reports its termination "
-"status.\n"
+"    Waits for each process specified by a PID and reports its termination status.\n"
 "    If PID is not given, waits for all currently active child processes,\n"
 "    and the return status is zero.  PID must be a process ID.\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns the status of the last PID; fails if PID is invalid or an "
-"invalid\n"
+"    Returns the status of the last PID; fails if PID is invalid or an invalid\n"
 "    option is given."
 msgstr ""
-"Espera para terminar el proceso y devolver el estado de salida.\n"
+"Espera la terminación del proceso y devuelve el estado de salida.\n"
 "    \n"
-"    Espera por cada proceso especificado por un PID y reporta su\n"
+"    Espera a cada proceso especificado por un PID y reporta su\n"
 "    estado de salida.  Si no se proporciona un PID, espera a todos los\n"
-"    procesos descendientes activos, y el código de devolución sea cero.\n"
+"    procesos hijos activos, y el código de devolución es cero.\n"
 "    El PID debe ser un ID de proceso.\n"
 "    \n"
 "    Estado de Salida:\n"
-"    Devuelve el estado del último PID; falla si PID es inválido o se "
-"proporciona\n"
+"    Devuelve el estado del último PID; falla si PID es inválido o se proporciona\n"
 "    una opción inválida."
 
-#: builtins.c:1534
+#: builtins.c:1530
 msgid ""
 "Execute commands for each member in a list.\n"
 "    \n"
@@ -4947,15 +4716,15 @@ msgid ""
 msgstr ""
 "Ejecuta órdenes por cada miembro en una lista.\n"
 "    \n"
-"    El ciclo `for' ejecuta una secuencia de órdenes para cada miembro en\n"
+"    El bucle `for' ejecuta una secuencia de órdenes para cada miembro en\n"
 "    una lista de elementos.  Si `in PALABRAS ...;' no está presente,\n"
 "    entonces se asume `in \"$@\"'.  Para cada elemento en PALABRAS,\n"
-"    se define NOMBRE como ese elemento, y se ejecutan las MANDATOS.\n"
+"    se define NOMBRE como ese elemento, y se ejecutan las ÓRDENES.\n"
 "    \n"
 "    Estado de Salida:\n"
-"    Devuelve el estado del último mandato ejecutado."
+"    Devuelve el estado de la última orden ejecutada."
 
-#: builtins.c:1548
+#: builtins.c:1544
 msgid ""
 "Arithmetic for loop.\n"
 "    \n"
@@ -4971,21 +4740,21 @@ msgid ""
 "    Exit Status:\n"
 "    Returns the status of the last command executed."
 msgstr ""
-"Aritmética para un ciclo.\n"
+"Aritmétical de bucle for.\n"
 "    \n"
 "    Equivalente a\n"
 "    \t(( EXP1 ))\n"
 "    \twhile (( EXP2 )); do\n"
-"    \t\tMANDATOS\n"
+"    \t\tÓRDENES\n"
 "    \t\t(( EXP3 ))\n"
 "    \tdone\n"
 "    EXP1, EXP2, y EXP3 son expresiones aritméticas.  Si se omite\n"
-"    cualquier expresión, se comporta como si se evaluara a 1.\n"
+"    cualquiera de ellas, se comporta como si se evaluara a 1.\n"
 "    \n"
 "    Estado de Salida:\n"
-"    Devuelve el estado del último mandato ejecutado."
+"    Devuelve el estado de la última orden ejecutada."
 
-#: builtins.c:1566
+#: builtins.c:1562
 msgid ""
 "Select words from a list and execute commands.\n"
 "    \n"
@@ -5014,15 +4783,15 @@ msgstr ""
 "    línea consiste en el número correspondiente a una de las palabras\n"
 "    mostradas, entonces se define NOMBRE como esa palabra.  Si la\n"
 "    línea está vacía, PALABRAS y el prompt se muestran de nuevo.  Si\n"
-"    se lee FDL, se completa el mandato.  Cualquier otro valor leído\n"
+"    se lee EOF, se completa la orden.  Cualquier otro valor leído\n"
 "    causa que NOMBRE se defina como nulo.  La línea leída se guarda\n"
-"    en la variable REPLY.  Se ejecutan las MANDATOS después de cada\n"
-"    selección hasta que se ejecuta un mandato break.\n"
+"    en la variable REPLY.  Se ejecutan las ÓRDENES después de cada\n"
+"    selección hasta que se ejecuta una orden break.\n"
 "    \n"
 "    Estado de Salida:\n"
-"    Devuelve el estado del último mandato ejecutado."
+"    Devuelve el estado de la última orden ejecutada."
 
-#: builtins.c:1587
+#: builtins.c:1583
 msgid ""
 "Report time consumed by pipeline's execution.\n"
 "    \n"
@@ -5049,7 +4818,7 @@ msgstr ""
 "    Estado de Salida:\n"
 "    El estado de devolución es el estado de devolución de la TUBERÍA."
 
-#: builtins.c:1604
+#: builtins.c:1600
 msgid ""
 "Execute commands based on pattern matching.\n"
 "    \n"
@@ -5061,27 +4830,22 @@ msgid ""
 msgstr ""
 "Ejecuta órdenes en base a la coincidencia de patrones.\n"
 "    \n"
-"    Ejecuta MANDATOS selectivamente basado en coincidencias de la PALABRA\n"
+"    Ejecuta ÓRDENES selectivamente basado en coincidencias de la PALABRA\n"
 "    con el PATRÓN. Se utiliza `|' para separar patrones múltiples.\n"
 "    \n"
 "    Estado de Salida:\n"
-"    Devuelve el estado del último mandato ejecutado."
+"    Devuelve el estado de la última orden ejecutada."
 
-#: builtins.c:1616
+#: builtins.c:1612
 msgid ""
 "Execute commands based on conditional.\n"
 "    \n"
-"    The `if COMMANDS' list is executed.  If its exit status is zero, then "
-"the\n"
-"    `then COMMANDS' list is executed.  Otherwise, each `elif COMMANDS' list "
-"is\n"
+"    The `if COMMANDS' list is executed.  If its exit status is zero, then the\n"
+"    `then COMMANDS' list is executed.  Otherwise, each `elif COMMANDS' list is\n"
 "    executed in turn, and if its exit status is zero, the corresponding\n"
-"    `then COMMANDS' list is executed and the if command completes.  "
-"Otherwise,\n"
-"    the `else COMMANDS' list is executed, if present.  The exit status of "
-"the\n"
-"    entire construct is the exit status of the last command executed, or "
-"zero\n"
+"    `then COMMANDS' list is executed and the if command completes.  Otherwise,\n"
+"    the `else COMMANDS' list is executed, if present.  The exit status of the\n"
+"    entire construct is the exit status of the last command executed, or zero\n"
 "    if no condition tested true.\n"
 "    \n"
 "    Exit Status:\n"
@@ -5089,22 +4853,19 @@ msgid ""
 msgstr ""
 "Ejecuta comandos en base a condicionales.\n"
 "    \n"
-"    Se ejecuta la lista `if MANDATOS'.  Si su estado de salida es cero,\n"
+"    Se ejecuta la lista `if ÓRDENES'.  Si su estado de salida es cero,\n"
 "    entonces se ejecuta la lista `then ÓRDENES`.  De otra forma, cada lista\n"
-"    `elif MANDATOS' se ejecuta en su lugar, y si su estado de salida es "
-"cero,\n"
-"    se ejecuta la lista `then MANDATOS' correspondiente y se completa el\n"
-"    mandato if.  De otra forma, se ejecuta la lista `else MANDATOS', si "
-"está\n"
-"    presente.  El estado de salida de todo el constructor es el estado "
-"saliente\n"
-"    del último mandato ejecutado, o cero si ninguna condición resultó\n"
+"    `elif ÓRDENES' se ejecuta en su lugar, y si su estado de salida es cero,\n"
+"    se ejecuta la lista `then ÓRDENES' correspondiente y se completa la\n"
+"    orden if.  De otra forma, se ejecuta la lista `else ÓRDENES', si está\n"
+"    presente.  El estado de salida del bloque entero es el estado saliente\n"
+"    de la última orden ejecutada, o cero si ninguna condición resultó\n"
 "    verdadera.\n"
 "    \n"
 "    Estado de Salida:\n"
-"    Devuelve el estado del último mandato ejecutado."
+"    Devuelve el estado de la última orden ejecutada."
 
-#: builtins.c:1633
+#: builtins.c:1629
 msgid ""
 "Execute commands as long as a test succeeds.\n"
 "    \n"
@@ -5116,13 +4877,13 @@ msgid ""
 msgstr ""
 "Ejecuta órdenes mientras una prueba sea correcta.\n"
 "    \n"
-"    Expande y ejecuta MANDATOS mientras el mandato final en las MANDATOS\n"
+"    Expande y ejecuta ÓRDENES mientras la orden final en las ÓRDENES\n"
 "    `while' tenga un estado de salida de cero.\n"
 "    \n"
 "    Estado de Salida:\n"
-"    Devuelve el estado del último mandato ejecutado."
+"    Devuelve el estado de la última orden ejecutada."
 
-#: builtins.c:1645
+#: builtins.c:1641
 msgid ""
 "Execute commands as long as a test does not succeed.\n"
 "    \n"
@@ -5134,13 +4895,13 @@ msgid ""
 msgstr ""
 "Ejecuta órdenes mientras una prueba sea correcta.\n"
 "    \n"
-"    Expande y ejecuta MANDATOS mientras el mandato final en las MANDATOS\n"
+"    Expande y ejecuta ÓRDENES mientras la orden final en las ÓRDENES\n"
 "    `until' tengan un estado de salida que no sea cero.\n"
 "    \n"
 "    Estado de Salida:\n"
-"    Devuelve el estado del último mandato ejecutado."
+"    Devuelve el estado de la última orden ejecutada."
 
-#: builtins.c:1657
+#: builtins.c:1653
 msgid ""
 "Create a coprocess named NAME.\n"
 "    \n"
@@ -5154,22 +4915,21 @@ msgid ""
 msgstr ""
 "Crea un coproceso llamado NOMBRE.\n"
 "    \n"
-"    Ejecuta el MANDATO asíncronamente, con la salida y entrada comunes\n"
-"    del mandato conectado a través de una tubería a los descriptores\n"
+"    Ejecuta la ORDEN asíncronamente, con la salida y la entrada estándar\n"
+"    de la orden conectadas a través de una tubería a los descriptores\n"
 "    de fichero asignados a los índices 0 y 1 de una variable de matriz\n"
-"    lineal NOMBRE en el shell en ejecución.  El nombre por defecto es\n"
+"    NOMBRE en el shell en ejecución.  El nombre por defecto es\n"
 "    \"COPROC\".\n"
 "    \n"
 "    Estado de Salida:\n"
-"    El mandato «coproc» devuelve un estado de salida a 0."
+"    La orden «coproc» devuelve un estado de salida de 0."
 
-#: builtins.c:1671
+#: builtins.c:1667
 msgid ""
 "Define shell function.\n"
 "    \n"
 "    Create a shell function named NAME.  When invoked as a simple command,\n"
-"    NAME runs COMMANDs in the calling shell's context.  When NAME is "
-"invoked,\n"
+"    NAME runs COMMANDs in the calling shell's context.  When NAME is invoked,\n"
 "    the arguments are passed to the function as $1...$n, and the function's\n"
 "    name is in $FUNCNAME.\n"
 "    \n"
@@ -5178,15 +4938,15 @@ msgid ""
 msgstr ""
 "Define una función de shell.\n"
 "    \n"
-"    Crea una función de shell llamada NOMBRE.  Cuando se invoca como un\n"
-"    mandato simple, NOMBRE ejecuta MANDATOs en el contexto del shell\n"
+"    Crea una función de shell llamada NOMBRE.  Cuando se invoca como una\n"
+"    orden simple, NOMBRE ejecuta ORDENes en el contexto del shell\n"
 "    que lo llamó.  Cuando se invoca NOMBRE, los argumentos se pasan a la\n"
 "    función como $1...$n, y el nombre de la función está en $FUNCNAME.\n"
 "    \n"
 "    Estado de Salida:\n"
 "    Devuelve correcto a menos que NOMBRE sea de sólo lectura."
 
-#: builtins.c:1685
+#: builtins.c:1681
 msgid ""
 "Group commands as a unit.\n"
 "    \n"
@@ -5196,15 +4956,15 @@ msgid ""
 "    Exit Status:\n"
 "    Returns the status of the last command executed."
 msgstr ""
-"Agrupa mandatos como una unidad.\n"
+"Agrupa órdenes como una unidad.\n"
 "    \n"
-"    Ejecuta un conjunto de mandatos dentro de un grupo.  Esta es una\n"
-"    forma de redirigir un conjunto completo de mandatos.\n"
+"    Ejecuta un conjunto de órdenes en un grupo.  Esta es una\n"
+"    forma de redirigir un conjunto completo de órdenes.\n"
 "    \n"
 "    Estado de Salida:\n"
-"    Devuelve el estado del último mandato ejecutado."
+"    Devuelve el estado de la última orden ejecutada."
 
-#: builtins.c:1697
+#: builtins.c:1693
 msgid ""
 "Resume job in foreground.\n"
 "    \n"
@@ -5217,19 +4977,19 @@ msgid ""
 "    Exit Status:\n"
 "    Returns the status of the resumed job."
 msgstr ""
-"Reinicia la tarea en primer plano.\n"
+"Reinicia el trabajo en primer plano.\n"
 "    \n"
-"    Equivalente al argumento IDTAREA del mandato `fg'.  Reinicia una\n"
-"    tarea detenida o en segundo plano.  IDTAREA puede especificar\n"
-"    un nombre de tarea o un número de tarea.  Un `&' a continuación\n"
-"    de IDTAREA coloca a la tarea en segundo plano, como si la\n"
-"    especificación del tarea se hubiera proporcionado como\n"
+"    Equivalente al argumento IDTRABAJO de la orden `fg'.  Reinicia un\n"
+"    trabajo detenido o en segundo plano.  IDTRABAJO puede especificar\n"
+"    un nombre de trabajo o un número de trabajo.  Un `&' a continuación\n"
+"    de IDTRABAJO coloca a el trabajo en segundo plano, como si la\n"
+"    especificación del trabajo se hubiera proporcionado como\n"
 "    un argumento de `bg'.\n"
 "    \n"
 "    Estado de Salida:\n"
-"    Devuelve el estado del tarea reiniciado."
+"    Devuelve el estado del trabajo reiniciado."
 
-#: builtins.c:1712
+#: builtins.c:1708
 msgid ""
 "Evaluate arithmetic expression.\n"
 "    \n"
@@ -5247,16 +5007,13 @@ msgstr ""
 "    Estado de Salida:\n"
 "    Devuelve 1 si la EXPRESIÓN evalúa a 0; devuelve 0 de otra manera."
 
-#: builtins.c:1724
+#: builtins.c:1720
 msgid ""
 "Execute conditional command.\n"
 "    \n"
-"    Returns a status of 0 or 1 depending on the evaluation of the "
-"conditional\n"
-"    expression EXPRESSION.  Expressions are composed of the same primaries "
-"used\n"
-"    by the `test' builtin, and may be combined using the following "
-"operators:\n"
+"    Returns a status of 0 or 1 depending on the evaluation of the conditional\n"
+"    expression EXPRESSION.  Expressions are composed of the same primaries used\n"
+"    by the `test' builtin, and may be combined using the following operators:\n"
 "    \n"
 "      ( EXPRESSION )\tReturns the value of EXPRESSION\n"
 "      ! EXPRESSION\t\tTrue if EXPRESSION is false; else false\n"
@@ -5274,17 +5031,15 @@ msgid ""
 "    Exit Status:\n"
 "    0 or 1 depending on value of EXPRESSION."
 msgstr ""
-"Ejecuta un mandato condicional.\n"
+"Ejecuta una orden condicional.\n"
 "    \n"
-"    Devuelve un estado de 0 ó 1 dependiendo de la evaluación de la "
-"expresión\n"
+"    Devuelve un estado de 0 ó 1 dependiendo de la evaluación de la expresión\n"
 "    condicional EXPRESIÓN.  Las expresiones se componen de los mismos\n"
-"    elementos primarios usados por el mandato interno `test', y se pueden\n"
+"    elementos primarios usados por la orden interna `test', y se pueden\n"
 "    combinar usando los siguientes operadores:\n"
 "    \n"
 "      ( EXPRESIÓN )\tDevuelve el valor de la EXPRESIÓN\n"
-"      ! EXPRESIÓN\tVerdadero si la EXPRESIÓN es falsa; de otra forma es "
-"falso\n"
+"      ! EXPRESIÓN\t\tVerdadero si la EXPRESIÓN es falsa; de otra forma es falso\n"
 "      EXPR1 && EXPR2\tVerdadero si EXPR1 y EXPR2 son verdaderos; de\n"
 "    \t\totra forma es falso\n"
 "    \tEXPR1 || EXPR2\tVerdadero si EXPR1 o EXPR2 es verdadero; de\n"
@@ -5300,7 +5055,7 @@ msgstr ""
 "    Estado de Salida:\n"
 "    0 o 1 dependiendo del valor de la EXPRESIÓN."
 
-#: builtins.c:1750
+#: builtins.c:1746
 msgid ""
 "Common shell variable names and usage.\n"
 "    \n"
@@ -5359,63 +5114,63 @@ msgstr ""
 "    CDPATH\tUna lista de directorios separada por dos puntos\n"
 "    \t\tpara buscar directorios dados como argumentos para `cd'.\n"
 "    GLOBIGNORE\tUna lista de patrones separada por dos puntos\n"
-"    \t\t que describe nombres de fichero a ignorar por la expansión\n"
-"    \t\t de rutas de nombre.\n"
+"    \t\tque describe nombres de fichero a ignorar por la expansión\n"
+"    \t\tde rutas de nombre.\n"
 "    HISTFILE\tEl nombre del fichero donde se almacena su historia\n"
-"    \t\t de mandatos.\n"
+"    \t\tde órdenes.\n"
 "    HISTFILESIZE\t El número máximo de líneas que puede contener\n"
-"    \t\t este fichero.\n"
-"    HISTSIZE\t El número máximo de líneas históricas que un shell\n"
-"    \t\t en ejecución puede acceder.\n"
-"    HOME\t La ruta completa a su directorio de entrada.\n"
-"    HOSTNAME\t El nombre del anfitrión actual.\n"
-"    HOSTTYPE\t El tipo de CPU bajo el cual se ejecuta esta versión\n"
-"    \t\t de Bash.\n"
-"    IGNOREEOF\t Controla la acción del shell al recibir un carácter\n"
-"    \t\t FDL como la única entrada.  Si está definida, entonces su\n"
-"    \t\t valor es el número de caracteres FDL que se deben leer de\n"
-"    \t\t forma consecutiva en una línea vacía antes de que el shell\n"
-"    \t\t termine (por defecto 10).  Cuando no está definida, FDL\n"
-"    \t\t significa el fin de la entrada.\n"
-"    MACHTYPE\t Una cadena que describe el sistema actual donde se\n"
-"    \t\t ejecuta Bash.\n"
-"    MAILCHECK\t La frecuencia, en segundos, que Bash busca correo nuevo.\n"
-"    MAILPATH\t Una lista de nombres de ficheros separada por dos puntos\n"
-"    \t\t en la cual Bash busca correo nuevo.\n"
-"    OSTYPE\t la versión de Unix en la que se ejecuta esta versión\n"
-"    \t\t de Bash.\n"
-"    PATH\t Una lista de directorios separada por dos puntos en la que\n"
-"    \t\t se buscan mandatos.\n"
-"    PROMPT_COMMAND\t Un mandato a ejecutar antes de mostrar cada prompt\n"
-"    \t\t primario.\n"
-"    PS1\t\t La cadena primaria de prompt.\n"
-"    PS2\t\t La cadena secundaria de prompt.\n"
-"    PWD\t\t La ruta completa del directorio actual.\n"
-"    SHELLOPTS\t Una lista separada por dos puntos de las opciones\n"
-"    \t\t de shell activadas.\n"
-"    TERM\t El nombre del tipo actual de terminal.\n"
-"    TIMEFORMAT\t El formato de salida para las estadísticas de tiempo\n"
-"    \t\t mostradas por la palabra reservada `time'.\n"
-"    auto_resume\t Si no es nulo significa que una palabra de mandato\n"
-"    \t\t que aparece en una línea por sí sola se busca primero en la lista\n"
-"    \t\t actual de tareas detenidos.  Si se encuentra ahí, esa tarea\n"
-"    \t\t se coloca en primer plano.  Un valor `exact' significa que la\n"
-"    \t\t palabra de mandato debe coincidir exactamente con un\n"
-"    \t\t mandato interno a la lista de tareas detenidas.  Un valor\n"
-"    \t\t `substring' significa que la palabra de mandato debe coincidir\n"
-"    \t\t con una subcadena de la tarea.  Cualquier otro valor significa\n"
-"    \t\t que el mandato debe ser un prefijo de una tarea detenida.\n"
-"    histchars\t Los caracteres que controlan la expansión de historia\n"
-"    \t\t y la sustitución rápida.  El primer carácter es el carácter de\n"
-"    \t\t sustitución de historia, generalmente `!'.  El segundo es el\n"
-"    \t\t carácter de `sustitución rápida', generalmente `^'.  El tercero\n"
+"    \t\teste fichero.\n"
+"    HISTSIZE\t El número máximo de líneas de historia que un shell\n"
+"    \t\ten ejecución puede acceder.\n"
+"    HOME\tLa ruta completa a su directorio de entrada.\n"
+"    HOSTNAME\tEl nombre del anfitrión actual.\n"
+"    HOSTTYPE\tEl tipo de CPU bajo el cual se ejecuta esta versión\n"
+"    \t\tde Bash.\n"
+"    IGNOREEOF\tControla la acción del shell al recibir un carácter\n"
+"    \t\tFDL como la única entrada.  Si está definida, entonces su\n"
+"    \t\tvalor es el número de caracteres FDL que se deben leer de\n"
+"    \t\tforma consecutiva en una línea vacía antes de que el shell\n"
+"    \t\ttermine (por defecto 10).  Cuando no está definida, EOF\n"
+"    \t\tsignifica el fin de la entrada.\n"
+"    MACHTYPE\tUna cadena que describe el sistema actual donde se\n"
+"    \t\tejecuta Bash.\n"
+"    MAILCHECK\tLa frecuencia, en segundos, que Bash busca correo nuevo.\n"
+"    MAILPATH\tUna lista de nombres de ficheros separada por dos puntos\n"
+"    \t\ten la cual Bash busca correo nuevo.\n"
+"    OSTYPE\tla versión de Unix en la que se ejecuta esta versión\n"
+"    \t\tde Bash.\n"
+"    PATH\tUna lista de directorios separada por dos puntos en la que\n"
+"    \t\tse buscan órdenes.\n"
+"    PROMPT_COMMAND\tUna orden a ejecutar antes de mostrar cada prompt\n"
+"    \t\tprimario.\n"
+"    PS1\t\tLa cadena primaria de prompt.\n"
+"    PS2\t\tLa cadena secundaria de prompt.\n"
+"    PWD\t\tLa ruta completa del directorio actual.\n"
+"    SHELLOPTS\tUna lista separada por dos puntos de las opciones\n"
+"    \t\tde shell activadas.\n"
+"    TERM\tEl nombre del tipo actual de terminal.\n"
+"    TIMEFORMAT\tEl formato de salida para las estadísticas de tiempo\n"
+"    \t\tmostradas por la palabra reservada `time'.\n"
+"    auto_resume\tSi no es nulo significa que una palabra de orden\n"
+"    \t\tque aparece en una línea por sí sola se busca primero en la lista\n"
+"    \t\tactual de trabajos detenidos.  Si se encuentra ahí, esetrabajo\n"
+"    \t\tse coloca en primer plano.  Un valor `exact' significa que la\n"
+"    \t\tpalabra de orden debe coincidir exactamente con una\n"
+"    \t\torden de la lista de trabajos detenidos.  Un valor\n"
+"    \t\t`substring' significa que la palabra de orden debe coincidir\n"
+"    \t\tcon una subcadena del trabajo.  Cualquier otro valor significa\n"
+"    \t\tque la orden debe ser un prefijo de un trabajo detenido.\n"
+"    histchars\tLos caracteres que controlan la expansión de historia\n"
+"    \t\ty la sustitución rápida.  El primer carácter es el carácter de\n"
+"    \t\tsustitución de historia, generalmente `!'.  El segundo es el\n"
+"    \t\tcarácter de `sustitución rápida', generalmente `^'.  El tercero\n"
 " \n"
-"    \t\t es el carácter `comentario de historia', generalmente `#'.\n"
-"    HISTIGNORE\t Una lista separada por dos puntos de patrones\n"
-"    \t\t utilizados para decidir cuáles mandatos se deben guardar en\n"
-"    \t\t el listado histórico.\n"
+"    \t\tes el carácter `comentario de historia', generalmente `#'.\n"
+"    HISTIGNORE\tUna lista separada por dos puntos de patrones\n"
+"    \t\tutilizados para decidir qué órdenes se deben guardar en\n"
+"    \t\tel listado histórico.\n"
 
-#: builtins.c:1807
+#: builtins.c:1803
 msgid ""
 "Add directories to stack.\n"
 "    \n"
@@ -5445,36 +5200,36 @@ msgid ""
 "    Returns success unless an invalid argument is supplied or the directory\n"
 "    change fails."
 msgstr ""
-"Añade directorios a la pila.\n"
+"Agrega directorios a la pila.\n"
 "    \n"
-"    Añade un directorio superior de la pila de directorios, o rota\n"
-"    la pila, haciendo que el nuevo techo de la pila sea el\n"
+"    Agrega un directorio por la parte superior de la pila de directorios\n"
+"    o rota la pila, haciendo que el nuevo elemento superior de la pila sea el\n"
 "    directorio de trabajo actual.  Sin argumentos, intercambia\n"
-"    los dos directorios superior.\n"
+"    los dos directorios de la parte superior.\n"
 "    \n"
 "    Opciones:\n"
-"      -n\t suprime el cambio normal de directorio cuando se agregan\n"
-"    \t\t directorios a la pila, así sólo se manipula la pila.\n"
+"      -n\tsuprime el cambio normal de directorio cuando se agregan\n"
+"    \t\tdirectorios a la pila, así sólo se manipula la pila.\n"
 "    \n"
 "    Argumentos:\n"
-"      +N\t Rota la pila para que el N-ésimo directorio (contando\n"
-"    \t\t de la izquierda de la lista mostrada por `dirs', comenzando\n"
-"    \t\t desde cero) esté en el superior.\n"
+"      +N\tRota la pila para que el N-ésimo directorio (contando\n"
+"    \t\tdesde la izquierda de la lista mostrada por `dirs', comenzando\n"
+"    \t\tdesde cero) esté en la parte superior.\n"
 "    \n"
-"      -N\t Rota la pila para que el N-ésimo directorio (contando desde\n"
-"    \t\t la derecha de la lista mostrada por `dirs', comenzando\n"
-"    \t\t desde cero) esté en el techo.\n"
+"      -N\tRota la pila para que el N-ésimo directorio (contando desde\n"
+"    \t\tla derecha de la lista mostrada por `dirs', comenzando\n"
+"    \t\tdesde cero) esté en la parte superior.\n"
 "    \n"
-"      dir\t Añade DIR a la pila de directorios en el techo, creándolo\n"
-"    \t\t el nuevo directorio de trabajo actual.\n"
+"      dir\tAgrega DIR la pila de directorios por la parte superior, haciendo\n"
+"    \t\tde él el nuevo directorio de trabajo actual.\n"
 "    \n"
-"    Los directorios `dirs' construidos enseña la pila del directorios.\n"
+"    La orden interna `dirs' muestra la pila de directorios.\n"
 "    \n"
-"    Estados de Salida:\n"
+"    Estado de Salida:\n"
 "    Devuelve correcto a menos que se proporcione un argumento\n"
-"    inválido o falle la modificación del directorio."
+"    inválido o falle el cambio de directorio."
 
-#: builtins.c:1841
+#: builtins.c:1837
 msgid ""
 "Remove directories from stack.\n"
 "    \n"
@@ -5500,35 +5255,35 @@ msgid ""
 "    Returns success unless an invalid argument is supplied or the directory\n"
 "    change fails."
 msgstr ""
-"Quita directorios de la pila.\n"
+"Borra directorios de la pila.\n"
 "    \n"
-"    Quita entradas de la pila de directorios.  Sin argumentos,\n"
-"    quita el directorio del techo de la pila, y cambia al nuevo\n"
-"    directorio techo.\n"
+"    Borra entradas de la pila de directorios.  Sin argumentos,\n"
+"    borra el directorio del tope de la pila, y cambia al nuevo\n"
+"    directorio tope.\n"
 "    \n"
 "    Opciones:\n"
-"      -n\t suprime el cambio normal de directorio cuando se quitan\n"
-"    \t\t directorios de la pila, así sólo se manipula la pila.\n"
+"      -n\tSuprime el cambio normal de directorio cuando se borran\n"
+"    \t\tdirectorios de la pila; así sólo se manipula la pila.\n"
 "    \n"
 "    Argumentos:\n"
 "    \n"
-"      +N\tQuita la N-ésima entrada contando de la izquierda de\n"
-"    \t\t la lista mostrada por `dirs', comenzando desde cero. Por\n"
-"    \t\t ejemplo: `popd +0' borra el primer directorio, `popd +1'\n"
-"    \t\t el segundo.\n"
+"      +N\tBorra la N-ésima entrada contando desde la izquierda de\n"
+"    \t\tla lista mostrada por `dirs', comenzando por cero. Por\n"
+"    \t\tejemplo: `popd +0' borra el primer directorio, `popd +1'\n"
+"    \t\tel segundo.\n"
 "    \n"
-"      -N\t Quita la N-ésima entrada contando de la derecha de\n"
-"    \t\t la lista mostrada por `dirs', comenzando desde cero. Por\n"
-"    \t\t ejemplo: `popd -0' borra el último directorio, `popd -1'\n"
-"    \t\t el penúltimo.\n"
+"      -N\tBorra la N-ésima entrada contando desde la derecha de\n"
+"    \t\tla lista mostrada por `dirs', comenzando por cero. Por\n"
+"    \t\tejemplo: `popd -0' borra el último directorio, `popd -1'\n"
+"    \t\tel penúltimo.\n"
 "    \n"
-"    El mandato interno `dirs' muestra el contenido de la pila.\n"
+"    La orden interna `dirs' muestra la pila de directorios.\n"
 "    \n"
 "    Estado de Salida:\n"
-"    Devuelve como correcto a menos que se proporcione un\n"
+"    Devuelve correcto a menos que se proporcione un\n"
 "    argumento inválido o falle el cambio de directorio."
 
-#: builtins.c:1871
+#: builtins.c:1867
 msgid ""
 "Display directory stack.\n"
 "    \n"
@@ -5559,39 +5314,37 @@ msgstr ""
 "Muestra la pila de directorios.\n"
 "    \n"
 "    Muestra la lista de directorios actualmente grabados.  Los directorios\n"
-"    se guardan en la lista con el mandato `pushd'; pueden ir saliendo de\n"
-"    la lista con el mandato `popd'.\n"
+"    se guardan en la lista con la orden `pushd'; pueden ir saliendo de\n"
+"    la lista con la orden `popd'.\n"
 "    \n"
 "    Opciones:\n"
-"    \n"
 "      -c\tlimpia la pila de directorios, eliminando todos sus elementos.\n"
 "      -l\tno muestra versiones con prefijo de tilde de los directorios\n"
-"    \trelativos a su directorio inicial.\n"
+"    \t\trelativos a su directorio inicial.\n"
 "      -p\tmuestra la pila de directorios con una entrada por línea\n"
 "      -v\tmuestra la pila de directorios con una entrada por línea con\n"
-"    \tsu posición en la pila como prefijo\n"
+"    \t\tsu posición en la pila como prefijo\n"
 "    \n"
 "    Argumentos:\n"
-"    \t+N\tmuestra la N-ésima entrada contando desde\n"
-"    \tla izquierda de la lista mostrada por dirs cuando se invoca sin\n"
-"    \topciones, empezando de cero.\n"
+"      +N\tmuestra la N-ésima entrada contando desde\n"
+"    \t\tla izquierda de la lista mostrada por dirs cuando se invoca sin\n"
+"    \t\topciones, empezando de cero.\n"
 "    \n"
 "      -N\tmuestra la N-ésima entrada contando desde la izquierda de la\n"
-"    \tlista mostrada por dirs cuando se invoca sin opciones, empezando\n"
-"    \tdesde cero.\n"
+"    \t\tlista mostrada por dirs cuando se invoca sin opciones, empezando\n"
+"    \t\tdesde cero.\n"
 "    \n"
 "    Estado de Salida:\n"
 "    Devuelve correcto, a menos que se proporcione una opción inválida o\n"
 "    suceda un error."
 
-#: builtins.c:1902
-#, fuzzy
+#: builtins.c:1898
 msgid ""
 "Set and unset shell options.\n"
 "    \n"
 "    Change the setting of each shell option OPTNAME.  Without any option\n"
-"    arguments, list each supplied OPTNAME, or all shell options if no\n"
-"    OPTNAMEs are given, with an indication of whether or not each is set.\n"
+"    arguments, list all shell options with an indication of whether or not each\n"
+"    is set.\n"
 "    \n"
 "    Options:\n"
 "      -o\trestrict OPTNAMEs to those defined for use with `set -o'\n"
@@ -5606,7 +5359,7 @@ msgid ""
 msgstr ""
 "Activa y desactiva opciones de shell.\n"
 "    \n"
-"    Modifica la configuración de cada opción de shell NOMBRE_OPCIÓN. Sin\n"
+"    Cambia la configuración de cada opción de shell NOMBRE_OPCIÓN. Sin\n"
 "    alguna opción como argumento, muestra todas las opciones de shell con\n"
 "    una indicación si está activa o no.\n"
 "    \n"
@@ -5621,7 +5374,7 @@ msgstr ""
 "    Devuelve correcto si se activa NOMBRE_OPCIÓN; falla si se proporciona\n"
 "    una opción inválida o NOMBRE_OPCIÓN está desactivado."
 
-#: builtins.c:1923
+#: builtins.c:1919
 msgid ""
 "Formats and prints ARGUMENTS under control of the FORMAT.\n"
 "    \n"
@@ -5629,48 +5382,40 @@ msgid ""
 "      -v var\tassign the output to shell variable VAR rather than\n"
 "    \t\tdisplay it on the standard output\n"
 "    \n"
-"    FORMAT is a character string which contains three types of objects: "
-"plain\n"
-"    characters, which are simply copied to standard output; character "
-"escape\n"
+"    FORMAT is a character string which contains three types of objects: plain\n"
+"    characters, which are simply copied to standard output; character escape\n"
 "    sequences, which are converted and copied to the standard output; and\n"
-"    format specifications, each of which causes printing of the next "
-"successive\n"
+"    format specifications, each of which causes printing of the next successive\n"
 "    argument.\n"
 "    \n"
-"    In addition to the standard format specifications described in printf"
-"(1),\n"
+"    In addition to the standard format specifications described in printf(1),\n"
 "    printf interprets:\n"
 "    \n"
 "      %b\texpand backslash escape sequences in the corresponding argument\n"
 "      %q\tquote the argument in a way that can be reused as shell input\n"
-"      %(fmt)T\toutput the date-time string resulting from using FMT as a "
-"format\n"
+"      %(fmt)T\toutput the date-time string resulting from using FMT as a format\n"
 "    \t        string for strftime(3)\n"
 "    \n"
 "    The format is re-used as necessary to consume all of the arguments.  If\n"
 "    there are fewer arguments than the format requires,  extra format\n"
-"    specifications behave as if a zero value or null string, as "
-"appropriate,\n"
+"    specifications behave as if a zero value or null string, as appropriate,\n"
 "    had been supplied.\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns success unless an invalid option is given or a write or "
-"assignment\n"
+"    Returns success unless an invalid option is given or a write or assignment\n"
 "    error occurs."
 msgstr ""
 "Da formato y muestra ARGUMENTOS bajo el control del FORMATO.\n"
 "    \n"
 "    Opciones:\n"
 "      -v var\tasigna la salida a la variable de shell VAR en lugar\n"
-"    \t\tde enseñarla en la salida común\n"
+"    \t\tde mostrarla en la salida estándar\n"
 "    \n"
 "    FORMATO es una cadena de caracteres la cual contiene tres tipos de\n"
 "    objetos: caracteres simples, los cuales solamente se copian a la salida\n"
-"    salida común; secuencias de escape de caracteres, las cuales\n"
-"    se convierten y se copian a la salida común; y especificaciones de\n"
-"    formato, cada una de las cuales causa la muestra del siguiente "
-"argumento\n"
+"    salida estándar; secuencias de escape de caracteres, las cuales\n"
+"    se convierten y se copian a la salida estándar; y especificaciones de\n"
+"    formato, cada una de las cuales causa la muestra del siguiente argumento\n"
 "    consecutivo.\n"
 "    \n"
 "    Además de las especificaciones de formato estándar descritas en\n"
@@ -5678,28 +5423,26 @@ msgstr ""
 "    \n"
 "      %b\texpande las secuencias de escape de barra invertida en\n"
 "            el argumento correspondiente\n"
-"      %q\tcita el argumento de tal forma que se puede reusar como\n"
+"      %q\tcita el argumento de tal forma que se pueda reutilizar como\n"
 "            entrada del shell.\n"
 "      %(fmt)T muestra la cadena fecha hora resultante de usar FMT como\n"
 "            una cadena de formato para strftime(3)\n"
 "    \n"
-"    El formato es reutilizado como sea necesario para consumir todo lo\n"
-"    del argumento . Si hay menores argumentos que el formato requiere,\n"
-"    especificaciones adicionales de formato se comporta como si un valor\n"
-"    cero o cadena nula, como sea apropiado, se haya suministrado.\n"
+"    El formato se reutiliza según sea necesario para consumir todos los\n"
+"    argumentos.  Si hay menos argumentos de los que el formato requiere,\n"
+"    las especificaciones de formato adicionales se comportan como si un valor\n"
+"    cero o una cadena nula, lo que sea apropiado, se hubiera proporcionado.\n"
 "    \n"
 "    Estado de Salida:\n"
 "    Devuelve correcto a menos que se proporcione una opción inválida o\n"
 "    suceda un error de escritura o de asignación."
 
-#: builtins.c:1957
+#: builtins.c:1953
 msgid ""
 "Specify how arguments are to be completed by Readline.\n"
 "    \n"
-"    For each NAME, specify how arguments are to be completed.  If no "
-"options\n"
-"    are supplied, existing completion specifications are printed in a way "
-"that\n"
+"    For each NAME, specify how arguments are to be completed.  If no options\n"
+"    are supplied, existing completion specifications are printed in a way that\n"
 "    allows them to be reused as input.\n"
 "    \n"
 "    Options:\n"
@@ -5722,19 +5465,18 @@ msgstr ""
 "    \n"
 "    Por cada NOMBRE, especifica cuántos argumentos se deben completar.  Si\n"
 "    no se proporcionan opciones, se muestran las especificaciones de\n"
-"    completado existentes en una forma que permite que se reusen como "
-"entrada.\n"
+"    completado existentes en una forma que permite que se reusen como entrada.\n"
 "    \n"
 "    Opciones:\n"
-"      -p\t escribe las especificaciones de completado existentes en formato\n"
-"    \t\t reusable\n"
-"      -r\t borra una especificación de completado para cada NOMBRE, o,\n"
-"    \t\t si no se proporcionan NOMBREs, todas las especificaciones\n"
-"    \t\t de completado\n"
-"      -D\t aplica los completados y acciones por defecto para los mandatos\n"
-"    \t\t sin ninguna especificación de completado definida\n"
-"      -E\t aplica los completados y acciones para mandatos \"vacíos\" --\n"
-"    \t\t cuando se intenta completar en una línea en blanco\n"
+"      -p\tmuestra las especificaciones de completado existentes en formato\n"
+"    \t\treusable\n"
+"      -r\tborra una especificación de completado para cada NOMBRE o,\n"
+"    \t\tsi no se proporcionan NOMBREs, todas las especificaciones\n"
+"    \t\tde completado\n"
+"      -D\taplica los completados y acciones por defecto para las órdenes\n"
+"    \t\tsin ninguna especificación de completado definida\n"
+"      -E\taplica los completados y acciones para órdenes \"vacías\" --\n"
+"    \t\tcuando se intenta completar en una línea en blanco\n"
 "    \n"
 "    Cuando se intenta el completado, las acciones se aplican en el orden\n"
 "    en que se listan las opciones de letra mayúscula antes indicadas.  La\n"
@@ -5744,19 +5486,18 @@ msgstr ""
 "    Devuelve correcto a menos que se proporcione una opción inválida o\n"
 "    suceda un error."
 
-#: builtins.c:1985
+#: builtins.c:1981
 msgid ""
 "Display possible completions depending on the options.\n"
 "    \n"
 "    Intended to be used from within a shell function generating possible\n"
-"    completions.  If the optional WORD argument is supplied, matches "
-"against\n"
+"    completions.  If the optional WORD argument is supplied, matches against\n"
 "    WORD are generated.\n"
 "    \n"
 "    Exit Status:\n"
 "    Returns success unless an invalid option is supplied or an error occurs."
 msgstr ""
-"Enseña los posibles complementos dependiendo de las opciones.\n"
+"Muestra los posibles complementos dependiendo de las opciones.\n"
 "    \n"
 "    Sirve para usarse desde una función de shell que genere complementos\n"
 "    posibles.  Si se proporciona el argumento opcional PALABRA, se generan\n"
@@ -5766,16 +5507,13 @@ msgstr ""
 "    Devuelve correcto a menos que se proporcione una opción inválida o\n"
 "    suceda un error."
 
-#: builtins.c:2000
+#: builtins.c:1996
 msgid ""
 "Modify or display completion options.\n"
 "    \n"
-"    Modify the completion options for each NAME, or, if no NAMEs are "
-"supplied,\n"
-"    the completion currently being executed.  If no OPTIONs are given, "
-"print\n"
-"    the completion options for each NAME or the current completion "
-"specification.\n"
+"    Modify the completion options for each NAME, or, if no NAMEs are supplied,\n"
+"    the completion currently being executed.  If no OPTIONs are given, print\n"
+"    the completion options for each NAME or the current completion specification.\n"
 "    \n"
 "    Options:\n"
 "    \t-o option\tSet completion option OPTION for each NAME\n"
@@ -5796,54 +5534,47 @@ msgid ""
 "    Returns success unless an invalid option is supplied or NAME does not\n"
 "    have a completion specification defined."
 msgstr ""
-"Modifica o enseña las opciones de completado.\n"
+"Modifica o muestra las opciones de completado.\n"
 "    \n"
 "    Modifica las opciones de completado para cada NOMBRE, o, si no se\n"
 "    proporcionan NOMBREs, el completado actualmente en ejecución.  Si no\n"
-"    SE proporcionan OPCIONes, muestra las opciones de completado para\n"
-"     cada NOMBRE o la especificación de completado actual.\n"
+"    se proporcionan OPCIONes, muestra las opciones de completado para\n"
+"    cada NOMBRE o la especificación de completado actual.\n"
 "    \n"
 "    Opciones:\n"
-"    \t-o opción\t Establece la opción de completado OPCIÓN para\n"
-"    \t\t cada NOMBRE\n"
-"    \t-D\t\t Modifica las opciones para el completado de mandato \"por "
-"defecto\"\n"
-"    \t-E\t\t Modifica las opciones para el completado de mandato \"vacía\"\n"
+"    \t-o opción\tEstablece la opción de completado OPCIÓN para cada NOMBRE\n"
+"    \t-D\t\tCambia las opciones para el completado de orden \"por defecto\"\n"
+"    \t-E\t\tCambia las opciones para el completado de orden \"vacía\"\n"
 "    \n"
-"    Si UTILIZA `+o' en lugar de `-o' desactiva la opción especificada.\n"
+"    Si se usa `+o' en lugar de `-o', desactiva la opción especificada.\n"
 "    \n"
 "    Argumentos:\n"
 "    \n"
-"    Cada NOMBRE se refiere a un mandato para la cual se definió previamente\n"
-"    una especificación de completado usando el mandato interno `complete'.\n"
+"    Cada NOMBRE se refiere a una orden para la cual se definió previamente\n"
+"    una especificación de completado usando la orden interna `complete'.\n"
 "    Si no se proporcionan NOMBREs, se debe llamar a ‘compopt’ desde una\n"
-"    función que genere completados, y se modifican las opciones para ese\n"
-"    generador de completados en ejecución.\n"
+"    función que genere completados actualmente y se modifican las opciones\n"
+"    para ese generador de completados actualmente en ejecución.\n"
 "    \n"
 "    Estado de Salida:\n"
-"    Devuelve correcto a menos que se proporcione una opción inválida o el\n"
+"    Devuelve correcto a menos que se proporcione una opción inválida o\n"
 "    NOMBRE no tenga una especificación de completado definida."
 
-#: builtins.c:2030
+#: builtins.c:2026
 msgid ""
 "Read lines from the standard input into an indexed array variable.\n"
 "    \n"
-"    Read lines from the standard input into the indexed array variable "
-"ARRAY, or\n"
-"    from file descriptor FD if the -u option is supplied.  The variable "
-"MAPFILE\n"
+"    Read lines from the standard input into the indexed array variable ARRAY, or\n"
+"    from file descriptor FD if the -u option is supplied.  The variable MAPFILE\n"
 "    is the default ARRAY.\n"
 "    \n"
 "    Options:\n"
 "      -d delim\tUse DELIM to terminate lines, instead of newline\n"
-"      -n count\tCopy at most COUNT lines.  If COUNT is 0, all lines are "
-"copied\n"
-"      -O origin\tBegin assigning to ARRAY at index ORIGIN.  The default "
-"index is 0\n"
+"      -n count\tCopy at most COUNT lines.  If COUNT is 0, all lines are copied\n"
+"      -O origin\tBegin assigning to ARRAY at index ORIGIN.  The default index is 0\n"
 "      -s count\tDiscard the first COUNT lines read\n"
 "      -t\tRemove a trailing DELIM from each line read (default newline)\n"
-"      -u fd\tRead lines from file descriptor FD instead of the standard "
-"input\n"
+"      -u fd\tRead lines from file descriptor FD instead of the standard input\n"
 "      -C callback\tEvaluate CALLBACK each time QUANTUM lines are read\n"
 "      -c quantum\tSpecify the number of lines read between each call to\n"
 "    \t\t\tCALLBACK\n"
@@ -5856,49 +5587,47 @@ msgid ""
 "    element to be assigned and the line to be assigned to that element\n"
 "    as additional arguments.\n"
 "    \n"
-"    If not supplied with an explicit origin, mapfile will clear ARRAY "
-"before\n"
+"    If not supplied with an explicit origin, mapfile will clear ARRAY before\n"
 "    assigning to it.\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns success unless an invalid option is given or ARRAY is readonly "
-"or\n"
+"    Returns success unless an invalid option is given or ARRAY is readonly or\n"
 "    not an indexed array."
 msgstr ""
-"Lee líneas de un fichero y las guarda en una variable de matriz indizada.\n"
+"Lee líneas de un fichero y las guarda en una variable de matriz indexada.\n"
 "    \n"
 "    Lee líneas de la entrada estándar y las guarda en la variable de matriz\n"
-"    indizada MATRIZ, o desde el descriptor de fichero DF si se proporciona\n"
+"    indexada MATRIZ, o desde el descriptor de fichero DF si se proporciona\n"
 "    la opción -u.  La variable MAPFILE es la MATRIZ por defecto.\n"
 "    \n"
 "    Opciones:\n"
-"      -n cuenta\t Copia hasta CUENTA líneas.  Si CUENTA es 0, se copian\n"
-"    \t\t todas las líneas.\n"
-"      -O origen\t Comienza a asignar a MATRIZ en el índice ORIGEN.  El\n"
-"    \t\tíndice por defecto es 0.\n"
-"      -s cuenta \t Descarta las primeras CUENTA líneas leídas.\n"
-"      -t\t\t Borra la nueva línea final de cada línea leída.\n"
-"      -u df\t\t Lee líneas del descriptor de fichero DF en lugar de la\n"
-"    \t\t entrada común.\n"
-"      -C llamada\t Evalúa LLAMADA cada vez que se leen QUANTUM líneas.\n"
-"      -c quantum\t Especifica el número de líneas a leer entre cada\n"
-"    \t\t llamada a LLAMADA.\n"
+"      -d delim\tUtiliza DELIM para finalizar las líneas en lugar de nueva línea\n"
+"      -n cuenta\tCopia hasta CUENTA líneas.  Si CUENTA es 0, se copian todas\n"
+"      -O origen\tComienza a asignar a MATRIZ en el índice ORIGEN.  El\n"
+"    \t\t\tíndice por defecto es 0.\n"
+"      -s cuenta\tDescarta las primeras CUENTA líneas leídas.\n"
+"      -t\tBorra el DELIM final de cada línea leída (nuea línea por defecto).\n"
+"      -u df\tLee líneas del descriptor de fichero DF en lugar de la\n"
+"    \t\t\tentrada estándar.\n"
+"      -C llamada\tEvalúa LLAMADA cada vez que se leen QUANTUM líneas.\n"
+"      -c quantum\tEspecifica el número de líneas a leer entre cada\n"
+"    \t\t\tllamada a LLAMADA.\n"
 "    \n"
 "    Argumentos:\n"
-"      MATRIZ\t\t Nombre de variable de matriz a usar para guardar datos.\n"
+"      MATRIZ\tNombre de variable de matriz a usar para guardar datos.\n"
 "    \n"
 "    Si se proporciona -C sin -c, el quantum por defecto es 5000.  Cuando\n"
 "    se evalúa LLAMADA, se proporciona el índice del siguiente elemento\n"
-"    de la matriz asignada como un argumento adicional.\n"
+"    de la matriz a asignar como un argumento adicional.\n"
 "    \n"
-"    Si no se proporciona un origen explícito, ‘mapfile’ borrará la MATRIZ\n"
+"    Si no se proporciona un origen explícito, mapfile borrará la MATRIZ\n"
 "    antes de usarla para asignación.\n"
 "    \n"
 "    Estado de Salida:\n"
 "    Devuelve correcto a menos que se proporcione una opción inválida o\n"
-"    la MATRIZ sea de sólo lectura o no sea una matriz indizada."
+"    la MATRIZ sea de sólo lectura o no sea una matriz indexada."
 
-#: builtins.c:2066
+#: builtins.c:2062
 msgid ""
 "Read lines from a file into an array variable.\n"
 "    \n"
@@ -5906,4 +5635,4 @@ msgid ""
 msgstr ""
 "Lee líneas de un fichero en una variable de matriz.\n"
 "    \n"
-"    Un sinónimo de `mapfile'."
+"    Sinónimo de `mapfile'."
index ddc4216519075148e047d188d3cf53e053f0d809..f5ed6a326661b18ef11a31c1cb8051b6931f95a1 100644 (file)
--- a/po/ga.po
+++ b/po/ga.po
@@ -7,136 +7,131 @@ msgid ""
 msgstr ""
 "Project-Id-Version: bash 4.4\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2018-04-27 14:15-0400\n"
+"POT-Creation-Date: 2016-09-10 12:42-0400\n"
 "PO-Revision-Date: 2017-11-20 22:38+0000\n"
 "Last-Translator: Séamus Ó Ciardhuáin <sociardhuain@gmail.com>\n"
 "Language-Team: Irish <gaeilge-gnulinux@lists.sourceforge.net>\n"
+"Language: ga\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"Language: ga\n"
 "X-Bugs: Report translation errors to the Language-Team address.\n"
 "X-Generator: Lokalize 2.0\n"
-"Plural-Forms: nplurals=5; plural=n==1 ? 0 : n==2 ? 1 : (n>2 && n<7) ? 2 :"
-"(n>6 && n<11) ? 3 : 4;\n"
+"Plural-Forms: nplurals=5; plural=n==1 ? 0 : n==2 ? 1 : (n>2 && n<7) ? 2 :(n>6 && n<11) ? 3 : 4;\n"
 
-#: arrayfunc.c:58
+#: arrayfunc.c:54
 msgid "bad array subscript"
 msgstr "droch-fhoscript eagair"
 
-#: arrayfunc.c:373 builtins/declare.def:618 variables.c:2188 variables.c:2214
-#: variables.c:2922
+#: arrayfunc.c:368 builtins/declare.def:574 variables.c:2092 variables.c:2118
+#: variables.c:2730
 #, c-format
 msgid "%s: removing nameref attribute"
 msgstr "%s: aitreabúid nameref (tagairt athróga) á baint"
 
-#: arrayfunc.c:398 builtins/declare.def:831
+#: arrayfunc.c:393 builtins/declare.def:780
 #, c-format
 msgid "%s: cannot convert indexed to associative array"
-msgstr ""
-"%s: ní féidir eagar innéacsaithe a thiontú go heagar comhthiomsaitheach"
+msgstr "%s: ní féidir eagar innéacsaithe a thiontú go heagar comhthiomsaitheach"
 
-#: arrayfunc.c:582
+#: arrayfunc.c:578
 #, c-format
 msgid "%s: invalid associative array key"
 msgstr "%s: eochair neamhbhailí eagair chomhthiomsaithigh"
 
-#: arrayfunc.c:584
+#: arrayfunc.c:580
 #, c-format
 msgid "%s: cannot assign to non-numeric index"
 msgstr "%s: ní féidir sannadh go hinnéacs neamhuimhriúil."
 
-#: arrayfunc.c:629
+#: arrayfunc.c:625
 #, c-format
 msgid "%s: %s: must use subscript when assigning associative array"
-msgstr ""
-"%s: %s: caithfear foscript a úsáid le sannadh chuig eagar comhthiomsaitheach"
+msgstr "%s: %s: caithfear foscript a úsáid le sannadh chuig eagar comhthiomsaitheach"
 
-#: bashhist.c:436
+#: bashhist.c:421
 #, c-format
 msgid "%s: cannot create: %s"
 msgstr "%s: ní féidir cruthú: %s"
 
-#: bashline.c:4111
+#: bashline.c:4091
 msgid "bash_execute_unix_command: cannot find keymap for command"
-msgstr ""
-"bash_execute_unix_command: ní féidir mapa eochrach an ordaithe a aimsiú"
+msgstr "bash_execute_unix_command: ní féidir mapa eochrach an ordaithe a aimsiú"
 
-#: bashline.c:4221
+#: bashline.c:4189
 #, c-format
 msgid "%s: first non-whitespace character is not `\"'"
 msgstr "%s: ní \" an chéad charachtar nach spás bán é."
 
-#: bashline.c:4250
+#: bashline.c:4218
 #, c-format
 msgid "no closing `%c' in %s"
 msgstr "Níl '%c' dúnta i %s"
 
-#: bashline.c:4284
+#: bashline.c:4252
 #, c-format
 msgid "%s: missing colon separator"
 msgstr "%s: deighilteoir idirstaid ar iarraidh"
 
-#: braces.c:331
+#: braces.c:329
 #, c-format
 msgid "brace expansion: cannot allocate memory for %s"
 msgstr "fairsingiú lúibíní: ní féidir cuimhne a leithdháileadh le haghaidh %s"
 
-#: braces.c:429
-#, fuzzy, c-format
-msgid "brace expansion: failed to allocate memory for %u elements"
-msgstr ""
-"fairsingiú lúibíní: theip ar leithdháileadh cuimhne le haghaidh %d eilimint"
+#: braces.c:427
+#, c-format
+msgid "brace expansion: failed to allocate memory for %d elements"
+msgstr "fairsingiú lúibíní: theip ar leithdháileadh cuimhne le haghaidh %d eilimint"
 
-#: braces.c:473
+#: braces.c:471
 #, c-format
 msgid "brace expansion: failed to allocate memory for `%s'"
 msgstr "fairsingiú lúibíní: theip ar leithdháileadh cuimhne le haghaidh '%s'"
 
-#: builtins/alias.def:131
+#: builtins/alias.def:133
 #, c-format
 msgid "`%s': invalid alias name"
 msgstr "'%s': ainm neamhbhailí ar mhapa eochrach"
 
-#: builtins/bind.def:122 builtins/bind.def:125
+#: builtins/bind.def:123 builtins/bind.def:126
 msgid "line editing not enabled"
 msgstr "níl eagarthóireacht líne cumasaithe"
 
-#: builtins/bind.def:212
+#: builtins/bind.def:213
 #, c-format
 msgid "`%s': invalid keymap name"
 msgstr "'%s': ainm neamhbhailí ar mhapa eochrach "
 
-#: builtins/bind.def:252
+#: builtins/bind.def:253
 #, c-format
 msgid "%s: cannot read: %s"
 msgstr "%s: ní féidir léamh: %s"
 
-#: builtins/bind.def:304 builtins/bind.def:334
+#: builtins/bind.def:270
+#, c-format
+msgid "`%s': cannot unbind"
+msgstr "'%s': ní féidir dícheangail"
+
+#: builtins/bind.def:308 builtins/bind.def:338
 #, c-format
 msgid "`%s': unknown function name"
 msgstr "'%s': ainm feidhme neamhaithnid"
 
-#: builtins/bind.def:312
+#: builtins/bind.def:316
 #, c-format
 msgid "%s is not bound to any keys.\n"
 msgstr "Níl %s ceangailte le heochair ar bith.\n"
 
-#: builtins/bind.def:316
+#: builtins/bind.def:320
 #, c-format
 msgid "%s can be invoked via "
 msgstr "Is féidir %s a ghlaoigh trí "
 
-#: builtins/bind.def:353 builtins/bind.def:368
-#, c-format
-msgid "`%s': cannot unbind"
-msgstr "'%s': ní féidir dícheangail"
-
-#: builtins/break.def:77 builtins/break.def:119
+#: builtins/break.def:79 builtins/break.def:121
 msgid "loop count"
 msgstr "comhaireamh lúibe"
 
-#: builtins/break.def:139
+#: builtins/break.def:141
 msgid "only meaningful in a `for', `while', or `until' loop"
 msgstr "Gan chiall ach i lúb 'for', 'while' nó 'until'"
 
@@ -150,162 +145,162 @@ msgstr ""
 "    \n"
 "    Gan SLONN, aischuirtear "
 
-#: builtins/cd.def:319
+#: builtins/cd.def:321
 msgid "HOME not set"
 msgstr "Níl HOME socruithe"
 
-#: builtins/cd.def:327 builtins/common.c:161 test.c:889
+#: builtins/cd.def:329 builtins/common.c:167 test.c:885
 msgid "too many arguments"
 msgstr "An iomarca argóintí"
 
-#: builtins/cd.def:334
+#: builtins/cd.def:336
 msgid "null directory"
 msgstr "comhadlann neamhnitheach"
 
-#: builtins/cd.def:345
+#: builtins/cd.def:347
 msgid "OLDPWD not set"
 msgstr "Níl OLDPWD socruithe"
 
-#: builtins/common.c:96
+#: builtins/common.c:102
 #, c-format
 msgid "line %d: "
 msgstr "líne %d: "
 
-#: builtins/common.c:134 error.c:264
+#: builtins/common.c:140 error.c:265
 #, c-format
 msgid "warning: "
 msgstr "rabhadh: "
 
-#: builtins/common.c:148
+#: builtins/common.c:154
 #, c-format
 msgid "%s: usage: "
 msgstr "%s: úsáid: "
 
-#: builtins/common.c:193 shell.c:510 shell.c:838
+#: builtins/common.c:199 shell.c:514 shell.c:825
 #, c-format
 msgid "%s: option requires an argument"
 msgstr "%s: tá argóint riachtanach don rogha"
 
-#: builtins/common.c:200
+#: builtins/common.c:206
 #, c-format
 msgid "%s: numeric argument required"
 msgstr "%s: argóint uimhriúil de dhíth"
 
-#: builtins/common.c:207
+#: builtins/common.c:213
 #, c-format
 msgid "%s: not found"
 msgstr "%s: gan aimsiú"
 
-#: builtins/common.c:216 shell.c:851
+#: builtins/common.c:222 shell.c:838
 #, c-format
 msgid "%s: invalid option"
 msgstr "%s: rogha neamhbhailí"
 
-#: builtins/common.c:223
+#: builtins/common.c:229
 #, c-format
 msgid "%s: invalid option name"
 msgstr "%s: ainm neamhbhailí rogha"
 
-#: builtins/common.c:230 execute_cmd.c:2342 general.c:294 general.c:299
+#: builtins/common.c:236 general.c:293 general.c:298
 #, c-format
 msgid "`%s': not a valid identifier"
 msgstr "'%s': ní aitheantóir bailí é"
 
-#: builtins/common.c:240
+#: builtins/common.c:246
 msgid "invalid octal number"
 msgstr "uimhir ochtnártha neamhbhailí"
 
-#: builtins/common.c:242
+#: builtins/common.c:248
 msgid "invalid hex number"
 msgstr "uimhir heicsidheachúlach neamhbhailí"
 
-#: builtins/common.c:244 expr.c:1538
+#: builtins/common.c:250 expr.c:1473
 msgid "invalid number"
 msgstr "uimhir neamhbhailí"
 
-#: builtins/common.c:252
+#: builtins/common.c:258
 #, c-format
 msgid "%s: invalid signal specification"
 msgstr "%s: sonrú neamhbhailí comhartha"
 
-#: builtins/common.c:259
+#: builtins/common.c:265
 #, c-format
 msgid "`%s': not a pid or valid job spec"
 msgstr "'%s': ní aitheantas próisis nó sonrú taisc bailí é"
 
-#: builtins/common.c:266 error.c:510
+#: builtins/common.c:272 error.c:511
 #, c-format
 msgid "%s: readonly variable"
 msgstr "%s: athróg inléite amháin"
 
-#: builtins/common.c:274
+#: builtins/common.c:280
 #, c-format
 msgid "%s: %s out of range"
 msgstr "%s: %s as raon"
 
-#: builtins/common.c:274 builtins/common.c:276
+#: builtins/common.c:280 builtins/common.c:282
 msgid "argument"
 msgstr "argóint"
 
-#: builtins/common.c:276
+#: builtins/common.c:282
 #, c-format
 msgid "%s out of range"
 msgstr "%s as raon"
 
-#: builtins/common.c:284
+#: builtins/common.c:290
 #, c-format
 msgid "%s: no such job"
 msgstr "%s: níl a léithéid de tasc ann."
 
-#: builtins/common.c:292
+#: builtins/common.c:298
 #, c-format
 msgid "%s: no job control"
 msgstr "%s: gan rialú tascanna."
 
-#: builtins/common.c:294
+#: builtins/common.c:300
 msgid "no job control"
 msgstr "Gan rialú tascanna."
 
-#: builtins/common.c:304
+#: builtins/common.c:310
 #, c-format
 msgid "%s: restricted"
 msgstr "%s: srianta"
 
-#: builtins/common.c:306
+#: builtins/common.c:312
 msgid "restricted"
 msgstr "srianta"
 
-#: builtins/common.c:314
+#: builtins/common.c:320
 #, c-format
 msgid "%s: not a shell builtin"
 msgstr "%s: ní ordú ionsuite blaoisce é."
 
-#: builtins/common.c:323
+#: builtins/common.c:329
 #, c-format
 msgid "write error: %s"
 msgstr "earráid scríofa: %s"
 
-#: builtins/common.c:331
+#: builtins/common.c:337
 #, c-format
 msgid "error setting terminal attributes: %s"
 msgstr "earráid agus airíonna teirminéil á socrú: %s"
 
-#: builtins/common.c:333
+#: builtins/common.c:339
 #, c-format
 msgid "error getting terminal attributes: %s"
 msgstr "earráid agus airíonna teirminéil á fáil: %s"
 
-#: builtins/common.c:579
+#: builtins/common.c:585
 #, c-format
 msgid "%s: error retrieving current directory: %s: %s\n"
 msgstr "%s: earráid ag fáil na comhadlainne reatha: %s: %s\n"
 
-#: builtins/common.c:645 builtins/common.c:647
+#: builtins/common.c:651 builtins/common.c:653
 #, c-format
 msgid "%s: ambiguous job spec"
 msgstr "%s: sonrú taisc athbhríoch"
 
-#: builtins/common.c:908
+#: builtins/common.c:918
 msgid "help not available in this version"
 msgstr "Níl cabhair ar fáil sa leagan seo."
 
@@ -314,76 +309,72 @@ msgstr "Níl cabhair ar fáil sa leagan seo."
 msgid "%s: invalid action name"
 msgstr "%s: ainm neamhbhailí gnímh"
 
-#: builtins/complete.def:452 builtins/complete.def:653
-#: builtins/complete.def:874
+#: builtins/complete.def:452 builtins/complete.def:647
+#: builtins/complete.def:858
 #, c-format
 msgid "%s: no completion specification"
 msgstr "%s: níl sonrú iomlánaithe ann."
 
-#: builtins/complete.def:707
+#: builtins/complete.def:699
 msgid "warning: -F option may not work as you expect"
-msgstr ""
-"Rabhadh: b'fhéidir nach n-oibríonn an rogha -F mar a bheifeá ag súil leis."
+msgstr "Rabhadh: b'fhéidir nach n-oibríonn an rogha -F mar a bheifeá ag súil leis."
 
-#: builtins/complete.def:709
+#: builtins/complete.def:701
 msgid "warning: -C option may not work as you expect"
-msgstr ""
-"Rabhadh: b'fhéidir nach n-oibríonn an rogha -C mar a bheifeá ag súil leis."
+msgstr "Rabhadh: b'fhéidir nach n-oibríonn an rogha -C mar a bheifeá ag súil leis."
 
-#: builtins/complete.def:847
+#: builtins/complete.def:831
 msgid "not currently executing completion function"
 msgstr "níl an fheidhm chomhlánaithe á rith faoi láthair"
 
-#: builtins/declare.def:132
+#: builtins/declare.def:127
 msgid "can only be used in a function"
 msgstr "Inúsáidte i bhfeidhmeanna amháin. "
 
-#: builtins/declare.def:369 builtins/declare.def:736
+#: builtins/declare.def:332 builtins/declare.def:685
 #, c-format
 msgid "%s: reference variable cannot be an array"
 msgstr "%s: ní féidir le athróg thagartha bheith ina h-eagar"
 
-#: builtins/declare.def:380 variables.c:3161
+#: builtins/declare.def:343 variables.c:2959
 #, c-format
 msgid "%s: nameref variable self references not allowed"
-msgstr ""
-"%s: ní cheadaítear tagairtí don athróg féin i nameref (tagairt athróga)"
+msgstr "%s: ní cheadaítear tagairtí don athróg féin i nameref (tagairt athróga)"
 
-#: builtins/declare.def:385 variables.c:2018 variables.c:3083 variables.c:3095
-#: variables.c:3158
+#: builtins/declare.def:348 variables.c:1928 variables.c:2877 variables.c:2889
+#: variables.c:2956
 #, c-format
 msgid "%s: circular name reference"
 msgstr "%s: tagairt ainm ciorclach"
 
-#: builtins/declare.def:390 builtins/declare.def:742 builtins/declare.def:753
+#: builtins/declare.def:353 builtins/declare.def:691 builtins/declare.def:702
 #, c-format
 msgid "`%s': invalid variable name for name reference"
 msgstr "'%s': ainm neamhbhailí athróige le haghaidh tagairt ainm"
 
-#: builtins/declare.def:500
+#: builtins/declare.def:463
 msgid "cannot use `-f' to make functions"
 msgstr "Ní féidir '-f' a úsáid chun feidhmeanna a dhéanamh"
 
-#: builtins/declare.def:512 execute_cmd.c:5797
+#: builtins/declare.def:475 execute_cmd.c:5632
 #, c-format
 msgid "%s: readonly function"
 msgstr "%s: feidhm inléite amháin"
 
-#: builtins/declare.def:804
+#: builtins/declare.def:753
 #, c-format
 msgid "%s: quoted compound array assignment deprecated"
 msgstr "%s: cáintear sannadh na gcomheagar athfhriotail"
 
-#: builtins/declare.def:818
+#: builtins/declare.def:767
 #, c-format
 msgid "%s: cannot destroy array variables in this way"
 msgstr "%s: ní féidir athróga eagair a scrios mar seo."
 
-#: builtins/declare.def:825 builtins/read.def:784
+#: builtins/declare.def:774 builtins/read.def:751
 #, c-format
 msgid "%s: cannot convert associative to indexed array"
-msgstr ""
-"%s: ní féidir eagar comhthiomsaitheach a thiontú go heagar innéacsaithe"
+msgstr "%s: ní féidir eagar comhthiomsaitheach a thiontú go heagar innéacsaithe"
 
 #: builtins/enable.def:143 builtins/enable.def:151
 msgid "dynamic loading not available"
@@ -402,9 +393,7 @@ msgstr "Ní féidir %s a aimsiú sa réad comhroinnte %s: %s"
 #: builtins/enable.def:387
 #, c-format
 msgid "load function for %s returns failure (%d): not loaded"
-msgstr ""
-"theip ar an ngníomh luchtála le haghaidh %s (aiscuireadh %d): níor "
-"luchtáladh é"
+msgstr "theip ar an ngníomh luchtála le haghaidh %s (aiscuireadh %d): níor luchtáladh é"
 
 #: builtins/enable.def:512
 #, c-format
@@ -416,68 +405,68 @@ msgstr "%s: níl sé luchtaithe go dinimiciúil"
 msgid "%s: cannot delete: %s"
 msgstr "%s: ní féidir scrios: %s"
 
-#: builtins/evalfile.c:138 builtins/hash.def:184 execute_cmd.c:5629
+#: builtins/evalfile.c:144 builtins/hash.def:172 execute_cmd.c:5472
 #, c-format
 msgid "%s: is a directory"
 msgstr "%s: is comhadlann é"
 
-#: builtins/evalfile.c:144
+#: builtins/evalfile.c:150
 #, c-format
 msgid "%s: not a regular file"
 msgstr "%s: ní gnáthchomhad é"
 
-#: builtins/evalfile.c:153
+#: builtins/evalfile.c:159
 #, c-format
 msgid "%s: file is too large"
 msgstr "%s: tá an comhad ró-mhór"
 
-#: builtins/evalfile.c:188 builtins/evalfile.c:206 shell.c:1623
+#: builtins/evalfile.c:194 builtins/evalfile.c:212 shell.c:1578
 #, c-format
 msgid "%s: cannot execute binary file"
 msgstr "%s: ní féidir comhad dénártha a rith"
 
-#: builtins/exec.def:155 builtins/exec.def:157 builtins/exec.def:237
+#: builtins/exec.def:156 builtins/exec.def:158 builtins/exec.def:235
 #, c-format
 msgid "%s: cannot execute: %s"
 msgstr "%s: ní féidir rith: %s"
 
-#: builtins/exit.def:64
+#: builtins/exit.def:67
 #, c-format
 msgid "logout\n"
 msgstr "logout\n"
 
-#: builtins/exit.def:89
+#: builtins/exit.def:92
 msgid "not login shell: use `exit'"
 msgstr "Ní blaosc logála isteach é seo: úsáid 'exit'"
 
-#: builtins/exit.def:121
+#: builtins/exit.def:124
 #, c-format
 msgid "There are stopped jobs.\n"
 msgstr "Tá tascanna stoptha ann.\n"
 
-#: builtins/exit.def:123
+#: builtins/exit.def:126
 #, c-format
 msgid "There are running jobs.\n"
 msgstr "Tá tascanna ag rith.\n"
 
-#: builtins/fc.def:265
+#: builtins/fc.def:269
 msgid "no command found"
 msgstr "Níor aimsíodh ordú"
 
-#: builtins/fc.def:323 builtins/fc.def:372
+#: builtins/fc.def:327 builtins/fc.def:376
 msgid "history specification"
 msgstr "Sonrú staire"
 
-#: builtins/fc.def:393
+#: builtins/fc.def:397
 #, c-format
 msgid "%s: cannot open temp file: %s"
 msgstr "%s: ní féidir comhad sealadach a oscailt: %s"
 
-#: builtins/fg_bg.def:152 builtins/jobs.def:284
+#: builtins/fg_bg.def:153 builtins/jobs.def:284
 msgid "current"
 msgstr "reatha"
 
-#: builtins/fg_bg.def:161
+#: builtins/fg_bg.def:162
 #, c-format
 msgid "job %d started without job control"
 msgstr "Tosaíodh tasc %d gan rialú tascanna."
@@ -492,21 +481,22 @@ msgstr "%s: rogha neamhdhleathach -- %c\n"
 msgid "%s: option requires an argument -- %c\n"
 msgstr "%s: tá argóint riachtanach don rogha -- %c\n"
 
-#: builtins/hash.def:91
+#: builtins/hash.def:92
 msgid "hashing disabled"
 msgstr "Tá haiseáil díchumasaithe."
 
-#: builtins/hash.def:138
+#: builtins/hash.def:139
 #, c-format
 msgid "%s: hash table empty\n"
 msgstr "%s: tá an tábla haiseála folamh.\n"
 
-#: builtins/hash.def:266
+#: builtins/hash.def:254
 #, c-format
 msgid "hits\tcommand\n"
 msgstr "amais\tordú\n"
 
-#: builtins/help.def:133
+#: builtins/help.def:135
+#, c-format
 msgid "Shell commands matching keyword `"
 msgid_plural "Shell commands matching keywords `"
 msgstr[0] "Ordaithe blaoisce a mheaitseálann an lorgfhocal '"
@@ -515,20 +505,17 @@ msgstr[2] "Ordaithe blaoisce a mheaitseálann na lorgfhocail '"
 msgstr[3] "Ordaithe blaoisce a mheaitseálann na lorgfhocail '"
 msgstr[4] "Ordaithe blaoisce a mheaitseálann na lorgfhocail '"
 
-#: builtins/help.def:185
+#: builtins/help.def:187
 #, c-format
-msgid ""
-"no help topics match `%s'.  Try `help help' or `man -k %s' or `info %s'."
-msgstr ""
-"Ní mheaitseálann ábhar cabhrach ar bith '%s'. Bain triail as 'help help' nó "
-"'man -k %s' nó 'info %s'."
+msgid "no help topics match `%s'.  Try `help help' or `man -k %s' or `info %s'."
+msgstr "Ní mheaitseálann ábhar cabhrach ar bith '%s'. Bain triail as 'help help' nó 'man -k %s' nó 'info %s'."
 
-#: builtins/help.def:224
+#: builtins/help.def:226
 #, c-format
 msgid "%s: cannot open: %s"
 msgstr "%s: ní féidir oscailt: %s"
 
-#: builtins/help.def:524
+#: builtins/help.def:526
 #, c-format
 msgid ""
 "These shell commands are defined internally.  Type `help' to see this list.\n"
@@ -543,26 +530,24 @@ msgstr ""
 "Usáid 'help' leis an liosta seo a thaispeáint.\n"
 "Úsáid 'help ainm' chun tuilleadh eolais a fháil faoin bhfeidhm 'ainm'.\n"
 "Úsáid 'info bash' chun tuilleadh eolais a fháil faoin mblaosc féin.\n"
-"Úsáid 'man -k' nó 'info' chun tuilleadh eolais a fháil faoi ordaithe nach "
-"bhfuil sa liosta seo.\n"
+"Úsáid 'man -k' nó 'info' chun tuilleadh eolais a fháil faoi ordaithe nach bhfuil sa liosta seo.\n"
 "Ciallaíonn réalt (*) ar ainm go bhfuil an t-ordú díchumasaithe.\n"
 "\n"
 
-#: builtins/history.def:154
+#: builtins/history.def:155
 msgid "cannot use more than one of -anrw"
 msgstr "Ní féidir níos mó ná ceann amháin as -anrw a úsáid."
 
-#: builtins/history.def:187 builtins/history.def:197 builtins/history.def:212
-#: builtins/history.def:229 builtins/history.def:241 builtins/history.def:248
+#: builtins/history.def:187
 msgid "history position"
 msgstr "suíomh staire"
 
-#: builtins/history.def:331
+#: builtins/history.def:264
 #, c-format
 msgid "%s: invalid timestamp"
 msgstr "%s: stampa ama neamhbhailí"
 
-#: builtins/history.def:442
+#: builtins/history.def:375
 #, c-format
 msgid "%s: history expansion failed"
 msgstr "%s: theip ar fhairsingiú staire."
@@ -576,16 +561,16 @@ msgstr "%s: theip ar inlib"
 msgid "no other options allowed with `-x'"
 msgstr "Níl roghanna eile ceadaithe le '-x'"
 
-#: builtins/kill.def:200
+#: builtins/kill.def:202
 #, c-format
 msgid "%s: arguments must be process or job IDs"
 msgstr "%s: is gá le argóintí bheith ina aitheantais phróisis nó taisc"
 
-#: builtins/kill.def:263
+#: builtins/kill.def:265
 msgid "Unknown error"
 msgstr "Earráid neamhaithnid"
 
-#: builtins/let.def:97 builtins/let.def:122 expr.c:614 expr.c:632
+#: builtins/let.def:97 builtins/let.def:122 expr.c:583 expr.c:598
 msgid "expression expected"
 msgstr "Ag súil le slonn"
 
@@ -594,69 +579,69 @@ msgstr "Ag súil le slonn"
 msgid "%s: not an indexed array"
 msgstr "%s: ní eagar innéacsaithe é"
 
-#: builtins/mapfile.def:271 builtins/read.def:305
+#: builtins/mapfile.def:272 builtins/read.def:306
 #, c-format
 msgid "%s: invalid file descriptor specification"
 msgstr "%s: sonrú neamhbhailí tuairisceora comhaid"
 
-#: builtins/mapfile.def:279 builtins/read.def:312
+#: builtins/mapfile.def:280 builtins/read.def:313
 #, c-format
 msgid "%d: invalid file descriptor: %s"
 msgstr "%d: tuairisceoir comhaid neamhbhailí: %s"
 
-#: builtins/mapfile.def:288 builtins/mapfile.def:326
+#: builtins/mapfile.def:289 builtins/mapfile.def:327
 #, c-format
 msgid "%s: invalid line count"
 msgstr "%s: comhaireamh neamhbhailí línte"
 
-#: builtins/mapfile.def:299
+#: builtins/mapfile.def:300
 #, c-format
 msgid "%s: invalid array origin"
 msgstr "%s: bunphointe neamhbhailí eagair"
 
-#: builtins/mapfile.def:316
+#: builtins/mapfile.def:317
 #, c-format
 msgid "%s: invalid callback quantum"
 msgstr "%s: candam neamhbhailí aisghlaoigh"
 
-#: builtins/mapfile.def:349
+#: builtins/mapfile.def:350
 msgid "empty array variable name"
 msgstr "ainm folamh athróga eagair"
 
-#: builtins/mapfile.def:370
+#: builtins/mapfile.def:371
 msgid "array variable support required"
 msgstr "tacaíocht le hathróga eagair de dhíth"
 
-#: builtins/printf.def:416
+#: builtins/printf.def:412
 #, c-format
 msgid "`%s': missing format character"
 msgstr "'%s': carachtar formáide ar iarraidh."
 
-#: builtins/printf.def:471
+#: builtins/printf.def:467
 #, c-format
 msgid "`%c': invalid time format specification"
 msgstr "'%c': sonrú neamhbhailí formáide ama"
 
-#: builtins/printf.def:673
+#: builtins/printf.def:669
 #, c-format
 msgid "`%c': invalid format character"
 msgstr "'%c': carachtar formáide neamhbhailí."
 
-#: builtins/printf.def:699
+#: builtins/printf.def:695
 #, c-format
 msgid "warning: %s: %s"
 msgstr "rabhadh: %s: %s"
 
-#: builtins/printf.def:785
+#: builtins/printf.def:781
 #, c-format
 msgid "format parsing problem: %s"
 msgstr "fadhb i bpársáil formáide: %s"
 
-#: builtins/printf.def:882
+#: builtins/printf.def:878
 msgid "missing hex digit for \\x"
 msgstr "digit heicsidheachúlach ar iarraidh le haghaidh \\x"
 
-#: builtins/printf.def:897
+#: builtins/printf.def:893
 #, c-format
 msgid "missing unicode digit for \\%c"
 msgstr "digit Unicode ar iarraidh le haghaidh \\%c"
@@ -670,19 +655,19 @@ msgstr "Níl comhadlann eile ann"
 msgid "%s: invalid argument"
 msgstr "%s: argóint neamhbhailí"
 
-#: builtins/pushd.def:480
+#: builtins/pushd.def:475
 msgid "<no current directory>"
 msgstr "<níl comhadlann reatha ann>"
 
-#: builtins/pushd.def:524
+#: builtins/pushd.def:519
 msgid "directory stack empty"
 msgstr "cruach chomhadlainne fholamh"
 
-#: builtins/pushd.def:526
+#: builtins/pushd.def:521
 msgid "directory stack index"
 msgstr "innéacs chruach na gcomhadlann"
 
-#: builtins/pushd.def:701
+#: builtins/pushd.def:696
 msgid ""
 "Display the list of currently remembered directories.  Directories\n"
 "    find their way onto the list with the `pushd' command; you can get\n"
@@ -697,12 +682,10 @@ msgid ""
 "    \twith its position in the stack\n"
 "    \n"
 "    Arguments:\n"
-"      +N\tDisplays the Nth entry counting from the left of the list shown "
-"by\n"
+"      +N\tDisplays the Nth entry counting from the left of the list shown by\n"
 "    \tdirs when invoked without options, starting with zero.\n"
 "    \n"
-"      -N\tDisplays the Nth entry counting from the right of the list shown "
-"by\n"
+"      -N\tDisplays the Nth entry counting from the right of the list shown by\n"
 "\tdirs when invoked without options, starting with zero."
 msgstr ""
 "Taispeáin liosta na gcomhadlann a bhfuil cuimhne orthu faoi láthair.\n"
@@ -711,22 +694,18 @@ msgstr ""
 "    \n"
 "    Roghanna:\n"
 "      -c\tglantar cruach na gcomhadlann trí gach mhír a bhaint de\n"
-"      -l\tná priontáiltear na comhadlanna i gcoibhneas le do chomhadlann "
-"bhaile\n"
+"      -l\tná priontáiltear na comhadlanna i gcoibhneas le do chomhadlann bhaile\n"
 "      \tagus le tilde rompu\n"
 "      -p\tpriontáiltear cruach na gcomhadlann, mír amháin ar gach líne\n"
 "      -v\tpriontáiltear cruach na gcomhadlann, mír amháin ar gach líne agus\n"
 "      \ta háit sa chruach roimpi\n"
 "    \n"
 "    Argóintí:\n"
-"      +N\tTaispeántar mír N, agus uimhrithe curtha ar na míreanna ó thaobh "
-"clé\n"
-"      \tan liosta a thaispeántar le 'dirs' rite gan argóintí, ag tosú ó "
-"náid.      -N\tTaispeántar mír N, agus uimhrithe curtha ar na míreanna ó "
-"thaobh deas\n"
+"      +N\tTaispeántar mír N, agus uimhrithe curtha ar na míreanna ó thaobh clé\n"
+"      \tan liosta a thaispeántar le 'dirs' rite gan argóintí, ag tosú ó náid.      -N\tTaispeántar mír N, agus uimhrithe curtha ar na míreanna ó thaobh deas\n"
 "      \tan liosta a thaispeántar le 'dirs' rite gan argóintí, ag tosú ó náid."
 
-#: builtins/pushd.def:723
+#: builtins/pushd.def:718
 msgid ""
 "Adds a directory to the top of the directory stack, or rotates\n"
 "    the stack, making the new top of the stack the current working\n"
@@ -751,7 +730,7 @@ msgid ""
 "    The `dirs' builtin displays the directory stack."
 msgstr ""
 
-#: builtins/pushd.def:748
+#: builtins/pushd.def:743
 msgid ""
 "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"
@@ -772,46 +751,45 @@ msgid ""
 "    The `dirs' builtin displays the directory stack."
 msgstr ""
 
-#: builtins/read.def:277
+#: builtins/read.def:279
 #, c-format
 msgid "%s: invalid timeout specification"
 msgstr "%s: sonrú neamhbhailí teorann ama"
 
-#: builtins/read.def:729
+#: builtins/read.def:696
 #, c-format
 msgid "read error: %d: %s"
 msgstr "earráid léite: %d: %s"
 
-#: builtins/return.def:68
+#: builtins/return.def:71
 msgid "can only `return' from a function or sourced script"
-msgstr ""
-"ní féidir 'return' a dhéanamh ach ó fheidhm nó ó script rite le 'source'"
+msgstr "ní féidir 'return' a dhéanamh ach ó fheidhm nó ó script rite le 'source'"
 
-#: builtins/set.def:834
+#: builtins/set.def:841
 msgid "cannot simultaneously unset a function and a variable"
 msgstr "Ní féidir feidhm agus athróg a dhíshocrú ag an am céanna."
 
-#: builtins/set.def:881
+#: builtins/set.def:888
 #, c-format
 msgid "%s: cannot unset"
 msgstr "%s: ní féidir díshocrú"
 
-#: builtins/set.def:902 variables.c:3597
+#: builtins/set.def:909 variables.c:3389
 #, c-format
 msgid "%s: cannot unset: readonly %s"
 msgstr "%s: ní féidir díshocrú: %s inléite amháin"
 
-#: builtins/set.def:915
+#: builtins/set.def:922
 #, c-format
 msgid "%s: not an array variable"
 msgstr "%s: ní athróg eagair é"
 
-#: builtins/setattr.def:189
+#: builtins/setattr.def:191
 #, c-format
 msgid "%s: not a function"
 msgstr "%s: ní feidhm é."
 
-#: builtins/setattr.def:194
+#: builtins/setattr.def:196
 #, c-format
 msgid "%s: cannot export"
 msgstr "%s: ní féidir easpórtáil"
@@ -820,20 +798,20 @@ msgstr "%s: ní féidir easpórtáil"
 msgid "shift count"
 msgstr "comhaireamh iomlaoide"
 
-#: builtins/shopt.def:301
+#: builtins/shopt.def:289
 msgid "cannot set and unset shell options simultaneously"
 msgstr "Ní féidir roghanna blaoisce a shocrú agus a dhíshocrú ag an am céanna."
 
-#: builtins/shopt.def:403
+#: builtins/shopt.def:391
 #, c-format
 msgid "%s: invalid shell option name"
 msgstr "%s: ainm neamhbhailí ar rogha blaoisce"
 
-#: builtins/source.def:128
+#: builtins/source.def:131
 msgid "filename argument required"
 msgstr "Is gá don argóint bheith ina ainm comhaid."
 
-#: builtins/source.def:154
+#: builtins/source.def:157
 #, c-format
 msgid "%s: file not found"
 msgstr "%s: níor aimsíodh an comhad"
@@ -846,61 +824,61 @@ msgstr "Ní féidir cur ar fionraí."
 msgid "cannot suspend a login shell"
 msgstr "Ní féidir blaosc logála isteach a chur ar fionraí."
 
-#: builtins/type.def:235
+#: builtins/type.def:236
 #, c-format
 msgid "%s is aliased to `%s'\n"
 msgstr "Tá %s ailiasáilte go '%s'.\n"
 
-#: builtins/type.def:256
+#: builtins/type.def:257
 #, c-format
 msgid "%s is a shell keyword\n"
 msgstr "Is eochairfhocal blaoisce é %s.\n"
 
-#: builtins/type.def:275
+#: builtins/type.def:276
 #, c-format
 msgid "%s is a function\n"
 msgstr "Is feidhm é %s.\n"
 
-#: builtins/type.def:299
+#: builtins/type.def:300
 #, c-format
 msgid "%s is a special shell builtin\n"
 msgstr "Is ordú ionsuite blaoisce speisialta é %s\n"
 
-#: builtins/type.def:301
+#: builtins/type.def:302
 #, c-format
 msgid "%s is a shell builtin\n"
 msgstr "Is ordú ionsuite blaoisce é %s\n"
 
-#: builtins/type.def:323 builtins/type.def:408
+#: builtins/type.def:324 builtins/type.def:409
 #, c-format
 msgid "%s is %s\n"
 msgstr "Tá %s %s\n"
 
-#: builtins/type.def:343
+#: builtins/type.def:344
 #, c-format
 msgid "%s is hashed (%s)\n"
 msgstr "Tá %s haiseáilte (%s)\n"
 
-#: builtins/ulimit.def:396
+#: builtins/ulimit.def:398
 #, c-format
 msgid "%s: invalid limit argument"
 msgstr "%s: argóint teorann neamhbhailí"
 
-#: builtins/ulimit.def:422
+#: builtins/ulimit.def:424
 #, c-format
 msgid "`%c': bad command"
 msgstr "'%c': droch-ordú"
 
-#: builtins/ulimit.def:451
+#: builtins/ulimit.def:453
 #, c-format
 msgid "%s: cannot get limit: %s"
 msgstr "%s: ní féidir teorainn a fháil: %s"
 
-#: builtins/ulimit.def:477
+#: builtins/ulimit.def:479
 msgid "limit"
 msgstr "teorainn"
 
-#: builtins/ulimit.def:489 builtins/ulimit.def:789
+#: builtins/ulimit.def:491 builtins/ulimit.def:791
 #, c-format
 msgid "%s: cannot modify limit: %s"
 msgstr "%s: ní féidir teorainn a athrú: %s"
@@ -919,374 +897,357 @@ msgstr "'%c': oibreoir neamhbhailí móid shiombalaigh"
 msgid "`%c': invalid symbolic mode character"
 msgstr "'%c': carachtar neamhbhailí móid shiombalaigh"
 
-#: error.c:89 error.c:347 error.c:349 error.c:351
+#: error.c:90 error.c:348 error.c:350 error.c:352
 msgid " line "
 msgstr " líne "
 
-#: error.c:164
+#: error.c:165
 #, c-format
 msgid "last command: %s\n"
 msgstr "Ordú deireanach: %s\n"
 
-#: error.c:172
+#: error.c:173
 #, c-format
 msgid "Aborting..."
 msgstr "Ag tobscor..."
 
 #. TRANSLATORS: this is a prefix for informational messages.
-#: error.c:287
+#: error.c:288
 #, c-format
 msgid "INFORM: "
 msgstr "EOLAS: "
 
-#: error.c:462
+#: error.c:463
 msgid "unknown command error"
 msgstr "earráid ordaithe neamhaithnid"
 
-#: error.c:463
+#: error.c:464
 msgid "bad command type"
 msgstr "droch-chineál ordaithe"
 
-#: error.c:464
+#: error.c:465
 msgid "bad connector"
 msgstr "drochnascóir"
 
-#: error.c:465
+#: error.c:466
 msgid "bad jump"
 msgstr "drochléim"
 
-#: error.c:503
+#: error.c:504
 #, c-format
 msgid "%s: unbound variable"
 msgstr "%s: athróg neamhcheangailte"
 
-#: eval.c:242
+#: eval.c:209
 #, c-format
 msgid "\atimed out waiting for input: auto-logout\n"
 msgstr "\aimithe thar am ag feitheamh le hionchur: logáil amach uathoibríoch\n"
 
-#: execute_cmd.c:536
+#: execute_cmd.c:527
 #, c-format
 msgid "cannot redirect standard input from /dev/null: %s"
 msgstr "Ní féidir an ionchur caighdeánach a atreorú ó /dev/null: %s"
 
-#: execute_cmd.c:1294
+#: execute_cmd.c:1275
 #, c-format
 msgid "TIMEFORMAT: `%c': invalid format character"
 msgstr "FORMÁID_AMA: '%c': carachtar formáide neamhbhaií."
 
-#: execute_cmd.c:2330
+#: execute_cmd.c:2273
 #, c-format
 msgid "execute_coproc: coproc [%d:%s] still exists"
 msgstr "execute_coproc: tá an comhphróiseas [%d:%s] fós ann"
 
-#: execute_cmd.c:2456
+#: execute_cmd.c:2377
 msgid "pipe error"
 msgstr "earráid phíopa"
 
-#: execute_cmd.c:4624
+#: execute_cmd.c:4496
 #, c-format
 msgid "eval: maximum eval nesting level exceeded (%d)"
 msgstr "eval: imithe thar uasleibhéal neadaithe eval (%d)"
 
-#: execute_cmd.c:4636
+#: execute_cmd.c:4508
 #, c-format
 msgid "%s: maximum source nesting level exceeded (%d)"
 msgstr "%s: imithe thar uasleibhéal neadaithe foinse (%d)"
 
-#: execute_cmd.c:4742
+#: execute_cmd.c:4616
 #, c-format
 msgid "%s: maximum function nesting level exceeded (%d)"
 msgstr "%s: imithe thar uasleibhéal neadaithe feidhme (%d)"
 
-#: execute_cmd.c:5285
+#: execute_cmd.c:5144
 #, c-format
 msgid "%s: restricted: cannot specify `/' in command names"
 msgstr "%s: srianta: ní féidir '/' a shonrú in ainmneacha ordaithe"
 
-#: execute_cmd.c:5383
+#: execute_cmd.c:5232
 #, c-format
 msgid "%s: command not found"
 msgstr "%s: níor aimsíodh an t-ordú"
 
-#: execute_cmd.c:5627
+#: execute_cmd.c:5470
 #, c-format
 msgid "%s: %s"
 msgstr "%s: %s"
 
-#: execute_cmd.c:5665
+#: execute_cmd.c:5508
 #, c-format
 msgid "%s: %s: bad interpreter"
 msgstr "%s: %s: drochléirmhínitheoir"
 
-#: execute_cmd.c:5702
+#: execute_cmd.c:5545
 #, c-format
 msgid "%s: cannot execute binary file: %s"
 msgstr "%s: ní féidir comhad dénártha a rith: %s"
 
-#: execute_cmd.c:5788
+#: execute_cmd.c:5623
 #, c-format
 msgid "`%s': is a special builtin"
 msgstr "Is ordú ionsuite speisialta é '%s'"
 
-#: execute_cmd.c:5840
+#: execute_cmd.c:5675
 #, c-format
 msgid "cannot duplicate fd %d to fd %d"
-msgstr ""
-"Ní féidir an tuairisceoir comhaid %d a dhúbailt mar thuairisceoir comhaid %d."
+msgstr "Ní féidir an tuairisceoir comhaid %d a dhúbailt mar thuairisceoir comhaid %d."
 
-#: expr.c:263
+#: expr.c:259
 msgid "expression recursion level exceeded"
 msgstr "imithe thar leibhéal athchursála sloinn"
 
-#: expr.c:291
+#: expr.c:283
 msgid "recursion stack underflow"
 msgstr "gannsreabhadh na cruaiche athchúrsála"
 
-#: expr.c:453
+#: expr.c:431
 msgid "syntax error in expression"
 msgstr "Earráid chomhréire sa slonn."
 
-#: expr.c:497
+#: expr.c:475
 msgid "attempted assignment to non-variable"
 msgstr "Deineadh iarracht sannadh go rud nach athróg é."
 
-#: expr.c:506
-#, fuzzy
-msgid "syntax error in variable assignment"
-msgstr "Earráid chomhréire sa slonn."
-
-#: expr.c:520 expr.c:886
+#: expr.c:495 expr.c:858
 msgid "division by 0"
 msgstr "roinnt ar 0"
 
-#: expr.c:567
+#: expr.c:542
 msgid "bug: bad expassign token"
 msgstr "fabht: droch-chomhartha expassign"
 
-#: expr.c:621
+#: expr.c:595
 msgid "`:' expected for conditional expression"
 msgstr "Bhíothas ag súil le ':' le haghaidh sloinn choinníollaigh."
 
-#: expr.c:947
+#: expr.c:919
 msgid "exponent less than 0"
 msgstr "Easpónant níos lú ná 0."
 
-#: expr.c:1004
+#: expr.c:976
 msgid "identifier expected after pre-increment or pre-decrement"
 msgstr "ag súil le aitheantóir tar éis réamhincriminte nó réamhdeicriminte"
 
-#: expr.c:1030
+#: expr.c:1002
 msgid "missing `)'"
 msgstr "')' ar iarraidh"
 
-#: expr.c:1081 expr.c:1458
+#: expr.c:1053 expr.c:1393
 msgid "syntax error: operand expected"
 msgstr "Earráid chomhréire: bhíothas ag súil le hoibreann."
 
-#: expr.c:1460
+#: expr.c:1395
 msgid "syntax error: invalid arithmetic operator"
 msgstr "earráid chomhréire: oibreoir neamhbhailí uimhríochta"
 
-#: expr.c:1484
+#: expr.c:1419
 #, c-format
 msgid "%s%s%s: %s (error token is \"%s\")"
 msgstr "%s%s%s: %s (comhartha earráide '%s')"
 
-#: expr.c:1542
+#: expr.c:1477
 msgid "invalid arithmetic base"
 msgstr "Bonnuimhir uimhríochtúil neamhbhailí."
 
-#: expr.c:1562
+#: expr.c:1497
 msgid "value too great for base"
 msgstr "Tá an luach rómhór don bhonnuimhir."
 
-#: expr.c:1611
+#: expr.c:1546
 #, c-format
 msgid "%s: expression error\n"
 msgstr "%s: earráid sloinn\n"
 
-#: general.c:69
+#: general.c:68
 msgid "getcwd: cannot access parent directories"
 msgstr "getcwd: ní féidir na máthairchomhadlanna a rochtain."
 
-#: input.c:99 subst.c:5858
+#: input.c:102 subst.c:5858
 #, c-format
 msgid "cannot reset nodelay mode for fd %d"
-msgstr ""
-"ní féidir an mód gan mhoill a athshocrú le haghaidh an tuairisceora chomhaid "
-"%d"
+msgstr "ní féidir an mód gan mhoill a athshocrú le haghaidh an tuairisceora chomhaid %d"
 
-#: input.c:266
+#: input.c:271
 #, c-format
 msgid "cannot allocate new file descriptor for bash input from fd %d"
-msgstr ""
-"Ní féidir tuairisceoir comhaid nua a leithdháileadh le haghaidh ionchur bash "
-"ón tuairisceoir comhaid %d."
+msgstr "Ní féidir tuairisceoir comhaid nua a leithdháileadh le haghaidh ionchur bash ón tuairisceoir comhaid %d."
 
-#: input.c:274
+#: input.c:279
 #, c-format
 msgid "save_bash_input: buffer already exists for new fd %d"
-msgstr ""
-"save_bash_input: tá an maolán ann cheana le haghaidh an tuairisceoir comhaid "
-"nua %d"
+msgstr "save_bash_input: tá an maolán ann cheana le haghaidh an tuairisceoir comhaid nua %d"
 
 #: jobs.c:527
 msgid "start_pipeline: pgrp pipe"
 msgstr "start_pipeline: pgrp píopa"
 
-#: jobs.c:1080
+#: jobs.c:1035
 #, c-format
 msgid "forked pid %d appears in running job %d"
 msgstr "Tá aitheantas an phróisis ghabhlaithe %d sa tasc %d atá ag rith"
 
-#: jobs.c:1199
+#: jobs.c:1154
 #, c-format
 msgid "deleting stopped job %d with process group %ld"
 msgstr "Tá an tasc stoptha %d leis an ngrúpa próisis %ld á scrios."
 
-#: jobs.c:1303
+#: jobs.c:1258
 #, c-format
 msgid "add_process: process %5ld (%s) in the_pipeline"
 msgstr "add_process: próiseas %5ld (%s) sa phíblíne"
 
-#: jobs.c:1306
+#: jobs.c:1261
 #, c-format
 msgid "add_process: pid %5ld (%s) marked as still alive"
 msgstr "add_process: próiseas %5ld (%s) marcáilte mar fós beo"
 
-#: jobs.c:1635
+#: jobs.c:1590
 #, c-format
 msgid "describe_pid: %ld: no such pid"
 msgstr "describe_pid: %ld: níl an aitheantóir próisis sin ann."
 
-#: jobs.c:1650
+#: jobs.c:1605
 #, c-format
 msgid "Signal %d"
 msgstr "Comhartha %d"
 
-#: jobs.c:1664 jobs.c:1690
+#: jobs.c:1619 jobs.c:1645
 msgid "Done"
 msgstr "Déanta"
 
-#: jobs.c:1669 siglist.c:123
+#: jobs.c:1624 siglist.c:123
 msgid "Stopped"
 msgstr "Stoptha"
 
-#: jobs.c:1673
+#: jobs.c:1628
 #, c-format
 msgid "Stopped(%s)"
 msgstr "Stoptha(%s)"
 
-#: jobs.c:1677
+#: jobs.c:1632
 msgid "Running"
 msgstr "Ag Rith"
 
-#: jobs.c:1694
+#: jobs.c:1649
 #, c-format
 msgid "Done(%d)"
 msgstr "Déanta(%d)"
 
-#: jobs.c:1696
+#: jobs.c:1651
 #, c-format
 msgid "Exit %d"
 msgstr "Scoir %d"
 
-#: jobs.c:1699
+#: jobs.c:1654
 msgid "Unknown status"
 msgstr "Stádas neamhaithnid"
 
-#: jobs.c:1786
+#: jobs.c:1741
 #, c-format
 msgid "(core dumped) "
 msgstr "(cuimhne dumpáilte)"
 
-#: jobs.c:1805
+#: jobs.c:1760
 #, c-format
 msgid "  (wd: %s)"
 msgstr "  (comhadlann oibre: %s)"
 
-#: jobs.c:2033
+#: jobs.c:1985
 #, c-format
 msgid "child setpgid (%ld to %ld)"
 msgstr "setpgid macphróisis (%ld go %ld)"
 
-#: jobs.c:2395 nojobs.c:657
+#: jobs.c:2347 nojobs.c:654
 #, c-format
 msgid "wait: pid %ld is not a child of this shell"
 msgstr "wait: níl an próiseas %ld ina mhacphróiseas den bhlaosc seo."
 
-#: jobs.c:2687
+#: jobs.c:2602
 #, c-format
 msgid "wait_for: No record of process %ld"
 msgstr "wait_for: níl taifead den phróiseas %ld"
 
-#: jobs.c:3048
+#: jobs.c:2929
 #, c-format
 msgid "wait_for_job: job %d is stopped"
 msgstr "wait_for_job: tá an tasc %d stoptha."
 
-#: jobs.c:3355
+#: jobs.c:3221
 #, c-format
 msgid "%s: job has terminated"
 msgstr "%s: tá an tasc críochnaithe."
 
-#: jobs.c:3364
+#: jobs.c:3230
 #, c-format
 msgid "%s: job %d already in background"
 msgstr "%s: tá an tasc %d sa chúlra cheana."
 
-#: jobs.c:3590
+#: jobs.c:3455
 msgid "waitchld: turning on WNOHANG to avoid indefinite block"
 msgstr "waitchld: ag cumasú WNOHANG chun stad éiginnte a sheachaint"
 
-#: jobs.c:4114
+#: jobs.c:3970
 #, c-format
 msgid "%s: line %d: "
 msgstr "%s: líne %d: "
 
-#: jobs.c:4128 nojobs.c:900
+#: jobs.c:3984 nojobs.c:897
 #, c-format
 msgid " (core dumped)"
 msgstr " (cuimhne dumpáilte)"
 
-#: jobs.c:4140 jobs.c:4153
+#: jobs.c:3996 jobs.c:4009
 #, c-format
 msgid "(wd now: %s)\n"
 msgstr "(comhadlann oibre anois: %s)\n"
 
-#: jobs.c:4185
+#: jobs.c:4041
 msgid "initialize_job_control: getpgrp failed"
 msgstr "initialize_job_control: theip ar getpgrp"
 
-#: jobs.c:4241
-#, fuzzy
-msgid "initialize_job_control: no job control in background"
-msgstr "initialize_job_control: araíonacht líne"
-
-#: jobs.c:4257
+#: jobs.c:4104
 msgid "initialize_job_control: line discipline"
 msgstr "initialize_job_control: araíonacht líne"
 
-#: jobs.c:4267
+#: jobs.c:4114
 msgid "initialize_job_control: setpgid"
 msgstr "initialize_job_control: setpgid"
 
-#: jobs.c:4288 jobs.c:4297
+#: jobs.c:4135 jobs.c:4144
 #, c-format
 msgid "cannot set terminal process group (%d)"
 msgstr "ní féidir an grúpa próisis teirminéil a athrú (%d)"
 
-#: jobs.c:4302
+#: jobs.c:4149
 msgid "no job control in this shell"
 msgstr "Níl rialú tascanna sa bhlaosc seo."
 
-#: lib/malloc/malloc.c:306
+#: lib/malloc/malloc.c:296
 #, c-format
 msgid "malloc: failed assertion: %s\n"
 msgstr "malloc: dearbhú teipthe: %s\n"
 
-#: lib/malloc/malloc.c:322
+#: lib/malloc/malloc.c:312
 #, c-format
 msgid ""
 "\r\n"
@@ -1295,39 +1256,39 @@ msgstr ""
 "\r\n"
 "malloc: %s:%d: dearbhú ina phraiseach\r\n"
 
-#: lib/malloc/malloc.c:323
+#: lib/malloc/malloc.c:313
 msgid "unknown"
 msgstr "neamhaithnid"
 
-#: lib/malloc/malloc.c:811
+#: lib/malloc/malloc.c:801
 msgid "malloc: block on free list clobbered"
 msgstr "malloc: bloc ar an liosta saor scriosta"
 
-#: lib/malloc/malloc.c:888
+#: lib/malloc/malloc.c:878
 msgid "free: called with already freed block argument"
 msgstr "free: glaoite le argóint bhloic á saoradh cheana"
 
-#: lib/malloc/malloc.c:891
+#: lib/malloc/malloc.c:881
 msgid "free: called with unallocated block argument"
 msgstr "free: glaoite le argóint bhloic nár leithdháileadh"
 
-#: lib/malloc/malloc.c:910
+#: lib/malloc/malloc.c:900
 msgid "free: underflow detected; mh_nbytes out of range"
 msgstr "free: gannsreabhadh; tá mh_nbytes as raon"
 
-#: lib/malloc/malloc.c:916
+#: lib/malloc/malloc.c:906
 msgid "free: start and end chunk sizes differ"
 msgstr "free: ní ionann méid na smután túis agus deiridh"
 
-#: lib/malloc/malloc.c:1015
+#: lib/malloc/malloc.c:1005
 msgid "realloc: called with unallocated block argument"
 msgstr "realloc: glaoite le argóint bhloic nár leithdháileadh"
 
-#: lib/malloc/malloc.c:1030
+#: lib/malloc/malloc.c:1020
 msgid "realloc: underflow detected; mh_nbytes out of range"
 msgstr "realloc: gannsreabhadh; tá mh_nbytes as raon"
 
-#: lib/malloc/malloc.c:1036
+#: lib/malloc/malloc.c:1026
 msgid "realloc: start and end chunk sizes differ"
 msgstr "realloc: ní ionann méideanna na smután túis agus deiridh"
 
@@ -1339,8 +1300,7 @@ msgstr "register_alloc: an bhfuil an tábla leithdháilte lán le FIND_ALLOC?\n"
 #: lib/malloc/table.c:200
 #, c-format
 msgid "register_alloc: %p already in table as allocated?\n"
-msgstr ""
-"register_alloc: an bhfuil %p sa tábla mar atá sé leithdháilte cheana?\n"
+msgstr "register_alloc: an bhfuil %p sa tábla mar atá sé leithdháilte cheana?\n"
 
 #: lib/malloc/table.c:253
 #, c-format
@@ -1370,22 +1330,22 @@ msgstr "%s: drochshonrú conaire líonra"
 msgid "network operations not supported"
 msgstr "Ní thacaítear le oibríochtaí líonra."
 
-#: locale.c:205
+#: locale.c:200
 #, c-format
 msgid "setlocale: LC_ALL: cannot change locale (%s)"
 msgstr "setlocale: LC_ALL: ní féidir an logchaighdeán a athrú (%s)"
 
-#: locale.c:207
+#: locale.c:202
 #, c-format
 msgid "setlocale: LC_ALL: cannot change locale (%s): %s"
 msgstr "setlocale: LC_ALL: ní féidir an logchaighdeán a athrú (%s): %s"
 
-#: locale.c:272
+#: locale.c:259
 #, c-format
 msgid "setlocale: %s: cannot change locale (%s)"
 msgstr "setlocale: %s: ní féidir an logchaighdeán a athrú (%s)"
 
-#: locale.c:274
+#: locale.c:261
 #, c-format
 msgid "setlocale: %s: cannot change locale (%s): %s"
 msgstr "setlocale: %s: ní féidir an logchaighdeán a athrú (%s): %s"
@@ -1403,152 +1363,145 @@ msgstr "Tá ríomhphost nua agat i $_"
 msgid "The mail in %s has been read\n"
 msgstr "Tá an ríomhphost i %s léite\n"
 
-#: make_cmd.c:317
+#: make_cmd.c:329
 msgid "syntax error: arithmetic expression required"
 msgstr "Earráid chomhréire: tá slonn uimhríochtúil de dhith."
 
-#: make_cmd.c:319
+#: make_cmd.c:331
 msgid "syntax error: `;' unexpected"
 msgstr "Earráid chomhréire: ';' gan súil leis."
 
-#: make_cmd.c:320
+#: make_cmd.c:332
 #, c-format
 msgid "syntax error: `((%s))'"
 msgstr "Earráid chomhréire: '((%s))'"
 
-#: make_cmd.c:572
+#: make_cmd.c:584
 #, c-format
 msgid "make_here_document: bad instruction type %d"
 msgstr "make_here_document: drochchineál ordaithe %d"
 
-#: make_cmd.c:657
+#: make_cmd.c:669
 #, c-format
 msgid "here-document at line %d delimited by end-of-file (wanted `%s')"
-msgstr ""
-"cáipéis leabaithe ag líne %d teormharcáilte le deireadh comhaid ('%s' á lorg)"
+msgstr "cáipéis leabaithe ag líne %d teormharcáilte le deireadh comhaid ('%s' á lorg)"
 
-#: make_cmd.c:756
+#: make_cmd.c:768
 #, c-format
 msgid "make_redirection: redirection instruction `%d' out of range"
 msgstr "make_redirection: ordú atreoraithe '%d' as raon."
 
-#: parse.y:2369
+#: parse.y:2324
 #, c-format
-msgid ""
-"shell_getc: shell_input_line_size (%zu) exceeds SIZE_MAX (%lu): line "
-"truncated"
-msgstr ""
-"shell_getc: tá méid an líne ionchuir blaoisce (%zu) níos mó ná SIZE_MAX (%"
-"lu): líne giorraithe"
+msgid "shell_getc: shell_input_line_size (%zu) exceeds SIZE_MAX (%lu): line truncated"
+msgstr "shell_getc: tá méid an líne ionchuir blaoisce (%zu) níos mó ná SIZE_MAX (%lu): líne giorraithe"
 
-#: parse.y:2772
+#: parse.y:2700
 msgid "maximum here-document count exceeded"
 msgstr "imithe thar uasfhad na cáipéise-anseo"
 
-#: parse.y:3511 parse.y:3881
+#: parse.y:3390 parse.y:3748
 #, c-format
 msgid "unexpected EOF while looking for matching `%c'"
 msgstr "Deireadh comhaid gan súil leis agus '%c' a mheaitseálann á lorg."
 
-#: parse.y:4581
+#: parse.y:4410
 msgid "unexpected EOF while looking for `]]'"
 msgstr "Deireadh comhaid gan súil leis agus ']]' á lorg."
 
-#: parse.y:4586
+#: parse.y:4415
 #, c-format
 msgid "syntax error in conditional expression: unexpected token `%s'"
 msgstr "Earráid chomhréire i slonn coinníollach: comhartha '%s' gan suil leis."
 
-#: parse.y:4590
+#: parse.y:4419
 msgid "syntax error in conditional expression"
 msgstr "Earráid chomhréire i slonn coinníollach."
 
-#: parse.y:4668
+#: parse.y:4497
 #, c-format
 msgid "unexpected token `%s', expected `)'"
 msgstr "Comhartha '%s' gan súil leis; ag súil le ')'."
 
-#: parse.y:4672
+#: parse.y:4501
 msgid "expected `)'"
 msgstr "Ag súil le ')'"
 
-#: parse.y:4700
+#: parse.y:4529
 #, c-format
 msgid "unexpected argument `%s' to conditional unary operator"
 msgstr "Argóint '%s' gan súil lei go hoibreoir aonártha coinníollach."
 
-#: parse.y:4704
+#: parse.y:4533
 msgid "unexpected argument to conditional unary operator"
 msgstr "Argóint gan súil lei go hoibreoir coinníollach aonártha ."
 
-#: parse.y:4750
+#: parse.y:4579
 #, c-format
 msgid "unexpected token `%s', conditional binary operator expected"
-msgstr ""
-"Comhartha '%s' gan súil leis. Bhíothas ag súil le hoibreoir coinníollach "
-"dénártha."
+msgstr "Comhartha '%s' gan súil leis. Bhíothas ag súil le hoibreoir coinníollach dénártha."
 
-#: parse.y:4754
+#: parse.y:4583
 msgid "conditional binary operator expected"
 msgstr "Bhíothas ag súil le hoibreoir coinníollach dénártha."
 
-#: parse.y:4776
+#: parse.y:4605
 #, c-format
 msgid "unexpected argument `%s' to conditional binary operator"
 msgstr "Argóint '%s' gan súil lei go hoibreoir dénártha coinníollach."
 
-#: parse.y:4780
+#: parse.y:4609
 msgid "unexpected argument to conditional binary operator"
 msgstr "Argóint gan súil lei go hoibreoir dénártha coinníollach."
 
-#: parse.y:4791
+#: parse.y:4620
 #, c-format
 msgid "unexpected token `%c' in conditional command"
 msgstr "Comhartha '%c' gan súil leis in ordú coinníollach."
 
-#: parse.y:4794
+#: parse.y:4623
 #, c-format
 msgid "unexpected token `%s' in conditional command"
 msgstr "Comhartha '%s' gan súil leis in ordú coinníollach."
 
-#: parse.y:4798
+#: parse.y:4627
 #, c-format
 msgid "unexpected token %d in conditional command"
 msgstr "Comhartha %d gan súil leis in ordú coinníollach."
 
-#: parse.y:6220
+#: parse.y:5996
 #, c-format
 msgid "syntax error near unexpected token `%s'"
 msgstr "Earráid chomhréire in aice comhartha '%s' nach rabhthas ag súil leis."
 
-#: parse.y:6238
+#: parse.y:6014
 #, c-format
 msgid "syntax error near `%s'"
 msgstr "Earráid chomhréire in aice '%s'"
 
-#: parse.y:6248
+#: parse.y:6024
 msgid "syntax error: unexpected end of file"
 msgstr "Earráid chomhréire: deireadh comhaid gan súil leis."
 
-#: parse.y:6248
+#: parse.y:6024
 msgid "syntax error"
 msgstr "Earráid chomhréire"
 
-#: parse.y:6310
+#: parse.y:6086
 #, c-format
 msgid "Use \"%s\" to leave the shell.\n"
 msgstr "Úsáid '%s' le scoir den mblaosc.\n"
 
-#: parse.y:6472
+#: parse.y:6248
 msgid "unexpected EOF while looking for matching `)'"
 msgstr "Deireadh comhaid gan súil leis agus ')' á lorg le meaitseáil."
 
-#: pcomplete.c:1132
+#: pcomplete.c:1126
 #, c-format
 msgid "completion: function `%s' not found"
 msgstr "Iomlánú: níor aimsíodh an fheidhm '%s'."
 
-#: pcomplete.c:1722
+#: pcomplete.c:1646
 #, c-format
 msgid "programmable_completion: %s: possible retry loop"
 msgstr "críochnú in-ríomhchláraithe: %s: d'fhéadfadh lúb atriail a bheith ann"
@@ -1558,118 +1511,109 @@ msgstr "críochnú in-ríomhchláraithe: %s: d'fhéadfadh lúb atriail a bheith
 msgid "progcomp_insert: %s: NULL COMPSPEC"
 msgstr "progcomp_insert: %s: tá COMPSPEC neamhnitheach"
 
-#: print_cmd.c:300
+#: print_cmd.c:302
 #, c-format
 msgid "print_command: bad connector `%d'"
 msgstr "print_command: drochnascóir '%d'"
 
-#: print_cmd.c:373
+#: print_cmd.c:375
 #, c-format
 msgid "xtrace_set: %d: invalid file descriptor"
 msgstr "xtrace_set: %d: tuairisceoir comhaid neamhbhailí"
 
-#: print_cmd.c:378
+#: print_cmd.c:380
 msgid "xtrace_set: NULL file pointer"
 msgstr "xtrace_set: pointeoir folamh comhaid"
 
-#: print_cmd.c:382
+#: print_cmd.c:384
 #, c-format
 msgid "xtrace fd (%d) != fileno xtrace fp (%d)"
 msgstr "xtrace fd (%d) != fileno xtrace fp (%d)"
 
-#: print_cmd.c:1538
+#: print_cmd.c:1534
 #, c-format
 msgid "cprintf: `%c': invalid format character"
 msgstr "cprintf: '%c': carachtar formáide neamhbhailí"
 
-#: redir.c:121 redir.c:167
+#: redir.c:124 redir.c:171
 msgid "file descriptor out of range"
 msgstr "tuairisceoir comhaid as raon"
 
-#: redir.c:174
+#: redir.c:178
 #, c-format
 msgid "%s: ambiguous redirect"
 msgstr "%s: atreorú athbhríoch"
 
-#: redir.c:178
+#: redir.c:182
 #, c-format
 msgid "%s: cannot overwrite existing file"
 msgstr "%s: ní féidir comhad atá ann cheana a fhorscríobh."
 
-#: redir.c:183
+#: redir.c:187
 #, c-format
 msgid "%s: restricted: cannot redirect output"
 msgstr "%s: srianta: ní féidir aschur a atreorú."
 
-#: redir.c:188
+#: redir.c:192
 #, c-format
 msgid "cannot create temp file for here-document: %s"
 msgstr "ní féidir cáipéis shealadach a chruthú don cháipéis leabaithe: %s"
 
-#: redir.c:192
+#: redir.c:196
 #, c-format
 msgid "%s: cannot assign fd to variable"
 msgstr "%s: ní féidir tuairisceoir comhaid a shannadh go hathróg."
 
-#: redir.c:588
+#: redir.c:586
 msgid "/dev/(tcp|udp)/host/port not supported without networking"
 msgstr "Ní thacaítear le /dev/(tcp|udp)/óstríomhaire/port gan líonrú."
 
-#: redir.c:870 redir.c:985 redir.c:1046 redir.c:1211
+#: redir.c:868 redir.c:983 redir.c:1044 redir.c:1209
 msgid "redirection error: cannot duplicate fd"
 msgstr "Earráid atreoraithe: ní féidir an tuairisceoir comhaid a dhúbailt."
 
-#: shell.c:343
+#: shell.c:347
 msgid "could not find /tmp, please create!"
 msgstr "Níorbh fhéidir /tmp a aimsiú. Cruthaigh é le do thoil!"
 
-#: shell.c:347
+#: shell.c:351
 msgid "/tmp must be a valid directory name"
 msgstr "Caithfidh /tmp bheith ina ainm comhadlainne bailí."
 
-#: shell.c:798
-msgid "pretty-printing mode ignored in interactive shells"
-msgstr ""
-
-#: shell.c:940
+#: shell.c:927
 #, c-format
 msgid "%c%c: invalid option"
 msgstr "%c%c: rogha neamhbhailí"
 
-#: shell.c:1299
+#: shell.c:1282
 #, c-format
 msgid "cannot set uid to %d: effective uid %d"
-msgstr ""
-"Ní féidir an t-aitheantóir úsáideora (uid) a athrú go %d: aitheantóir "
-"éifeachtach %d"
+msgstr "Ní féidir an t-aitheantóir úsáideora (uid) a athrú go %d: aitheantóir éifeachtach %d"
 
-#: shell.c:1306
+#: shell.c:1289
 #, c-format
 msgid "cannot set gid to %d: effective gid %d"
-msgstr ""
-"Ní féidir an t-aitheantóir grúpa (gid) a athrú go %d: aitheantóir "
-"éifeachtach %d"
+msgstr "Ní féidir an t-aitheantóir grúpa (gid) a athrú go %d: aitheantóir éifeachtach %d"
 
-#: shell.c:1494
+#: shell.c:1458
 msgid "cannot start debugger; debugging mode disabled"
-msgstr ""
-"Ní féidir an dífhabhtóir a thosú; tá an mód dífhabhtaithe díchumasaithe."
+msgstr "Ní féidir an dífhabhtóir a thosú; tá an mód dífhabhtaithe díchumasaithe."
 
-#: shell.c:1608
+#: shell.c:1566
 #, c-format
 msgid "%s: Is a directory"
 msgstr "%s: is comhadlann é"
 
-#: shell.c:1826
+#: shell.c:1777
 msgid "I have no name!"
 msgstr "Níl ainm orm!"
 
-#: shell.c:1980
+#: shell.c:1930
 #, c-format
 msgid "GNU bash, version %s-(%s)\n"
 msgstr "GNU bash, leagan %s-(%s)\n"
 
-#: shell.c:1981
+#: shell.c:1931
 #, c-format
 msgid ""
 "Usage:\t%s [GNU long option] [option] ...\n"
@@ -1678,52 +1622,49 @@ msgstr ""
 "Úsáid:\t%s [rogha fada GNU] [rogha] ...\n"
 "\t%s [rogha fada GNU] [rogha] comhad_scripte ...\n"
 
-#: shell.c:1983
+#: shell.c:1933
 msgid "GNU long options:\n"
 msgstr "Roghanna fada GNU:\n"
 
-#: shell.c:1987
+#: shell.c:1937
 msgid "Shell options:\n"
 msgstr "Roghanna blaoisce:\n"
 
-#: shell.c:1988
+#: shell.c:1938
 msgid "\t-ilrsD or -c command or -O shopt_option\t\t(invocation only)\n"
 msgstr "\t-ilrsD nó -c ordú nó -O rogha_shopt\t\t(glaoch amháin)\n"
 
-#: shell.c:2003
+#: shell.c:1953
 #, c-format
 msgid "\t-%s or -o option\n"
 msgstr "\t-%s nó -o rogha\n"
 
-#: shell.c:2009
+#: shell.c:1959
 #, c-format
 msgid "Type `%s -c \"help set\"' for more information about shell options.\n"
-msgstr ""
-"Úsáid %s -c 'help set' le haghaidh tuilleadh eolais faoi roghanna blaoisce.\n"
+msgstr "Úsáid %s -c 'help set' le haghaidh tuilleadh eolais faoi roghanna blaoisce.\n"
 
-#: shell.c:2010
+#: shell.c:1960
 #, c-format
 msgid "Type `%s -c help' for more information about shell builtin commands.\n"
-msgstr ""
-"Úsáid '%s -c help' le haghaidh tuilleadh eolais faoi orduithe ionsuite "
-"blaoisce.\n"
+msgstr "Úsáid '%s -c help' le haghaidh tuilleadh eolais faoi orduithe ionsuite blaoisce.\n"
 
-#: shell.c:2011
+#: shell.c:1961
 #, c-format
 msgid "Use the `bashbug' command to report bugs.\n"
 msgstr "Úsáid an t-ordú 'bashbug' le tuarascáil a sheoladh faoi fhabht.\n"
 
-#: shell.c:2013
+#: shell.c:1963
 #, c-format
 msgid "bash home page: <http://www.gnu.org/software/bash>\n"
 msgstr "leathanach baile bash: <http://www.gnu.org/software/bash>\n"
 
-#: shell.c:2014
+#: shell.c:1964
 #, c-format
 msgid "General help using GNU software: <http://www.gnu.org/gethelp/>\n"
 msgstr "Cabhair ghinearálta le bogearraí GNU: <http://www.gnu.org/gethelp/>\n"
 
-#: sig.c:695
+#: sig.c:707
 #, c-format
 msgid "sigprocmask: %d: invalid operation"
 msgstr "sigprocmask: %d: oibríocht neamhbhailí"
@@ -1897,21 +1838,21 @@ msgstr "Comhartha neamhaithnid #"
 msgid "Unknown Signal #%d"
 msgstr "Comhartha neamhaithnid #%d"
 
-#: subst.c:1450 subst.c:1641
+#: subst.c:1445 subst.c:1608
 #, c-format
 msgid "bad substitution: no closing `%s' in %s"
 msgstr "Drochionadú: níl '%s' dúnta i %s"
 
-#: subst.c:3209
+#: subst.c:3154
 #, c-format
 msgid "%s: cannot assign list to array member"
 msgstr "%s: ní féidir liosta a shannadh go ball eagair."
 
-#: subst.c:5734 subst.c:5750
+#: subst.c:5740 subst.c:5756
 msgid "cannot make pipe for process substitution"
 msgstr "Ní féidir píopa a dhéanamh le haghaidh ionadaíocht próisis."
 
-#: subst.c:5796
+#: subst.c:5798
 msgid "cannot make child for process substitution"
 msgstr "Ní féidir macphróiseas a dhéanamh le haghaidh ionadaíocht próisis."
 
@@ -1928,81 +1869,69 @@ msgstr "Ní féidir píopa ainmnithe %s a oscailt le haghaidh scríofa."
 #: subst.c:5873
 #, c-format
 msgid "cannot duplicate named pipe %s as fd %d"
-msgstr ""
-"Ní féidir an píopa ainmnithe %s a dhúbailt mar thuairisceoir comhaid %d."
+msgstr "Ní féidir an píopa ainmnithe %s a dhúbailt mar thuairisceoir comhaid %d."
 
-#: subst.c:5990
+#: subst.c:5959
 msgid "command substitution: ignored null byte in input"
 msgstr "ionadú orduithe: tugadh neamhaird ar ghiotán neamhnitheach san ionchur"
 
-#: subst.c:6121
+#: subst.c:6083
 msgid "cannot make pipe for command substitution"
 msgstr "Ní féidir píopa a dhéanamh le haghaidh ionadú ordaithe."
 
-#: subst.c:6164
+#: subst.c:6127
 msgid "cannot make child for command substitution"
 msgstr "Ní féidir macphróiseas a dhéanamh le haghaidh ionadú ordaithe."
 
-#: subst.c:6190
+#: subst.c:6153
 msgid "command_substitute: cannot duplicate pipe as fd 1"
-msgstr ""
-"command_substitute: ní feidir an píopa a dhúbailt mar thuairisceoir comhaid "
-"1."
+msgstr "command_substitute: ní feidir an píopa a dhúbailt mar thuairisceoir comhaid 1."
 
-#: subst.c:6641 subst.c:9483
+#: subst.c:6580 subst.c:8939
 #, c-format
 msgid "%s: invalid variable name for name reference"
 msgstr "'%s': ainm neamhbhailí athróige le haghaidh tagairt ainm"
 
-#: subst.c:6737 subst.c:6755 subst.c:6903
+#: subst.c:6666 subst.c:8351 subst.c:8371
+#, c-format
+msgid "%s: bad substitution"
+msgstr "%s: drochionadú"
+
+#: subst.c:6800
 #, c-format
 msgid "%s: invalid indirect expansion"
 msgstr "%s: fairsingiú neamhbhailí indíreach"
 
-#: subst.c:6771 subst.c:6910
+#: subst.c:6807
 #, c-format
 msgid "%s: invalid variable name"
 msgstr "%s: ainm neamhbhailí athróige"
 
-#: subst.c:6962
-#, fuzzy, c-format
-msgid "%s: parameter not set"
-msgstr "%s: paraiméadar neamhnitheach nó gan socrú."
-
-#: subst.c:6964
+#: subst.c:6854
 #, c-format
 msgid "%s: parameter null or not set"
 msgstr "%s: paraiméadar neamhnitheach nó gan socrú."
 
-#: subst.c:7201 subst.c:7216
+#: subst.c:7089 subst.c:7104
 #, c-format
 msgid "%s: substring expression < 0"
 msgstr "%s: slonn fotheaghráin < 0"
 
-#: subst.c:8839 subst.c:8860
-#, c-format
-msgid "%s: bad substitution"
-msgstr "%s: drochionadú"
-
-#: subst.c:8948
+#: subst.c:8450
 #, c-format
 msgid "$%s: cannot assign in this way"
 msgstr "$%s: ní féidir sannadh mar seo."
 
-#: subst.c:9346
-msgid ""
-"future versions of the shell will force evaluation as an arithmetic "
-"substitution"
-msgstr ""
-"i leaganacha den bhlaosc amach anseo, beidh luachálú mar ionadú uimhríochta "
-"éigeantach"
+#: subst.c:8802
+msgid "future versions of the shell will force evaluation as an arithmetic substitution"
+msgstr "i leaganacha den bhlaosc amach anseo, beidh luachálú mar ionadú uimhríochta éigeantach"
 
-#: subst.c:9903
+#: subst.c:9349
 #, c-format
 msgid "bad substitution: no closing \"`\" in %s"
 msgstr "drochionadú: níl  '`' dúnta i %s"
 
-#: subst.c:10907
+#: subst.c:10298
 #, c-format
 msgid "no match: %s"
 msgstr "gan meaitseáil: %s"
@@ -2025,108 +1954,105 @@ msgstr "Ag súil le ')'"
 msgid "`)' expected, found %s"
 msgstr "Ag súil le ')', ach fuarthas %s."
 
-#: test.c:282 test.c:748 test.c:751
+#: test.c:282 test.c:744 test.c:747
 #, c-format
 msgid "%s: unary operator expected"
 msgstr "%s: ag súil le hoibreoir aonártha."
 
-#: test.c:469 test.c:791
+#: test.c:469 test.c:787
 #, c-format
 msgid "%s: binary operator expected"
 msgstr "%s: ag súil le hoibreoir dénártha."
 
-#: test.c:873
+#: test.c:869
 msgid "missing `]'"
 msgstr "']' ar iarraidh"
 
-#: trap.c:216
+#: trap.c:224
 msgid "invalid signal number"
 msgstr "Uimhir chomhartha neamhbhailí"
 
-#: trap.c:379
+#: trap.c:387
 #, c-format
 msgid "run_pending_traps: bad value in trap_list[%d]: %p"
 msgstr "run_pending_traps: drochluach sa liosta_gaistí[%d]: %p"
 
-#: trap.c:383
+#: trap.c:391
 #, c-format
-msgid ""
-"run_pending_traps: signal handler is SIG_DFL, resending %d (%s) to myself"
-msgstr ""
-"run_pending_traps: is SIG_DFL an láimhseálaí comharthaí; %d (%s) á "
-"athsheoladh chugam féin."
+msgid "run_pending_traps: signal handler is SIG_DFL, resending %d (%s) to myself"
+msgstr "run_pending_traps: is SIG_DFL an láimhseálaí comharthaí; %d (%s) á athsheoladh chugam féin."
 
-#: trap.c:439
+#: trap.c:447
 #, c-format
 msgid "trap_handler: bad signal %d"
 msgstr "trap_handler: droch-chomhartha %d"
 
-#: variables.c:399
+#: variables.c:409
 #, c-format
 msgid "error importing function definition for `%s'"
 msgstr "Earráid agus sainmhíniú na feidhme '%s' á iompórtáil."
 
-#: variables.c:801
+#: variables.c:814
 #, c-format
 msgid "shell level (%d) too high, resetting to 1"
 msgstr "Tá an leibhéal blaoisce (%d) ró-ard; á athshocrú go 1."
 
-#: variables.c:2512
+#: variables.c:2413
 msgid "make_local_variable: no function context at current scope"
 msgstr "make_local_variable: níl comhthéacs feidhme sa scóip reatha."
 
-#: variables.c:2531
+#: variables.c:2432
 #, c-format
 msgid "%s: variable may not be assigned value"
 msgstr "%s: ní féidir luach a shannadh ar an athróg"
 
-#: variables.c:3246
+#: variables.c:3043
 #, c-format
 msgid "%s: assigning integer to name reference"
 msgstr "%s: slánuimhir a sannadh go tagairt ainm"
 
-#: variables.c:4149
+#: variables.c:3940
 msgid "all_local_variables: no function context at current scope"
 msgstr "all_local_variables: níl comhthéacs feidhme sa scóip reatha"
 
-#: variables.c:4437
+#: variables.c:4218
 #, c-format
 msgid "%s has null exportstr"
 msgstr "Tá teaghrán easpórtála neamhnitheach ag %s"
 
-#: variables.c:4442 variables.c:4451
+#: variables.c:4223 variables.c:4232
 #, c-format
 msgid "invalid character %d in exportstr for %s"
 msgstr "Carachtar neamhbhailí %d sa teaghrán easpórtála le haghaidh %s."
 
-#: variables.c:4457
+#: variables.c:4238
 #, c-format
 msgid "no `=' in exportstr for %s"
 msgstr "Níl '=' sa teaghrán easpórtála le haghaidh %s."
 
-#: variables.c:4911
+#: variables.c:4684
 msgid "pop_var_context: head of shell_variables not a function context"
 msgstr "pop_var_context: ní comhthéacs feidhme é ceann shell_variables"
 
-#: variables.c:4924
+#: variables.c:4697
 msgid "pop_var_context: no global_variables context"
 msgstr "pop_var_context: níl comhthéacs global_variables ann"
 
-#: variables.c:4999
+#: variables.c:4772
 msgid "pop_scope: head of shell_variables not a temporary environment scope"
 msgstr "pop_scope: ní scóip shealadach thimpeallachta é ceann shell_variables"
 
-#: variables.c:5862
+#: variables.c:5619
 #, c-format
 msgid "%s: %s: cannot open as FILE"
 msgstr "%s: %s: ní féidir a oscailt mar CHOMHAD"
 
-#: variables.c:5867
+#: variables.c:5624
 #, c-format
 msgid "%s: %s: invalid value for trace file descriptor"
 msgstr "%s: %s: luach neamhbhailí le haghaidh tuairisceoir comhaid rianaithe"
 
-#: variables.c:5912
+#: variables.c:5669
 #, c-format
 msgid "%s: %s: compatibility value out of range"
 msgstr "%s: %s: luach comhoiriúnachta as raon"
@@ -2136,12 +2062,8 @@ msgid "Copyright (C) 2016 Free Software Foundation, Inc."
 msgstr "Cóipcheart © 2016 Free Software Foundation, Inc."
 
 #: version.c:47 version2.c:47
-msgid ""
-"License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl."
-"html>\n"
-msgstr ""
-"Ceadúnas GPLv3+: GNU GPL leagan 3 nó níos déanaí <http://gnu.org/licenses/"
-"gpl.html>\n"
+msgid "License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>\n"
+msgstr "Ceadúnas GPLv3+: GNU GPL leagan 3 nó níos déanaí <http://gnu.org/licenses/gpl.html>\n"
 
 #: version.c:86 version2.c:86
 #, c-format
@@ -2154,26 +2076,24 @@ msgstr "Is saorbhogearra é seo; tá cead agat é a athrú agus  é a athdháile
 
 #: version.c:92 version2.c:92
 msgid "There is NO WARRANTY, to the extent permitted by law."
-msgstr ""
-"Ní ghabhann baránta ar bith leis, sa mhéid is atá sin ceadaithe de réir dlí."
+msgstr "Ní ghabhann baránta ar bith leis, sa mhéid is atá sin ceadaithe de réir dlí."
 
-#: xmalloc.c:93
+#: xmalloc.c:91
 #, c-format
 msgid "%s: cannot allocate %lu bytes (%lu bytes allocated)"
 msgstr "%s: ní féidir %lu beart a leithdháileadh (%lu beart leithdháilte)"
 
-#: xmalloc.c:95
+#: xmalloc.c:93
 #, c-format
 msgid "%s: cannot allocate %lu bytes"
 msgstr "%s: ní féidir %lu beart a leithdháileadh"
 
-#: xmalloc.c:165
+#: xmalloc.c:163
 #, c-format
 msgid "%s: %s:%d: cannot allocate %lu bytes (%lu bytes allocated)"
-msgstr ""
-"%s: %s:%d: ní féidir %lu beart a leithdháileadh (%lu beart leithdháilte)"
+msgstr "%s: %s:%d: ní féidir %lu beart a leithdháileadh (%lu beart leithdháilte)"
 
-#: xmalloc.c:167
+#: xmalloc.c:165
 #, c-format
 msgid "%s: %s:%d: cannot allocate %lu bytes"
 msgstr "%s: %s:%d: ní féidir %lu beart a leithdháileadh"
@@ -2187,13 +2107,8 @@ msgid "unalias [-a] name [name ...]"
 msgstr "unalias [-a] ainm [ainm ...]"
 
 #: builtins.c:53
-msgid ""
-"bind [-lpsvPSVX] [-m keymap] [-f filename] [-q name] [-u name] [-r keyseq] [-"
-"x keyseq:shell-command] [keyseq:readline-function or readline-command]"
-msgstr ""
-"bind [-lpsvPSVX] [-m MAPA_EOCHRACH] [-f AINM_CHOMHAID] [-q AINM] [-u AINM] [-"
-"r SRAITH_EOCHRACHA] [-x SRAITH_EOCHRACHA:ORDÚ_BLAOISCE] [SRAITH_EOCHRACHA:"
-"GNÍOMH_readline nó ORDÚ_readline]"
+msgid "bind [-lpsvPSVX] [-m keymap] [-f filename] [-q name] [-u name] [-r keyseq] [-x keyseq:shell-command] [keyseq:readline-function or readline-command]"
+msgstr "bind [-lpsvPSVX] [-m MAPA_EOCHRACH] [-f AINM_CHOMHAID] [-q AINM] [-u AINM] [-r SRAITH_EOCHRACHA] [-x SRAITH_EOCHRACHA:ORDÚ_BLAOISCE] [SRAITH_EOCHRACHA:GNÍOMH_readline nó ORDÚ_readline]"
 
 #: builtins.c:56
 msgid "break [n]"
@@ -2269,8 +2184,7 @@ msgstr "logout [n]"
 
 #: builtins.c:105
 msgid "fc [-e ename] [-lnr] [first] [last] or fc -s [pat=rep] [command]"
-msgstr ""
-"fc [-e AINM_E] [-lnr] [CÉAD] [DEIREANACH] nó fc -s [PATRÚN=IONADAÍ] [ORDÚ]"
+msgstr "fc [-e AINM_E] [-lnr] [CÉAD] [DEIREANACH] nó fc -s [PATRÚN=IONADAÍ] [ORDÚ]"
 
 #: builtins.c:109
 msgid "fg [job_spec]"
@@ -2289,12 +2203,8 @@ msgid "help [-dms] [pattern ...]"
 msgstr "help [-dms] [PATRÚN ...]"
 
 #: builtins.c:123
-msgid ""
-"history [-c] [-d offset] [n] or history -anrw [filename] or history -ps arg "
-"[arg...]"
-msgstr ""
-"history [-c] [-d SEACH_CHUR] [n] nó history -anrw [COMHADAINM] nó history -"
-"ps ARGÓINT [ARGÓINT...]"
+msgid "history [-c] [-d offset] [n] or history -anrw [filename] or history -ps arg [arg...]"
+msgstr "history [-c] [-d SEACH_CHUR] [n] nó history -anrw [COMHADAINM] nó history -ps ARGÓINT [ARGÓINT...]"
 
 #: builtins.c:127
 msgid "jobs [-lnprs] [jobspec ...] or jobs -x command [args]"
@@ -2305,25 +2215,16 @@ msgid "disown [-h] [-ar] [jobspec ... | pid ...]"
 msgstr "disown [-h] [-ar] [SONRÚ_TAISC ... | AITHEANTAS_PRÓISIS ...]"
 
 #: builtins.c:134
-msgid ""
-"kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... or kill -l "
-"[sigspec]"
-msgstr ""
-"kill [-s SONRÚ_COMHARTHA | -n UIMHIR_CHOMHARTHA | -SONRÚ_COMHARTHA] "
-"AITHEANTAS_PRÓISIS | SONRÚ_TAISC ... nó kill -l [SONRÚ_COMHARTHA]"
+msgid "kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... or kill -l [sigspec]"
+msgstr "kill [-s SONRÚ_COMHARTHA | -n UIMHIR_CHOMHARTHA | -SONRÚ_COMHARTHA] AITHEANTAS_PRÓISIS | SONRÚ_TAISC ... nó kill -l [SONRÚ_COMHARTHA]"
 
 #: builtins.c:136
 msgid "let arg [arg ...]"
 msgstr "let argóint [argóint ...]"
 
 #: builtins.c:138
-msgid ""
-"read [-ers] [-a array] [-d delim] [-i text] [-n nchars] [-N nchars] [-p "
-"prompt] [-t timeout] [-u fd] [name ...]"
-msgstr ""
-"read [-ers] [-a eagar] [-d teormharcóir] [-i téacs] [-n líon_carachtar] [-N "
-"líon_carachtar] [-p leid] [-t teorainn_ama] [-u tuairisceoir_comhaid] "
-"[ainm ...]"
+msgid "read [-ers] [-a array] [-d delim] [-i text] [-n nchars] [-N nchars] [-p prompt] [-t timeout] [-u fd] [name ...]"
+msgstr "read [-ers] [-a eagar] [-d teormharcóir] [-i téacs] [-n líon_carachtar] [-N líon_carachtar] [-p leid] [-t teorainn_ama] [-u tuairisceoir_comhaid] [ainm ...]"
 
 #: builtins.c:140
 msgid "return [n]"
@@ -2386,8 +2287,7 @@ msgid "umask [-p] [-S] [mode]"
 msgstr "umask [-p] [-S] [MÓD]"
 
 #: builtins.c:177
-#, fuzzy
-msgid "wait [-fn] [id ...]"
+msgid "wait [-n] [id ...]"
 msgstr "wait [-n] [AITHEANTAS ...]"
 
 #: builtins.c:181
@@ -2415,12 +2315,8 @@ msgid "case WORD in [PATTERN [| PATTERN]...) COMMANDS ;;]... esac"
 msgstr "case FOCAL in [PATRÚN [| PATRÚN]...) ORDUITHE ;;]... esac"
 
 #: builtins.c:194
-msgid ""
-"if COMMANDS; then COMMANDS; [ elif COMMANDS; then COMMANDS; ]... [ else "
-"COMMANDS; ] fi"
-msgstr ""
-"if ORDUITHE; then ORDUITHE; [ elif ORDUITHE; then ORDUITHE; ]... [ else "
-"ORDUITHE; ] fi"
+msgid "if COMMANDS; then COMMANDS; [ elif COMMANDS; then COMMANDS; ]... [ else COMMANDS; ] fi"
+msgstr "if ORDUITHE; then ORDUITHE; [ elif ORDUITHE; then ORDUITHE; ]... [ else ORDUITHE; ] fi"
 
 #: builtins.c:196
 msgid "while COMMANDS; do COMMANDS; done"
@@ -2479,44 +2375,24 @@ msgid "printf [-v var] format [arguments]"
 msgstr "printf [-v athróg] formáid [argóintí]"
 
 #: builtins.c:231
-msgid ""
-"complete [-abcdefgjksuv] [-pr] [-DE] [-o option] [-A action] [-G globpat] [-"
-"W wordlist]  [-F function] [-C command] [-X filterpat] [-P prefix] [-S "
-"suffix] [name ...]"
-msgstr ""
-"complete [-abcdefgjksuv] [-pr] [-DE] [-o rogha] [-A gníomh] [-G patrún] [-W "
-"liosta_focal]  [-F feidhm] [-C ordú] [-X patrún_scagaire] [-P réimír] [-S "
-"iarmhír] [ainm ...]"
+msgid "complete [-abcdefgjksuv] [-pr] [-DE] [-o option] [-A action] [-G globpat] [-W wordlist]  [-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] [name ...]"
+msgstr "complete [-abcdefgjksuv] [-pr] [-DE] [-o rogha] [-A gníomh] [-G patrún] [-W liosta_focal]  [-F feidhm] [-C ordú] [-X patrún_scagaire] [-P réimír] [-S iarmhír] [ainm ...]"
 
 #: builtins.c:235
-msgid ""
-"compgen [-abcdefgjksuv] [-o option] [-A action] [-G globpat] [-W wordlist]  "
-"[-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] [word]"
-msgstr ""
-"compgen [-abcdefgjksuv] [-o rogha]  [-A gníomh] [-G patrún] [-W "
-"liosta_focal]  [-F feidhm] [-C ordú] [-X patrún_scagaire] [-P réimír] [-S "
-"iarmhír] [focal]"
+msgid "compgen [-abcdefgjksuv] [-o option] [-A action] [-G globpat] [-W wordlist]  [-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] [word]"
+msgstr "compgen [-abcdefgjksuv] [-o rogha]  [-A gníomh] [-G patrún] [-W liosta_focal]  [-F feidhm] [-C ordú] [-X patrún_scagaire] [-P réimír] [-S iarmhír] [focal]"
 
 #: builtins.c:239
 msgid "compopt [-o|+o option] [-DE] [name ...]"
 msgstr "compopt [-o|+o rogha] [-DE] [ainm ...]"
 
 #: builtins.c:242
-msgid ""
-"mapfile [-d delim] [-n count] [-O origin] [-s count] [-t] [-u fd] [-C "
-"callback] [-c quantum] [array]"
-msgstr ""
-"mapfile [-d TEORMHARCÓIR] [-n COMHAIREAMH] [-O BUNÚS] [-s COMHAIREAMH] [-t] "
-"[-u TUAIRISCEOIR_COMHAID] [-C AISGHLAOCH] [-c CANDAM] [EAGAR]"
+msgid "mapfile [-d delim] [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c quantum] [array]"
+msgstr "mapfile [-d TEORMHARCÓIR] [-n COMHAIREAMH] [-O BUNÚS] [-s COMHAIREAMH] [-t] [-u TUAIRISCEOIR_COMHAID] [-C AISGHLAOCH] [-c CANDAM] [EAGAR]"
 
 #: builtins.c:244
-#, fuzzy
-msgid ""
-"readarray [-d delim] [-n count] [-O origin] [-s count] [-t] [-u fd] [-C "
-"callback] [-c quantum] [array]"
-msgstr ""
-"readarray [-n COMHAIREAMH] [-O BUNÚS] [-s COMHAIREAMH] [-t] [-u "
-"TUAIRISCEOIR_COMHAID] [-C AISGHLAOCH] [-c CANDAM] [EAGAR]"
+msgid "readarray [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c quantum] [array]"
+msgstr "readarray [-n COMHAIREAMH] [-O BUNÚS] [-s COMHAIREAMH] [-t] [-u TUAIRISCEOIR_COMHAID] [-C AISGHLAOCH] [-c CANDAM] [EAGAR]"
 
 #: builtins.c:256
 msgid ""
@@ -2533,8 +2409,7 @@ msgid ""
 "      -p\tprint all defined aliases in a reusable format\n"
 "    \n"
 "    Exit Status:\n"
-"    alias returns true unless a NAME is supplied for which no alias has "
-"been\n"
+"    alias returns true unless a NAME is supplied for which no alias has been\n"
 "    defined."
 msgstr ""
 "Sainigh nó taispeáin ailiasanna.\n"
@@ -2580,30 +2455,25 @@ msgid ""
 "    Options:\n"
 "      -m  keymap         Use KEYMAP as the keymap for the duration of this\n"
 "                         command.  Acceptable keymap names are emacs,\n"
-"                         emacs-standard, emacs-meta, emacs-ctlx, vi, vi-"
-"move,\n"
+"                         emacs-standard, emacs-meta, emacs-ctlx, vi, vi-move,\n"
 "                         vi-command, and vi-insert.\n"
 "      -l                 List names of functions.\n"
 "      -P                 List function names and bindings.\n"
 "      -p                 List functions and bindings in a form that can be\n"
 "                         reused as input.\n"
-"      -S                 List key sequences that invoke macros and their "
-"values\n"
-"      -s                 List key sequences that invoke macros and their "
-"values\n"
+"      -S                 List key sequences that invoke macros and their values\n"
+"      -s                 List key sequences that invoke macros and their values\n"
 "                         in a form that can be reused as input.\n"
 "      -V                 List variable names and values\n"
 "      -v                 List variable names and values in a form that can\n"
 "                         be reused as input.\n"
 "      -q  function-name  Query about which keys invoke the named function.\n"
-"      -u  function-name  Unbind all keys which are bound to the named "
-"function.\n"
+"      -u  function-name  Unbind all keys which are bound to the named function.\n"
 "      -r  keyseq         Remove the binding for KEYSEQ.\n"
 "      -f  filename       Read key bindings from FILENAME.\n"
 "      -x  keyseq:shell-command\tCause SHELL-COMMAND to be executed when\n"
 "    \t\t\t\tKEYSEQ is entered.\n"
-"      -X                 List key sequences bound with -x and associated "
-"commands\n"
+"      -X                 List key sequences bound with -x and associated commands\n"
 "                         in a form that can be reused as input.\n"
 "    \n"
 "    Exit Status:\n"
@@ -2640,8 +2510,7 @@ msgid ""
 msgstr ""
 "Lean ar aghaidh le lúba for, while nó until.\n"
 "    \n"
-"    Tosaigh an chéad atriall eile den lúb mhórthimpeall 'for', 'while' nó "
-"'until'.\n"
+"    Tosaigh an chéad atriall eile den lúb mhórthimpeall 'for', 'while' nó 'until'.\n"
 "    Má shonraítear N, tosaigh an Nú lúb mhórthimpeall.\n"
 "    \n"
 "    Stádas Scortha:\n"
@@ -2653,8 +2522,7 @@ msgid ""
 "    \n"
 "    Execute SHELL-BUILTIN with arguments ARGs without performing command\n"
 "    lookup.  This is useful when you wish to reimplement a shell builtin\n"
-"    as a shell function, but need to execute the builtin within the "
-"function.\n"
+"    as a shell function, but need to execute the builtin within the function.\n"
 "    \n"
 "    Exit Status:\n"
 "    Returns the exit status of SHELL-BUILTIN, or false if SHELL-BUILTIN is\n"
@@ -2668,8 +2536,7 @@ msgstr ""
 "    laistigh den fheidhm.\n"
 "    \n"
 "    Stádas Scortha:\n"
-"    Aischuirtear stádas scortha ORDÚ-IONSUITE-BLAOISCE, nó falsa sa chás "
-"nach\n"
+"    Aischuirtear stádas scortha ORDÚ-IONSUITE-BLAOISCE, nó falsa sa chás nach\n"
 "    bhfuil ORDÚ-IONSUITE-BLAOISCE ina ordú ionsuite blaoisce."
 
 #: builtins.c:369
@@ -2690,38 +2557,30 @@ msgstr ""
 "Aischuir comhthéacs an ghlaoigh reatha fhoghnáthaimh.\n"
 "    \n"
 "    Gan SLONN, aischuirtear '$líne $ainm_comhaid'. Le SLONN, aischuirtear\n"
-"    '$líne $foghnáthamh $ainm_comhaid'; is féidir lorg cruaiche a sholáthar "
-"leis an\n"
+"    '$líne $foghnáthamh $ainm_comhaid'; is féidir lorg cruaiche a sholáthar leis an\n"
 "    fhaisnéis bhreise seo.\n"
 "    \n"
 "    Taispeánann an luach atá ag SLONN líon na bhfrámaí glaoigh le dul siar\n"
 "    roimh an ceann reatha; fráma 0 an ceann atá ar barr.\n"
 "    \n"
 "    Stádas Scortha:\n"
-"    Aischuirtear 0 ach sa chás nach bhfuil an bhlaosc ag rith feidhme "
-"blaoisce, nó\n"
+"    Aischuirtear 0 ach sa chás nach bhfuil an bhlaosc ag rith feidhme blaoisce, nó\n"
 "    sa chás go bhfuil SLONN neamhbhailí."
 
 #: builtins.c:387
 msgid ""
 "Change the shell working directory.\n"
 "    \n"
-"    Change the current directory to DIR.  The default DIR is the value of "
-"the\n"
+"    Change the current directory to DIR.  The default DIR is the value of the\n"
 "    HOME shell variable.\n"
 "    \n"
-"    The variable CDPATH defines the search path for the directory "
-"containing\n"
-"    DIR.  Alternative directory names in CDPATH are separated by a colon "
-"(:).\n"
-"    A null directory name is the same as the current directory.  If DIR "
-"begins\n"
+"    The variable CDPATH defines the search path for the directory containing\n"
+"    DIR.  Alternative directory names in CDPATH are separated by a colon (:).\n"
+"    A null directory name is the same as the current directory.  If DIR begins\n"
 "    with a slash (/), then CDPATH is not used.\n"
 "    \n"
-"    If the directory is not found, and the shell option `cdable_vars' is "
-"set,\n"
-"    the word is assumed to be  a variable name.  If that variable has a "
-"value,\n"
+"    If the directory is not found, and the shell option `cdable_vars' is set,\n"
+"    the word is assumed to be  a variable name.  If that variable has a value,\n"
 "    its value is used for DIR.\n"
 "    \n"
 "    Options:\n"
@@ -2737,13 +2596,11 @@ msgid ""
 "    \t\tattributes as a directory containing the file attributes\n"
 "    \n"
 "    The default is to follow symbolic links, as if `-L' were specified.\n"
-"    `..' is processed by removing the immediately previous pathname "
-"component\n"
+"    `..' is processed by removing the immediately previous pathname component\n"
 "    back to a slash or the beginning of DIR.\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns 0 if the directory is changed, and if $PWD is set successfully "
-"when\n"
+"    Returns 0 if the directory is changed, and if $PWD is set successfully when\n"
 "    -P is used; non-zero otherwise."
 msgstr ""
 
@@ -2772,8 +2629,7 @@ msgstr ""
 "    Mar réamhshocrú, oibríonn 'pwd' faoi mar a bheadh '-L' sonraithe.\n"
 "    \n"
 "    Stádas Scortha:\n"
-"    Aischuirtear luach de 0 ach sa chás go dtugtar rogha neamhbhailí nó nach "
-"féidir\n"
+"    Aischuirtear luach de 0 ach sa chás go dtugtar rogha neamhbhailí nó nach féidir\n"
 "    an chomhadlann reatha a léamh."
 
 #: builtins.c:442
@@ -2821,8 +2677,7 @@ msgid ""
 "Execute a simple command or display information about commands.\n"
 "    \n"
 "    Runs COMMAND with ARGS suppressing  shell function lookup, or display\n"
-"    information about the specified COMMANDs.  Can be used to invoke "
-"commands\n"
+"    information about the specified COMMANDs.  Can be used to invoke commands\n"
 "    on disk when a function with the same name exists.\n"
 "    \n"
 "    Options:\n"
@@ -2837,20 +2692,17 @@ msgstr ""
 "Rith ordú simplí nó taispeáin eolas maidir le horduithe.\n"
 "    \n"
 "    Ritear ORDÚ le hARGÓINTÍ gan cuardach feidhme blaoisce, nó taispeántar\n"
-"    eolas maidir leis na horduithe sonraithe. Is féidir é seo a úsáid chun "
-"orduithe ar\n"
+"    eolas maidir leis na horduithe sonraithe. Is féidir é seo a úsáid chun orduithe ar\n"
 "    diosca a rith má tá feidhm leis an ainm céanna ann.\n"
 "    \n"
 "    Roghanna:\n"
-"      -p\túsáidtear luach réamhshocraithe le haghaidh CONAIR a aimseoidh go "
-"cinnte\n"
+"      -p\túsáidtear luach réamhshocraithe le haghaidh CONAIR a aimseoidh go cinnte\n"
 "        \tgach ceann de na gnáthríomhchláir áirge.\n"
 "      -v\ttaispeántar cur síos ar ORDÚ cosúil leis an ordú ionsuite 'type'\n"
 "      -V\ttaispeántar cur síos níos faide ar gach ORDÚ\n"
 "    \n"
 "    Stádas Scortha:\n"
-"    Aischuirtear an stádas scortha ó ORDÚ, nó teip sa chás nach n-aimsítear "
-"ORDÚ."
+"    Aischuirtear an stádas scortha ó ORDÚ, nó teip sa chás nach n-aimsítear ORDÚ."
 
 #: builtins.c:490
 msgid ""
@@ -2871,11 +2723,11 @@ msgid ""
 "      -a\tto make NAMEs indexed arrays (if supported)\n"
 "      -A\tto make NAMEs associative arrays (if supported)\n"
 "      -i\tto make NAMEs have the `integer' attribute\n"
-"      -l\tto convert the value of each NAME to lower case on assignment\n"
+"      -l\tto convert NAMEs to lower case on assignment\n"
 "      -n\tmake NAME a reference to the variable named by its value\n"
 "      -r\tto make NAMEs readonly\n"
 "      -t\tto make NAMEs have the `trace' attribute\n"
-"      -u\tto convert the value of each NAME to upper case on assignment\n"
+"      -u\tto convert NAMEs to upper case on assignment\n"
 "      -x\tto make NAMEs export\n"
 "    \n"
 "    Using `+' instead of `-' turns off the given attribute.\n"
@@ -2883,8 +2735,7 @@ msgid ""
 "    Variables with the integer attribute have arithmetic evaluation (see\n"
 "    the `let' command) performed when the variable is assigned a value.\n"
 "    \n"
-"    When used in a function, `declare' makes NAMEs local, as with the "
-"`local'\n"
+"    When used in a function, `declare' makes NAMEs local, as with the `local'\n"
 "    command.  The `-g' option suppresses this behavior.\n"
 "    \n"
 "    Exit Status:\n"
@@ -2918,26 +2769,21 @@ msgid ""
 msgstr ""
 "Sainigh athróga logánta.\n"
 "    \n"
-"    Cruthaítear athróg logánta darbh ainm AINM, agus cuirtear LUACH leis. "
-"Is\n"
-"    féidir le ROGHA a bheith ceann ar bith de na roghanna a ghlacann "
-"'declare' leo.\n"
+"    Cruthaítear athróg logánta darbh ainm AINM, agus cuirtear LUACH leis. Is\n"
+"    féidir le ROGHA a bheith ceann ar bith de na roghanna a ghlacann 'declare' leo.\n"
 "    \n"
-"    Ní féidir athróga logánta a úsáid ach laistigh de fheidhm. Tá siad "
-"infheicthe\n"
+"    Ní féidir athróga logánta a úsáid ach laistigh de fheidhm. Tá siad infheicthe\n"
 "    san fheidhm ina shainítear iad agus a mic amháin.\n"
 "    \n"
 "    Stádas Scortha:\n"
-"    Aischuirtear rath ach sa chás go dtugtar rogha neamhbhailí, nó go "
-"dtarlaíonn earráid,\n"
+"    Aischuirtear rath ach sa chás go dtugtar rogha neamhbhailí, nó go dtarlaíonn earráid,\n"
 "    nó go bhfuil an bhlaosc ag rith feidhme."
 
 #: builtins.c:555
 msgid ""
 "Write arguments to the standard output.\n"
 "    \n"
-"    Display the ARGs, separated by a single space character and followed by "
-"a\n"
+"    Display the ARGs, separated by a single space character and followed by a\n"
 "    newline, on the standard output.\n"
 "    \n"
 "    Options:\n"
@@ -2967,8 +2813,7 @@ msgid ""
 msgstr ""
 "Scríobh na hargóintí ar an ngnáthaschur.\n"
 "    \n"
-"    Taispeántar na hARGÓINTÍ ar an ngnáthaschur le carachtair spáis eatarthu "
-"agus\n"
+"    Taispeántar na hARGÓINTÍ ar an ngnáthaschur le carachtair spáis eatarthu agus\n"
 "    líne nua ina ndiadh.\n"
 "    \n"
 "    Roghanna:\n"
@@ -2987,11 +2832,9 @@ msgstr ""
 "      \\t\ttáib chothrománach\n"
 "      \\v\ttáib ingearach\n"
 "      \\\\\tcúlslais\n"
-"      \\0nnn\tan carachtar leis an gcód ASCII NNN (ochtnártha). Is féidir le "
-"NNN\n"
+"      \\0nnn\tan carachtar leis an gcód ASCII NNN (ochtnártha). Is féidir le NNN\n"
 "        \tbheith 0 go 3 digit ochtnártha ar fhad\n"
-"      \\xHH\tan carachtar ocht ngiotán leis an luach HH (heicsidheachúlach). "
-"Is\n"
+"      \\xHH\tan carachtar ocht ngiotán leis an luach HH (heicsidheachúlach). Is\n"
 "        \tféidir le HH bheith 1 nó 2 digit heicsidheachúlach ar fhad.\n"
 "    \n"
 "    Stádas Scortha:\n"
@@ -3050,8 +2893,7 @@ msgstr ""
 msgid ""
 "Execute arguments as a shell command.\n"
 "    \n"
-"    Combine ARGs into a single string, use the result as input to the "
-"shell,\n"
+"    Combine ARGs into a single string, use the result as input to the shell,\n"
 "    and execute the resulting commands.\n"
 "    \n"
 "    Exit Status:\n"
@@ -3063,8 +2905,7 @@ msgstr ""
 "    an bhlaosc, agus rith na horduithe toraidh.\n"
 "    \n"
 "    Stádas Scortha:\n"
-"    Aischuirtear stádas scortha an ordaithe, nó rath más ordú neamhnitheach "
-"é."
+"    Aischuirtear stádas scortha an ordaithe, nó rath más ordú neamhnitheach é."
 
 #: builtins.c:646
 msgid ""
@@ -3112,8 +2953,7 @@ msgid ""
 "Replace the shell with the given command.\n"
 "    \n"
 "    Execute COMMAND, replacing this shell with the specified program.\n"
-"    ARGUMENTS become the arguments to COMMAND.  If COMMAND is not "
-"specified,\n"
+"    ARGUMENTS become the arguments to COMMAND.  If COMMAND is not specified,\n"
 "    any redirections take effect in the current shell.\n"
 "    \n"
 "    Options:\n"
@@ -3121,18 +2961,15 @@ msgid ""
 "      -c\texecute COMMAND with an empty environment\n"
 "      -l\tplace a dash in the zeroth argument to COMMAND\n"
 "    \n"
-"    If the command cannot be executed, a non-interactive shell exits, "
-"unless\n"
+"    If the command cannot be executed, a non-interactive shell exits, unless\n"
 "    the shell option `execfail' is set.\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns success unless COMMAND is not found or a redirection error "
-"occurs."
+"    Returns success unless COMMAND is not found or a redirection error occurs."
 msgstr ""
 "Cuir an t-ordú sonraithe in áit na blaoisce.\n"
 "    \n"
-"    Ritear ORDÚ, agus an ríomhchlár sonraithe curtha in áit na blaoisce "
-"seo.\n"
+"    Ritear ORDÚ, agus an ríomhchlár sonraithe curtha in áit na blaoisce seo.\n"
 "    Úsáidtear na hARGÓINTÍ mar argóintí don ORDÚ. Gan ÓRDÚ, cuirtear\n"
 "    atreoruithe i bhfeidhm sa bhlaosc reatha.\n"
 "    \n"
@@ -3141,8 +2978,7 @@ msgstr ""
 "      -c\tritear ORDÚ le timpeallacht fholamh\n"
 "      -l\tcuirtear fleiscín mar argóint uimhir a náid don ORDÚ.\n"
 "    \n"
-"    Sa chás nach féidir an t-ordú a rith, scoirfidh blaosc "
-"neamhidirghníomhach,\n"
+"    Sa chás nach féidir an t-ordú a rith, scoirfidh blaosc neamhidirghníomhach,\n"
 "    mura bhfuil an rogha blaoisce 'execfail' socruithe.\n"
 "    \n"
 "    Stádas Scortha:\n"
@@ -3165,8 +3001,7 @@ msgstr ""
 msgid ""
 "Exit a login shell.\n"
 "    \n"
-"    Exits a login shell with exit status N.  Returns an error if not "
-"executed\n"
+"    Exits a login shell with exit status N.  Returns an error if not executed\n"
 "    in a login shell."
 msgstr ""
 "Scoir de bhlaosc logála isteach.\n"
@@ -3178,15 +3013,13 @@ msgstr ""
 msgid ""
 "Display or execute commands from the history list.\n"
 "    \n"
-"    fc is used to list or edit and re-execute commands from the history "
-"list.\n"
+"    fc is used to list or edit and re-execute commands from the history list.\n"
 "    FIRST and LAST can be numbers specifying the range, or FIRST can be a\n"
 "    string, which means the most recent command beginning with that\n"
 "    string.\n"
 "    \n"
 "    Options:\n"
-"      -e ENAME\tselect which editor to use.  Default is FCEDIT, then "
-"EDITOR,\n"
+"      -e ENAME\tselect which editor to use.  Default is FCEDIT, then EDITOR,\n"
 "    \t\tthen vi\n"
 "      -l \tlist lines instead of editing\n"
 "      -n\tomit line numbers when listing\n"
@@ -3200,21 +3033,17 @@ msgid ""
 "    the last command.\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns success or status of executed command; non-zero if an error "
-"occurs."
+"    Returns success or status of executed command; non-zero if an error occurs."
 msgstr ""
 "Taispeáin nó rith orduithe ón liosta staire.\n"
 "    \n"
-"    Úsáidtear fc chun orduithe ón liosta staire a liostú, a chur in eagar, "
-"nó a ath-rith.\n"
+"    Úsáidtear fc chun orduithe ón liosta staire a liostú, a chur in eagar, nó a ath-rith.\n"
 "    Más uimhreacha iad CÉAD agus DEIREANACH, sonraíonn siad an raon, nó is\n"
-"    féidir le CÉAD bheith ina theaghrán, rud a chiallaíonn an t-ordú is "
-"deireanaí a\n"
+"    féidir le CÉAD bheith ina theaghrán, rud a chiallaíonn an t-ordú is deireanaí a\n"
 "    thosaíonn leis an teaghrán sin.\n"
 "    \n"
 "    Roghanna:\n"
-"      -e AINM_E\troghnaigh an clár eagarthóra atá le húsáid. FCEDIT an "
-"réamhshocrú,\n"
+"      -e AINM_E\troghnaigh an clár eagarthóra atá le húsáid. FCEDIT an réamhshocrú,\n"
 "               \tansin EDITOR, agus ansin vi.\n"
 "      -n\tfág uimhreacha na línte ar lár agus liosta á thaispeáint\n"
 "      -r\taisiompaigh ord na línte (.i. liostaigh an ceann is nuaí ar dtús)\n"
@@ -3222,12 +3051,10 @@ msgstr ""
 "    San fhormáid 'fc -s [PATRÚN=IONADAÍ ...] [ORDÚ]', ath-ritear ORDÚ\n"
 "    tar éis an t-ionadú SEAN=NUA a dhéanamh.\n"
 "    \n"
-"    Ailias úsáideach is ea r='fc -s', sa chaoi go ritheann 'r cc' an t-ordú "
-"is deireanaí\n"
+"    Ailias úsáideach is ea r='fc -s', sa chaoi go ritheann 'r cc' an t-ordú is deireanaí\n"
 "    a thosaíonn le 'cc', agus ath-ritheann 'r' an t-ordú is deireanaí.\n"
 "    \n"
-"    Stádas Scortha:n\\     Aischuirtear rath nó stádas an ordaithe rite; "
-"neamh-nialas má tharlaíonn earráid."
+"    Stádas Scortha:n\\     Aischuirtear rath nó stádas an ordaithe rite; neamh-nialas má tharlaíonn earráid."
 
 #: builtins.c:758
 msgid ""
@@ -3242,23 +3069,18 @@ msgid ""
 msgstr ""
 "Bog tasc go dtí an tulra.\n"
 "    \n"
-"    Cuirtear an tasc a shonraítear le SONRÚ_TASC sa tulra agus é mar an tasc "
-"reatha.\n"
-"    Mura bhfuil SONRÚ_TASC ann, úsáidtear cibé tasc atá reatha de réir na "
-"blaoisce.\n"
+"    Cuirtear an tasc a shonraítear le SONRÚ_TASC sa tulra agus é mar an tasc reatha.\n"
+"    Mura bhfuil SONRÚ_TASC ann, úsáidtear cibé tasc atá reatha de réir na blaoisce.\n"
 "    \n"
 "    Stádas Scortha:\n"
-"    Aischuirtear stádas an ordaithe a cuireadh sa tulra, nó teip má "
-"tharlaíonn earráid."
+"    Aischuirtear stádas an ordaithe a cuireadh sa tulra, nó teip má tharlaíonn earráid."
 
 #: builtins.c:773
 msgid ""
 "Move jobs to the background.\n"
 "    \n"
-"    Place the jobs identified by each JOB_SPEC in the background, as if "
-"they\n"
-"    had been started with `&'.  If JOB_SPEC is not present, the shell's "
-"notion\n"
+"    Place the jobs identified by each JOB_SPEC in the background, as if they\n"
+"    had been started with `&'.  If JOB_SPEC is not present, the shell's notion\n"
 "    of the current job is used.\n"
 "    \n"
 "    Exit Status:\n"
@@ -3266,10 +3088,8 @@ msgid ""
 msgstr ""
 "Bog tascanna go dtí an cúlra.\n"
 "    \n"
-"    Cuirtear an tasc a shonraítear le SONRÚ_TASC sa chúlra cosúil le é a "
-"thosú le '&'.\n"
-"    Mura bhfuil SONRÚ_TASC ann, úsáidtear cibé tasc atá reatha de réir na "
-"blaoisce.\n"
+"    Cuirtear an tasc a shonraítear le SONRÚ_TASC sa chúlra cosúil le é a thosú le '&'.\n"
+"    Mura bhfuil SONRÚ_TASC ann, úsáidtear cibé tasc atá reatha de réir na blaoisce.\n"
 "    \n"
 "    Stádas Scortha:\n"
 "    Aischuirtear rath ach sa chás go dtarlaíonn earráid nó nach bhfuil\n"
@@ -3280,8 +3100,7 @@ msgid ""
 "Remember or display program locations.\n"
 "    \n"
 "    Determine and remember the full pathname of each command NAME.  If\n"
-"    no arguments are given, information about remembered commands is "
-"displayed.\n"
+"    no arguments are given, information about remembered commands is displayed.\n"
 "    \n"
 "    Options:\n"
 "      -d\tforget the remembered location of each NAME\n"
@@ -3300,7 +3119,6 @@ msgid ""
 msgstr ""
 
 #: builtins.c:812
-#, fuzzy
 msgid ""
 "Display information about builtin commands.\n"
 "    \n"
@@ -3315,24 +3133,21 @@ msgid ""
 "    \t\tPATTERN\n"
 "    \n"
 "    Arguments:\n"
-"      PATTERN\tPattern specifying a help topic\n"
+"      PATTERN\tPattern specifiying a help topic\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns success unless PATTERN is not found or an invalid option is "
-"given."
+"    Returns success unless PATTERN is not found or an invalid option is given."
 msgstr ""
 "Taispeáin eolas maidir le horduithe ionsuite.\n"
 "    \n"
 "    Taispeántar achoimrí na n-orduithe ionsuite. Má shonraítear PATRÚN,\n"
-"    taispeántar cabhair chuimsitheach faoi gach ordú a mheaitseálann "
-"PATRÚN;\n"
+"    taispeántar cabhair chuimsitheach faoi gach ordú a mheaitseálann PATRÚN;\n"
 "    i gcásanna eile taispeántar liosta na n-ábhar cabhrach.\n"
 "    \n"
 "    Roghanna:\n"
 "      -d\ttaispeántar cur síos gairid ar gach ábhar\n"
 "      -m\ttaispeántar úsáid i bhformáid cosúil leis an lámhleabhar man(1)\n"
-"      -s\tní thaispeántar ach achoimre gairid úsáide le haghaidh gach ábhair "
-"a\n"
+"      -s\tní thaispeántar ach achoimre gairid úsáide le haghaidh gach ábhair a\n"
 "        \tmheatseálann PATRÚN\n"
 "    \n"
 "    Argóintí:\n"
@@ -3351,8 +3166,7 @@ msgid ""
 "    \n"
 "    Options:\n"
 "      -c\tclear the history list by deleting all of the entries\n"
-"      -d offset\tdelete the history entry at position OFFSET. Negative\n"
-"    \t\toffsets count back from the end of the history list\n"
+"      -d offset\tdelete the history entry at position OFFSET.\n"
 "    \n"
 "      -a\tappend history lines from this session to the history file\n"
 "      -n\tread all history lines not already read from the history file\n"
@@ -3370,14 +3184,13 @@ msgid ""
 "    \n"
 "    If the HISTTIMEFORMAT variable is set and not null, its value is used\n"
 "    as a format string for strftime(3) to print the time stamp associated\n"
-"    with each displayed history entry.  No time stamps are printed "
-"otherwise.\n"
+"    with each displayed history entry.  No time stamps are printed otherwise.\n"
 "    \n"
 "    Exit Status:\n"
 "    Returns success unless an invalid option is given or an error occurs."
 msgstr ""
 
-#: builtins.c:873
+#: builtins.c:872
 msgid ""
 "Display status of jobs.\n"
 "    \n"
@@ -3402,29 +3215,24 @@ msgid ""
 msgstr ""
 "Taispeáin stádas tascanna.\n"
 "   \n"
-"   Liostáiltear na tascanna gníomhacha. Le SONRÚ_TAISC, ní thaispeántar ach "
-"an tasc sin.\n"
+"   Liostáiltear na tascanna gníomhacha. Le SONRÚ_TAISC, ní thaispeántar ach an tasc sin.\n"
 "   Gan roghanna, taispeántar stádas gach tasc gníomhach.\n"
 "   \n"
 "   Roghanna:\n"
-"     -l\tliostáiltear aitheantais na bpróiseas chomh maith leis an ngnáth-"
-"eolas.\n"
-"     -n\tní liostáiltear ach na próisis le stádas athruithe ón chéad fógra "
-"roimhe seo\n"
+"     -l\tliostáiltear aitheantais na bpróiseas chomh maith leis an ngnáth-eolas.\n"
+"     -n\tní liostáiltear ach na próisis le stádas athruithe ón chéad fógra roimhe seo\n"
 "     -p\tliostáiltear aitheantais na bpróiseas amháin\n"
 "     -r\tní liostáiltear ach tascanna atá ag rith\n"
 "     -s\tní liostáiltear ach tascanna atá stoptha\n"
 "   \n"
-"   Le -x, ritear ORDÚ tar éis gach SONRÚ_TAISC atá in ARGÓINTÍ a athrú go "
-"aitheantas\n"
+"   Le -x, ritear ORDÚ tar éis gach SONRÚ_TAISC atá in ARGÓINTÍ a athrú go aitheantas\n"
 "   próisis an phríomh-phróisis i ngrúpa próiseas an taisc sin.\n"
 "   \n"
 "   Stádas Scortha:\n"
-"   Aischuirtear rath ach sa chás go dtugtar rogha neamhbailí nó go "
-"dtarlaíonn earráid.\n"
+"   Aischuirtear rath ach sa chás go dtugtar rogha neamhbailí nó go dtarlaíonn earráid.\n"
 "   Má úsáidtear -x, aischuirtear an stádas scortha ó ORDÚ.  "
 
-#: builtins.c:900
+#: builtins.c:899
 msgid ""
 "Remove jobs from current shell.\n"
 "    \n"
@@ -3447,16 +3255,14 @@ msgstr ""
 "    \n"
 "    Roghanna:\n"
 "      -a\tbaintear gach tasc mura sholáraítear SONRÚ_TAISC\n"
-"      -h\tmarcáiltear gach SONRÚ_TAISC sa chaoi nach seolfar SIGHUP chuige "
-"má\n"
+"      -h\tmarcáiltear gach SONRÚ_TAISC sa chaoi nach seolfar SIGHUP chuige má\n"
 "        \tfhaigheann an bhlaosc féin SIGHUP\n"
 "      -r\tní bhaintear ach tascanna atá ag rith\n"
 "    \n"
 "    Stádas Scortha:\n"
-"    Aischuirtear rath ach sa chás go dtugtar rogha neamhbhailí nó "
-"SONRÚ_TAISC neamhbhailí."
+"    Aischuirtear rath ach sa chás go dtugtar rogha neamhbhailí nó SONRÚ_TAISC neamhbhailí."
 
-#: builtins.c:919
+#: builtins.c:918
 msgid ""
 "Send a signal to a job.\n"
 "    \n"
@@ -3479,15 +3285,14 @@ msgid ""
 "    Returns success unless an invalid option is given or an error occurs."
 msgstr ""
 
-#: builtins.c:943
+#: builtins.c:942
 msgid ""
 "Evaluate arithmetic expressions.\n"
 "    \n"
 "    Evaluate each ARG as an arithmetic expression.  Evaluation is done in\n"
 "    fixed-width integers with no check for overflow, though division by 0\n"
 "    is trapped and flagged as an error.  The following list of operators is\n"
-"    grouped into levels of equal-precedence operators.  The levels are "
-"listed\n"
+"    grouped into levels of equal-precedence operators.  The levels are listed\n"
 "    in order of decreasing precedence.\n"
 "    \n"
 "    \tid++, id--\tvariable post-increment, post-decrement\n"
@@ -3524,34 +3329,30 @@ msgid ""
 "    If the last ARG evaluates to 0, let returns 1; let returns 0 otherwise."
 msgstr ""
 
-#: builtins.c:988
+#: builtins.c:987
 msgid ""
 "Read a line from the standard input and split it into fields.\n"
 "    \n"
 "    Reads a single line from the standard input, or from file descriptor FD\n"
-"    if the -u option is supplied.  The line is split into fields as with "
-"word\n"
+"    if the -u option is supplied.  The line is split into fields as with word\n"
 "    splitting, and the first word is assigned to the first NAME, the second\n"
 "    word to the second NAME, and so on, with any leftover words assigned to\n"
-"    the last NAME.  Only the characters found in $IFS are recognized as "
-"word\n"
+"    the last NAME.  Only the characters found in $IFS are recognized as word\n"
 "    delimiters.\n"
 "    \n"
-"    If no NAMEs are supplied, the line read is stored in the REPLY "
-"variable.\n"
+"    If no NAMEs are supplied, the line read is stored in the REPLY variable.\n"
 "    \n"
 "    Options:\n"
 "      -a array\tassign the words read to sequential indices of the array\n"
 "    \t\tvariable ARRAY, starting at zero\n"
 "      -d delim\tcontinue until the first character of DELIM is read, rather\n"
 "    \t\tthan newline\n"
-"      -e\tuse Readline to obtain the line\n"
+"      -e\tuse Readline to obtain the line in an interactive shell\n"
 "      -i text\tuse TEXT as the initial text for Readline\n"
 "      -n nchars\treturn after reading NCHARS characters rather than waiting\n"
 "    \t\tfor a newline, but honor a delimiter if fewer than\n"
 "    \t\tNCHARS characters are read before the delimiter\n"
-"      -N nchars\treturn only after reading exactly NCHARS characters, "
-"unless\n"
+"      -N nchars\treturn only after reading exactly NCHARS characters, unless\n"
 "    \t\tEOF is encountered or read times out, ignoring any\n"
 "    \t\tdelimiter\n"
 "      -p prompt\toutput the string PROMPT without a trailing newline before\n"
@@ -3569,14 +3370,12 @@ msgid ""
 "      -u fd\tread from file descriptor FD instead of the standard input\n"
 "    \n"
 "    Exit Status:\n"
-"    The return code is zero, unless end-of-file is encountered, read times "
-"out\n"
-"    (in which case it's greater than 128), a variable assignment error "
-"occurs,\n"
+"    The return code is zero, unless end-of-file is encountered, read times out\n"
+"    (in which case it's greater than 128), a variable assignment error occurs,\n"
 "    or an invalid file descriptor is supplied as the argument to -u."
 msgstr ""
 
-#: builtins.c:1035
+#: builtins.c:1034
 msgid ""
 "Return from a shell function.\n"
 "    \n"
@@ -3590,15 +3389,13 @@ msgstr ""
 "Fill ó fheidhm bhlaoisce.\n"
 "    \n"
 "    Filltear ó fheidhm nó ó script léite as comhad leis an luach scortha\n"
-"    a shonraítear i N. Má fhágtar N ar lár, is é an stádas scortha ná "
-"stadas\n"
+"    a shonraítear i N. Má fhágtar N ar lár, is é an stádas scortha ná stadas\n"
 "    an orduithe dheireanaigh a ritheadh laistigh den fheidhm nó script.\n"
 "    \n"
 "    Stádas Scortha:\n"
-"    Aischuirtear N, nó teip sa chás nach bhfuil an bhlaosc ag rith feidhme "
-"nó scripte."
+"    Aischuirtear N, nó teip sa chás nach bhfuil an bhlaosc ag rith feidhme nó scripte."
 
-#: builtins.c:1048
+#: builtins.c:1047
 msgid ""
 "Set or unset values of shell options and positional parameters.\n"
 "    \n"
@@ -3641,8 +3438,7 @@ msgid ""
 "              physical     same as -P\n"
 "              pipefail     the return value of a pipeline is the status of\n"
 "                           the last command to exit with a non-zero status,\n"
-"                           or zero if no command exited with a non-zero "
-"status\n"
+"                           or zero if no command exited with a non-zero status\n"
 "              posix        change the behavior of bash where the default\n"
 "                           operation differs from the Posix standard to\n"
 "                           match the standard\n"
@@ -3666,8 +3462,7 @@ msgid ""
 "          by default when the shell is interactive.\n"
 "      -P  If set, do not resolve symbolic links when executing commands\n"
 "          such as cd which change the current directory.\n"
-"      -T  If set, the DEBUG and RETURN traps are inherited by shell "
-"functions.\n"
+"      -T  If set, the DEBUG and RETURN traps are inherited by shell functions.\n"
 "      --  Assign any remaining arguments to the positional parameters.\n"
 "          If there are no remaining arguments, the positional parameters\n"
 "          are unset.\n"
@@ -3684,7 +3479,7 @@ msgid ""
 "    Returns success unless an invalid option is given."
 msgstr ""
 
-#: builtins.c:1133
+#: builtins.c:1132
 msgid ""
 "Unset values and attributes of shell variables and functions.\n"
 "    \n"
@@ -3696,8 +3491,7 @@ msgid ""
 "      -n\ttreat each NAME as a name reference and unset the variable itself\n"
 "    \t\trather than the variable it references\n"
 "    \n"
-"    Without options, unset first tries to unset a variable, and if that "
-"fails,\n"
+"    Without options, unset first tries to unset a variable, and if that fails,\n"
 "    tries to unset a function.\n"
 "    \n"
 "    Some variables cannot be unset; also see `readonly'.\n"
@@ -3706,13 +3500,12 @@ msgid ""
 "    Returns success unless an invalid option is given or a NAME is read-only."
 msgstr ""
 
-#: builtins.c:1155
+#: builtins.c:1154
 msgid ""
 "Set export attribute for shell variables.\n"
 "    \n"
 "    Marks each NAME for automatic export to the environment of subsequently\n"
-"    executed commands.  If VALUE is supplied, assign VALUE before "
-"exporting.\n"
+"    executed commands.  If VALUE is supplied, assign VALUE before exporting.\n"
 "    \n"
 "    Options:\n"
 "      -f\trefer to shell functions\n"
@@ -3726,8 +3519,7 @@ msgid ""
 msgstr ""
 "Socraigh an aitreabúid easpórtála le haghaidh athróga blaoisce.\n"
 "    \n"
-"    Marcáiltear gach AINM le haghaidh easpórtáil uathoibríoch go dtí "
-"timpeallacht\n"
+"    Marcáiltear gach AINM le haghaidh easpórtáil uathoibríoch go dtí timpeallacht\n"
 "    na n-orduithe a ritear ina dhiaidh sin. Má sonraítear LUACH, sann LUACH\n"
 "    roimh easpórtáil.\n"
 "    \n"
@@ -3739,10 +3531,9 @@ msgstr ""
 "    Cuireann argóint de '--' deireadh le próiseáil na hargóintí.\n"
 "    \n"
 "    Stádas Scortha:\n"
-"    Aischuirtear rath ach sa chás go dtugtar rogha neamhbhailí nó go bhfuil "
-"AINM neamhbhailí."
+"    Aischuirtear rath ach sa chás go dtugtar rogha neamhbhailí nó go bhfuil AINM neamhbhailí."
 
-#: builtins.c:1174
+#: builtins.c:1173
 msgid ""
 "Mark shell variables as unchangeable.\n"
 "    \n"
@@ -3763,7 +3554,7 @@ msgid ""
 "    Returns success unless an invalid option is given or NAME is invalid."
 msgstr ""
 
-#: builtins.c:1196
+#: builtins.c:1195
 msgid ""
 "Shift positional parameters.\n"
 "    \n"
@@ -3774,7 +3565,7 @@ msgid ""
 "    Returns success unless N is negative or greater than $#."
 msgstr ""
 
-#: builtins.c:1208 builtins.c:1223
+#: builtins.c:1207 builtins.c:1222
 msgid ""
 "Execute commands from a file in the current shell.\n"
 "    \n"
@@ -3795,11 +3586,10 @@ msgstr ""
 "    paraiméadair ionaid agus AINM_CHOMHAID á rith.\n"
 "    \n"
 "    Stádas Scortha:\n"
-"    Aischuirtear stádas an ordaithe dheireanaigh a ritheadh in "
-"AINM_COMHAID.\n"
+"    Aischuirtear stádas an ordaithe dheireanaigh a ritheadh in AINM_COMHAID.\n"
 "    Teipeann air sa chás nach féidir AINM_CHOMHAID a léamh."
 
-#: builtins.c:1239
+#: builtins.c:1238
 msgid ""
 "Suspend shell execution.\n"
 "    \n"
@@ -3819,14 +3609,13 @@ msgstr ""
 "    chur ar fionraí.\n"
 "    \n"
 "    Roghanna:\n"
-"      -f\tcuirtear iallach ar an t-ordú, fiú más blaosc logála isteach atá "
-"ann.\n"
+"      -f\tcuirtear iallach ar an t-ordú, fiú más blaosc logála isteach atá ann.\n"
 "    \n"
 "    Stádas Scortha:\n"
 "    Aischuirtear rath ach sa chás nach bhfuil rialú tascanna cumasaithe,\n"
 "    nó go dtarlaíonn earráid."
 
-#: builtins.c:1255
+#: builtins.c:1254
 msgid ""
 "Evaluate conditional expression.\n"
 "    \n"
@@ -3860,8 +3649,7 @@ msgid ""
 "      -x FILE        True if the file is executable by you.\n"
 "      -O FILE        True if the file is effectively owned by you.\n"
 "      -G FILE        True if the file is effectively owned by your group.\n"
-"      -N FILE        True if the file has been modified since it was last "
-"read.\n"
+"      -N FILE        True if the file has been modified since it was last read.\n"
 "    \n"
 "      FILE1 -nt FILE2  True if file1 is newer than file2 (according to\n"
 "                       modification date).\n"
@@ -3882,8 +3670,7 @@ msgid ""
 "      STRING1 != STRING2\n"
 "                     True if the strings are not equal.\n"
 "      STRING1 < STRING2\n"
-"                     True if STRING1 sorts before STRING2 "
-"lexicographically.\n"
+"                     True if STRING1 sorts before STRING2 lexicographically.\n"
 "      STRING1 > STRING2\n"
 "                     True if STRING1 sorts after STRING2 lexicographically.\n"
 "    \n"
@@ -3909,7 +3696,7 @@ msgid ""
 "    false or an invalid argument is given."
 msgstr ""
 
-#: builtins.c:1337
+#: builtins.c:1336
 msgid ""
 "Evaluate conditional expression.\n"
 "    \n"
@@ -3922,12 +3709,11 @@ msgstr ""
 "    caithfear ']' go díreach a bheith ann mar an argóint\n"
 "    dheireanach, le bheith comhoiriúnach leis an '[' ag an tús."
 
-#: builtins.c:1346
+#: builtins.c:1345
 msgid ""
 "Display process times.\n"
 "    \n"
-"    Prints the accumulated user and system times for the shell and all of "
-"its\n"
+"    Prints the accumulated user and system times for the shell and all of its\n"
 "    child processes.\n"
 "    \n"
 "    Exit Status:\n"
@@ -3942,12 +3728,11 @@ msgstr ""
 "    Stádas Scortha:\n"
 "    Éiríonn leis i gcónaí."
 
-#: builtins.c:1358
+#: builtins.c:1357
 msgid ""
 "Trap signals and other events.\n"
 "    \n"
-"    Defines and activates handlers to be run when the shell receives "
-"signals\n"
+"    Defines and activates handlers to be run when the shell receives signals\n"
 "    or other conditions.\n"
 "    \n"
 "    ARG is a command to be read and executed when the shell receives the\n"
@@ -3956,37 +3741,29 @@ msgid ""
 "    value.  If ARG is the null string each SIGNAL_SPEC is ignored by the\n"
 "    shell and by the commands it invokes.\n"
 "    \n"
-"    If a SIGNAL_SPEC is EXIT (0) ARG is executed on exit from the shell.  "
-"If\n"
-"    a SIGNAL_SPEC is DEBUG, ARG is executed before every simple command.  "
-"If\n"
-"    a SIGNAL_SPEC is RETURN, ARG is executed each time a shell function or "
-"a\n"
-"    script run by the . or source builtins finishes executing.  A "
-"SIGNAL_SPEC\n"
-"    of ERR means to execute ARG each time a command's failure would cause "
-"the\n"
+"    If a SIGNAL_SPEC is EXIT (0) ARG is executed on exit from the shell.  If\n"
+"    a SIGNAL_SPEC is DEBUG, ARG is executed before every simple command.  If\n"
+"    a SIGNAL_SPEC is RETURN, ARG is executed each time a shell function or a\n"
+"    script run by the . or source builtins finishes executing.  A SIGNAL_SPEC\n"
+"    of ERR means to execute ARG each time a command's failure would cause the\n"
 "    shell to exit when the -e option is enabled.\n"
 "    \n"
-"    If no arguments are supplied, trap prints the list of commands "
-"associated\n"
+"    If no arguments are supplied, trap prints the list of commands associated\n"
 "    with each signal.\n"
 "    \n"
 "    Options:\n"
 "      -l\tprint a list of signal names and their corresponding numbers\n"
 "      -p\tdisplay the trap commands associated with each SIGNAL_SPEC\n"
 "    \n"
-"    Each SIGNAL_SPEC is either a signal name in <signal.h> or a signal "
-"number.\n"
+"    Each SIGNAL_SPEC is either a signal name in <signal.h> or a signal number.\n"
 "    Signal names are case insensitive and the SIG prefix is optional.  A\n"
 "    signal may be sent to the shell with \"kill -signal $$\".\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns success unless a SIGSPEC is invalid or an invalid option is "
-"given."
+"    Returns success unless a SIGSPEC is invalid or an invalid option is given."
 msgstr ""
 
-#: builtins.c:1394
+#: builtins.c:1393
 msgid ""
 "Display information about command type.\n"
 "    \n"
@@ -4012,16 +3789,14 @@ msgid ""
 "      NAME\tCommand name to be interpreted.\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns success if all of the NAMEs are found; fails if any are not "
-"found."
+"    Returns success if all of the NAMEs are found; fails if any are not found."
 msgstr ""
 
-#: builtins.c:1425
+#: builtins.c:1424
 msgid ""
 "Modify shell resource limits.\n"
 "    \n"
-"    Provides control over the resources available to the shell and "
-"processes\n"
+"    Provides control over the resources available to the shell and processes\n"
 "    it creates, on systems that allow such control.\n"
 "    \n"
 "    Options:\n"
@@ -4065,7 +3840,7 @@ msgid ""
 "    Returns success unless an invalid option is supplied or an error occurs."
 msgstr ""
 
-#: builtins.c:1475
+#: builtins.c:1474
 msgid ""
 "Display or set file mode mask.\n"
 "    \n"
@@ -4099,78 +3874,62 @@ msgstr ""
 "    Aischuirtear rath ach sa chás go bhfuil MÓD neamhbhailí\n"
 "    nó go sonraítear rogha neamhbhailí."
 
-#: builtins.c:1495
-#, fuzzy
+#: builtins.c:1494
 msgid ""
 "Wait for job completion and return exit status.\n"
 "    \n"
-"    Waits for each process identified by an ID, which may be a process ID or "
-"a\n"
+"    Waits for each process identified by an ID, which may be a process ID or a\n"
 "    job specification, and reports its termination status.  If ID is not\n"
 "    given, waits for all currently active child processes, and the return\n"
-"    status is zero.  If ID is a job specification, waits for all processes\n"
+"    status is zero.  If ID is a job specification, waits for all processes\n"
 "    in that job's pipeline.\n"
 "    \n"
 "    If the -n option is supplied, waits for the next job to terminate and\n"
 "    returns its exit status.\n"
 "    \n"
-"    If the -f option is supplied, and job control is enabled, waits for the\n"
-"    specified ID to terminate, instead of waiting for it to change status.\n"
-"    \n"
 "    Exit Status:\n"
 "    Returns the status of the last ID; fails if ID is invalid or an invalid\n"
 "    option is given."
 msgstr ""
 "Fan go gcríochnaíonn tasc agus aischuir an stádas scortha.\n"
 "    \n"
-"    Fantar le gach próiseas ata sonraithe le AITHEANTAS, a d'fhéadann a "
-"bheith\n"
-"    ina aitheantas próisis nó sonrú taisc, agus tuairiscítear a stádais "
-"chríochnaithe.\n"
-"    Gan AITHEANTAS, fantar le gach macphróiseas gníomhach reatha, agus "
-"aischuirtear 0.\n"
-"    Más sonrú taisc atá in AITHEANTAS, fantar le gach próiseas i bpíblíne an "
-"taisc sin.\n"
-"    \n"
-"    Má sonraítear an rogha -n, fantar leis an gcéad tasc eile a stopann "
-"agus\n"
+"    Fantar le gach próiseas ata sonraithe le AITHEANTAS, a d'fhéadann a bheith\n"
+"    ina aitheantas próisis nó sonrú taisc, agus tuairiscítear a stádais chríochnaithe.\n"
+"    Gan AITHEANTAS, fantar le gach macphróiseas gníomhach reatha, agus aischuirtear 0.\n"
+"    Más sonrú taisc atá in AITHEANTAS, fantar le gach próiseas i bpíblíne an taisc sin.\n"
+"    \n"
+"    Má sonraítear an rogha -n, fantar leis an gcéad tasc eile a stopann agus\n"
 "    aischuirtear a stádais scortha.\n"
 "    \n"
 "    \n"
 "Stádas Scortha:\n"
-"    Aischuirtear stádas an AITHEANTAIS dheireanaigh. Teipeann ar an ordú má "
-"tá\n"
+"    Aischuirtear stádas an AITHEANTAIS dheireanaigh. Teipeann ar an ordú má tá\n"
 "    AITHEANTAS neamhbhailí nó má sonraítear rogha neamhbhailí."
 
-#: builtins.c:1519
+#: builtins.c:1515
 msgid ""
 "Wait for process completion and return exit status.\n"
 "    \n"
-"    Waits for each process specified by a PID and reports its termination "
-"status.\n"
+"    Waits for each process specified by a PID and reports its termination status.\n"
 "    If PID is not given, waits for all currently active child processes,\n"
 "    and the return status is zero.  PID must be a process ID.\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns the status of the last PID; fails if PID is invalid or an "
-"invalid\n"
+"    Returns the status of the last PID; fails if PID is invalid or an invalid\n"
 "    option is given."
 msgstr ""
 "Fan go gcríochnaíonn próiseas agus aischuir an stádas scortha.\n"
 "    \n"
 "    Fantar le gach próiseas ata sonraithe le AITHEANTAS, agus tuairiscítear\n"
-"    a stádais chríochnaithe. Gan AITHEANTAS, fantar le gach macphróiseas "
-"gníomhach\n"
-"    reatha, agus aischuirtear 0. Ní mór d'AITHEANTAS bheith ina aitheantas "
-"próisis.\n"
+"    a stádais chríochnaithe. Gan AITHEANTAS, fantar le gach macphróiseas gníomhach\n"
+"    reatha, agus aischuirtear 0. Ní mór d'AITHEANTAS bheith ina aitheantas próisis.\n"
 "    \n"
 "    \n"
 "Stádas Scortha:\n"
-"    Aischuirtear stádas an AITHEANTAIS dheireanaigh. Teipeann ar an ordú má "
-"tá\n"
+"    Aischuirtear stádas an AITHEANTAIS dheireanaigh. Teipeann ar an ordú má tá\n"
 "    AITHEANTAS neamhbhailí nó má sonraítear rogha neamhbhailí."
 
-#: builtins.c:1534
+#: builtins.c:1530
 msgid ""
 "Execute commands for each member in a list.\n"
 "    \n"
@@ -4192,7 +3951,7 @@ msgstr ""
 "    Stádas Scortha:\n"
 "    Aischuirtear stádas an ordaithe dheireanaigh a ritheadh."
 
-#: builtins.c:1548
+#: builtins.c:1544
 msgid ""
 "Arithmetic for loop.\n"
 "    \n"
@@ -4217,13 +3976,12 @@ msgstr ""
 "    \t\t(( SLONN3 ))\n"
 "    \tdone\n"
 "    Is sloinn uimhreachtúla iad SLONN1, SLONN2 agus SLONN3.\n"
-"    Má fhágtar slonn ar bith ar lár, oibríonn an lúib mar a bheadh luach de "
-"1 air.\n"
+"    Má fhágtar slonn ar bith ar lár, oibríonn an lúib mar a bheadh luach de 1 air.\n"
 "    \n"
 "    Stádas Scortha:\n"
 "    Aischuirtear stádas an ordaithe dheireanaigh a ritheadh."
 
-#: builtins.c:1566
+#: builtins.c:1562
 msgid ""
 "Select words from a list and execute commands.\n"
 "    \n"
@@ -4243,7 +4001,7 @@ msgid ""
 "    Returns the status of the last command executed."
 msgstr ""
 
-#: builtins.c:1587
+#: builtins.c:1583
 msgid ""
 "Report time consumed by pipeline's execution.\n"
 "    \n"
@@ -4259,7 +4017,7 @@ msgid ""
 "    The return status is the return status of PIPELINE."
 msgstr ""
 
-#: builtins.c:1604
+#: builtins.c:1600
 msgid ""
 "Execute commands based on pattern matching.\n"
 "    \n"
@@ -4277,28 +4035,23 @@ msgstr ""
 "    Stádas Scortha:\n"
 "    Aischuirtear stádas an ordaithe dheireanaigh a ritheadh."
 
-#: builtins.c:1616
+#: builtins.c:1612
 msgid ""
 "Execute commands based on conditional.\n"
 "    \n"
-"    The `if COMMANDS' list is executed.  If its exit status is zero, then "
-"the\n"
-"    `then COMMANDS' list is executed.  Otherwise, each `elif COMMANDS' list "
-"is\n"
+"    The `if COMMANDS' list is executed.  If its exit status is zero, then the\n"
+"    `then COMMANDS' list is executed.  Otherwise, each `elif COMMANDS' list is\n"
 "    executed in turn, and if its exit status is zero, the corresponding\n"
-"    `then COMMANDS' list is executed and the if command completes.  "
-"Otherwise,\n"
-"    the `else COMMANDS' list is executed, if present.  The exit status of "
-"the\n"
-"    entire construct is the exit status of the last command executed, or "
-"zero\n"
+"    `then COMMANDS' list is executed and the if command completes.  Otherwise,\n"
+"    the `else COMMANDS' list is executed, if present.  The exit status of the\n"
+"    entire construct is the exit status of the last command executed, or zero\n"
 "    if no condition tested true.\n"
 "    \n"
 "    Exit Status:\n"
 "    Returns the status of the last command executed."
 msgstr ""
 
-#: builtins.c:1633
+#: builtins.c:1629
 msgid ""
 "Execute commands as long as a test succeeds.\n"
 "    \n"
@@ -4316,7 +4069,7 @@ msgstr ""
 "   Stádas Scortha:\n"
 "   Aischuirtear stádas an ordaithe deireanach a ritheadh."
 
-#: builtins.c:1645
+#: builtins.c:1641
 msgid ""
 "Execute commands as long as a test does not succeed.\n"
 "    \n"
@@ -4334,7 +4087,7 @@ msgstr ""
 "   Stádas Scortha:\n"
 "   Aischuirtear stádas an ordaithe deireanach a ritheadh."
 
-#: builtins.c:1657
+#: builtins.c:1653
 msgid ""
 "Create a coprocess named NAME.\n"
 "    \n"
@@ -4356,13 +4109,12 @@ msgstr ""
 "    Stádas Scortha:\n"
 "    Aischuireann an t-ordú coproc stádas scortha de 0."
 
-#: builtins.c:1671
+#: builtins.c:1667
 msgid ""
 "Define shell function.\n"
 "    \n"
 "    Create a shell function named NAME.  When invoked as a simple command,\n"
-"    NAME runs COMMANDs in the calling shell's context.  When NAME is "
-"invoked,\n"
+"    NAME runs COMMANDs in the calling shell's context.  When NAME is invoked,\n"
 "    the arguments are passed to the function as $1...$n, and the function's\n"
 "    name is in $FUNCNAME.\n"
 "    \n"
@@ -4373,14 +4125,13 @@ msgstr ""
 "    \n"
 "    Cruthaíonn feidhm bhlaoisce darbh ainm AINM. Nuair a úsáidtear mar ordú\n"
 "    simplí é, ritheann AINM na hORDUITHE i gcomhthéacs na blaoisce glaoigh.\n"
-"    Nuair a ghlaoitear AINM, tugtar na hargóintí don fheidhm mar $0 ... $n, "
-"agus\n"
+"    Nuair a ghlaoitear AINM, tugtar na hargóintí don fheidhm mar $0 ... $n, agus\n"
 "    tá ainm na feidhme i $FUNCNAME.\n"
 "    \n"
 "    Stádas Scortha:\n"
 "    Aischuirtear rath mura bhfuil AINM inléite amháin."
 
-#: builtins.c:1685
+#: builtins.c:1681
 msgid ""
 "Group commands as a unit.\n"
 "    \n"
@@ -4398,7 +4149,7 @@ msgstr ""
 "    Stádas Scortha:\n"
 "    Aischuirtear stádas an ordaithe dheireanaigh a ritheadh."
 
-#: builtins.c:1697
+#: builtins.c:1693
 msgid ""
 "Resume job in foreground.\n"
 "    \n"
@@ -4421,7 +4172,7 @@ msgstr ""
 "   Stádas Scortha:\n"
 "   Aischuirtear stádas an taisc atosaithe."
 
-#: builtins.c:1712
+#: builtins.c:1708
 msgid ""
 "Evaluate arithmetic expression.\n"
 "    \n"
@@ -4432,16 +4183,13 @@ msgid ""
 "    Returns 1 if EXPRESSION evaluates to 0; returns 0 otherwise."
 msgstr ""
 
-#: builtins.c:1724
+#: builtins.c:1720
 msgid ""
 "Execute conditional command.\n"
 "    \n"
-"    Returns a status of 0 or 1 depending on the evaluation of the "
-"conditional\n"
-"    expression EXPRESSION.  Expressions are composed of the same primaries "
-"used\n"
-"    by the `test' builtin, and may be combined using the following "
-"operators:\n"
+"    Returns a status of 0 or 1 depending on the evaluation of the conditional\n"
+"    expression EXPRESSION.  Expressions are composed of the same primaries used\n"
+"    by the `test' builtin, and may be combined using the following operators:\n"
 "    \n"
 "      ( EXPRESSION )\tReturns the value of EXPRESSION\n"
 "      ! EXPRESSION\t\tTrue if EXPRESSION is false; else false\n"
@@ -4460,7 +4208,7 @@ msgid ""
 "    0 or 1 depending on value of EXPRESSION."
 msgstr ""
 
-#: builtins.c:1750
+#: builtins.c:1746
 msgid ""
 "Common shell variable names and usage.\n"
 "    \n"
@@ -4514,7 +4262,7 @@ msgid ""
 "    \t\tcommands should be saved on the history list.\n"
 msgstr ""
 
-#: builtins.c:1807
+#: builtins.c:1803
 msgid ""
 "Add directories to stack.\n"
 "    \n"
@@ -4545,7 +4293,7 @@ msgid ""
 "    change fails."
 msgstr ""
 
-#: builtins.c:1841
+#: builtins.c:1837
 msgid ""
 "Remove directories from stack.\n"
 "    \n"
@@ -4572,7 +4320,7 @@ msgid ""
 "    change fails."
 msgstr ""
 
-#: builtins.c:1871
+#: builtins.c:1867
 msgid ""
 "Display directory stack.\n"
 "    \n"
@@ -4608,35 +4356,28 @@ msgstr ""
 "    \n"
 "    Roghanna:\n"
 "      -c\tglantar cruach na gcomhadlann trí gach mhír a bhaint de\n"
-"      -l\tná priontáiltear na comhadlanna i gcoibhneas le do chomhadlann "
-"bhaile\n"
+"      -l\tná priontáiltear na comhadlanna i gcoibhneas le do chomhadlann bhaile\n"
 "      \tagus le tilde rompu\n"
 "      -p\tpriontáiltear cruach na gcomhadlann, mír amháin ar gach líne\n"
 "      -v\tpriontáiltear cruach na gcomhadlann, mír amháin ar gach líne agus\n"
 "      \ta háit sa chruach roimpi\n"
 "    \n"
 "    Argóintí:\n"
-"      +N\tTaispeántar mír N, agus uimhrithe curtha ar na míreanna ó thaobh "
-"clé\n"
-"      \tan liosta a thaispeántar le 'dirs' rite gan argóintí, ag tosú ó "
-"náid.\n"
-"      -N\tTaispeántar mír N, agus uimhrithe curtha ar na míreanna ó thaobh "
-"deas\n"
-"      \tan liosta a thaispeántar le 'dirs' rite gan argóintí, ag tosú ó "
-"náid.\n"
+"      +N\tTaispeántar mír N, agus uimhrithe curtha ar na míreanna ó thaobh clé\n"
+"      \tan liosta a thaispeántar le 'dirs' rite gan argóintí, ag tosú ó náid.\n"
+"      -N\tTaispeántar mír N, agus uimhrithe curtha ar na míreanna ó thaobh deas\n"
+"      \tan liosta a thaispeántar le 'dirs' rite gan argóintí, ag tosú ó náid.\n"
 "      \n"
 "      Stádas Scortha:\n"
-"      Aischuirtear rath muna bhfuil rogha neamhbhailí ann nó muna tharla "
-"earráid."
+"      Aischuirtear rath muna bhfuil rogha neamhbhailí ann nó muna tharla earráid."
 
-#: builtins.c:1902
-#, fuzzy
+#: builtins.c:1898
 msgid ""
 "Set and unset shell options.\n"
 "    \n"
 "    Change the setting of each shell option OPTNAME.  Without any option\n"
-"    arguments, list each supplied OPTNAME, or all shell options if no\n"
-"    OPTNAMEs are given, with an indication of whether or not each is set.\n"
+"    arguments, list all shell options with an indication of whether or not each\n"
+"    is set.\n"
 "    \n"
 "    Options:\n"
 "      -o\trestrict OPTNAMEs to those defined for use with `set -o'\n"
@@ -4651,8 +4392,7 @@ msgid ""
 msgstr ""
 "Socraigh agus díshocraigh roghanna na blaoisce.\n"
 "    \n"
-"    Athraítear socrú gach rogha blaoisce AINM_ROGHA. Gan argóintí roghnacha "
-"ar bith,\n"
+"    Athraítear socrú gach rogha blaoisce AINM_ROGHA. Gan argóintí roghnacha ar bith,\n"
 "    liostáiltear gach rogha blaoisce lena stádas socruithe nó díshocraithe.\n"
 "    \n"
 "    Roghanna:\n"
@@ -4663,11 +4403,10 @@ msgstr ""
 "      -u\tdíchumasaigh (díshocraigh) gach AINM_ROGHA\n"
 "    \n"
 "    Stádas Scortha:\n"
-"    Aischuirtear rath má tá AINM_ROGHA cumasaithe. Teipeann ar shopt má "
-"thugtar\n"
+"    Aischuirtear rath má tá AINM_ROGHA cumasaithe. Teipeann ar shopt má thugtar\n"
 "    rogha neamhbhailí, nó má tá AINM_ROGHA díchumasaithe."
 
-#: builtins.c:1923
+#: builtins.c:1919
 msgid ""
 "Formats and prints ARGUMENTS under control of the FORMAT.\n"
 "    \n"
@@ -4675,45 +4414,36 @@ msgid ""
 "      -v var\tassign the output to shell variable VAR rather than\n"
 "    \t\tdisplay it on the standard output\n"
 "    \n"
-"    FORMAT is a character string which contains three types of objects: "
-"plain\n"
-"    characters, which are simply copied to standard output; character "
-"escape\n"
+"    FORMAT is a character string which contains three types of objects: plain\n"
+"    characters, which are simply copied to standard output; character escape\n"
 "    sequences, which are converted and copied to the standard output; and\n"
-"    format specifications, each of which causes printing of the next "
-"successive\n"
+"    format specifications, each of which causes printing of the next successive\n"
 "    argument.\n"
 "    \n"
-"    In addition to the standard format specifications described in printf"
-"(1),\n"
+"    In addition to the standard format specifications described in printf(1),\n"
 "    printf interprets:\n"
 "    \n"
 "      %b\texpand backslash escape sequences in the corresponding argument\n"
 "      %q\tquote the argument in a way that can be reused as shell input\n"
-"      %(fmt)T\toutput the date-time string resulting from using FMT as a "
-"format\n"
+"      %(fmt)T\toutput the date-time string resulting from using FMT as a format\n"
 "    \t        string for strftime(3)\n"
 "    \n"
 "    The format is re-used as necessary to consume all of the arguments.  If\n"
 "    there are fewer arguments than the format requires,  extra format\n"
-"    specifications behave as if a zero value or null string, as "
-"appropriate,\n"
+"    specifications behave as if a zero value or null string, as appropriate,\n"
 "    had been supplied.\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns success unless an invalid option is given or a write or "
-"assignment\n"
+"    Returns success unless an invalid option is given or a write or assignment\n"
 "    error occurs."
 msgstr ""
 
-#: builtins.c:1957
+#: builtins.c:1953
 msgid ""
 "Specify how arguments are to be completed by Readline.\n"
 "    \n"
-"    For each NAME, specify how arguments are to be completed.  If no "
-"options\n"
-"    are supplied, existing completion specifications are printed in a way "
-"that\n"
+"    For each NAME, specify how arguments are to be completed.  If no options\n"
+"    are supplied, existing completion specifications are printed in a way that\n"
 "    allows them to be reused as input.\n"
 "    \n"
 "    Options:\n"
@@ -4733,13 +4463,12 @@ msgid ""
 "    Returns success unless an invalid option is supplied or an error occurs."
 msgstr ""
 
-#: builtins.c:1985
+#: builtins.c:1981
 msgid ""
 "Display possible completions depending on the options.\n"
 "    \n"
 "    Intended to be used from within a shell function generating possible\n"
-"    completions.  If the optional WORD argument is supplied, matches "
-"against\n"
+"    completions.  If the optional WORD argument is supplied, matches against\n"
 "    WORD are generated.\n"
 "    \n"
 "    Exit Status:\n"
@@ -4747,25 +4476,20 @@ msgid ""
 msgstr ""
 "Taispeáin na hiomlánaithe atá ar fáil de réir na roghanna.\n"
 "    \n"
-"    Tá sé seo ceaptha le húsáid i bhfeidmeanna blaoisce a dhéanann "
-"iomlánaithe.\n"
+"    Tá sé seo ceaptha le húsáid i bhfeidmeanna blaoisce a dhéanann iomlánaithe.\n"
 "    Má thugtar an argóint roghnach FOCAL, cruthaítear iomlánaithe\n"
 "    atá comhoiriúnach le FOCAL.\n"
 "    \n"
 "    Stádas Scortha:\n"
-"    Aischuirtear rath ach sa chás go dtugtar rogha neamhbhailí nó go "
-"dtarlaíonn earráid."
+"    Aischuirtear rath ach sa chás go dtugtar rogha neamhbhailí nó go dtarlaíonn earráid."
 
-#: builtins.c:2000
+#: builtins.c:1996
 msgid ""
 "Modify or display completion options.\n"
 "    \n"
-"    Modify the completion options for each NAME, or, if no NAMEs are "
-"supplied,\n"
-"    the completion currently being executed.  If no OPTIONs are given, "
-"print\n"
-"    the completion options for each NAME or the current completion "
-"specification.\n"
+"    Modify the completion options for each NAME, or, if no NAMEs are supplied,\n"
+"    the completion currently being executed.  If no OPTIONs are given, print\n"
+"    the completion options for each NAME or the current completion specification.\n"
 "    \n"
 "    Options:\n"
 "    \t-o option\tSet completion option OPTION for each NAME\n"
@@ -4787,26 +4511,21 @@ msgid ""
 "    have a completion specification defined."
 msgstr ""
 
-#: builtins.c:2030
+#: builtins.c:2026
 msgid ""
 "Read lines from the standard input into an indexed array variable.\n"
 "    \n"
-"    Read lines from the standard input into the indexed array variable "
-"ARRAY, or\n"
-"    from file descriptor FD if the -u option is supplied.  The variable "
-"MAPFILE\n"
+"    Read lines from the standard input into the indexed array variable ARRAY, or\n"
+"    from file descriptor FD if the -u option is supplied.  The variable MAPFILE\n"
 "    is the default ARRAY.\n"
 "    \n"
 "    Options:\n"
 "      -d delim\tUse DELIM to terminate lines, instead of newline\n"
-"      -n count\tCopy at most COUNT lines.  If COUNT is 0, all lines are "
-"copied\n"
-"      -O origin\tBegin assigning to ARRAY at index ORIGIN.  The default "
-"index is 0\n"
+"      -n count\tCopy at most COUNT lines.  If COUNT is 0, all lines are copied\n"
+"      -O origin\tBegin assigning to ARRAY at index ORIGIN.  The default index is 0\n"
 "      -s count\tDiscard the first COUNT lines read\n"
 "      -t\tRemove a trailing DELIM from each line read (default newline)\n"
-"      -u fd\tRead lines from file descriptor FD instead of the standard "
-"input\n"
+"      -u fd\tRead lines from file descriptor FD instead of the standard input\n"
 "      -C callback\tEvaluate CALLBACK each time QUANTUM lines are read\n"
 "      -c quantum\tSpecify the number of lines read between each call to\n"
 "    \t\t\tCALLBACK\n"
@@ -4819,17 +4538,15 @@ msgid ""
 "    element to be assigned and the line to be assigned to that element\n"
 "    as additional arguments.\n"
 "    \n"
-"    If not supplied with an explicit origin, mapfile will clear ARRAY "
-"before\n"
+"    If not supplied with an explicit origin, mapfile will clear ARRAY before\n"
 "    assigning to it.\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns success unless an invalid option is given or ARRAY is readonly "
-"or\n"
+"    Returns success unless an invalid option is given or ARRAY is readonly or\n"
 "    not an indexed array."
 msgstr ""
 
-#: builtins.c:2066
+#: builtins.c:2062
 msgid ""
 "Read lines from a file into an array variable.\n"
 "    \n"
@@ -4855,13 +4572,10 @@ msgstr ""
 #~ msgstr "times"
 
 #~ msgid "xrealloc: cannot reallocate %lu bytes (%lu bytes allocated)"
-#~ msgstr ""
-#~ "xrealloc: ní féidir %lu beart a athleithdháileadh (%lu beart leithdháilte)"
+#~ msgstr "xrealloc: ní féidir %lu beart a athleithdháileadh (%lu beart leithdháilte)"
 
 #~ msgid "xrealloc: cannot allocate %lu bytes"
 #~ msgstr "xrealloc: ní féidir %lu beart a leithdháileadh"
 
 #~ msgid "xrealloc: %s:%d: cannot reallocate %lu bytes (%lu bytes allocated)"
-#~ msgstr ""
-#~ "xrealloc: %s:%d: ní féidir %lu beart a athleithdháileadh (%lu beart "
-#~ "leithdháilte)"
+#~ msgstr "xrealloc: %s:%d: ní féidir %lu beart a athleithdháileadh (%lu beart leithdháilte)"
index 7d2125b91f934cfeb734e5ebdfcab7cd46f7096c..fde493a75bd78a4e49602a4ff9c6b500fbb62816 100644 (file)
--- a/po/hr.po
+++ b/po/hr.po
 # Translation of bash to Croatian.
-# Copyright © 2012 Free Software Foundation, Inc.
+# Copyright © 2016 Free Software Foundation, Inc.
 # This file is distributed under the same license as the bash package.
-# Tomislav Krznar <tomislav.krznar@gmail.com>, 2012, 2013.
 #
+# Tomislav Krznar <tomislav.krznar@gmail.com>, 2012, 2013.
+# Božidar Putanec <bozidarp@yahoo.com>, 2018.
 msgid ""
 msgstr ""
-"Project-Id-Version: bash 4.2\n"
+"Project-Id-Version: bash 4.4\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2018-04-27 14:15-0400\n"
-"PO-Revision-Date: 2013-04-18 01:00+0200\n"
-"Last-Translator: Tomislav Krznar <tomislav.krznar@gmail.com>\n"
+"POT-Creation-Date: 2016-09-10 12:42-0400\n"
+"PO-Revision-Date: 2018-05-21 18:15-0800\n"
+"Last-Translator: Božidar Putanec <bozidarp@yahoo.com>\n"
 "Language-Team: Croatian <lokalizacija@linux.hr>\n"
+"Language: hr\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"Language: hr\n"
 "X-Bugs: Report translation errors to the Language-Team address.\n"
-"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%"
-"10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
-"X-Generator: Gtranslator 2.91.6\n"
+"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
+"X-Generator: Lokalize 2.0\n"
 
-#: arrayfunc.c:58
+#: arrayfunc.c:54
 msgid "bad array subscript"
-msgstr "neispravan indeks polja"
+msgstr "nevaljani indeks polja"
 
-#: arrayfunc.c:373 builtins/declare.def:618 variables.c:2188 variables.c:2214
-#: variables.c:2922
+#: arrayfunc.c:368 builtins/declare.def:574 variables.c:2092 variables.c:2118
+#: variables.c:2730
 #, c-format
 msgid "%s: removing nameref attribute"
-msgstr ""
+msgstr "%s: uklanja se atribut nameref"
 
-#: arrayfunc.c:398 builtins/declare.def:831
+#: arrayfunc.c:393 builtins/declare.def:780
 #, c-format
 msgid "%s: cannot convert indexed to associative array"
-msgstr "%s: ne mogu pretvoriti indeksirano u asocijativno polje"
+msgstr "%s: nije moguće pretvoriti indeksirano u asocijativno polje"
 
-#: arrayfunc.c:582
+#: arrayfunc.c:578
 #, c-format
 msgid "%s: invalid associative array key"
-msgstr "%s: neispravan ključ asocijativnog polja"
+msgstr "%s: nevaljani ključ asocijativnoga polja"
 
-#: arrayfunc.c:584
+#: arrayfunc.c:580
 #, c-format
 msgid "%s: cannot assign to non-numeric index"
-msgstr "%s: ne mogu pridružiti nenumeričkom indeksu"
+msgstr "%s: indeks mora biti numerički"
 
-#: arrayfunc.c:629
+#: arrayfunc.c:625
 #, c-format
 msgid "%s: %s: must use subscript when assigning associative array"
-msgstr "%s: %s: mora koristiti indeks pri pridruživanju asocijativnog polja"
+msgstr "%s: %s: mora se koristiti indeks pri dodijeli asocijativnoga polja"
 
-#: bashhist.c:436
+#: bashhist.c:421
 #, c-format
 msgid "%s: cannot create: %s"
-msgstr "%s: ne mogu napraviti: %s"
+msgstr "%s: nije moguće napraviti: %s"
 
-#: bashline.c:4111
+#: bashline.c:4091
 msgid "bash_execute_unix_command: cannot find keymap for command"
-msgstr "bash_execute_unix_command: ne mogu pronaći tipkovničku mapu za naredbu"
+msgstr "bash_execute_unix_command: nije moguće pronaći keymap za naredbu"
 
-#: bashline.c:4221
+#: bashline.c:4189
 #, c-format
 msgid "%s: first non-whitespace character is not `\"'"
-msgstr "%s: prvi znak različit od praznine nije „\"”"
+msgstr "%s: prvi znak, koji nije bjelina, nije „\"“"
 
-#: bashline.c:4250
+#: bashline.c:4218
 #, c-format
 msgid "no closing `%c' in %s"
-msgstr "nema zatvorene „%c” u %s"
+msgstr "nema zaključnoga „%c“ u %s"
 
-#: bashline.c:4284
+#: bashline.c:4252
 #, c-format
 msgid "%s: missing colon separator"
-msgstr "%s: nedostaje dvotočje za razdvajanje"
+msgstr "%s: nema razdjelnika dvotočke"
 
-#: braces.c:331
+#: braces.c:329
 #, c-format
 msgid "brace expansion: cannot allocate memory for %s"
 msgstr ""
+"brace expansion: nije moguće dodijeliti memoriju za %s\n"
+"(primjer ekspanzije unutar vitičastih zagrada: echo a{d,c}e -> ade, ace)"
 
-#: braces.c:429
+# Brace expansion is a mechanism by which arbitrary strings may be generated
+#: braces.c:427
 #, c-format
-msgid "brace expansion: failed to allocate memory for %u elements"
+msgid "brace expansion: failed to allocate memory for %d elements"
 msgstr ""
+"brace expansion: nije uspjelo dodijeliti memoriju za %d elemenata\n"
+"(primjer ekspanzije unutar vitičastih zagrada: echo a{d,c}e -> ade, ace)"
 
-#: braces.c:473
+#: braces.c:471
 #, c-format
 msgid "brace expansion: failed to allocate memory for `%s'"
 msgstr ""
+"brace expansion: nije uspjelo dodijeliti memoriju za „%s“\n"
+"(primjer ekspanzije unutar vitičastih zagrada: echo a{d,c}e -> ade, ace)"
 
-#: builtins/alias.def:131
+#: builtins/alias.def:133
 #, c-format
 msgid "`%s': invalid alias name"
-msgstr "â\80\9e%sâ\80\9d: neispravno drugo ime"
+msgstr "â\80\9e%sâ\80\9c: nevaljano ime aliasa"
 
-#: builtins/bind.def:122 builtins/bind.def:125
+#: builtins/bind.def:123 builtins/bind.def:126
 msgid "line editing not enabled"
-msgstr "uređivanje redaka nije omogućeno"
+msgstr "redigiranje retka nije omogućeno"
 
-#: builtins/bind.def:212
+#: builtins/bind.def:213
 #, c-format
 msgid "`%s': invalid keymap name"
-msgstr "â\80\9e%sâ\80\9d: neispravno ime tipkovniÄ\8dke mape"
+msgstr "â\80\9e%sâ\80\9c: nevaljano ime za keymap"
 
-#: builtins/bind.def:252
+#: builtins/bind.def:253
 #, c-format
 msgid "%s: cannot read: %s"
-msgstr "%s: ne mogu čitati: %s"
+msgstr "%s: nije moguće pročitati: %s"
+
+#: builtins/bind.def:270
+#, c-format
+msgid "`%s': cannot unbind"
+msgstr "„%s“: nije moguće razvezati"
 
-#: builtins/bind.def:304 builtins/bind.def:334
+#: builtins/bind.def:308 builtins/bind.def:338
 #, c-format
 msgid "`%s': unknown function name"
-msgstr "â\80\9e%sâ\80\9d: nepoznato ime funkcije"
+msgstr "â\80\9e%sâ\80\9c: nepoznato ime funkcije"
 
-#: builtins/bind.def:312
+#: builtins/bind.def:316
 #, c-format
 msgid "%s is not bound to any keys.\n"
-msgstr "%s nije pridružen nijednoj tipki.\n"
+msgstr "%s nije vezano s nijednom tipkom.\n"
 
-#: builtins/bind.def:316
+#: builtins/bind.def:320
 #, c-format
 msgid "%s can be invoked via "
 msgstr "%s se može pozvati pomoću "
 
-#: builtins/bind.def:353 builtins/bind.def:368
-#, c-format
-msgid "`%s': cannot unbind"
-msgstr "„%s”: ne mogu ukloniti vezu"
-
-#: builtins/break.def:77 builtins/break.def:119
+#: builtins/break.def:79 builtins/break.def:121
 msgid "loop count"
-msgstr "broj ponavljanja"
+msgstr "broj ponavljanja"
 
-#: builtins/break.def:139
+#: builtins/break.def:141
 msgid "only meaningful in a `for', `while', or `until' loop"
-msgstr "ima značenje samo u petljama „for”, „while” ili „until”"
+msgstr "ima značenje samo u „for“, „while“ ili „until“ petljama"
 
 #: builtins/caller.def:136
 msgid ""
@@ -142,241 +149,240 @@ msgid ""
 "    \n"
 "    Without EXPR, returns "
 msgstr ""
-"Vraća kontekst poziva trenutnog potprograma.\n"
+"Vraća kontekst od trenutačnoga poziva funkciji.\n"
 "    \n"
-"    Bez IZRAZA vraća "
+"    Bez EXPR, rezultati "
 
-#: builtins/cd.def:319
+#: builtins/cd.def:321
 msgid "HOME not set"
-msgstr "HOME nije postavljen"
+msgstr "HOME varijabla nije definirana"
 
-#: builtins/cd.def:327 builtins/common.c:161 test.c:889
+#: builtins/cd.def:329 builtins/common.c:167 test.c:885
 msgid "too many arguments"
 msgstr "previše argumenata"
 
-#: builtins/cd.def:334
-#, fuzzy
+#: builtins/cd.def:336
 msgid "null directory"
-msgstr "nema drugog direktorija"
+msgstr "null direktorij"
 
-#: builtins/cd.def:345
+#: builtins/cd.def:347
 msgid "OLDPWD not set"
-msgstr "OLDPWD nije postavljen"
+msgstr "OLDPWD nije postavljeni"
 
-#: builtins/common.c:96
+#: builtins/common.c:102
 #, c-format
 msgid "line %d: "
 msgstr "redak %d: "
 
-#: builtins/common.c:134 error.c:264
+#: builtins/common.c:140 error.c:265
 #, c-format
 msgid "warning: "
 msgstr "upozorenje: "
 
-#: builtins/common.c:148
+#: builtins/common.c:154
 #, c-format
 msgid "%s: usage: "
 msgstr "%s: uporaba: "
 
-#: builtins/common.c:193 shell.c:510 shell.c:838
+#: builtins/common.c:199 shell.c:514 shell.c:825
 #, c-format
 msgid "%s: option requires an argument"
 msgstr "%s: opcija zahtijeva argument"
 
-#: builtins/common.c:200
+#: builtins/common.c:206
 #, c-format
 msgid "%s: numeric argument required"
-msgstr "%s: potreban je numerički argument"
+msgstr "%s: zahtijeva se numerički argument"
 
-#: builtins/common.c:207
+#: builtins/common.c:213
 #, c-format
 msgid "%s: not found"
-msgstr "%s: nije pronađen"
+msgstr "%s: nije pronađeno"
 
-#: builtins/common.c:216 shell.c:851
+#: builtins/common.c:222 shell.c:838
 #, c-format
 msgid "%s: invalid option"
-msgstr "%s: neispravna opcija"
+msgstr "%s: nevaljana opcija"
 
-#: builtins/common.c:223
+#: builtins/common.c:229
 #, c-format
 msgid "%s: invalid option name"
-msgstr "%s: neispravno ime opcije"
+msgstr "%s: nevaljano ime opcije"
 
-#: builtins/common.c:230 execute_cmd.c:2342 general.c:294 general.c:299
+#: builtins/common.c:236 general.c:293 general.c:298
 #, c-format
 msgid "`%s': not a valid identifier"
-msgstr "â\80\9e%sâ\80\9d: nije ispravan identifikator"
+msgstr "â\80\9e%sâ\80\9c: nije valjani identifikator"
 
-#: builtins/common.c:240
+#: builtins/common.c:246
 msgid "invalid octal number"
-msgstr "neispravan oktalni broj"
+msgstr "nevaljani oktalni broj"
 
-#: builtins/common.c:242
+#: builtins/common.c:248
 msgid "invalid hex number"
-msgstr "neispravan heksadekadski broj"
+msgstr "nevaljani heksadecimalni broj"
 
-#: builtins/common.c:244 expr.c:1538
+#: builtins/common.c:250 expr.c:1473
 msgid "invalid number"
-msgstr "neispravan broj"
+msgstr "nevaljani broj"
 
-#: builtins/common.c:252
+#: builtins/common.c:258
 #, c-format
 msgid "%s: invalid signal specification"
-msgstr "%s: neispravno naveden signal"
+msgstr "%s: nevaljana specifikacija signala"
 
-#: builtins/common.c:259
+#: builtins/common.c:265
 #, c-format
 msgid "`%s': not a pid or valid job spec"
-msgstr "â\80\9e%sâ\80\9d: nije pid ili ispravno naveden zadatak"
+msgstr "â\80\9e%sâ\80\9c: nije PID ili valjani pokazatelj posla"
 
-#: builtins/common.c:266 error.c:510
+#: builtins/common.c:272 error.c:511
 #, c-format
 msgid "%s: readonly variable"
 msgstr "%s: varijabla samo za čitanje"
 
-#: builtins/common.c:274
+#: builtins/common.c:280
 #, c-format
 msgid "%s: %s out of range"
-msgstr "%s: %s je izvan granica"
+msgstr "%s: %s je izvan raspona"
 
-#: builtins/common.c:274 builtins/common.c:276
+#: builtins/common.c:280 builtins/common.c:282
 msgid "argument"
 msgstr "argument"
 
-#: builtins/common.c:276
+#: builtins/common.c:282
 #, c-format
 msgid "%s out of range"
-msgstr "%s je izvan granica"
+msgstr "%s je izvan raspona"
 
-#: builtins/common.c:284
+#: builtins/common.c:290
 #, c-format
 msgid "%s: no such job"
-msgstr "%s: nema takvog zadatka"
+msgstr "%s: nema takvoga posla"
 
-#: builtins/common.c:292
+#: builtins/common.c:298
 #, c-format
 msgid "%s: no job control"
-msgstr "%s: nema kontrole zadataka"
+msgstr "%s: nema upravljanja poslom u ovoj ljuski"
 
-#: builtins/common.c:294
+#: builtins/common.c:300
 msgid "no job control"
-msgstr "nema kontrole zadataka"
+msgstr "nema upravljanja poslom u ovoj ljuski"
 
-#: builtins/common.c:304
+#: builtins/common.c:310
 #, c-format
 msgid "%s: restricted"
-msgstr "%s: ograničeno"
+msgstr "%s: ograničeni način"
 
-#: builtins/common.c:306
+#: builtins/common.c:312
 msgid "restricted"
-msgstr "ograničeno"
+msgstr "ograničeni način"
 
-#: builtins/common.c:314
+#: builtins/common.c:320
 #, c-format
 msgid "%s: not a shell builtin"
-msgstr "%s: nije ugrađen u ljusku"
+msgstr "%s: nije ugrađena bash naredba"
 
-#: builtins/common.c:323
+#: builtins/common.c:329
 #, c-format
 msgid "write error: %s"
 msgstr "greška pisanja: %s"
 
-#: builtins/common.c:331
+#: builtins/common.c:337
 #, c-format
 msgid "error setting terminal attributes: %s"
 msgstr "greška pri postavljanju svojstava terminala: %s"
 
-#: builtins/common.c:333
+#: builtins/common.c:339
 #, c-format
 msgid "error getting terminal attributes: %s"
 msgstr "greška pri preuzimanju svojstava terminala: %s"
 
-#: builtins/common.c:579
+#: builtins/common.c:585
 #, c-format
 msgid "%s: error retrieving current directory: %s: %s\n"
-msgstr "%s: greška pri otkrivanju trenutnog direktorija: %s: %s\n"
+msgstr "%s: nije moguće pronaći trenutačno direktorij: %s: %s\n"
 
-#: builtins/common.c:645 builtins/common.c:647
+#: builtins/common.c:651 builtins/common.c:653
 #, c-format
 msgid "%s: ambiguous job spec"
-msgstr "%s: višeznačan navod zadatka"
+msgstr "%s: dvosmisleni pokazatelj posla"
 
-#: builtins/common.c:908
+#: builtins/common.c:918
 msgid "help not available in this version"
-msgstr ""
+msgstr "u ovoj inačici pomoć nije ugrađena"
 
 #: builtins/complete.def:278
 #, c-format
 msgid "%s: invalid action name"
-msgstr "%s: neispravno ime radnje"
+msgstr "%s: nevaljano ime za akciju"
 
-#: builtins/complete.def:452 builtins/complete.def:653
-#: builtins/complete.def:874
+#: builtins/complete.def:452 builtins/complete.def:647
+#: builtins/complete.def:858
 #, c-format
 msgid "%s: no completion specification"
-msgstr "%s: nije navedeno nadopunjavanje"
+msgstr "%s: dovršavanje nije specificirano"
 
-#: builtins/complete.def:707
+#: builtins/complete.def:699
 msgid "warning: -F option may not work as you expect"
-msgstr "upozorenje: opcija -F možda neće raditi kako želite"
+msgstr "upozorenje: opcija -F možda neće raditi prema očekivanju"
 
-#: builtins/complete.def:709
+#: builtins/complete.def:701
 msgid "warning: -C option may not work as you expect"
-msgstr "upozorenje: opcija -C možda neće raditi kako želite"
+msgstr "upozorenje: opcija -C možda neće raditi prema očekivanju"
 
-#: builtins/complete.def:847
+#: builtins/complete.def:831
 msgid "not currently executing completion function"
-msgstr "trenutno ne izvršavam funkciju nadopunjavanja"
+msgstr "trenutačno se ne izvršava funkcija kompletiranja"
 
-#: builtins/declare.def:132
+#: builtins/declare.def:127
 msgid "can only be used in a function"
 msgstr "može se koristiti samo u funkciji"
 
-#: builtins/declare.def:369 builtins/declare.def:736
+#: builtins/declare.def:332 builtins/declare.def:685
 #, c-format
 msgid "%s: reference variable cannot be an array"
-msgstr ""
+msgstr "%s: referentna varijabla ne može biti polje"
 
-#: builtins/declare.def:380 variables.c:3161
+#: builtins/declare.def:343 variables.c:2959
 #, c-format
 msgid "%s: nameref variable self references not allowed"
-msgstr ""
+msgstr "%s: varijabla nameref ukazuje na samu sebe, a to nije dopušteno"
 
-#: builtins/declare.def:385 variables.c:2018 variables.c:3083 variables.c:3095
-#: variables.c:3158
+#: builtins/declare.def:348 variables.c:1928 variables.c:2877 variables.c:2889
+#: variables.c:2956
 #, c-format
 msgid "%s: circular name reference"
-msgstr ""
+msgstr "%s: kružna referencija na ime"
 
-#: builtins/declare.def:390 builtins/declare.def:742 builtins/declare.def:753
-#, fuzzy, c-format
+#: builtins/declare.def:353 builtins/declare.def:691 builtins/declare.def:702
+#, c-format
 msgid "`%s': invalid variable name for name reference"
-msgstr "â\80\9e%sâ\80\9d: neispravno drugo ime"
+msgstr "â\80\9e%sâ\80\9c: nevaljano ime varijable za referenciju na ime"
 
-#: builtins/declare.def:500
+#: builtins/declare.def:463
 msgid "cannot use `-f' to make functions"
-msgstr "ne mogu koristiti „-f” za izradu funkcija"
+msgstr "„-f“ se ne može koristiti za definiranje funkcije"
 
-#: builtins/declare.def:512 execute_cmd.c:5797
+#: builtins/declare.def:475 execute_cmd.c:5632
 #, c-format
 msgid "%s: readonly function"
 msgstr "%s: funkcija samo za čitanje"
 
-#: builtins/declare.def:804
+#: builtins/declare.def:753
 #, c-format
 msgid "%s: quoted compound array assignment deprecated"
-msgstr ""
+msgstr "%s: dodjeljivanje citiranoga složenog polja je zastarjelo"
 
-#: builtins/declare.def:818
+#: builtins/declare.def:767
 #, c-format
 msgid "%s: cannot destroy array variables in this way"
-msgstr "%s: ne mogu uništiti varijable polja na ovaj način"
+msgstr "%s: nije moguće uništiti varijable polja na ovaj način"
 
-#: builtins/declare.def:825 builtins/read.def:784
+#: builtins/declare.def:774 builtins/read.def:751
 #, c-format
 msgid "%s: cannot convert associative to indexed array"
-msgstr "%s: ne mogu pretvoriti asocijativno u indeksirano polje"
+msgstr "%s: nije moguće pretvoriti asocijativno u indeksirano polje"
 
 #: builtins/enable.def:143 builtins/enable.def:151
 msgid "dynamic loading not available"
@@ -385,17 +391,17 @@ msgstr "dinamičko učitavanje nije dostupno"
 #: builtins/enable.def:343
 #, c-format
 msgid "cannot open shared object %s: %s"
-msgstr "ne mogu otvoriti dijeljeni objekt %s: %s"
+msgstr "nije moguće otvoriti dijeljeni objekt %s: %s"
 
 #: builtins/enable.def:369
 #, c-format
 msgid "cannot find %s in shared object %s: %s"
-msgstr "ne mogu pronaći %s u dijeljenom objektu %s: %s"
+msgstr "nije moguće pronaći %s u dijeljenom objektu %s: %s"
 
 #: builtins/enable.def:387
 #, c-format
 msgid "load function for %s returns failure (%d): not loaded"
-msgstr ""
+msgstr "funkcija učitavanja za %s završila je s  pogreškom (%d): nije učitano"
 
 #: builtins/enable.def:512
 #, c-format
@@ -405,119 +411,118 @@ msgstr "%s: nije dinamički učitan"
 #: builtins/enable.def:538
 #, c-format
 msgid "%s: cannot delete: %s"
-msgstr "%s: ne mogu ukloniti: %s"
+msgstr "%s: nije moguće izbrisati: %s"
 
-#: builtins/evalfile.c:138 builtins/hash.def:184 execute_cmd.c:5629
+#: builtins/evalfile.c:144 builtins/hash.def:172 execute_cmd.c:5472
 #, c-format
 msgid "%s: is a directory"
 msgstr "%s: to je direktorij"
 
-#: builtins/evalfile.c:144
+#: builtins/evalfile.c:150
 #, c-format
 msgid "%s: not a regular file"
 msgstr "%s: nije obična datoteka"
 
-#: builtins/evalfile.c:153
+#: builtins/evalfile.c:159
 #, c-format
 msgid "%s: file is too large"
 msgstr "%s: datoteka je prevelika"
 
-#: builtins/evalfile.c:188 builtins/evalfile.c:206 shell.c:1623
+#: builtins/evalfile.c:194 builtins/evalfile.c:212 shell.c:1578
 #, c-format
 msgid "%s: cannot execute binary file"
-msgstr "%s: ne mogu izvršiti binarnu datoteku"
+msgstr "%s: nije moguće izvršiti binarnu datoteku"
 
-#: builtins/exec.def:155 builtins/exec.def:157 builtins/exec.def:237
+#: builtins/exec.def:156 builtins/exec.def:158 builtins/exec.def:235
 #, c-format
 msgid "%s: cannot execute: %s"
-msgstr "%s: ne mogu izvršiti: %s"
+msgstr "%s: nije moguće izvršiti: %s"
 
-#: builtins/exit.def:64
+#: builtins/exit.def:67
 #, c-format
 msgid "logout\n"
 msgstr "odjava\n"
 
-#: builtins/exit.def:89
+#: builtins/exit.def:92
 msgid "not login shell: use `exit'"
-msgstr "nije prijavna ljuska: koristite „exit”"
+msgstr "nije prijavna ljuska: odjavite se s „exit“"
 
-#: builtins/exit.def:121
+# stopped > pauzirano ili zaustavljeno
+#: builtins/exit.def:124
 #, c-format
 msgid "There are stopped jobs.\n"
-msgstr "Ima zaustavljenih zadataka.\n"
+msgstr "Ima zaustavljenih poslova.\n"
 
-#: builtins/exit.def:123
+#: builtins/exit.def:126
 #, c-format
 msgid "There are running jobs.\n"
-msgstr "Ima pokrenutih zadataka.\n"
+msgstr "Ima pokrenutih poslova.\n"
 
-#: builtins/fc.def:265
+#: builtins/fc.def:269
 msgid "no command found"
 msgstr "naredba nije pronađena"
 
-#: builtins/fc.def:323 builtins/fc.def:372
+#: builtins/fc.def:327 builtins/fc.def:376
 msgid "history specification"
-msgstr "specifikacija povijesti"
+msgstr "prikaz povijesti naredbi"
 
-#: builtins/fc.def:393
+#: builtins/fc.def:397
 #, c-format
 msgid "%s: cannot open temp file: %s"
-msgstr "%s: ne mogu otvoriti privremenu datoteku: %s"
+msgstr "%s: nije moguće otvoriti privremenu datoteku: %s"
 
-#: builtins/fg_bg.def:152 builtins/jobs.def:284
+#: builtins/fg_bg.def:153 builtins/jobs.def:284
 msgid "current"
-msgstr "trenutno"
+msgstr "trenutno"
 
-#: builtins/fg_bg.def:161
+#: builtins/fg_bg.def:162
 #, c-format
 msgid "job %d started without job control"
-msgstr "zadatak %d pokrenut bez kontrole zadataka"
+msgstr "posao %d pokrenuti je bez mogućnosti upravljanja"
 
 #: builtins/getopt.c:110
 #, c-format
 msgid "%s: illegal option -- %c\n"
-msgstr "%s: nedozvoljena opcija -- %c\n"
+msgstr "%s: nedopuštena opcija -- %c\n"
 
 #: builtins/getopt.c:111
 #, c-format
 msgid "%s: option requires an argument -- %c\n"
 msgstr "%s: opcija zahtijeva argument -- %c\n"
 
-#: builtins/hash.def:91
+#: builtins/hash.def:92
 msgid "hashing disabled"
-msgstr "raspršivanje onemogućeno"
+msgstr "hash-tablica je onemogućena"
 
-#: builtins/hash.def:138
+#: builtins/hash.def:139
 #, c-format
 msgid "%s: hash table empty\n"
-msgstr "%s: tablica raspršivanja prazna\n"
+msgstr "%s: hash-tablica je prazna\n"
 
-#: builtins/hash.def:266
+#: builtins/hash.def:254
 #, c-format
 msgid "hits\tcommand\n"
-msgstr "pogoci\tnaredba\n"
+msgstr "pogodci\tnaredba\n"
 
-#: builtins/help.def:133
+#: builtins/help.def:135
+#, c-format
 msgid "Shell commands matching keyword `"
 msgid_plural "Shell commands matching keywords `"
-msgstr[0] "Naredbe ljuske koje odgovaraju ključnoj riječi „"
-msgstr[1] "Naredbe ljuske koje odgovaraju ključnim riječima „"
-msgstr[2] "Naredbe ljuske koje odgovaraju ključnim riječima „"
+msgstr[0] "Naredba koja odgovara ključnoj riječi „"
+msgstr[1] "Naredbe koje odgovaraju ključnim riječima „"
+msgstr[2] "Naredbi koje odgovaraju ključnim riječima „"
 
-#: builtins/help.def:185
+#: builtins/help.def:187
 #, c-format
-msgid ""
-"no help topics match `%s'.  Try `help help' or `man -k %s' or `info %s'."
-msgstr ""
-"nisu pronađene teme pomoći za „%s”. Pokušajte „help help”, „man -k %s” ili "
-"„info %s”."
+msgid "no help topics match `%s'.  Try `help help' or `man -k %s' or `info %s'."
+msgstr "nisu pronađene teme pomoći za „%s“. Pokušajte s „help help“, „man -k %s“ ili „info %s“."
 
-#: builtins/help.def:224
+#: builtins/help.def:226
 #, c-format
 msgid "%s: cannot open: %s"
-msgstr "%s: ne mogu otvoriti: %s"
+msgstr "%s: nije moguće otvoriti: %s"
 
-#: builtins/help.def:524
+#: builtins/help.def:526
 #, c-format
 msgid ""
 "These shell commands are defined internally.  Type `help' to see this list.\n"
@@ -528,30 +533,28 @@ msgid ""
 "A star (*) next to a name means that the command is disabled.\n"
 "\n"
 msgstr ""
-"Ove naredbe ljuske su interno definirane. Upišite „help” za prikaz popisa.\n"
-"Upišite „help ime” za više podataka o funkciji „ime”.\n"
-"Koristite „info bash” za više općenitih podataka o ljusci.\n"
-"Koristite „man -k” ili „info” za više podataka o naredbama izvan ovog "
-"popisa.\n"
+"Ove bash naredbe su interno definirane. Upišite „help“ za prikaz popisa.\n"
+"Upišite „help ime“ za više podataka o funkciji „ime“.\n"
+"Koristite „info bash“ za više općenitih podataka o ljusci.\n"
+"Koristite „man -k“ ili „info“ za više podataka o naredbama izvan ovog popisa.\n"
 "\n"
 "Zvjezdica (*) pokraj imena označava onemogućenu naredbu.\n"
 "\n"
 
-#: builtins/history.def:154
+#: builtins/history.def:155
 msgid "cannot use more than one of -anrw"
-msgstr "ne mogu koristiti više od jedne od opcija -anrw"
+msgstr "smije se rabiti samo jedna od opcija -anrw"
 
-#: builtins/history.def:187 builtins/history.def:197 builtins/history.def:212
-#: builtins/history.def:229 builtins/history.def:241 builtins/history.def:248
+#: builtins/history.def:187
 msgid "history position"
-msgstr "mjesto u povijesti"
+msgstr "mjesto u povijesti naredbi"
 
-#: builtins/history.def:331
-#, fuzzy, c-format
+#: builtins/history.def:264
+#, c-format
 msgid "%s: invalid timestamp"
-msgstr "%s: neispravno ime opcije"
+msgstr "%s: nevaljana vremenska oznaka"
 
-#: builtins/history.def:442
+#: builtins/history.def:375
 #, c-format
 msgid "%s: history expansion failed"
 msgstr "%s: proširenje povijesti nije uspjelo"
@@ -563,89 +566,89 @@ msgstr "%s: inlib nije uspio"
 
 #: builtins/jobs.def:109
 msgid "no other options allowed with `-x'"
-msgstr "nisu dozvoljene druge opcije uz „-x”"
+msgstr "nisu dopuštene druge opcije uz „-x“"
 
-#: builtins/kill.def:200
+#: builtins/kill.def:202
 #, c-format
 msgid "%s: arguments must be process or job IDs"
-msgstr "%s: argumenti moraju biti identifikatori procesa ili zadataka"
+msgstr "%s: argumenti moraju biti ID-ovi procesa ili posla"
 
-#: builtins/kill.def:263
+#: builtins/kill.def:265
 msgid "Unknown error"
 msgstr "Nepoznata greška"
 
-#: builtins/let.def:97 builtins/let.def:122 expr.c:614 expr.c:632
+#: builtins/let.def:97 builtins/let.def:122 expr.c:583 expr.c:598
 msgid "expression expected"
-msgstr "očekujem izraz"
+msgstr "očekivao se izraz"
 
 #: builtins/mapfile.def:178
 #, c-format
 msgid "%s: not an indexed array"
 msgstr "%s: nije indeksirano polje"
 
-#: builtins/mapfile.def:271 builtins/read.def:305
+#: builtins/mapfile.def:272 builtins/read.def:306
 #, c-format
 msgid "%s: invalid file descriptor specification"
-msgstr "%s: neispravno naveden opisnik datoteke"
+msgstr "%s: nevaljana specifikacija deskriptora datoteke"
 
-#: builtins/mapfile.def:279 builtins/read.def:312
+#: builtins/mapfile.def:280 builtins/read.def:313
 #, c-format
 msgid "%d: invalid file descriptor: %s"
-msgstr "%d: neispravan opisnik datoteke: %s"
+msgstr "%d: nevaljani deskriptor datoteke: %s"
 
-#: builtins/mapfile.def:288 builtins/mapfile.def:326
+#: builtins/mapfile.def:289 builtins/mapfile.def:327
 #, c-format
 msgid "%s: invalid line count"
-msgstr "%s: neispravan broj redaka"
+msgstr "%s: nevaljani količina redaka"
 
-#: builtins/mapfile.def:299
+#: builtins/mapfile.def:300
 #, c-format
 msgid "%s: invalid array origin"
-msgstr "%s: neispravan izvor polja"
+msgstr "%s: nevaljani početak polja"
 
-#: builtins/mapfile.def:316
+#: builtins/mapfile.def:317
 #, c-format
 msgid "%s: invalid callback quantum"
-msgstr "%s: neispravan element povratnog poziva"
+msgstr "%s: nevaljana količina od callback"
 
-#: builtins/mapfile.def:349
+#: builtins/mapfile.def:350
 msgid "empty array variable name"
 msgstr "prazno ime varijable polja"
 
-#: builtins/mapfile.def:370
+#: builtins/mapfile.def:371
 msgid "array variable support required"
-msgstr "potrebna je podrška varijable polja"
+msgstr "potrebna podrška varijable polja nije podržana u ovoj ljusci"
 
-#: builtins/printf.def:416
+#: builtins/printf.def:412
 #, c-format
 msgid "`%s': missing format character"
-msgstr "â\80\9e%sâ\80\9d: nedostaje znak oblika"
+msgstr "â\80\9e%sâ\80\9c: nedostaje znak za format"
 
-#: builtins/printf.def:471
+#: builtins/printf.def:467
 #, c-format
 msgid "`%c': invalid time format specification"
-msgstr "â\80\9e%câ\80\9d: neispravno naveden oblik vremena"
+msgstr "â\80\9e%câ\80\9c: nevaljana specifikacija za format vremena"
 
-#: builtins/printf.def:673
+#: builtins/printf.def:669
 #, c-format
 msgid "`%c': invalid format character"
-msgstr "â\80\9e%câ\80\9d: neispravan znak oblika"
+msgstr "â\80\9e%câ\80\9c: nevaljani znak za format"
 
-#: builtins/printf.def:699
+#: builtins/printf.def:695
 #, c-format
 msgid "warning: %s: %s"
 msgstr "upozorenje: %s: %s"
 
-#: builtins/printf.def:785
+#: builtins/printf.def:781
 #, c-format
 msgid "format parsing problem: %s"
-msgstr ""
+msgstr "greška pri analizi: %s"
 
-#: builtins/printf.def:882
+#: builtins/printf.def:878
 msgid "missing hex digit for \\x"
-msgstr "nedostaje heksadekadska znamenka za \\x"
+msgstr "nedostaje heksadecimalna znamenka za \\x"
 
-#: builtins/printf.def:897
+#: builtins/printf.def:893
 #, c-format
 msgid "missing unicode digit for \\%c"
 msgstr "nedostaje unicode znamenka za \\%c"
@@ -655,23 +658,23 @@ msgid "no other directory"
 msgstr "nema drugog direktorija"
 
 #: builtins/pushd.def:360
-#, fuzzy, c-format
+#, c-format
 msgid "%s: invalid argument"
-msgstr "%s: neispravan argument ograničenja"
+msgstr "%s: nevaljani argument"
 
-#: builtins/pushd.def:480
+#: builtins/pushd.def:475
 msgid "<no current directory>"
-msgstr "<nema trenutnog direktorija>"
+msgstr "<nema trenutnog direktorija>"
 
-#: builtins/pushd.def:524
+#: builtins/pushd.def:519
 msgid "directory stack empty"
-msgstr "stog direktorija je prazan"
+msgstr "snop direktorija je prazan"
 
-#: builtins/pushd.def:526
+#: builtins/pushd.def:521
 msgid "directory stack index"
 msgstr "indeks stoga direktorija"
 
-#: builtins/pushd.def:701
+#: builtins/pushd.def:696
 msgid ""
 "Display the list of currently remembered directories.  Directories\n"
 "    find their way onto the list with the `pushd' command; you can get\n"
@@ -686,36 +689,30 @@ msgid ""
 "    \twith its position in the stack\n"
 "    \n"
 "    Arguments:\n"
-"      +N\tDisplays the Nth entry counting from the left of the list shown "
-"by\n"
+"      +N\tDisplays the Nth entry counting from the left of the list shown by\n"
 "    \tdirs when invoked without options, starting with zero.\n"
 "    \n"
-"      -N\tDisplays the Nth entry counting from the right of the list shown "
-"by\n"
+"      -N\tDisplays the Nth entry counting from the right of the list shown by\n"
 "\tdirs when invoked without options, starting with zero."
 msgstr ""
-"Prikaži popis trenutno zapamćenih direktorija. Direktoriji se dodaju\n"
-"    na popis naredbom „pushd”, kroz popis se možete vraćati naredbom\n"
-"    „popd”.\n"
-"    \n"
+"Pokaže popis trenutačno zapamćenih direktorija. Direktoriji se unose\n"
+"    na popis pomoću naredbe „pushd“, a s naredbom „popd“ se uklanjaju.\n"
+"\n"
 "    Opcije:\n"
-"      -c\točisti stog direktorija uklanjanjem svih elemenata\n"
-"      -l\tne ispisuj tildom prefiksirane inačice direktorija\n"
-"    \trelativno u odnosu na početni direktorij\n"
-"      -p\tispiši stog direktorija jednu stavku po retku\n"
-"      -v\tispiši stog direktorija jednu stavku po retku\n"
-"    \tprefiksiranu položajem u stogu\n"
-"    \n"
+"      -c   počisti snop direktorija brisanjem svih elemenata\n"
+"      -l   ispiše apsolutne staze direktorija u odnosu na osobni\n"
+"             direktorij (ne skraćuje staze upotrebom tilde)\n"
+"      -p   ispiše sadržaj snopa po jedan direktorij po retku\n"
+"      -v   kao „-p“, ali s prefiksom koji pokazuje\n"
+"             poziciju direktorija snopu\n"
+"\n"
 "    Argumenti:\n"
-"      +N\tPrikazuje N-tu stavku s lijeve strane popisa koju prikazuje "
-"naredba\n"
-"    \t„dirs” pozvana bez opcija, počevši od nule.\n"
-"    \n"
-"      -N\tPrikazuje N-tu stavku s desne strane popisa koju prikazuje "
-"naredba\n"
-"\t„dirs” pozvana bez opcija, počevši od nule."
+"      +N   Pokaže N-ti direktorij iz snopa, brojeći od od nule s\n"
+"             lijeve strane popisa kȁd se „dirs“ pokrene bez opcija.\n"
+"      -N   Pokaže N-ti direktorij iz snopa, brojeći od nule s\n"
+"             desne strane popisa kȁd se „dirs“ pokrene bez opcija."
 
-#: builtins/pushd.def:723
+#: builtins/pushd.def:718
 msgid ""
 "Adds a directory to the top of the directory stack, or rotates\n"
 "    the stack, making the new top of the stack the current working\n"
@@ -739,8 +736,25 @@ msgid ""
 "    \n"
 "    The `dirs' builtin displays the directory stack."
 msgstr ""
+"Doda direktorij na vrh snopa direktorija ili zarotira snop tako da\n"
+"    učini novi vrh snopa trenutačnim radnim direktorijem. Bez argumenata\n"
+"    razmijeni pozicije dva direktorija na vrhu snopa.\n"
+"\n"
+"    Opcije:\n"
+"      -n   izostavi uobičajenu promjenu direktorija kȁd dodaje\n"
+"           direktorije u snop, odnosno samo manipulira sa snopom\n"
+"\n"
+"     Argumenti:\n"
+"      +N   Zarotira snop tako, da N-ti direktorij u snopu (brojeći od nule s\n"
+"             lijeve strane popisa prikazanoga s „dirs“) postane novi vrh snopa.\n"
+"      -N   Zarotira snop tako, da N-ti direktorij u snopu (brojeći od nule s\n"
+"             desne strane popisa prikazanoga s „dirs“) postane novi vrh snopa.\n"
+"      DIREKTORIJ  Doda DIREKTORIJ na vrh snopa direktorija i\n"
+"                    učini ga novim aktualnim radnim direktorijem.\n"
+"\n"
+"      Naredba „dirs“ prikaže trenutačni sadržaj snopa direktorija."
 
-#: builtins/pushd.def:748
+#: builtins/pushd.def:743
 msgid ""
 "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"
@@ -760,138 +774,154 @@ msgid ""
 "    \n"
 "    The `dirs' builtin displays the directory stack."
 msgstr ""
+"Ukloni direktorije iz snopa direktorija. Bez argumenata, ukloni\n"
+"    direktorij na vrhu snopa i premjesti se u novi najviši direktorij.\n"
+"\n"
+"    Opcije:\n"
+"      -n   izostavi uobičajenu promjenu direktorija kȁd uklanja\n"
+"           direktorije iz snopa, odnosno samo manipulira sa snopom\n"
+"\n"
+"    Argumenti:\n"
+"      +N   Ukloni da N-ti direktorij iz snopa brojeći od nule s lijeve\n"
+"           strane popisa prikazanoga s „dirs“. Na primjer: „popd +0“\n"
+"           ukloni prvi, a „popd +1“ ukloni drugi direktorij.\n"
+"      +N   Ukloni da N-ti direktorij iz snopa brojeći od nule s desne\n"
+"           strane popisa prikazanoga s „dirs“. Na primjer.: „popd -0“\n"
+"           ukloni zadnji, a „popd -1“ ukloni predzadnji direktorij.\n"
+"\n"
+"    Naredba „dirs“ prikaže trenutačni sadržaj snopa direktorija."
 
-#: builtins/read.def:277
+#: builtins/read.def:279
 #, c-format
 msgid "%s: invalid timeout specification"
-msgstr "%s: neispravno navedeno vremensko ograničenje"
+msgstr "%s: nevaljana specifikacija za istek vremena"
 
-#: builtins/read.def:729
+#: builtins/read.def:696
 #, c-format
 msgid "read error: %d: %s"
 msgstr "greška čitanja: %d: %s"
 
-#: builtins/return.def:68
+#: builtins/return.def:71
 msgid "can only `return' from a function or sourced script"
-msgstr "pozivanje „return” je moguće samo iz funkcije ili pokrenute skripte"
+msgstr "„return“ je mogući samo iz funkcije ili iz pokrenute skripte"
 
-#: builtins/set.def:834
+#: builtins/set.def:841
 msgid "cannot simultaneously unset a function and a variable"
-msgstr "ne mogu istovremeno poništiti funkciju i varijablu"
+msgstr "nije moguće istovremeno poništiti funkciju i varijablu"
 
-#: builtins/set.def:881
+#: builtins/set.def:888
 #, c-format
 msgid "%s: cannot unset"
-msgstr "%s: ne mogu poništiti"
+msgstr "%s: nije moguće poništiti"
 
-#: builtins/set.def:902 variables.c:3597
+#: builtins/set.def:909 variables.c:3389
 #, c-format
 msgid "%s: cannot unset: readonly %s"
-msgstr "%s: ne mogu poništiti: %s je samo za čitanje"
+msgstr "%s: nije moguće poništiti: %s je moguće samo čitati"
 
-#: builtins/set.def:915
+#: builtins/set.def:922
 #, c-format
 msgid "%s: not an array variable"
 msgstr "%s: nije varijabla polja"
 
-#: builtins/setattr.def:189
+#: builtins/setattr.def:191
 #, c-format
 msgid "%s: not a function"
 msgstr "%s: nije funkcija"
 
-#: builtins/setattr.def:194
-#, fuzzy, c-format
+#: builtins/setattr.def:196
+#, c-format
 msgid "%s: cannot export"
-msgstr "%s: ne mogu poništiti"
+msgstr "%s: nije moguće eksportirati"
 
 #: builtins/shift.def:73 builtins/shift.def:79
 msgid "shift count"
-msgstr "broj pomaka"
+msgstr "broj pomaka"
 
-#: builtins/shopt.def:301
+#: builtins/shopt.def:289
 msgid "cannot set and unset shell options simultaneously"
-msgstr "ne mogu istovremeno postaviti i poništiti opcije ljuske"
+msgstr "nije moguće istovremeno postaviti i poništiti opcije ljuske"
 
-#: builtins/shopt.def:403
+#: builtins/shopt.def:391
 #, c-format
 msgid "%s: invalid shell option name"
-msgstr "%s: neispravno ime opcije ljuske"
+msgstr "%s: nevaljano ime za opciju ljuske"
 
-#: builtins/source.def:128
+#: builtins/source.def:131
 msgid "filename argument required"
-msgstr "potrebno je ime datoteke kao argument"
+msgstr "zahtijeva se ime datoteke kao argument"
 
-#: builtins/source.def:154
+#: builtins/source.def:157
 #, c-format
 msgid "%s: file not found"
 msgstr "%s: datoteka nije pronađena"
 
 #: builtins/suspend.def:102
 msgid "cannot suspend"
-msgstr "ne mogu zaustaviti"
+msgstr "obustava nije moguća"
 
 #: builtins/suspend.def:112
 msgid "cannot suspend a login shell"
-msgstr "ne mogu zaustaviti prijavnu ljusku"
+msgstr "nije moguće obustaviti prijavnu ljusku"
 
-#: builtins/type.def:235
+#: builtins/type.def:236
 #, c-format
 msgid "%s is aliased to `%s'\n"
-msgstr "%s je drugo ime za „%s”\n"
+msgstr "%s je alias za „%s“\n"
 
-#: builtins/type.def:256
+#: builtins/type.def:257
 #, c-format
 msgid "%s is a shell keyword\n"
 msgstr "%s je ključna riječ ljuske\n"
 
-#: builtins/type.def:275
+#: builtins/type.def:276
 #, c-format
 msgid "%s is a function\n"
 msgstr "%s je funkcija\n"
 
-#: builtins/type.def:299
-#, fuzzy, c-format
+#: builtins/type.def:300
+#, c-format
 msgid "%s is a special shell builtin\n"
-msgstr "%s je ugrađen u ljusku\n"
+msgstr "%s je specijalna ugrađena funkcija ljuske\n"
 
-#: builtins/type.def:301
+#: builtins/type.def:302
 #, c-format
 msgid "%s is a shell builtin\n"
-msgstr "%s je ugrađen u ljusku\n"
+msgstr "%s je ugrađena funkcija ljuske\n"
 
-#: builtins/type.def:323 builtins/type.def:408
+#: builtins/type.def:324 builtins/type.def:409
 #, c-format
 msgid "%s is %s\n"
 msgstr "%s je %s\n"
 
-#: builtins/type.def:343
+#: builtins/type.def:344
 #, c-format
 msgid "%s is hashed (%s)\n"
-msgstr "%s je raspršen (%s)\n"
+msgstr "za %s izračunata hash vrijednost (%s)\n"
 
-#: builtins/ulimit.def:396
+#: builtins/ulimit.def:398
 #, c-format
 msgid "%s: invalid limit argument"
-msgstr "%s: neispravan argument ograničenja"
+msgstr "%s: nevaljani argument za ograničenje"
 
-#: builtins/ulimit.def:422
+#: builtins/ulimit.def:424
 #, c-format
 msgid "`%c': bad command"
-msgstr "â\80\9e%câ\80\9d: neispravna naredba"
+msgstr "â\80\9e%câ\80\9c: loÅ¡a naredba"
 
-#: builtins/ulimit.def:451
+#: builtins/ulimit.def:453
 #, c-format
 msgid "%s: cannot get limit: %s"
-msgstr "%s: ne mogu otkriti ograničenje: %s"
+msgstr "%s: nije moguće dobiti ograničenje: %s"
 
-#: builtins/ulimit.def:477
+#: builtins/ulimit.def:479
 msgid "limit"
 msgstr "ograničenje"
 
-#: builtins/ulimit.def:489 builtins/ulimit.def:789
+#: builtins/ulimit.def:491 builtins/ulimit.def:791
 #, c-format
 msgid "%s: cannot modify limit: %s"
-msgstr "%s: ne mogu urediti ograničenje: %s"
+msgstr "%s: nije moguće promijeniti ograničenje: %s"
 
 #: builtins/umask.def:115
 msgid "octal number"
@@ -900,434 +930,426 @@ msgstr "oktalni broj"
 #: builtins/umask.def:232
 #, c-format
 msgid "`%c': invalid symbolic mode operator"
-msgstr "â\80\9e%câ\80\9d: neispravan operator simboliÄ\8dkog naÄ\8dina"
+msgstr "â\80\9e%câ\80\9c: nevaljani operator u simboliÄ\8dkom naÄ\8dinu"
 
 #: builtins/umask.def:287
 #, c-format
 msgid "`%c': invalid symbolic mode character"
-msgstr "â\80\9e%câ\80\9d: neispravan znak simboliÄ\8dkog naÄ\8dina"
+msgstr "â\80\9e%câ\80\9c: nevaljani znak u simboliÄ\8dkom naÄ\8dinu"
 
-#: error.c:89 error.c:347 error.c:349 error.c:351
+#: error.c:90 error.c:348 error.c:350 error.c:352
 msgid " line "
 msgstr " redak "
 
-#: error.c:164
+#: error.c:165
 #, c-format
 msgid "last command: %s\n"
 msgstr "posljednja naredba: %s\n"
 
-#: error.c:172
+#: error.c:173
 #, c-format
 msgid "Aborting..."
-msgstr "Prekidam..."
+msgstr "Prekida se..."
 
 #. TRANSLATORS: this is a prefix for informational messages.
-#: error.c:287
+#: error.c:288
 #, c-format
 msgid "INFORM: "
-msgstr ""
+msgstr "informacije: "
 
-#: error.c:462
+#: error.c:463
 msgid "unknown command error"
 msgstr "nepoznata greška naredbe"
 
-#: error.c:463
+#: error.c:464
 msgid "bad command type"
-msgstr "neispravna vrsta naredbe"
+msgstr "loša vrsta naredbe"
 
-#: error.c:464
+#: error.c:465
 msgid "bad connector"
-msgstr "neispravno spajanje"
+msgstr "loš konektor"
 
-#: error.c:465
+#: error.c:466
 msgid "bad jump"
-msgstr "neispravan skok"
+msgstr "loši skok"
 
-#: error.c:503
+#: error.c:504
 #, c-format
 msgid "%s: unbound variable"
 msgstr "%s: nepovezana varijabla"
 
-#: eval.c:242
+#: eval.c:209
 #, c-format
 msgid "\atimed out waiting for input: auto-logout\n"
-msgstr "\avrijeme čekanja ulaza je isteklo: automatska-odjava\n"
+msgstr "\avrijeme čekanja na ulaz je isteklo: automatska-odjava\n"
 
-#: execute_cmd.c:536
+#: execute_cmd.c:527
 #, c-format
 msgid "cannot redirect standard input from /dev/null: %s"
-msgstr "ne mogu preusmjeriti standardni ulaz iz /dev/null: %s"
+msgstr "nije moguće preusmjeriti standardni ulaz iz /dev/null: %s"
 
-#: execute_cmd.c:1294
+#: execute_cmd.c:1275
 #, c-format
 msgid "TIMEFORMAT: `%c': invalid format character"
-msgstr "TIMEFORMAT: â\80\9e%câ\80\9d: neispravan znak oblika"
+msgstr "TIMEFORMAT: â\80\9e%câ\80\9c: nevaljani znak za format"
 
-#: execute_cmd.c:2330
+#: execute_cmd.c:2273
 #, c-format
 msgid "execute_coproc: coproc [%d:%s] still exists"
-msgstr ""
+msgstr "execute_coproc(): coproc [%d:%s] još uvijek postoji"
 
-#: execute_cmd.c:2456
+#: execute_cmd.c:2377
 msgid "pipe error"
-msgstr "greška cjevovoda"
+msgstr "greška cijevi"
 
-#: execute_cmd.c:4624
+#: execute_cmd.c:4496
 #, c-format
 msgid "eval: maximum eval nesting level exceeded (%d)"
-msgstr ""
+msgstr "eval: prekoračena je dopuštena razina eval gniježđenja (%d)"
 
-#: execute_cmd.c:4636
+#: execute_cmd.c:4508
 #, c-format
 msgid "%s: maximum source nesting level exceeded (%d)"
-msgstr ""
+msgstr "%s: prekoračena je dopuštena razina source gniježđenja (%d)"
 
-#: execute_cmd.c:4742
+#: execute_cmd.c:4616
 #, c-format
 msgid "%s: maximum function nesting level exceeded (%d)"
-msgstr ""
+msgstr "%s: prekoračena je dopuštena razina gniježđenja funkcije (%d)"
 
-#: execute_cmd.c:5285
+#: execute_cmd.c:5144
 #, c-format
 msgid "%s: restricted: cannot specify `/' in command names"
-msgstr "%s: ograničeno: ne možete navesti „/” u imenu naredbe"
+msgstr "%s: ograničeni način: znak „/“ nije dopušten u imenima naredba"
 
-#: execute_cmd.c:5383
+#: execute_cmd.c:5232
 #, c-format
 msgid "%s: command not found"
 msgstr "%s: naredba nije pronađena"
 
-#: execute_cmd.c:5627
+#: execute_cmd.c:5470
 #, c-format
 msgid "%s: %s"
 msgstr "%s: %s"
 
-#: execute_cmd.c:5665
+#: execute_cmd.c:5508
 #, c-format
 msgid "%s: %s: bad interpreter"
-msgstr "%s: %s: neispravan tumač"
+msgstr "%s: %s: loši interpreter"
 
-#: execute_cmd.c:5702
-#, fuzzy, c-format
+#: execute_cmd.c:5545
+#, c-format
 msgid "%s: cannot execute binary file: %s"
-msgstr "%s: ne mogu izvršiti binarnu datoteku"
+msgstr "%s: binarnu datoteku %s nije moguće pokrenuti/izvršiti"
 
-#: execute_cmd.c:5788
-#, fuzzy, c-format
+#: execute_cmd.c:5623
+#, c-format
 msgid "`%s': is a special builtin"
-msgstr "%s je ugrađen u ljusku\n"
+msgstr "„%s“ je specijalna funkcija ugrađena u ljusku"
 
-#: execute_cmd.c:5840
+#: execute_cmd.c:5675
 #, c-format
 msgid "cannot duplicate fd %d to fd %d"
-msgstr "ne mogu udvostručiti opisnik datoteke %d u opisnik datoteke %d"
+msgstr "nije moguće kopirati deskriptor datoteke %d u deskriptor datoteke %d"
 
-#: expr.c:263
+#: expr.c:259
 msgid "expression recursion level exceeded"
-msgstr "razina rekurzije izraza je prekoračena"
+msgstr "izraz ima preveliki broj rekurzija"
 
-#: expr.c:291
+#: expr.c:283
 msgid "recursion stack underflow"
-msgstr "podljev stoga rekurzije"
+msgstr "snop rekurzija je prazan"
 
-#: expr.c:453
+#: expr.c:431
 msgid "syntax error in expression"
-msgstr "sintaksna greška u izrazu"
+msgstr "sintaktička greška u izrazu"
 
-#: expr.c:497
+#: expr.c:475
 msgid "attempted assignment to non-variable"
-msgstr "pokušaj pridruživanja ne-varijabli"
+msgstr "vrijednost se može dodijeliti samo varijabli"
 
-#: expr.c:506
-#, fuzzy
-msgid "syntax error in variable assignment"
-msgstr "sintaksna greška u izrazu"
-
-#: expr.c:520 expr.c:886
+#: expr.c:495 expr.c:858
 msgid "division by 0"
 msgstr "dijeljenje s 0"
 
-#: expr.c:567
+#: expr.c:542
 msgid "bug: bad expassign token"
-msgstr "greška: neispravan simbol expassign"
+msgstr "**interna greška** : loši token u izrazu za dodjelu"
 
-#: expr.c:621
+#: expr.c:595
 msgid "`:' expected for conditional expression"
-msgstr "očekujem „:” za uvjetni izraz"
+msgstr "znak „:“ je nužan u uvjetnom izrazu"
 
-#: expr.c:947
+#: expr.c:919
 msgid "exponent less than 0"
 msgstr "eksponent je manji od 0"
 
-#: expr.c:1004
+#: expr.c:976
 msgid "identifier expected after pre-increment or pre-decrement"
-msgstr "očekujem identifikator nakon pred-povećanja ili pred-smanjenja"
+msgstr "nakon pre-increment ili pre-decrement očekuje se identifikator"
 
-#: expr.c:1030
+#: expr.c:1002
 msgid "missing `)'"
-msgstr "nedostaje „)”"
+msgstr "nema „)“"
 
-#: expr.c:1081 expr.c:1458
+#: expr.c:1053 expr.c:1393
 msgid "syntax error: operand expected"
-msgstr "sintaksna greška: očekujem operand"
+msgstr "sintaktička greška: očekivao se operand"
 
-#: expr.c:1460
+#: expr.c:1395
 msgid "syntax error: invalid arithmetic operator"
-msgstr "sintaksna greška: neispravan aritmetički operator"
+msgstr "sintaktička greška: nevaljani aritmetički operator"
 
-#: expr.c:1484
+#: expr.c:1419
 #, c-format
 msgid "%s%s%s: %s (error token is \"%s\")"
-msgstr "%s%s%s: %s (simbol greÅ¡ke je â\80\9e%sâ\80\9d)"
+msgstr "%s%s%s: %s (simbol greÅ¡ke je â\80\9e%sâ\80\9c)"
 
-#: expr.c:1542
+#: expr.c:1477
 msgid "invalid arithmetic base"
-msgstr "neispravna aritmetička baza"
+msgstr "nevaljana aritmetička baza"
 
-#: expr.c:1562
+#: expr.c:1497
 msgid "value too great for base"
 msgstr "vrijednost baze je prevelika"
 
-#: expr.c:1611
+#: expr.c:1546
 #, c-format
 msgid "%s: expression error\n"
-msgstr "%s: greška izraza\n"
+msgstr "%s: greška u izrazu\n"
 
-#: general.c:69
+#: general.c:68
 msgid "getcwd: cannot access parent directories"
-msgstr "getcwd: ne mogu pristupiti nadređenim direktorijima"
+msgstr "getcwd(): nije moguće pristupiti nadređenim direktorijima"
 
-#: input.c:99 subst.c:5858
+#: input.c:102 subst.c:5858
 #, c-format
 msgid "cannot reset nodelay mode for fd %d"
-msgstr ""
+msgstr "ne može se onemogućiti nodelay način za deskriptor datoteke %d"
 
-#: input.c:266
+#: input.c:271
 #, c-format
 msgid "cannot allocate new file descriptor for bash input from fd %d"
-msgstr "ne mogu alocirati novi datotečni opisnik za bash ulaz iz fd %d"
+msgstr "nije moguće dodijeliti novi datotečni deskriptor za bash ulaz iz fd %d"
 
-#: input.c:274
+#: input.c:279
 #, c-format
 msgid "save_bash_input: buffer already exists for new fd %d"
-msgstr "save_bash_input: međuspremnik već postoji za novi fd %d"
+msgstr "save_bash_input(): međuspremnik već postoji za novi fd %d"
 
 #: jobs.c:527
 msgid "start_pipeline: pgrp pipe"
-msgstr "start_pipeline: pgrp pipe"
+msgstr "start_pipeline(): pgrp pipe (procesna grupa cijevi)"
 
-#: jobs.c:1080
+#: jobs.c:1035
 #, c-format
 msgid "forked pid %d appears in running job %d"
-msgstr "razdvojen pid %d se javlja u pokrenutom zadatku %d"
+msgstr "potproces PID %d javlja se u pokrenutom poslu %d"
 
-#: jobs.c:1199
+#: jobs.c:1154
 #, c-format
 msgid "deleting stopped job %d with process group %ld"
-msgstr "uklanjam zaustavljeni zadatak %d s grupom procesa %ld"
+msgstr "uklanja se zaustavljeni posao %d s grupom procesa %ld"
 
-#: jobs.c:1303
+#: jobs.c:1258
 #, c-format
 msgid "add_process: process %5ld (%s) in the_pipeline"
-msgstr "add_process: proces %5ld (%s) u the_pipeline"
+msgstr "add_process(): proces %5ld (%s) u cjevovodu"
 
-#: jobs.c:1306
+#: jobs.c:1261
 #, c-format
 msgid "add_process: pid %5ld (%s) marked as still alive"
-msgstr "add_process: pid %5ld (%s) označen kao još živ"
+msgstr "add_process(): PID %5ld (%s) označen kao još uvijek aktivan"
 
-#: jobs.c:1635
+#: jobs.c:1590
 #, c-format
 msgid "describe_pid: %ld: no such pid"
-msgstr "describe_pid: %ld: ne postoji takav pid"
+msgstr "describe_pid(): %ld: PID ne postoji"
 
-#: jobs.c:1650
+#: jobs.c:1605
 #, c-format
 msgid "Signal %d"
 msgstr "Signal %d"
 
-#: jobs.c:1664 jobs.c:1690
+#: jobs.c:1619 jobs.c:1645
 msgid "Done"
 msgstr "Gotovo"
 
-#: jobs.c:1669 siglist.c:123
+#: jobs.c:1624 siglist.c:123
 msgid "Stopped"
-msgstr "Zaustavljen"
+msgstr "Zaustavljeno"
 
-#: jobs.c:1673
+#: jobs.c:1628
 #, c-format
 msgid "Stopped(%s)"
-msgstr "Zaustavljen(%s)"
+msgstr "Zaustavljeno(%s)"
 
-#: jobs.c:1677
+#: jobs.c:1632
 msgid "Running"
-msgstr "Pokrenut"
+msgstr "Pokrenuto"
 
-#: jobs.c:1694
+#: jobs.c:1649
 #, c-format
 msgid "Done(%d)"
 msgstr "Gotovo(%d)"
 
-#: jobs.c:1696
+#: jobs.c:1651
 #, c-format
 msgid "Exit %d"
 msgstr "Izlaz %d"
 
-#: jobs.c:1699
+#: jobs.c:1654
 msgid "Unknown status"
-msgstr "Nepoznato stanje"
+msgstr "Nepoznati status"
 
-#: jobs.c:1786
+#: jobs.c:1741
 #, c-format
 msgid "(core dumped) "
-msgstr "(jezgra izbačena) "
+msgstr "(stanje memorije zapisano) "
 
-#: jobs.c:1805
+#: jobs.c:1760
 #, c-format
 msgid "  (wd: %s)"
 msgstr "  (wd: %s)"
 
-#: jobs.c:2033
+#: jobs.c:1985
 #, c-format
 msgid "child setpgid (%ld to %ld)"
-msgstr ""
+msgstr "postavljanje procesne grupe %2$ld od potomka %1$ld"
 
-#: jobs.c:2395 nojobs.c:657
+#: jobs.c:2347 nojobs.c:654
 #, c-format
 msgid "wait: pid %ld is not a child of this shell"
-msgstr "wait: pid %ld nije dijete ove ljuske"
+msgstr "wait: PID %ld nije potomak ove ljuske"
 
-#: jobs.c:2687
+#: jobs.c:2602
 #, c-format
 msgid "wait_for: No record of process %ld"
-msgstr "wait_for: Ne postoji zapis o procesu %ld"
+msgstr "wait_for: nema zapisa o procesu %ld"
 
-#: jobs.c:3048
+#: jobs.c:2929
 #, c-format
 msgid "wait_for_job: job %d is stopped"
-msgstr "wait_for_job: zadatak %d je zaustavljen"
+msgstr "wait_for_job: posao %d je zaustavljen"
 
-#: jobs.c:3355
+#: jobs.c:3221
 #, c-format
 msgid "%s: job has terminated"
-msgstr "%s: zadatak je dovršen"
+msgstr "%s: posao je prekinut"
 
-#: jobs.c:3364
+#: jobs.c:3230
 #, c-format
 msgid "%s: job %d already in background"
-msgstr "%s: zadatak %d je već u pozadini"
+msgstr "%s: posao %d je već u pozadini"
 
-#: jobs.c:3590
+#: jobs.c:3455
 msgid "waitchld: turning on WNOHANG to avoid indefinite block"
-msgstr ""
+msgstr "waitchld(): omogući WNOHANG da se izbjegne neodređeno blokiranje"
 
-#: jobs.c:4114
+#: jobs.c:3970
 #, c-format
 msgid "%s: line %d: "
 msgstr "%s: redak %d: "
 
-#: jobs.c:4128 nojobs.c:900
+#: jobs.c:3984 nojobs.c:897
 #, c-format
 msgid " (core dumped)"
-msgstr " (jezgra izbačena)"
+msgstr " (stanje memorije zapisano)"
 
-#: jobs.c:4140 jobs.c:4153
+#: jobs.c:3996 jobs.c:4009
 #, c-format
 msgid "(wd now: %s)\n"
-msgstr "(sadašnji wd: %s)\n"
+msgstr "(radni direktorij je sada: %s)\n"
 
-#: jobs.c:4185
+#: jobs.c:4041
 msgid "initialize_job_control: getpgrp failed"
-msgstr "initialize_job_control: getpgrp nije uspio"
-
-#: jobs.c:4241
-#, fuzzy
-msgid "initialize_job_control: no job control in background"
-msgstr "initialize_job_control: setpgid"
+msgstr "initialize_job_control: neuspješni getpgrp()"
 
-#: jobs.c:4257
+#: jobs.c:4104
 msgid "initialize_job_control: line discipline"
-msgstr ""
+msgstr "initialize_job_control: line discipline"
 
-#: jobs.c:4267
+#: jobs.c:4114
 msgid "initialize_job_control: setpgid"
-msgstr "initialize_job_control: setpgid"
+msgstr "initialize_job_control: setpgid()"
 
-#: jobs.c:4288 jobs.c:4297
+#: jobs.c:4135 jobs.c:4144
 #, c-format
 msgid "cannot set terminal process group (%d)"
-msgstr "ne mogu postaviti grupu procesa terminala (%d)"
+msgstr "nije moguće postaviti procesnu grupu (%d) terminala"
 
-#: jobs.c:4302
+#: jobs.c:4149
 msgid "no job control in this shell"
-msgstr "nema kontrole zadataka u ovoj ljusci"
+msgstr "nema kontrole poslova u ovoj ljusci"
 
-#: lib/malloc/malloc.c:306
+#: lib/malloc/malloc.c:296
 #, c-format
 msgid "malloc: failed assertion: %s\n"
-msgstr ""
+msgstr "malloc(): neuspješni kontrolni test: %s\n"
 
-#: lib/malloc/malloc.c:322
+#: lib/malloc/malloc.c:312
 #, c-format
 msgid ""
 "\r\n"
 "malloc: %s:%d: assertion botched\r\n"
 msgstr ""
+"\r\n"
+"malloc(): %s:%d: loše provedena proba\r\n"
 
-#: lib/malloc/malloc.c:323
+#: lib/malloc/malloc.c:313
 msgid "unknown"
 msgstr "nepoznato"
 
-#: lib/malloc/malloc.c:811
+#: lib/malloc/malloc.c:801
 msgid "malloc: block on free list clobbered"
-msgstr ""
+msgstr "malloc(): prepisani je blok na popisu slobodne memorije"
 
-#: lib/malloc/malloc.c:888
+#: lib/malloc/malloc.c:878
 msgid "free: called with already freed block argument"
-msgstr "free: pozvan s argumentom već oslobođenog bloka"
+msgstr "free(): pozvan s argumentom za već slobodni memorijski blok"
 
-#: lib/malloc/malloc.c:891
+#: lib/malloc/malloc.c:881
 msgid "free: called with unallocated block argument"
-msgstr "free: pozvan s argumentom nealociranog bloka"
+msgstr "free(): pozvan s argumentom za ne dodijeljeni memorijski blok"
 
-#: lib/malloc/malloc.c:910
+#: lib/malloc/malloc.c:900
 msgid "free: underflow detected; mh_nbytes out of range"
-msgstr "free: otkriven podljev, mh_nbytes izvan granica"
+msgstr "free(): otkriveni je podljev, mh_nbytes ispod granica"
 
-#: lib/malloc/malloc.c:916
+#: lib/malloc/malloc.c:906
 msgid "free: start and end chunk sizes differ"
-msgstr ""
+msgstr "free(): veličine segmenta od početka i kraja su različite"
 
-#: lib/malloc/malloc.c:1015
+#: lib/malloc/malloc.c:1005
 msgid "realloc: called with unallocated block argument"
-msgstr "realloc: pozvan s argumentom nealociranog bloka"
+msgstr "realloc(): pozvan s argumentom za ne dodijeljeni memorijski blok"
 
-#: lib/malloc/malloc.c:1030
+#: lib/malloc/malloc.c:1020
 msgid "realloc: underflow detected; mh_nbytes out of range"
-msgstr "realloc: otkriven podljev, mh_nbytes izvan granica"
+msgstr "realloc(): otkriveni je podljev, mh_nbytes ispod granica"
 
-#: lib/malloc/malloc.c:1036
+#: lib/malloc/malloc.c:1026
 msgid "realloc: start and end chunk sizes differ"
-msgstr ""
+msgstr "realloc(): veličine segmenta od početka i kraja su različite"
 
 #: lib/malloc/table.c:191
 #, c-format
 msgid "register_alloc: alloc table is full with FIND_ALLOC?\n"
-msgstr ""
+msgstr "register_alloc(): rezervacijska tablica je popunjena s FIND_ALLOC??\n"
 
 #: lib/malloc/table.c:200
 #, c-format
 msgid "register_alloc: %p already in table as allocated?\n"
-msgstr ""
+msgstr "register_alloc(): %p je već rezervirani u tablici??\n"
 
 #: lib/malloc/table.c:253
 #, c-format
 msgid "register_free: %p already in table as free?\n"
-msgstr "register_free: %p već u tablici kao oslobođen?\n"
+msgstr "register_free(): %p je već slobodan u tablici??\n"
 
 #: lib/sh/fmtulong.c:102
 msgid "invalid base"
-msgstr "neispravna baza"
+msgstr "nevaljana baza"
 
 #: lib/sh/netopen.c:168
 #, c-format
@@ -1337,36 +1359,36 @@ msgstr "%s: nepoznato računalo"
 #: lib/sh/netopen.c:175
 #, c-format
 msgid "%s: invalid service"
-msgstr "%s: neispravna usluga"
+msgstr "%s: nevaljani servis"
 
 #: lib/sh/netopen.c:306
 #, c-format
 msgid "%s: bad network path specification"
-msgstr "%s: neispravno navedena mrežna putanja"
+msgstr "%s: loša specifikacija za mrežnu stazu"
 
 #: lib/sh/netopen.c:347
 msgid "network operations not supported"
 msgstr "mrežne operacije nisu podržane"
 
-#: locale.c:205
+#: locale.c:200
 #, c-format
 msgid "setlocale: LC_ALL: cannot change locale (%s)"
-msgstr "setlocale: LC_ALL: ne mogu promijeniti lokal (%s)"
+msgstr "setlocale(): LC_ALL: nije moguće promijeniti jezično područje (%s)"
 
-#: locale.c:207
+#: locale.c:202
 #, c-format
 msgid "setlocale: LC_ALL: cannot change locale (%s): %s"
-msgstr "setlocale: LC_ALL: ne mogu promijeniti lokal (%s): %s"
+msgstr "setlocale(): LC_ALL: nije moguće promijeniti jezično područje (%s): %s"
 
-#: locale.c:272
+#: locale.c:259
 #, c-format
 msgid "setlocale: %s: cannot change locale (%s)"
-msgstr "setlocale: %s: ne mogu promijeniti lokal (%s)"
+msgstr "setlocale(): %s: nije moguće promijeniti jezično područje (%s)"
 
-#: locale.c:274
+#: locale.c:261
 #, c-format
 msgid "setlocale: %s: cannot change locale (%s): %s"
-msgstr "setlocale: %s: ne mogu promijeniti lokal (%s): %s"
+msgstr "setlocale(): %s: nije moguće promijeniti jezično područje (%s): %s"
 
 #: mailcheck.c:439
 msgid "You have mail in $_"
@@ -1379,323 +1401,317 @@ msgstr "Imate novu poštu u $_"
 #: mailcheck.c:480
 #, c-format
 msgid "The mail in %s has been read\n"
-msgstr "Pošta u %s je pročitana\n"
+msgstr "Pošta u %s je već pročitana\n"
 
-#: make_cmd.c:317
+#: make_cmd.c:329
 msgid "syntax error: arithmetic expression required"
-msgstr "sintaksna greška: potreban aritmetički izraz"
+msgstr "sintaktička greška: zahtijeva se aritmetički izraz"
 
-#: make_cmd.c:319
+#: make_cmd.c:331
 msgid "syntax error: `;' unexpected"
-msgstr "sintaksna greška: neočekivana „;”"
+msgstr "sintaktička greška: neočekivani „;“ znak"
 
-#: make_cmd.c:320
+#: make_cmd.c:332
 #, c-format
 msgid "syntax error: `((%s))'"
-msgstr "sintaksna greška: „((%s))”"
+msgstr "sintaktička greška: „((%s))“"
 
-#: make_cmd.c:572
+#: make_cmd.c:584
 #, c-format
 msgid "make_here_document: bad instruction type %d"
-msgstr "make_here_document: neispravna vrsta instrukcije %d"
+msgstr "make_here_document(): loša vrsta instrukcije %d"
 
-#: make_cmd.c:657
+#: make_cmd.c:669
 #, c-format
 msgid "here-document at line %d delimited by end-of-file (wanted `%s')"
-msgstr ""
+msgstr "redak %d od here-document ima za razdjelnik EOF (očekuje se „%s“)"
 
-#: make_cmd.c:756
+#: make_cmd.c:768
 #, c-format
 msgid "make_redirection: redirection instruction `%d' out of range"
-msgstr ""
+msgstr "make_redirection(): instrukcija za preusmjeravanje „%d“ je izvan raspona"
 
-#: parse.y:2369
+#: parse.y:2324
 #, c-format
-msgid ""
-"shell_getc: shell_input_line_size (%zu) exceeds SIZE_MAX (%lu): line "
-"truncated"
-msgstr ""
+msgid "shell_getc: shell_input_line_size (%zu) exceeds SIZE_MAX (%lu): line truncated"
+msgstr "shell_getc(): shell_input_line_size (%zu) je veća od SIZE_MAX (%lu): skraćuje se"
 
-#: parse.y:2772
+#: parse.y:2700
 msgid "maximum here-document count exceeded"
-msgstr ""
+msgstr "maksimalni broj za here-document je prekoračeni"
 
-#: parse.y:3511 parse.y:3881
+#: parse.y:3390 parse.y:3748
 #, c-format
 msgid "unexpected EOF while looking for matching `%c'"
-msgstr "neoÄ\8dekivani EOF pri traženju odgovarajuÄ\87eg â\80\9e%câ\80\9d"
+msgstr "neoÄ\8dekivani EOF pri traženju odgovarajuÄ\87eg â\80\9e%câ\80\9c"
 
-#: parse.y:4581
+#: parse.y:4410
 msgid "unexpected EOF while looking for `]]'"
-msgstr "neoÄ\8dekivani EOF pri traženju â\80\9e]]â\80\9d"
+msgstr "neoÄ\8dekivani EOF pri traženju â\80\9e]]â\80\9c"
 
-#: parse.y:4586
+#: parse.y:4415
 #, c-format
 msgid "syntax error in conditional expression: unexpected token `%s'"
-msgstr "sintaksna greška u uvjetnom izrazu: neočekivani simbol „%s”"
+msgstr "sintaktička greška u uvjetnom izrazu: neočekivani token „%s“"
 
-#: parse.y:4590
+#: parse.y:4419
 msgid "syntax error in conditional expression"
-msgstr "sintaksna greška u uvjetnom izrazu"
+msgstr "sintaktička greška u uvjetnom izrazu"
 
-#: parse.y:4668
+#: parse.y:4497
 #, c-format
 msgid "unexpected token `%s', expected `)'"
-msgstr "neočekivani simbol „%s”, očekujem „)”"
+msgstr "neočekivani token „%s“ umjesto očekivane „)“"
 
-#: parse.y:4672
+#: parse.y:4501
 msgid "expected `)'"
-msgstr "očekujem „)”"
+msgstr "očekivana je „)“"
 
-#: parse.y:4700
+#: parse.y:4529
 #, c-format
 msgid "unexpected argument `%s' to conditional unary operator"
-msgstr "neoÄ\8dekivani argument â\80\9e%sâ\80\9d uvjetnom unarnom operatoru"
+msgstr "neoÄ\8dekivani argument â\80\9e%sâ\80\9c uvjetnom unarnom operatoru"
 
-#: parse.y:4704
+#: parse.y:4533
 msgid "unexpected argument to conditional unary operator"
-msgstr "neočekivani argument uvjetnom unarnom operatoru"
+msgstr "neočekivani argument za uvjetni unarni operator"
 
-#: parse.y:4750
+#: parse.y:4579
 #, c-format
 msgid "unexpected token `%s', conditional binary operator expected"
-msgstr "neočekivani simbol „%s”, očekujem uvjetni binarni operator"
+msgstr "neočekivani token „%s“; očekivao se uvjetni binarni operator"
 
-#: parse.y:4754
+#: parse.y:4583
 msgid "conditional binary operator expected"
-msgstr "očekujem uvjetni binarni operator"
+msgstr "očekivao se uvjetni binarni operator"
 
-#: parse.y:4776
+#: parse.y:4605
 #, c-format
 msgid "unexpected argument `%s' to conditional binary operator"
-msgstr "neoÄ\8dekivani argument â\80\9e%sâ\80\9d uvjetnom binarnom operatoru"
+msgstr "neoÄ\8dekivani argument â\80\9e%sâ\80\9c za uvjetni binarni operator"
 
-#: parse.y:4780
+#: parse.y:4609
 msgid "unexpected argument to conditional binary operator"
-msgstr "neočekivani argument uvjetnom binarnom operatoru"
+msgstr "neočekivani argument za uvjetni binarni operator"
 
-#: parse.y:4791
+#: parse.y:4620
 #, c-format
 msgid "unexpected token `%c' in conditional command"
-msgstr "neočekivani simbol „%c” u uvjetnoj naredbi"
+msgstr "neočekivani token „%c“ u uvjetnoj naredbi"
 
-#: parse.y:4794
+#: parse.y:4623
 #, c-format
 msgid "unexpected token `%s' in conditional command"
-msgstr "neočekivani simbol „%s” u uvjetnoj naredbi"
+msgstr "neočekivani token „%s“ u uvjetnoj naredbi"
 
-#: parse.y:4798
+#: parse.y:4627
 #, c-format
 msgid "unexpected token %d in conditional command"
-msgstr "neočekivani simbol %d u uvjetnoj naredbi"
+msgstr "neočekivani token %d u uvjetnoj naredbi"
 
-#: parse.y:6220
+#: parse.y:5996
 #, c-format
 msgid "syntax error near unexpected token `%s'"
-msgstr "sintaksna greška kod neočekivanog simbola „%s”"
+msgstr "sintaktička greška blizu neočekivanog tokena „%s“"
 
-#: parse.y:6238
+#: parse.y:6014
 #, c-format
 msgid "syntax error near `%s'"
-msgstr "sintaksna greška kod „%s”"
+msgstr "sintaktička greška blizu „%s“"
 
-#: parse.y:6248
+#: parse.y:6024
 msgid "syntax error: unexpected end of file"
-msgstr "sintaksna greška: neočekivani kraj datoteke"
+msgstr "sintaktička greška: neočekivani kraj datoteke"
 
-#: parse.y:6248
+#: parse.y:6024
 msgid "syntax error"
-msgstr "sintaksna greška"
+msgstr "sintaktička greška"
 
-#: parse.y:6310
+#: parse.y:6086
 #, c-format
 msgid "Use \"%s\" to leave the shell.\n"
-msgstr "Koristite „%s” za napuštanje ljuske.\n"
+msgstr "Koristite \"%s\" da napustite ljusku.\n"
 
-#: parse.y:6472
+#: parse.y:6248
 msgid "unexpected EOF while looking for matching `)'"
-msgstr "neoÄ\8dekivani EOF pri traženju odgovarajuÄ\87e â\80\9e\80\9d"
+msgstr "neoÄ\8dekivani EOF pri traženju odgovarajuÄ\87e â\80\9e\80\9c"
 
-#: pcomplete.c:1132
+#: pcomplete.c:1126
 #, c-format
 msgid "completion: function `%s' not found"
-msgstr "completion: funkcija „%s” nije pronađena"
+msgstr "completion(): funkcija „%s“ nije pronađena"
 
-#: pcomplete.c:1722
+#: pcomplete.c:1646
 #, c-format
 msgid "programmable_completion: %s: possible retry loop"
-msgstr ""
+msgstr "programmable_completion(): %s: moguća je beskonačna petlja"
 
 #: pcomplib.c:182
 #, c-format
 msgid "progcomp_insert: %s: NULL COMPSPEC"
-msgstr "progcomp_insert: %s: NULL COMPSPEC"
+msgstr "progcomp_insert(): %s: prazni COMPSPEC"
 
-#: print_cmd.c:300
+#: print_cmd.c:302
 #, c-format
 msgid "print_command: bad connector `%d'"
-msgstr ""
+msgstr "print_command(): loši konektor „%d“"
 
-#: print_cmd.c:373
+#: print_cmd.c:375
 #, c-format
 msgid "xtrace_set: %d: invalid file descriptor"
-msgstr "xtrace_set: %d: neispravan opisnik datoteke"
+msgstr "xtrace_set(): %d: nevaljani deskriptor datoteke"
 
-#: print_cmd.c:378
+#: print_cmd.c:380
 msgid "xtrace_set: NULL file pointer"
-msgstr "xtrace_set: NULL pokazivač na datoteku"
+msgstr "xtrace_set(): prazni pokazivač na datoteku"
 
-#: print_cmd.c:382
+#: print_cmd.c:384
 #, c-format
 msgid "xtrace fd (%d) != fileno xtrace fp (%d)"
-msgstr ""
+msgstr "xtrace fd (%d) != fileno xtrace fp (%d)"
 
-#: print_cmd.c:1538
+#: print_cmd.c:1534
 #, c-format
 msgid "cprintf: `%c': invalid format character"
-msgstr ""
+msgstr "cprintf(): „%c“: nevaljani znak za format"
 
-#: redir.c:121 redir.c:167
+#: redir.c:124 redir.c:171
 msgid "file descriptor out of range"
-msgstr "opisnik datoteke izvan granica"
+msgstr "deskriptor datoteke je izvan raspona"
 
-#: redir.c:174
+#: redir.c:178
 #, c-format
 msgid "%s: ambiguous redirect"
-msgstr "%s: višeznačno preusmjeravanje"
+msgstr "%s: dvosmisleno preusmjeravanje"
 
-#: redir.c:178
+#: redir.c:182
 #, c-format
 msgid "%s: cannot overwrite existing file"
-msgstr "%s: ne mogu pisati preko postojeće datoteke"
+msgstr "%s: nije moguće pisati preko postojeće datoteke"
 
-#: redir.c:183
+#: redir.c:187
 #, c-format
 msgid "%s: restricted: cannot redirect output"
-msgstr "%s: ograničeno: ne mogu preusmjeriti izlaz"
+msgstr "%s: ograničeno: nije moguće preusmjeriti izlaz"
 
-#: redir.c:188
+#: redir.c:192
 #, c-format
 msgid "cannot create temp file for here-document: %s"
-msgstr "ne mogu napraviti privremenu datoteku za here-document: %s"
+msgstr "nije moguće napraviti privremenu datoteku za here-document: %s"
 
-#: redir.c:192
+#: redir.c:196
 #, c-format
 msgid "%s: cannot assign fd to variable"
-msgstr "%s: ne mogu pridružiti opisnik datoteke varijabli"
+msgstr "%s: nije moguće dodijeliti deskriptor datoteke varijabli"
 
-#: redir.c:588
+#: redir.c:586
 msgid "/dev/(tcp|udp)/host/port not supported without networking"
 msgstr "/dev/(tcp|udp)/host/port nije podržan bez umrežavanja"
 
-#: redir.c:870 redir.c:985 redir.c:1046 redir.c:1211
+#: redir.c:868 redir.c:983 redir.c:1044 redir.c:1209
 msgid "redirection error: cannot duplicate fd"
-msgstr "greška preusmjeravanja: ne mogu udvostručiti opisnik datoteke"
+msgstr "greška  preusmjeravanja: nije moguće kopirati deskriptor datoteke"
 
-#: shell.c:343
+#: shell.c:347
 msgid "could not find /tmp, please create!"
-msgstr "ne mogu pronaći /tmp, molim, napravite ga!"
+msgstr "nije bilo moguće pronaći /tmp; napravite taj direktorij!"
 
-#: shell.c:347
+#: shell.c:351
 msgid "/tmp must be a valid directory name"
 msgstr "/tmp mora biti ispravno ime direktorija"
 
-#: shell.c:798
-msgid "pretty-printing mode ignored in interactive shells"
-msgstr ""
-
-#: shell.c:940
+#: shell.c:927
 #, c-format
 msgid "%c%c: invalid option"
-msgstr "%c%c: neispravna opcija"
+msgstr "%c%c: nevaljana opcija"
 
-#: shell.c:1299
+#: shell.c:1282
 #, c-format
 msgid "cannot set uid to %d: effective uid %d"
-msgstr ""
+msgstr "nije moguće postaviti UID na %d: efektivni UID je %d"
 
-#: shell.c:1306
+#: shell.c:1289
 #, c-format
 msgid "cannot set gid to %d: effective gid %d"
-msgstr ""
+msgstr "nije moguće postaviti GID na %d: efektivni GID je %d"
 
-#: shell.c:1494
+#: shell.c:1458
 msgid "cannot start debugger; debugging mode disabled"
-msgstr ""
+msgstr "nije moguće pokrenuti debugger; debugiranje je onemogućeno"
 
-#: shell.c:1608
-#, fuzzy, c-format
+#: shell.c:1566
+#, c-format
 msgid "%s: Is a directory"
 msgstr "%s: to je direktorij"
 
-#: shell.c:1826
+#: shell.c:1777
 msgid "I have no name!"
 msgstr "Nemam ime!"
 
-#: shell.c:1980
+#: shell.c:1930
 #, c-format
 msgid "GNU bash, version %s-(%s)\n"
 msgstr "GNU bash, inačica %s-(%s)\n"
 
-#: shell.c:1981
+#: shell.c:1931
 #, c-format
 msgid ""
 "Usage:\t%s [GNU long option] [option] ...\n"
 "\t%s [GNU long option] [option] script-file ...\n"
 msgstr ""
 "Uporaba: %s [GNU dugačka opcija] [opcija] ...\n"
-"\t %s [GNU dugačka opcija] [opcija] skripta ...\n"
+"         %s [GNU dugačka opcija] [opcija] skripta ...\n"
 
-#: shell.c:1983
+#: shell.c:1933
 msgid "GNU long options:\n"
 msgstr "GNU dugačke opcije:\n"
 
-#: shell.c:1987
+#: shell.c:1937
 msgid "Shell options:\n"
 msgstr "Opcije ljuske:\n"
 
-#: shell.c:1988
+#: shell.c:1938
 msgid "\t-ilrsD or -c command or -O shopt_option\t\t(invocation only)\n"
-msgstr ""
+msgstr "\t-ilrsD ili -c NAREDBA ili -O SHOPT-OPCIJA    (samo za pokretanje)\n"
 
-#: shell.c:2003
+#: shell.c:1953
 #, c-format
 msgid "\t-%s or -o option\n"
-msgstr ""
+msgstr "\t-%s ili -o opcija\n"
 
-#: shell.c:2009
+#: shell.c:1959
 #, c-format
 msgid "Type `%s -c \"help set\"' for more information about shell options.\n"
-msgstr ""
+msgstr "„%s -c \"help set\"“  pokaže vam dodatne informacije o opcijama ljuske.\n"
 
-#: shell.c:2010
+#: shell.c:1960
 #, c-format
 msgid "Type `%s -c help' for more information about shell builtin commands.\n"
-msgstr ""
+msgstr "„%s -c help set“  pokaže vam više informacija o ugrađenim funkcijama ljuske.\n"
 
-#: shell.c:2011
+#: shell.c:1961
 #, c-format
 msgid "Use the `bashbug' command to report bugs.\n"
-msgstr "Koristite naredbu â\80\9ebashbugâ\80\9d za prijavljivanje grešaka.\n"
+msgstr "Koristite naredbu â\80\9ebashbugâ\80\9c za prijavljivanje grešaka.\n"
 
-#: shell.c:2013
+#: shell.c:1963
 #, c-format
 msgid "bash home page: <http://www.gnu.org/software/bash>\n"
-msgstr ""
+msgstr "bash Web stranica: <http://www.gnu.org/software/bash>\n"
 
-#: shell.c:2014
+#: shell.c:1964
 #, c-format
 msgid "General help using GNU software: <http://www.gnu.org/gethelp/>\n"
-msgstr ""
+msgstr "Općenita pomoć za korištenje GNU softvera: <http://www.gnu.org/gethelp/>\n"
 
-#: sig.c:695
+#: sig.c:707
 #, c-format
 msgid "sigprocmask: %d: invalid operation"
-msgstr ""
+msgstr "sigprocmask(): %d: nevaljana operacija"
 
 #: siglist.c:48
 msgid "Bogus signal"
-msgstr "Lažan signal"
+msgstr "Lažni signal"
 
 #: siglist.c:51
 msgid "Hangup"
@@ -1711,11 +1727,11 @@ msgstr "Izlaz"
 
 #: siglist.c:63
 msgid "Illegal instruction"
-msgstr "Nedozvoljena instrukcija"
+msgstr "Nedopuštena instrukcija"
 
 #: siglist.c:67
 msgid "BPT trace/trap"
-msgstr "BPT praćenje/zamka"
+msgstr "BPT trag/zamka instrukcija (Trace/Breakpoint trap)"
 
 #: siglist.c:75
 msgid "ABORT instruction"
@@ -1727,15 +1743,15 @@ msgstr "EMT instrukcija"
 
 #: siglist.c:83
 msgid "Floating point exception"
-msgstr "Iznimka pomičnog zareza"
+msgstr "Iznimka/greška u radu s realnim brojem"
 
 #: siglist.c:87
 msgid "Killed"
-msgstr "Prekinut"
+msgstr "Ubijen"
 
 #: siglist.c:91
 msgid "Bus error"
-msgstr "Sabirnička greška"
+msgstr "Greška adresiranja"
 
 #: siglist.c:95
 msgid "Segmentation fault"
@@ -1743,11 +1759,11 @@ msgstr "Segmentacijska greška"
 
 #: siglist.c:99
 msgid "Bad system call"
-msgstr "Neispravan poziv sustava"
+msgstr "Loši sustavski poziv"
 
 #: siglist.c:103
 msgid "Broken pipe"
-msgstr "Prekinut cjevovod"
+msgstr "Prekinuta cijev"
 
 #: siglist.c:107
 msgid "Alarm clock"
@@ -1755,7 +1771,7 @@ msgstr "Budilica"
 
 #: siglist.c:111
 msgid "Terminated"
-msgstr "Završen"
+msgstr "Završeno"
 
 #: siglist.c:115
 msgid "Urgent IO condition"
@@ -1763,15 +1779,15 @@ msgstr "Hitno U/I stanje"
 
 #: siglist.c:119
 msgid "Stopped (signal)"
-msgstr "Zaustavljen (signalom)"
+msgstr "Zaustavljeno (signalom)"
 
 #: siglist.c:127
 msgid "Continue"
-msgstr "Nastavi"
+msgstr "Nastavljanje"
 
 #: siglist.c:135
 msgid "Child death or stop"
-msgstr "Dijete je umrlo ili zaustavljeno"
+msgstr "Potomak-proces ubijen ili zaustavljen"
 
 #: siglist.c:139
 msgid "Stopped (tty input)"
@@ -1783,7 +1799,7 @@ msgstr "Zaustavljen (tty izlaz)"
 
 #: siglist.c:147
 msgid "I/O ready"
-msgstr "U/I spreman"
+msgstr "U/I je spreman"
 
 #: siglist.c:151
 msgid "CPU limit"
@@ -1795,19 +1811,19 @@ msgstr "Ograničenje datoteke"
 
 #: siglist.c:159
 msgid "Alarm (virtual)"
-msgstr "Budilica (virtualna)"
+msgstr "Alarm (virtualni)"
 
 #: siglist.c:163
 msgid "Alarm (profile)"
-msgstr ""
+msgstr "Alarm (profil)"
 
 #: siglist.c:167
 msgid "Window changed"
-msgstr "Promijenjen prozor"
+msgstr "Prozor promijenjen"
 
 #: siglist.c:171
 msgid "Record lock"
-msgstr ""
+msgstr "Zapis zaključan"
 
 #: siglist.c:175
 msgid "User signal 1"
@@ -1819,7 +1835,7 @@ msgstr "Korisnički signal 2"
 
 #: siglist.c:183
 msgid "HFT input data pending"
-msgstr ""
+msgstr "HFT ulazni podaci čekaju"
 
 #: siglist.c:187
 msgid "power failure imminent"
@@ -1839,15 +1855,15 @@ msgstr "greška programiranja"
 
 #: siglist.c:203
 msgid "HFT monitor mode granted"
-msgstr ""
+msgstr "HFT nadzor dopušten"
 
 #: siglist.c:207
 msgid "HFT monitor mode retracted"
-msgstr ""
+msgstr "HFT nadzor oduzet"
 
 #: siglist.c:211
 msgid "HFT sound sequence has completed"
-msgstr ""
+msgstr "HFT sekvencija zvukova je završena"
 
 #: siglist.c:215
 msgid "Information request"
@@ -1855,254 +1871,241 @@ msgstr "Zahtjev za informacijom"
 
 #: siglist.c:223
 msgid "Unknown Signal #"
-msgstr "Nepoznat signal #"
+msgstr "Nepoznati signal #"
 
 #: siglist.c:225
 #, c-format
 msgid "Unknown Signal #%d"
-msgstr "Nepoznat signal #%d"
+msgstr "Nepoznati signal #%d"
 
-#: subst.c:1450 subst.c:1641
+#: subst.c:1445 subst.c:1608
 #, c-format
 msgid "bad substitution: no closing `%s' in %s"
-msgstr "neispravna zamjena: nema zatvorene „%s” u %s"
+msgstr "loša supstitucija: nema zaključnoga „%s“ u %s"
 
-#: subst.c:3209
+#: subst.c:3154
 #, c-format
 msgid "%s: cannot assign list to array member"
-msgstr "%s: ne mogu pridružiti popis elementu polja"
+msgstr "%s: nije moguće dodijeliti popis elementu polja"
 
-#: subst.c:5734 subst.c:5750
+#: subst.c:5740 subst.c:5756
 msgid "cannot make pipe for process substitution"
-msgstr "ne mogu napraviti cjevovod za zamjenu procesa"
+msgstr "nije moguće napraviti cijev za zamjenu procesa"
 
-#: subst.c:5796
+#: subst.c:5798
 msgid "cannot make child for process substitution"
-msgstr "ne mogu napraviti dijete za zamjenu procesa"
+msgstr "nije moguće napraviti potomka za zamjenu procesa"
 
 #: subst.c:5848
 #, c-format
 msgid "cannot open named pipe %s for reading"
-msgstr "ne mogu otvoriti imenovani cjevovod %s za čitanje"
+msgstr "nije moguće otvoriti imenovanu cijev %s za čitanje"
 
 #: subst.c:5850
 #, c-format
 msgid "cannot open named pipe %s for writing"
-msgstr "ne mogu otvoriti imenovani cjevovod %s za pisanje"
+msgstr "nije moguće otvoriti imenovanu cijev %s za pisanje"
 
 #: subst.c:5873
 #, c-format
 msgid "cannot duplicate named pipe %s as fd %d"
-msgstr "ne mogu udvostručiti imenovani cjevovod %s kao opisnik datoteke %d"
+msgstr "nije moguće kopirati imenovanu cijev %s kao deskriptor datoteke %d"
 
-#: subst.c:5990
-#, fuzzy
+#: subst.c:5959
 msgid "command substitution: ignored null byte in input"
-msgstr "neispravna zamjena: nema zatvorenog „`” u %s"
+msgstr "nevaljana supstitucija: ignorirani NULL bajt na ulazu"
 
-#: subst.c:6121
+#: subst.c:6083
 msgid "cannot make pipe for command substitution"
-msgstr "ne mogu napraviti cjevovod za zamjenu naredbi"
+msgstr "nije moguće napraviti cijev za zamjenu naredbi"
 
-#: subst.c:6164
+#: subst.c:6127
 msgid "cannot make child for command substitution"
-msgstr "ne mogu napraviti dijete za zamjenu naredbi"
+msgstr "nije moguće napraviti potomka za zamjenu naredbi"
 
-#: subst.c:6190
+#: subst.c:6153
 msgid "command_substitute: cannot duplicate pipe as fd 1"
-msgstr ""
-"command_substitute: ne mogu udvostručiti cjevovod kao opisnik datoteke 1"
+msgstr "command_substitute(): nije moguće kopirati cijev kao deskriptor datoteke 1"
 
-#: subst.c:6641 subst.c:9483
+#: subst.c:6580 subst.c:8939
 #, c-format
 msgid "%s: invalid variable name for name reference"
-msgstr ""
+msgstr "%s: nevaljano ime varijable za naziv referencije"
 
-#: subst.c:6737 subst.c:6755 subst.c:6903
-#, fuzzy, c-format
+#: subst.c:6666 subst.c:8351 subst.c:8371
+#, c-format
+msgid "%s: bad substitution"
+msgstr "%s: loša supstitucija"
+
+#: subst.c:6800
+#, c-format
 msgid "%s: invalid indirect expansion"
-msgstr "%s: neispravan broj redaka"
+msgstr "%s: nevaljana indirektna ekspanzija"
 
-#: subst.c:6771 subst.c:6910
-#, fuzzy, c-format
+#: subst.c:6807
+#, c-format
 msgid "%s: invalid variable name"
-msgstr "„%s”: neispravno drugo ime"
-
-#: subst.c:6962
-#, fuzzy, c-format
-msgid "%s: parameter not set"
-msgstr "%s: parametar prazan ili nije postavljen"
+msgstr "„%s“: nevaljano ime varijable"
 
-#: subst.c:6964
+#: subst.c:6854
 #, c-format
 msgid "%s: parameter null or not set"
-msgstr "%s: parametar prazan ili nije postavljen"
+msgstr "%s: prazni parametar ili nije postavljen"
 
-#: subst.c:7201 subst.c:7216
+#: subst.c:7089 subst.c:7104
 #, c-format
 msgid "%s: substring expression < 0"
-msgstr "%s: izraz podniza < 0"
+msgstr "%s: rezultat od izraza dijela stringa < 0"
 
-#: subst.c:8839 subst.c:8860
-#, c-format
-msgid "%s: bad substitution"
-msgstr "%s: neispravna zamjena"
-
-#: subst.c:8948
+#: subst.c:8450
 #, c-format
 msgid "$%s: cannot assign in this way"
-msgstr "$%s: ne mogu pridružiti na ovaj način"
+msgstr "$%s: nije moguće dodijeliti na ovaj način"
 
-#: subst.c:9346
-msgid ""
-"future versions of the shell will force evaluation as an arithmetic "
-"substitution"
-msgstr "buduće inačice ljuske će prisiliti procjenu kao aritmetičku zamjenu"
+#: subst.c:8802
+msgid "future versions of the shell will force evaluation as an arithmetic substitution"
+msgstr "buduće inačice ljuske će prisiliti procjenu kao aritmetičku supstituciju"
 
-#: subst.c:9903
+#: subst.c:9349
 #, c-format
 msgid "bad substitution: no closing \"`\" in %s"
-msgstr "neispravna zamjena: nema zatvorenog „`” u %s"
+msgstr "loša supstitucija: nema zaključnoga znaka „`“ u %s"
 
-#: subst.c:10907
+#: subst.c:10298
 #, c-format
 msgid "no match: %s"
 msgstr "nema podudaranja: %s"
 
 #: test.c:147
 msgid "argument expected"
-msgstr "očekujem argument"
+msgstr "očekuje se argument"
 
 #: test.c:156
 #, c-format
 msgid "%s: integer expression expected"
-msgstr "%s: očekujem cjelobrojni izraz"
+msgstr "%s: očekuje se cijelo brojni izraz"
 
 #: test.c:265
 msgid "`)' expected"
-msgstr "očekujem „)”"
+msgstr "očekivana je „)“"
 
 #: test.c:267
 #, c-format
 msgid "`)' expected, found %s"
-msgstr "očekujem „)”, našao %s"
+msgstr "očekuje se „)“, nađen %s"
 
-#: test.c:282 test.c:748 test.c:751
+#: test.c:282 test.c:744 test.c:747
 #, c-format
 msgid "%s: unary operator expected"
-msgstr "%s: očekujem unarni operator"
+msgstr "%s: očekuje se unarni operator"
 
-#: test.c:469 test.c:791
+#: test.c:469 test.c:787
 #, c-format
 msgid "%s: binary operator expected"
-msgstr "%s: očekujem binarni operator"
+msgstr "%s: očekuje se binarni operator"
 
-#: test.c:873
+#: test.c:869
 msgid "missing `]'"
-msgstr "nedostaje â\80\9e\80\9d"
+msgstr "nedostaje â\80\9e\80\9c"
 
-#: trap.c:216
+#: trap.c:224
 msgid "invalid signal number"
-msgstr "neispravan broj signala"
+msgstr "nevaljani broj za signal"
 
-#: trap.c:379
+#: trap.c:387
 #, c-format
 msgid "run_pending_traps: bad value in trap_list[%d]: %p"
-msgstr ""
+msgstr "run_pending_traps(): loša vrijednost u trap_list[%d]: %p"
 
-#: trap.c:383
+#: trap.c:391
 #, c-format
-msgid ""
-"run_pending_traps: signal handler is SIG_DFL, resending %d (%s) to myself"
-msgstr ""
+msgid "run_pending_traps: signal handler is SIG_DFL, resending %d (%s) to myself"
+msgstr "run_pending_traps: signalom manipulira SIG_DFL, opet šalje %d (%s) na samoga sebe"
 
-#: trap.c:439
+#: trap.c:447
 #, c-format
 msgid "trap_handler: bad signal %d"
-msgstr "trap_handler: neispravan signal %d"
+msgstr "trap_handler(): loši signal %d"
 
-#: variables.c:399
+#: variables.c:409
 #, c-format
 msgid "error importing function definition for `%s'"
-msgstr "greška pri uvozu definicije funkcije za „%s”"
+msgstr "greška pri importiranju definicije funkcije za „%s“"
 
-#: variables.c:801
+#: variables.c:814
 #, c-format
 msgid "shell level (%d) too high, resetting to 1"
-msgstr "razina ljuske (%d) je previsoka, vraćam na 1"
+msgstr "razina ljuske (%d) je previsoka, vraća se na 1"
 
-#: variables.c:2512
+#: variables.c:2413
 msgid "make_local_variable: no function context at current scope"
-msgstr ""
+msgstr "make_local_variable(): u trenutačnom području nema konteksta funkcije"
 
-#: variables.c:2531
-#, fuzzy, c-format
+#: variables.c:2432
+#, c-format
 msgid "%s: variable may not be assigned value"
-msgstr "%s: ne mogu pridružiti opisnik datoteke varijabli"
+msgstr "%s: varijabli se ne može dodijeliti vrijednost"
 
-#: variables.c:3246
+#: variables.c:3043
 #, c-format
 msgid "%s: assigning integer to name reference"
-msgstr ""
+msgstr "%s: nazivu referencije se pripisuje cijeli broj"
 
-#: variables.c:4149
+#: variables.c:3940
 msgid "all_local_variables: no function context at current scope"
-msgstr ""
+msgstr "all_local_variables(): u trenutačnom području nema konteksta funkcije"
 
-#: variables.c:4437
+#: variables.c:4218
 #, c-format
 msgid "%s has null exportstr"
-msgstr "%s ima prazan exportstr"
+msgstr "*** %s ima prazni exportstr"
 
-#: variables.c:4442 variables.c:4451
+#: variables.c:4223 variables.c:4232
 #, c-format
 msgid "invalid character %d in exportstr for %s"
-msgstr ""
+msgstr "*** nevaljani znak %d u exportstr za %s"
 
-#: variables.c:4457
+#: variables.c:4238
 #, c-format
 msgid "no `=' in exportstr for %s"
-msgstr ""
+msgstr "*** nema „=“ u exportstr za %s"
 
-#: variables.c:4911
+#: variables.c:4684
 msgid "pop_var_context: head of shell_variables not a function context"
-msgstr ""
+msgstr "pop_var_context(): vrh od „shell_variables“ nije funkcijski kontekst"
 
-#: variables.c:4924
+#: variables.c:4697
 msgid "pop_var_context: no global_variables context"
-msgstr ""
+msgstr "pop_var_context(): nije „global_variables“ kontekst"
 
-#: variables.c:4999
+#: variables.c:4772
 msgid "pop_scope: head of shell_variables not a temporary environment scope"
-msgstr ""
+msgstr "pop_scope(): vrh od „shell_variables“ nije privremeni kontekst okoline"
 
-#: variables.c:5862
+#: variables.c:5619
 #, c-format
 msgid "%s: %s: cannot open as FILE"
-msgstr "%s: %s: ne mogu otvoriti kao DATOTEKU"
+msgstr "%s: %s: nije moguće otvoriti kao DATOTEKU"
 
-#: variables.c:5867
+#: variables.c:5624
 #, c-format
 msgid "%s: %s: invalid value for trace file descriptor"
-msgstr ""
+msgstr "%s: %s: nevaljana vrijednost za praćenje deskriptora datoteke"
 
-#: variables.c:5912
-#, fuzzy, c-format
+#: variables.c:5669
+#, c-format
 msgid "%s: %s: compatibility value out of range"
-msgstr "%s: %s je izvan granica"
+msgstr "%s: %s vrijednost za kompatibilnost je izvan raspona"
 
 #: version.c:46 version2.c:46
-#, fuzzy
 msgid "Copyright (C) 2016 Free Software Foundation, Inc."
-msgstr "Copyright © 2011 Free Software Foundation, Inc."
+msgstr "Copyright (C) 2016 Free Software Foundation, Inc."
 
 #: version.c:47 version2.c:47
-msgid ""
-"License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl."
-"html>\n"
+msgid "License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>\n"
 msgstr ""
-"Licenca GPLv3+: GNU GPL inačica 3 ili novija <http://gnu.org/licenses/gpl."
-"html>\n"
+"Licencija:\n"
+"GPLv3+: GNU GPL inačica 3 ili novija <http://gnu.org/licenses/gpl.html>\n"
 
 #: version.c:86 version2.c:86
 #, c-format
@@ -2110,68 +2113,67 @@ msgid "GNU bash, version %s (%s)\n"
 msgstr "GNU bash, inačica %s (%s)\n"
 
 #: version.c:91 version2.c:91
-#, fuzzy
 msgid "This is free software; you are free to change and redistribute it."
-msgstr "Ovo je slobodan softver, slobodno ga smijete mijenjati i dijeliti.\n"
+msgstr "Ovo je slobodni softver; slobodno ga mijenjajte i dijelite."
 
 #: version.c:92 version2.c:92
-#, fuzzy
 msgid "There is NO WARRANTY, to the extent permitted by law."
-msgstr "NEMA JAMSTAVA, do krajnje mjere dozvoljene zakonom.\n"
+msgstr "NEMA JAMSTVA do granica dopuštenih zakonom."
 
-#: xmalloc.c:93
+#: xmalloc.c:91
 #, c-format
 msgid "%s: cannot allocate %lu bytes (%lu bytes allocated)"
-msgstr "%s: ne mogu alocirati %lu bajtova (alocirano %lu bajtova)"
+msgstr "%s: nije moguće dodijeliti %lu bajtova (dodijeljeno je %lu bajtova)"
 
-#: xmalloc.c:95
+#: xmalloc.c:93
 #, c-format
 msgid "%s: cannot allocate %lu bytes"
-msgstr "%s: ne mogu alocirati %lu bajtova"
+msgstr "%s: nije moguće dodijeliti %lu bajtova"
 
-#: xmalloc.c:165
+#: xmalloc.c:163
 #, c-format
 msgid "%s: %s:%d: cannot allocate %lu bytes (%lu bytes allocated)"
-msgstr "%s: %s:%d: ne mogu alocirati %lu bajtova (alocirano %lu bajtova)"
+msgstr "%s: %s:%d: nije moguće dodijeliti %lu bajtova (dodijeljeno je %lu bajtova)"
 
-#: xmalloc.c:167
+#: xmalloc.c:165
 #, c-format
 msgid "%s: %s:%d: cannot allocate %lu bytes"
-msgstr "%s: %s:%d: ne mogu alocirati %lu bajtova"
+msgstr "%s: %s:%d: nije moguće dodijeliti %lu bajtova"
 
 #: builtins.c:45
 msgid "alias [-p] [name[=value] ... ]"
-msgstr "alias [-p] [ime[=vrijednost] ... ]"
+msgstr "alias [-p] [IME[=VRIJEDNOST]... ]"
 
 #: builtins.c:49
 msgid "unalias [-a] name [name ...]"
-msgstr "unalias [-a] ime [ime ...]"
+msgstr "unalias [-a] IME..."
 
 #: builtins.c:53
-msgid ""
-"bind [-lpsvPSVX] [-m keymap] [-f filename] [-q name] [-u name] [-r keyseq] [-"
-"x keyseq:shell-command] [keyseq:readline-function or readline-command]"
+msgid "bind [-lpsvPSVX] [-m keymap] [-f filename] [-q name] [-u name] [-r keyseq] [-x keyseq:shell-command] [keyseq:readline-function or readline-command]"
 msgstr ""
+"bind [-lpsvPSVX] [-m TIPKOVNICA] [-f DATOTEKA] [-q IME] [-u IME]\n"
+"           [-r PREČAC] [-x PREČAC:SHELL_NAREDBA]\n"
+"           [PREČAC:READLINE_FUNKCIJA | READLINE_NAREDBA]"
 
 #: builtins.c:56
 msgid "break [n]"
-msgstr ""
+msgstr "break [N]"
 
 #: builtins.c:58
 msgid "continue [n]"
-msgstr ""
+msgstr "continue [N]"
 
 #: builtins.c:60
 msgid "builtin [shell-builtin [arg ...]]"
-msgstr ""
+msgstr "builtin [UGRAĐENA_SHELL_FUNKCIJA [ARGUMENT...]]"
 
 #: builtins.c:63
 msgid "caller [expr]"
-msgstr ""
+msgstr "caller [IZRAZ]"
 
 #: builtins.c:66
 msgid "cd [-L|[-P [-e]] [-@]] [dir]"
-msgstr ""
+msgstr "cd [-L|[-P [-e]] [-@]] [DIREKTORIJ]"
 
 #: builtins.c:68
 msgid "pwd [-LP]"
@@ -2179,238 +2181,237 @@ msgstr "pwd [-LP]"
 
 #: builtins.c:76
 msgid "command [-pVv] command [arg ...]"
-msgstr ""
+msgstr "command [-pVv] NAREDBA [ARGUMENT...]"
 
 #: builtins.c:78
-#, fuzzy
 msgid "declare [-aAfFgilnrtux] [-p] [name[=value] ...]"
-msgstr "alias [-p] [ime[=vrijednost] ... ]"
+msgstr "declare [-aAfFgilnrtux] [-p] [IME[=VRIJEDNOST]...]"
 
 #: builtins.c:80
-#, fuzzy
 msgid "typeset [-aAfFgilnrtux] [-p] name[=value] ..."
-msgstr "alias [-p] [ime[=vrijednost] ... ]"
+msgstr "typeset [-aAfFgilnrtux] [-p] IME[=VRIJEDNOST]..."
 
 #: builtins.c:82
 msgid "local [option] name[=value] ..."
-msgstr ""
+msgstr "local [OPCIJA] IME[=VRIJEDNOST]..."
 
 #: builtins.c:85
 msgid "echo [-neE] [arg ...]"
-msgstr ""
+msgstr "echo [-neE] [ARGUMENT...]"
 
 #: builtins.c:89
 msgid "echo [-n] [arg ...]"
-msgstr ""
+msgstr "echo [-n] [ARGUMENT...]"
 
 #: builtins.c:92
 msgid "enable [-a] [-dnps] [-f filename] [name ...]"
-msgstr ""
+msgstr "enable [-a] [-dnps] [-f DATOTEKA] [IME...]"
 
 #: builtins.c:94
 msgid "eval [arg ...]"
-msgstr ""
+msgstr "eval [ARGUMENT...]"
 
 #: builtins.c:96
 msgid "getopts optstring name [arg]"
-msgstr ""
+msgstr "getopts OPCIJA_STRING IME [ARGUMENT]"
 
 #: builtins.c:98
 msgid "exec [-cl] [-a name] [command [arguments ...]] [redirection ...]"
-msgstr ""
+msgstr "exec [-cl] [-a IME] [NAREDBA [ARGUMENT...]] [PREUSMJERAVANJE...]"
 
 #: builtins.c:100
 msgid "exit [n]"
-msgstr ""
+msgstr "exit [N]"
 
 #: builtins.c:102
 msgid "logout [n]"
-msgstr ""
+msgstr "logout [N]"
 
 #: builtins.c:105
 msgid "fc [-e ename] [-lnr] [first] [last] or fc -s [pat=rep] [command]"
-msgstr ""
+msgstr "fc [-e EDITOR] [-lnr] [PRVA] [ZADNJA] ili: fc -s [UZORAK=ZAMJENA] [NAREDBA]"
 
 #: builtins.c:109
 msgid "fg [job_spec]"
-msgstr ""
+msgstr "fg [JOBSPEC]"
 
 #: builtins.c:113
 msgid "bg [job_spec ...]"
-msgstr ""
+msgstr "bg [JOBSPEC...]"
 
 #: builtins.c:116
 msgid "hash [-lr] [-p pathname] [-dt] [name ...]"
-msgstr ""
+msgstr "hash [-lr] [-p IME_STAZE] [-dt] [IME...]"
 
 #: builtins.c:119
 msgid "help [-dms] [pattern ...]"
-msgstr ""
+msgstr "help [-dms] [UZORAK ...]"
 
 #: builtins.c:123
-msgid ""
-"history [-c] [-d offset] [n] or history -anrw [filename] or history -ps arg "
-"[arg...]"
+msgid "history [-c] [-d offset] [n] or history -anrw [filename] or history -ps arg [arg...]"
 msgstr ""
+"history [-c] [-d POZICIJA] [N]\n"
+"    ili: history -anrw [DATOTEKA]\n"
+"    ili: history -ps ARGUMENT..."
 
 #: builtins.c:127
 msgid "jobs [-lnprs] [jobspec ...] or jobs -x command [args]"
-msgstr ""
+msgstr "jobs [-lnprs] [JOBSPEC...] ili: jobs -x NAREDBA [ARGUMENT...]"
 
 #: builtins.c:131
 msgid "disown [-h] [-ar] [jobspec ... | pid ...]"
-msgstr ""
+msgstr "disown [-h] [-ar] [JOBSPEC... | PID...]"
 
 #: builtins.c:134
-msgid ""
-"kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... or kill -l "
-"[sigspec]"
+msgid "kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... or kill -l [sigspec]"
 msgstr ""
+"kill [-s SIGSPEC | -n SIGNUM | -SIGSPEC] pid | JOBSPEC\n"
+" ili: kill -l [SIGSPEC]"
 
 #: builtins.c:136
 msgid "let arg [arg ...]"
-msgstr ""
+msgstr "let ARGUMENT..."
 
 #: builtins.c:138
-msgid ""
-"read [-ers] [-a array] [-d delim] [-i text] [-n nchars] [-N nchars] [-p "
-"prompt] [-t timeout] [-u fd] [name ...]"
+msgid "read [-ers] [-a array] [-d delim] [-i text] [-n nchars] [-N nchars] [-p prompt] [-t timeout] [-u fd] [name ...]"
 msgstr ""
+"read [-ers] [-a POLJE] [-d MEĐA] [-i TEKST] [-p PROMPT]\n"
+"           [-n BROJ_ZNAKOVA] [-N BROJ_ZNAKOVA] [-t SEKUNDA]\n"
+"           [-u FD] [IME...]"
 
 #: builtins.c:140
 msgid "return [n]"
-msgstr ""
+msgstr "return [N]"
 
 #: builtins.c:142
 msgid "set [-abefhkmnptuvxBCHP] [-o option-name] [--] [arg ...]"
-msgstr ""
+msgstr "set [-abefhkmnptuvxBCHP] [-o IME_OPCIJE] [--] [ARGUMENT...]"
 
 #: builtins.c:144
-#, fuzzy
 msgid "unset [-f] [-v] [-n] [name ...]"
-msgstr "unalias [-a] ime [ime ...]"
+msgstr "unset [-f] [-v] [-n] [IME...]"
 
 #: builtins.c:146
 msgid "export [-fn] [name[=value] ...] or export -p"
-msgstr ""
+msgstr "export [-fn] [IME[=VRIJEDNOST]...] ili: export -p"
 
 #: builtins.c:148
 msgid "readonly [-aAf] [name[=value] ...] or readonly -p"
-msgstr ""
+msgstr "readonly [-aAf] [IME[=VRIJEDNOST]...] ili: readonly -p"
 
 #: builtins.c:150
 msgid "shift [n]"
-msgstr ""
+msgstr "shift [N]"
 
 #: builtins.c:152
 msgid "source filename [arguments]"
-msgstr ""
+msgstr "source DATOTEKA [ARGUMENTI]"
 
 #: builtins.c:154
 msgid ". filename [arguments]"
-msgstr ""
+msgstr ". DATOTEKA [ARGUMENTI]"
 
 #: builtins.c:157
 msgid "suspend [-f]"
-msgstr ""
+msgstr "suspend [-f]"
 
 #: builtins.c:160
 msgid "test [expr]"
-msgstr ""
+msgstr "test [IZRAZ]"
 
 #: builtins.c:162
 msgid "[ arg... ]"
-msgstr ""
+msgstr "[ ARGUMENT... ]"
 
 #: builtins.c:166
 msgid "trap [-lp] [[arg] signal_spec ...]"
-msgstr ""
+msgstr "trap [-lp] [[ARGUMENT] SIGNAL_SPEC...]"
 
 #: builtins.c:168
 msgid "type [-afptP] name [name ...]"
-msgstr ""
+msgstr "type [-afptP] IME..."
 
 #: builtins.c:171
 msgid "ulimit [-SHabcdefiklmnpqrstuvxPT] [limit]"
-msgstr ""
+msgstr "ulimit [-SHabcdefiklmnpqrstuvxPT] [LIMIT]"
 
 #: builtins.c:174
 msgid "umask [-p] [-S] [mode]"
-msgstr ""
+msgstr "umask [-p] [-S] [MODE]"
 
 #: builtins.c:177
-msgid "wait [-fn] [id ...]"
-msgstr ""
+msgid "wait [-n] [id ...]"
+msgstr "wait [-n] [ID...]"
 
 #: builtins.c:181
 msgid "wait [pid ...]"
-msgstr ""
+msgstr "wait [PID...]"
 
 #: builtins.c:184
 msgid "for NAME [in WORDS ... ] ; do COMMANDS; done"
-msgstr ""
+msgstr "for IME [in RIJEČIMA...]; do NAREDBE; done"
 
 #: builtins.c:186
 msgid "for (( exp1; exp2; exp3 )); do COMMANDS; done"
-msgstr ""
+msgstr "for (( IZRAZ_1; IZRAZ_2; IZRAZ_3 )); do NAREDBE; done"
 
 #: builtins.c:188
 msgid "select NAME [in WORDS ... ;] do COMMANDS; done"
-msgstr ""
+msgstr "select IME [in RIJEČIMA...;]; do NAREDBE; done"
 
 #: builtins.c:190
 msgid "time [-p] pipeline"
-msgstr ""
+msgstr "time [-p] CJEVOVOD"
 
 #: builtins.c:192
 msgid "case WORD in [PATTERN [| PATTERN]...) COMMANDS ;;]... esac"
-msgstr ""
+msgstr "case RIJEČ in [UZORAK [| UZORAK]...) NAREDBE;;]... esac"
 
 #: builtins.c:194
-msgid ""
-"if COMMANDS; then COMMANDS; [ elif COMMANDS; then COMMANDS; ]... [ else "
-"COMMANDS; ] fi"
+msgid "if COMMANDS; then COMMANDS; [ elif COMMANDS; then COMMANDS; ]... [ else COMMANDS; ] fi"
 msgstr ""
+"if NAREDBE; then NAREDBE; [elif NAREDBE; then NAREDBE;]... [else NAREDBE;]\n"
+"    fi"
 
 #: builtins.c:196
 msgid "while COMMANDS; do COMMANDS; done"
-msgstr ""
+msgstr "while NAREDBE; do NAREDBE; done"
 
 #: builtins.c:198
 msgid "until COMMANDS; do COMMANDS; done"
-msgstr ""
+msgstr "until NAREDBE; do NAREDBE; done"
 
 #: builtins.c:200
 msgid "coproc [NAME] command [redirections]"
-msgstr ""
+msgstr "coproc [IME] NAREDBA [PREUSMJERAVANJA]"
 
 #: builtins.c:202
 msgid "function name { COMMANDS ; } or name () { COMMANDS ; }"
-msgstr ""
+msgstr "function IME {NAREDBE;} ili: IME () {NAREDBE;}"
 
 #: builtins.c:204
 msgid "{ COMMANDS ; }"
-msgstr ""
+msgstr "{ NAREDBE; }"
 
 #: builtins.c:206
 msgid "job_spec [&]"
-msgstr ""
+msgstr "JOBSPEC [&]"
 
 #: builtins.c:208
 msgid "(( expression ))"
-msgstr "(( izraz ))"
+msgstr "(( IZRAZ ))"
 
 #: builtins.c:210
 msgid "[[ expression ]]"
-msgstr "[[ izraz ]]"
+msgstr "(( IZRAZ ))"
 
 #: builtins.c:212
 msgid "variables - Names and meanings of some shell variables"
-msgstr ""
+msgstr "varijable — imena i značenje nekih varijabla ljuske"
 
 #: builtins.c:215
 msgid "pushd [-n] [+N | -N | dir]"
-msgstr "pushd [-n] [+N | -N | direktorij]"
+msgstr "pushd [-n] [+N | -N | DIREKTORIJ]"
 
 #: builtins.c:219
 msgid "popd [-n] [+N | -N]"
@@ -2418,44 +2419,45 @@ msgstr "popd [-n] [+N | -N]"
 
 #: builtins.c:223
 msgid "dirs [-clpv] [+N] [-N]"
-msgstr ""
+msgstr "dirs [-clpv] [+N] [-N]"
 
 #: builtins.c:226
 msgid "shopt [-pqsu] [-o] [optname ...]"
-msgstr ""
+msgstr "shopt [-pqsu] [-o] [IME_OPCIJE...]"
 
 #: builtins.c:228
 msgid "printf [-v var] format [arguments]"
-msgstr ""
+msgstr "printf [-v VARIJABLA] FORMAT [ARGUMENTI]"
 
 #: builtins.c:231
-msgid ""
-"complete [-abcdefgjksuv] [-pr] [-DE] [-o option] [-A action] [-G globpat] [-"
-"W wordlist]  [-F function] [-C command] [-X filterpat] [-P prefix] [-S "
-"suffix] [name ...]"
+msgid "complete [-abcdefgjksuv] [-pr] [-DE] [-o option] [-A action] [-G globpat] [-W wordlist]  [-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] [name ...]"
 msgstr ""
+"complete [-abcdefgjksuv] [-pr] [-DE] [-o OPCIJA] [-A AKCIJA]\n"
+"                   [-C NAREDBA] [-F FUNCIJA] [-G UZORAK] [-P PREFIKS]\n"
+"                   [-S SUFIKS] [-W POPIS_RIJEČI] [-X FILTAR_UZORAKA] [IME...]"
 
 #: builtins.c:235
-msgid ""
-"compgen [-abcdefgjksuv] [-o option] [-A action] [-G globpat] [-W wordlist]  "
-"[-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] [word]"
+msgid "compgen [-abcdefgjksuv] [-o option] [-A action] [-G globpat] [-W wordlist]  [-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] [word]"
 msgstr ""
+"compgen [-abcdefgjksuv] [-o OPCIJA] [-A AKCIJA] [-C NAREDBA]\n"
+"                 [-F FUNCIJA] [-G UZORAK] [-P PREFIKS] [-S SUFIKS]\n"
+"                 [-W POPIS_RIJEČI] [-X FILTAR_UZORAKA] [RIJEČ]"
 
 #: builtins.c:239
 msgid "compopt [-o|+o option] [-DE] [name ...]"
-msgstr ""
+msgstr "compopt [-o|+o OPCIJA] [-DE] [IME...]"
 
 #: builtins.c:242
-msgid ""
-"mapfile [-d delim] [-n count] [-O origin] [-s count] [-t] [-u fd] [-C "
-"callback] [-c quantum] [array]"
+msgid "mapfile [-d delim] [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c quantum] [array]"
 msgstr ""
+"mapfile [-d MEĐA] [-n BROJ] [-O POČETAK] [-s BROJ] [-t] [-u FD]\n"
+"                 [-C FUNKCIJA] [-c TOLIKO] [POLJE]"
 
 #: builtins.c:244
-msgid ""
-"readarray [-d delim] [-n count] [-O origin] [-s count] [-t] [-u fd] [-C "
-"callback] [-c quantum] [array]"
+msgid "readarray [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c quantum] [array]"
 msgstr ""
+"readarray [-n BROJ] [-O POČETAK] [-s BROJ] [-t] [-u FD]\n"
+"                     [-C FUNKCIJA] [-c TOLIKO] [POLJE]"
 
 #: builtins.c:256
 msgid ""
@@ -2472,10 +2474,18 @@ msgid ""
 "      -p\tprint all defined aliases in a reusable format\n"
 "    \n"
 "    Exit Status:\n"
-"    alias returns true unless a NAME is supplied for which no alias has "
-"been\n"
+"    alias returns true unless a NAME is supplied for which no alias has been\n"
 "    defined."
 msgstr ""
+"Definira ili prikaže aliase.\n"
+"\n"
+"    Bez argumenata, „alias“ ispiše popis aliasa na standardni izlaz u\n"
+"    iskoristivom formatu: alias IME='ZAMJENA'.\n"
+"    S argumentima, alias je definirani za svako IME za koje je dȃna\n"
+"    ZAMJENA. Ako ZAMJENA završi s razmakom (bjelinom), onda pri ekspanziji\n"
+"    alias provjeri je li je i sljedeća riječ alias.\n"
+"\n"
+"    Završi s kȏdom 0 osim ako nije definirani alias za dȃno IME."
 
 #: builtins.c:278
 msgid ""
@@ -2486,6 +2496,11 @@ msgid ""
 "    \n"
 "    Return success unless a NAME is not an existing alias."
 msgstr ""
+"Ukloni svako dȃno IME iz popisa definiranih aliasa.\n"
+"\n"
+"    S opcijom „-a“ izbriše sve definirane aliase.\n"
+"\n"
+"    Završi s uspjehom osim ako IME nije postojeći alias."
 
 #: builtins.c:291
 msgid ""
@@ -2499,35 +2514,66 @@ msgid ""
 "    Options:\n"
 "      -m  keymap         Use KEYMAP as the keymap for the duration of this\n"
 "                         command.  Acceptable keymap names are emacs,\n"
-"                         emacs-standard, emacs-meta, emacs-ctlx, vi, vi-"
-"move,\n"
+"                         emacs-standard, emacs-meta, emacs-ctlx, vi, vi-move,\n"
 "                         vi-command, and vi-insert.\n"
 "      -l                 List names of functions.\n"
 "      -P                 List function names and bindings.\n"
 "      -p                 List functions and bindings in a form that can be\n"
 "                         reused as input.\n"
-"      -S                 List key sequences that invoke macros and their "
-"values\n"
-"      -s                 List key sequences that invoke macros and their "
-"values\n"
+"      -S                 List key sequences that invoke macros and their values\n"
+"      -s                 List key sequences that invoke macros and their values\n"
 "                         in a form that can be reused as input.\n"
 "      -V                 List variable names and values\n"
 "      -v                 List variable names and values in a form that can\n"
 "                         be reused as input.\n"
 "      -q  function-name  Query about which keys invoke the named function.\n"
-"      -u  function-name  Unbind all keys which are bound to the named "
-"function.\n"
+"      -u  function-name  Unbind all keys which are bound to the named function.\n"
 "      -r  keyseq         Remove the binding for KEYSEQ.\n"
 "      -f  filename       Read key bindings from FILENAME.\n"
 "      -x  keyseq:shell-command\tCause SHELL-COMMAND to be executed when\n"
 "    \t\t\t\tKEYSEQ is entered.\n"
-"      -X                 List key sequences bound with -x and associated "
-"commands\n"
+"      -X                 List key sequences bound with -x and associated commands\n"
 "                         in a form that can be reused as input.\n"
 "    \n"
 "    Exit Status:\n"
 "    bind returns 0 unless an unrecognized option is given or an error occurs."
 msgstr ""
+"Odredi i postavi „readline“ prečace i varijable.\n"
+"\n"
+"    Poveže sekvencije tipki (prečace) na „readline“ funkciju, ili makro ili\n"
+"    „readline“ varijablu. Sintaksa argumenta koji nije opcija je ista kao\n"
+"    u ~/.inputrc, ali mora biti proslijeđeni kao pojedinačni argument,\n"
+"    na primjer: '\"\\C-x\\C-r\": re-read-init-file'.\n"
+"\n"
+"    Opcije:\n"
+"      -f DATOTEKA        pročita prečace iz ove DATOTEKE\n"
+"      -l                 izlista sve poznate funkcije\n"
+"      -m TIPKOVNICA      koristi ovu TIPKOVNICU dok traje ova naredba;\n"
+"                         moguće TIPKOVNICE su emacs, emacs-standard,\n"
+"                         emacs-meta, emacs-ctlx, vi, vi-move, vi-command,\n"
+"                         i vi-insert.\n"
+"      -P                 izlista imena funkcija i prečaca\n"
+"      -p                 ispiše imena funkcija i prečaca u formatu\n"
+"                           koji se može iskoristiti kao ulaz\n"
+"      -r PREČAC          ukloni sekvenciju tipki za ovaj prečac\n"
+"      -q FUNKCIJA        pokaže tipke koje pozivaju ovu FUNKCIJU\n"
+"      -S                 pokaže sekvencije tipki poje pozivaju makroe\n"
+"                           s njihovim vrijednostima\n"
+"      -s                 ispiše sekvencije tipki poje pozivaju makroe s\n"
+"                           njihovim vrijednostima u formatu koji se može\n"
+"                           iskoristiti kao ulaz\n"
+"      -u FUNKCIJA        poništi sve prečace vezane na ovu FUNKCIJU\n"
+"      -V                 izlista imena varijabli s njihovim vrijednostima\n"
+"      -v                 ispiše imena varijabli s njihovim vrijednostima\n"
+"                           u formatu koji se može iskoristiti kao ulaz\n"
+"      -x PREČAC:SHELL_NAREDBA  učini da se izvrši ova SHELL_NAREDBA kȁd god\n"
+"                                 se unese taj PREČAC (sekvencija tipki)\n"
+"      -X                 ispiše prečace (sekvencije tipki) vezane s „-x“ i\n"
+"                           njima pridružene naredbe u formatu koji se može\n"
+"                           iskoristiti kao ulaz\n"
+"\n"
+"    Završi s kȏdom 0 osim ako je dȃna neprepoznata opcija\n"
+"    ili se dogodila greška."
 
 #: builtins.c:330
 msgid ""
@@ -2539,6 +2585,11 @@ msgid ""
 "    Exit Status:\n"
 "    The exit status is 0 unless N is not greater than or equal to 1."
 msgstr ""
+"Izlaz iz for, while ili until petlji.\n"
+"\n"
+"    Ako je dȃn N, ukida se N ugnježđenih petlji.\n"
+"\n"
+"    Završi s kȏdom 0 osim ako je N manji od 1."
 
 #: builtins.c:342
 msgid ""
@@ -2550,6 +2601,10 @@ msgid ""
 "    Exit Status:\n"
 "    The exit status is 0 unless N is not greater than or equal to 1."
 msgstr ""
+"Nastavlja sljedeću iteraciju ugnježđenih for, while ili until petlji.\n"
+"    Ako je dȃn N, nastavlja se N-tom ugnježđenom petljom.\n"
+"\n"
+"    Završi s kȏdom 0 osim ako je N manji od 1."
 
 #: builtins.c:354
 msgid ""
@@ -2557,13 +2612,22 @@ msgid ""
 "    \n"
 "    Execute SHELL-BUILTIN with arguments ARGs without performing command\n"
 "    lookup.  This is useful when you wish to reimplement a shell builtin\n"
-"    as a shell function, but need to execute the builtin within the "
-"function.\n"
+"    as a shell function, but need to execute the builtin within the function.\n"
 "    \n"
 "    Exit Status:\n"
 "    Returns the exit status of SHELL-BUILTIN, or false if SHELL-BUILTIN is\n"
 "    not a shell builtin.."
 msgstr ""
+"Izvrši ugrađenu funkciju ljuske (shell builtins).\n"
+"\n"
+"    Izvrši dȃnu UGRAĐENU_SHELL_FUNKCIJU (SHELL-BUILTIN) funkciju s dȃnim\n"
+"    ARGUMENTIMA. To je korisno ako želite redefinirati implementaciju\n"
+"    ugrađene shell funkcije kao vlastitu shell funkciju (skriptu s istim\n"
+"    imenom kao ugrađena shell funkcija), a potrebna vam je funkcionalnost\n"
+"    te ugrađene shell funkcije unutar vaše vlastite skripte (shell funkcije).\n"
+"\n"
+"    Završi s kȏdom UGRAĐENE_SHELL_FUNKCIJE ili s kȏdom 1 ako\n"
+"    UGRAĐENA_SHELL_FUNKCIJA nije ugrađene funkcija ljuske (shell builtin)."
 
 #: builtins.c:369
 msgid ""
@@ -2580,27 +2644,32 @@ msgid ""
 "    Returns 0 unless the shell is not executing a shell function or EXPR\n"
 "    is invalid."
 msgstr ""
+"Vrati kontekst trenutačnoga poziva potprogramu.\n"
+"\n"
+"    Bez IZRAZA, vrati „$line $filename“. Ako je dȃn IZRAZ, vrati\n"
+"    „$line $subroutine $filename“; ova dodatna informacija može poslužiti\n"
+"    za „stack trace“.\n"
+"\n"
+"    Vrijednost IZRAZA pokazuje koliko se treba vratiti unazad od\n"
+"    trenutačne pozicije, s time da je pozicija 0 trenutačna pozicija.\n"
+"\n"
+"    Završi s kȏdom 0 osim ako ljuska ne izvršava ljuskinu funkciju\n"
+"    ili je IZRAZ nevaljani."
 
 #: builtins.c:387
 msgid ""
 "Change the shell working directory.\n"
 "    \n"
-"    Change the current directory to DIR.  The default DIR is the value of "
-"the\n"
+"    Change the current directory to DIR.  The default DIR is the value of the\n"
 "    HOME shell variable.\n"
 "    \n"
-"    The variable CDPATH defines the search path for the directory "
-"containing\n"
-"    DIR.  Alternative directory names in CDPATH are separated by a colon "
-"(:).\n"
-"    A null directory name is the same as the current directory.  If DIR "
-"begins\n"
+"    The variable CDPATH defines the search path for the directory containing\n"
+"    DIR.  Alternative directory names in CDPATH are separated by a colon (:).\n"
+"    A null directory name is the same as the current directory.  If DIR begins\n"
 "    with a slash (/), then CDPATH is not used.\n"
 "    \n"
-"    If the directory is not found, and the shell option `cdable_vars' is "
-"set,\n"
-"    the word is assumed to be  a variable name.  If that variable has a "
-"value,\n"
+"    If the directory is not found, and the shell option `cdable_vars' is set,\n"
+"    the word is assumed to be  a variable name.  If that variable has a value,\n"
 "    its value is used for DIR.\n"
 "    \n"
 "    Options:\n"
@@ -2616,15 +2685,49 @@ msgid ""
 "    \t\tattributes as a directory containing the file attributes\n"
 "    \n"
 "    The default is to follow symbolic links, as if `-L' were specified.\n"
-"    `..' is processed by removing the immediately previous pathname "
-"component\n"
+"    `..' is processed by removing the immediately previous pathname component\n"
 "    back to a slash or the beginning of DIR.\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns 0 if the directory is changed, and if $PWD is set successfully "
-"when\n"
+"    Returns 0 if the directory is changed, and if $PWD is set successfully when\n"
 "    -P is used; non-zero otherwise."
 msgstr ""
+"Promjeni trenutačni direktorij.\n"
+"\n"
+"    Promijeni trenutačni direktorij u dȃni DIREKTORIJ. Zadano, DIREKTORIJ\n"
+"    je vrijednost varijable HOME.\n"
+"\n"
+"    Varijabla CDPATH definira staze (direktorije) po kojima se\n"
+"    traži dȃni DIREKTORIJ.\n"
+"\n"
+"    Nazivi direktorija (staza) u CDPATH su razdvojeni s dvotočkom (:);\n"
+"    prazni naziv za direktorij je isto kao i trenutačni direktorij (.).\n"
+"    Ako dȃni DIREKTORIJ započinje s kosom crtom (/), onda se CDPATH\n"
+"    ne koristi.\n"
+"\n"
+"    Ako se dȃni direktorij ne pronađe, a omogućena je opcija „cdable_vars“,\n"
+"    tada se dȃna riječ uzme kao ime varijable; ako ta varijabla sadrži\n"
+"    naziv, „cd“ prijeđe u direktorij s tim nazivom.\n"
+"\n"
+"    Opcije:\n"
+"      -L    slijedi simboličke veze; simboličke veze u DIREKTORIJu\n"
+"              razriješi nakon procesiranja „..“ instancije DIREKTORIJa;\n"
+"              opcija „-L“ je aktivna u zadanom (početnom) stanju\n"
+"      -P    rabi fizičku strukturu direktorija umjesto da slijedi\n"
+"              simboličke veze; simboličke veze DIREKTORIJa\n"
+"              razriješi prije procesiranja „..“ instancije DIREKTORIJa\n"
+"      -e    ako je dȃna s opcijom „-P“, i trenutačni radni direktorij nije\n"
+"              moguće uspješno odrediti nakon uspješne promjene direktorija,\n"
+"              „cd“ završi s kȏdom različitim od 0.\n"
+"      -@    opiše proširene atribute povezane s datotekom kao direktorij\n"
+"              koji sadrži atribute datoteke (ako sustav to podržava)\n"
+"\n"
+"    Token „..“ se procesira uklanjanjem komponente staze koja mu neposredno\n"
+"    prethodi unatrag do kose crte „/“ ili do početka DIREKTORIJA.\n"
+"\n"
+"    Završi s kȏdom 0 ako je direktorij promijenjen i ako je\n"
+"    varijabla okoline PWD uspješno postavljena kȁd je dȃna opcija „-P“;\n"
+"    u suprotnom završi s kȏdom 1."
 
 #: builtins.c:425
 msgid ""
@@ -2641,6 +2744,16 @@ msgid ""
 "    Returns 0 unless an invalid option is given or the current directory\n"
 "    cannot be read."
 msgstr ""
+"Ispiše ime trenutačnoga radnog direktorija.\n"
+"\n"
+"    Opcije:\n"
+"      -L   ispiše vrijednost od $PWD ako sadrži trenutačni radni direktorij\n"
+"      -P   ispiše stvarnu fizičku stazu do direktorija bez simboličkih veza\n"
+"\n"
+"    U zadanom stanju „pwd“ se ponaša kao da je aktivna „-L“ opcija.\n"
+"\n"
+"    Završi s kȏdom 0 osim ako nije dȃna nevaljana opcija\n"
+"    ili se trenutačni radni direktorij ne može pročitati."
 
 #: builtins.c:442
 msgid ""
@@ -2650,13 +2763,7 @@ msgid ""
 "    \n"
 "    Exit Status:\n"
 "    Always succeeds."
-msgstr ""
-"Prazna naredba.\n"
-"    \n"
-"    Nema efekta, ova naredba ne radi ništa.\n"
-"    \n"
-"    Izlazno stanje:\n"
-"    Uvijek uspješno."
+msgstr "Naredba nema nikakvog efekta, ne radi ništa; uvijek završi s kȏdom 0."
 
 #: builtins.c:453
 msgid ""
@@ -2664,11 +2771,7 @@ msgid ""
 "    \n"
 "    Exit Status:\n"
 "    Always succeeds."
-msgstr ""
-"Vrati uspješan rezultat.\n"
-"    \n"
-"    Izlazno stanje:\n"
-"    Uvijek uspješno."
+msgstr "Uvijek završi uspješno s kȏdom 0."
 
 #: builtins.c:462
 msgid ""
@@ -2676,19 +2779,14 @@ msgid ""
 "    \n"
 "    Exit Status:\n"
 "    Always fails."
-msgstr ""
-"Vrati neuspješan rezultat.\n"
-"    \n"
-"    Izlazno stanje:\n"
-"    Uvijek neuspješno."
+msgstr "Uvijek završi neuspješno s kȏdom 1."
 
 #: builtins.c:471
 msgid ""
 "Execute a simple command or display information about commands.\n"
 "    \n"
 "    Runs COMMAND with ARGS suppressing  shell function lookup, or display\n"
-"    information about the specified COMMANDs.  Can be used to invoke "
-"commands\n"
+"    information about the specified COMMANDs.  Can be used to invoke commands\n"
 "    on disk when a function with the same name exists.\n"
 "    \n"
 "    Options:\n"
@@ -2700,6 +2798,20 @@ msgid ""
 "    Exit Status:\n"
 "    Returns exit status of COMMAND, or failure if COMMAND is not found."
 msgstr ""
+"Izvrši jednostavnu naredbu ili pokaže informacije o naredbama.\n"
+"\n"
+"    Izvrši dȃnu NAREDBU s dȃnim ARGUMENTIMA ignorirajući pritom bilo\n"
+"    koju funkciju ljuske s istim imenom (naredba). Može se koristiti da\n"
+"    pokrenete naredbu na disku i onda kȁd postoji funkcija s istim imenom.\n"
+"\n"
+"    Opcije:\n"
+"      -p   rabi zadanu vrijednost za PATH kao garanciju\n"
+"             pronalaženja svih standardnih programa\n"
+"      -v   ispiše opis NAREDBE, slično kao „type“ builtin\n"
+"      -V   ispiše opširniji opis svake dȃne NAREDBE\n"
+"\n"
+"    Završi s izlaznim statusom NAREDBE\n"
+"    ili s 1 ako NAREDBA nije pronađena."
 
 #: builtins.c:490
 msgid ""
@@ -2720,11 +2832,11 @@ msgid ""
 "      -a\tto make NAMEs indexed arrays (if supported)\n"
 "      -A\tto make NAMEs associative arrays (if supported)\n"
 "      -i\tto make NAMEs have the `integer' attribute\n"
-"      -l\tto convert the value of each NAME to lower case on assignment\n"
+"      -l\tto convert NAMEs to lower case on assignment\n"
 "      -n\tmake NAME a reference to the variable named by its value\n"
 "      -r\tto make NAMEs readonly\n"
 "      -t\tto make NAMEs have the `trace' attribute\n"
-"      -u\tto convert the value of each NAME to upper case on assignment\n"
+"      -u\tto convert NAMEs to upper case on assignment\n"
 "      -x\tto make NAMEs export\n"
 "    \n"
 "    Using `+' instead of `-' turns off the given attribute.\n"
@@ -2732,25 +2844,57 @@ msgid ""
 "    Variables with the integer attribute have arithmetic evaluation (see\n"
 "    the `let' command) performed when the variable is assigned a value.\n"
 "    \n"
-"    When used in a function, `declare' makes NAMEs local, as with the "
-"`local'\n"
+"    When used in a function, `declare' makes NAMEs local, as with the `local'\n"
 "    command.  The `-g' option suppresses this behavior.\n"
 "    \n"
 "    Exit Status:\n"
 "    Returns success unless an invalid option is supplied or a variable\n"
 "    assignment error occurs."
 msgstr ""
+"Postavlja vrijednosti i atribute varijablama.\n"
+"\n"
+"    Deklarira varijable i dodjeljuje im atribute. Ako IMEna nisu dȃna,\n"
+"    prikaže atribute i vrijednosti svih varijabli.\n"
+"\n"
+"    Opcije:\n"
+"      -f   prikaže samo definirane funkcije (ne pokaže varijable)\n"
+"      -F   prikaže samo imena funkcija bez definicija\n"
+"      -g   kreira globalne varijable samo za upotrebu u funkciji ljuske;\n"
+"             inače se ignoriraju\n"
+"      -p   prikaže atribute i vrijednost za svako dȃno IME\n"
+"\n"
+"    Atributi:\n"
+"      -a   učini od dȃnih IMEna indeksirana polja (ako je to podržano)\n"
+"      -A   učini od dȃnih IMEna asocijativna polja (ako je to podržano)\n"
+"      -i   učini da dȃna IMEna dobiju „integer“ svojstva\n"
+"      -l   pretvori slova dȃnih IMEna u mala slova prilikom upotrebe\n"
+"      -n   učini dȃno IME referencijom na drugu varijablu s imenom\n"
+"             jednakim „vrijednost od varijable IME“\n"
+"      -r   učini dȃna IMEna readonly\n"
+"      -t   učini da dȃna IMEna dobiju „trace“ svojstva\n"
+"      -u   pretvori slova dȃnih IMEna u velika slova prilikom upotrebe\n"
+"      -x   označi dȃna IMEna za ekport\n"
+"\n"
+"    „+“ umjesto „-“ isključi dȃni atribut.\n"
+"\n"
+"    Varijable s „integer“ atributom obavljaju aritmetičke operacije tijekom\n"
+"    izvođenja i upotrebe (pogledajte „let“ naredbu).\n"
+"\n"
+"    Unutar funkcije „declare“ učini dȃna IMEna lokalnima, slično kao\n"
+"    naredba „local“. Opcija „-g“ spriječi takvo ponašanje.\n"
+"\n"
+"    Završi s kȏdom 0 osim ako je dȃna nevaljana opcija\n"
+"    ili se dogodila greška prilikom pridruživanja varijabli."
 
 #: builtins.c:530
-#, fuzzy
 msgid ""
 "Set variable values and attributes.\n"
 "    \n"
 "    A synonym for `declare'.  See `help declare'."
 msgstr ""
 "Postavi vrijednosti i svojstva varijabli.\n"
-"    \n"
-"    Zastarjelo. Pogledajte „help declare”."
+"\n"
+"    Sinonim za „declare“.  Za detalje upišite „help declare“."
 
 #: builtins.c:538
 msgid ""
@@ -2766,13 +2910,22 @@ msgid ""
 "    Returns success unless an invalid option is supplied, a variable\n"
 "    assignment error occurs, or the shell is not executing a function."
 msgstr ""
+"Definira lokalne varijable.\n"
+"\n"
+"    Kreira lokalnu varijablu IME i dodijeli joj vrijednost. OPCIJA\n"
+"    može biti bilo koja od opcija koju prihvaća naredba „declare“.\n"
+"\n"
+"    Lokalne varijable mogu se koristiti samo unutar neke funkcije a\n"
+"    vidljive su samo funkciji u kojoj su definirane i njezinim potomcima.\n"
+"\n"
+"    Završi s kȏdom 0 osim ako su dȃne nevaljane opcije,\n"
+"    dogodila se greška pri dodijeli ili ljuska ne izvrši funkciju."
 
 #: builtins.c:555
 msgid ""
 "Write arguments to the standard output.\n"
 "    \n"
-"    Display the ARGs, separated by a single space character and followed by "
-"a\n"
+"    Display the ARGs, separated by a single space character and followed by a\n"
 "    newline, on the standard output.\n"
 "    \n"
 "    Options:\n"
@@ -2800,6 +2953,35 @@ msgid ""
 "    Exit Status:\n"
 "    Returns success unless a write error occurs."
 msgstr ""
+"Dȃne argumente ispiše na standardni izlaz.\n"
+"\n"
+"    Ispiše dȃne argumente na standardni izlaz, međusobno odvojene s\n"
+"    jednim razmakom (bjelina) i na kraju s novim retkom.\n"
+"\n"
+"    Opcije:\n"
+"      -n   ne pripoji novi redak (znak novog retka)\n"
+"      -e   interpretira sljedeće sekvencije maskirane\n"
+"             s obratnom kosom crtom (backslash escapes)\n"
+"      -E   ne interpretira sekvencije maskirane\n"
+"             s obratnom kosom crtom (backslash escapes)\n"
+"\n"
+"    „echo“ interpretira ove kontrolne kodove (sekvencije maskirane\n"
+"    s obratnom kosom crtom — backslash escapes):\n"
+"      \\a   alert (zvučni signal)\n"
+"      \\b   backspace\n"
+"      \\c   spriječi daljni izlaz\n"
+"      \\e   znak za escape (ESC)\n"
+"      \\E   znak za escape (ESC)\n"
+"      \\f   nova stranica (znak za FF, form feed)\n"
+"      \\n   novi redak (znak za LF, line feed)\n"
+"      \\r   na početak novoga retka (Enter, znak za CR, carriage return)\n"
+"      \\t   horizontalni tabulator\n"
+"      \\v   vertikalni tabulator\n"
+"      \\\\     backslash (\\)\n"
+"      \\0NNN   znak s ASCII kȏdom NNN (oktalni, 1 do 3 znamenke)\n"
+"      \\xHH    znak s ASCII kȏdom HH (heksadecimalni, 1 do 2 znamenke)\n"
+"\n"
+"    Završi s kȏdom 0 osim ako se ne dogodi greška pisanja."
 
 #: builtins.c:591
 msgid ""
@@ -2813,6 +2995,12 @@ msgid ""
 "    Exit Status:\n"
 "    Returns success unless a write error occurs."
 msgstr ""
+"Ispiše argumente na standardni izlaz.\n"
+"\n"
+"    Prikaže ARGUMENTE na standardnom izlazu (pripoji im znak za novi redak).\n"
+"    Opcijom „-n“ može se isključiti pripajanje znaka za novi redak.\n"
+"\n"
+"    Završi s kȏdom 0 ako se ne dogodi greška pisanja."
 
 #: builtins.c:606
 msgid ""
@@ -2840,18 +3028,48 @@ msgid ""
 "    Exit Status:\n"
 "    Returns success unless NAME is not a shell builtin or an error occurs."
 msgstr ""
+"Omogući ili onemogući ugrađene opcije ljuske.\n"
+"\n"
+"    Aktivira i deaktivira ugrađene opcije ljuske. Deaktiviranje vam\n"
+"    omogućava pokrenuti naredbu na disku s istim imenom kao ugrađena\n"
+"    komanda bez potrebe specificiranja kompletne staze.\n"
+"\n"
+"    Opcije:\n"
+"      -a   ispiše ugrađene naredbe i pokaže jesu ili nisu omogućene\n"
+"      -n   onemogući IMEnovane naredbe ili izlista onemogućene naredbe\n"
+"      -p   generira izlaz koji se može koristi za ulaz (zadano)\n"
+"      -s   ispiše samo imena specijalnih POSIX ugrađenih naredbi\n"
+"\n"
+"    Opcije koje upravljaju dinamičko učitavanje:\n"
+"      -f   učita ugrađenu naredbu IME iz dijeljenoga objekta DATOTEKA\n"
+"      -d   ukloni ugrađenu naredbu učitanu s „-f“\n"
+"\n"
+"    Bez opcija, omogućena su sva dȃna IMEna. Bez imena prikazane su\n"
+"    omogućene naredbe (ili s „-n“ onemogućene).\n"
+"\n"
+"    Primjer: da koristite binarnu datoteku „test“ koja se nalazi na putu\n"
+"    pretraživanja PATH, umjesto ugrađene (test) naredbe, upišite\n"
+"    „enable -n test“.\n"
+"\n"
+"    Završi s kȏdom 0 osim ako IME nije ugrađena naredba\n"
+"    ili se nije dogodila greška."
 
 #: builtins.c:634
 msgid ""
 "Execute arguments as a shell command.\n"
 "    \n"
-"    Combine ARGs into a single string, use the result as input to the "
-"shell,\n"
+"    Combine ARGs into a single string, use the result as input to the shell,\n"
 "    and execute the resulting commands.\n"
 "    \n"
 "    Exit Status:\n"
 "    Returns exit status of command or success if command is null."
 msgstr ""
+"Izvrši argumente kao naredbu ljuske.\n"
+"\n"
+"    Združi argumente u jedinstveni string, upotrijebi ga kao ulaz za ljusku\n"
+"    i izvrši rezultirajuću naredbu.\n"
+"\n"
+"    Završi s kȏdom naredbe ili uspješno ako je naredba prazna."
 
 #: builtins.c:646
 msgid ""
@@ -2893,14 +3111,47 @@ msgid ""
 "    Returns success if an option is found; fails if the end of options is\n"
 "    encountered or an error occurs."
 msgstr ""
+"Analiza argumenata opcija.\n"
+"\n"
+"    Procedure ljuske koriste „getopts“ za analizu položajnih parametara\n"
+"    kao opcije.\n"
+"    \n"
+"    OPCIJA_STRING sadrži slova opcije koje treba prepoznati; ako iza\n"
+"    slova slijedi dvotočka, očekuje se da opcija ima argument koji treba\n"
+"    biti bjelinom odvojen od opcije.\n"
+"\n"
+"    Svaki put kȁd se pozove, getopts će smjestiti sljedeću opciju u ljuskinu\n"
+"    varijablu IME (ako IME ne postoji, getopts ga inicijalizira), a indeks\n"
+"    sljedećeg argumenta koji treba procesirati u ljuskinu varijablu OPTIND.\n"
+"    OPTIND je inicijaliziran na 1 pri svakom pozivanju ljuske ili ljuskine\n"
+"    skripte. Ako opcija zahtijeva argument, getopts smjesti taj argument u\n"
+"    ljuskinu varijablu OPTARG.\n"
+"\n"
+"    getopts javlja greške na jedan od dva načina. Ako je dvotočka prvi znak u\n"
+"    OPCIJA_STRING, getopts tiho prijavi grešku (ne ispisuje poruke o greškama).\n"
+"    Ako naiđe na nevaljanu opciju, getopts smjesti nađeni znak opcije u OPTARG.\n"
+"    Ako zahtijevani argument nije pronađen, getopts smjesti „:“ u IME i postavi\n"
+"    OPTARG na pronađeni znak opcije. Ako getopts ne radi tiho i naiđe na\n"
+"    nevaljanu opciju, getopts smjesti „?“ u IME i poništi OPTARG.\n"
+"    Ako zahtijevani argument nije pronađen, getopts smjesti „?“ u IME, poništi\n"
+"    OPTARG i ispiše poruku o greškama.\n"
+"\n"
+"    Ako ljuskina varijabla OPTERR ima vrijednost 0, getopts onemogući ispis\n"
+"    poruka o greškama, čak i kȁd prvi znak u OPCIJA_STRING nije dvotočka.\n"
+"    Zadano, OPTERR ima vrijednost 1.\n"
+"\n"
+"    Obično getopts analizira položajne parametre ($0 - $9), ali ako je\n"
+"    dȃno više argumenata, onda analizira te argumente.\n"
+"\n"
+"    Završi s kȏdom 0 ako pronađe opciju; ako naiđe na kraj opcija\n"
+"    ili ako se dogodi greška, završi s neuspjehom."
 
 #: builtins.c:688
 msgid ""
 "Replace the shell with the given command.\n"
 "    \n"
 "    Execute COMMAND, replacing this shell with the specified program.\n"
-"    ARGUMENTS become the arguments to COMMAND.  If COMMAND is not "
-"specified,\n"
+"    ARGUMENTS become the arguments to COMMAND.  If COMMAND is not specified,\n"
 "    any redirections take effect in the current shell.\n"
 "    \n"
 "    Options:\n"
@@ -2908,14 +3159,28 @@ msgid ""
 "      -c\texecute COMMAND with an empty environment\n"
 "      -l\tplace a dash in the zeroth argument to COMMAND\n"
 "    \n"
-"    If the command cannot be executed, a non-interactive shell exits, "
-"unless\n"
+"    If the command cannot be executed, a non-interactive shell exits, unless\n"
 "    the shell option `execfail' is set.\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns success unless COMMAND is not found or a redirection error "
-"occurs."
+"    Returns success unless COMMAND is not found or a redirection error occurs."
 msgstr ""
+"Zamjeni ljusku s dȃnom naredbom.\n"
+"\n"
+"    Izvrši dȃnu NAREDBU, zamijenivši ovu ljusku s ovim programom.\n"
+"    Eventualni ARGUMENTI postanu argumenti NAREDBE. Ako NAREDBA nije\n"
+"    specificirana, sva preusmjeravanja se dogode u trenutačnoj ljusci.\n"
+"\n"
+"    Opcije:\n"
+"      -a IME   dȁde IME kao nulti argument NAREDBI\n"
+"      -c       izvrši NAREDBU u praznoj okolini\n"
+"      -l       smjesti spojnicu („-“) kao nulti argument NAREDBI\n"
+"\n"
+"    Ako se naredba ne može izvršiti, ne-interaktivna ljuska završi,\n"
+"    osim ako je aktivna opcija ljuske „execfail“.\n"
+"\n"
+"    Završi s kȏdom 0, osim ako NAREDBA nije pronađena,\n"
+"    ili se dogodila greška preusmjeravanja."
 
 #: builtins.c:709
 msgid ""
@@ -2924,37 +3189,32 @@ msgid ""
 "    Exits the shell with a status of N.  If N is omitted, the exit status\n"
 "    is that of the last command executed."
 msgstr ""
-"Izađi iz ljuske.\n"
-"    \n"
-"    Izlazi iz ljuske sa stanjem N. Ako N nije naveden, izlazno stanje je\n"
-"    isto kao i stanje zadnje izvršene naredbe."
+"Izlaz iz ljuske.\n"
+"\n"
+"    Završi s kȏdom N. Bez N završi s kȏdom zadnje izvršene naredbe."
 
 #: builtins.c:718
 msgid ""
 "Exit a login shell.\n"
 "    \n"
-"    Exits a login shell with exit status N.  Returns an error if not "
-"executed\n"
+"    Exits a login shell with exit status N.  Returns an error if not executed\n"
 "    in a login shell."
 msgstr ""
-"Izađi iz prijavne ljuske.\n"
-"    \n"
-"    Izlazi iz prijavne ljuske s izlaznim stanjem N. Vraća grešku ako nije\n"
-"    izvršeno u prijavnoj ljusci."
+"Izlaz iz prijavne ljuske.\n"
+"\n"
+"    Završi s kȏdom N. Završi s greškom ako to nije prijavna ljuska."
 
 #: builtins.c:728
 msgid ""
 "Display or execute commands from the history list.\n"
 "    \n"
-"    fc is used to list or edit and re-execute commands from the history "
-"list.\n"
+"    fc is used to list or edit and re-execute commands from the history list.\n"
 "    FIRST and LAST can be numbers specifying the range, or FIRST can be a\n"
 "    string, which means the most recent command beginning with that\n"
 "    string.\n"
 "    \n"
 "    Options:\n"
-"      -e ENAME\tselect which editor to use.  Default is FCEDIT, then "
-"EDITOR,\n"
+"      -e ENAME\tselect which editor to use.  Default is FCEDIT, then EDITOR,\n"
 "    \t\tthen vi\n"
 "      -l \tlist lines instead of editing\n"
 "      -n\tomit line numbers when listing\n"
@@ -2968,9 +3228,27 @@ msgid ""
 "    the last command.\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns success or status of executed command; non-zero if an error "
-"occurs."
+"    Returns success or status of executed command; non-zero if an error occurs."
 msgstr ""
+"Prikaže ili izvrši naredbe iz popisa povijesti.\n"
+"\n"
+"    Koristi se za prikazivanje dosadašnjih, za uređivanje, ili za ponovno\n"
+"    pokretanje naredbi. PRVA i ZADNJA mogu biti brojevi koji specificiraju\n"
+"    raspon, ili PRVA može biti string koji pokazuje na posljednju naredbu\n"
+"    čije ime započinje sa stringom.\n"
+"\n"
+"    Opcije:\n"
+"      -e EDITOR  ime EDITORA koji će se koristi; zadano, koristi se FCEDIT,\n"
+"                   zatim EDITOR ili konačno „vi“\n"
+"      -l         izlista popis naredbi (umjesto uređivanja)\n"
+"      -n         popis bez brojeva\n"
+"      -r         popis s obrnutim redoslijedom (najnovija prvo)\n"
+"\n"
+"    Prikladni alias s ovom funkcijom je r='fc -s'. Tako uneseni „r“ izvrši\n"
+"    ponovno posljednju naredbu, a uneseni „r cc“ izvrši posljednju naredbu\n"
+"    koja započinje s „cc“.\n"
+"\n"
+"    Završi s kȏdom izvršene naredbe; različito od 0 ako se dogodi greška."
 
 #: builtins.c:758
 msgid ""
@@ -2983,28 +3261,41 @@ msgid ""
 "    Exit Status:\n"
 "    Status of command placed in foreground, or failure if an error occurs."
 msgstr ""
+"Premjesti posao u interaktivni način.\n"
+"\n"
+"    Smjesti posao JOBSPEC u interaktivni način i učini ga\n"
+"    trenutačnim poslom. Bez dȃnoga JOBSPEC, ljuska rabi svoj pojam\n"
+"    o trenutačnom poslu.\n"
+"\n"
+"    Završi s kȏdom naredbe smještene u interaktivni način\n"
+"    ili s neuspjehom ako se dogodi greška."
 
 #: builtins.c:773
 msgid ""
 "Move jobs to the background.\n"
 "    \n"
-"    Place the jobs identified by each JOB_SPEC in the background, as if "
-"they\n"
-"    had been started with `&'.  If JOB_SPEC is not present, the shell's "
-"notion\n"
+"    Place the jobs identified by each JOB_SPEC in the background, as if they\n"
+"    had been started with `&'.  If JOB_SPEC is not present, the shell's notion\n"
 "    of the current job is used.\n"
 "    \n"
 "    Exit Status:\n"
 "    Returns success unless job control is not enabled or an error occurs."
 msgstr ""
+"Premjesti poslove u pozadinu.\n"
+"\n"
+"    Smjesti poslove idenificirane sa svakim JOBSPEC u pozadinu, kao da su\n"
+"    pokrenuti s „&“. Bez dȃnih JOBSPEC, ljuska rabi svoj pojam\n"
+"    o trenutačnom poslu.\n"
+"\n"
+"    Završi s kȏdom 0 osim ako upravljanje s poslovima nije omogućeno\n"
+"    ili se dogodila greška."
 
 #: builtins.c:787
 msgid ""
 "Remember or display program locations.\n"
 "    \n"
 "    Determine and remember the full pathname of each command NAME.  If\n"
-"    no arguments are given, information about remembered commands is "
-"displayed.\n"
+"    no arguments are given, information about remembered commands is displayed.\n"
 "    \n"
 "    Options:\n"
 "      -d\tforget the remembered location of each NAME\n"
@@ -3021,6 +3312,23 @@ msgid ""
 "    Exit Status:\n"
 "    Returns success unless NAME is not found or an invalid option is given."
 msgstr ""
+"Zapamti ili prikaže lokacije programa.\n"
+"\n"
+"    Odredi i zapamti apsolutnu stazu za svaku naredbu IME. Ako nisu\n"
+"    dȃni argumenti, prikaže informacije o zapamćenim naredbama.\n"
+"\n"
+"    Opcije:\n"
+"      -d            zaboravi zapamćene lokacije za svako IME\n"
+"      -l            generira izlaz koji se može koristi za ulaz\n"
+"      -p IME_STAZE  rabi IME_STAZE kao kao apsolutnu stazu za IME\n"
+"      -r            zaboravi sve zapamćene lokacije\n"
+"      -t            ispiše zapamćene lokacije za svako IME\n"
+"                      (s prefiksom IME ako je dȃno više IMEna)\n"
+"    Svako dȃno IME se traži u $PATH i doda se popisu zapamćenih\n"
+"    naredbi.\n"
+"\n"
+"    Završi s kȏdom 0 osim ako nije pronađeno IME\n"
+"    ili je dȃna nevaljana opcija."
 
 #: builtins.c:812
 msgid ""
@@ -3037,12 +3345,25 @@ msgid ""
 "    \t\tPATTERN\n"
 "    \n"
 "    Arguments:\n"
-"      PATTERN\tPattern specifying a help topic\n"
+"      PATTERN\tPattern specifiying a help topic\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns success unless PATTERN is not found or an invalid option is "
-"given."
+"    Returns success unless PATTERN is not found or an invalid option is given."
 msgstr ""
+"Prikaže informacije o ugrađenim (builtin) naredbama.\n"
+"\n"
+"    Prikaže kratke sažetke o ugrađenim naredbama. Ako je specificirani\n"
+"    UZORAK, pokaže detaljnu pomoć za sve naredbe koje podudare UZORAK,\n"
+"    inače ispiše popis tema za koje možete potražiti detalje.\n"
+"\n"
+"    Opties:\n"
+"      -d   ukratko opisano djelovanje naredbe\n"
+"      -m   prikaže uporabu u pseudo manpage formatu\n"
+"      -s   prikaže samo sinopsis uporabe za svaku\n"
+"             naredbu koja podudara UZORAK\n"
+"\n"
+"    Završi s kȏdom 0 osim ako UZORAK nije pronađen,\n"
+"    ili je dȃna nevaljana opcija."
 
 #: builtins.c:836
 msgid ""
@@ -3053,8 +3374,7 @@ msgid ""
 "    \n"
 "    Options:\n"
 "      -c\tclear the history list by deleting all of the entries\n"
-"      -d offset\tdelete the history entry at position OFFSET. Negative\n"
-"    \t\toffsets count back from the end of the history list\n"
+"      -d offset\tdelete the history entry at position OFFSET.\n"
 "    \n"
 "      -a\tappend history lines from this session to the history file\n"
 "      -n\tread all history lines not already read from the history file\n"
@@ -3072,14 +3392,44 @@ msgid ""
 "    \n"
 "    If the HISTTIMEFORMAT variable is set and not null, its value is used\n"
 "    as a format string for strftime(3) to print the time stamp associated\n"
-"    with each displayed history entry.  No time stamps are printed "
-"otherwise.\n"
+"    with each displayed history entry.  No time stamps are printed otherwise.\n"
 "    \n"
 "    Exit Status:\n"
 "    Returns success unless an invalid option is given or an error occurs."
 msgstr ""
+"Prikaže ili manipulira povijest naredbi.\n"
+"\n"
+"    Prikaže numerirani popis izvršenih naredbi (povijest); ispred\n"
+"    modificiranih stavki stoji prefiks „*“. Ako je dȃn argument N,\n"
+"    ispiše N najmlađih (zadnjih) redaka povijesti.\n"
+"\n"
+"    Opcije:\n"
+"      -c   počisti povijest iz memorije; zaboravi sve izvršene naredbe\n"
+"      -d   POZICIJA  izbriše redak povijesti na POZICIJI\n"
+"\n"
+"      -a   pripoji trenutačnu povijest „povijesnoj“ datoteci\n"
+"      -n   pripoji sve nepročitane retke povijesne datoteke\n"
+"             trenutačnom popisu povijesti\n"
+"      -r   pročita i pripoji povijesnu datoteku\n"
+"             trenutačnom popisu povijesti\n"
+"      -w   trenutačnu povijest zapiše u povijesnu datoteku\n"
+"\n"
+"      -p   proširi povijest na svakom ARGUMENTU i prikaže rezultat\n"
+"             bez spremanja u povijesni popis\n"
+"      -s   Pripoji ARGUMENTe popisu povijesti kao pojedinačne stavke \n"
+"\n"
+"    Kao povijesna datoteka koristi se DATOTEKA ako je dȃna; ako nije dȃna,\n"
+"    koristi se varijabla HISTFILE (ako ima vrijednost), inače se koristi\n"
+"    ~/.bash_history.\n"
+"\n"
+"    Ako HISTTIMEFORMAT varijabla postoji i nije nula, njezinu vrijednost\n"
+"    koristi strftime(3) kao format string za ispis vremenskih oznaka\n"
+"    povijesnih stavki; inače, vremenske oznake se ne ispisuju.\n"
+"\n"
+"    Završi s statusom 0 osim ako nije dȃna nevaljana opcija\n"
+"    ili se dogodila greška."
 
-#: builtins.c:873
+#: builtins.c:872
 msgid ""
 "Display status of jobs.\n"
 "    \n"
@@ -3102,8 +3452,26 @@ msgid ""
 "    Returns success unless an invalid option is given or an error occurs.\n"
 "    If -x is used, returns the exit status of COMMAND."
 msgstr ""
+"Prikaže status poslova.\n"
+"\n"
+"    Izlista aktivne poslove. JOBSPEC ograniči izlaz na taj posao.\n"
+"    Bez opcija, prikaže status svih aktivnih poslova.\n"
+"\n"
+"    Opcije:\n"
+"      -l   pokaže i ID-ove procesa uz uobičajene informacije\n"
+"      -n   pokaže samo procese koji su se promijenili od zadnjeg izvješća\n"
+"      -p   pokaže samo ID-ove procesa\n"
+"      -r   ograniči izlaz samo na trenutačno pokrenute poslove\n"
+"      -s   ograniči izlaz samo na zaustavljene poslove\n"
+"\n"
+"    Ako je dȃna opcija -x, „jobs“ zamijeni svaki JOBSPEC\n"
+"    pronađen u NAREDBI ili u ARGUMENTIMA s odgovarajućim\n"
+"    ID-om procesne grupe i izvrši NAREDBU s ARGUMENTIMA.\n"
+"\n"
+"    Završi s kȏdom 0 osim ako je dȃna nevaljana opcija ili se dogodila greška.\n"
+"    Ako je dȃna opcija -x, završi sa izlaznim statusom NAREDBE."
 
-#: builtins.c:900
+#: builtins.c:899
 msgid ""
 "Remove jobs from current shell.\n"
 "    \n"
@@ -3119,8 +3487,22 @@ msgid ""
 "    Exit Status:\n"
 "    Returns success unless an invalid option or JOBSPEC is given."
 msgstr ""
+"Ukloni poslove iz trenutačne ljuske.\n"
+"\n"
+"    Ukloni svaki JOBSPEC argument iz tablice aktivnih poslova.\n"
+"    Bez ikakvih JOBSPEC ljuska rabi svoj pojam o trenutačnom\n"
+"    poslu.\n"
+"\n"
+"    Opcije:\n"
+"      -a   ukloni sve poslove ako nije dȃni JOBSPEC\n"
+"      -h   označi svaki JOBSPEC tako da se SIGHUP ne šalje\n"
+"           poslu ako ljuska primi SIGHUP\n"
+"      -r   ukloni samo pokrenute poslove\n"
+"\n"
+"    Završi s kȏdom 0 osim ako je dȃna nevaljana opcija\n"
+"    ili nije dȃni JOBSPEC."
 
-#: builtins.c:919
+#: builtins.c:918
 msgid ""
 "Send a signal to a job.\n"
 "    \n"
@@ -3142,16 +3524,36 @@ msgid ""
 "    Exit Status:\n"
 "    Returns success unless an invalid option is given or an error occurs."
 msgstr ""
+"Pošalje signal poslu.\n"
+"\n"
+"    Pošalje signal dȃn u SIGSPEC ili SIGNUM procesima koji su\n"
+"    identificirani s PID-om ili s JOBSPEC. Ako nije\n"
+"    dȃn nijedan signal (ni SIGSPEC ni SIGNUM), pošalje se SIGTERM.\n"
+"\n"
+"    Opcije:\n"
+"      -s IME   IME je ime signala koji se šalje\n"
+"      -n BROJ  BROJ je broj signala koji se šalje\n"
+"      -l       izlista imena dostupnih signala; ako su dȃni argumenti iza\n"
+"               „-l“, to su brojevi signala čija odgovarajuća imena\n"
+"               treba ispisati\n"
+"      -L       isto kao -l\n"
+"\n"
+"    „kill“ je ugrađena ljuskina naredba iz dva razloga: dopušta vam da se\n"
+"    koristi ID posla umjesto ID procesa i također vam dopušta ubiti procese\n"
+"    iako ste dostigli vaše ograničenje broja procesa koje možete kreirati;\n"
+"    tj. ne morate pokrenuti novi proces da ubijete prekobrojne procese.\n"
+"\n"
+"    Završi s kȏdom 0 osim ako je dȃna nevaljana opcija\n"
+"    ili se dogodila greška."
 
-#: builtins.c:943
+#: builtins.c:942
 msgid ""
 "Evaluate arithmetic expressions.\n"
 "    \n"
 "    Evaluate each ARG as an arithmetic expression.  Evaluation is done in\n"
 "    fixed-width integers with no check for overflow, though division by 0\n"
 "    is trapped and flagged as an error.  The following list of operators is\n"
-"    grouped into levels of equal-precedence operators.  The levels are "
-"listed\n"
+"    grouped into levels of equal-precedence operators.  The levels are listed\n"
 "    in order of decreasing precedence.\n"
 "    \n"
 "    \tid++, id--\tvariable post-increment, post-decrement\n"
@@ -3187,35 +3589,71 @@ msgid ""
 "    Exit Status:\n"
 "    If the last ARG evaluates to 0, let returns 1; let returns 0 otherwise."
 msgstr ""
+"Evaluira aritmetičke izraze.\n"
+"\n"
+"    Evaluira svaki ARGUMENT kao aritmetički izraz. Evaluacija se\n"
+"    obavlja za cijele brojeve fiksne širine bez provjere prelijevanja.\n"
+"    Ipak, dijeljenje s nulom se detektira i prijavi kao greška.\n"
+"\n"
+"    Popis koji slijedi opisuje operatore s jednakim prioritetom u\n"
+"    istoj grupi, a grupe su poredane po opadajućemu prioritetu.\n"
+"\n"
+"        var++, var--    post-increment, post-decrement varijable\n"
+"        ++var, --var    pre-increment, pre-decrement varijable\n"
+"        -, +            unarni minus, unarni plus\n"
+"        !, ~            logička i bitovska negacija\n"
+"        **              potenciranje\n"
+"        *, /, %         množenje, dijeljenje, ostatak dijeljenja\n"
+"        +, -            zbrajanje, oduzimanje\n"
+"        <<, >>          pomak za bit ulijevo i udesno\n"
+"        <=, >=, <, >    usporedba\n"
+"        ==, !=          jednako, nejednako\n"
+"        &               bitovski AND\n"
+"        ^               bitovski XOR\n"
+"        |               bitovski OR\n"
+"        &&              logički AND\n"
+"        ||              logički OR\n"
+"\n"
+"        expr ? expr : expr    uvjetni izraz\n"
+"\n"
+"        =, *=, /=, %=, +=, -=, <<=, >>=,  &=, ^=, |=    pridruživanje\n"
+"\n"
+"    Varijable ljuske su dopuštene kao parametri. Ime varijable se zamijeni\n"
+"    s njezinom vrijednošću (ako treba, pretvori se u cijeli broj).\n"
+"    Varijable, za upotrebu u izrazima, ne moraju imati atribut cijelog\n"
+"    broja.\n"
+"\n"
+"    Operatori se evaluiraju prema pravilima prioriteta. Najprije se\n"
+"    evaluiraju pod-izrazi u zagradama i tako mogu prevagnuti nad gore\n"
+"    opisanim pravilima prioriteta.\n"
+"\n"
+"    Ako zadnji ARGUMENT evaluira na 0 (nula), „let“ završi s kȏdom 1;\n"
+"    inače završi s kȏdom 0."
 
-#: builtins.c:988
+#: builtins.c:987
 msgid ""
 "Read a line from the standard input and split it into fields.\n"
 "    \n"
 "    Reads a single line from the standard input, or from file descriptor FD\n"
-"    if the -u option is supplied.  The line is split into fields as with "
-"word\n"
+"    if the -u option is supplied.  The line is split into fields as with word\n"
 "    splitting, and the first word is assigned to the first NAME, the second\n"
 "    word to the second NAME, and so on, with any leftover words assigned to\n"
-"    the last NAME.  Only the characters found in $IFS are recognized as "
-"word\n"
+"    the last NAME.  Only the characters found in $IFS are recognized as word\n"
 "    delimiters.\n"
 "    \n"
-"    If no NAMEs are supplied, the line read is stored in the REPLY "
-"variable.\n"
+"    If no NAMEs are supplied, the line read is stored in the REPLY variable.\n"
 "    \n"
 "    Options:\n"
 "      -a array\tassign the words read to sequential indices of the array\n"
 "    \t\tvariable ARRAY, starting at zero\n"
 "      -d delim\tcontinue until the first character of DELIM is read, rather\n"
 "    \t\tthan newline\n"
-"      -e\tuse Readline to obtain the line\n"
+"      -e\tuse Readline to obtain the line in an interactive shell\n"
 "      -i text\tuse TEXT as the initial text for Readline\n"
 "      -n nchars\treturn after reading NCHARS characters rather than waiting\n"
 "    \t\tfor a newline, but honor a delimiter if fewer than\n"
 "    \t\tNCHARS characters are read before the delimiter\n"
-"      -N nchars\treturn only after reading exactly NCHARS characters, "
-"unless\n"
+"      -N nchars\treturn only after reading exactly NCHARS characters, unless\n"
 "    \t\tEOF is encountered or read times out, ignoring any\n"
 "    \t\tdelimiter\n"
 "      -p prompt\toutput the string PROMPT without a trailing newline before\n"
@@ -3233,14 +3671,48 @@ msgid ""
 "      -u fd\tread from file descriptor FD instead of the standard input\n"
 "    \n"
 "    Exit Status:\n"
-"    The return code is zero, unless end-of-file is encountered, read times "
-"out\n"
-"    (in which case it's greater than 128), a variable assignment error "
-"occurs,\n"
+"    The return code is zero, unless end-of-file is encountered, read times out\n"
+"    (in which case it's greater than 128), a variable assignment error occurs,\n"
 "    or an invalid file descriptor is supplied as the argument to -u."
 msgstr ""
+"Pročita redak iz standardnoga ulaza i razdijeli ga na polja.\n"
+"\n"
+"    Pročita jedan redak iz standardnoga ulaza (ili dȃnoga deskriptora datoteke\n"
+"    FD ako je dȃna opcija „-u“) i dodijeli prvu riječ prvom IMEnu, drugu riječ\n"
+"    drugom IMEnu, i tako dalje; višak riječi dodijeli je zadnjem IMEnu\n"
+"    Samo znakovi sadržani u  varijabli IFS prepoznaju se kao MEĐA\n"
+"    (razdjelnik riječi). Ako nije dȃno nijedno IME, pročitani redak se\n"
+"    spremi u varijablu REPLY.\n"
+"\n"
+"    Opcije:\n"
+"      -a POLJE   pročitane riječi dodijeli sekvencijalno indeksima POLJA\n"
+"                   počevši od nule\n"
+"      -d MEĐA    nastavi čitati sve dok ne pročita prvu MEĐU (umjesto LF znaka)\n"
+"      -e           u interaktivnoj ljusci rabi „readline“ za čitanje retka\n"
+"      -i TEKST   rabi TEKST kao početni tekst za „readline“\n"
+"      -n BROJ    zaustavi čitanje nakon pročitanih ne više od BROJ znakova\n"
+"                   ili nakon LF znaka (umjesto da uvijek čeka na LF znak)\n"
+"      -N BROJ    zaustavi čitanje samo nakon pročitanih ne više od BROJ\n"
+"                   znakova ili nakon EOF znaka ili nakon isteka „t SEKUNDA\n"
+"      -p PROMPT  ispiše string PROMPT kao prompt (bez završnog znaka novog\n"
+"                    retka) prije početka čitanja retka\n"
+"      -r         onemogući maskiranje kódova s obratnom kosom crtom\n"
+"      -s         siguran ulaz — ne odjekuje ulaz na terminal\n"
+"      -t BROJ    nakon isteka BROJ SEKUNDI prestane čekati na ulaz i završi\n"
+"                   s kȏdom većim od 128; zadano, broj sekundi čekanja je\n"
+"                   vrijednost varijable TMOUT; BROJ može biti i realni broj;\n"
+"                   Ako je BROJ = 0, „read“ završi odmah bez da išta čita, a\n"
+"                   samo ako je ulaz dostupni na specificiranom deskriptoru\n"
+"                   datoteke Završi s kȏdom 0\n"
+"\n"
+"      -u FD      čita iz deskriptora datoteke FD umjesto iz standardnoga ulaza\n"
+"\n"
+"      Završi s kȏdom 0 osim ako ne naiđe na konac datoteke\n"
+"      (EOF), ili je isteklo vrijeme čekanja, ili se dogodila greška\n"
+"      pri dodjeli, ili je specificirani nevaljani deskriptor datoteke\n"
+"      kao argument opciji „-u“."
 
-#: builtins.c:1035
+#: builtins.c:1034
 msgid ""
 "Return from a shell function.\n"
 "    \n"
@@ -3251,8 +3723,16 @@ msgid ""
 "    Exit Status:\n"
 "    Returns N, or failure if the shell is not executing a function or script."
 msgstr ""
+"Povrat iz funkcije ljuske.\n"
+"\n"
+"    Učini da funkcija ili pokrenuta skripta završi sa izlaznom vrijednošću\n"
+"    specificiranom s N. Ako N nije dȃn, završi s kȏdom zadnje naredbe\n"
+"    izvršene unutar funkcije ili skripte.\n"
+"\n"
+"    Vrati vrijednost N ili 1 ako ljuska ne izvrši\n"
+"    funkciju ili skriptu."
 
-#: builtins.c:1048
+#: builtins.c:1047
 msgid ""
 "Set or unset values of shell options and positional parameters.\n"
 "    \n"
@@ -3295,8 +3775,7 @@ msgid ""
 "              physical     same as -P\n"
 "              pipefail     the return value of a pipeline is the status of\n"
 "                           the last command to exit with a non-zero status,\n"
-"                           or zero if no command exited with a non-zero "
-"status\n"
+"                           or zero if no command exited with a non-zero status\n"
 "              posix        change the behavior of bash where the default\n"
 "                           operation differs from the Posix standard to\n"
 "                           match the standard\n"
@@ -3320,8 +3799,7 @@ msgid ""
 "          by default when the shell is interactive.\n"
 "      -P  If set, do not resolve symbolic links when executing commands\n"
 "          such as cd which change the current directory.\n"
-"      -T  If set, the DEBUG and RETURN traps are inherited by shell "
-"functions.\n"
+"      -T  If set, the DEBUG and RETURN traps are inherited by shell functions.\n"
 "      --  Assign any remaining arguments to the positional parameters.\n"
 "          If there are no remaining arguments, the positional parameters\n"
 "          are unset.\n"
@@ -3337,8 +3815,84 @@ msgid ""
 "    Exit Status:\n"
 "    Returns success unless an invalid option is given."
 msgstr ""
+"Postavi vrijednosti opcija ljuske i položajnih parametara.\n"
+"\n"
+"    Omogući/onemogući svojstva ljuske ili mijenja vrijednosti položajnih\n"
+"    parametara. Bez opcija ili argumenata „set“ prikaže imena i vrijednosti\n"
+"    svih definiranih varijabli i funkcija u formatu upotrebljivom kao\n"
+"    ulaz za postavljanje/poništavanje trenutačno postavljenih varijabli.\n"
+"    Dostupne su sljedeće opcije („+“ umjesto „-“ isključi dȃnu opciju):\n"
+"\n"
+"      -a  automatski eksportira nove ili modificirane varijable i funkcije\n"
+"      -B  izvrši brace expansion, npr. echo a{d,c}e -> ade, ace (zadano)\n"
+"      -b  odmah prijavi prekid posla (ne čeka da završi trenutna naredba)\n"
+"      -C  onemogući da preusmjereni eksport piše preko regularnih datoteka\n"
+"      -E  omogući da bilo koji ERR „trap“ naslijede funkcije ljuske i potomci\n"
+"      -e  završi odmah ako naredba završi s kȏdom različitim od nula\n"
+"      -f  onemogući zamjenske znakove za imena datoteka (isključi „globbing“)\n"
+"      -H  omogući upotrebu znaka „!“ za supstituciju povijesti naredbi\n"
+"      -h  pamti (apslolutne) lokacije izvršenih naredbi (zadano)\n"
+"      -k  smjesti sve argumente dodijeljene varijablama u okolinu\n"
+"            (a ne samo one koje prethode imenu naredbe)\n"
+"      -m  upravljanje s poslovima je omogućena (zadano)\n"
+"      -n  pročita, ali ne izvrši naredbe („testiranje“)\n"
+"      -o IME_OPCIJE  omogući IME_OPCIJU (v. niže za dugačka imena opcija)\n"
+"      -P  ne razriješi simboličke veze pri izvršavanju naredbi poput „cd“\n"
+"            koje promjene trenutačni direktorij\n"
+"      -p  uključi privilegirani mȏd: datoteke BASH_ENV i ENV se ignoriraju,\n"
+"            funkcije ljuske se ne importiraju iz okoline, a ignoriraju se i\n"
+"            sve SHELLOPTS; taj mȏd se automatski aktivira kȁd god se realni\n"
+"            i efektivni UID i GID ne podudaraju. Isključivanje ove opcije\n"
+"            učini da je efektivni UID i GID isti kao i realni UID i GID.\n"
+"      -T  DEBUG i RETURN „trap“ naslijede funkcije ljuske i potomci\n"
+"      -t  završi nakon čitanja i izvršenja jedne naredbe\n"
+"      -u  nepostojeće varijable tretira kao grešku kȁd supstituira\n"
+"      -v  ispisuju ulaz (odjekuje ih) istovremeno s čitanjem\n"
+"      -x  ispisuje naredbe s argumentima istovremeno s izvršavanjem\n"
+"      --  argumenti koji slijede su položajni parametri; ako ih nema,\n"
+"            postojeći položajni argumenti se brišu (uklanjaju se)\n"
+"      -   isključi opcije -v i -x; argumenti koji slijede su položajni\n"
+"            parametri; ali ako ih nema, postojeći položajni argumenti\n"
+"            se ne brišu (ostaju)\n"
+"\n"
+"    Opcije se također mogu koristiti pri pokretanju ljuske. Postojeće\n"
+"    stanje opcija može se naći u $-. Za eventualne dodatne argumente iz\n"
+"    „set“ uzima se da su položajni parametri i dodjeljuje se, po redu, na\n"
+"    $1, $2, ... $N.\n"
+"\n"
+"    Dugački nazivi koji se koriste s opcijom -o (ili +o)\n"
+"      allexport    isto kao -a\n"
+"      braceexpand  isto kao -B  (brace ekspanzija, npr. echo a{d,c}e -> ade, ace\n"
+"      emacs        za uređivanje redaka koristi sučelje u „emacs“ stilu\n"
+"      errexit      isto kao -e\n"
+"      errtrace     isto kao -E\n"
+"      functrace    isto kao -T\n"
+"      hashall      isto kao -h\n"
+"      histexpand   isto kao -H\n"
+"      history      omogući naredbu „history“\n"
+"      ignoreeof    ignorira Ctrl-D; ne završi (ne iziđe iz) ljusku na EOF\n"
+"      interactive-comments  dopusti komentiranje u interaktivnim naredbama\n"
+"      keyword      isto kao -k\n"
+"      monitor      isto kao -m\n"
+"      noclobber    isto kao -C\n"
+"      noexec       isto kao -n\n"
+"      noglob       isto kao -f\n"
+"      nolog        (prepoznata, ali se ignorira)\n"
+"      notify       isto kao -b\n"
+"      nounset      isto kao -u\n"
+"      onecmd       isto kao -t\n"
+"      physical     isto kao -P\n"
+"      pipefail     cjevovod vrati vrijednost izlaznog statusa zadnje neuspješne\n"
+"                     naredbe ili 0 ako su svi poslovi uspješno završeni\n"
+"      posix        striktno poštuje POSIX standard\n"
+"      privileged   isto kao -p\n"
+"      verbose      isto kao -v\n"
+"      vi           za uređivanje redaka koristi sučelje u „vi“ stilu\n"
+"      xtrace       isto kao -x\n"
+"\n"
+"    Završi s kȏdom 0 osim ako je dȃna nevaljana opcija."
 
-#: builtins.c:1133
+#: builtins.c:1132
 msgid ""
 "Unset values and attributes of shell variables and functions.\n"
 "    \n"
@@ -3350,8 +3904,7 @@ msgid ""
 "      -n\ttreat each NAME as a name reference and unset the variable itself\n"
 "    \t\trather than the variable it references\n"
 "    \n"
-"    Without options, unset first tries to unset a variable, and if that "
-"fails,\n"
+"    Without options, unset first tries to unset a variable, and if that fails,\n"
 "    tries to unset a function.\n"
 "    \n"
 "    Some variables cannot be unset; also see `readonly'.\n"
@@ -3359,14 +3912,29 @@ msgid ""
 "    Exit Status:\n"
 "    Returns success unless an invalid option is given or a NAME is read-only."
 msgstr ""
+"Ukloni vrijednosti i atribute varijabli i funkcija ljuske.\n"
+"\n"
+"    Za svako IME ukloni odgovarajuću varijablu ili funkciju\n"
+"\n"
+"    Opcije:\n"
+"      -f   tretira svako IME kao funkciju ljuske\n"
+"      -v   tretira svako IME kao varijablu ljuske\n"
+"      -n   tretira svako IME kao referenciju na neki objekt i ukloni\n"
+"             samu varijablu IME umjesto referiranog objekta\n"
+"\n"
+"    Bez dȃnih opcija, „unset“ prvo pokuša ukloniti varijablu, a ako to\n"
+"    ne uspije, onda pokuša ukloniti funkciju. Neke varijable nije moguće\n"
+"    ukloniti; pogledajte „readonly.\n"
+"\n"
+"    Završi s kȏdom 0 osim ako je dȃna nevaljana opcija\n"
+"    ili IME je „samo-za-čitanje“."
 
-#: builtins.c:1155
+#: builtins.c:1154
 msgid ""
 "Set export attribute for shell variables.\n"
 "    \n"
 "    Marks each NAME for automatic export to the environment of subsequently\n"
-"    executed commands.  If VALUE is supplied, assign VALUE before "
-"exporting.\n"
+"    executed commands.  If VALUE is supplied, assign VALUE before exporting.\n"
 "    \n"
 "    Options:\n"
 "      -f\trefer to shell functions\n"
@@ -3378,8 +3946,23 @@ msgid ""
 "    Exit Status:\n"
 "    Returns success unless an invalid option is given or NAME is invalid."
 msgstr ""
+"Postavi eksportni atribut na varijable ljuske.\n"
+"\n"
+"    Označi automatski svako dȃno IME za eksport u okolinu za naknadno\n"
+"    izvršavanje naredbi. Ako je dȃna VRIJEDNOST, dodijeli im VRIJEDNOST\n"
+"    prije eksportiranja.\n"
+"\n"
+"    Opcije:\n"
+"      -f   dȃna IMEna se odnose samo na funkcije\n"
+"      -n   ukloni eksportni atribut iz svakoga IMEna \n"
+"      -p   izlista popis svih eksportiranih varijabli i funkcija\n"
+"\n"
+"    Argument „--“ spriječi daljnje procesiranje opcija.\n"
+"\n"
+"    Završi s kȏdom 0 osim ako je dȃna nevaljana opcija\n"
+"    ili dȃno IME nije valjano."
 
-#: builtins.c:1174
+#: builtins.c:1173
 msgid ""
 "Mark shell variables as unchangeable.\n"
 "    \n"
@@ -3399,8 +3982,25 @@ msgid ""
 "    Exit Status:\n"
 "    Returns success unless an invalid option is given or NAME is invalid."
 msgstr ""
+"Označi varijable ljuske kao nepromjenjive.\n"
+"\n"
+"    Označi svako IME kao nepromjenjivo (readonly), tako da se vrijednosti\n"
+"    ovih IMEna ne može promijeniti kasnijim operacijama. Ako je dȃna\n"
+"    VRIJEDNOST, prvo mu dodijeli VRIJEDNOST, a zatim ga označi nepromjenjivim.\n"
+"\n"
+"    Opcije:\n"
+"      -a  svako IME se odnosi na varijable indeksiranoga polja\n"
+"      -A  svako IME se odnosi na varijable asocijativnoga polja\n"
+"      -f  svako IME se odnosi na funkcije ljuske\n"
+"      -p  prikaže popis svih nepromjenjivih varijabli ili funkcija\n"
+"            ovisno o opciji „-f“ (je li ili nije dȃna).\n"
+"\n"
+"    Argument „--“ onemogući daljnje procesiranje opcija.\n"
+"\n"
+"    Završi s kȏdom 0 osim ako je dȃna nevaljana opcija\n"
+"    ili je IME nevaljano."
 
-#: builtins.c:1196
+#: builtins.c:1195
 msgid ""
 "Shift positional parameters.\n"
 "    \n"
@@ -3410,8 +4010,14 @@ msgid ""
 "    Exit Status:\n"
 "    Returns success unless N is negative or greater than $#."
 msgstr ""
+"Pomakne položajne parametre.\n"
+"\n"
+"    Preimenuje položajne parametre $N+1,$N+2,... u $1,$2,...\n"
+"    Ako nije dȃni N, uzima se da je N = 1.\n"
+"\n"
+"    Završi s kȏdom 0 osim ako je N negativni ili veći od $#."
 
-#: builtins.c:1208 builtins.c:1223
+#: builtins.c:1207 builtins.c:1222
 msgid ""
 "Execute commands from a file in the current shell.\n"
 "    \n"
@@ -3424,8 +4030,17 @@ msgid ""
 "    Returns the status of the last command executed in FILENAME; fails if\n"
 "    FILENAME cannot be read."
 msgstr ""
+"Izvrši naredbe iz datoteke u trenutačnoj ljusci.\n"
+"\n"
+"    Čita i izvrši naredbe iz DATOTEKE u trenutačnoj ljusci.\n"
+"    Direktorij s DATOTEKOM traži se po stazama sadržanima u varijabli\n"
+"    PATH. Ako su dȃni ikoji ARGUMENTI, oni postaju položajni parametri\n"
+"    tijekom izvršavanja DATOTEKE.\n"
+"\n"
+"    Završi s kȏdom zadnje izvršene naredbe iz DATOTEKE,\n"
+"    ili sa statusom 1 ako se DATOTEKA ne može pročitati."
 
-#: builtins.c:1239
+#: builtins.c:1238
 msgid ""
 "Suspend shell execution.\n"
 "    \n"
@@ -3438,8 +4053,18 @@ msgid ""
 "    Exit Status:\n"
 "    Returns success unless job control is not enabled or an error occurs."
 msgstr ""
+"Obustavi rad ljuske.\n"
+"\n"
+"    Obustavi rad u ovoj ljusci sve dok ne primi SIGCONT signal.\n"
+"    Ako nije prisiljena, rad prijavne ljuske se ne može obustaviti.\n"
+"\n"
+"    Opcije:\n"
+"      -f  prisili obustavu, čak i ako je to prijavna ljuska\n"
+"\n"
+"    Završi s kȏdom 0 osim ako upravljanje poslom nije omogućeno\n"
+"    ili se dogodila greška."
 
-#: builtins.c:1255
+#: builtins.c:1254
 msgid ""
 "Evaluate conditional expression.\n"
 "    \n"
@@ -3473,8 +4098,7 @@ msgid ""
 "      -x FILE        True if the file is executable by you.\n"
 "      -O FILE        True if the file is effectively owned by you.\n"
 "      -G FILE        True if the file is effectively owned by your group.\n"
-"      -N FILE        True if the file has been modified since it was last "
-"read.\n"
+"      -N FILE        True if the file has been modified since it was last read.\n"
 "    \n"
 "      FILE1 -nt FILE2  True if file1 is newer than file2 (according to\n"
 "                       modification date).\n"
@@ -3495,8 +4119,7 @@ msgid ""
 "      STRING1 != STRING2\n"
 "                     True if the strings are not equal.\n"
 "      STRING1 < STRING2\n"
-"                     True if STRING1 sorts before STRING2 "
-"lexicographically.\n"
+"                     True if STRING1 sorts before STRING2 lexicographically.\n"
 "      STRING1 > STRING2\n"
 "                     True if STRING1 sorts after STRING2 lexicographically.\n"
 "    \n"
@@ -3521,33 +4144,105 @@ msgid ""
 "    Returns success if EXPR evaluates to true; fails if EXPR evaluates to\n"
 "    false or an invalid argument is given."
 msgstr ""
+"Evaluira uvjetni izraz.\n"
+"\n"
+"    Evaluira dȃni IZRAZ; ovisno o rezultatu evaluacije, završi sa\n"
+"    statusom 0 (istina), ili 1 (neistina, laž). Izrazi mogu biti unarni\n"
+"    ili binarni. Unarni izrazi se često koriste za ispitivanje statusa\n"
+"    datoteke. Također postoje operatori za usporedbu stringova i brojeva.\n"
+"\n"
+"    Ponašanje od „test“ ovisi o broju argumenata. Potražite u „bash“\n"
+"    uputama detalje za uporabu.\n"
+"\n"
+"    Operatori za datoteke:\n"
+"        -a DATOTEKA       istina ako datoteka postoji\n"
+"        -b DATOTEKA       istina ako je datoteka blok uređaj\n"
+"        -c DATOTEKA       istina ako je datoteka znakovni uređaj\n"
+"        -d DATOTEKA       istina ako je datoteka direktorij\n"
+"        -e DATOTEKA       istina ako datoteka postoji\n"
+"        -f DATOTEKA       istina ako je datoteka regularna datoteka\n"
+"        -G DATOTEKA       istina ako je datoteka efektivno vlasništvo vaše grupe\n"
+"        -g DATOTEKA       istina ako je datoteka SETGUID\n"
+"        -h DATOTEKA       istina ako je datoteka simbolička veza\n"
+"        -k DATOTEKA       istina ako datoteka ima postavljeni \"sticky\" bit\n"
+"        -L DATOTEKA       istina ako je datoteka simbolička veza\n"
+"        -N DATOTEKA       istina ako se datoteka promijenila od zadnjeg čitanja\n"
+"        -O DATOTEKA       istina ako je datoteka efektivno vaše vlasništvo\n"
+"        -p DATOTEKA       istina ako je datoteka imenovana cijev\n"
+"        -r DATOTEKA       istina ako vi možete čitati datoteku\n"
+"        -S DATOTEKA       istina ako je datoteka utičnica\n"
+"        -s DATOTEKA       istina ako datoteka nije prazna\n"
+"        -t DESKRIPTOR     istina ako je deskriptor datoteke otvoren u terminalu\n"
+"        -u DATOTEKA       istina ako je datoteka SETUID\n"
+"        -w DATOTEKA       istina ako vi možete pisati datoteku\n"
+"        -x DATOTEKA       istina ako vi možete izvršiti datoteku\n"
+"\n"
+"      DTEKA1 -nt DTEKA2   istina ako je prva datoteka promijenjena\n"
+"                            kasnije od druge\n"
+"      DTEKA1 -ot DTEKA2   istina ako je prva datoteka promijenjena\n"
+"                            ranije od druge\n"
+"      DTEKA1 -ef DTEKA2   istina ako je prva datoteka čvrsta veza na drugu\n"
+"\n"
+"    Operatori za stringove:\n"
+"        -z STRING         istina ako je string prazni\n"
+"        -n STRING         istina ako string nije prazni\n"
+"        STRING            istina ako string nije prazni\n"
+"      STRING1 = STRING2   istina ako su stringovi jednaki\n"
+"      STRING1 != STRING2  istina ako stringovi nisu jednaki\n"
+"      STRING1 < STRING2   istina ako se leksikografski prvi string\n"
+"                            razvrsta ispred drugoga\n"
+"      STRING1 > STRING2   istina ako se leksikografski prvi string\n"
+"                            razvrsta iza drugoga\n"
+"\n"
+"    Ostali operatori:\n"
+"        -o OPCIJA         istina ako je ova OPCIJA ljuske omogućena\n"
+"        -v VARIJABLA      istina ako ova VARIJABLA ima vrijednost\n"
+"        -R VARIJABLA      istina ako je ova VARIJABLA referencija (nameref) \n"
+"        ! IZRAZ           istina ako IZRAZ neistiniti\n"
+"      IZRAZ1 -a IZRAZ2    istina ako su oba izraza istinita\n"
+"      IZRAZ1 -o IZRAZ2    laž ako su oba izraza neistinita\n"
+"      ARG1 OP ARG2        istina ako je aritmetika ispravna; operator OP je\n"
+"                            jedan od: -eq, -ne, -lt, -le, -gt, ili -ge;\n"
+"                            koji znače: jednako, nejednako, manje od, manje,\n"
+"                            ili jednako, veće od, veće ili jednako.\n"
+"\n"
+"    Završi s kȏdom 0 ako je IZRAZ istiniti, 1 ako je IZRAZ neistiniti,\n"
+"    ili 2 ako je dȃn nevaljani argument."
 
-#: builtins.c:1337
+#: builtins.c:1336
 msgid ""
 "Evaluate conditional expression.\n"
 "    \n"
 "    This is a synonym for the \"test\" builtin, but the last argument must\n"
 "    be a literal `]', to match the opening `['."
 msgstr ""
+"Provjeri uvjetni izraz.\n"
+"\n"
+"    To je sinonim za ugrađenu funkciju „test“, ali zadnji argument\n"
+"    mora biti zagrada „]“ kao par zagradi „[“ na početku."
 
-#: builtins.c:1346
+#: builtins.c:1345
 msgid ""
 "Display process times.\n"
 "    \n"
-"    Prints the accumulated user and system times for the shell and all of "
-"its\n"
+"    Prints the accumulated user and system times for the shell and all of its\n"
 "    child processes.\n"
 "    \n"
 "    Exit Status:\n"
 "    Always succeeds."
 msgstr ""
+"Prikaže potrošnju vremena procesa.\n"
+"    \n"
+"    Prikaže ukupno potrošeno vrijeme korisnikom i sustavom; prvo, vrijeme\n"
+"    potrošeno samom ljuskom, a zatim svim potomcima pokrenutih ljuskom.\n"
+"\n"
+"    Završi uvijek s kȏdom 0."
 
-#: builtins.c:1358
+#: builtins.c:1357
 msgid ""
 "Trap signals and other events.\n"
 "    \n"
-"    Defines and activates handlers to be run when the shell receives "
-"signals\n"
+"    Defines and activates handlers to be run when the shell receives signals\n"
 "    or other conditions.\n"
 "    \n"
 "    ARG is a command to be read and executed when the shell receives the\n"
@@ -3556,37 +4251,60 @@ msgid ""
 "    value.  If ARG is the null string each SIGNAL_SPEC is ignored by the\n"
 "    shell and by the commands it invokes.\n"
 "    \n"
-"    If a SIGNAL_SPEC is EXIT (0) ARG is executed on exit from the shell.  "
-"If\n"
-"    a SIGNAL_SPEC is DEBUG, ARG is executed before every simple command.  "
-"If\n"
-"    a SIGNAL_SPEC is RETURN, ARG is executed each time a shell function or "
-"a\n"
-"    script run by the . or source builtins finishes executing.  A "
-"SIGNAL_SPEC\n"
-"    of ERR means to execute ARG each time a command's failure would cause "
-"the\n"
+"    If a SIGNAL_SPEC is EXIT (0) ARG is executed on exit from the shell.  If\n"
+"    a SIGNAL_SPEC is DEBUG, ARG is executed before every simple command.  If\n"
+"    a SIGNAL_SPEC is RETURN, ARG is executed each time a shell function or a\n"
+"    script run by the . or source builtins finishes executing.  A SIGNAL_SPEC\n"
+"    of ERR means to execute ARG each time a command's failure would cause the\n"
 "    shell to exit when the -e option is enabled.\n"
 "    \n"
-"    If no arguments are supplied, trap prints the list of commands "
-"associated\n"
+"    If no arguments are supplied, trap prints the list of commands associated\n"
 "    with each signal.\n"
 "    \n"
 "    Options:\n"
 "      -l\tprint a list of signal names and their corresponding numbers\n"
 "      -p\tdisplay the trap commands associated with each SIGNAL_SPEC\n"
 "    \n"
-"    Each SIGNAL_SPEC is either a signal name in <signal.h> or a signal "
-"number.\n"
+"    Each SIGNAL_SPEC is either a signal name in <signal.h> or a signal number.\n"
 "    Signal names are case insensitive and the SIG prefix is optional.  A\n"
 "    signal may be sent to the shell with \"kill -signal $$\".\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns success unless a SIGSPEC is invalid or an invalid option is "
-"given."
+"    Returns success unless a SIGSPEC is invalid or an invalid option is given."
 msgstr ""
+"Prikupljanje (hvatanje) signala i drugih događaja.\n"
+"\n"
+"    Definira i aktivira postupke rukovanja koji se pokrenu kȁd ljuska\n"
+"    primi signal ili se dogodi neki drugi slučaj.\n"
+"\n"
+"    ARGUMENT je naredba koja se pročita i izvrši kȁd ljuska primi jedan od\n"
+"    specificiranih signala (SIGNAL_SPEC). Ako nema ARGUMENTA (i dȃn je samo\n"
+"    jedan signal), ili ARGUMENT je „-“, specificirani signal zadobije svoju\n"
+"    originalnu vrijednost (koju je imao na startu ove ljuske). Ako je ARGUMENT\n"
+"    prazni string, ljuska i njezini potomci ignoriraju svaki SIGNAL_SPEC.\n"
+"\n"
+"    Ako je SIGNAL_SPEC 0 ili EXIT, ARGUMENT se izvrši kȁd zatvorite\n"
+"    (exit) ljusku. Ako je SIGNAL_SPEC DEBUG, ARGUMENT se izvrši prije\n"
+"    svake jednostavne naredbe. Ako je SIGNAL_SPEC RETURN, ARGUMENT se\n"
+"    izvrši svaki put kȁd funkcija ljuske ili skripta izvršena s . ili\n"
+"    „ugrađeni source“ završi izvršavanje. SIGNAL_SPEC ERR znači da se\n"
+"    ARGUMENT izvrši nakon neuspješne naredbe koja bi uzrokovala da ljuska\n"
+"    završi (exit) kȁd je opcija „-e“ omogućena.\n"
+"\n"
+"    Bez argumenta, „trap“ izlista popis koji pokaže asocijaciju\n"
+"    između naredbi i signala.\n"
+"\n"
+"    Opcije:\n"
+"      -l   popis imena signala i njihov odgovarajući broj\n"
+"      -p   pokaže koja naredba je povezana na svaki dȃni signal\n"
+"\n"
+"    Svaki je SIGNAL_SPEC ili ime signala iz <signal.h> ili broj signala.\n"
+"    Signal se može poslati ljusci s „kill -signal $$“.\n"
+"\n"
+"    Završi s kȏdom 0 osim ako SIGNAL_SPEC nije valjani\n"
+"    ili je dȃna nevaljana opcija."
 
-#: builtins.c:1394
+#: builtins.c:1393
 msgid ""
 "Display information about command type.\n"
 "    \n"
@@ -3612,16 +4330,35 @@ msgid ""
 "      NAME\tCommand name to be interpreted.\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns success if all of the NAMEs are found; fails if any are not "
-"found."
+"    Returns success if all of the NAMEs are found; fails if any are not found."
 msgstr ""
+"Informacije o tipu naredbe.\n"
+"\n"
+"    Za svako dȃno IME pokaže kako će se interpretirati\n"
+"    ako se koristi kao naredba.\n"
+"\n"
+"    Opcije:\n"
+"     -a   pokaže sve lokacije koje sadrže izvršnu datoteku IME; uključuje i\n"
+"            lokacije s aliasima, ugrađenim naredbama i funkcijama, ali onda\n"
+"            i samo onda ako nije dȃna opcija „-p“\n"
+"     -f   ignorira funkcije kao da nisu definirane\n"
+"     -P   traži dȃno IME po stazama definiranim u PATH (također ako je IME\n"
+"            alias, ugrađena naredba (builtin) ili funkcija)\n"
+"            i ispiše puni naziv datoteke na disku koja bi se izvršila\n"
+"     -p   ispiše puni naziv datoteke na disku koja bi se izvršila ili\n"
+"            ništa ako je IME alias, ugrađena naredba (builtin) ili funkcija\n"
+"     -t   ispiše samo tip navedenih IMEna: „alias“, „builtin“, „file“,\n"
+"            „function“ ili „keyword“, ovisno o tome je li riječ o aliasu,\n"
+"            ugrađenoj funkciji (builtin), datoteci na disku, definiranoj\n"
+"            funkciji ili ključnoj riječi; ili ništa, ako je ime nepoznato\n"
+"\n"
+"    Završi s kȏdom 0 ako se pronađu sva IMEna, inače s 1."
 
-#: builtins.c:1425
+#: builtins.c:1424
 msgid ""
 "Modify shell resource limits.\n"
 "    \n"
-"    Provides control over the resources available to the shell and "
-"processes\n"
+"    Provides control over the resources available to the shell and processes\n"
 "    it creates, on systems that allow such control.\n"
 "    \n"
 "    Options:\n"
@@ -3664,8 +4401,52 @@ msgid ""
 "    Exit Status:\n"
 "    Returns success unless an invalid option is supplied or an error occurs."
 msgstr ""
+"Upravlja i modificira ograničenja ljuske.\n"
+"\n"
+"    Omogući upravljanje s resursima koji su dostupni ovoj ljusci i\n"
+"    procesima koje kreira -- na sustavima koji to dopuštaju.\n"
+"\n"
+"    Opcije:\n"
+"      -S    rabi „mekano“ (soft) ograničenje resursa\n"
+"      -H    rabi „tvrdo“ (hard) ograničenje resursa\n"
+"      -a    popis svih trenutačnih ograničenja\n"
+"      -b    maks. veličina međuspremnika utičnice\n"
+"      -c    maks. veličina „core“ datoteka (u kB)\n"
+"      -d    maks. veličina segmenta s procesnim podacima (in kB)\n"
+"      -e    maks. prioritet raspoređivanja („nice“ vrijednost)\n"
+"      -f    maks. veličina datoteka ljuska i njeni potomci mogu zapisati\n"
+"      -i    maks. broj signala koji može biti na čekanju\n"
+"      -l    maks. veličina koju proces može zaključati u memoriju\n"
+"      -k    maks. broj rezerviranih/dodijeljenih „kqueues“ za taj proces\n"
+"      -m    maks. iznos fizičke memorije procesa (in kB)\n"
+"      -n    maks. broj otvorenih deskriptora datoteka\n"
+"      -p    maks. veličina međuspremnika cijevi\n"
+"      -q    maks. broj bajtova za red POSIX poruka\n"
+"      -r    maks. prioritet raspoređivanja u realnom vremenu\n"
+"      -s    maks. veličina snopa (stack) (u kB)\n"
+"      -t    maks. iznos CPU vremena (u sekundama)\n"
+"      -u    maks. broj korisničkih procesa\n"
+"      -v    maks. veličina virtualne memorije (u kB)\n"
+"      -x    maks. broj datotečnih brava (lokota, locks)\n"
+"      -P    maks. broj pseudo terminala\n"
+"      -T    maks. broj dretvi\n"
+"\n"
+"    Nisu sve opisane opcije dostupne na svim platformama.\n"
+"\n"
+"    Ako je specificirani, LIMIT postane nova vrijednost za specificirani\n"
+"    resurs, inače se prikažu trenutačne vrijednosti. Specijalne vrijednosti,\n"
+"    „soft“, „hard“, i „unlimited“ su trenutačni soft limit, trenutačni hard\n"
+"    limit i unlimited. Ako nijedna opcija nije specificirana, podrazumijeva\n"
+"    se da je aktivna „-f“ opcija.\n"
+"\n"
+"    Vrijednosti su višekratnik od 1024 bajta, osim za „-t“ koji je\n"
+"    u sekundama, „-p“ koji je višekratnik od 512 bajta i „-u“ je apsolutni\n"
+"    broj procesa.\n"
+"\n"
+"    Završi s kȏdom 0 osim ako je dȃna nevaljana opcija\n"
+"    ili se dogodila greška."
 
-#: builtins.c:1475
+#: builtins.c:1474
 msgid ""
 "Display or set file mode mask.\n"
 "    \n"
@@ -3682,45 +4463,74 @@ msgid ""
 "    Exit Status:\n"
 "    Returns success unless MODE is invalid or an invalid option is given."
 msgstr ""
+"Prikaže ili postavi masku prilikom kreiranje datoteke.\n"
+"\n"
+"    Postavi masku datoteke koju kreira korisnik na MODE.\n"
+"    Ako MODE nije dȃn, ispiše trenutačnu vrijednost maske.\n"
+"\n"
+"    Ako MODE počinje sa znamenkom, interpretira se kao oktalni broj;\n"
+"    inače to je simbolički mode string kakav prihvaća chmod(1).\n"
+"\n"
+"    Opcije:\n"
+"      -p   ako nije dȃn MODE, generira izlaz u formatu\n"
+"             koji se može iskoristiti kao ulaz\n"
+"      -S   napravi simbolički izlaz; inače izlaz je oktalni broj\n"
+"\n"
+"    Završi s kȏdom 0 osim ako MODE nije valjan\n"
+"    ili je dȃna  nevaljana opcija."
 
-#: builtins.c:1495
+#: builtins.c:1494
 msgid ""
 "Wait for job completion and return exit status.\n"
 "    \n"
-"    Waits for each process identified by an ID, which may be a process ID or "
-"a\n"
+"    Waits for each process identified by an ID, which may be a process ID or a\n"
 "    job specification, and reports its termination status.  If ID is not\n"
 "    given, waits for all currently active child processes, and the return\n"
-"    status is zero.  If ID is a job specification, waits for all processes\n"
+"    status is zero.  If ID is a job specification, waits for all processes\n"
 "    in that job's pipeline.\n"
 "    \n"
 "    If the -n option is supplied, waits for the next job to terminate and\n"
 "    returns its exit status.\n"
 "    \n"
-"    If the -f option is supplied, and job control is enabled, waits for the\n"
-"    specified ID to terminate, instead of waiting for it to change status.\n"
-"    \n"
 "    Exit Status:\n"
 "    Returns the status of the last ID; fails if ID is invalid or an invalid\n"
 "    option is given."
 msgstr ""
+"Čeka da posao završi i vrati njegov izlazni status.\n"
+"\n"
+"    Čeka na svaki posao identificirani s ID — to jest indikatorom posla ili\n"
+"    indikatorom procesa — i izvijesti njegov završni status. Ako nije dȃn\n"
+"    ID, čeka na sve trenutačno aktivne potomke, a završni status je nula.\n"
+"    Ako je ID specifikacija posla, čeka na sve procese u cjevovodu tog posla.\n"
+"\n"
+"    Ako je dȃna opcija „-n“, čeka na završetak sljedećeg posla i vrati\n"
+"    njegov izlazni status.\n"
+"\n"
+"    Završi s kȏdom zadnjeg ID-a, s kȏdom 1 ako je ID nevaljani\n"
+"    ili je dȃna nevaljana opcija."
 
-#: builtins.c:1519
+#: builtins.c:1515
 msgid ""
 "Wait for process completion and return exit status.\n"
 "    \n"
-"    Waits for each process specified by a PID and reports its termination "
-"status.\n"
+"    Waits for each process specified by a PID and reports its termination status.\n"
 "    If PID is not given, waits for all currently active child processes,\n"
 "    and the return status is zero.  PID must be a process ID.\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns the status of the last PID; fails if PID is invalid or an "
-"invalid\n"
+"    Returns the status of the last PID; fails if PID is invalid or an invalid\n"
 "    option is given."
 msgstr ""
+"Čeka da proces završi i vrati njegov izlazni status.\n"
+"\n"
+"    Čeka na svaki proces identificirani s PID i izvijesti njegov završni\n"
+"    status. Ako nije dȃn PID, čeka na sve trenutačno aktivne potomke,\n"
+"    a završni status je nula. PID mora biti proces ID.\n"
+"\n"
+"    Završi s kȏdom zadnjeg PID-a, s kȏdom 1 ako je PID nevaljani,\n"
+"    ili s 2 ako je dȃna nevaljana opcija."
 
-#: builtins.c:1534
+#: builtins.c:1530
 msgid ""
 "Execute commands for each member in a list.\n"
 "    \n"
@@ -3732,8 +4542,16 @@ msgid ""
 "    Exit Status:\n"
 "    Returns the status of the last command executed."
 msgstr ""
+"Izvrši naredbe za svakoga člana u popisu.\n"
+"\n"
+"    Petlja „for“ izvrši sekvenciju naredbi za svakoga člana u popisu stavki.\n"
+"    Ako nema operanda „in RIJEČIMA...;“, podrazumijeva se operand\n"
+"    „in \"$@\"“. Svakom elementu u RIJEČIMA, IME se postavi na taj element\n"
+"    i izvrše se NAREDBE.\n"
+"\n"
+"    Završi s kȏdom zadnje izvršene naredbe."
 
-#: builtins.c:1548
+#: builtins.c:1544
 msgid ""
 "Arithmetic for loop.\n"
 "    \n"
@@ -3749,8 +4567,18 @@ msgid ""
 "    Exit Status:\n"
 "    Returns the status of the last command executed."
 msgstr ""
+"Aritmetička „for“ petlja.\n"
+"\n"
+"    Isto kao:\n"
+"\n"
+"        (( EXP1 )); while (( EXP2 )); do NAREDBE; (( EXP3 )); done\n"
+"\n"
+"    EXP1, EXP2, EXP3 su aritmetički izrazi. Ako bilo koji izraz nije\n"
+"    dȃn, uzima se da mu je vrijednost jednaka 1.\n"
+"\n"
+"    Završi s kȏdom zadnje izvršene naredbe."
 
-#: builtins.c:1566
+#: builtins.c:1562
 msgid ""
 "Select words from a list and execute commands.\n"
 "    \n"
@@ -3769,8 +4597,23 @@ msgid ""
 "    Exit Status:\n"
 "    Returns the status of the last command executed."
 msgstr ""
+"Pripremi izbornik i izvrši izabrane naredbe.\n"
+"\n"
+"    Proširenjem RIJEČI, „select“ generira i prikaže izbornik na standardnom\n"
+"    izlazu za greške s brojem ispred svake riječi. Ako operand „u RIJEČIMA“\n"
+"    nije dȃn, podrazumijeva se operand „in \"$@\"“.\n"
+"    Nakon izbornika prikaže se PS3 prompt i redak se čita iz standardnoga\n"
+"    ulaza; ako se redak sastoji od broja koji odgovara jednoj od prikazanih\n"
+"    riječi, onda varijabla IME dobije vrijednost te riječi; ako je redak\n"
+"    prazan, RIJEČI i prompt se ponovno prikažu; ako se pročita EOF „select“\n"
+"    naredba završi s poslom. Bilo koja druga vrijednost koja se pročita učini\n"
+"    da se IME isprazni (nulira). Pročitani redak spremi se u varijablu REPLY.\n"
+"    NAREDBE se izvršavaju nakon svakog izbora, tako dugo dok „break“ naredba\n"
+"    ne prekine posao.\n"
+"\n"
+"    Završi s kȏdom zadnje izvršene naredbe."
 
-#: builtins.c:1587
+#: builtins.c:1583
 msgid ""
 "Report time consumed by pipeline's execution.\n"
 "    \n"
@@ -3785,8 +4628,19 @@ msgid ""
 "    Exit Status:\n"
 "    The return status is the return status of PIPELINE."
 msgstr ""
+"Prikaže vrijeme potrošeno cjevovodom.\n"
+"\n"
+"    Nakon završetka izvršavanja CJEVOVODA prikaže sažetak statistike\n"
+"    trošenja vremena: ukupno potrošeno vrijeme, CPU vrijeme potrošeno\n"
+"    korisnikom i CPU vrijeme potrošeno sustavom za izvršavanje naredbi.\n"
+"\n"
+"    Izlazni format se može prilagoditi s varijablom okoline TIMEFORMAT.\n"
+"    Opcija „-p“ ignorira TIMEFORMAT i ispiše izlaz u prenosivom POSIX\n"
+"    formatu.\n"
+"\n"
+"    Završi s izlaznim statusom CJEVOVODA."
 
-#: builtins.c:1604
+#: builtins.c:1600
 msgid ""
 "Execute commands based on pattern matching.\n"
 "    \n"
@@ -3796,29 +4650,39 @@ msgid ""
 "    Exit Status:\n"
 "    Returns the status of the last command executed."
 msgstr ""
+"Izvrši naredbe ovisno o slaganju s uzorkom.\n"
+"\n"
+"    Izvrši onu NAREDBU koja odgovara prvom UZORKU koji se podudara s RIJEČI.\n"
+"    Znak „|“ rabi se za razdvajanje više uzoraka.\n"
+"\n"
+"    Završi s kȏdom zadnje izvršene naredbe."
 
-#: builtins.c:1616
+#: builtins.c:1612
 msgid ""
 "Execute commands based on conditional.\n"
 "    \n"
-"    The `if COMMANDS' list is executed.  If its exit status is zero, then "
-"the\n"
-"    `then COMMANDS' list is executed.  Otherwise, each `elif COMMANDS' list "
-"is\n"
+"    The `if COMMANDS' list is executed.  If its exit status is zero, then the\n"
+"    `then COMMANDS' list is executed.  Otherwise, each `elif COMMANDS' list is\n"
 "    executed in turn, and if its exit status is zero, the corresponding\n"
-"    `then COMMANDS' list is executed and the if command completes.  "
-"Otherwise,\n"
-"    the `else COMMANDS' list is executed, if present.  The exit status of "
-"the\n"
-"    entire construct is the exit status of the last command executed, or "
-"zero\n"
+"    `then COMMANDS' list is executed and the if command completes.  Otherwise,\n"
+"    the `else COMMANDS' list is executed, if present.  The exit status of the\n"
+"    entire construct is the exit status of the last command executed, or zero\n"
 "    if no condition tested true.\n"
 "    \n"
 "    Exit Status:\n"
 "    Returns the status of the last command executed."
 msgstr ""
+"Izvršavanje uvjetovanih naredbi.\n"
+"\n"
+"    Prvo izvrši zadatke iza „if“; ako „if“ završi s kȏdom nula, izvrši\n"
+"    zadatke iza prvog „then“; inače, izvrše se zadatci iza sljedećeg „elif“\n"
+"    (ako postoji), ili „else“ (ako postoji). Ako „elif“ završi s kȏdom\n"
+"    nula, izvrše se zadatci iza odgovarajućih „then“. Ako više nema „elif“,\n"
+"    ili „else“, ili nakon izvršenja zadataka iza „then“, „if“ naredba završi.\n"
+"\n"
+"    „if“ završi s kȏdom zadnjeg izvršenoga zadatka."
 
-#: builtins.c:1633
+#: builtins.c:1629
 msgid ""
 "Execute commands as long as a test succeeds.\n"
 "    \n"
@@ -3828,8 +4692,14 @@ msgid ""
 "    Exit Status:\n"
 "    Returns the status of the last command executed."
 msgstr ""
+"Izvršava naredbe tako dugo dok je test uspješan.\n"
+"\n"
+"    Izvršava sukcesivne NAREDBE tako dugo dok zadnja naredba u\n"
+"    „while“ NAREDBI Završi s kȏdom 0.\n"
+"\n"
+"    Završi s kȏdom zadnje izvršene naredbe."
 
-#: builtins.c:1645
+#: builtins.c:1641
 msgid ""
 "Execute commands as long as a test does not succeed.\n"
 "    \n"
@@ -3839,8 +4709,14 @@ msgid ""
 "    Exit Status:\n"
 "    Returns the status of the last command executed."
 msgstr ""
+"Izvršava naredbe tako dugo dok test ne uspije.\n"
+"\n"
+"    Izvršava sukcesivne NAREDBE tako dugo dok zadnja naredba u\n"
+"    „until“ NAREDBAMA završi s kȏdom različitim od nule.\n"
+"\n"
+"    Završi s kȏdom zadnje izvršene naredbe."
 
-#: builtins.c:1657
+#: builtins.c:1653
 msgid ""
 "Create a coprocess named NAME.\n"
 "    \n"
@@ -3852,22 +4728,37 @@ msgid ""
 "    Exit Status:\n"
 "    The coproc command returns an exit status of 0."
 msgstr ""
+"Kreira coprocess (suproces) s imenom IME.\n"
+"\n"
+"    Izvrši NAREDBU asinkrono, sa standardnim izlazom i standardnim ulazom\n"
+"    naredbe spojene preko cijevi na deskriptore datoteke dodijeljene\n"
+"    indeksima 0 i 1 varijable polja IME u izvršnoj ljusci.\n"
+"    Zadano, IME je \"COPROC\".\n"
+"\n"
+"    Naredba coproc završi s kȏdom 0."
 
-#: builtins.c:1671
+#: builtins.c:1667
 msgid ""
 "Define shell function.\n"
 "    \n"
 "    Create a shell function named NAME.  When invoked as a simple command,\n"
-"    NAME runs COMMANDs in the calling shell's context.  When NAME is "
-"invoked,\n"
+"    NAME runs COMMANDs in the calling shell's context.  When NAME is invoked,\n"
 "    the arguments are passed to the function as $1...$n, and the function's\n"
 "    name is in $FUNCNAME.\n"
 "    \n"
 "    Exit Status:\n"
 "    Returns success unless NAME is readonly."
 msgstr ""
+"Definira funkciju ljuske.\n"
+"\n"
+"    Kreira funkciju ljuske nazvanu IME. Kȁd se pokrene kao jednostavna\n"
+"    naredba, IME izvrši NAREDBE unutar konteksta ljuske pozivanja.\n"
+"    Kȁd se IME pozove, argumenti se proslijede funkciji kao $0...$N,\n"
+"    a ime funkcije je $FUNCNAME.\n"
+"\n"
+"    Završi s kȏdom 0 osim ako je IME readonly (samo-za-čitanje)."
 
-#: builtins.c:1685
+#: builtins.c:1681
 msgid ""
 "Group commands as a unit.\n"
 "    \n"
@@ -3877,8 +4768,14 @@ msgid ""
 "    Exit Status:\n"
 "    Returns the status of the last command executed."
 msgstr ""
+"Grupira naredbe u jednu cjelinu.\n"
+"\n"
+"    Izvrši skup naredbi kao grupu. To je jedan od načina za preusmjeravanje\n"
+"    čitavog skupa naredbi\n"
+"\n"
+"    Završi s kȏdom zadnje izvršene naredbe."
 
-#: builtins.c:1697
+#: builtins.c:1693
 msgid ""
 "Resume job in foreground.\n"
 "    \n"
@@ -3891,8 +4788,16 @@ msgid ""
 "    Exit Status:\n"
 "    Returns the status of the resumed job."
 msgstr ""
+"Nastavi posao u interaktivnom načinu.\n"
+"\n"
+"    Nastavi dȃni obustavljeni ili pozadinski posao u interaktivnom mȏdu\n"
+"    To je ekvivalentno naredbi „fg“. JOBSPEC može specificirati\n"
+"    ili ime posla ili broj posla.  Ako „&“ slijedi iza JOBSPEC\n"
+"    onda posao prelazi u pozadinu. To je ekvivalentno naredbi „bg“\n"
+"\n"
+"    Završi s kȏdom nastavljenoga posla."
 
-#: builtins.c:1712
+#: builtins.c:1708
 msgid ""
 "Evaluate arithmetic expression.\n"
 "    \n"
@@ -3902,17 +4807,21 @@ msgid ""
 "    Exit Status:\n"
 "    Returns 1 if EXPRESSION evaluates to 0; returns 0 otherwise."
 msgstr ""
+"Izračuna aritmetički izraz.\n"
+"\n"
+"    IZRAZ se izračuna po aritmetičkim pravilima.\n"
+"    To je isto kao \"let IZRAZ\".\n"
+"\n"
+"    Završi s kȏdom 1 ako je rezultat IZRAZA jednaki 0;\n"
+"    inače završi s kȏdom 0."
 
-#: builtins.c:1724
+#: builtins.c:1720
 msgid ""
 "Execute conditional command.\n"
 "    \n"
-"    Returns a status of 0 or 1 depending on the evaluation of the "
-"conditional\n"
-"    expression EXPRESSION.  Expressions are composed of the same primaries "
-"used\n"
-"    by the `test' builtin, and may be combined using the following "
-"operators:\n"
+"    Returns a status of 0 or 1 depending on the evaluation of the conditional\n"
+"    expression EXPRESSION.  Expressions are composed of the same primaries used\n"
+"    by the `test' builtin, and may be combined using the following operators:\n"
 "    \n"
 "      ( EXPRESSION )\tReturns the value of EXPRESSION\n"
 "      ! EXPRESSION\t\tTrue if EXPRESSION is false; else false\n"
@@ -3930,8 +4839,29 @@ msgid ""
 "    Exit Status:\n"
 "    0 or 1 depending on value of EXPRESSION."
 msgstr ""
+"Izvrši uvjetnu naredbu.\n"
+"\n"
+"    Evaluira dani uvjetni IZRAZ; ovisno o rezultatu evaluacije završi sa\n"
+"    statusom 0 (istina) ili 1 (neistina, laž).  Izrazi koriste iste osnovne\n"
+"    komponente koje koristi ugrađena naredba (builtin) „test“, i mogu se\n"
+"    kombinirati sa sljedećim operatorima:\n"
+"\n"
+"        ( IZRAZ )     vrati vrijednost danoga IZRAZa\n"
+"        ! IZRAZ       istina ako je IZRAZ istina, inače laž\n"
+"        IZRAZ1 && IZRAZ2    istina ako su oba izraza istinita, inače laž\n"
+"        IZRAZ1 || IZRAZ2    laž ako su oba izraza neistinita, inače istina\n"
+"\n"
+"    Ako se rabe operatori „==“ ili „!=“, onda se string desno od operatora\n"
+"    smatra za uzorak i  provodi se podudaranje uzoraka.\n"
+"    Ako se rabi operator „=~“, onda se string na desno od operatora podudara\n"
+"    kao regularni izraz.\n"
+"\n"
+"    Operatori „&&“ i „|| ne evaluiraju IZRAZ2 ako je IZRAZ1 dovoljan za\n"
+"    određivanje konačnog rezurlata.\n"
+"\n"
+"    Završi s kȏdom 0 ili 1 ovisno o IZRAZU."
 
-#: builtins.c:1750
+#: builtins.c:1746
 msgid ""
 "Common shell variable names and usage.\n"
 "    \n"
@@ -3984,8 +4914,54 @@ msgid ""
 "    HISTIGNORE\tA colon-separated list of patterns used to decide which\n"
 "    \t\tcommands should be saved on the history list.\n"
 msgstr ""
-
-#: builtins.c:1807
+"Značenje i upotreba standardnih varijabli ljuske.\n"
+"\n"
+"    U nastavku je opis brojnih varijabli od kojih neke sadrže popis\n"
+"    elemenata. U svakom od tih popisa elementi su razdvojeni dvotočkama.\n"
+"\n"
+"    BASH_VERSION  inačica ovog „bash“ programa\n"
+"    CDPATH        popis direktorija u kojima se traži direktorij\n"
+"                    kȁd argument od „cd“ (direktorij) nije u\n"
+"                    trenutačnom radnom direktoriju\n"
+"    GLOBIGNORE    popis uzoraka koji opisuju imena datoteka koje\n"
+"                    se ignoriraju prilikom ekspanzije imena staza\n"
+"    HISTFILE      ime datoteke koja sadrži povijest vaših naredbi\n"
+"    HISTFILESIZE  maksimalni broj redaka datoteke s povijesti naredba\n"
+"    HISTIGNORE    popis uzoraka koji opisuju naredbe koje ne treba zapisati\n"
+"                    u datoteku koja sadrži povijest vaših naredbi\n"
+"    HISTSIZE      maksimalni broj redaka koje aktualna ljuska može dosegnuti\n"
+"    HOME          puni naziv staze do vašega osobnoga direktorija\n"
+"    HOSTNAME      ime računala na kojem se izvršava „bash“\n"
+"    HOSTTYPE      tip CPU-a na kojem se izvršava „bash“\n"
+"    IGNOREEOF     broj ignoriranih Ctrl-D (EOF) prije zatvaranja ljuske\n"
+"    MACHTYPE      tip računala na kojem se izvršava „bash“\n"
+"    MAILCHECK     kako često (u sekundama) „bash“ gleda ima li nove pošte\n"
+"    MAILPATH      popis datoteka koje „bash“ provjeri za novu poštu\n"
+"    OSTYPE        distribucija Unix-a no kojem se izvršava ovaj „bash“\n"
+"    PATH          popis direktorija u kojima se traže naredbe\n"
+"    PROMPT_COMMAND  naredba koja se izvrši prije ispisa primarnoga prompta\n"
+"    PS1           string koji opisuje primarni prompt\n"
+"    PS2           string koji opisuje sekundarni prompt (zadano, „>“)\n"
+"    PWD           puni naziv staze trenutačnoga radnoga direktorija\n"
+"    SHELLOPTS     popis svih omogućenih opcija ljuske\n"
+"    TERM          naziv vrste trenutačnoga terminala\n"
+"    TIMEFORMAT    pravilo za format ispisa „time“ statistika\n"
+"    auto_resume   ako nije prazan, učini da se naredbena riječ na naredbenom\n"
+"                    retku prvo potraži na popisu obustavljenih poslova,\n"
+"                    i ako se tamo pronađe, taj se posao premjesti u\n"
+"                    interaktivni mȏd; vrijednost „exact“ znači da naredbena\n"
+"                    riječ mora strikno podudariti naredbu iz popisa;\n"
+"                    vrijednost „substring“ znači da naredbena riječ mora\n"
+"                    podudariti podstring naredbe iz popisa; bilo koja druga\n"
+"                    vrijednost znači da naredbena riječ mora biti prefiks\n"
+"                    obustavljene naredbe\n"
+"    histchars     znakovi koje upravljaju s proširenjem i brzom supstitucijom\n"
+"                    povijesti; prvi znak je znak za „supstituciju\n"
+"                    povijesti“, obično „!“; drugi znak je „znak brze\n"
+"                    supstitucije“, obično „^“; treći znak je „komentar\n"
+"                    povijesti“, obično „#“.\n"
+
+#: builtins.c:1803
 msgid ""
 "Add directories to stack.\n"
 "    \n"
@@ -4015,8 +4991,30 @@ msgid ""
 "    Returns success unless an invalid argument is supplied or the directory\n"
 "    change fails."
 msgstr ""
+"Doda direktorije na snop.\n"
+"\n"
+"    Doda direktorij na vrh snopa direktorija ili zarotira snop tako da\n"
+"    učini novi vrh snopa trenutačnim radnim direktorijem. Bez argumenata\n"
+"    razmijeni pozicije dva direktorija na vrhu snopa.\n"
+"\n"
+"    Opcije:\n"
+"      -n   izostavi uobičajenu promjenu direktorija kȁd dodaje\n"
+"           direktorije u snop, odnosno samo manipulira sa snopom\n"
+"\n"
+"    Argumenti:\n"
+"      DIREKTORIJ  Doda DIREKTORIJ na vrh snopa direktorija i\n"
+"                    učini ga novim aktualnim radnim direktorijem.\n"
+"      +N   Zarotira snop tako, da N-ti direktorij u snopu (brojeći od nule s\n"
+"             lijeve strane popisa prikazanoga s „dirs“) postane novi vrh snopa.\n"
+"      -N   Zarotira snop tako, da N-ti direktorij u snopu (brojeći od nule s\n"
+"             desne strane popisa prikazanoga s „dirs“) postane novi vrh snopa.\n"
+"\n"
+"      Naredba „dirs“ prikaže trenutačni sadržaj snopa direktorija.\n"
+"\n"
+"    Završi s kȏdom 0 osim ako je dȃna nevaljana opcija\n"
+"    ili nije uspjela promjena direktorija."
 
-#: builtins.c:1841
+#: builtins.c:1837
 msgid ""
 "Remove directories from stack.\n"
 "    \n"
@@ -4042,9 +5040,29 @@ msgid ""
 "    Returns success unless an invalid argument is supplied or the directory\n"
 "    change fails."
 msgstr ""
+"Ukloni direktorije iz snopa.\n"
+"\n"
+"    Ukloni direktorije iz snopa direktorija. Bez argumenata, ukloni\n"
+"    direktorij na vrhu snopa i premjesti se u novi najviši direktorij.\n"
+"\n"
+"    Opcije:\n"
+"      -n   izostavi uobičajenu promjenu direktorija kȁd uklanja\n"
+"           direktorije iz snopa, odnosno samo manipulira sa snopom\n"
+"\n"
+"    Argumenti:\n"
+"      +N   Ukloni da N-ti direktorij iz snopa brojeći od nule s lijeve\n"
+"             strane popisa prikazanoga s „dirs“. Na primjer: „popd +0“\n"
+"             ukloni prvi, a „popd +1“ ukloni drugi direktorij.\n"
+"      +N   Ukloni da N-ti direktorij iz snopa brojeći od nule s desne\n"
+"             strane popisa prikazanoga s „dirs“. Na primjer.: „popd -0“\n"
+"             ukloni zadnji, a „popd -1“ ukloni predzadnji direktorij.\n"
+"\n"
+"    Naredba „dirs“ prikaže trenutačni sadržaj snopa direktorija.\n"
+"\n"
+"    Završi s kȏdom 0 osim ako je dȃna nevaljana opcija\n"
+"    ili nije uspjela promjena direktorija."
 
-#: builtins.c:1871
-#, fuzzy
+#: builtins.c:1867
 msgid ""
 "Display directory stack.\n"
 "    \n"
@@ -4072,34 +5090,35 @@ msgid ""
 "    Exit Status:\n"
 "    Returns success unless an invalid option is supplied or an error occurs."
 msgstr ""
-"Prikaži popis trenutno zapamćenih direktorija. Direktoriji se dodaju\n"
-"    na popis naredbom „pushd”, kroz popis se možete vraćati naredbom\n"
-"    „popd”.\n"
+"Ispiše sadržaj snopa direktorija.\n"
+"\n"
+"    Pokaže popis trenutačno zapamćenih direktorija. Direktoriji se unose\n"
+"    na popis pomoću naredbe „pushd“, a s naredbom „popd“ se uklanjaju.\n"
 "    \n"
 "    Opcije:\n"
-"      -c\točisti stog direktorija uklanjanjem svih elemenata\n"
-"      -l\tne ispisuj tildom prefiksirane inačice direktorija\n"
-"    \trelativno u odnosu na početni direktorij\n"
-"      -p\tispiši stog direktorija jednu stavku po retku\n"
-"      -v\tispiši stog direktorija jednu stavku po retku\n"
-"    \tprefiksiranu položajem u stogu\n"
-"    \n"
+"      -c   počisti snop direktorija brisanjem svih elemenata\n"
+"      -l   ispiše apsolutne staze direktorija u odnosu na osobni\n"
+"             direktorij (ne skraćuje staze upotrebom tilde)\n"
+"      -p   ispiše sadržaj snopa po jedan direktorij po retku\n"
+"      -v   kao „-p“, ali s prefiksom koji pokazuje\n"
+"             poziciju direktorija snopu\n"
+"\n"
 "    Argumenti:\n"
-"      +N\tPrikazuje N-tu stavku s lijeve strane popisa koju prikazuje "
-"naredba\n"
-"    \t„dirs” pozvana bez opcija, počevši od nule.\n"
-"    \n"
-"      -N\tPrikazuje N-tu stavku s desne strane popisa koju prikazuje "
-"naredba\n"
-"\t„dirs” pozvana bez opcija, počevši od nule."
+"      +N   Pokaže N-ti direktorij iz snopa, brojeći od od nule s\n"
+"             lijeve strane popisa kȁd se „dirs“ pokrene bez opcija.\n"
+"      -N   Pokaže N-ti direktorij iz snopa, brojeći od nule s\n"
+"             desne strane popisa kȁd se „dirs“ pokrene bez opcija.\n"
+"\n"
+"    Završi s kȏdom 0 osim ako je dȃna nevaljana opcija\n"
+"    ili se dogodila greška."
 
-#: builtins.c:1902
+#: builtins.c:1898
 msgid ""
 "Set and unset shell options.\n"
 "    \n"
 "    Change the setting of each shell option OPTNAME.  Without any option\n"
-"    arguments, list each supplied OPTNAME, or all shell options if no\n"
-"    OPTNAMEs are given, with an indication of whether or not each is set.\n"
+"    arguments, list all shell options with an indication of whether or not each\n"
+"    is set.\n"
 "    \n"
 "    Options:\n"
 "      -o\trestrict OPTNAMEs to those defined for use with `set -o'\n"
@@ -4112,8 +5131,25 @@ msgid ""
 "    Returns success if OPTNAME is enabled; fails if an invalid option is\n"
 "    given or OPTNAME is disabled."
 msgstr ""
+"Uključi ili isključi opcije ljuske.\n"
+"\n"
+"    Promjeni postavku svakoj opciji ljuske IME_OPCIJE. Bez ikakvih opcija i\n"
+"    argumenta, „shopt“ izlista sve opcije ljuske pokazujući je li, ili nije\n"
+"    uključena.\n"
+"\n"
+"    Opcije:\n"
+"      -o   ograniči IME_OPCIJE na ona koja su definirana\n"
+"             za upotrebu sa „set -o“\n"
+"      -p   generira izlaz koji se može koristi za ulaz\n"
+"      -q   izostavi izlaz (ništa ne ispisuje)\n"
+"      -s   omogući (uključi) sve dȃne IME_OPCIJE\n"
+"      -u   onemogući (isključi) sve dȃne IME_OPCIJE\n"
+"\n"
+"    Bez opcija (ili samo s „-q“ opcijom) Završi s kȏdom 0 ako je IME_OPCIJE\n"
+"    uključeno, a s 1 ako je isključeno. Završi također s 1 ako je dȃno\n"
+"    nevaljano ime opcije, a završi s 2 ako je dȃna nevaljana opcija."
 
-#: builtins.c:1923
+#: builtins.c:1919
 msgid ""
 "Formats and prints ARGUMENTS under control of the FORMAT.\n"
 "    \n"
@@ -4121,45 +5157,64 @@ msgid ""
 "      -v var\tassign the output to shell variable VAR rather than\n"
 "    \t\tdisplay it on the standard output\n"
 "    \n"
-"    FORMAT is a character string which contains three types of objects: "
-"plain\n"
-"    characters, which are simply copied to standard output; character "
-"escape\n"
+"    FORMAT is a character string which contains three types of objects: plain\n"
+"    characters, which are simply copied to standard output; character escape\n"
 "    sequences, which are converted and copied to the standard output; and\n"
-"    format specifications, each of which causes printing of the next "
-"successive\n"
+"    format specifications, each of which causes printing of the next successive\n"
 "    argument.\n"
 "    \n"
-"    In addition to the standard format specifications described in printf"
-"(1),\n"
+"    In addition to the standard format specifications described in printf(1),\n"
 "    printf interprets:\n"
 "    \n"
 "      %b\texpand backslash escape sequences in the corresponding argument\n"
 "      %q\tquote the argument in a way that can be reused as shell input\n"
-"      %(fmt)T\toutput the date-time string resulting from using FMT as a "
-"format\n"
+"      %(fmt)T\toutput the date-time string resulting from using FMT as a format\n"
 "    \t        string for strftime(3)\n"
 "    \n"
 "    The format is re-used as necessary to consume all of the arguments.  If\n"
 "    there are fewer arguments than the format requires,  extra format\n"
-"    specifications behave as if a zero value or null string, as "
-"appropriate,\n"
+"    specifications behave as if a zero value or null string, as appropriate,\n"
 "    had been supplied.\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns success unless an invalid option is given or a write or "
-"assignment\n"
+"    Returns success unless an invalid option is given or a write or assignment\n"
 "    error occurs."
 msgstr ""
+"Oblikuje ispis ARGUMENATA prema pravilima FORMATA.\n"
+"\n"
+"    Ispiše dane ARGUMENTE u danom FORMATU.\n"
+"\n"
+"    Opcije:\n"
+"      -v VARIJABLA  preusmjeri (dodijeli) izlaz (ispis) u VARIJABLU\n"
+"                    umjesto na standardni izlaz\n"
+"\n"
+"    FORMAT je znakovni string koji sadrži tri vrste objekta:\n"
+"    obične znakove koji se jednostavno kopiraju na izlaz; kontrolne znakove\n"
+"    (maskirane sekvencije) koji se pretvore i kopiraju na izlaz; i\n"
+"    specifikacije formata od kojih svaka uzrokuje ispisivanje sljedećeg\n"
+"    sukcesivnoga argumenta.\n"
+"\n"
+"    Pored standardnih simbola za format opisanih u printf(1),\n"
+"    printf dodatno interpretira:\n"
+"      %b       proširi maskirane sekvencije s obratnom kosom crtom\n"
+"                 (backslash escape sequences) u relevantim argumentima\n"
+"      %q       citira argument tako, da se može iskoristiti kao ulaz\n"
+"      %(fmt)T  ispis vremena rezultira upotrebom FMT kao\n"
+"                 format stringa za strftime(3)\n"
+"\n"
+"    Dani format se koristi sve dok se ne potroše svi argumenti. Ako ima\n"
+"    manje od očekivanoga broja argumenata, suvišne format specifikacije\n"
+"    se ponašaju kao da im je vrijednost nula, ili prazni string.\n"
+"\n"
+"    Završi s kȏdom 0 osim ako je dana nevaljana opcija\n"
+"    ili se dogodila greška pisanja ili greška pri dodijeli."
 
-#: builtins.c:1957
+#: builtins.c:1953
 msgid ""
 "Specify how arguments are to be completed by Readline.\n"
 "    \n"
-"    For each NAME, specify how arguments are to be completed.  If no "
-"options\n"
-"    are supplied, existing completion specifications are printed in a way "
-"that\n"
+"    For each NAME, specify how arguments are to be completed.  If no options\n"
+"    are supplied, existing completion specifications are printed in a way that\n"
 "    allows them to be reused as input.\n"
 "    \n"
 "    Options:\n"
@@ -4178,30 +5233,55 @@ msgid ""
 "    Exit Status:\n"
 "    Returns success unless an invalid option is supplied or an error occurs."
 msgstr ""
+"Specificira kako „readline“ treba kompletirati argumente.\n"
+"\n"
+"    Za svako dȃno IME specificira kako se kompletiraju argumenti. Bez\n"
+"    dȃnih opcija ispiše postojeće specifikacije koje se mogu ponovno\n"
+"    iskoristiti kao ulaz.\n"
+"\n"
+"    Opcije:\n"
+"      -p   ispiše postojeće specifikacije kompletiranja u formatu\n"
+"             upotrebljivom za ulaz\n"
+"      -r   ukloni specifikaciju kompletiranja za svako dȃno IME\n"
+"             ili ukloni sve specifikacije ako nisu dȃna IMEna\n"
+"      -D   na naredbe koje nemaju vlastitu specifikaciju za kompletiranje\n"
+"             primjeni „zadano“ ponašanje specifikacija i akcija\n"
+"      -E   primjeni zadano ponašanje specifikacija i akcija i na „prazne“\n"
+"             naredbe, to jest pokuša kompletirati prazni redak\n"
+"\n"
+"    Redoslijed akcija pri pokušaju kompletiranja slijedi gore dȃni poredak\n"
+"    opcija u verzalu. Opcija „-D“ ima veći prioritet od opcije „'E“.\n"
+"\n"
+"    Završi s kȏdom 0 osim ako je dȃna nevaljana opcija\n"
+"    ili se dogodila greška."
 
-#: builtins.c:1985
+#: builtins.c:1981
 msgid ""
 "Display possible completions depending on the options.\n"
 "    \n"
 "    Intended to be used from within a shell function generating possible\n"
-"    completions.  If the optional WORD argument is supplied, matches "
-"against\n"
+"    completions.  If the optional WORD argument is supplied, matches against\n"
 "    WORD are generated.\n"
 "    \n"
 "    Exit Status:\n"
 "    Returns success unless an invalid option is supplied or an error occurs."
 msgstr ""
+"Prikaže moguća kompletiranja ovisno o opcijama.\n"
+"\n"
+"    „compgen“ je namijenjen za upotrebu unutar funkcije koja generira\n"
+"    moguća kompletiranja. Ako je dȃna neobvezna opcija RIJEČ, generira\n"
+"    samo moguća kompletiranja podudarna s opcijom RIJEČ.\n"
+"\n"
+"    Završi s kȏdom 0 osim ako je dȃna nevaljana opcija\n"
+"    ili se dogodila greška."
 
-#: builtins.c:2000
+#: builtins.c:1996
 msgid ""
 "Modify or display completion options.\n"
 "    \n"
-"    Modify the completion options for each NAME, or, if no NAMEs are "
-"supplied,\n"
-"    the completion currently being executed.  If no OPTIONs are given, "
-"print\n"
-"    the completion options for each NAME or the current completion "
-"specification.\n"
+"    Modify the completion options for each NAME, or, if no NAMEs are supplied,\n"
+"    the completion currently being executed.  If no OPTIONs are given, print\n"
+"    the completion options for each NAME or the current completion specification.\n"
 "    \n"
 "    Options:\n"
 "    \t-o option\tSet completion option OPTION for each NAME\n"
@@ -4222,27 +5302,44 @@ msgid ""
 "    Returns success unless an invalid option is supplied or NAME does not\n"
 "    have a completion specification defined."
 msgstr ""
+"Izmjena ili prikaz opcija za kompletiranje.\n"
+"\n"
+"    Izmijenite opcije kompletiranja za svako IME u skladu s opcijama,\n"
+"    ili za kompletiranje koje se trenutačno vrši ako nisu dȃna IMEna.\n"
+"    Ako nema opcija, ispišu se opcije kompletiranja za svako IME ili\n"
+"    za trenutačno kompletiranje.\n"
+"\n"
+"    Opcije:\n"
+"      -o OPCIJA   ovu OPCIJU kompletiranja postavi za svako IME\n"
+"      -D          promijeni opcije za kompletiranje „zadanih“ naredba\n"
+"      -E          promijeni opcije za kompletiranje „praznih“ naredba\n"
+"\n"
+"    „+“ umjesto „-“ isključi odgovarajuću opciju.\n"
+"\n"
+"    Svako IME ukazuje na naredbu za koju specifikacija kompletiranja mora\n"
+"    već prije biti definirana pomoću ugrađene naredbe „complete“. Ako nije\n"
+"    dȃno nijedno IME, funkcija koja trenutačno generira kompletiranja mora\n"
+"    pozvati „compopt“; time se onda promjene opcije za taj generator koji\n"
+"    trenutačno izvršava kompletiranja.\n"
+"\n"
+"    Završi s kȏdom 0 osim ako nije dȃna nevaljana opcija\n"
+"    ili nije definirana specifikacija za kompletiranje IMEna."
 
-#: builtins.c:2030
+#: builtins.c:2026
 msgid ""
 "Read lines from the standard input into an indexed array variable.\n"
 "    \n"
-"    Read lines from the standard input into the indexed array variable "
-"ARRAY, or\n"
-"    from file descriptor FD if the -u option is supplied.  The variable "
-"MAPFILE\n"
+"    Read lines from the standard input into the indexed array variable ARRAY, or\n"
+"    from file descriptor FD if the -u option is supplied.  The variable MAPFILE\n"
 "    is the default ARRAY.\n"
 "    \n"
 "    Options:\n"
 "      -d delim\tUse DELIM to terminate lines, instead of newline\n"
-"      -n count\tCopy at most COUNT lines.  If COUNT is 0, all lines are "
-"copied\n"
-"      -O origin\tBegin assigning to ARRAY at index ORIGIN.  The default "
-"index is 0\n"
+"      -n count\tCopy at most COUNT lines.  If COUNT is 0, all lines are copied\n"
+"      -O origin\tBegin assigning to ARRAY at index ORIGIN.  The default index is 0\n"
 "      -s count\tDiscard the first COUNT lines read\n"
 "      -t\tRemove a trailing DELIM from each line read (default newline)\n"
-"      -u fd\tRead lines from file descriptor FD instead of the standard "
-"input\n"
+"      -u fd\tRead lines from file descriptor FD instead of the standard input\n"
 "      -C callback\tEvaluate CALLBACK each time QUANTUM lines are read\n"
 "      -c quantum\tSpecify the number of lines read between each call to\n"
 "    \t\t\tCALLBACK\n"
@@ -4255,35 +5352,56 @@ msgid ""
 "    element to be assigned and the line to be assigned to that element\n"
 "    as additional arguments.\n"
 "    \n"
-"    If not supplied with an explicit origin, mapfile will clear ARRAY "
-"before\n"
+"    If not supplied with an explicit origin, mapfile will clear ARRAY before\n"
 "    assigning to it.\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns success unless an invalid option is given or ARRAY is readonly "
-"or\n"
+"    Returns success unless an invalid option is given or ARRAY is readonly or\n"
 "    not an indexed array."
 msgstr ""
+"Mapira pročitane retke iz standardnoga ulaza u varijablu tipa polje.\n"
+"\n"
+"    Učitane retke iz standardnoga ulaza mapira u indeksiranu varijablu POLJE.\n"
+"    Ako nema argumenta POLJE, koristi se (zadano) varijabla MAPFILE.\n"
+"\n"
+"    Opcije:\n"
+"      -d MEĐA      prvi znak u MEĐI (umjesto LF) je znak za kraj retka\n"
+"      -n BROJ      kopira ne više od BROJ redaka (0 znači sve retke)\n"
+"      -O POČETAK   mapiranje započinje s indeksom POČETAK (zadano 0)\n"
+"      -s BROJ      preskoči (izostavi) prvih BROJ redaka\n"
+"      -t           ukloni zaostalu MEĐU (zadano LF) iz svakog učitanoga retka\n"
+"      -u FD        čita retke iz FD (deskriptora datoteke) umjesto iz stdin\n"
+"      -C FUNKCIJA  evaluira FUNKCIJU nakon svako TOLIKO pročitanih redaka\n"
+"      -c TOLIKO    nakon svako TOLIKO pročitanih redaka pozove FUNKCIJU\n"
+"\n"
+"    Argument:\n"
+"      POLJE        ime varijable polja u koju se mapiraju pročitani redci\n"
+"\n"
+"    Ako je opcija „-C“ dȃna bez opcije „-c“, TOLIKO je 5000 (zadano).\n"
+"    Kȁd FUNKCIJA evaluira — dobiva indeks sljedećeg elementa polja koji se\n"
+"    mapira i redak koji će biti dodijeljen tom elementu — kao dodatne argumente.\n"
+"\n"
+"    Ako nije dȃni eksplicitni POČETAK, „mapfile“ počisti polje\n"
+"    prije početka mapiranja.\n"
+"\n"
+"    Završi s kȏdom 0 osim ako je POLJE readonly (samo-za-čitanje)\n"
+"    ili nije polje; ili je dȃna nevaljana opcija."
 
-#: builtins.c:2066
+#: builtins.c:2062
 msgid ""
 "Read lines from a file into an array variable.\n"
 "    \n"
 "    A synonym for `mapfile'."
 msgstr ""
-"Učitaj retke iz datoteke u varijablu polja.\n"
-"    \n"
-"    Sinonim za â\80\9emapfileâ\80\9d."
+"Učita retke iz datoteke u varijablu tipa indeksirano polje.\n"
+"\n"
+"    Sinonim za â\80\9emapfileâ\80\9c."
 
 #~ msgid "Copyright (C) 2009 Free Software Foundation, Inc.\n"
 #~ msgstr "Copyright © 2009 Free Software Foundation, Inc.\n"
 
-#~ msgid ""
-#~ "License GPLv2+: GNU GPL version 2 or later <http://gnu.org/licenses/gpl."
-#~ "html>\n"
-#~ msgstr ""
-#~ "Licenca GPLv2+: GNU GPL inačica 2 ili novija <http://gnu.org/licenses/gpl."
-#~ "html>\n"
+#~ msgid "License GPLv2+: GNU GPL version 2 or later <http://gnu.org/licenses/gpl.html>\n"
+#~ msgstr "Licenca GPLv2+: GNU GPL inačica 2 ili novija <http://gnu.org/licenses/gpl.html>\n"
 
 #~ msgid ":"
 #~ msgstr ":"
index 2f99d1489c7ea58772ae394cb02f3feb978bed4b..2678c9b7646b9d36b7ba7cf503eb51670c731393 100644 (file)
--- a/po/pt.po
+++ b/po/pt.po
@@ -7,133 +7,131 @@ msgid ""
 msgstr ""
 "Project-Id-Version: bash-4.4\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2018-04-27 14:15-0400\n"
+"POT-Creation-Date: 2016-09-10 12:42-0400\n"
 "PO-Revision-Date: 2018-01-30 06:34+0000\n"
 "Last-Translator: Pedro Albuquerque <palbuquerque73@gmail.com>\n"
 "Language-Team: Portuguese <translation-team-pt@lists.sourceforge.net>\n"
+"Language: pt\n"
+"X-Bugs: Report translation errors to the Language-Team address.\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"Language: pt\n"
-"X-Bugs: Report translation errors to the Language-Team address.\n"
 "Plural-Forms: nplurals=2; plural=n !=1;\n"
 "X-Generator: Gtranslator 2.91.6\n"
 
-#: arrayfunc.c:58
+#: arrayfunc.c:54
 msgid "bad array subscript"
 msgstr "subscrito de matriz inválido"
 
-#: arrayfunc.c:373 builtins/declare.def:618 variables.c:2188 variables.c:2214
-#: variables.c:2922
+#: arrayfunc.c:368 builtins/declare.def:574 variables.c:2092 variables.c:2118
+#: variables.c:2730
 #, c-format
 msgid "%s: removing nameref attribute"
 msgstr "%s: a remover atributo nameref"
 
-#: arrayfunc.c:398 builtins/declare.def:831
+#: arrayfunc.c:393 builtins/declare.def:780
 #, c-format
 msgid "%s: cannot convert indexed to associative array"
 msgstr "%s: impossível converter matriz indexada para associativa"
 
-#: arrayfunc.c:582
+#: arrayfunc.c:578
 #, c-format
 msgid "%s: invalid associative array key"
 msgstr "%s: chave de matriz associativa inválida"
 
-#: arrayfunc.c:584
+#: arrayfunc.c:580
 #, c-format
 msgid "%s: cannot assign to non-numeric index"
 msgstr "%s: impossível atribuir a índice não numérico"
 
-#: arrayfunc.c:629
+#: arrayfunc.c:625
 #, c-format
 msgid "%s: %s: must use subscript when assigning associative array"
 msgstr "%s: %s: tem de usar subscrito ao atribuir a matriz associativa"
 
-#: bashhist.c:436
+#: bashhist.c:421
 #, c-format
 msgid "%s: cannot create: %s"
 msgstr "%s: impossível criar: %s"
 
-#: bashline.c:4111
+#: bashline.c:4091
 msgid "bash_execute_unix_command: cannot find keymap for command"
-msgstr ""
-"bash_execute_unix_command: impossível encontrar mapa de teclado para o "
-"comando"
+msgstr "bash_execute_unix_command: impossível encontrar mapa de teclado para o comando"
 
-#: bashline.c:4221
+#: bashline.c:4189
 #, c-format
 msgid "%s: first non-whitespace character is not `\"'"
 msgstr "%s: o 1º carácter não-espaço não é \"\"\""
 
-#: bashline.c:4250
+#: bashline.c:4218
 #, c-format
 msgid "no closing `%c' in %s"
 msgstr "sem \"%c\" de fecho em %s"
 
-#: bashline.c:4284
+#: bashline.c:4252
 #, c-format
 msgid "%s: missing colon separator"
 msgstr "%s: separador dois pontos em falta"
 
-#: braces.c:331
+#: braces.c:329
 #, c-format
 msgid "brace expansion: cannot allocate memory for %s"
 msgstr "expansão: impossível alocar memória para %s"
 
-#: braces.c:429
-#, fuzzy, c-format
-msgid "brace expansion: failed to allocate memory for %u elements"
+#: braces.c:427
+#, c-format
+msgid "brace expansion: failed to allocate memory for %d elements"
 msgstr "expansão: falha ao alocar memória para %d elementos"
 
-#: braces.c:473
+#: braces.c:471
 #, c-format
 msgid "brace expansion: failed to allocate memory for `%s'"
 msgstr "expansão: falha ao alocar memória para \"%s\""
 
-#: builtins/alias.def:131
+#: builtins/alias.def:133
 #, c-format
 msgid "`%s': invalid alias name"
 msgstr "\"%s\": aliás inválido"
 
-#: builtins/bind.def:122 builtins/bind.def:125
+#: builtins/bind.def:123 builtins/bind.def:126
 msgid "line editing not enabled"
 msgstr "Edição de linha não activada"
 
-#: builtins/bind.def:212
+#: builtins/bind.def:213
 #, c-format
 msgid "`%s': invalid keymap name"
 msgstr "\"%s\": mapa de teclado inválido"
 
-#: builtins/bind.def:252
+#: builtins/bind.def:253
 #, c-format
 msgid "%s: cannot read: %s"
 msgstr "%s: impossível ler: %s"
 
-#: builtins/bind.def:304 builtins/bind.def:334
+#: builtins/bind.def:270
+#, c-format
+msgid "`%s': cannot unbind"
+msgstr "\"%s\": impossível desassociar"
+
+#: builtins/bind.def:308 builtins/bind.def:338
 #, c-format
 msgid "`%s': unknown function name"
 msgstr "\"%s\": nome de função desconhecido"
 
-#: builtins/bind.def:312
+#: builtins/bind.def:316
 #, c-format
 msgid "%s is not bound to any keys.\n"
 msgstr "%s: não tem associação a qualquer tecla.\n"
 
-#: builtins/bind.def:316
+#: builtins/bind.def:320
 #, c-format
 msgid "%s can be invoked via "
 msgstr "%s pode ser chamado via "
 
-#: builtins/bind.def:353 builtins/bind.def:368
-#, c-format
-msgid "`%s': cannot unbind"
-msgstr "\"%s\": impossível desassociar"
-
-#: builtins/break.def:77 builtins/break.def:119
+#: builtins/break.def:79 builtins/break.def:121
 msgid "loop count"
 msgstr "total de ciclos"
 
-#: builtins/break.def:139
+#: builtins/break.def:141
 msgid "only meaningful in a `for', `while', or `until' loop"
 msgstr "só tem significado num ciclo \"for\", \"while\" ou \"until\""
 
@@ -147,162 +145,162 @@ msgstr ""
 "    \n"
 "    Sem EXPR, devolve "
 
-#: builtins/cd.def:319
+#: builtins/cd.def:321
 msgid "HOME not set"
 msgstr "HOME não definida"
 
-#: builtins/cd.def:327 builtins/common.c:161 test.c:889
+#: builtins/cd.def:329 builtins/common.c:167 test.c:885
 msgid "too many arguments"
 msgstr "demasiados argumentos"
 
-#: builtins/cd.def:334
+#: builtins/cd.def:336
 msgid "null directory"
 msgstr "pasta nula"
 
-#: builtins/cd.def:345
+#: builtins/cd.def:347
 msgid "OLDPWD not set"
 msgstr "OLDPWD não definida"
 
-#: builtins/common.c:96
+#: builtins/common.c:102
 #, c-format
 msgid "line %d: "
 msgstr "linha %d: "
 
-#: builtins/common.c:134 error.c:264
+#: builtins/common.c:140 error.c:265
 #, c-format
 msgid "warning: "
 msgstr "aviso: "
 
-#: builtins/common.c:148
+#: builtins/common.c:154
 #, c-format
 msgid "%s: usage: "
 msgstr "%s: uso: "
 
-#: builtins/common.c:193 shell.c:510 shell.c:838
+#: builtins/common.c:199 shell.c:514 shell.c:825
 #, c-format
 msgid "%s: option requires an argument"
 msgstr "%s: a opção requer um argumento"
 
-#: builtins/common.c:200
+#: builtins/common.c:206
 #, c-format
 msgid "%s: numeric argument required"
 msgstr "%s: requer um argumento numérico"
 
-#: builtins/common.c:207
+#: builtins/common.c:213
 #, c-format
 msgid "%s: not found"
 msgstr "%s: não encontrado"
 
-#: builtins/common.c:216 shell.c:851
+#: builtins/common.c:222 shell.c:838
 #, c-format
 msgid "%s: invalid option"
 msgstr "%s: opção inválida"
 
-#: builtins/common.c:223
+#: builtins/common.c:229
 #, c-format
 msgid "%s: invalid option name"
 msgstr "%s: nome de opção inválido"
 
-#: builtins/common.c:230 execute_cmd.c:2342 general.c:294 general.c:299
+#: builtins/common.c:236 general.c:293 general.c:298
 #, c-format
 msgid "`%s': not a valid identifier"
 msgstr "\"%s\": identificador inválido"
 
-#: builtins/common.c:240
+#: builtins/common.c:246
 msgid "invalid octal number"
 msgstr "número octal inválido"
 
-#: builtins/common.c:242
+#: builtins/common.c:248
 msgid "invalid hex number"
 msgstr "número hexadecimal inválido"
 
-#: builtins/common.c:244 expr.c:1538
+#: builtins/common.c:250 expr.c:1473
 msgid "invalid number"
 msgstr "número inválido"
 
-#: builtins/common.c:252
+#: builtins/common.c:258
 #, c-format
 msgid "%s: invalid signal specification"
 msgstr "%s: especificação de sinal inválida"
 
-#: builtins/common.c:259
+#: builtins/common.c:265
 #, c-format
 msgid "`%s': not a pid or valid job spec"
 msgstr "\"%s\": especificação de pid ou tarefa inválida"
 
-#: builtins/common.c:266 error.c:510
+#: builtins/common.c:272 error.c:511
 #, c-format
 msgid "%s: readonly variable"
 msgstr "%s: variável só de leitura"
 
-#: builtins/common.c:274
+#: builtins/common.c:280
 #, c-format
 msgid "%s: %s out of range"
 msgstr "%s: %s fora do intervalo"
 
-#: builtins/common.c:274 builtins/common.c:276
+#: builtins/common.c:280 builtins/common.c:282
 msgid "argument"
 msgstr "argumento"
 
-#: builtins/common.c:276
+#: builtins/common.c:282
 #, c-format
 msgid "%s out of range"
 msgstr "%s fora do intervalo"
 
-#: builtins/common.c:284
+#: builtins/common.c:290
 #, c-format
 msgid "%s: no such job"
 msgstr "%s: tarefa inexistente"
 
-#: builtins/common.c:292
+#: builtins/common.c:298
 #, c-format
 msgid "%s: no job control"
 msgstr "%s: sem controlo da tarefa"
 
-#: builtins/common.c:294
+#: builtins/common.c:300
 msgid "no job control"
 msgstr "sem controlo da tarefa"
 
-#: builtins/common.c:304
+#: builtins/common.c:310
 #, c-format
 msgid "%s: restricted"
 msgstr "%s: restrita"
 
-#: builtins/common.c:306
+#: builtins/common.c:312
 msgid "restricted"
 msgstr "restrita"
 
-#: builtins/common.c:314
+#: builtins/common.c:320
 #, c-format
 msgid "%s: not a shell builtin"
 msgstr "%s: não é interno da consola"
 
-#: builtins/common.c:323
+#: builtins/common.c:329
 #, c-format
 msgid "write error: %s"
 msgstr "erro de escrita: %s"
 
-#: builtins/common.c:331
+#: builtins/common.c:337
 #, c-format
 msgid "error setting terminal attributes: %s"
 msgstr "erro ao definir atributos do terminal: %s"
 
-#: builtins/common.c:333
+#: builtins/common.c:339
 #, c-format
 msgid "error getting terminal attributes: %s"
 msgstr "erro ao obter atributos do terminal: %s"
 
-#: builtins/common.c:579
+#: builtins/common.c:585
 #, c-format
 msgid "%s: error retrieving current directory: %s: %s\n"
 msgstr "%s: erro ao obter a pasta actual: %s: %s\n"
 
-#: builtins/common.c:645 builtins/common.c:647
+#: builtins/common.c:651 builtins/common.c:653
 #, c-format
 msgid "%s: ambiguous job spec"
 msgstr "%s: especificação de tarefa ambígua"
 
-#: builtins/common.c:908
+#: builtins/common.c:918
 msgid "help not available in this version"
 msgstr "ajuda indisponível nesta versão"
 
@@ -311,69 +309,69 @@ msgstr "ajuda indisponível nesta versão"
 msgid "%s: invalid action name"
 msgstr "%s: nome de acção inválido"
 
-#: builtins/complete.def:452 builtins/complete.def:653
-#: builtins/complete.def:874
+#: builtins/complete.def:452 builtins/complete.def:647
+#: builtins/complete.def:858
 #, c-format
 msgid "%s: no completion specification"
 msgstr "%s: sem especificação de conclusão"
 
-#: builtins/complete.def:707
+#: builtins/complete.def:699
 msgid "warning: -F option may not work as you expect"
 msgstr "aviso: a opção -F pode não resultar como esperado"
 
-#: builtins/complete.def:709
+#: builtins/complete.def:701
 msgid "warning: -C option may not work as you expect"
 msgstr "aviso: a opção -C pode não resultar como esperado"
 
-#: builtins/complete.def:847
+#: builtins/complete.def:831
 msgid "not currently executing completion function"
 msgstr "a função de conclusão não está em execução"
 
-#: builtins/declare.def:132
+#: builtins/declare.def:127
 msgid "can only be used in a function"
 msgstr "só pode ser usado numa função"
 
-#: builtins/declare.def:369 builtins/declare.def:736
+#: builtins/declare.def:332 builtins/declare.def:685
 #, c-format
 msgid "%s: reference variable cannot be an array"
 msgstr "%s: variável de referência não pode ser uma matriz"
 
-#: builtins/declare.def:380 variables.c:3161
+#: builtins/declare.def:343 variables.c:2959
 #, c-format
 msgid "%s: nameref variable self references not allowed"
 msgstr "%s: não são permitidas auto-referências de nameref"
 
-#: builtins/declare.def:385 variables.c:2018 variables.c:3083 variables.c:3095
-#: variables.c:3158
+#: builtins/declare.def:348 variables.c:1928 variables.c:2877 variables.c:2889
+#: variables.c:2956
 #, c-format
 msgid "%s: circular name reference"
 msgstr "%s: referência circular de nome"
 
-#: builtins/declare.def:390 builtins/declare.def:742 builtins/declare.def:753
+#: builtins/declare.def:353 builtins/declare.def:691 builtins/declare.def:702
 #, c-format
 msgid "`%s': invalid variable name for name reference"
 msgstr "\"%s\": nome de variável inválido para referência de nome"
 
-#: builtins/declare.def:500
+#: builtins/declare.def:463
 msgid "cannot use `-f' to make functions"
 msgstr "impossível usar \"-f\" para fazer funções"
 
-#: builtins/declare.def:512 execute_cmd.c:5797
+#: builtins/declare.def:475 execute_cmd.c:5632
 #, c-format
 msgid "%s: readonly function"
 msgstr "%s: função só de leitura"
 
-#: builtins/declare.def:804
+#: builtins/declare.def:753
 #, c-format
 msgid "%s: quoted compound array assignment deprecated"
 msgstr "%s: atribuição de matriz composta citada obsoleta"
 
-#: builtins/declare.def:818
+#: builtins/declare.def:767
 #, c-format
 msgid "%s: cannot destroy array variables in this way"
 msgstr "%s: impossível destruir variáveis de matriz assim"
 
-#: builtins/declare.def:825 builtins/read.def:784
+#: builtins/declare.def:774 builtins/read.def:751
 #, c-format
 msgid "%s: cannot convert associative to indexed array"
 msgstr "%s: impossível converter matriz associativa em indexada"
@@ -407,68 +405,68 @@ msgstr "%s: não carregada dinamicamente"
 msgid "%s: cannot delete: %s"
 msgstr "%s: impossível eliminar: %s"
 
-#: builtins/evalfile.c:138 builtins/hash.def:184 execute_cmd.c:5629
+#: builtins/evalfile.c:144 builtins/hash.def:172 execute_cmd.c:5472
 #, c-format
 msgid "%s: is a directory"
 msgstr "%s: é uma pasta"
 
-#: builtins/evalfile.c:144
+#: builtins/evalfile.c:150
 #, c-format
 msgid "%s: not a regular file"
 msgstr "%s: não é um ficheiro normal"
 
-#: builtins/evalfile.c:153
+#: builtins/evalfile.c:159
 #, c-format
 msgid "%s: file is too large"
 msgstr "%s: ficheiro muito grande"
 
-#: builtins/evalfile.c:188 builtins/evalfile.c:206 shell.c:1623
+#: builtins/evalfile.c:194 builtins/evalfile.c:212 shell.c:1578
 #, c-format
 msgid "%s: cannot execute binary file"
 msgstr "%s: impossível executar o binário"
 
-#: builtins/exec.def:155 builtins/exec.def:157 builtins/exec.def:237
+#: builtins/exec.def:156 builtins/exec.def:158 builtins/exec.def:235
 #, c-format
 msgid "%s: cannot execute: %s"
 msgstr "%s: impossível executar: %s"
 
-#: builtins/exit.def:64
+#: builtins/exit.def:67
 #, c-format
 msgid "logout\n"
 msgstr "logout\n"
 
-#: builtins/exit.def:89
+#: builtins/exit.def:92
 msgid "not login shell: use `exit'"
 msgstr "não é consola de sessão: use \"exit\""
 
-#: builtins/exit.def:121
+#: builtins/exit.def:124
 #, c-format
 msgid "There are stopped jobs.\n"
 msgstr "Há tarefas interrompidas.\n"
 
-#: builtins/exit.def:123
+#: builtins/exit.def:126
 #, c-format
 msgid "There are running jobs.\n"
 msgstr "Há tarefas em curso.\n"
 
-#: builtins/fc.def:265
+#: builtins/fc.def:269
 msgid "no command found"
 msgstr "sem comando encontrado"
 
-#: builtins/fc.def:323 builtins/fc.def:372
+#: builtins/fc.def:327 builtins/fc.def:376
 msgid "history specification"
 msgstr "especificação de histórico"
 
-#: builtins/fc.def:393
+#: builtins/fc.def:397
 #, c-format
 msgid "%s: cannot open temp file: %s"
 msgstr "%s: impossível abrir ficheiro temporário: %s"
 
-#: builtins/fg_bg.def:152 builtins/jobs.def:284
+#: builtins/fg_bg.def:153 builtins/jobs.def:284
 msgid "current"
 msgstr "actual"
 
-#: builtins/fg_bg.def:161
+#: builtins/fg_bg.def:162
 #, c-format
 msgid "job %d started without job control"
 msgstr "tarefa %d começou sem controlo de tarefa"
@@ -483,40 +481,38 @@ msgstr "%s: opção ilegal -- %c\n"
 msgid "%s: option requires an argument -- %c\n"
 msgstr "%s: a opção requer um argumento -- %c\n"
 
-#: builtins/hash.def:91
+#: builtins/hash.def:92
 msgid "hashing disabled"
 msgstr "hashing desactivado"
 
-#: builtins/hash.def:138
+#: builtins/hash.def:139
 #, c-format
 msgid "%s: hash table empty\n"
 msgstr "%s: tabela de hash vazia\n"
 
-#: builtins/hash.def:266
+#: builtins/hash.def:254
 #, c-format
 msgid "hits\tcommand\n"
 msgstr "sucessos\tcomando\n"
 
-#: builtins/help.def:133
+#: builtins/help.def:135
+#, c-format
 msgid "Shell commands matching keyword `"
 msgid_plural "Shell commands matching keywords `"
 msgstr[0] "Comandos de consola correspondentes à palavra-chave \""
 msgstr[1] "Comandos de consola correspondentes a palavras-chave \""
 
-#: builtins/help.def:185
+#: builtins/help.def:187
 #, c-format
-msgid ""
-"no help topics match `%s'.  Try `help help' or `man -k %s' or `info %s'."
-msgstr ""
-"nenhum tópico de ajuda para \"%s\".  Tente \"help help\", \"man -k %s\" ou "
-"\"info %s\"."
+msgid "no help topics match `%s'.  Try `help help' or `man -k %s' or `info %s'."
+msgstr "nenhum tópico de ajuda para \"%s\".  Tente \"help help\", \"man -k %s\" ou \"info %s\"."
 
-#: builtins/help.def:224
+#: builtins/help.def:226
 #, c-format
 msgid "%s: cannot open: %s"
 msgstr "%s: impossível abrir: %s"
 
-#: builtins/help.def:524
+#: builtins/help.def:526
 #, c-format
 msgid ""
 "These shell commands are defined internally.  Type `help' to see this list.\n"
@@ -527,8 +523,7 @@ msgid ""
 "A star (*) next to a name means that the command is disabled.\n"
 "\n"
 msgstr ""
-"Estes comandos de consola são definidos internamente. Insira \"help\" para "
-"ver a lista.\n"
+"Estes comandos de consola são definidos internamente. Insira \"help\" para ver a lista.\n"
 "Insira \"help nome\" para saber mais sobre a função \"nome\".\n"
 "Use \"info bash\" para saber mais sobre a consola em geral.\n"
 "Use \"man -k ou \"info\" para saber mais sobre comandos não listados.\n"
@@ -536,21 +531,20 @@ msgstr ""
 "Um asterisco (*) junto a um nome significa que o comando está inactivo.\n"
 "\n"
 
-#: builtins/history.def:154
+#: builtins/history.def:155
 msgid "cannot use more than one of -anrw"
 msgstr "impossível usar mais de um -anrw"
 
-#: builtins/history.def:187 builtins/history.def:197 builtins/history.def:212
-#: builtins/history.def:229 builtins/history.def:241 builtins/history.def:248
+#: builtins/history.def:187
 msgid "history position"
 msgstr "posição do histórico"
 
-#: builtins/history.def:331
+#: builtins/history.def:264
 #, c-format
 msgid "%s: invalid timestamp"
 msgstr "%s: carimbo inválido"
 
-#: builtins/history.def:442
+#: builtins/history.def:375
 #, c-format
 msgid "%s: history expansion failed"
 msgstr "%s: falha na expansão do histórico"
@@ -564,16 +558,16 @@ msgstr "%s: falha inlib"
 msgid "no other options allowed with `-x'"
 msgstr "não são permitidas mais opções com \"-x\""
 
-#: builtins/kill.def:200
+#: builtins/kill.def:202
 #, c-format
 msgid "%s: arguments must be process or job IDs"
 msgstr "%s: os argumentos têm de ser IDs de processos ou tarefas"
 
-#: builtins/kill.def:263
+#: builtins/kill.def:265
 msgid "Unknown error"
 msgstr "Erro desconhecido"
 
-#: builtins/let.def:97 builtins/let.def:122 expr.c:614 expr.c:632
+#: builtins/let.def:97 builtins/let.def:122 expr.c:583 expr.c:598
 msgid "expression expected"
 msgstr "esperada expressão"
 
@@ -582,69 +576,69 @@ msgstr "esperada expressão"
 msgid "%s: not an indexed array"
 msgstr "%s: não é uma matriz indexada"
 
-#: builtins/mapfile.def:271 builtins/read.def:305
+#: builtins/mapfile.def:272 builtins/read.def:306
 #, c-format
 msgid "%s: invalid file descriptor specification"
 msgstr "%s: especificação de descritor de ficheiro inválida"
 
-#: builtins/mapfile.def:279 builtins/read.def:312
+#: builtins/mapfile.def:280 builtins/read.def:313
 #, c-format
 msgid "%d: invalid file descriptor: %s"
 msgstr "%d: descritor de ficheiro inválido: %s"
 
-#: builtins/mapfile.def:288 builtins/mapfile.def:326
+#: builtins/mapfile.def:289 builtins/mapfile.def:327
 #, c-format
 msgid "%s: invalid line count"
 msgstr "%s: total de linhas inválido"
 
-#: builtins/mapfile.def:299
+#: builtins/mapfile.def:300
 #, c-format
 msgid "%s: invalid array origin"
 msgstr "%s: origem de matriz inválida"
 
-#: builtins/mapfile.def:316
+#: builtins/mapfile.def:317
 #, c-format
 msgid "%s: invalid callback quantum"
 msgstr "%s: callback inválida"
 
-#: builtins/mapfile.def:349
+#: builtins/mapfile.def:350
 msgid "empty array variable name"
 msgstr "nome de variável de matriz vazio"
 
-#: builtins/mapfile.def:370
+#: builtins/mapfile.def:371
 msgid "array variable support required"
 msgstr "requerido suporte a variáveis de matriz"
 
-#: builtins/printf.def:416
+#: builtins/printf.def:412
 #, c-format
 msgid "`%s': missing format character"
 msgstr "%s: carácter de formato em falta"
 
-#: builtins/printf.def:471
+#: builtins/printf.def:467
 #, c-format
 msgid "`%c': invalid time format specification"
 msgstr "\"%c\": especificação de formato de hora inválida"
 
-#: builtins/printf.def:673
+#: builtins/printf.def:669
 #, c-format
 msgid "`%c': invalid format character"
 msgstr "\"%c\": carácter de formato inválido"
 
-#: builtins/printf.def:699
+#: builtins/printf.def:695
 #, c-format
 msgid "warning: %s: %s"
 msgstr "aviso: %s: %s"
 
-#: builtins/printf.def:785
+#: builtins/printf.def:781
 #, c-format
 msgid "format parsing problem: %s"
 msgstr "problema de análise de formato: %s"
 
-#: builtins/printf.def:882
+#: builtins/printf.def:878
 msgid "missing hex digit for \\x"
 msgstr "dígito hex em falta para \\x"
 
-#: builtins/printf.def:897
+#: builtins/printf.def:893
 #, c-format
 msgid "missing unicode digit for \\%c"
 msgstr "dígito unicode em falta para \\%c"
@@ -658,19 +652,19 @@ msgstr "nenhuma outra pasta"
 msgid "%s: invalid argument"
 msgstr "%s: argumento inválido"
 
-#: builtins/pushd.def:480
+#: builtins/pushd.def:475
 msgid "<no current directory>"
 msgstr "<sem pasta actual>"
 
-#: builtins/pushd.def:524
+#: builtins/pushd.def:519
 msgid "directory stack empty"
 msgstr "pilha de pastas vazia"
 
-#: builtins/pushd.def:526
+#: builtins/pushd.def:521
 msgid "directory stack index"
 msgstr "índice da pilha de pastas"
 
-#: builtins/pushd.def:701
+#: builtins/pushd.def:696
 msgid ""
 "Display the list of currently remembered directories.  Directories\n"
 "    find their way onto the list with the `pushd' command; you can get\n"
@@ -685,12 +679,10 @@ msgid ""
 "    \twith its position in the stack\n"
 "    \n"
 "    Arguments:\n"
-"      +N\tDisplays the Nth entry counting from the left of the list shown "
-"by\n"
+"      +N\tDisplays the Nth entry counting from the left of the list shown by\n"
 "    \tdirs when invoked without options, starting with zero.\n"
 "    \n"
-"      -N\tDisplays the Nth entry counting from the right of the list shown "
-"by\n"
+"      -N\tDisplays the Nth entry counting from the right of the list shown by\n"
 "\tdirs when invoked without options, starting with zero."
 msgstr ""
 "Mostrar a lista de pastas actualmente lembradas.  As pastas\n"
@@ -712,7 +704,7 @@ msgstr ""
 "      -N\tmostra a N entrada a contar da direita da lista mostrada por\n"
 "    \tpastas quando chamada sem opções, começando com zero."
 
-#: builtins/pushd.def:723
+#: builtins/pushd.def:718
 msgid ""
 "Adds a directory to the top of the directory stack, or rotates\n"
 "    the stack, making the new top of the stack the current working\n"
@@ -758,7 +750,7 @@ msgstr ""
 "    \n"
 "    O \"dirs\" interno mostra a pilha de pastas."
 
-#: builtins/pushd.def:748
+#: builtins/pushd.def:743
 msgid ""
 "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"
@@ -796,45 +788,45 @@ msgstr ""
 "    \n"
 "    O \"dirs\" interno mostra a pilha de pastas."
 
-#: builtins/read.def:277
+#: builtins/read.def:279
 #, c-format
 msgid "%s: invalid timeout specification"
 msgstr "%s: especificação de inacção inválida"
 
-#: builtins/read.def:729
+#: builtins/read.def:696
 #, c-format
 msgid "read error: %d: %s"
 msgstr "erro de leitura: %d: %s"
 
-#: builtins/return.def:68
+#: builtins/return.def:71
 msgid "can only `return' from a function or sourced script"
 msgstr "só pode usar \"return\" a partir de uma função ou script baseado"
 
-#: builtins/set.def:834
+#: builtins/set.def:841
 msgid "cannot simultaneously unset a function and a variable"
 msgstr "impossível desactivar simultaneamente uma função e uma variável"
 
-#: builtins/set.def:881
+#: builtins/set.def:888
 #, c-format
 msgid "%s: cannot unset"
 msgstr "%s: impossível desactivar"
 
-#: builtins/set.def:902 variables.c:3597
+#: builtins/set.def:909 variables.c:3389
 #, c-format
 msgid "%s: cannot unset: readonly %s"
 msgstr "%s: impossível desactivar: %s só de leitura"
 
-#: builtins/set.def:915
+#: builtins/set.def:922
 #, c-format
 msgid "%s: not an array variable"
 msgstr "%s: não é variável de matriz"
 
-#: builtins/setattr.def:189
+#: builtins/setattr.def:191
 #, c-format
 msgid "%s: not a function"
 msgstr "%s: não é função"
 
-#: builtins/setattr.def:194
+#: builtins/setattr.def:196
 #, c-format
 msgid "%s: cannot export"
 msgstr "%s: impossível exportar"
@@ -843,20 +835,20 @@ msgstr "%s: impossível exportar"
 msgid "shift count"
 msgstr "total de trocas"
 
-#: builtins/shopt.def:301
+#: builtins/shopt.def:289
 msgid "cannot set and unset shell options simultaneously"
 msgstr "impossível definir e desactivar opções da consola em simultâneo"
 
-#: builtins/shopt.def:403
+#: builtins/shopt.def:391
 #, c-format
 msgid "%s: invalid shell option name"
 msgstr "%s: nome de opção da consola inválido"
 
-#: builtins/source.def:128
+#: builtins/source.def:131
 msgid "filename argument required"
 msgstr "requerido argumento de nome de ficheiro"
 
-#: builtins/source.def:154
+#: builtins/source.def:157
 #, c-format
 msgid "%s: file not found"
 msgstr "%s: ficheiro não encontrado"
@@ -869,61 +861,61 @@ msgstr "impossível suspender"
 msgid "cannot suspend a login shell"
 msgstr "impossível suspender uma consola de sessão"
 
-#: builtins/type.def:235
+#: builtins/type.def:236
 #, c-format
 msgid "%s is aliased to `%s'\n"
 msgstr "%s usa o aliás \"%s\"\n"
 
-#: builtins/type.def:256
+#: builtins/type.def:257
 #, c-format
 msgid "%s is a shell keyword\n"
 msgstr "%s é palavra-chave da consola\n"
 
-#: builtins/type.def:275
+#: builtins/type.def:276
 #, c-format
 msgid "%s is a function\n"
 msgstr "%s é uma função\n"
 
-#: builtins/type.def:299
+#: builtins/type.def:300
 #, c-format
 msgid "%s is a special shell builtin\n"
 msgstr "%s é opção interna especial da consola\n"
 
-#: builtins/type.def:301
+#: builtins/type.def:302
 #, c-format
 msgid "%s is a shell builtin\n"
 msgstr "%s é opção interna da consola\n"
 
-#: builtins/type.def:323 builtins/type.def:408
+#: builtins/type.def:324 builtins/type.def:409
 #, c-format
 msgid "%s is %s\n"
 msgstr "%s é %s\n"
 
-#: builtins/type.def:343
+#: builtins/type.def:344
 #, c-format
 msgid "%s is hashed (%s)\n"
 msgstr "%s tem hash (%s)\n"
 
-#: builtins/ulimit.def:396
+#: builtins/ulimit.def:398
 #, c-format
 msgid "%s: invalid limit argument"
 msgstr "%s: argumento de limite inválido"
 
-#: builtins/ulimit.def:422
+#: builtins/ulimit.def:424
 #, c-format
 msgid "`%c': bad command"
 msgstr "\"%c\": comando errado"
 
-#: builtins/ulimit.def:451
+#: builtins/ulimit.def:453
 #, c-format
 msgid "%s: cannot get limit: %s"
 msgstr "%s: impossível obter limite: %s"
 
-#: builtins/ulimit.def:477
+#: builtins/ulimit.def:479
 msgid "limit"
 msgstr "limite"
 
-#: builtins/ulimit.def:489 builtins/ulimit.def:789
+#: builtins/ulimit.def:491 builtins/ulimit.def:791
 #, c-format
 msgid "%s: cannot modify limit: %s"
 msgstr "%s: impossível modificar limite: %s"
@@ -942,208 +934,202 @@ msgstr "\"%c\": operador de modo simbólico inválido"
 msgid "`%c': invalid symbolic mode character"
 msgstr "\"%c\": carácter de modo simbólico inválido"
 
-#: error.c:89 error.c:347 error.c:349 error.c:351
+#: error.c:90 error.c:348 error.c:350 error.c:352
 msgid " line "
 msgstr " linha "
 
-#: error.c:164
+#: error.c:165
 #, c-format
 msgid "last command: %s\n"
 msgstr "último comando: %s\n"
 
-#: error.c:172
+#: error.c:173
 #, c-format
 msgid "Aborting..."
 msgstr "A abortar..."
 
 #. TRANSLATORS: this is a prefix for informational messages.
-#: error.c:287
+#: error.c:288
 #, c-format
 msgid "INFORM: "
 msgstr "INFORM.: "
 
-#: error.c:462
+#: error.c:463
 msgid "unknown command error"
 msgstr "erro de comando desconhecido"
 
-#: error.c:463
+#: error.c:464
 msgid "bad command type"
 msgstr "tipo de comando errado"
 
-#: error.c:464
+#: error.c:465
 msgid "bad connector"
 msgstr "conector errado"
 
-#: error.c:465
+#: error.c:466
 msgid "bad jump"
 msgstr "salto errado"
 
-#: error.c:503
+#: error.c:504
 #, c-format
 msgid "%s: unbound variable"
 msgstr "%s: variável desassociada"
 
-#: eval.c:242
+#: eval.c:209
 #, c-format
 msgid "\atimed out waiting for input: auto-logout\n"
 msgstr "\aDemasiada inacção à espera de entrada: sessão terminada\n"
 
-#: execute_cmd.c:536
+#: execute_cmd.c:527
 #, c-format
 msgid "cannot redirect standard input from /dev/null: %s"
 msgstr "impossível redireccionar entrada padrão de /dev/null: %s"
 
-#: execute_cmd.c:1294
+#: execute_cmd.c:1275
 #, c-format
 msgid "TIMEFORMAT: `%c': invalid format character"
 msgstr "FORMATOHORA: \"%c\": carácter de formato inválido"
 
-#: execute_cmd.c:2330
+#: execute_cmd.c:2273
 #, c-format
 msgid "execute_coproc: coproc [%d:%s] still exists"
 msgstr "execute_coproc: coproc [%d:%s] ainda existe"
 
-#: execute_cmd.c:2456
+#: execute_cmd.c:2377
 msgid "pipe error"
 msgstr "erro de pipe"
 
-#: execute_cmd.c:4624
+#: execute_cmd.c:4496
 #, c-format
 msgid "eval: maximum eval nesting level exceeded (%d)"
 msgstr "eval: nível máximo de aninhamento de eval excedido (%d)"
 
-#: execute_cmd.c:4636
+#: execute_cmd.c:4508
 #, c-format
 msgid "%s: maximum source nesting level exceeded (%d)"
 msgstr "%s: nível máximo de aninhamento de fonte excedido (%d)"
 
-#: execute_cmd.c:4742
+#: execute_cmd.c:4616
 #, c-format
 msgid "%s: maximum function nesting level exceeded (%d)"
 msgstr "%s: nível máximo de aninhamento de função excedido (%d)"
 
-#: execute_cmd.c:5285
+#: execute_cmd.c:5144
 #, c-format
 msgid "%s: restricted: cannot specify `/' in command names"
 msgstr "%s: restrito: impossível especificar \"/\" em nomes de comando"
 
-#: execute_cmd.c:5383
+#: execute_cmd.c:5232
 #, c-format
 msgid "%s: command not found"
 msgstr "%s: comando não encontrado"
 
-#: execute_cmd.c:5627
+#: execute_cmd.c:5470
 #, c-format
 msgid "%s: %s"
 msgstr "%s: %s"
 
-#: execute_cmd.c:5665
+#: execute_cmd.c:5508
 #, c-format
 msgid "%s: %s: bad interpreter"
 msgstr "%s: %s: interpretador errado"
 
-#: execute_cmd.c:5702
+#: execute_cmd.c:5545
 #, c-format
 msgid "%s: cannot execute binary file: %s"
 msgstr "%s: impossível executar binário: %s"
 
-#: execute_cmd.c:5788
+#: execute_cmd.c:5623
 #, c-format
 msgid "`%s': is a special builtin"
 msgstr "%s: é uma opção interna especial"
 
-#: execute_cmd.c:5840
+#: execute_cmd.c:5675
 #, c-format
 msgid "cannot duplicate fd %d to fd %d"
 msgstr "impossível duplicar fd %d para fd %d"
 
-#: expr.c:263
+#: expr.c:259
 msgid "expression recursion level exceeded"
 msgstr "nível de recursão da expressão excedido"
 
-#: expr.c:291
+#: expr.c:283
 msgid "recursion stack underflow"
 msgstr "sub-fluxo da pilha de recursividade"
 
-#: expr.c:453
+#: expr.c:431
 msgid "syntax error in expression"
 msgstr "erro de sintaxe na expressão"
 
-#: expr.c:497
+#: expr.c:475
 msgid "attempted assignment to non-variable"
 msgstr "tentativa de atribuição a não-variável"
 
-#: expr.c:506
-#, fuzzy
-msgid "syntax error in variable assignment"
-msgstr "erro de sintaxe na expressão"
-
-#: expr.c:520 expr.c:886
+#: expr.c:495 expr.c:858
 msgid "division by 0"
 msgstr "divisão por 0"
 
-#: expr.c:567
+#: expr.c:542
 msgid "bug: bad expassign token"
 msgstr "problema: símbolo expassign errado"
 
-#: expr.c:621
+#: expr.c:595
 msgid "`:' expected for conditional expression"
 msgstr "\":\" esperados para expressão condicional"
 
-#: expr.c:947
+#: expr.c:919
 msgid "exponent less than 0"
 msgstr "expoente menor que 0"
 
-#: expr.c:1004
+#: expr.c:976
 msgid "identifier expected after pre-increment or pre-decrement"
 msgstr "identificador esperado após pré-incremento ou pré-decremento"
 
-#: expr.c:1030
+#: expr.c:1002
 msgid "missing `)'"
 msgstr "\")\" em falta"
 
-#: expr.c:1081 expr.c:1458
+#: expr.c:1053 expr.c:1393
 msgid "syntax error: operand expected"
 msgstr "erro de sintaxe: operando esperado"
 
-#: expr.c:1460
+#: expr.c:1395
 msgid "syntax error: invalid arithmetic operator"
 msgstr "erro de sintaxe: operador aritmético inválido"
 
-#: expr.c:1484
+#: expr.c:1419
 #, c-format
 msgid "%s%s%s: %s (error token is \"%s\")"
 msgstr "%s%s%s: %s (símbolo de erro é \"%s\")"
 
-#: expr.c:1542
+#: expr.c:1477
 msgid "invalid arithmetic base"
 msgstr "base aritmética inválida"
 
-#: expr.c:1562
+#: expr.c:1497
 msgid "value too great for base"
 msgstr "valor muito grande para a base"
 
-#: expr.c:1611
+#: expr.c:1546
 #, c-format
 msgid "%s: expression error\n"
 msgstr "%s: erro de expressão\n"
 
-#: general.c:69
+#: general.c:68
 msgid "getcwd: cannot access parent directories"
 msgstr "getcwd: impossível aceder a pastas-mãe"
 
-#: input.c:99 subst.c:5858
+#: input.c:102 subst.c:5858
 #, c-format
 msgid "cannot reset nodelay mode for fd %d"
 msgstr "impossível repor modo nodelay para fd %d"
 
-#: input.c:266
+#: input.c:271
 #, c-format
 msgid "cannot allocate new file descriptor for bash input from fd %d"
-msgstr ""
-"impossível alocar novo descritor de ficheiro para entrada bash de fd %d"
+msgstr "impossível alocar novo descritor de ficheiro para entrada bash de fd %d"
 
-#: input.c:274
+#: input.c:279
 #, c-format
 msgid "save_bash_input: buffer already exists for new fd %d"
 msgstr "save_bash_input: buffer já existe para o novo fd %d"
@@ -1152,158 +1138,153 @@ msgstr "save_bash_input: buffer já existe para o novo fd %d"
 msgid "start_pipeline: pgrp pipe"
 msgstr "start_pipeline: pipe pgrp"
 
-#: jobs.c:1080
+#: jobs.c:1035
 #, c-format
 msgid "forked pid %d appears in running job %d"
 msgstr "pid %d aparece em tarefa em execução %d"
 
-#: jobs.c:1199
+#: jobs.c:1154
 #, c-format
 msgid "deleting stopped job %d with process group %ld"
 msgstr "a eliminar tarefa interrompida %d com grupo de processo %ld"
 
-#: jobs.c:1303
+#: jobs.c:1258
 #, c-format
 msgid "add_process: process %5ld (%s) in the_pipeline"
 msgstr "add_process: processo %5ld (%s) na _pipeline"
 
-#: jobs.c:1306
+#: jobs.c:1261
 #, c-format
 msgid "add_process: pid %5ld (%s) marked as still alive"
 msgstr "add_process: pid %5ld (%s) marcado como ainda activo"
 
-#: jobs.c:1635
+#: jobs.c:1590
 #, c-format
 msgid "describe_pid: %ld: no such pid"
 msgstr "describe_pid: %ld: pid não existente"
 
-#: jobs.c:1650
+#: jobs.c:1605
 #, c-format
 msgid "Signal %d"
 msgstr "Sinal %d"
 
-#: jobs.c:1664 jobs.c:1690
+#: jobs.c:1619 jobs.c:1645
 msgid "Done"
 msgstr "Feito"
 
-#: jobs.c:1669 siglist.c:123
+#: jobs.c:1624 siglist.c:123
 msgid "Stopped"
 msgstr "Interrompido"
 
-#: jobs.c:1673
+#: jobs.c:1628
 #, c-format
 msgid "Stopped(%s)"
 msgstr "Interrompido(%s)"
 
-#: jobs.c:1677
+#: jobs.c:1632
 msgid "Running"
 msgstr "Em execução"
 
-#: jobs.c:1694
+#: jobs.c:1649
 #, c-format
 msgid "Done(%d)"
 msgstr "Feito(%d)"
 
-#: jobs.c:1696
+#: jobs.c:1651
 #, c-format
 msgid "Exit %d"
 msgstr "Sair de %d"
 
-#: jobs.c:1699
+#: jobs.c:1654
 msgid "Unknown status"
 msgstr "Estado desconhecido"
 
-#: jobs.c:1786
+#: jobs.c:1741
 #, c-format
 msgid "(core dumped) "
 msgstr "(núcleo despejado) "
 
-#: jobs.c:1805
+#: jobs.c:1760
 #, c-format
 msgid "  (wd: %s)"
 msgstr "  (wd: %s)"
 
-#: jobs.c:2033
+#: jobs.c:1985
 #, c-format
 msgid "child setpgid (%ld to %ld)"
 msgstr "setpgid filho (%ld para %ld)"
 
-#: jobs.c:2395 nojobs.c:657
+#: jobs.c:2347 nojobs.c:654
 #, c-format
 msgid "wait: pid %ld is not a child of this shell"
 msgstr "wait: pid %ld não é um filho desta consola"
 
-#: jobs.c:2687
+#: jobs.c:2602
 #, c-format
 msgid "wait_for: No record of process %ld"
 msgstr "wait_for: sem registo do processo %ld"
 
-#: jobs.c:3048
+#: jobs.c:2929
 #, c-format
 msgid "wait_for_job: job %d is stopped"
 msgstr "wait_for_tarefa: tarefa %d está interrompida"
 
-#: jobs.c:3355
+#: jobs.c:3221
 #, c-format
 msgid "%s: job has terminated"
 msgstr "%s: tarefa terminada"
 
-#: jobs.c:3364
+#: jobs.c:3230
 #, c-format
 msgid "%s: job %d already in background"
 msgstr "%s: tarefa %d já em 2º plano"
 
-#: jobs.c:3590
+#: jobs.c:3455
 msgid "waitchld: turning on WNOHANG to avoid indefinite block"
 msgstr "waitchld: a ligar WNOHANG para evitar bloquieo indefinido"
 
-#: jobs.c:4114
+#: jobs.c:3970
 #, c-format
 msgid "%s: line %d: "
 msgstr "%s: linha %d: "
 
-#: jobs.c:4128 nojobs.c:900
+#: jobs.c:3984 nojobs.c:897
 #, c-format
 msgid " (core dumped)"
 msgstr " (núcleo despejado)"
 
-#: jobs.c:4140 jobs.c:4153
+#: jobs.c:3996 jobs.c:4009
 #, c-format
 msgid "(wd now: %s)\n"
 msgstr "(wd agora: %s)\n"
 
-#: jobs.c:4185
+#: jobs.c:4041
 msgid "initialize_job_control: getpgrp failed"
 msgstr "initialize_tarefa_control: getpgrp falhou"
 
-#: jobs.c:4241
-#, fuzzy
-msgid "initialize_job_control: no job control in background"
-msgstr "initialize_tarefa_control: disciplina de linha"
-
-#: jobs.c:4257
+#: jobs.c:4104
 msgid "initialize_job_control: line discipline"
 msgstr "initialize_tarefa_control: disciplina de linha"
 
-#: jobs.c:4267
+#: jobs.c:4114
 msgid "initialize_job_control: setpgid"
 msgstr "initialize_tarefa_control: setpgid"
 
-#: jobs.c:4288 jobs.c:4297
+#: jobs.c:4135 jobs.c:4144
 #, c-format
 msgid "cannot set terminal process group (%d)"
 msgstr "impossível definir grupo de processo do terminal (%d)"
 
-#: jobs.c:4302
+#: jobs.c:4149
 msgid "no job control in this shell"
 msgstr "não há controlo de tarefa nesta consola"
 
-#: lib/malloc/malloc.c:306
+#: lib/malloc/malloc.c:296
 #, c-format
 msgid "malloc: failed assertion: %s\n"
 msgstr "malloc: asserção falhada: %s\n"
 
-#: lib/malloc/malloc.c:322
+#: lib/malloc/malloc.c:312
 #, c-format
 msgid ""
 "\r\n"
@@ -1312,39 +1293,39 @@ msgstr ""
 "\r\n"
 "malloc: %s:%d: asserção frustrada\r\n"
 
-#: lib/malloc/malloc.c:323
+#: lib/malloc/malloc.c:313
 msgid "unknown"
 msgstr "desconhecido"
 
-#: lib/malloc/malloc.c:811
+#: lib/malloc/malloc.c:801
 msgid "malloc: block on free list clobbered"
 msgstr "malloc: bloqueio na lista livre clobbered"
 
-#: lib/malloc/malloc.c:888
+#: lib/malloc/malloc.c:878
 msgid "free: called with already freed block argument"
 msgstr "free: chamado com argumento de bloco já liberto"
 
-#: lib/malloc/malloc.c:891
+#: lib/malloc/malloc.c:881
 msgid "free: called with unallocated block argument"
 msgstr "free: chamado com argumento de bloco não alocado"
 
-#: lib/malloc/malloc.c:910
+#: lib/malloc/malloc.c:900
 msgid "free: underflow detected; mh_nbytes out of range"
 msgstr "free: sub-fluxo detectado; mh_nbytes fora do intervalo"
 
-#: lib/malloc/malloc.c:916
+#: lib/malloc/malloc.c:906
 msgid "free: start and end chunk sizes differ"
 msgstr "free: tamanho dos pontos inicial e final difere"
 
-#: lib/malloc/malloc.c:1015
+#: lib/malloc/malloc.c:1005
 msgid "realloc: called with unallocated block argument"
 msgstr "realloc: chamado com argumento de bloco não alocado"
 
-#: lib/malloc/malloc.c:1030
+#: lib/malloc/malloc.c:1020
 msgid "realloc: underflow detected; mh_nbytes out of range"
 msgstr "realloc: sub-fluxo detectado; mh_nbytes fora do intervalo"
 
-#: lib/malloc/malloc.c:1036
+#: lib/malloc/malloc.c:1026
 msgid "realloc: start and end chunk sizes differ"
 msgstr "realloc: tamanho dos pontos inicial e final difere"
 
@@ -1386,22 +1367,22 @@ msgstr "%s: especificação de caminho de rede errada"
 msgid "network operations not supported"
 msgstr "operações de rede não suportadas"
 
-#: locale.c:205
+#: locale.c:200
 #, c-format
 msgid "setlocale: LC_ALL: cannot change locale (%s)"
 msgstr "setlocale: LC_ALL: não pode alterar o idioma (%s)"
 
-#: locale.c:207
+#: locale.c:202
 #, c-format
 msgid "setlocale: LC_ALL: cannot change locale (%s): %s"
 msgstr "setlocale: LC_ALL: não pode alterar o idioma (%s): %s"
 
-#: locale.c:272
+#: locale.c:259
 #, c-format
 msgid "setlocale: %s: cannot change locale (%s)"
 msgstr "setlocale: %s: não pode alterar o idioma (%s)"
 
-#: locale.c:274
+#: locale.c:261
 #, c-format
 msgid "setlocale: %s: cannot change locale (%s): %s"
 msgstr "setlocale: %s: não pode alterar o idioma (%s): %s"
@@ -1419,151 +1400,145 @@ msgstr "Tem novo correio em $_"
 msgid "The mail in %s has been read\n"
 msgstr "O correio em %s já foi lido\n"
 
-#: make_cmd.c:317
+#: make_cmd.c:329
 msgid "syntax error: arithmetic expression required"
 msgstr "erro de sintaxe: requerida expressão aritmética"
 
-#: make_cmd.c:319
+#: make_cmd.c:331
 msgid "syntax error: `;' unexpected"
 msgstr "erro de sintaxe: \";\" inesperado"
 
-#: make_cmd.c:320
+#: make_cmd.c:332
 #, c-format
 msgid "syntax error: `((%s))'"
 msgstr "erro de sintaxe: \"((%s))\""
 
-#: make_cmd.c:572
+#: make_cmd.c:584
 #, c-format
 msgid "make_here_document: bad instruction type %d"
 msgstr "make_here_document: tipo de instrução %d errado"
 
-#: make_cmd.c:657
+#: make_cmd.c:669
 #, c-format
 msgid "here-document at line %d delimited by end-of-file (wanted `%s')"
-msgstr ""
-"here-document na linha %d delimitado por fim-de-ficheiro (desejado \"%s\")"
+msgstr "here-document na linha %d delimitado por fim-de-ficheiro (desejado \"%s\")"
 
-#: make_cmd.c:756
+#: make_cmd.c:768
 #, c-format
 msgid "make_redirection: redirection instruction `%d' out of range"
-msgstr ""
-"make_redirection: instrução de redireccionamento \"%d\" fora do intervalo"
+msgstr "make_redirection: instrução de redireccionamento \"%d\" fora do intervalo"
 
-#: parse.y:2369
+#: parse.y:2324
 #, c-format
-msgid ""
-"shell_getc: shell_input_line_size (%zu) exceeds SIZE_MAX (%lu): line "
-"truncated"
-msgstr ""
-"consola_getc: consola_input_line_size (%zu) excede SIZE_MAX (%lu): linha "
-"truncada"
+msgid "shell_getc: shell_input_line_size (%zu) exceeds SIZE_MAX (%lu): line truncated"
+msgstr "consola_getc: consola_input_line_size (%zu) excede SIZE_MAX (%lu): linha truncada"
 
-#: parse.y:2772
+#: parse.y:2700
 msgid "maximum here-document count exceeded"
 msgstr "total here-document máximo excedido"
 
-#: parse.y:3511 parse.y:3881
+#: parse.y:3390 parse.y:3748
 #, c-format
 msgid "unexpected EOF while looking for matching `%c'"
 msgstr "EOF inesperado ao procurar \"%c\" correspondentes"
 
-#: parse.y:4581
+#: parse.y:4410
 msgid "unexpected EOF while looking for `]]'"
 msgstr "EOF inesperado ao procurar \"]]\""
 
-#: parse.y:4586
+#: parse.y:4415
 #, c-format
 msgid "syntax error in conditional expression: unexpected token `%s'"
 msgstr "erro de sintaxe em expressão condicional: símbolo inesperado \"%s\""
 
-#: parse.y:4590
+#: parse.y:4419
 msgid "syntax error in conditional expression"
 msgstr "erro de sintaxe em expressão condicional"
 
-#: parse.y:4668
+#: parse.y:4497
 #, c-format
 msgid "unexpected token `%s', expected `)'"
 msgstr "símbolo inesperado \"%s\", esperado \")\""
 
-#: parse.y:4672
+#: parse.y:4501
 msgid "expected `)'"
 msgstr "esperado \")\""
 
-#: parse.y:4700
+#: parse.y:4529
 #, c-format
 msgid "unexpected argument `%s' to conditional unary operator"
 msgstr "argumento \"%s\" inesperado para operador unário condicional"
 
-#: parse.y:4704
+#: parse.y:4533
 msgid "unexpected argument to conditional unary operator"
 msgstr "argumento inesperado para operador unário condicional"
 
-#: parse.y:4750
+#: parse.y:4579
 #, c-format
 msgid "unexpected token `%s', conditional binary operator expected"
 msgstr "símbolo \"%s\" inesperado, esperado operador binário condicional"
 
-#: parse.y:4754
+#: parse.y:4583
 msgid "conditional binary operator expected"
 msgstr "esperado operador binário condicional"
 
-#: parse.y:4776
+#: parse.y:4605
 #, c-format
 msgid "unexpected argument `%s' to conditional binary operator"
 msgstr "argumento \"%s\" inesperado para operador binário condicional"
 
-#: parse.y:4780
+#: parse.y:4609
 msgid "unexpected argument to conditional binary operator"
 msgstr "argumento inesperado para operador binário condicional"
 
-#: parse.y:4791
+#: parse.y:4620
 #, c-format
 msgid "unexpected token `%c' in conditional command"
 msgstr "símbolo \"%c\" inesperado em comando condicional"
 
-#: parse.y:4794
+#: parse.y:4623
 #, c-format
 msgid "unexpected token `%s' in conditional command"
 msgstr "símbolo \"%s\" inesperado em comando condicional"
 
-#: parse.y:4798
+#: parse.y:4627
 #, c-format
 msgid "unexpected token %d in conditional command"
 msgstr "símbolo %d inesperado em comando condicional"
 
-#: parse.y:6220
+#: parse.y:5996
 #, c-format
 msgid "syntax error near unexpected token `%s'"
 msgstr "erro de sintaxe junto a símbolo \"%s\" inesperado"
 
-#: parse.y:6238
+#: parse.y:6014
 #, c-format
 msgid "syntax error near `%s'"
 msgstr "erro de sintaxe junto a \"%s\""
 
-#: parse.y:6248
+#: parse.y:6024
 msgid "syntax error: unexpected end of file"
 msgstr "erro de sintaxe: fim de ficheiro inesperado"
 
-#: parse.y:6248
+#: parse.y:6024
 msgid "syntax error"
 msgstr "erro de sintaxe"
 
-#: parse.y:6310
+#: parse.y:6086
 #, c-format
 msgid "Use \"%s\" to leave the shell.\n"
 msgstr "Use \"%s\" para sair da consola.\n"
 
-#: parse.y:6472
+#: parse.y:6248
 msgid "unexpected EOF while looking for matching `)'"
 msgstr "EOF inesperado ao procurar o \")\" correspondente"
 
-#: pcomplete.c:1132
+#: pcomplete.c:1126
 #, c-format
 msgid "completion: function `%s' not found"
 msgstr "completion: função \"%s\" não encontrada"
 
-#: pcomplete.c:1722
+#: pcomplete.c:1646
 #, c-format
 msgid "programmable_completion: %s: possible retry loop"
 msgstr "programmable_completion: %s: possível ciclo de repetição"
@@ -1573,113 +1548,109 @@ msgstr "programmable_completion: %s: possível ciclo de repetição"
 msgid "progcomp_insert: %s: NULL COMPSPEC"
 msgstr "progcomp_insert: %s: NULL COMPSPEC"
 
-#: print_cmd.c:300
+#: print_cmd.c:302
 #, c-format
 msgid "print_command: bad connector `%d'"
 msgstr "print_command: conector \"%d\" errado"
 
-#: print_cmd.c:373
+#: print_cmd.c:375
 #, c-format
 msgid "xtrace_set: %d: invalid file descriptor"
 msgstr "xtrace_set: %d: descritor de ficheiro inválido"
 
-#: print_cmd.c:378
+#: print_cmd.c:380
 msgid "xtrace_set: NULL file pointer"
 msgstr "xtrace_set: ponteiro de ficheiro NULL"
 
-#: print_cmd.c:382
+#: print_cmd.c:384
 #, c-format
 msgid "xtrace fd (%d) != fileno xtrace fp (%d)"
 msgstr "xtrace fd (%d) != fileno xtrace fp (%d)"
 
-#: print_cmd.c:1538
+#: print_cmd.c:1534
 #, c-format
 msgid "cprintf: `%c': invalid format character"
 msgstr "cprintf: \"%c\": carácter de formato inválido"
 
-#: redir.c:121 redir.c:167
+#: redir.c:124 redir.c:171
 msgid "file descriptor out of range"
 msgstr "descritor de ficheiro fora de alcance"
 
-#: redir.c:174
+#: redir.c:178
 #, c-format
 msgid "%s: ambiguous redirect"
 msgstr "%s: redireccionamento ambíguo"
 
-#: redir.c:178
+#: redir.c:182
 #, c-format
 msgid "%s: cannot overwrite existing file"
 msgstr "%s: impossível sobrescrever ficheiro existente"
 
-#: redir.c:183
+#: redir.c:187
 #, c-format
 msgid "%s: restricted: cannot redirect output"
 msgstr "%s: restricto: impossível redireccionar saída"
 
-#: redir.c:188
+#: redir.c:192
 #, c-format
 msgid "cannot create temp file for here-document: %s"
 msgstr "impossível criar ficheiro temporário para here-document: %s"
 
-#: redir.c:192
+#: redir.c:196
 #, c-format
 msgid "%s: cannot assign fd to variable"
 msgstr "%s: impossível atribuir fd a variável"
 
-#: redir.c:588
+#: redir.c:586
 msgid "/dev/(tcp|udp)/host/port not supported without networking"
 msgstr "/dev/(tcp|udp)/host/port não suportado em trabalho de rede"
 
-#: redir.c:870 redir.c:985 redir.c:1046 redir.c:1211
+#: redir.c:868 redir.c:983 redir.c:1044 redir.c:1209
 msgid "redirection error: cannot duplicate fd"
 msgstr "erro de redireccionamento: impossível duplicar fd"
 
-#: shell.c:343
+#: shell.c:347
 msgid "could not find /tmp, please create!"
 msgstr "impossível encontrar /tmp, por favor crie-a!"
 
-#: shell.c:347
+#: shell.c:351
 msgid "/tmp must be a valid directory name"
 msgstr "/tmp tem de ser um nome de pasta válido"
 
-#: shell.c:798
-msgid "pretty-printing mode ignored in interactive shells"
-msgstr ""
-
-#: shell.c:940
+#: shell.c:927
 #, c-format
 msgid "%c%c: invalid option"
 msgstr "%c%c: opção inválida"
 
-#: shell.c:1299
+#: shell.c:1282
 #, c-format
 msgid "cannot set uid to %d: effective uid %d"
 msgstr "impossível definir uid como %d: uid efectiva %d"
 
-#: shell.c:1306
+#: shell.c:1289
 #, c-format
 msgid "cannot set gid to %d: effective gid %d"
 msgstr "impossível definir gid como %d: gid efectiva %d"
 
-#: shell.c:1494
+#: shell.c:1458
 msgid "cannot start debugger; debugging mode disabled"
 msgstr "impossível iniciar o depurador; modo de depuração desactivado"
 
-#: shell.c:1608
+#: shell.c:1566
 #, c-format
 msgid "%s: Is a directory"
 msgstr "%s: é uma pasta"
 
-#: shell.c:1826
+#: shell.c:1777
 msgid "I have no name!"
 msgstr "Não tenho nome!"
 
-#: shell.c:1980
+#: shell.c:1930
 #, c-format
 msgid "GNU bash, version %s-(%s)\n"
 msgstr "GNU bash, versão %s-(%s)\n"
 
-#: shell.c:1981
+#: shell.c:1931
 #, c-format
 msgid ""
 "Usage:\t%s [GNU long option] [option] ...\n"
@@ -1688,52 +1659,49 @@ msgstr ""
 "Uso:\t%s [opção longa GNU] [opção] ...\n"
 "\t%s [opção longa GNU] [opção] script-file ...\n"
 
-#: shell.c:1983
+#: shell.c:1933
 msgid "GNU long options:\n"
 msgstr "Opções longas GNU:\n"
 
-#: shell.c:1987
+#: shell.c:1937
 msgid "Shell options:\n"
 msgstr "Opções da consola:\n"
 
-#: shell.c:1988
+#: shell.c:1938
 msgid "\t-ilrsD or -c command or -O shopt_option\t\t(invocation only)\n"
 msgstr "\tcomando -ilrsD ou -c ou -O shopt_option\t\t(só chamada)\n"
 
-#: shell.c:2003
+#: shell.c:1953
 #, c-format
 msgid "\t-%s or -o option\n"
 msgstr "\topção -%s ou -o\n"
 
-#: shell.c:2009
+#: shell.c:1959
 #, c-format
 msgid "Type `%s -c \"help set\"' for more information about shell options.\n"
-msgstr ""
-"Insira \"%s -c \"help set\"\" para mais informação sobre opções da consola.\n"
+msgstr "Insira \"%s -c \"help set\"\" para mais informação sobre opções da consola.\n"
 
-#: shell.c:2010
+#: shell.c:1960
 #, c-format
 msgid "Type `%s -c help' for more information about shell builtin commands.\n"
-msgstr ""
-"Insira \"%s -c help\" para mais informação sobre comandos internos da "
-"consola.\n"
+msgstr "Insira \"%s -c help\" para mais informação sobre comandos internos da consola.\n"
 
-#: shell.c:2011
+#: shell.c:1961
 #, c-format
 msgid "Use the `bashbug' command to report bugs.\n"
 msgstr "Use o comando \"bashbug\" para reportar erros.\n"
 
-#: shell.c:2013
+#: shell.c:1963
 #, c-format
 msgid "bash home page: <http://www.gnu.org/software/bash>\n"
 msgstr "Página inicial do bash: <http://www.gnu.org/software/bash>\n"
 
-#: shell.c:2014
+#: shell.c:1964
 #, c-format
 msgid "General help using GNU software: <http://www.gnu.org/gethelp/>\n"
 msgstr "Ajuda geral para usar programas GNU: <http://www.gnu.org/gethelp/>\n"
 
-#: sig.c:695
+#: sig.c:707
 #, c-format
 msgid "sigprocmask: %d: invalid operation"
 msgstr "sigprocmask: %d: operação inválida"
@@ -1907,21 +1875,21 @@ msgstr "Sinal desconhecido #"
 msgid "Unknown Signal #%d"
 msgstr "Sinal desconhecido #%d"
 
-#: subst.c:1450 subst.c:1641
+#: subst.c:1445 subst.c:1608
 #, c-format
 msgid "bad substitution: no closing `%s' in %s"
 msgstr "má substituição: sem \"%s\" de fecho em %s"
 
-#: subst.c:3209
+#: subst.c:3154
 #, c-format
 msgid "%s: cannot assign list to array member"
 msgstr "%s: impossível atribuir lista a membro de matriz"
 
-#: subst.c:5734 subst.c:5750
+#: subst.c:5740 subst.c:5756
 msgid "cannot make pipe for process substitution"
 msgstr "impossível fazer pipe para substituição de processo"
 
-#: subst.c:5796
+#: subst.c:5798
 msgid "cannot make child for process substitution"
 msgstr "impossível fazer filho para substituição de processo"
 
@@ -1940,76 +1908,67 @@ msgstr "impossível abrir pipe chamado %s para escrita"
 msgid "cannot duplicate named pipe %s as fd %d"
 msgstr "imossível duplicar pipe chamado %s como fd %d"
 
-#: subst.c:5990
+#: subst.c:5959
 msgid "command substitution: ignored null byte in input"
 msgstr "substituição de comando: byte nulo ignorado na entrada"
 
-#: subst.c:6121
+#: subst.c:6083
 msgid "cannot make pipe for command substitution"
 msgstr "impossível fazer pipe para substituição de comando"
 
-#: subst.c:6164
+#: subst.c:6127
 msgid "cannot make child for command substitution"
 msgstr "impossível fazer filho para substituição de comando"
 
-#: subst.c:6190
+#: subst.c:6153
 msgid "command_substitute: cannot duplicate pipe as fd 1"
 msgstr "command_substitute: impossível duplicar pipe como fd 1"
 
-#: subst.c:6641 subst.c:9483
+#: subst.c:6580 subst.c:8939
 #, c-format
 msgid "%s: invalid variable name for name reference"
 msgstr "%s: nome de variável inválido para referência de nome"
 
-#: subst.c:6737 subst.c:6755 subst.c:6903
+#: subst.c:6666 subst.c:8351 subst.c:8371
+#, c-format
+msgid "%s: bad substitution"
+msgstr "%s: má substituição"
+
+#: subst.c:6800
 #, c-format
 msgid "%s: invalid indirect expansion"
 msgstr "%s: expansão indirecta inválida"
 
-#: subst.c:6771 subst.c:6910
+#: subst.c:6807
 #, c-format
 msgid "%s: invalid variable name"
 msgstr "%s: nome de variável inválido"
 
-#: subst.c:6962
-#, fuzzy, c-format
-msgid "%s: parameter not set"
-msgstr "%s: parâmetro nulo ou não definido"
-
-#: subst.c:6964
+#: subst.c:6854
 #, c-format
 msgid "%s: parameter null or not set"
 msgstr "%s: parâmetro nulo ou não definido"
 
-#: subst.c:7201 subst.c:7216
+#: subst.c:7089 subst.c:7104
 #, c-format
 msgid "%s: substring expression < 0"
 msgstr "%s: expressão de sub-cadeia < 0"
 
-#: subst.c:8839 subst.c:8860
-#, c-format
-msgid "%s: bad substitution"
-msgstr "%s: má substituição"
-
-#: subst.c:8948
+#: subst.c:8450
 #, c-format
 msgid "$%s: cannot assign in this way"
 msgstr "$%s: impossível atribuir desta forma"
 
-#: subst.c:9346
-msgid ""
-"future versions of the shell will force evaluation as an arithmetic "
-"substitution"
-msgstr ""
-"futuras versões da consola vão forçar a avaliação como uma substituição "
-"aritmética"
+#: subst.c:8802
+msgid "future versions of the shell will force evaluation as an arithmetic substitution"
+msgstr "futuras versões da consola vão forçar a avaliação como uma substituição aritmética"
 
-#: subst.c:9903
+#: subst.c:9349
 #, c-format
 msgid "bad substitution: no closing \"`\" in %s"
 msgstr "má substituição: sem \"\"\" de fecho em %s"
 
-#: subst.c:10907
+#: subst.c:10298
 #, c-format
 msgid "no match: %s"
 msgstr "sem par:%s"
@@ -2032,109 +1991,105 @@ msgstr "\")\" esperado"
 msgid "`)' expected, found %s"
 msgstr "\")\" esperado, encontrado %s"
 
-#: test.c:282 test.c:748 test.c:751
+#: test.c:282 test.c:744 test.c:747
 #, c-format
 msgid "%s: unary operator expected"
 msgstr "%s: operador unáro esperado"
 
-#: test.c:469 test.c:791
+#: test.c:469 test.c:787
 #, c-format
 msgid "%s: binary operator expected"
 msgstr "%s: operador bináro esperado"
 
-#: test.c:873
+#: test.c:869
 msgid "missing `]'"
 msgstr "\"]\" em falta"
 
-#: trap.c:216
+#: trap.c:224
 msgid "invalid signal number"
 msgstr "número de sinal inválido"
 
-#: trap.c:379
+#: trap.c:387
 #, c-format
 msgid "run_pending_traps: bad value in trap_list[%d]: %p"
 msgstr "run_pending_traps: valor errado em trap_list[%d]: %p"
 
-#: trap.c:383
+#: trap.c:391
 #, c-format
-msgid ""
-"run_pending_traps: signal handler is SIG_DFL, resending %d (%s) to myself"
-msgstr ""
-"run_pending_traps: gestor de sinal é SIG_DFL, a reenviar %d (%s) para mim "
-"próprio"
+msgid "run_pending_traps: signal handler is SIG_DFL, resending %d (%s) to myself"
+msgstr "run_pending_traps: gestor de sinal é SIG_DFL, a reenviar %d (%s) para mim próprio"
 
-#: trap.c:439
+#: trap.c:447
 #, c-format
 msgid "trap_handler: bad signal %d"
 msgstr "trap_handler: sinal errado %d"
 
-#: variables.c:399
+#: variables.c:409
 #, c-format
 msgid "error importing function definition for `%s'"
 msgstr "erro ao importar definição de função para \"%s\""
 
-#: variables.c:801
+#: variables.c:814
 #, c-format
 msgid "shell level (%d) too high, resetting to 1"
 msgstr "nível da consola (%d) muito alto, a repor para 1"
 
-#: variables.c:2512
+#: variables.c:2413
 msgid "make_local_variable: no function context at current scope"
 msgstr "make_local_variável: sem contexto de função no âmbito actual"
 
-#: variables.c:2531
+#: variables.c:2432
 #, c-format
 msgid "%s: variable may not be assigned value"
 msgstr "%s: não pode atribuir um valor à variável"
 
-#: variables.c:3246
+#: variables.c:3043
 #, c-format
 msgid "%s: assigning integer to name reference"
 msgstr "%s: a atribuir inteiro à referência de nome"
 
-#: variables.c:4149
+#: variables.c:3940
 msgid "all_local_variables: no function context at current scope"
 msgstr "all_local_variables: sem contexto de função no âmbito actual"
 
-#: variables.c:4437
+#: variables.c:4218
 #, c-format
 msgid "%s has null exportstr"
 msgstr "%s tem exportstr nulo"
 
-#: variables.c:4442 variables.c:4451
+#: variables.c:4223 variables.c:4232
 #, c-format
 msgid "invalid character %d in exportstr for %s"
 msgstr "carácter %d inválido em exportstr para %s"
 
-#: variables.c:4457
+#: variables.c:4238
 #, c-format
 msgid "no `=' in exportstr for %s"
 msgstr "sem \"=\" em exportstr para %s"
 
-#: variables.c:4911
+#: variables.c:4684
 msgid "pop_var_context: head of shell_variables not a function context"
 msgstr "pop_var_context: cabeça de consola_variables não é contexto de função"
 
-#: variables.c:4924
+#: variables.c:4697
 msgid "pop_var_context: no global_variables context"
 msgstr "pop_var_context: sem contexto de global_variables"
 
-#: variables.c:4999
+#: variables.c:4772
 msgid "pop_scope: head of shell_variables not a temporary environment scope"
-msgstr ""
-"pop_scope: cabeça de consola_variables não é âmbito de ambiente temporário"
+msgstr "pop_scope: cabeça de consola_variables não é âmbito de ambiente temporário"
 
-#: variables.c:5862
+#: variables.c:5619
 #, c-format
 msgid "%s: %s: cannot open as FILE"
 msgstr "%s: %s: impossível abrir como FICHEIRO"
 
-#: variables.c:5867
+#: variables.c:5624
 #, c-format
 msgid "%s: %s: invalid value for trace file descriptor"
 msgstr "%s: %s: valor inválido para descritor de ficheiro trace"
 
-#: variables.c:5912
+#: variables.c:5669
 #, c-format
 msgid "%s: %s: compatibility value out of range"
 msgstr "%s: %s: valor de compatibilidade fora do intervalo"
@@ -2144,12 +2099,8 @@ msgid "Copyright (C) 2016 Free Software Foundation, Inc."
 msgstr "Copyright (C) 2016 Free Software Foundation, Inc."
 
 #: version.c:47 version2.c:47
-msgid ""
-"License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl."
-"html>\n"
-msgstr ""
-"Licença GPLv3+: GNU GPL versão 3 ou posterior <http://gnu.org/licenses/gpl."
-"html>\n"
+msgid "License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>\n"
+msgstr "Licença GPLv3+: GNU GPL versão 3 ou posterior <http://gnu.org/licenses/gpl.html>\n"
 
 #: version.c:86 version2.c:86
 #, c-format
@@ -2164,22 +2115,22 @@ msgstr "Este é um programa gratuito; pode alterá-lo e distribuí-lo à vontade
 msgid "There is NO WARRANTY, to the extent permitted by law."
 msgstr "Não há QUALQUER GARANTIA, até aos limites previstos pela Lei."
 
-#: xmalloc.c:93
+#: xmalloc.c:91
 #, c-format
 msgid "%s: cannot allocate %lu bytes (%lu bytes allocated)"
 msgstr "%s: impossível alocar %lu bytes (%lu bytes alocados)"
 
-#: xmalloc.c:95
+#: xmalloc.c:93
 #, c-format
 msgid "%s: cannot allocate %lu bytes"
 msgstr "%s: impossível alocar %lu bytes"
 
-#: xmalloc.c:165
+#: xmalloc.c:163
 #, c-format
 msgid "%s: %s:%d: cannot allocate %lu bytes (%lu bytes allocated)"
 msgstr "%s: %s:%d: impossível alocar %lu bytes (%lu bytes alocados)"
 
-#: xmalloc.c:167
+#: xmalloc.c:165
 #, c-format
 msgid "%s: %s:%d: cannot allocate %lu bytes"
 msgstr "%s: %s:%d: impossível alocar %lu bytes"
@@ -2193,13 +2144,8 @@ msgid "unalias [-a] name [name ...]"
 msgstr "unalias [-a] nome [nome ...]"
 
 #: builtins.c:53
-msgid ""
-"bind [-lpsvPSVX] [-m keymap] [-f filename] [-q name] [-u name] [-r keyseq] [-"
-"x keyseq:shell-command] [keyseq:readline-function or readline-command]"
-msgstr ""
-"bind [-lpsvPSVX] [-m mapa de teclado] [-f ficheiro] [-q nome] [-u nome] [-r "
-"seqtecl] [-x seqtecl:comando-consola] [seqtecl:função-readline ou comando-"
-"readline]"
+msgid "bind [-lpsvPSVX] [-m keymap] [-f filename] [-q name] [-u name] [-r keyseq] [-x keyseq:shell-command] [keyseq:readline-function or readline-command]"
+msgstr "bind [-lpsvPSVX] [-m mapa de teclado] [-f ficheiro] [-q nome] [-u nome] [-r seqtecl] [-x seqtecl:comando-consola] [seqtecl:função-readline ou comando-readline]"
 
 #: builtins.c:56
 msgid "break [n]"
@@ -2263,8 +2209,7 @@ msgstr "getopts optstring name [arg]"
 
 #: builtins.c:98
 msgid "exec [-cl] [-a name] [command [arguments ...]] [redirection ...]"
-msgstr ""
-"exec [-cl] [-a nome] [comando [argumentos ...]] [redireccionamento ...]"
+msgstr "exec [-cl] [-a nome] [comando [argumentos ...]] [redireccionamento ...]"
 
 #: builtins.c:100
 msgid "exit [n]"
@@ -2295,12 +2240,8 @@ msgid "help [-dms] [pattern ...]"
 msgstr "help [-dms] [padrão ...]"
 
 #: builtins.c:123
-msgid ""
-"history [-c] [-d offset] [n] or history -anrw [filename] or history -ps arg "
-"[arg...]"
-msgstr ""
-"history [-c] [-d desvio] [n], history -anrw [ficheiro] ou history -ps arg "
-"[arg...]"
+msgid "history [-c] [-d offset] [n] or history -anrw [filename] or history -ps arg [arg...]"
+msgstr "history [-c] [-d desvio] [n], history -anrw [ficheiro] ou history -ps arg [arg...]"
 
 #: builtins.c:127
 msgid "jobs [-lnprs] [jobspec ...] or jobs -x command [args]"
@@ -2311,24 +2252,16 @@ msgid "disown [-h] [-ar] [jobspec ... | pid ...]"
 msgstr "disown [-h] [-ar] [tarefaspec ... | pid ...]"
 
 #: builtins.c:134
-msgid ""
-"kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... or kill -l "
-"[sigspec]"
-msgstr ""
-"kill [-s sigspec | -n signum | -sigspec] pid | tarefaspec ... ou kill -l "
-"[sigspec]"
+msgid "kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... or kill -l [sigspec]"
+msgstr "kill [-s sigspec | -n signum | -sigspec] pid | tarefaspec ... ou kill -l [sigspec]"
 
 #: builtins.c:136
 msgid "let arg [arg ...]"
 msgstr "let arg [arg ...]"
 
 #: builtins.c:138
-msgid ""
-"read [-ers] [-a array] [-d delim] [-i text] [-n nchars] [-N nchars] [-p "
-"prompt] [-t timeout] [-u fd] [name ...]"
-msgstr ""
-"read [-ers] [-a matriz] [-d delim] [-i texto] [-n ncars] [-N ncars] [-p "
-"prompt] [-t inacção] [-u fd] [nome ...]"
+msgid "read [-ers] [-a array] [-d delim] [-i text] [-n nchars] [-N nchars] [-p prompt] [-t timeout] [-u fd] [name ...]"
+msgstr "read [-ers] [-a matriz] [-d delim] [-i texto] [-n ncars] [-N ncars] [-p prompt] [-t inacção] [-u fd] [nome ...]"
 
 #: builtins.c:140
 msgid "return [n]"
@@ -2391,8 +2324,7 @@ msgid "umask [-p] [-S] [mode]"
 msgstr "umask [-p] [-S] [modo]"
 
 #: builtins.c:177
-#, fuzzy
-msgid "wait [-fn] [id ...]"
+msgid "wait [-n] [id ...]"
 msgstr "wait [-n] [id ...]"
 
 #: builtins.c:181
@@ -2420,12 +2352,8 @@ msgid "case WORD in [PATTERN [| PATTERN]...) COMMANDS ;;]... esac"
 msgstr "case PALAVRA in [PADRÃO [| PADRÃO]...) COMANDOS ;;]... esac"
 
 #: builtins.c:194
-msgid ""
-"if COMMANDS; then COMMANDS; [ elif COMMANDS; then COMMANDS; ]... [ else "
-"COMMANDS; ] fi"
-msgstr ""
-"if COMANDOS; then COMANDOS; [ elif COMANDOS; then COMANDOS; ]... [ else "
-"COMANDOS; ] fi"
+msgid "if COMMANDS; then COMMANDS; [ elif COMMANDS; then COMMANDS; ]... [ else COMMANDS; ] fi"
+msgstr "if COMANDOS; then COMANDOS; [ elif COMANDOS; then COMANDOS; ]... [ else COMANDOS; ] fi"
 
 #: builtins.c:196
 msgid "while COMMANDS; do COMMANDS; done"
@@ -2484,43 +2412,24 @@ msgid "printf [-v var] format [arguments]"
 msgstr "printf [-v var] formato [argumentos]"
 
 #: builtins.c:231
-msgid ""
-"complete [-abcdefgjksuv] [-pr] [-DE] [-o option] [-A action] [-G globpat] [-"
-"W wordlist]  [-F function] [-C command] [-X filterpat] [-P prefix] [-S "
-"suffix] [name ...]"
-msgstr ""
-"complete [-abcdefgjksuv] [-pr] [-DE] [-o opção] [-A acção] [-G padrglob] [-W "
-"listpal]  [-F função] [-C comando] [-X padrfiltro] [-P prefixo] [-S sufixo] "
-"[nome ...]"
+msgid "complete [-abcdefgjksuv] [-pr] [-DE] [-o option] [-A action] [-G globpat] [-W wordlist]  [-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] [name ...]"
+msgstr "complete [-abcdefgjksuv] [-pr] [-DE] [-o opção] [-A acção] [-G padrglob] [-W listpal]  [-F função] [-C comando] [-X padrfiltro] [-P prefixo] [-S sufixo] [nome ...]"
 
 #: builtins.c:235
-msgid ""
-"compgen [-abcdefgjksuv] [-o option] [-A action] [-G globpat] [-W wordlist]  "
-"[-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] [word]"
-msgstr ""
-"compgen [-abcdefgjksuv] [-o opção] [-A acção] [-G padrglob] [-W listpal]  [-"
-"F função] [-C comando] [-X padrfiltro] [-P prefixo] [-S sufixo] [palavra]"
+msgid "compgen [-abcdefgjksuv] [-o option] [-A action] [-G globpat] [-W wordlist]  [-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] [word]"
+msgstr "compgen [-abcdefgjksuv] [-o opção] [-A acção] [-G padrglob] [-W listpal]  [-F função] [-C comando] [-X padrfiltro] [-P prefixo] [-S sufixo] [palavra]"
 
 #: builtins.c:239
 msgid "compopt [-o|+o option] [-DE] [name ...]"
 msgstr "compopt [-o|+o opção] [-DE] [nome ...]"
 
 #: builtins.c:242
-msgid ""
-"mapfile [-d delim] [-n count] [-O origin] [-s count] [-t] [-u fd] [-C "
-"callback] [-c quantum] [array]"
-msgstr ""
-"mapfile [-d delim] [-n total] [-O origem] [-s total] [-t] [-u fd] [-C "
-"callback] [-c quantia] [matriz]"
+msgid "mapfile [-d delim] [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c quantum] [array]"
+msgstr "mapfile [-d delim] [-n total] [-O origem] [-s total] [-t] [-u fd] [-C callback] [-c quantia] [matriz]"
 
 #: builtins.c:244
-#, fuzzy
-msgid ""
-"readarray [-d delim] [-n count] [-O origin] [-s count] [-t] [-u fd] [-C "
-"callback] [-c quantum] [array]"
-msgstr ""
-"readarray [-n total] [-O origem] [-s total] [-t] [-u fd] [-C callback] [-c "
-"quantia] [matriz]"
+msgid "readarray [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c quantum] [array]"
+msgstr "readarray [-n total] [-O origem] [-s total] [-t] [-u fd] [-C callback] [-c quantia] [matriz]"
 
 #: builtins.c:256
 msgid ""
@@ -2537,8 +2446,7 @@ msgid ""
 "      -p\tprint all defined aliases in a reusable format\n"
 "    \n"
 "    Exit Status:\n"
-"    alias returns true unless a NAME is supplied for which no alias has "
-"been\n"
+"    alias returns true unless a NAME is supplied for which no alias has been\n"
 "    defined."
 msgstr ""
 "Definir ou mostrar aliás.\n"
@@ -2554,8 +2462,7 @@ msgstr ""
 "      -p\timprimir todos os aliás definidos em formato reutilizável\n"
 "    \n"
 "    Estado de saída:\n"
-"    alias devolve verdadeiro a não ser que seja fornecido um NOME para o "
-"qual\n"
+"    alias devolve verdadeiro a não ser que seja fornecido um NOME para o qual\n"
 "ainda não haja um aliás."
 
 #: builtins.c:278
@@ -2586,30 +2493,25 @@ msgid ""
 "    Options:\n"
 "      -m  keymap         Use KEYMAP as the keymap for the duration of this\n"
 "                         command.  Acceptable keymap names are emacs,\n"
-"                         emacs-standard, emacs-meta, emacs-ctlx, vi, vi-"
-"move,\n"
+"                         emacs-standard, emacs-meta, emacs-ctlx, vi, vi-move,\n"
 "                         vi-command, and vi-insert.\n"
 "      -l                 List names of functions.\n"
 "      -P                 List function names and bindings.\n"
 "      -p                 List functions and bindings in a form that can be\n"
 "                         reused as input.\n"
-"      -S                 List key sequences that invoke macros and their "
-"values\n"
-"      -s                 List key sequences that invoke macros and their "
-"values\n"
+"      -S                 List key sequences that invoke macros and their values\n"
+"      -s                 List key sequences that invoke macros and their values\n"
 "                         in a form that can be reused as input.\n"
 "      -V                 List variable names and values\n"
 "      -v                 List variable names and values in a form that can\n"
 "                         be reused as input.\n"
 "      -q  function-name  Query about which keys invoke the named function.\n"
-"      -u  function-name  Unbind all keys which are bound to the named "
-"function.\n"
+"      -u  function-name  Unbind all keys which are bound to the named function.\n"
 "      -r  keyseq         Remove the binding for KEYSEQ.\n"
 "      -f  filename       Read key bindings from FILENAME.\n"
 "      -x  keyseq:shell-command\tCause SHELL-COMMAND to be executed when\n"
 "    \t\t\t\tKEYSEQ is entered.\n"
-"      -X                 List key sequences bound with -x and associated "
-"commands\n"
+"      -X                 List key sequences bound with -x and associated commands\n"
 "                         in a form that can be reused as input.\n"
 "    \n"
 "    Exit Status:\n"
@@ -2618,53 +2520,36 @@ msgstr ""
 "Definir associações de teclas e variáveis para Readline.\n"
 "    \n"
 "    Associar uma sequência de teclas a uma função ou macro Readline, ou\n"
-"    defina uma variável Readline. A sintaxe de argumento não-opção é "
-"equivalente\n"
-"    à encontrada em ~/.inputrc, mas tem de ser passada como argumento "
-"único:\n"
+"    defina uma variável Readline. A sintaxe de argumento não-opção é equivalente\n"
+"    à encontrada em ~/.inputrc, mas tem de ser passada como argumento único:\n"
 "     e.g., bind \"\"\\C-x\\C-r\": re-read-init-file\".\n"
 "     \n"
 "     Opções:\n"
-"        -m  maptecl            Use MAPTECL como mapa de teclado para a "
-"duração deste\n"
-"                                 comando. Nomes de mapas aceitáveis são "
-"emacs,\n"
-"                                 emacs-standard, emacs-meta, emacs-ctlx, vi, "
-"vi-move,\n"
+"        -m  maptecl            Use MAPTECL como mapa de teclado para a duração deste\n"
+"                                 comando. Nomes de mapas aceitáveis são emacs,\n"
+"                                 emacs-standard, emacs-meta, emacs-ctlx, vi, vi-move,\n"
 "                                 vi-command, e vi-insert.\n"
 "        -l                      Listar nomes de funções.\n"
 "        -P                      Listar nomes de funções e associações.\n"
-"        -p                      Listar funções funçãos e associações de "
-"forma a que possam\n"
+"        -p                      Listar funções funçãos e associações de forma a que possam\n"
 "                                 ser reutilizados como entrada.\n"
-"        -S                      Listar sequências de teclas que chamem "
-"macros e seus valores\n"
-"        -s                      Listar sequências de teclas que chamem "
-"macros e seus valores\n"
-"                                 de forma a que possam ser reutilizados como "
-"entrada.\n"
+"        -S                      Listar sequências de teclas que chamem macros e seus valores\n"
+"        -s                      Listar sequências de teclas que chamem macros e seus valores\n"
+"                                 de forma a que possam ser reutilizados como entrada.\n"
 "        -V                      Listar nomes de variáveis e seus valores\n"
-"        -v                      Listar nomes de variáveis e seus valores de "
-"forma a que possam\n"
+"        -v                      Listar nomes de variáveis e seus valores de forma a que possam\n"
 "                                 ser reutilizados como entrada.\n"
-"        -q  nome-função     Consultar que teclas chamaram a função em "
-"causa.\n"
-"        -u  nome-função     Unbind all keys which are bound to the named "
-"função.\n"
+"        -q  nome-função     Consultar que teclas chamaram a função em causa.\n"
+"        -u  nome-função     Unbind all keys which are bound to the named função.\n"
 "        -r  seqtecl          Remover associação de SEQTECL.\n"
-"        -f  nomefich         Ler associações de teclas a partir de "
-"NOMEFICH.\n"
-"        -x  seqtecl:comando-consola\tCausa a execuçaõ de COMANDO-SHELL "
-"quando\n"
+"        -f  nomefich         Ler associações de teclas a partir de NOMEFICH.\n"
+"        -x  seqtecl:comando-consola\tCausa a execuçaõ de COMANDO-SHELL quando\n"
 "     \t\t\t\tSEQTECL for inserido.\n"
-"        -X                      Listarsequências de teclas associadas a -x e "
-"comandos ligados\n"
-"                                 de forma a que possam ser reutilizados como "
-"entrada.\n"
+"        -X                      Listarsequências de teclas associadas a -x e comandos ligados\n"
+"                                 de forma a que possam ser reutilizados como entrada.\n"
 "     \n"
 "     Estado de saída:\n"
-"     bind devolve 0 a não ser que seja dada uma opção desconhecida ou ocorra "
-"um erro."
+"     bind devolve 0 a não ser que seja dada uma opção desconhecida ou ocorra um erro."
 
 #: builtins.c:330
 msgid ""
@@ -2678,8 +2563,7 @@ msgid ""
 msgstr ""
 "Sair de ciclos for, while, ou until.\n"
 "     \n"
-"     Sai de um ciclo FOR, WHILE ou UNTIL.  Se N for especificado, quebrar N "
-"ciclos\n"
+"     Sai de um ciclo FOR, WHILE ou UNTIL.  Se N for especificado, quebrar N ciclos\n"
 "     envolventes.\n"
 "     \n"
 "     Estado de saída:\n"
@@ -2709,8 +2593,7 @@ msgid ""
 "    \n"
 "    Execute SHELL-BUILTIN with arguments ARGs without performing command\n"
 "    lookup.  This is useful when you wish to reimplement a shell builtin\n"
-"    as a shell function, but need to execute the builtin within the "
-"function.\n"
+"    as a shell function, but need to execute the builtin within the function.\n"
 "    \n"
 "    Exit Status:\n"
 "    Returns the exit status of SHELL-BUILTIN, or false if SHELL-BUILTIN is\n"
@@ -2718,15 +2601,12 @@ msgid ""
 msgstr ""
 "Executa comandos internos da consola.\n"
 "     \n"
-"     Executar SHELL-INTERNO com argumentos ARGs sem realizar procura do "
-"comando.\n"
+"     Executar SHELL-INTERNO com argumentos ARGs sem realizar procura do comando.\n"
 "     Útil quando deseja re-implementar um comando interno da consola como\n"
-"     função da consola, mas tem de executar o comando interno dentro da "
-"função.\n"
+"     função da consola, mas tem de executar o comando interno dentro da função.\n"
 "     \n"
 "     Estado de saída:\n"
-"     Devolve o estado de saída de SHELL-INTERNO ou falso se SHELL-INTERNO "
-"não\n"
+"     Devolve o estado de saída de SHELL-INTERNO ou falso se SHELL-INTERNO não\n"
 "     for um comando interno da consola."
 
 #: builtins.c:369
@@ -2754,30 +2634,23 @@ msgstr ""
 "     actual; a chamada superior é a chamada 0.\n"
 "     \n"
 "     Estado de saída:\n"
-"     Devolve 0 a não ser que a consola não esteja a executar uma função ou "
-"EXPR\n"
+"     Devolve 0 a não ser que a consola não esteja a executar uma função ou EXPR\n"
 "     seja inválida."
 
 #: builtins.c:387
 msgid ""
 "Change the shell working directory.\n"
 "    \n"
-"    Change the current directory to DIR.  The default DIR is the value of "
-"the\n"
+"    Change the current directory to DIR.  The default DIR is the value of the\n"
 "    HOME shell variable.\n"
 "    \n"
-"    The variable CDPATH defines the search path for the directory "
-"containing\n"
-"    DIR.  Alternative directory names in CDPATH are separated by a colon "
-"(:).\n"
-"    A null directory name is the same as the current directory.  If DIR "
-"begins\n"
+"    The variable CDPATH defines the search path for the directory containing\n"
+"    DIR.  Alternative directory names in CDPATH are separated by a colon (:).\n"
+"    A null directory name is the same as the current directory.  If DIR begins\n"
 "    with a slash (/), then CDPATH is not used.\n"
 "    \n"
-"    If the directory is not found, and the shell option `cdable_vars' is "
-"set,\n"
-"    the word is assumed to be  a variable name.  If that variable has a "
-"value,\n"
+"    If the directory is not found, and the shell option `cdable_vars' is set,\n"
+"    the word is assumed to be  a variable name.  If that variable has a value,\n"
 "    its value is used for DIR.\n"
 "    \n"
 "    Options:\n"
@@ -2793,32 +2666,25 @@ msgid ""
 "    \t\tattributes as a directory containing the file attributes\n"
 "    \n"
 "    The default is to follow symbolic links, as if `-L' were specified.\n"
-"    `..' is processed by removing the immediately previous pathname "
-"component\n"
+"    `..' is processed by removing the immediately previous pathname component\n"
 "    back to a slash or the beginning of DIR.\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns 0 if the directory is changed, and if $PWD is set successfully "
-"when\n"
+"    Returns 0 if the directory is changed, and if $PWD is set successfully when\n"
 "    -P is used; non-zero otherwise."
 msgstr ""
 "Alterar a pasta de trabalho da consola.\n"
 "     \n"
-"     Altera a pasta actual para PASTA. A PASTA predefinida é o valor da "
-"variável\n"
+"     Altera a pasta actual para PASTA. A PASTA predefinida é o valor da variável\n"
 "     HOME.\n"
 "     \n"
 "     A variável CDPATH define o caminho de procura para a pasta que contém\n"
-"     PASTA. Nomes de pasta alternativos em CDPATH são separados por \":"
-"\" (:).\n"
-"     Um nome de pasta nulo é equivalente à pasta actual. Se PASTA começar "
-"com\n"
+"     PASTA. Nomes de pasta alternativos em CDPATH são separados por \":\" (:).\n"
+"     Um nome de pasta nulo é equivalente à pasta actual. Se PASTA começar com\n"
 "     uma barra (/), CDPATH não é usada.\n"
 "     \n"
-"     Se a pasta não for encontrada e a opção de consola \"cdable_vars\" "
-"estiver definida,\n"
-"     a palavra é assumida como nome de variável. Se essa variável tiver um "
-"valor,\n"
+"     Se a pasta não for encontrada e a opção de consola \"cdable_vars\" estiver definida,\n"
+"     a palavra é assumida como nome de variável. Se essa variável tiver um valor,\n"
 "     será usado como PASTA.\n"
 "     \n"
 "     Opções:\n"
@@ -2830,19 +2696,15 @@ msgstr ""
 "        -e\tse a opção -P for usada e a pasta de trabalho actual não puder\n"
 "     \t\tser determinada com sucesso, sair com\n"
 "     \t\testado não-zero\n"
-"        -@\tem sistemas que o suportam, apresentar um ficheiro com "
-"atributos\n"
+"        -@\tem sistemas que o suportam, apresentar um ficheiro com atributos\n"
 "     \t\testendidos como uma pasta contendo os atributos do ficheiro.\n"
 "     \n"
-"     A predefinição é seguir ligações simbólicas, como se \"-L\" fosse "
-"especificada.\n"
-"     \"..\" é processado colocando o componente de caminho imediatamente "
-"anterior\n"
+"     A predefinição é seguir ligações simbólicas, como se \"-L\" fosse especificada.\n"
+"     \"..\" é processado colocando o componente de caminho imediatamente anterior\n"
 "     como barra ou o começo de PASTA.\n"
 "     \n"
 "     Estado de saída:\n"
-"     Devolve 0 se a pasta for alterada e se $PWD for definida com sucesso "
-"quando\n"
+"     Devolve 0 se a pasta for alterada e se $PWD for definida com sucesso quando\n"
 "     -P é usada; caso contrário, não-zero."
 
 #: builtins.c:425
@@ -2867,12 +2729,10 @@ msgstr ""
 "     \t\ttrabalho\n"
 "        -P\timprimir a pasta física, sem quaisquer ligações simbólicas\n"
 "     \n"
-"     Por predefinição, \"pwd\" comporta-se como se \"-L\" fosse "
-"especificada.\n"
+"     Por predefinição, \"pwd\" comporta-se como se \"-L\" fosse especificada.\n"
 "     \n"
 "     Estado de saída:\n"
-"     Devolve 0 a não ser que seja indicada uma opçãoinválida ou a pasta "
-"actual\n"
+"     Devolve 0 a não ser que seja indicada uma opçãoinválida ou a pasta actual\n"
 "     não possa ser lida."
 
 #: builtins.c:442
@@ -2920,8 +2780,7 @@ msgid ""
 "Execute a simple command or display information about commands.\n"
 "    \n"
 "    Runs COMMAND with ARGS suppressing  shell function lookup, or display\n"
-"    information about the specified COMMANDs.  Can be used to invoke "
-"commands\n"
+"    information about the specified COMMANDs.  Can be used to invoke commands\n"
 "    on disk when a function with the same name exists.\n"
 "    \n"
 "    Options:\n"
@@ -2935,26 +2794,20 @@ msgid ""
 msgstr ""
 "Executar um comando simples ou mostrar informação sobre comandos.\n"
 "     \n"
-"     Executa COMANDO com ARGS suprimindo procura de funções da consola ou "
-"mostra\n"
-"     informação acerca dos COMANDOs especificados. Pode ser usado para "
-"chamar comandos\n"
+"     Executa COMANDO com ARGS suprimindo procura de funções da consola ou mostra\n"
+"     informação acerca dos COMANDOs especificados. Pode ser usado para chamar comandos\n"
 "     em disco quando existe uma função com o mesmo nome.\n"
 "     \n"
 "     Opções:\n"
-"        -p     usar valor predefinido para CAMINHO que garanta que se "
-"encontram\n"
+"        -p     usar valor predefinido para CAMINHO que garanta que se encontram\n"
 "                todos os utilitários padrão\n"
-"        -v     imprimir uma descrição de COMANDO similar ao interno \"type"
-"\"\n"
+"        -v     imprimir uma descrição de COMANDO similar ao interno \"type\"\n"
 "        -V     imprimir uma descrição mais detalhada de COMANDO\n"
 "     \n"
 "     Estado de saída:\n"
-"     Devolve o estado de saída de COMANDO ou falha se COMANDO não for "
-"encontrado."
+"     Devolve o estado de saída de COMANDO ou falha se COMANDO não for encontrado."
 
 #: builtins.c:490
-#, fuzzy
 msgid ""
 "Set variable values and attributes.\n"
 "    \n"
@@ -2973,11 +2826,11 @@ msgid ""
 "      -a\tto make NAMEs indexed arrays (if supported)\n"
 "      -A\tto make NAMEs associative arrays (if supported)\n"
 "      -i\tto make NAMEs have the `integer' attribute\n"
-"      -l\tto convert the value of each NAME to lower case on assignment\n"
+"      -l\tto convert NAMEs to lower case on assignment\n"
 "      -n\tmake NAME a reference to the variable named by its value\n"
 "      -r\tto make NAMEs readonly\n"
 "      -t\tto make NAMEs have the `trace' attribute\n"
-"      -u\tto convert the value of each NAME to upper case on assignment\n"
+"      -u\tto convert NAMEs to upper case on assignment\n"
 "      -x\tto make NAMEs export\n"
 "    \n"
 "    Using `+' instead of `-' turns off the given attribute.\n"
@@ -2985,8 +2838,7 @@ msgid ""
 "    Variables with the integer attribute have arithmetic evaluation (see\n"
 "    the `let' command) performed when the variable is assigned a value.\n"
 "    \n"
-"    When used in a function, `declare' makes NAMEs local, as with the "
-"`local'\n"
+"    When used in a function, `declare' makes NAMEs local, as with the `local'\n"
 "    command.  The `-g' option suppresses this behavior.\n"
 "    \n"
 "    Exit Status:\n"
@@ -3002,8 +2854,7 @@ msgstr ""
 "        -f\trea cadeiair acção ou exibição a nomes e definições de função\n"
 "        -F\trea cadeiair exibição só a nomes de função (mais nº de linha e\n"
 "     \t\tficheiro fonte ao depurar)\n"
-"        -g\tcriar variáveis globais quando usadas numa função da shel; "
-"senão\n"
+"        -g\tcriar variáveis globais quando usadas numa função da shel; senão\n"
 "     \t\té ignorada\n"
 "        -p\tmostrar atributos e valores de cada NOME\n"
 "     \n"
@@ -3023,13 +2874,11 @@ msgstr ""
 "     Variáveis com o atributo integer têm avaliação aritmética (veja o\n"
 "     comando \"let\") realizada quando lhe é atribuído um valor.\n"
 "     \n"
-"     Quando usado numa função, \"declare\" torna NOMEs locais, como o "
-"comando\n"
+"     Quando usado numa função, \"declare\" torna NOMEs locais, como o comando\n"
 "     \"local\". A opção \"-g\" suprime este comportamento.\n"
 "     \n"
 "     Estado de saída:\n"
-"     Devolve sucesso a não ser que seja indicada uma opção inválida ou "
-"ocorra um\n"
+"     Devolve sucesso a não ser que seja indicada uma opção inválida ou ocorra um\n"
 "     erro de atribuição da variável."
 
 #: builtins.c:530
@@ -3061,21 +2910,18 @@ msgstr ""
 "     Cria uma variável local chamada NOME e dá-lhe VALOR. OPÇÃO pode\n"
 "     ser qualquer opção aceite por \"declare\".\n"
 "     \n"
-"     Variáveis locais só podem ser usadas dentro de uma função; só são "
-"visíveis\n"
+"     Variáveis locais só podem ser usadas dentro de uma função; só são visíveis\n"
 "     para a função onde foram definidas e para os seus filhos.\n"
 "     \n"
 "     Estado de saída:\n"
-"     Devolve sucesso a não ser que uma opção inválida seja fornecida, "
-"ocorra \n"
+"     Devolve sucesso a não ser que uma opção inválida seja fornecida, ocorra \n"
 "     um erro de atribuição ou a consola não esteja a executar uma função."
 
 #: builtins.c:555
 msgid ""
 "Write arguments to the standard output.\n"
 "    \n"
-"    Display the ARGs, separated by a single space character and followed by "
-"a\n"
+"    Display the ARGs, separated by a single space character and followed by a\n"
 "    newline, on the standard output.\n"
 "    \n"
 "    Options:\n"
@@ -3111,11 +2957,9 @@ msgstr ""
 "     Opções:\n"
 "        -n\tnaõ acrescentar nova linha\n"
 "        -e\tpermitir interpretação dos escapes seguintes com barra esquerda\n"
-"        -E\tsuprimir explicitamente interpretação de escapes com barra "
-"esquerda\n"
+"        -E\tsuprimir explicitamente interpretação de escapes com barra esquerda\n"
 "     \n"
-"     \"echo\" interpreta os seguintes caracteres de escapes com barra "
-"esquerda:\n"
+"     \"echo\" interpreta os seguintes caracteres de escapes com barra esquerda:\n"
 "        \\a\talerta (bell)\n"
 "        \\b\tbackspace\n"
 "        \\c\tsuprimir mais saídas\n"
@@ -3191,8 +3035,7 @@ msgstr ""
 "     \n"
 "     Opções:\n"
 "        -a\timprimir lista de internos mostrando se estão ou não activos\n"
-"        -n\tdesactivar cada NOME ou mostrar uma lista de internos "
-"desactivados\n"
+"        -n\tdesactivar cada NOME ou mostrar uma lista de internos desactivados\n"
 "        -p\timprimir a lista de internos em formato reutilizável\n"
 "        -s\timprimir só os nomes de internos \"especiais\" Posix\n"
 "     \n"
@@ -3206,15 +3049,13 @@ msgstr ""
 "     insira \"enable -n test\".\n"
 "     \n"
 "     Estado de saída:\n"
-"     Devolve sucesso a não ser que NOME não seja um interno da consola ou "
-"ocorra um erro."
+"     Devolve sucesso a não ser que NOME não seja um interno da consola ou ocorra um erro."
 
 #: builtins.c:634
 msgid ""
 "Execute arguments as a shell command.\n"
 "    \n"
-"    Combine ARGs into a single string, use the result as input to the "
-"shell,\n"
+"    Combine ARGs into a single string, use the result as input to the shell,\n"
 "    and execute the resulting commands.\n"
 "    \n"
 "    Exit Status:\n"
@@ -3222,8 +3063,7 @@ msgid ""
 msgstr ""
 "Executa argumentos como comando da consola.\n"
 "     \n"
-"     Combina ARGs numa única cadeia, usa o resultado como entrada da "
-"consola,\n"
+"     Combina ARGs numa única cadeia, usa o resultado como entrada da consola,\n"
 "     e executa os comandos resultantes.\n"
 "     \n"
 "     Estado de saída:\n"
@@ -3271,8 +3111,7 @@ msgid ""
 msgstr ""
 "Analisa argumentos da opção.\n"
 "     \n"
-"     Getopts é usado pelos procedimentos da consola para analisar parâmetros "
-"posicionais\n"
+"     Getopts é usado pelos procedimentos da consola para analisar parâmetros posicionais\n"
 "     como opções.\n"
 "     \n"
 "     CADEIAOPÇÕES contém as letras de opção a reconhecer; se uma letra\n"
@@ -3293,8 +3132,7 @@ msgstr ""
 "     Se não houver um argumento requerido, o getopts põe um \":\" no NOME e\n"
 "     define OPTARG como o carácter de opção encontrado. Se o getopts não\n"
 "     estiver em modo silêncio e for vista uma opção inválida, o getopts\n"
-"     põe \"?\" no NOME e limpa OPTARG. Se não houver um argumento "
-"requeriso,\n"
+"     põe \"?\" no NOME e limpa OPTARG. Se não houver um argumento requeriso,\n"
 "     é posto \"?\" no NOME, OPTARG é limpoe é imprimida uma mensagem de\n"
 "     diagnóstico.\n"
 "     \n"
@@ -3302,8 +3140,7 @@ msgstr ""
 "     impressão de mensagens de erro, mesmo que o 1º carácter de\n"
 "     CADEIAOPÇÕES não seja \":\". OPTERR tem o valor 1 predefinido.\n"
 "     \n"
-"     O getopts normalmente analisa os parâmetros posicionais ($0 - $9), mas "
-"se\n"
+"     O getopts normalmente analisa os parâmetros posicionais ($0 - $9), mas se\n"
 "     receber mais argumentos, são eles que são analisados.\n"
 "     \n"
 "     Estado de saída:\n"
@@ -3315,8 +3152,7 @@ msgid ""
 "Replace the shell with the given command.\n"
 "    \n"
 "    Execute COMMAND, replacing this shell with the specified program.\n"
-"    ARGUMENTS become the arguments to COMMAND.  If COMMAND is not "
-"specified,\n"
+"    ARGUMENTS become the arguments to COMMAND.  If COMMAND is not specified,\n"
 "    any redirections take effect in the current shell.\n"
 "    \n"
 "    Options:\n"
@@ -3324,20 +3160,16 @@ msgid ""
 "      -c\texecute COMMAND with an empty environment\n"
 "      -l\tplace a dash in the zeroth argument to COMMAND\n"
 "    \n"
-"    If the command cannot be executed, a non-interactive shell exits, "
-"unless\n"
+"    If the command cannot be executed, a non-interactive shell exits, unless\n"
 "    the shell option `execfail' is set.\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns success unless COMMAND is not found or a redirection error "
-"occurs."
+"    Returns success unless COMMAND is not found or a redirection error occurs."
 msgstr ""
 "Substitui a consola com o comando indicado.\n"
 "     \n"
-"     Executar COMANDO, substituindo esta consola pelo programa "
-"especificado.\n"
-"     ARGUMENTOS tornam-se os argumentos de COMANDO. Se COMANDO não for "
-"especificado,\n"
+"     Executar COMANDO, substituindo esta consola pelo programa especificado.\n"
+"     ARGUMENTOS tornam-se os argumentos de COMANDO. Se COMANDO não for especificado,\n"
 "     quaisquer redireccionamentos têm efeito na consola actual.\n"
 "     \n"
 "     Opções:\n"
@@ -3345,13 +3177,11 @@ msgstr ""
 "        -c\texecuta COMANDO com um ambiente vazio\n"
 "        -l\tpõe uma barra no argumento 0 de COMANDO\n"
 "     \n"
-"     Se o comando não puder ser executado, uma consola não interactiva sai, "
-"a não ser que\n"
+"     Se o comando não puder ser executado, uma consola não interactiva sai, a não ser que\n"
 "     a opção de consola \"execfail\" esteja definida.\n"
 "     \n"
 "     Estado de saída:\n"
-"     Devolve sucesso a não ser que COMANDO não seja encontrado ou ocorra um "
-"erro de redireccionamento."
+"     Devolve sucesso a não ser que COMANDO não seja encontrado ou ocorra um erro de redireccionamento."
 
 #: builtins.c:709
 msgid ""
@@ -3369,29 +3199,25 @@ msgstr ""
 msgid ""
 "Exit a login shell.\n"
 "    \n"
-"    Exits a login shell with exit status N.  Returns an error if not "
-"executed\n"
+"    Exits a login shell with exit status N.  Returns an error if not executed\n"
 "    in a login shell."
 msgstr ""
 "Sai de uma consola com sessão.\n"
 "     \n"
-"     Sai de uma consola com sessão com estado de saída N.  Devolve um erro "
-"se não for\n"
+"     Sai de uma consola com sessão com estado de saída N.  Devolve um erro se não for\n"
 "     executado numa consola com sessão."
 
 #: builtins.c:728
 msgid ""
 "Display or execute commands from the history list.\n"
 "    \n"
-"    fc is used to list or edit and re-execute commands from the history "
-"list.\n"
+"    fc is used to list or edit and re-execute commands from the history list.\n"
 "    FIRST and LAST can be numbers specifying the range, or FIRST can be a\n"
 "    string, which means the most recent command beginning with that\n"
 "    string.\n"
 "    \n"
 "    Options:\n"
-"      -e ENAME\tselect which editor to use.  Default is FCEDIT, then "
-"EDITOR,\n"
+"      -e ENAME\tselect which editor to use.  Default is FCEDIT, then EDITOR,\n"
 "    \t\tthen vi\n"
 "      -l \tlist lines instead of editing\n"
 "      -n\tomit line numbers when listing\n"
@@ -3405,21 +3231,17 @@ msgid ""
 "    the last command.\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns success or status of executed command; non-zero if an error "
-"occurs."
+"    Returns success or status of executed command; non-zero if an error occurs."
 msgstr ""
 "Mostra ou executa comandos da lista do histórico.\n"
 "     \n"
-"     fc é usado para listar ou editar e re-executar comandos da lsiat do "
-"histórico.\n"
-"     PRIMEIRO e ÚLTIMO podem ser números especificando o intervalo, ou "
-"PRIMEIRO pode ser\n"
+"     fc é usado para listar ou editar e re-executar comandos da lsiat do histórico.\n"
+"     PRIMEIRO e ÚLTIMO podem ser números especificando o intervalo, ou PRIMEIRO pode ser\n"
 "     cadeia, que significa o comando mais recente começado por essa\n"
 "     cadeia.\n"
 "     \n"
 "     Opções:\n"
-"        -e NOMEED\tseleciona o editor a usar.  A predefinição é FCEDIT, "
-"depois EDITOR,\n"
+"        -e NOMEED\tseleciona o editor a usar.  A predefinição é FCEDIT, depois EDITOR,\n"
 "     \t\tdepois vi\n"
 "        -l \tlistar linhas em vez de editar\n"
 "        -n\tomitir nºs de linha ao ouvir\n"
@@ -3429,13 +3251,11 @@ msgstr ""
 "     re-executado após a substituição VELHO=NOVO ser realizada.\n"
 "     \n"
 "     Um aliás útil a usar aqui é r=\"fc -s\", para que inserir \"r cc\"\n"
-"     executa o último comando começado por \"cc\" e inserir \"r\" re-"
-"executa\n"
+"     executa o último comando começado por \"cc\" e inserir \"r\" re-executa\n"
 "     o último comando.\n"
 "     \n"
 "     Estado de saída:\n"
-"     Devolve sucesso ou estado do comando executado; não-zero se ocorrer um "
-"erro."
+"     Devolve sucesso ou estado do comando executado; não-zero se ocorrer um erro."
 
 #: builtins.c:758
 msgid ""
@@ -3461,10 +3281,8 @@ msgstr ""
 msgid ""
 "Move jobs to the background.\n"
 "    \n"
-"    Place the jobs identified by each JOB_SPEC in the background, as if "
-"they\n"
-"    had been started with `&'.  If JOB_SPEC is not present, the shell's "
-"notion\n"
+"    Place the jobs identified by each JOB_SPEC in the background, as if they\n"
+"    had been started with `&'.  If JOB_SPEC is not present, the shell's notion\n"
 "    of the current job is used.\n"
 "    \n"
 "    Exit Status:\n"
@@ -3472,23 +3290,19 @@ msgid ""
 msgstr ""
 "Move a tarefa para 2º plano.\n"
 "     \n"
-"     Coloca a tarefa identificada com cada JOB_SPEC em 2º plano, como se "
-"tivessem\n"
-"     sido iniciados com \"&\". Se JOB_SPEC não existir, é usada a noção da "
-"consola de\n"
+"     Coloca a tarefa identificada com cada JOB_SPEC em 2º plano, como se tivessem\n"
+"     sido iniciados com \"&\". Se JOB_SPEC não existir, é usada a noção da consola de\n"
 "     tarefa actual.\n"
 "     \n"
 "     Estado de saída:\n"
-"     Devolve sucesso a não ser que o controlo de tarefas esteja inactivo ou "
-"ocorra um erro."
+"     Devolve sucesso a não ser que o controlo de tarefas esteja inactivo ou ocorra um erro."
 
 #: builtins.c:787
 msgid ""
 "Remember or display program locations.\n"
 "    \n"
 "    Determine and remember the full pathname of each command NAME.  If\n"
-"    no arguments are given, information about remembered commands is "
-"displayed.\n"
+"    no arguments are given, information about remembered commands is displayed.\n"
 "    \n"
 "    Options:\n"
 "      -d\tforget the remembered location of each NAME\n"
@@ -3523,11 +3337,9 @@ msgstr ""
 "     \t\tde comandos lembrados.\n"
 "     \n"
 "     Estado de saída:\n"
-"     Devolve sucesso a não ser que NOME não seja encontrado ou indique uma "
-"opção inválida."
+"     Devolve sucesso a não ser que NOME não seja encontrado ou indique uma opção inválida."
 
 #: builtins.c:812
-#, fuzzy
 msgid ""
 "Display information about builtin commands.\n"
 "    \n"
@@ -3542,17 +3354,15 @@ msgid ""
 "    \t\tPATTERN\n"
 "    \n"
 "    Arguments:\n"
-"      PATTERN\tPattern specifying a help topic\n"
+"      PATTERN\tPattern specifiying a help topic\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns success unless PATTERN is not found or an invalid option is "
-"given."
+"    Returns success unless PATTERN is not found or an invalid option is given."
 msgstr ""
 "Mostra informação sobre comandos internos.\n"
 "     \n"
 "     Mostra breves resumos de comandos internos. Se PADRÃO for\n"
-"     especificado, dá ajuda detalhada em todos os comandos que cumpram "
-"PADRÃO,\n"
+"     especificado, dá ajuda detalhada em todos os comandos que cumpram PADRÃO,\n"
 "     senão imprime a lista de tópicos de ajuda.\n"
 "     \n"
 "     Opções:\n"
@@ -3565,11 +3375,9 @@ msgstr ""
 "        PADRÃO\tPadrão que especifica um tópico de ajuda\n"
 "     \n"
 "     Estado de saída:\n"
-"     Devolve sucesso a não ser que PADRÃO não seja encontrado ou indique uma "
-"opção inválida."
+"     Devolve sucesso a não ser que PADRÃO não seja encontrado ou indique uma opção inválida."
 
 #: builtins.c:836
-#, fuzzy
 msgid ""
 "Display or manipulate the history list.\n"
 "    \n"
@@ -3578,8 +3386,7 @@ msgid ""
 "    \n"
 "    Options:\n"
 "      -c\tclear the history list by deleting all of the entries\n"
-"      -d offset\tdelete the history entry at position OFFSET. Negative\n"
-"    \t\toffsets count back from the end of the history list\n"
+"      -d offset\tdelete the history entry at position OFFSET.\n"
 "    \n"
 "      -a\tappend history lines from this session to the history file\n"
 "      -n\tread all history lines not already read from the history file\n"
@@ -3597,8 +3404,7 @@ msgid ""
 "    \n"
 "    If the HISTTIMEFORMAT variable is set and not null, its value is used\n"
 "    as a format string for strftime(3) to print the time stamp associated\n"
-"    with each displayed history entry.  No time stamps are printed "
-"otherwise.\n"
+"    with each displayed history entry.  No time stamps are printed otherwise.\n"
 "    \n"
 "    Exit Status:\n"
 "    Returns success unless an invalid option is given or an error occurs."
@@ -3606,43 +3412,34 @@ msgstr ""
 "Mostra ou manipula a lista do histórico.\n"
 "     \n"
 "     Mostra a lista do histórico com nºs de linha, prefixando cada entrada\n"
-"     modificada com um \"*\". Um argumento de N lista só as últimas N "
-"entradas.\n"
+"     modificada com um \"*\". Um argumento de N lista só as últimas N entradas.\n"
 "     \n"
 "     Opções:\n"
 "        -c\tlimpa a lista eliminado todas as entradas\n"
 "        -d desvio\telimina a entrada do histórico na posição DESVIO.\n"
 "     \n"
-"        -a\tacrescentar linhas de histórico desta sessão ao ficheiro de "
-"histórico\n"
-"        -n\tler todas as linhas de histórico ainda não lidas do ficheiro de "
-"histórico\n"
+"        -a\tacrescentar linhas de histórico desta sessão ao ficheiro de histórico\n"
+"        -n\tler todas as linhas de histórico ainda não lidas do ficheiro de histórico\n"
 "     \t\te acrescentá-las à lista de histórico\n"
 "        -r\tler o ficheiro de histórico e acrescentar o conteúdo à lista de\n"
 "     \t\thistórico\n"
 "        -w\tescrever o histórico actual no ficheiro de histórico\n"
 "     \n"
-"        -p\trealizar expansão do histórico em cada ARG e mostrar o "
-"resultado\n"
+"        -p\trealizar expansão do histórico em cada ARG e mostrar o resultado\n"
 "     \t\tsem gravar na lista de histórico\n"
 "        -s\tacrescentar ARGs à lista de histórico como entrada única\n"
 "     \n"
 "     Se NOMEFICH for dado, é usado como ficheiro de histórico. Senão,\n"
-"     se FICHHIST tiver um valor, será usado, caso contrário ~/."
-"bash_history.\n"
+"     se FICHHIST tiver um valor, será usado, caso contrário ~/.bash_history.\n"
 "     \n"
-"     Se a variável HISTTIMEFORMAT estiver definida e não for nula, o valor é "
-"usado\n"
-"     como cadeia de formato para strftime(3) para imprimir o carimbo "
-"associado\n"
-"     a cada entrad de histórico mostrada. Senão não são imprimidos quaisquer "
-"carimbos.\n"
+"     Se a variável HISTTIMEFORMAT estiver definida e não for nula, o valor é usado\n"
+"     como cadeia de formato para strftime(3) para imprimir o carimbo associado\n"
+"     a cada entrad de histórico mostrada. Senão não são imprimidos quaisquer carimbos.\n"
 "     \n"
 "     Estado de saída:\n"
-"     Devolve sucesso a não ser que indique uma opção inválida ou ocorra um "
-"erro."
+"     Devolve sucesso a não ser que indique uma opção inválida ou ocorra um erro."
 
-#: builtins.c:873
+#: builtins.c:872
 msgid ""
 "Display status of jobs.\n"
 "    \n"
@@ -3678,18 +3475,15 @@ msgstr ""
 "        -r\trea cadeiae saída a tarefas em execução\n"
 "        -s\trea cadeiae saída a tarefas paradas\n"
 "     \n"
-"     Se -x for usado, COMANDO é executado após todas as especificações de "
-"tarefas\n"
-"     que aparecem em ARGS terem sido substituídas pela ID de processo do "
-"líder de\n"
+"     Se -x for usado, COMANDO é executado após todas as especificações de tarefas\n"
+"     que aparecem em ARGS terem sido substituídas pela ID de processo do líder de\n"
 "     grupo do processo dessat tarefa.\n"
 "     \n"
 "     Estado de saída:\n"
-"     Devolve sucesso a não ser que indique uma opção inválida ou ocorra um "
-"erro.\n"
+"     Devolve sucesso a não ser que indique uma opção inválida ou ocorra um erro.\n"
 "     Se -x for usado, devolve o estado de saída de COMANDO."
 
-#: builtins.c:900
+#: builtins.c:899
 msgid ""
 "Remove jobs from current shell.\n"
 "    \n"
@@ -3712,16 +3506,14 @@ msgstr ""
 "     \n"
 "     Opções:\n"
 "        -a\tremove todas as tarefas se JOBSPEC não for indicado\n"
-"        -h\tmarcar cada JOBSPEC para que SIGHUP não seja enviado para a "
-"tarefa\n"
+"        -h\tmarcar cada JOBSPEC para que SIGHUP não seja enviado para a tarefa\n"
 "     \t\tse a consola receber um SIGHUP\n"
 "        -r\tremove só tarefas em execução\n"
 "     \n"
 "     Estado de saída:\n"
-"     Devolve sucesso a não ser que uma opção inválida ou JOBSPEC seja "
-"indicada."
+"     Devolve sucesso a não ser que uma opção inválida ou JOBSPEC seja indicada."
 
-#: builtins.c:919
+#: builtins.c:918
 msgid ""
 "Send a signal to a job.\n"
 "    \n"
@@ -3756,24 +3548,21 @@ msgstr ""
 "     \t\tassumidos como nºs de sinal para listar os nomes\n"
 "        -L\tsinónimo de -l\n"
 "     \n"
-"     Mata um interno da consola por dois motivos: permite usar as IDs de "
-"tarefa\n"
+"     Mata um interno da consola por dois motivos: permite usar as IDs de tarefa\n"
 "     em vez de IDs de processo e permite matar processos se o limite de\n"
 "     processos que pode criar for atingido.\n"
 "     \n"
 "     Estado de saída:\n"
-"     Devolve sucesso a não ser que indique uma opção inválida ou ocorra um "
-"erro."
+"     Devolve sucesso a não ser que indique uma opção inválida ou ocorra um erro."
 
-#: builtins.c:943
+#: builtins.c:942
 msgid ""
 "Evaluate arithmetic expressions.\n"
 "    \n"
 "    Evaluate each ARG as an arithmetic expression.  Evaluation is done in\n"
 "    fixed-width integers with no check for overflow, though division by 0\n"
 "    is trapped and flagged as an error.  The following list of operators is\n"
-"    grouped into levels of equal-precedence operators.  The levels are "
-"listed\n"
+"    grouped into levels of equal-precedence operators.  The levels are listed\n"
 "    in order of decreasing precedence.\n"
 "    \n"
 "    \tid++, id--\tvariable post-increment, post-decrement\n"
@@ -3812,10 +3601,8 @@ msgstr ""
 "Avalia as expressões aritméticas.\n"
 "     \n"
 "     Avalia cada ARG como uma expressão aritmética. A avaliação é feita em\n"
-"     inteiros de largura fixa sem verificação de transporte, embora a "
-"divisão\n"
-"     por 0 seja sinalizada como erro. A seguinte lista de operadores é "
-"agrupada\n"
+"     inteiros de largura fixa sem verificação de transporte, embora a divisão\n"
+"     por 0 seja sinalizada como erro. A seguinte lista de operadores é agrupada\n"
 "     em níveis de igual prioridade. Os níveis estão listados\n"
 "     por ordem de precedência decrescente.\n"
 "     \n"
@@ -3840,10 +3627,8 @@ msgstr ""
 "     \t+=, -=, <<=, >>=,\n"
 "     \t&=, ^=, |=\tatribuição\n"
 "     \n"
-"     As variáveis de consola são permitidas como operandos. O nome da "
-"variável\n"
-"     é substituído pelo seu valor (convertido em inteiro de largura fixa) "
-"dentro\n"
+"     As variáveis de consola são permitidas como operandos. O nome da variável\n"
+"     é substituído pelo seu valor (convertido em inteiro de largura fixa) dentro\n"
 "     de uma expressão. A variável não tem de ter o seu atributo inteiro\n"
 "     activado para ser usado numa expressão.\n"
 "     \n"
@@ -3854,35 +3639,30 @@ msgstr ""
 "     Estado de saída:\n"
 "     Se o último ARG for avaliado como 0, let devolve 1; senão let devolve 0."
 
-#: builtins.c:988
-#, fuzzy
+#: builtins.c:987
 msgid ""
 "Read a line from the standard input and split it into fields.\n"
 "    \n"
 "    Reads a single line from the standard input, or from file descriptor FD\n"
-"    if the -u option is supplied.  The line is split into fields as with "
-"word\n"
+"    if the -u option is supplied.  The line is split into fields as with word\n"
 "    splitting, and the first word is assigned to the first NAME, the second\n"
 "    word to the second NAME, and so on, with any leftover words assigned to\n"
-"    the last NAME.  Only the characters found in $IFS are recognized as "
-"word\n"
+"    the last NAME.  Only the characters found in $IFS are recognized as word\n"
 "    delimiters.\n"
 "    \n"
-"    If no NAMEs are supplied, the line read is stored in the REPLY "
-"variable.\n"
+"    If no NAMEs are supplied, the line read is stored in the REPLY variable.\n"
 "    \n"
 "    Options:\n"
 "      -a array\tassign the words read to sequential indices of the array\n"
 "    \t\tvariable ARRAY, starting at zero\n"
 "      -d delim\tcontinue until the first character of DELIM is read, rather\n"
 "    \t\tthan newline\n"
-"      -e\tuse Readline to obtain the line\n"
+"      -e\tuse Readline to obtain the line in an interactive shell\n"
 "      -i text\tuse TEXT as the initial text for Readline\n"
 "      -n nchars\treturn after reading NCHARS characters rather than waiting\n"
 "    \t\tfor a newline, but honor a delimiter if fewer than\n"
 "    \t\tNCHARS characters are read before the delimiter\n"
-"      -N nchars\treturn only after reading exactly NCHARS characters, "
-"unless\n"
+"      -N nchars\treturn only after reading exactly NCHARS characters, unless\n"
 "    \t\tEOF is encountered or read times out, ignoring any\n"
 "    \t\tdelimiter\n"
 "      -p prompt\toutput the string PROMPT without a trailing newline before\n"
@@ -3900,39 +3680,32 @@ msgid ""
 "      -u fd\tread from file descriptor FD instead of the standard input\n"
 "    \n"
 "    Exit Status:\n"
-"    The return code is zero, unless end-of-file is encountered, read times "
-"out\n"
-"    (in which case it's greater than 128), a variable assignment error "
-"occurs,\n"
+"    The return code is zero, unless end-of-file is encountered, read times out\n"
+"    (in which case it's greater than 128), a variable assignment error occurs,\n"
 "    or an invalid file descriptor is supplied as the argument to -u."
 msgstr ""
 "Lê uma linha da entrada padrão e divide-a em campos.\n"
 "     \n"
 "     Lê uma linha da entrada padrão ou do descritor de ficheiro FD\n"
 "     se a opção -u for usada. A linha é dividida em campos como na divisão\n"
-"     de palavras e a primeira palavra é atribuída ao primeiro NOME, a "
-"segunda\n"
+"     de palavras e a primeira palavra é atribuída ao primeiro NOME, a segunda\n"
 "     ao segundo NOME, e assim em diante, com quaisquer palavras que sobrem \n"
-"     atribuídas ao último NOME. Só caracteres encontrados em $IFS são "
-"reconhecidos\n"
+"     atribuídas ao último NOME. Só caracteres encontrados em $IFS são reconhecidos\n"
 "     como delimitadores de palavras.\n"
 "     \n"
 "     Se não indicar NOMEs, a linha é armazenada na variável RESPONDER.\n"
 "     \n"
 "     Opções:\n"
-"        -a matriz\tatribui as palavras lidas a índices sequenciais da "
-"MATRIZ\n"
+"        -a matriz\tatribui as palavras lidas a índices sequenciais da MATRIZ\n"
 "     \t\tcomeçando em zero\n"
-"        -d delim\tcontinua até que o primeiro carácter de DELIM seja lido, "
-"em vez da\n"
+"        -d delim\tcontinua até que o primeiro carácter de DELIM seja lido, em vez da\n"
 "     \t\tnova linha\n"
 "        -e\tuse Readline para obter a linha numa consola interactiva\n"
 "        -i texto\tuse TEXTO como texto inicial para Readline\n"
 "        -n ncars\tvoltar após ler NCARS caracteres em vez de esperar\n"
 "     \t\tpor nova linha, mas respeita um delimitador se estiver\n"
 "     \t\tantes de NCARS caracteres\n"
-"        -N ncars\tvoltar após ler exactamente NCARS caracteres, a não ser "
-"que\n"
+"        -N ncars\tvoltar após ler exactamente NCARS caracteres, a não ser que\n"
 "     \t\tEOF seja encontrado ou a leitura esteja inactiva, ignorando\n"
 "     \t\tqualquer delimitador\n"
 "        -p prompt\timprime PROMPT na saída sem nova linha final antes de\n"
@@ -3950,13 +3723,11 @@ msgstr ""
 "        -u fd\tler do descritor de ficheiro FD em vez da entrada padrão\n"
 "     \n"
 "     Estado de saída:\n"
-"     O código devolvido é zero, a não ser que end-of-file seja encontrado, "
-"haja\n"
-"     inacção (caso em que é maior que 128), ocorra um erro de atribuição de "
-"variável,\n"
+"     O código devolvido é zero, a não ser que end-of-file seja encontrado, haja\n"
+"     inacção (caso em que é maior que 128), ocorra um erro de atribuição de variável,\n"
 "     ou seja indicado um descritor de ficheiro inválido como argumento de -u."
 
-#: builtins.c:1035
+#: builtins.c:1034
 msgid ""
 "Return from a shell function.\n"
 "    \n"
@@ -3974,10 +3745,9 @@ msgstr ""
 "     executado dentro da função ou script.\n"
 "     \n"
 "     Estado de saída:\n"
-"     Devolve N, ou falha se a consola não estiver a executar uma função ou "
-"script."
+"     Devolve N, ou falha se a consola não estiver a executar uma função ou script."
 
-#: builtins.c:1048
+#: builtins.c:1047
 msgid ""
 "Set or unset values of shell options and positional parameters.\n"
 "    \n"
@@ -4020,8 +3790,7 @@ msgid ""
 "              physical     same as -P\n"
 "              pipefail     the return value of a pipeline is the status of\n"
 "                           the last command to exit with a non-zero status,\n"
-"                           or zero if no command exited with a non-zero "
-"status\n"
+"                           or zero if no command exited with a non-zero status\n"
 "              posix        change the behavior of bash where the default\n"
 "                           operation differs from the Posix standard to\n"
 "                           match the standard\n"
@@ -4045,8 +3814,7 @@ msgid ""
 "          by default when the shell is interactive.\n"
 "      -P  If set, do not resolve symbolic links when executing commands\n"
 "          such as cd which change the current directory.\n"
-"      -T  If set, the DEBUG and RETURN traps are inherited by shell "
-"functions.\n"
+"      -T  If set, the DEBUG and RETURN traps are inherited by shell functions.\n"
 "      --  Assign any remaining arguments to the positional parameters.\n"
 "          If there are no remaining arguments, the positional parameters\n"
 "          are unset.\n"
@@ -4070,12 +3838,10 @@ msgstr ""
 "     Opções:\n"
 "        -a  Marca variáveis modificadas ou criadas para exportação.\n"
 "         -b Notifica o fim da tarefa imediatamente.\n"
-"         -e Sai imediatamente se um comando sair com estado diferente de "
-"zero.\n"
+"         -e Sai imediatamente se um comando sair com estado diferente de zero.\n"
 "         -f Desactiva geração de nome de ficheiro (globbing).\n"
 "         -h Recordar localização de comandos à medida que são procurados.\n"
-"         -k Todos os argumentos de atribuição são colocados no ambiente para "
-"um\n"
+"         -k Todos os argumentos de atribuição são colocados no ambiente para um\n"
 "             comando, não só os que precedem o nome do comando.\n"
 "         -m Activa o controlo de tarefas.\n"
 "         -n Lê comandos, mas não os executa.\n"
@@ -4092,8 +3858,7 @@ msgstr ""
 "                  history        activa histórico de comandos\n"
 "                  ignoreeof     a consola não sai após ler EOF\n"
 "                  interactive-comments\n"
-"                                    permite que comentários apareçam em "
-"comandos interactivos\n"
+"                                    permite que comentários apareçam em comandos interactivos\n"
 "                  keyword        igual a -k\n"
 "                  monitor        igual a -m\n"
 "                  noclobber     igual a -C\n"
@@ -4104,16 +3869,11 @@ msgstr ""
 "                  nounset        igual a -u\n"
 "                  onecmd         igual a -t\n"
 "                  physical      igual a -P\n"
-"                  pipefail      o valor devolvido de um pipeline é o estado "
-"do\n"
-"                                    último comando a sair com estado não-"
-"zero,\n"
-"                                    ou zero se nenhum saiu com estado não-"
-"zero\n"
-"                  posix          altera o comportamento do bash onde a "
-"operação\n"
-"                                    predefinida diferir da norma Posix para "
-"cumprir\n"
+"                  pipefail      o valor devolvido de um pipeline é o estado do\n"
+"                                    último comando a sair com estado não-zero,\n"
+"                                    ou zero se nenhum saiu com estado não-zero\n"
+"                  posix          altera o comportamento do bash onde a operação\n"
+"                                    predefinida diferir da norma Posix para cumprir\n"
 "                                    a norma\n"
 "                  privileged    igual a -p\n"
 "                  verbose        igual a -v\n"
@@ -4122,28 +3882,24 @@ msgstr ""
 "        -p  Activado sempre que as ID de utilizador reais e efectivas não\n"
 "             coincidam. Desactiva o processamento do ficheiro $ ENV e a \n"
 "             importação de funções da consola. Desligar esta opção faz com\n"
-"             que os uid e gid efectivos sejam definidos para os uid e gid "
-"reais.\n"
+"             que os uid e gid efectivos sejam definidos para os uid e gid reais.\n"
 "        -t  Sair depois de ler e executar um comando.\n"
 "        -u  Trata as variáveis ​​não definidas como erro ao substituir.\n"
 "        -v  Imprime as linhas de entrada da consola à medida que são lidas.\n"
 "        -x  Imprime comandos e seus argumentos à medida que são executados.\n"
 "        -B  a consola realizará expansão de suporte\n"
-"        -C  Se definido, não permitir que ficheiros normais existentes "
-"sejam\n"
+"        -C  Se definido, não permitir que ficheiros normais existentes sejam\n"
 "             sobrescritos pelo redireccionamento da saída.\n"
 "        -E  se definido, ERR é herdada pelas funções de consola.\n"
 "        -H  Activa estilo ! de substituição do histórico. Esta bandeira\n"
 "             está activada por predefinição, em consolas interativas.\n"
 "        -P  Se definido, não resolve ligações simbólicas ao executar\n"
 "             comandos como \"cd\" que altera a pasta actual.\n"
-"        -T  Se definido, DEBUG e RETURN são herdadas por funções de "
-"consola.\n"
+"        -T  Se definido, DEBUG e RETURN são herdadas por funções de consola.\n"
 "        --  Atribui quaisquer outros argumentos aos parâmetros posicionais.\n"
 "             Se não houver mais argumentos, os parâmetros posicionais\n"
 "             são limpos.\n"
-"        -    Atribui quaisquer outros argumentos aos parâmetros "
-"posicionais.\n"
+"        -    Atribui quaisquer outros argumentos aos parâmetros posicionais.\n"
 "             As opções -x e -v são desactivadas.\n"
 "     \n"
 "     Usar + em vez de - faz com que as bandeiras sejam desactivadas. As\n"
@@ -4155,7 +3911,7 @@ msgstr ""
 "     Estado de saída:\n"
 "     Devolve sucesso a não ser que indique uma opção inválida."
 
-#: builtins.c:1133
+#: builtins.c:1132
 msgid ""
 "Unset values and attributes of shell variables and functions.\n"
 "    \n"
@@ -4167,8 +3923,7 @@ msgid ""
 "      -n\ttreat each NAME as a name reference and unset the variable itself\n"
 "    \t\trather than the variable it references\n"
 "    \n"
-"    Without options, unset first tries to unset a variable, and if that "
-"fails,\n"
+"    Without options, unset first tries to unset a variable, and if that fails,\n"
 "    tries to unset a function.\n"
 "    \n"
 "    Some variables cannot be unset; also see `readonly'.\n"
@@ -4192,16 +3947,14 @@ msgstr ""
 "     Algumas variáveis não podem ser limpas; veja também \"readonly\".\n"
 "     \n"
 "     Estado de saída:\n"
-"     Devolve sucesso a não ser que indique uma opção inválida ou NOME seja "
-"só de leitura."
+"     Devolve sucesso a não ser que indique uma opção inválida ou NOME seja só de leitura."
 
-#: builtins.c:1155
+#: builtins.c:1154
 msgid ""
 "Set export attribute for shell variables.\n"
 "    \n"
 "    Marks each NAME for automatic export to the environment of subsequently\n"
-"    executed commands.  If VALUE is supplied, assign VALUE before "
-"exporting.\n"
+"    executed commands.  If VALUE is supplied, assign VALUE before exporting.\n"
 "    \n"
 "    Options:\n"
 "      -f\trefer to shell functions\n"
@@ -4216,8 +3969,7 @@ msgstr ""
 "Define o atributo de exportação em variáveis de consola.\n"
 "     \n"
 "     Marca cada NOME para exportação automática para o ambiente de futuros\n"
-"     comandos executados. Se VALOR for fornecido, atribui VALOR antes de "
-"exportar.\n"
+"     comandos executados. Se VALOR for fornecido, atribui VALOR antes de exportar.\n"
 "     \n"
 "     Opções:\n"
 "        -f\trefere funções de consola\n"
@@ -4227,10 +3979,9 @@ msgstr ""
 "     Um argumento \"--\" desactiva futuro processamento da opção.\n"
 "     \n"
 "     Estado de saída:\n"
-"     Devolve sucesso a não ser que indique uma opção inválida ou NOME seja "
-"inválido."
+"     Devolve sucesso a não ser que indique uma opção inválida ou NOME seja inválido."
 
-#: builtins.c:1174
+#: builtins.c:1173
 msgid ""
 "Mark shell variables as unchangeable.\n"
 "    \n"
@@ -4260,17 +4011,15 @@ msgstr ""
 "        -a\trefere a variáveis de matriz indexadas\n"
 "        -A\trefere a variáveis de matriz associativas\n"
 "        -f\trefere a funções de consola\n"
-"        -p\tmostra uma lista de todas as variáveis ou funções só de "
-"leitura,\n"
+"        -p\tmostra uma lista de todas as variáveis ou funções só de leitura,\n"
 "     \t\tdependendo ou não se a opção -f é indicada\n"
 "     \n"
 "     Um argumento \"--\" desactiva futuro processamento da opção.\n"
 "     \n"
 "     Estado de saída:\n"
-"     Devolve sucesso a não ser que indique uma opção inválida ou NOME seja "
-"inválido."
+"     Devolve sucesso a não ser que indique uma opção inválida ou NOME seja inválido."
 
-#: builtins.c:1196
+#: builtins.c:1195
 msgid ""
 "Shift positional parameters.\n"
 "    \n"
@@ -4288,7 +4037,7 @@ msgstr ""
 "     Estado de saída:\n"
 "     Devolve sucesso a não ser que N seja negativo ou maior que $#."
 
-#: builtins.c:1208 builtins.c:1223
+#: builtins.c:1207 builtins.c:1222
 msgid ""
 "Execute commands from a file in the current shell.\n"
 "    \n"
@@ -4312,7 +4061,7 @@ msgstr ""
 "     Devolve o estado do último comando executado em NOMEFICH; falha se\n"
 "     NOMEFICH não pode ser lido."
 
-#: builtins.c:1239
+#: builtins.c:1238
 msgid ""
 "Suspend shell execution.\n"
 "    \n"
@@ -4334,10 +4083,9 @@ msgstr ""
 "        -f\tforçar a suspensão, mesmo que seja uma consola com sessão\n"
 "     \n"
 "     Estado de saída:\n"
-"     Devolve sucesso a não ser que o controlo de tarefa esteja inactivo ou "
-"ocorra um erro."
+"     Devolve sucesso a não ser que o controlo de tarefa esteja inactivo ou ocorra um erro."
 
-#: builtins.c:1255
+#: builtins.c:1254
 msgid ""
 "Evaluate conditional expression.\n"
 "    \n"
@@ -4371,8 +4119,7 @@ msgid ""
 "      -x FILE        True if the file is executable by you.\n"
 "      -O FILE        True if the file is effectively owned by you.\n"
 "      -G FILE        True if the file is effectively owned by your group.\n"
-"      -N FILE        True if the file has been modified since it was last "
-"read.\n"
+"      -N FILE        True if the file has been modified since it was last read.\n"
 "    \n"
 "      FILE1 -nt FILE2  True if file1 is newer than file2 (according to\n"
 "                       modification date).\n"
@@ -4393,8 +4140,7 @@ msgid ""
 "      STRING1 != STRING2\n"
 "                     True if the strings are not equal.\n"
 "      STRING1 < STRING2\n"
-"                     True if STRING1 sorts before STRING2 "
-"lexicographically.\n"
+"                     True if STRING1 sorts before STRING2 lexicographically.\n"
 "      STRING1 > STRING2\n"
 "                     True if STRING1 sorts after STRING2 lexicographically.\n"
 "    \n"
@@ -4422,10 +4168,8 @@ msgstr ""
 "Avalia a expressão condicional.\n"
 "     \n"
 "     Sai com estado 0 (verdadeiro) ou 1 (falso) dependendo da\n"
-"     avaliação de EXPR. As expressões podem ser unárias ou binárias. "
-"Expressões\n"
-"     uinárias são frequentemente usadas para examinar o estado de um "
-"ficheiro. Há\n"
+"     avaliação de EXPR. As expressões podem ser unárias ou binárias. Expressões\n"
+"     uinárias são frequentemente usadas para examinar o estado de um ficheiro. Há\n"
 "     também operadores de cadeias e operadores de comparação numérica.\n"
 "     \n"
 "     O comportamento do teste depende do número de argumentos. Leia a\n"
@@ -4435,17 +4179,14 @@ msgstr ""
 "     \n"
 "        -a FICHEIRO     Verdadeiro se o ficheiro existir.\n"
 "        -b FICHEIRO     Verdadeiro se o ficheiro for bloqueio especial.\n"
-"        -c FICHEIRO     Verdadeiro se o ficheiro for especial de "
-"caracteres.\n"
+"        -c FICHEIRO     Verdadeiro se o ficheiro for especial de caracteres.\n"
 "        -d FICHEIRO     Verdadeiro se o ficheiro for uma pasta.\n"
 "        -e FICHEIRO     Verdadeiro se o ficheiro existir.\n"
-"        -f FICHEIRO     Verdadeiro se o ficheiro existe e é um ficheiro "
-"normal.\n"
+"        -f FICHEIRO     Verdadeiro se o ficheiro existe e é um ficheiro normal.\n"
 "        -g FICHEIRO     Verdadeiro se o ficheiro for set-group-id.\n"
 "        -h FICHEIRO     Verdadeiro se o ficheiro for uma ligação simbólica.\n"
 "        -L FICHEIRO     Verdadeiro se o ficheiro for uma ligação simbólica.\n"
-"        -k FICHEIRO     Verdadeiro se o ficheiro tiver o bit \"sticky\" "
-"definido.\n"
+"        -k FICHEIRO     Verdadeiro se o ficheiro tiver o bit \"sticky\" definido.\n"
 "        -p FICHEIRO     Verdadeiro se o ficheiro for um pipe com nome.\n"
 "        -r FICHEIRO     Verdadeiro se o ficheiro for legível.\n"
 "        -s FICHEIRO     Verdadeiro se o ficheiro existe e não está vazio.\n"
@@ -4454,23 +4195,16 @@ msgstr ""
 "        -u FICHEIRO     Verdadeiro se o ficheiro for set-user-id.\n"
 "        -w FICHEIRO     Verdadeiro se o ficheiro for gravável por si.\n"
 "        -x FICHEIRO     Verdadeiro se o ficheiro for executável por si.\n"
-"        -O FICHEIRO     Verdadeiro se o ficheiro for efectivamente sua "
-"propriedade.\n"
-"        -G FICHEIRO     Verdadeiro se o ficheiro for efectivamente "
-"propriedade do seu grupo.\n"
-"        -N FICHEIRO     Verdadeiro se o ficheiro foi modificado desde a "
-"última vez que foi lido.\n"
+"        -O FICHEIRO     Verdadeiro se o ficheiro for efectivamente sua propriedade.\n"
+"        -G FICHEIRO     Verdadeiro se o ficheiro for efectivamente propriedade do seu grupo.\n"
+"        -N FICHEIRO     Verdadeiro se o ficheiro foi modificado desde a última vez que foi lido.\n"
 "     \n"
-"         FICHEIRO1 -nt FICHEIRO2 Verdadeiro se o ficheiro1 for mais novo "
-"que\n"
-"                                         o ficheiro2 (de acordo com a data "
-"de modificação).\n"
+"         FICHEIRO1 -nt FICHEIRO2 Verdadeiro se o ficheiro1 for mais novo que\n"
+"                                         o ficheiro2 (de acordo com a data de modificação).\n"
 "     \n"
-"         FICHEIRO1 -ot FICHEIRO2 Verdadeiro se ficheiro1 for mais antigo que "
-"o ficheiro2.\n"
+"         FICHEIRO1 -ot FICHEIRO2 Verdadeiro se ficheiro1 for mais antigo que o ficheiro2.\n"
 "     \n"
-"         FICHEIRO1 -ef FICHEIRO2 Verdadeiro se ficheiro1 for uma ligação "
-"rígida a file2.\n"
+"         FICHEIRO1 -ef FICHEIRO2 Verdadeiro se ficheiro1 for uma ligação rígida a file2.\n"
 "     \n"
 "     Operadores de cadeias:\n"
 "     \n"
@@ -4484,20 +4218,15 @@ msgstr ""
 "         CADEIA1 != CADEIA2\n"
 "                             Verdadeiro se as cadeias não são iguais.\n"
 "         CADEIA1 < CADEIA2\n"
-"                             Verdadeiro se CADEIA1 ficar antes de CADEIA2 "
-"lexicamente.\n"
+"                             Verdadeiro se CADEIA1 ficar antes de CADEIA2 lexicamente.\n"
 "         CADEIA1 > CADEIA2\n"
-"                             Verdadeiro se CADEIA1 ficar após CADEIA2 "
-"lexicamente.\n"
+"                             Verdadeiro se CADEIA1 ficar após CADEIA2 lexicamente.\n"
 "     \n"
 "     Outros operadores:\n"
 "     \n"
-"        -o OPÇÃO         Verdadeiro se a opção de consola OPÇÃO está "
-"activada.\n"
-"        -v VAR            Verdadeiro se a variável de consola VAR estiver "
-"definida.\n"
-"        -R VAR            Verdadeiro se a variável de consola VAR estiver "
-"definida e for um nome\n"
+"        -o OPÇÃO         Verdadeiro se a opção de consola OPÇÃO está activada.\n"
+"        -v VAR            Verdadeiro se a variável de consola VAR estiver definida.\n"
+"        -R VAR            Verdadeiro se a variável de consola VAR estiver definida e for um nome\n"
 "                            referência.\n"
 "        ! EXPR            Verdadeiro se EXPR for falso.\n"
 "        EXPR1 -a EXPR2 Verdadeiro se EXPR1 e EXPR2 forem verdadeiros.\n"
@@ -4506,17 +4235,15 @@ msgstr ""
 "        arg1 OP arg2    Testes aritméticos. OP é um de -eq, -ne,\n"
 "                           -lt, -le, -gt, ou -ge.\n"
 "     \n"
-"     Operadores binários aritméticos devolvem verdadeiro se ARG1 for igual, "
-"não\n"
+"     Operadores binários aritméticos devolvem verdadeiro se ARG1 for igual, não\n"
 "     igual, menor que, menor ou igual que, maior que ou maior ou igual que\n"
 "     ARG2.\n"
 "     \n"
 "     Estado de saída:\n"
-"     Devolve sucesso se EXPR for avaliada como verdadeiro; falha se EXPR "
-"for\n"
+"     Devolve sucesso se EXPR for avaliada como verdadeiro; falha se EXPR for\n"
 "     avaliado como falso ou for indicado um argumento inválido."
 
-#: builtins.c:1337
+#: builtins.c:1336
 msgid ""
 "Evaluate conditional expression.\n"
 "    \n"
@@ -4528,12 +4255,11 @@ msgstr ""
 "     Este é um sinónimo para o interno \"test\", mas o último argumento tem\n"
 "     de ser um \"]\" literal, para fechar o \"[\" aberto."
 
-#: builtins.c:1346
+#: builtins.c:1345
 msgid ""
 "Display process times.\n"
 "    \n"
-"    Prints the accumulated user and system times for the shell and all of "
-"its\n"
+"    Prints the accumulated user and system times for the shell and all of its\n"
 "    child processes.\n"
 "    \n"
 "    Exit Status:\n"
@@ -4541,19 +4267,17 @@ msgid ""
 msgstr ""
 "Mostrar tempos de processo.\n"
 "     \n"
-"     Imprime os tempos acumulados de utilizador e sistema para a consola e "
-"todos\n"
+"     Imprime os tempos acumulados de utilizador e sistema para a consola e todos\n"
 "     os seus processos-filho.\n"
 "     \n"
 "     Estado de saída:\n"
 "     Sempre com sucesso."
 
-#: builtins.c:1358
+#: builtins.c:1357
 msgid ""
 "Trap signals and other events.\n"
 "    \n"
-"    Defines and activates handlers to be run when the shell receives "
-"signals\n"
+"    Defines and activates handlers to be run when the shell receives signals\n"
 "    or other conditions.\n"
 "    \n"
 "    ARG is a command to be read and executed when the shell receives the\n"
@@ -4562,34 +4286,26 @@ msgid ""
 "    value.  If ARG is the null string each SIGNAL_SPEC is ignored by the\n"
 "    shell and by the commands it invokes.\n"
 "    \n"
-"    If a SIGNAL_SPEC is EXIT (0) ARG is executed on exit from the shell.  "
-"If\n"
-"    a SIGNAL_SPEC is DEBUG, ARG is executed before every simple command.  "
-"If\n"
-"    a SIGNAL_SPEC is RETURN, ARG is executed each time a shell function or "
-"a\n"
-"    script run by the . or source builtins finishes executing.  A "
-"SIGNAL_SPEC\n"
-"    of ERR means to execute ARG each time a command's failure would cause "
-"the\n"
+"    If a SIGNAL_SPEC is EXIT (0) ARG is executed on exit from the shell.  If\n"
+"    a SIGNAL_SPEC is DEBUG, ARG is executed before every simple command.  If\n"
+"    a SIGNAL_SPEC is RETURN, ARG is executed each time a shell function or a\n"
+"    script run by the . or source builtins finishes executing.  A SIGNAL_SPEC\n"
+"    of ERR means to execute ARG each time a command's failure would cause the\n"
 "    shell to exit when the -e option is enabled.\n"
 "    \n"
-"    If no arguments are supplied, trap prints the list of commands "
-"associated\n"
+"    If no arguments are supplied, trap prints the list of commands associated\n"
 "    with each signal.\n"
 "    \n"
 "    Options:\n"
 "      -l\tprint a list of signal names and their corresponding numbers\n"
 "      -p\tdisplay the trap commands associated with each SIGNAL_SPEC\n"
 "    \n"
-"    Each SIGNAL_SPEC is either a signal name in <signal.h> or a signal "
-"number.\n"
+"    Each SIGNAL_SPEC is either a signal name in <signal.h> or a signal number.\n"
 "    Signal names are case insensitive and the SIG prefix is optional.  A\n"
 "    signal may be sent to the shell with \"kill -signal $$\".\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns success unless a SIGSPEC is invalid or an invalid option is "
-"given."
+"    Returns success unless a SIGSPEC is invalid or an invalid option is given."
 msgstr ""
 "Capturar sinais e outros eventos.\n"
 "     \n"
@@ -4598,40 +4314,32 @@ msgstr ""
 "     \n"
 "     ARG é um comando a ser lido e executado quando a consola recebe o(s)\n"
 "     sinal(is) SIGNAL_SPEC. Se ARG estiver ausente (e um único SIGNAL_SPEC\n"
-"     for fornecido) ou \"-\", cada sinal especificado é reposto no seu "
-"valor\n"
+"     for fornecido) ou \"-\", cada sinal especificado é reposto no seu valor\n"
 "     original. Se ARG for a cadeia nula, cada SIGNAL_SPEC será ignorado\n"
 "     pela consola e pelos comandos que chama.\n"
 "     \n"
 "     Se um SIGNAL_SPEC for EXIT (0) ARG é executado na saída da consola. Se\n"
 "     SIGNAL_SPEC é DEBUG, ARG é executado antes de cada comando simples. Se\n"
-"     SIGNAL_SPEC é RETURN, ARG é executado cada vez que uma função de "
-"consola\n"
-"     ou um script executado pelo . ou os internos terminam a execução. "
-"SIGNAL_SPEC\n"
-"     de ERR significa executar ARG cada vez que uma falha do comando faça "
-"com\n"
+"     SIGNAL_SPEC é RETURN, ARG é executado cada vez que uma função de consola\n"
+"     ou um script executado pelo . ou os internos terminam a execução. SIGNAL_SPEC\n"
+"     de ERR significa executar ARG cada vez que uma falha do comando faça com\n"
 "     que a consola sair quando a opção -e está activa.\n"
 "     \n"
 "     Se nenhum argumento for fornecido, trap imprime a lista de comandos \n"
 "     associados a cada sinal.\n"
 "     \n"
 "     Opções:\n"
-"        -l imprime uma lista de nomes de sinais e seus números "
-"correspondentes\n"
+"        -l imprime uma lista de nomes de sinais e seus números correspondentes\n"
 "        -p mostra os comandos trap associados a cada SIGNAL_SPEC\n"
 "     \n"
-"     Cada SIGNAL_SPEC é um nome de sinal em <signal.h> ou um número de "
-"sinal.\n"
-"     Os nomes dos sinais são insensíveis a maiúsculas e o prefixo SIG é "
-"opcional.\n"
+"     Cada SIGNAL_SPEC é um nome de sinal em <signal.h> ou um número de sinal.\n"
+"     Os nomes dos sinais são insensíveis a maiúsculas e o prefixo SIG é opcional.\n"
 "     Um sinal pode ser enviado para a consola com \"kill -signal $$\".\n"
 "     \n"
 "     Estado de saída:\n"
-"     Devolve sucesso a não ser que SIGSPEC seja inválido ou indique uma "
-"opção inválida."
+"     Devolve sucesso a não ser que SIGSPEC seja inválido ou indique uma opção inválida."
 
-#: builtins.c:1394
+#: builtins.c:1393
 msgid ""
 "Display information about command type.\n"
 "    \n"
@@ -4657,8 +4365,7 @@ msgid ""
 "      NAME\tCommand name to be interpreted.\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns success if all of the NAMEs are found; fails if any are not "
-"found."
+"    Returns success if all of the NAMEs are found; fails if any are not found."
 msgstr ""
 "Mostra informações sobre o tipo de comando.\n"
 "     \n"
@@ -4675,10 +4382,8 @@ msgstr ""
 "     \t\tque seria executado\n"
 "        -p\tdevolve o nome do ficheiro em disco que seria executado,\n"
 "     \t\tou nada se \"type -t NOME\" não devolver \"file\"\n"
-"        -t\tdevolve uma só palavra de entre \"alias\", \"keyword\", "
-"\"function\"\n"
-"     \t\t\"builtin\", \"file\" ou \"\", se NOME for um aliás, palavra "
-"reservada\n"
+"        -t\tdevolve uma só palavra de entre \"alias\", \"keyword\", \"function\"\n"
+"     \t\t\"builtin\", \"file\" ou \"\", se NOME for um aliás, palavra reservada\n"
 "     \t\tda consola, função de consola, interno da consola, ficheiro em\n"
 "     \t\tdisco, ou não encontrados, respectivamente\n"
 "     \n"
@@ -4686,15 +4391,13 @@ msgstr ""
 "        Nome do comando NOME a interpretar.\n"
 "     \n"
 "     Estado de saída:\n"
-"     Devolve sucesso se todos os NOMEs forem encontrados; falha se algum não "
-"for."
+"     Devolve sucesso se todos os NOMEs forem encontrados; falha se algum não for."
 
-#: builtins.c:1425
+#: builtins.c:1424
 msgid ""
 "Modify shell resource limits.\n"
 "    \n"
-"    Provides control over the resources available to the shell and "
-"processes\n"
+"    Provides control over the resources available to the shell and processes\n"
 "    it creates, on systems that allow such control.\n"
 "    \n"
 "    Options:\n"
@@ -4739,8 +4442,7 @@ msgid ""
 msgstr ""
 "Modifica os limites de recursos da consola.\n"
 "     \n"
-"     Fornece controlo sobre os recursos disponíveis para consola e "
-"processos\n"
+"     Fornece controlo sobre os recursos disponíveis para consola e processos\n"
 "     que cria, em sistemas que permitem esse controlo.\n"
 "     \n"
 "     Opções:\n"
@@ -4751,8 +4453,7 @@ msgstr ""
 "        -c\to tamanho máximo dos ficheiros núcleo criados\n"
 "        -d\to tamanho máximo do segmento de dados de um processo\n"
 "        -e\ta prioridade máxima de agendamento (\"nice\")\n"
-"        -f\to tamanho máximo dos ficheiros escritos pela consola e seus "
-"filhos\n"
+"        -f\to tamanho máximo dos ficheiros escritos pela consola e seus filhos\n"
 "        -i\to número máximo de sinais pendentes\n"
 "        -k\to número máximo de kqueues alocados para este processo\n"
 "        -l\to tamanho máximo que um processo pode bloquear na memória\n"
@@ -4773,22 +4474,18 @@ msgstr ""
 "     \n"
 "     Se LIMIT for indicada, é o novo valor do recurso especificado; Os\n"
 "     valores LIMIT especiais \"soft\", \"hard\" e \"unlimited\" representam\n"
-"     olimite flexível actual, o limite rígido actual e nenhum limite, "
-"respectivamente.\n"
+"     olimite flexível actual, o limite rígido actual e nenhum limite, respectivamente.\n"
 "     Caso contrário, é imprimido o valor actual do recurso especificado. Se\n"
 "     nenhuma opção for indicada, então -f é assumido.\n"
 "     \n"
-"     Os valores estão em incrementos de 1024 bytes, exceto para -t, que é em "
-"segundos,\n"
-"     -p, que é em incrementos de 512 bytes e -u, que é um número de "
-"processos\n"
+"     Os valores estão em incrementos de 1024 bytes, exceto para -t, que é em segundos,\n"
+"     -p, que é em incrementos de 512 bytes e -u, que é um número de processos\n"
 "     sem escala.\n"
 "     \n"
 "     Estado de saída:\n"
-"     Devolve sucesso a não ser que seja indicada uma opção inválida ou "
-"ocorra um erro."
+"     Devolve sucesso a não ser que seja indicada uma opção inválida ou ocorra um erro."
 
-#: builtins.c:1475
+#: builtins.c:1474
 msgid ""
 "Display or set file mode mask.\n"
 "    \n"
@@ -4807,94 +4504,74 @@ msgid ""
 msgstr ""
 "Mostrar ou definir a máscara do modo de ficheiro.\n"
 "     \n"
-"     Define a máscara do utilizador de criação de ficheiro para MODO. Se "
-"MODO\n"
+"     Define a máscara do utilizador de criação de ficheiro para MODO. Se MODO\n"
 "     for omitido, imprime o valor actual da máscara.\n"
 "     \n"
 "     Se MODO começa com um dígito, é interpretado como um número octal;\n"
-"     caso contrário, é uma cadeia de modo simbólico como a aceite por chmod"
-"(1).\n"
+"     caso contrário, é uma cadeia de modo simbólico como a aceite por chmod(1).\n"
 "     \n"
 "     Opções:\n"
-"        -p\tse MODO for omitido, saída de forma a que possa ser reutilizado "
-"como entrada\n"
-"        -S\ttorna a saída simbólica; caso contrário, a saída é um número "
-"octal\n"
+"        -p\tse MODO for omitido, saída de forma a que possa ser reutilizado como entrada\n"
+"        -S\ttorna a saída simbólica; caso contrário, a saída é um número octal\n"
 "     \n"
 "     Estado de saída:\n"
-"     Devolve sucesso a não ser que MODO seja inválido ou indique uma opção "
-"inválida."
+"     Devolve sucesso a não ser que MODO seja inválido ou indique uma opção inválida."
 
-#: builtins.c:1495
-#, fuzzy
+#: builtins.c:1494
 msgid ""
 "Wait for job completion and return exit status.\n"
 "    \n"
-"    Waits for each process identified by an ID, which may be a process ID or "
-"a\n"
+"    Waits for each process identified by an ID, which may be a process ID or a\n"
 "    job specification, and reports its termination status.  If ID is not\n"
 "    given, waits for all currently active child processes, and the return\n"
-"    status is zero.  If ID is a job specification, waits for all processes\n"
+"    status is zero.  If ID is a job specification, waits for all processes\n"
 "    in that job's pipeline.\n"
 "    \n"
 "    If the -n option is supplied, waits for the next job to terminate and\n"
 "    returns its exit status.\n"
 "    \n"
-"    If the -f option is supplied, and job control is enabled, waits for the\n"
-"    specified ID to terminate, instead of waiting for it to change status.\n"
-"    \n"
 "    Exit Status:\n"
 "    Returns the status of the last ID; fails if ID is invalid or an invalid\n"
 "    option is given."
 msgstr ""
 "Aguarda a conclusão da tarefa e devolve o estado de saída.\n"
 "     \n"
-"     Espera por cada processo identificado por uma ID, que pode ser uma ID "
-"de\n"
-"     processo ou uma especificação de tarefa e reporta o estado final. Se "
-"não\n"
-"     for dada uma ID, aguarda por todos os processos-filho actualmente "
-"activos e o\n"
-"     estado de saída é zero. Se ID for uma especificação de tarefa, espera "
-"por\n"
+"     Espera por cada processo identificado por uma ID, que pode ser uma ID de\n"
+"     processo ou uma especificação de tarefa e reporta o estado final. Se não\n"
+"     for dada uma ID, aguarda por todos os processos-filho actualmente activos e o\n"
+"     estado de saída é zero. Se ID for uma especificação de tarefa, espera por\n"
 "     todos os processos no pipeline da tarefa.\n"
 "     \n"
 "     Se a opção -n for fornecida, espera que a próxima tarefa termine e\n"
 "     devolve seu estado de saída.\n"
 "     \n"
 "     Estado de saída:\n"
-"     Devolve o estado da última ID; falha se a ID for inválido ou for "
-"indicada\n"
+"     Devolve o estado da última ID; falha se a ID for inválido ou for indicada\n"
 "     uma opção inválida."
 
-#: builtins.c:1519
+#: builtins.c:1515
 msgid ""
 "Wait for process completion and return exit status.\n"
 "    \n"
-"    Waits for each process specified by a PID and reports its termination "
-"status.\n"
+"    Waits for each process specified by a PID and reports its termination status.\n"
 "    If PID is not given, waits for all currently active child processes,\n"
 "    and the return status is zero.  PID must be a process ID.\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns the status of the last PID; fails if PID is invalid or an "
-"invalid\n"
+"    Returns the status of the last PID; fails if PID is invalid or an invalid\n"
 "    option is given."
 msgstr ""
 "Aguarda a conclusão do processo e devolve o estado de saída.\n"
 "     \n"
-"     Espera por cada processo especificado por uma PID e reporta o estado "
-"final.\n"
-"     Se PID não for dada, aguarda por todos os processos-filho actualmente "
-"activos,\n"
+"     Espera por cada processo especificado por uma PID e reporta o estado final.\n"
+"     Se PID não for dada, aguarda por todos os processos-filho actualmente activos,\n"
 "     e o estado devolvido é zero. A PID tem de ser uma ID de processo.\n"
 "     \n"
 "     Estado de saída:\n"
-"     Devolve o estado da última PID; falha se PID for inválido ou for "
-"indicada\n"
+"     Devolve o estado da última PID; falha se PID for inválido ou for indicada\n"
 "     uma opção inválida."
 
-#: builtins.c:1534
+#: builtins.c:1530
 msgid ""
 "Execute commands for each member in a list.\n"
 "    \n"
@@ -4908,18 +4585,15 @@ msgid ""
 msgstr ""
 "Executa comandos para cada membro numa lista.\n"
 "     \n"
-"     O ciclo \"for\" executa uma seqüência de comandos para cada membro "
-"numa\n"
-"     lista de itens. Se \"in PALAVRAS ...;\" não estiver presente, \" in \"$@"
-"\" \" é\n"
-"     assumido. Para cada elemento em PALAVRAS, NOME está definido para "
-"esseelemento,\n"
+"     O ciclo \"for\" executa uma seqüência de comandos para cada membro numa\n"
+"     lista de itens. Se \"in PALAVRAS ...;\" não estiver presente, \" in \"$@\" \" é\n"
+"     assumido. Para cada elemento em PALAVRAS, NOME está definido para esseelemento,\n"
 "     e os COMANDOS são executados.\n"
 "     \n"
 "     Estado de saída:\n"
 "     Devolve o estado do último comando executado."
 
-#: builtins.c:1548
+#: builtins.c:1544
 msgid ""
 "Arithmetic for loop.\n"
 "    \n"
@@ -4943,14 +4617,13 @@ msgstr ""
 "     \t\tCOMANDOS\n"
 "     \t\t(( EXP3 ))\n"
 "     \tdone\n"
-"     EXP1, EXP2 e EXP3 são expressões aritméicas. Se alguma delas for "
-"omitida\n"
+"     EXP1, EXP2 e EXP3 são expressões aritméicas. Se alguma delas for omitida\n"
 "     comporta-se como se fosse avaliada como 1.\n"
 "     \n"
 "     Estado de saída:\n"
 "     Devolve o estado do último comando executado."
 
-#: builtins.c:1566
+#: builtins.c:1562
 msgid ""
 "Select words from a list and execute commands.\n"
 "    \n"
@@ -4986,7 +4659,7 @@ msgstr ""
 "     Estado de saída:\n"
 "     Devolve o estado do último comando executado."
 
-#: builtins.c:1587
+#: builtins.c:1583
 msgid ""
 "Report time consumed by pipeline's execution.\n"
 "    \n"
@@ -5004,8 +4677,7 @@ msgstr ""
 "Reporta o tempo consumido pela execução do pipeline.\n"
 "     \n"
 "     Executa PIPELINE e imprime um resumo do tempo real, tempo de CPU do,\n"
-"     utilizador e tempo de CPU do sistema na execução de PIPELINE quando "
-"terminar.\n"
+"     utilizador e tempo de CPU do sistema na execução de PIPELINE quando terminar.\n"
 "     \n"
 "     Opções:\n"
 "        -p\timprime o resumo do tempo no formato portátil Posix\n"
@@ -5015,7 +4687,7 @@ msgstr ""
 "     Estado de saída:\n"
 "     O estado devolvido é o estado de PIPELINE."
 
-#: builtins.c:1604
+#: builtins.c:1600
 msgid ""
 "Execute commands based on pattern matching.\n"
 "    \n"
@@ -5033,21 +4705,16 @@ msgstr ""
 "     Estado de saída:\n"
 "     Devolve o estado do último comando executado."
 
-#: builtins.c:1616
+#: builtins.c:1612
 msgid ""
 "Execute commands based on conditional.\n"
 "    \n"
-"    The `if COMMANDS' list is executed.  If its exit status is zero, then "
-"the\n"
-"    `then COMMANDS' list is executed.  Otherwise, each `elif COMMANDS' list "
-"is\n"
+"    The `if COMMANDS' list is executed.  If its exit status is zero, then the\n"
+"    `then COMMANDS' list is executed.  Otherwise, each `elif COMMANDS' list is\n"
 "    executed in turn, and if its exit status is zero, the corresponding\n"
-"    `then COMMANDS' list is executed and the if command completes.  "
-"Otherwise,\n"
-"    the `else COMMANDS' list is executed, if present.  The exit status of "
-"the\n"
-"    entire construct is the exit status of the last command executed, or "
-"zero\n"
+"    `then COMMANDS' list is executed and the if command completes.  Otherwise,\n"
+"    the `else COMMANDS' list is executed, if present.  The exit status of the\n"
+"    entire construct is the exit status of the last command executed, or zero\n"
 "    if no condition tested true.\n"
 "    \n"
 "    Exit Status:\n"
@@ -5056,22 +4723,17 @@ msgstr ""
 "Executa comandos com base em condicional.\n"
 "     \n"
 "     A lista \"if COMANDOS\" é executada. Se o estado de saída for zero, é\n"
-"     executada a lista \"then COMANDOS\". Caso contrário, cada lista \"elif "
-"COMANDOS\"\n"
-"     é executado por sua vez e se o estado de saída for zero, a "
-"correspondente\n"
-"     lista \"then COMANDOS\" é executada e o comando if é concluído. De "
-"outra forma,\n"
-"     a lista \"else COMANDOS\" é executada, se presente. O estado de saída "
-"da\n"
-"     construção inteira é o estado de saída do último comando executado, ou "
-"zero\n"
+"     executada a lista \"then COMANDOS\". Caso contrário, cada lista \"elif COMANDOS\"\n"
+"     é executado por sua vez e se o estado de saída for zero, a correspondente\n"
+"     lista \"then COMANDOS\" é executada e o comando if é concluído. De outra forma,\n"
+"     a lista \"else COMANDOS\" é executada, se presente. O estado de saída da\n"
+"     construção inteira é o estado de saída do último comando executado, ou zero\n"
 "     se nenhuma condição for verdadeira.\n"
 "     \n"
 "     Estado de saída:\n"
 "     Devolve o estado do último comando executado."
 
-#: builtins.c:1633
+#: builtins.c:1629
 msgid ""
 "Execute commands as long as a test succeeds.\n"
 "    \n"
@@ -5089,7 +4751,7 @@ msgstr ""
 "     Estado de saída:\n"
 "     Devolve o estado do último comando executado."
 
-#: builtins.c:1645
+#: builtins.c:1641
 msgid ""
 "Execute commands as long as a test does not succeed.\n"
 "    \n"
@@ -5107,7 +4769,7 @@ msgstr ""
 "     Estado de saída:\n"
 "     Devolve o estado do último comando executado."
 
-#: builtins.c:1657
+#: builtins.c:1653
 msgid ""
 "Create a coprocess named NAME.\n"
 "    \n"
@@ -5121,8 +4783,7 @@ msgid ""
 msgstr ""
 "Cria um co-processo chamado NOME.\n"
 "     \n"
-"     Executa COMANDO assincronamente, com a saída e a entrada padrão "
-"ligadas\n"
+"     Executa COMANDO assincronamente, com a saída e a entrada padrão ligadas\n"
 "     via pipe a descritores de ficheiro atribuídos a índices 0 e 1 de uma \n"
 "     variável de matriz NOME na consola em execução.\n"
 "     O NOME predefinido é \"COPROC\".\n"
@@ -5130,13 +4791,12 @@ msgstr ""
 "     Estado de saída:\n"
 "     O comando coproc devolve um estado de saída 0."
 
-#: builtins.c:1671
+#: builtins.c:1667
 msgid ""
 "Define shell function.\n"
 "    \n"
 "    Create a shell function named NAME.  When invoked as a simple command,\n"
-"    NAME runs COMMANDs in the calling shell's context.  When NAME is "
-"invoked,\n"
+"    NAME runs COMMANDs in the calling shell's context.  When NAME is invoked,\n"
 "    the arguments are passed to the function as $1...$n, and the function's\n"
 "    name is in $FUNCNAME.\n"
 "    \n"
@@ -5153,7 +4813,7 @@ msgstr ""
 "     Estado de saída:\n"
 "     Devolve sucesso a não ser que NOME seja só de leitura."
 
-#: builtins.c:1685
+#: builtins.c:1681
 msgid ""
 "Group commands as a unit.\n"
 "    \n"
@@ -5171,7 +4831,7 @@ msgstr ""
 "     Estado de saída:\n"
 "     Devolve o estado do último comando executado."
 
-#: builtins.c:1697
+#: builtins.c:1693
 msgid ""
 "Resume job in foreground.\n"
 "    \n"
@@ -5195,7 +4855,7 @@ msgstr ""
 "     Estado de saída:\n"
 "     Devolve o estado da tarefa retomada."
 
-#: builtins.c:1712
+#: builtins.c:1708
 msgid ""
 "Evaluate arithmetic expression.\n"
 "    \n"
@@ -5213,16 +4873,13 @@ msgstr ""
 "     Estado de saída:\n"
 "     Devolve 1 se EXPRESSÃO avaliar como 0; senão, devolve 0."
 
-#: builtins.c:1724
+#: builtins.c:1720
 msgid ""
 "Execute conditional command.\n"
 "    \n"
-"    Returns a status of 0 or 1 depending on the evaluation of the "
-"conditional\n"
-"    expression EXPRESSION.  Expressions are composed of the same primaries "
-"used\n"
-"    by the `test' builtin, and may be combined using the following "
-"operators:\n"
+"    Returns a status of 0 or 1 depending on the evaluation of the conditional\n"
+"    expression EXPRESSION.  Expressions are composed of the same primaries used\n"
+"    by the `test' builtin, and may be combined using the following operators:\n"
 "    \n"
 "      ( EXPRESSION )\tReturns the value of EXPRESSION\n"
 "      ! EXPRESSION\t\tTrue if EXPRESSION is false; else false\n"
@@ -5243,29 +4900,22 @@ msgstr ""
 "Executa o comando condicional.\n"
 "     \n"
 "     Devolve um estado de 0 ou 1, dependendo da avaliação da expressão\n"
-"     condicional EXPRESSÃO. As expressões são compostas pelas mesmas "
-"primárias\n"
-"     usadas pelo interno \"test\" e pode ser combinado com os seguintes "
-"operadores:\n"
+"     condicional EXPRESSÃO. As expressões são compostas pelas mesmas primárias\n"
+"     usadas pelo interno \"test\" e pode ser combinado com os seguintes operadores:\n"
 "     \n"
 "        ( EXPRESSÃO )\tDevolve o valor de EXPRESSÃO\n"
 "        ! EXPRESSÃO\t\tVerdadeiro se EXPRESSÃO for falsa; senão falso\n"
-"        EXPR1 && EXPR2\tVerdadeiro se EXPR1 e EXPR2 forem verdadeiras; senão "
-"falso\n"
-"        EXPR1 || EXPR2\tVerdadeiro se EXPR1 ou EXPR2 forem verdadeiras; "
-"senão falso\n"
-"     \n"
-"     Quando os operadores \"==\" e \"! =\" são usados, a cadeia à direita do "
-"operador\n"
-"     é usada como padrão e é feita a comparação de padrões. Quando o "
-"operador \"= ~\"\n"
-"     é usado, a cadeia à direita do operador é comparada como expressão "
-"regular.\n"
+"        EXPR1 && EXPR2\tVerdadeiro se EXPR1 e EXPR2 forem verdadeiras; senão falso\n"
+"        EXPR1 || EXPR2\tVerdadeiro se EXPR1 ou EXPR2 forem verdadeiras; senão falso\n"
+"     \n"
+"     Quando os operadores \"==\" e \"! =\" são usados, a cadeia à direita do operador\n"
+"     é usada como padrão e é feita a comparação de padrões. Quando o operador \"= ~\"\n"
+"     é usado, a cadeia à direita do operador é comparada como expressão regular.\n"
 "     \n"
 "     Os operadores && e || não avaliam EXPR2 se EXPR1 for suficiente para\n"
 "     determinar o valor da expressão."
 
-#: builtins.c:1750
+#: builtins.c:1746
 msgid ""
 "Common shell variable names and usage.\n"
 "    \n"
@@ -5323,11 +4973,9 @@ msgstr ""
 "    BASH_VERSION\tInformações de versão para esta bash.\n"
 "    CDPATH\tUma lista de pastas separadas por \":\" para procurar\n"
 "    \t\tpor pastas dadas como argumentos a \"cd\".\n"
-"    GLOBIGNORE\tUma lista de padrões separada por \":\" que descreve nomes "
-"de\n"
+"    GLOBIGNORE\tUma lista de padrões separada por \":\" que descreve nomes de\n"
 "    ficheiro a ignorar pela expansão do nome do caminho.\n"
-"    HISTFILE\tNome de ficheiro onde o seu histórico de comandos é "
-"armazenado.\n"
+"    HISTFILE\tNome de ficheiro onde o seu histórico de comandos é armazenado.\n"
 "    HISTFILESIZE\tNúmero máximo de linhas que este ficheiro pode conter.\n"
 "    HISTSIZE\tNúmero máximo de linhas de histórico a que uma consola em \n"
 "    \t\texecução pode aceder.\n"
@@ -5340,8 +4988,7 @@ msgstr ""
 "    \t\tvazia antes que a consola saia (predefinição 10).\n"
 "    \t\tQuando não definido, EOF significa o fim da entrada.\n"
 "    MACHTYPE\tDescrição do sistema actual em que a bash está em execução.\n"
-"    MAILCHECK\tFrequência, em segundos, com que a bash procura novo "
-"correio.\n"
+"    MAILCHECK\tFrequência, em segundos, com que a bash procura novo correio.\n"
 "    MAILPATH\tLista de ficheiros separados por \":\" onde a bash procura\n"
 "    \t\tnovas mensagens.\n"
 "    OSTYPE\tVersão Unix em que esta versão da bash está em execução.\n"
@@ -5364,17 +5011,15 @@ msgstr ""
 "    \t\t\"substring\" significa que a palavra de comando deve ser igual\n"
 "    \t\ta uma sub-cadeia da tarefa. Qualquer outro valor significa que\n"
 "    \t\to comando deve ser um prefixo de uma tarefa interrompida.\n"
-"    histchars\tCaracteres que controlam a expansão do histórico e "
-"substituições\n"
+"    histchars\tCaracteres que controlam a expansão do histórico e substituições\n"
 "    \t\trápidas. O primeiro carácter é o carácter de subtituição do\n"
 "    \t\thistórico, normalmente \"!\". O 2º é o de substituição rápida,\n"
 "    \t\thabitualmente \"^\". O terceiro é o comentário do histórico,\n"
 "    \t\tnormalmente \"#\".\n"
-"    HISTIGNORE\tLista de padrões separada por \":\" usados para decidir "
-"quais\n"
+"    HISTIGNORE\tLista de padrões separada por \":\" usados para decidir quais\n"
 "    \t\tos comandos que devem ser gravados na lista de histórico.\n"
 
-#: builtins.c:1807
+#: builtins.c:1803
 msgid ""
 "Add directories to stack.\n"
 "    \n"
@@ -5432,7 +5077,7 @@ msgstr ""
 "    Devolve sucesso a não ser que indique um argumento inválido ou a\n"
 "    troca de pastas falhe."
 
-#: builtins.c:1841
+#: builtins.c:1837
 msgid ""
 "Remove directories from stack.\n"
 "    \n"
@@ -5482,7 +5127,7 @@ msgstr ""
 "     Devolve sucesso a não ser que indique um argumento inválido ou a troca\n"
 "     de pastas falhe."
 
-#: builtins.c:1871
+#: builtins.c:1867
 msgid ""
 "Display directory stack.\n"
 "    \n"
@@ -5534,17 +5179,15 @@ msgstr ""
 "    \t\tpor zero.\n"
 "    \n"
 "    Estado de saída:\n"
-"    Devolve sucesso a não ser que indique uma opção inválida ou ocorra um "
-"erro"
+"    Devolve sucesso a não ser que indique uma opção inválida ou ocorra um erro"
 
-#: builtins.c:1902
-#, fuzzy
+#: builtins.c:1898
 msgid ""
 "Set and unset shell options.\n"
 "    \n"
 "    Change the setting of each shell option OPTNAME.  Without any option\n"
-"    arguments, list each supplied OPTNAME, or all shell options if no\n"
-"    OPTNAMEs are given, with an indication of whether or not each is set.\n"
+"    arguments, list all shell options with an indication of whether or not each\n"
+"    is set.\n"
 "    \n"
 "    Options:\n"
 "      -o\trestrict OPTNAMEs to those defined for use with `set -o'\n"
@@ -5574,7 +5217,7 @@ msgstr ""
 "    Devolve sucesso se OPTNOME estiver activado; falha se indicar uma opção\n"
 "    inválida ou OPTNOME esteja desactivada."
 
-#: builtins.c:1923
+#: builtins.c:1919
 msgid ""
 "Formats and prints ARGUMENTS under control of the FORMAT.\n"
 "    \n"
@@ -5582,34 +5225,27 @@ msgid ""
 "      -v var\tassign the output to shell variable VAR rather than\n"
 "    \t\tdisplay it on the standard output\n"
 "    \n"
-"    FORMAT is a character string which contains three types of objects: "
-"plain\n"
-"    characters, which are simply copied to standard output; character "
-"escape\n"
+"    FORMAT is a character string which contains three types of objects: plain\n"
+"    characters, which are simply copied to standard output; character escape\n"
 "    sequences, which are converted and copied to the standard output; and\n"
-"    format specifications, each of which causes printing of the next "
-"successive\n"
+"    format specifications, each of which causes printing of the next successive\n"
 "    argument.\n"
 "    \n"
-"    In addition to the standard format specifications described in printf"
-"(1),\n"
+"    In addition to the standard format specifications described in printf(1),\n"
 "    printf interprets:\n"
 "    \n"
 "      %b\texpand backslash escape sequences in the corresponding argument\n"
 "      %q\tquote the argument in a way that can be reused as shell input\n"
-"      %(fmt)T\toutput the date-time string resulting from using FMT as a "
-"format\n"
+"      %(fmt)T\toutput the date-time string resulting from using FMT as a format\n"
 "    \t        string for strftime(3)\n"
 "    \n"
 "    The format is re-used as necessary to consume all of the arguments.  If\n"
 "    there are fewer arguments than the format requires,  extra format\n"
-"    specifications behave as if a zero value or null string, as "
-"appropriate,\n"
+"    specifications behave as if a zero value or null string, as appropriate,\n"
 "    had been supplied.\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns success unless an invalid option is given or a write or "
-"assignment\n"
+"    Returns success unless an invalid option is given or a write or assignment\n"
 "    error occurs."
 msgstr ""
 "Formata e imprime ARGUMENTOS sob controlo do FORMATO.\n"
@@ -5620,43 +5256,33 @@ msgstr ""
 "    \n"
 "    FORMATO é uma cadeia de caracteres que contém três tipos de objectos: \n"
 "    caracteres simples, que são simplesmente copiados para a saída padrão;\n"
-"    sequências de escape, que são convertidas e copiadas para a saída "
-"padrão; e\n"
-"    especificações de formato, cada uma das quais causa a impressão do "
-"argumento\n"
+"    sequências de escape, que são convertidas e copiadas para a saída padrão; e\n"
+"    especificações de formato, cada uma das quais causa a impressão do argumento\n"
 "    sucessivo seguinte.\n"
 "    \n"
 "    Além das especificações de formato padrão descritas em printf (1),\n"
 "    printf interpreta:\n"
 "    \n"
 "      %b\texpande sequências de escape para o argumento correspondente\n"
-"      %q\tcita o argumento de forma a ser reutilizado como entrada de "
-"consola\n"
-"      %(fmt)T\timprime a cadeia de data-hora resultante da utilização do "
-"FMT\n"
+"      %q\tcita o argumento de forma a ser reutilizado como entrada de consola\n"
+"      %(fmt)T\timprime a cadeia de data-hora resultante da utilização do FMT\n"
 "    \t\tcomo formato para strftime(3)\n"
 "    \n"
-"    O formato é reutilizado conforme necessário para consumir todos os "
-"argumentos.\n"
-"    E se há menos argumentos do que o formato requer, especificações de "
-"formato\n"
-"    extra comportam-se como um valor zero ou uma cadeia nula, conforme "
-"apropriado,\n"
+"    O formato é reutilizado conforme necessário para consumir todos os argumentos.\n"
+"    E se há menos argumentos do que o formato requer, especificações de formato\n"
+"    extra comportam-se como um valor zero ou uma cadeia nula, conforme apropriado,\n"
 "    tenha sido fornecido.\n"
 "    \n"
 "    Estado de saída:\n"
-"    Devolve sucesso a não ser que indique uma opção inválida ou ocorra um "
-"erro de\n"
+"    Devolve sucesso a não ser que indique uma opção inválida ou ocorra um erro de\n"
 "    escrita ou atribuição."
 
-#: builtins.c:1957
+#: builtins.c:1953
 msgid ""
 "Specify how arguments are to be completed by Readline.\n"
 "    \n"
-"    For each NAME, specify how arguments are to be completed.  If no "
-"options\n"
-"    are supplied, existing completion specifications are printed in a way "
-"that\n"
+"    For each NAME, specify how arguments are to be completed.  If no options\n"
+"    are supplied, existing completion specifications are printed in a way that\n"
 "    allows them to be reused as input.\n"
 "    \n"
 "    Options:\n"
@@ -5677,15 +5303,12 @@ msgid ""
 msgstr ""
 "Especifica como os argumentos devem ser concluídos por Readline.\n"
 "    \n"
-"    Para cada NOME, especifica como os argumentos devem ser concluídos. Se "
-"não \n"
-"    fornecer opções, as especificações de conclusão existentes são "
-"imprimidas\n"
+"    Para cada NOME, especifica como os argumentos devem ser concluídos. Se não \n"
+"    fornecer opções, as especificações de conclusão existentes são imprimidas\n"
 "    de forma a permitir que sejam reutilizados como entrada.\n"
 "    \n"
 "    Opções:\n"
-"      -p\timprime especificações de conclusão existentes em formato "
-"reutilizável\n"
+"      -p\timprime especificações de conclusão existentes em formato reutilizável\n"
 "      -r\tremove uma especificação de conclusão para cada NOME, ou, se não\n"
 "    \t\tforneceu NOMEs, todas as especificações de conclusão\n"
 "      -D\taplicar as conclusões e acções como predefinição para comandos\n"
@@ -5697,13 +5320,12 @@ msgstr ""
 "     as opções de letras maiúsculas estão listadas acima. A opção -D toma\n"
 "     precedência sobre -E."
 
-#: builtins.c:1985
+#: builtins.c:1981
 msgid ""
 "Display possible completions depending on the options.\n"
 "    \n"
 "    Intended to be used from within a shell function generating possible\n"
-"    completions.  If the optional WORD argument is supplied, matches "
-"against\n"
+"    completions.  If the optional WORD argument is supplied, matches against\n"
 "    WORD are generated.\n"
 "    \n"
 "    Exit Status:\n"
@@ -5716,19 +5338,15 @@ msgstr ""
 "    são geradas comparações com PALAVRA.\n"
 "    \n"
 "    Estado de saída:\n"
-"    Devolve sucesso a não ser que indique uma opção inválida ou ocorra um "
-"erro."
+"    Devolve sucesso a não ser que indique uma opção inválida ou ocorra um erro."
 
-#: builtins.c:2000
+#: builtins.c:1996
 msgid ""
 "Modify or display completion options.\n"
 "    \n"
-"    Modify the completion options for each NAME, or, if no NAMEs are "
-"supplied,\n"
-"    the completion currently being executed.  If no OPTIONs are given, "
-"print\n"
-"    the completion options for each NAME or the current completion "
-"specification.\n"
+"    Modify the completion options for each NAME, or, if no NAMEs are supplied,\n"
+"    the completion currently being executed.  If no OPTIONs are given, print\n"
+"    the completion options for each NAME or the current completion specification.\n"
 "    \n"
 "    Options:\n"
 "    \t-o option\tSet completion option OPTION for each NAME\n"
@@ -5751,12 +5369,9 @@ msgid ""
 msgstr ""
 "Modifica ou mostra as opções de conclusão.\n"
 "    \n"
-"    Modifica as opções de conclusão para cada NOME, ou, se não fornecer "
-"NOME,\n"
-"    a conclusão actualmente em execução. Se nenhuma OPÇÃO for fornecida, "
-"imprime\n"
-"    as opções de conclusão para cada NOME ou a especificação de conclusão "
-"actual.\n"
+"    Modifica as opções de conclusão para cada NOME, ou, se não fornecer NOME,\n"
+"    a conclusão actualmente em execução. Se nenhuma OPÇÃO for fornecida, imprime\n"
+"    as opções de conclusão para cada NOME ou a especificação de conclusão actual.\n"
 "    \n"
 "    Opções:\n"
 "    \t-o opção\tDefinir opção de conclusão OPÇÃO para cada NOME\n"
@@ -5767,40 +5382,31 @@ msgstr ""
 "    \n"
 "    Argumentos:\n"
 "    \n"
-"    Cada NOME refere-se a um comando para o qual uma especificação de "
-"conclusão\n"
-"    deve ter sido anteriormente definida usando o interno \"complete\". Se "
-"não\n"
+"    Cada NOME refere-se a um comando para o qual uma especificação de conclusão\n"
+"    deve ter sido anteriormente definida usando o interno \"complete\". Se não\n"
 "    forneceu NOMEs, compopt tem de ser chamado por uma função actualmente a\n"
-"    gerar conclusões e as opções para esse gerador de conclusões "
-"actualmente\n"
+"    gerar conclusões e as opções para esse gerador de conclusões actualmente\n"
 "    em execução são modificadas.\n"
 "    \n"
 "    Estado de saída:\n"
-"    Devolve sucesso a não ser que indique uma opção inválida ou NOME não "
-"tenha\n"
+"    Devolve sucesso a não ser que indique uma opção inválida ou NOME não tenha\n"
 "    uma especificação de conclusão definida."
 
-#: builtins.c:2030
+#: builtins.c:2026
 msgid ""
 "Read lines from the standard input into an indexed array variable.\n"
 "    \n"
-"    Read lines from the standard input into the indexed array variable "
-"ARRAY, or\n"
-"    from file descriptor FD if the -u option is supplied.  The variable "
-"MAPFILE\n"
+"    Read lines from the standard input into the indexed array variable ARRAY, or\n"
+"    from file descriptor FD if the -u option is supplied.  The variable MAPFILE\n"
 "    is the default ARRAY.\n"
 "    \n"
 "    Options:\n"
 "      -d delim\tUse DELIM to terminate lines, instead of newline\n"
-"      -n count\tCopy at most COUNT lines.  If COUNT is 0, all lines are "
-"copied\n"
-"      -O origin\tBegin assigning to ARRAY at index ORIGIN.  The default "
-"index is 0\n"
+"      -n count\tCopy at most COUNT lines.  If COUNT is 0, all lines are copied\n"
+"      -O origin\tBegin assigning to ARRAY at index ORIGIN.  The default index is 0\n"
 "      -s count\tDiscard the first COUNT lines read\n"
 "      -t\tRemove a trailing DELIM from each line read (default newline)\n"
-"      -u fd\tRead lines from file descriptor FD instead of the standard "
-"input\n"
+"      -u fd\tRead lines from file descriptor FD instead of the standard input\n"
 "      -C callback\tEvaluate CALLBACK each time QUANTUM lines are read\n"
 "      -c quantum\tSpecify the number of lines read between each call to\n"
 "    \t\t\tCALLBACK\n"
@@ -5813,31 +5419,25 @@ msgid ""
 "    element to be assigned and the line to be assigned to that element\n"
 "    as additional arguments.\n"
 "    \n"
-"    If not supplied with an explicit origin, mapfile will clear ARRAY "
-"before\n"
+"    If not supplied with an explicit origin, mapfile will clear ARRAY before\n"
 "    assigning to it.\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns success unless an invalid option is given or ARRAY is readonly "
-"or\n"
+"    Returns success unless an invalid option is given or ARRAY is readonly or\n"
 "    not an indexed array."
 msgstr ""
 "Lê linhas da entrada padrão para uma variável de matriz indexada.\n"
 "    \n"
-"    Lê linhas da entrada padrão para a variável de matriz indexada MATRIZ, "
-"ou\n"
-"    do descritor de ficheiro FD se a opção -u for fornecida. A variável "
-"MAPFILE\n"
+"    Lê linhas da entrada padrão para a variável de matriz indexada MATRIZ, ou\n"
+"    do descritor de ficheiro FD se a opção -u for fornecida. A variável MAPFILE\n"
 "    é a MATRIZ predefinida.\n"
 "    \n"
 "    Opções:\n"
 "      -d delim\tUsa DELIM para terminar as linhas, em vez de nova linha\n"
 "      -n total\tCopia no máximo TOTAL linhas. Se TOTAL for 0, copia todas\n"
-"      -O origem\tComeça a atribuir a MATRIZ no índice ORIGEM. A predefinição "
-"é 0\n"
+"      -O origem\tComeça a atribuir a MATRIZ no índice ORIGEM. A predefinição é 0\n"
 "      -s total\tDescarta as primeiras TOTAL linhas lidas\n"
-"      -t\tRemove um DELIM inicial de cada linha lida (predefinição é nova "
-"linha)\n"
+"      -t\tRemove um DELIM inicial de cada linha lida (predefinição é nova linha)\n"
 "      -u fd\tLê linhas do descritor de ficheiro FD em vez da entrada padrão\n"
 "      -C retorno\tAvalia RETORNO cada vez que QUANTUM linhas são lidas\n"
 "      -c quantum\tEspecifica o número de linhas lidas entre cada chamada a\n"
@@ -5851,16 +5451,14 @@ msgstr ""
 "    matriz a ser atribuído e a linha a ser atribuída a esse elemento\n"
 "    como argumentos adicionais.\n"
 "    \n"
-"    Se não for fornecido com uma origem explícita, mapfile limpa MATRIZ "
-"antes\n"
+"    Se não for fornecido com uma origem explícita, mapfile limpa MATRIZ antes\n"
 "    de lhe fazer atribuições.\n"
 "    \n"
 "    Estado de saída:\n"
-"    Devolve sucesso a não ser que indique uma opção inválida, MATRIZ seja "
-"só\n"
+"    Devolve sucesso a não ser que indique uma opção inválida, MATRIZ seja só\n"
 "    de leitura ou não seja uma matriz indexada."
 
-#: builtins.c:2066
+#: builtins.c:2062
 msgid ""
 "Read lines from a file into an array variable.\n"
 "    \n"
index 2457fb957b2d8fd5985f5c837f225ae054f3f819..3f4e799bf88fac8886df1b48fa2508343dd011d3 100644 (file)
@@ -7,133 +7,131 @@ msgid ""
 msgstr ""
 "Project-Id-Version: bash 4.4\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2018-04-27 14:15-0400\n"
+"POT-Creation-Date: 2016-09-10 12:42-0400\n"
 "PO-Revision-Date: 2016-10-04 06:47-0200\n"
 "Last-Translator: Rafael Fontenelle <rafaelff@gnome.org>\n"
-"Language-Team: Brazilian Portuguese <ldpbr-translation@lists.sourceforge."
-"net>\n"
+"Language-Team: Brazilian Portuguese <ldpbr-translation@lists.sourceforge.net>\n"
+"Language: pt_BR\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"Language: pt_BR\n"
 "Plural-Forms: nplurals=2; plural=(n > 1);\n"
 "X-Generator: Virtaal 0.7.1\n"
 "X-Bugs: Report translation errors to the Language-Team address.\n"
 
-#: arrayfunc.c:58
+#: arrayfunc.c:54
 msgid "bad array subscript"
 msgstr "subscrito de array incorreto"
 
-#: arrayfunc.c:373 builtins/declare.def:618 variables.c:2188 variables.c:2214
-#: variables.c:2922
+#: arrayfunc.c:368 builtins/declare.def:574 variables.c:2092 variables.c:2118
+#: variables.c:2730
 #, c-format
 msgid "%s: removing nameref attribute"
 msgstr "%s: removendo o atributo nameref"
 
-#: arrayfunc.c:398 builtins/declare.def:831
+#: arrayfunc.c:393 builtins/declare.def:780
 #, c-format
 msgid "%s: cannot convert indexed to associative array"
 msgstr "%s: impossível converter array indexado para associativo"
 
-#: arrayfunc.c:582
+#: arrayfunc.c:578
 #, c-format
 msgid "%s: invalid associative array key"
 msgstr "%s: chave de array associativo inválida"
 
-#: arrayfunc.c:584
+#: arrayfunc.c:580
 #, c-format
 msgid "%s: cannot assign to non-numeric index"
 msgstr "%s: impossível atribuir a índice não numérico"
 
-#: arrayfunc.c:629
+#: arrayfunc.c:625
 #, c-format
 msgid "%s: %s: must use subscript when assigning associative array"
 msgstr "%s: %s: deve usar subscrito ao atribuir um array associativo"
 
-#: bashhist.c:436
+#: bashhist.c:421
 #, c-format
 msgid "%s: cannot create: %s"
 msgstr "%s: impossível criar: %s"
 
-#: bashline.c:4111
+#: bashline.c:4091
 msgid "bash_execute_unix_command: cannot find keymap for command"
-msgstr ""
-"bash_execute_unix_command: impossível localizar mapa de teclas para comando"
+msgstr "bash_execute_unix_command: impossível localizar mapa de teclas para comando"
 
-#: bashline.c:4221
+#: bashline.c:4189
 #, c-format
 msgid "%s: first non-whitespace character is not `\"'"
 msgstr "%s: primeiro caractere não-espaço em branco não é `\"'"
 
-#: bashline.c:4250
+#: bashline.c:4218
 #, c-format
 msgid "no closing `%c' in %s"
 msgstr "sem `%c' de fechamento em %s"
 
-#: bashline.c:4284
+#: bashline.c:4252
 #, c-format
 msgid "%s: missing colon separator"
 msgstr "%s faltando separador dois-pontos"
 
-#: braces.c:331
+#: braces.c:329
 #, c-format
 msgid "brace expansion: cannot allocate memory for %s"
 msgstr "expansão de chaves: impossível alocar memória para %s"
 
-#: braces.c:429
-#, fuzzy, c-format
-msgid "brace expansion: failed to allocate memory for %u elements"
+#: braces.c:427
+#, c-format
+msgid "brace expansion: failed to allocate memory for %d elements"
 msgstr "expansão de chaves: falha ao alocar memória para %d elementos"
 
-#: braces.c:473
+#: braces.c:471
 #, c-format
 msgid "brace expansion: failed to allocate memory for `%s'"
 msgstr "expansão de chaves: falha ao alocar memória para `%s'"
 
-#: builtins/alias.def:131
+#: builtins/alias.def:133
 #, c-format
 msgid "`%s': invalid alias name"
 msgstr "`%s': nome de apelido (alias) inválido"
 
-#: builtins/bind.def:122 builtins/bind.def:125
+#: builtins/bind.def:123 builtins/bind.def:126
 msgid "line editing not enabled"
 msgstr "edição de linha não habilitada"
 
-#: builtins/bind.def:212
+#: builtins/bind.def:213
 #, c-format
 msgid "`%s': invalid keymap name"
 msgstr "`%s': nome de mapa de teclas inválido"
 
-#: builtins/bind.def:252
+#: builtins/bind.def:253
 #, c-format
 msgid "%s: cannot read: %s"
 msgstr "%s: impossível ler: %s"
 
-#: builtins/bind.def:304 builtins/bind.def:334
+#: builtins/bind.def:270
+#, c-format
+msgid "`%s': cannot unbind"
+msgstr "`%s': impossível desassociar (unbind)"
+
+#: builtins/bind.def:308 builtins/bind.def:338
 #, c-format
 msgid "`%s': unknown function name"
 msgstr "`%s': nome de função desconhecida"
 
-#: builtins/bind.def:312
+#: builtins/bind.def:316
 #, c-format
 msgid "%s is not bound to any keys.\n"
 msgstr "%s não está associada a qualquer tecla.\n"
 
-#: builtins/bind.def:316
+#: builtins/bind.def:320
 #, c-format
 msgid "%s can be invoked via "
 msgstr "%s pode ser chamado via "
 
-#: builtins/bind.def:353 builtins/bind.def:368
-#, c-format
-msgid "`%s': cannot unbind"
-msgstr "`%s': impossível desassociar (unbind)"
-
-#: builtins/break.def:77 builtins/break.def:119
+#: builtins/break.def:79 builtins/break.def:121
 msgid "loop count"
 msgstr "número de loops"
 
-#: builtins/break.def:139
+#: builtins/break.def:141
 msgid "only meaningful in a `for', `while', or `until' loop"
 msgstr "significativo apenas em um loop de `for', `while' ou `until'"
 
@@ -147,164 +145,162 @@ msgstr ""
 "    \n"
 "    Sem EXPR, retorna "
 
-#: builtins/cd.def:319
+#: builtins/cd.def:321
 msgid "HOME not set"
 msgstr "HOME não definida"
 
-#: builtins/cd.def:327 builtins/common.c:161 test.c:889
+#: builtins/cd.def:329 builtins/common.c:167 test.c:885
 msgid "too many arguments"
 msgstr "número excessivo de argumentos"
 
-#: builtins/cd.def:334
+#: builtins/cd.def:336
 msgid "null directory"
 msgstr "diretório nulo"
 
-#: builtins/cd.def:345
+#: builtins/cd.def:347
 msgid "OLDPWD not set"
 msgstr "OLDPWD não definida"
 
-#: builtins/common.c:96
+#: builtins/common.c:102
 #, c-format
 msgid "line %d: "
 msgstr "linha %d: "
 
-#: builtins/common.c:134 error.c:264
+#: builtins/common.c:140 error.c:265
 #, c-format
 msgid "warning: "
 msgstr "aviso: "
 
-#: builtins/common.c:148
+#: builtins/common.c:154
 #, c-format
 msgid "%s: usage: "
 msgstr "%s: uso: "
 
-#: builtins/common.c:193 shell.c:510 shell.c:838
+#: builtins/common.c:199 shell.c:514 shell.c:825
 #, c-format
 msgid "%s: option requires an argument"
 msgstr "%s: a opção requer um argumento"
 
-#: builtins/common.c:200
+#: builtins/common.c:206
 #, c-format
 msgid "%s: numeric argument required"
 msgstr "%s: requer argumento numérico"
 
-#: builtins/common.c:207
+#: builtins/common.c:213
 #, c-format
 msgid "%s: not found"
 msgstr "%s: não encontrado"
 
-#: builtins/common.c:216 shell.c:851
+#: builtins/common.c:222 shell.c:838
 #, c-format
 msgid "%s: invalid option"
 msgstr "%s: opção inválida"
 
-#: builtins/common.c:223
+#: builtins/common.c:229
 #, c-format
 msgid "%s: invalid option name"
 msgstr "%s: nome de opção inválido"
 
-#: builtins/common.c:230 execute_cmd.c:2342 general.c:294 general.c:299
+#: builtins/common.c:236 general.c:293 general.c:298
 #, c-format
 msgid "`%s': not a valid identifier"
 msgstr "`%s': não é um identificador válido"
 
-#: builtins/common.c:240
+#: builtins/common.c:246
 msgid "invalid octal number"
 msgstr "número octal inválido"
 
-#: builtins/common.c:242
+#: builtins/common.c:248
 msgid "invalid hex number"
 msgstr "número do hexa inválido"
 
-#: builtins/common.c:244 expr.c:1538
+#: builtins/common.c:250 expr.c:1473
 msgid "invalid number"
 msgstr "número inválido"
 
-#: builtins/common.c:252
+#: builtins/common.c:258
 #, c-format
 msgid "%s: invalid signal specification"
 msgstr "%s: especificação de sinal inválida"
 
-#: builtins/common.c:259
+#: builtins/common.c:265
 #, c-format
 msgid "`%s': not a pid or valid job spec"
-msgstr ""
-"`%s': não é um identificador de processo (pid) nem é uma especificação de "
-"trabalho válida"
+msgstr "`%s': não é um identificador de processo (pid) nem é uma especificação de trabalho válida"
 
-#: builtins/common.c:266 error.c:510
+#: builtins/common.c:272 error.c:511
 #, c-format
 msgid "%s: readonly variable"
 msgstr "%s: a variável permite somente leitura"
 
-#: builtins/common.c:274
+#: builtins/common.c:280
 #, c-format
 msgid "%s: %s out of range"
 msgstr "%s: %s fora dos limites"
 
-#: builtins/common.c:274 builtins/common.c:276
+#: builtins/common.c:280 builtins/common.c:282
 msgid "argument"
 msgstr "argumento"
 
-#: builtins/common.c:276
+#: builtins/common.c:282
 #, c-format
 msgid "%s out of range"
 msgstr "%s fora dos limites"
 
-#: builtins/common.c:284
+#: builtins/common.c:290
 #, c-format
 msgid "%s: no such job"
 msgstr "%s: trabalho não existe"
 
-#: builtins/common.c:292
+#: builtins/common.c:298
 #, c-format
 msgid "%s: no job control"
 msgstr "%s: nenhum controle de trabalho"
 
-#: builtins/common.c:294
+#: builtins/common.c:300
 msgid "no job control"
 msgstr "nenhum controle de trabalho"
 
-#: builtins/common.c:304
+#: builtins/common.c:310
 #, c-format
 msgid "%s: restricted"
 msgstr "%s: restrição"
 
-#: builtins/common.c:306
+#: builtins/common.c:312
 msgid "restricted"
 msgstr "restrição"
 
-#: builtins/common.c:314
+#: builtins/common.c:320
 #, c-format
 msgid "%s: not a shell builtin"
 msgstr "%s: não é um comando interno do shell"
 
-#: builtins/common.c:323
+#: builtins/common.c:329
 #, c-format
 msgid "write error: %s"
 msgstr "erro de escrita: %s"
 
-#: builtins/common.c:331
+#: builtins/common.c:337
 #, c-format
 msgid "error setting terminal attributes: %s"
 msgstr "erro ao definir atributos do terminal: %s"
 
-#: builtins/common.c:333
+#: builtins/common.c:339
 #, c-format
 msgid "error getting terminal attributes: %s"
 msgstr "erro ao obter atributos do terminal: %s"
 
-#: builtins/common.c:579
+#: builtins/common.c:585
 #, c-format
 msgid "%s: error retrieving current directory: %s: %s\n"
 msgstr "%s: erro ao obter o diretório atual: %s: %s\n"
 
-#: builtins/common.c:645 builtins/common.c:647
+#: builtins/common.c:651 builtins/common.c:653
 #, c-format
 msgid "%s: ambiguous job spec"
 msgstr "%s: especificação de trabalho ambígua"
 
-#: builtins/common.c:908
+#: builtins/common.c:918
 msgid "help not available in this version"
 msgstr "ajuda não disponível nesta versão"
 
@@ -313,69 +309,69 @@ msgstr "ajuda não disponível nesta versão"
 msgid "%s: invalid action name"
 msgstr "%s: nome de ação inválido"
 
-#: builtins/complete.def:452 builtins/complete.def:653
-#: builtins/complete.def:874
+#: builtins/complete.def:452 builtins/complete.def:647
+#: builtins/complete.def:858
 #, c-format
 msgid "%s: no completion specification"
 msgstr "%s: nenhuma especificação de completação"
 
-#: builtins/complete.def:707
+#: builtins/complete.def:699
 msgid "warning: -F option may not work as you expect"
 msgstr "aviso: a opção -F pode não funcionar como esperado"
 
-#: builtins/complete.def:709
+#: builtins/complete.def:701
 msgid "warning: -C option may not work as you expect"
 msgstr "aviso: a opção -C pode não funcionar como esperado"
 
-#: builtins/complete.def:847
+#: builtins/complete.def:831
 msgid "not currently executing completion function"
 msgstr "não se está executando atualmente função de completação"
 
-#: builtins/declare.def:132
+#: builtins/declare.def:127
 msgid "can only be used in a function"
 msgstr "somente pode ser usado em uma função"
 
-#: builtins/declare.def:369 builtins/declare.def:736
+#: builtins/declare.def:332 builtins/declare.def:685
 #, c-format
 msgid "%s: reference variable cannot be an array"
 msgstr "%s: variável de referência não pode ser um array"
 
-#: builtins/declare.def:380 variables.c:3161
+#: builtins/declare.def:343 variables.c:2959
 #, c-format
 msgid "%s: nameref variable self references not allowed"
 msgstr "%s: referência a si próprio da variável nameref não é permitido"
 
-#: builtins/declare.def:385 variables.c:2018 variables.c:3083 variables.c:3095
-#: variables.c:3158
+#: builtins/declare.def:348 variables.c:1928 variables.c:2877 variables.c:2889
+#: variables.c:2956
 #, c-format
 msgid "%s: circular name reference"
 msgstr "%s referência circular de nome"
 
-#: builtins/declare.def:390 builtins/declare.def:742 builtins/declare.def:753
+#: builtins/declare.def:353 builtins/declare.def:691 builtins/declare.def:702
 #, c-format
 msgid "`%s': invalid variable name for name reference"
 msgstr "\"%s\": nome de variável inválido para referência de nome"
 
-#: builtins/declare.def:500
+#: builtins/declare.def:463
 msgid "cannot use `-f' to make functions"
 msgstr "impossível usar `-f' para criar funções"
 
-#: builtins/declare.def:512 execute_cmd.c:5797
+#: builtins/declare.def:475 execute_cmd.c:5632
 #, c-format
 msgid "%s: readonly function"
 msgstr "%s: função somente para leitura"
 
-#: builtins/declare.def:804
+#: builtins/declare.def:753
 #, c-format
 msgid "%s: quoted compound array assignment deprecated"
 msgstr "%s: atribuição de array composto com aspas está obsoleto"
 
-#: builtins/declare.def:818
+#: builtins/declare.def:767
 #, c-format
 msgid "%s: cannot destroy array variables in this way"
 msgstr "%s: impossível destruir variáveis de array desta maneira"
 
-#: builtins/declare.def:825 builtins/read.def:784
+#: builtins/declare.def:774 builtins/read.def:751
 #, c-format
 msgid "%s: cannot convert associative to indexed array"
 msgstr "%s: impossível converter array associativo para indexado"
@@ -409,68 +405,68 @@ msgstr "%s: não foi carregado dinamicamente"
 msgid "%s: cannot delete: %s"
 msgstr "%s: impossível excluir: %s"
 
-#: builtins/evalfile.c:138 builtins/hash.def:184 execute_cmd.c:5629
+#: builtins/evalfile.c:144 builtins/hash.def:172 execute_cmd.c:5472
 #, c-format
 msgid "%s: is a directory"
 msgstr "%s: é um diretório"
 
-#: builtins/evalfile.c:144
+#: builtins/evalfile.c:150
 #, c-format
 msgid "%s: not a regular file"
 msgstr "%s: não é um arquivo irregular"
 
-#: builtins/evalfile.c:153
+#: builtins/evalfile.c:159
 #, c-format
 msgid "%s: file is too large"
 msgstr "%s: arquivo é muito grande"
 
-#: builtins/evalfile.c:188 builtins/evalfile.c:206 shell.c:1623
+#: builtins/evalfile.c:194 builtins/evalfile.c:212 shell.c:1578
 #, c-format
 msgid "%s: cannot execute binary file"
 msgstr "%s: impossível executar o arquivo binário"
 
-#: builtins/exec.def:155 builtins/exec.def:157 builtins/exec.def:237
+#: builtins/exec.def:156 builtins/exec.def:158 builtins/exec.def:235
 #, c-format
 msgid "%s: cannot execute: %s"
 msgstr "%s: impossível executar: %s"
 
-#: builtins/exit.def:64
+#: builtins/exit.def:67
 #, c-format
 msgid "logout\n"
 msgstr "sair\n"
 
-#: builtins/exit.def:89
+#: builtins/exit.def:92
 msgid "not login shell: use `exit'"
 msgstr "não é um shell de login: use `exit'"
 
-#: builtins/exit.def:121
+#: builtins/exit.def:124
 #, c-format
 msgid "There are stopped jobs.\n"
 msgstr "Há trabalhos parados.\n"
 
-#: builtins/exit.def:123
+#: builtins/exit.def:126
 #, c-format
 msgid "There are running jobs.\n"
 msgstr "Há trabalhos em execução.\n"
 
-#: builtins/fc.def:265
+#: builtins/fc.def:269
 msgid "no command found"
 msgstr "nenhum comando encontrado"
 
-#: builtins/fc.def:323 builtins/fc.def:372
+#: builtins/fc.def:327 builtins/fc.def:376
 msgid "history specification"
 msgstr "especificação do histórico"
 
-#: builtins/fc.def:393
+#: builtins/fc.def:397
 #, c-format
 msgid "%s: cannot open temp file: %s"
 msgstr "%s: impossível abrir arquivo temporário: %s"
 
-#: builtins/fg_bg.def:152 builtins/jobs.def:284
+#: builtins/fg_bg.def:153 builtins/jobs.def:284
 msgid "current"
 msgstr "atual"
 
-#: builtins/fg_bg.def:161
+#: builtins/fg_bg.def:162
 #, c-format
 msgid "job %d started without job control"
 msgstr "o trabalho %d iniciou sem controle de trabalho"
@@ -485,40 +481,38 @@ msgstr "%s: opção ilegal -- %c\n"
 msgid "%s: option requires an argument -- %c\n"
 msgstr "%s: a opção requer um argumento: -- %c\n"
 
-#: builtins/hash.def:91
+#: builtins/hash.def:92
 msgid "hashing disabled"
 msgstr "hashing está desabilitado"
 
-#: builtins/hash.def:138
+#: builtins/hash.def:139
 #, c-format
 msgid "%s: hash table empty\n"
 msgstr "%s: tabela de hash está vazia\n"
 
-#: builtins/hash.def:266
+#: builtins/hash.def:254
 #, c-format
 msgid "hits\tcommand\n"
 msgstr "número\tcomando\n"
 
-#: builtins/help.def:133
+#: builtins/help.def:135
+#, c-format
 msgid "Shell commands matching keyword `"
 msgid_plural "Shell commands matching keywords `"
 msgstr[0] "Comandos shell correspondendo à palavra-chave `"
 msgstr[1] "Comandos shell correspondendo às palavras-chave `"
 
-#: builtins/help.def:185
+#: builtins/help.def:187
 #, c-format
-msgid ""
-"no help topics match `%s'.  Try `help help' or `man -k %s' or `info %s'."
-msgstr ""
-"nenhum tópico de ajuda corresponde a `%s'.  Tente `help help' ou `man -k %s' "
-"ou `info %s'."
+msgid "no help topics match `%s'.  Try `help help' or `man -k %s' or `info %s'."
+msgstr "nenhum tópico de ajuda corresponde a `%s'.  Tente `help help' ou `man -k %s' ou `info %s'."
 
-#: builtins/help.def:224
+#: builtins/help.def:226
 #, c-format
 msgid "%s: cannot open: %s"
 msgstr "%s: impossível abrir: %s"
 
-#: builtins/help.def:524
+#: builtins/help.def:526
 #, c-format
 msgid ""
 "These shell commands are defined internally.  Type `help' to see this list.\n"
@@ -529,32 +523,29 @@ msgid ""
 "A star (*) next to a name means that the command is disabled.\n"
 "\n"
 msgstr ""
-"Esses comandos shell são definidos internamente. Digite `help' para ver "
-"essa\n"
+"Esses comandos shell são definidos internamente. Digite `help' para ver essa\n"
 "lista. Digite `help NOME' para descobrir mais sobre a função `NOME'.\n"
 "Use `info bash' para descobrir mais sobre o shell em geral.\n"
-"Use `man -k' ou `info' para descobrir mais sobre comandos que não estão "
-"nesta\n"
+"Use `man -k' ou `info' para descobrir mais sobre comandos que não estão nesta\n"
 "lista.\n"
 "\n"
 "Um asterisco (*) próximo ao nome significa que o comando está desabilitado.\n"
 "\n"
 
-#: builtins/history.def:154
+#: builtins/history.def:155
 msgid "cannot use more than one of -anrw"
 msgstr "impossível usar mais de um dentre -anrw"
 
-#: builtins/history.def:187 builtins/history.def:197 builtins/history.def:212
-#: builtins/history.def:229 builtins/history.def:241 builtins/history.def:248
+#: builtins/history.def:187
 msgid "history position"
 msgstr "posição no histórico"
 
-#: builtins/history.def:331
+#: builtins/history.def:264
 #, c-format
 msgid "%s: invalid timestamp"
 msgstr "%s: marca de tempo inválida"
 
-#: builtins/history.def:442
+#: builtins/history.def:375
 #, c-format
 msgid "%s: history expansion failed"
 msgstr "%s: expansão do histórico falhou"
@@ -568,16 +559,16 @@ msgstr "%s: inlib falhou"
 msgid "no other options allowed with `-x'"
 msgstr "nenhuma outra opção permitida com `-x'"
 
-#: builtins/kill.def:200
+#: builtins/kill.def:202
 #, c-format
 msgid "%s: arguments must be process or job IDs"
 msgstr "%s: argumentos devem ser IDs de trabalhos ou processo"
 
-#: builtins/kill.def:263
+#: builtins/kill.def:265
 msgid "Unknown error"
 msgstr "Erro desconhecido"
 
-#: builtins/let.def:97 builtins/let.def:122 expr.c:614 expr.c:632
+#: builtins/let.def:97 builtins/let.def:122 expr.c:583 expr.c:598
 msgid "expression expected"
 msgstr "esperava uma expressão"
 
@@ -586,69 +577,69 @@ msgstr "esperava uma expressão"
 msgid "%s: not an indexed array"
 msgstr "%s: não é um array indexado"
 
-#: builtins/mapfile.def:271 builtins/read.def:305
+#: builtins/mapfile.def:272 builtins/read.def:306
 #, c-format
 msgid "%s: invalid file descriptor specification"
 msgstr "%s: especificação de descritor de arquivo inválida"
 
-#: builtins/mapfile.def:279 builtins/read.def:312
+#: builtins/mapfile.def:280 builtins/read.def:313
 #, c-format
 msgid "%d: invalid file descriptor: %s"
 msgstr "%d: descritor de arquivo inválido: %s"
 
-#: builtins/mapfile.def:288 builtins/mapfile.def:326
+#: builtins/mapfile.def:289 builtins/mapfile.def:327
 #, c-format
 msgid "%s: invalid line count"
 msgstr "%s: número de linhas inválido"
 
-#: builtins/mapfile.def:299
+#: builtins/mapfile.def:300
 #, c-format
 msgid "%s: invalid array origin"
 msgstr "%s: origem do array inválido"
 
-#: builtins/mapfile.def:316
+#: builtins/mapfile.def:317
 #, c-format
 msgid "%s: invalid callback quantum"
 msgstr "%s: quantidade de chamadas inválida"
 
-#: builtins/mapfile.def:349
+#: builtins/mapfile.def:350
 msgid "empty array variable name"
 msgstr "nome de variável array vazio"
 
-#: builtins/mapfile.def:370
+#: builtins/mapfile.def:371
 msgid "array variable support required"
 msgstr "requer suporte a variável de array"
 
-#: builtins/printf.def:416
+#: builtins/printf.def:412
 #, c-format
 msgid "`%s': missing format character"
 msgstr "`%s': faltando caractere de formato"
 
-#: builtins/printf.def:471
+#: builtins/printf.def:467
 #, c-format
 msgid "`%c': invalid time format specification"
 msgstr "`%c': especificação de formato de tempo inválida"
 
-#: builtins/printf.def:673
+#: builtins/printf.def:669
 #, c-format
 msgid "`%c': invalid format character"
 msgstr "`%c': caractere de formato inválido"
 
-#: builtins/printf.def:699
+#: builtins/printf.def:695
 #, c-format
 msgid "warning: %s: %s"
 msgstr "aviso: %s: %s"
 
-#: builtins/printf.def:785
+#: builtins/printf.def:781
 #, c-format
 msgid "format parsing problem: %s"
 msgstr "problema ao analisar formato: %s"
 
-#: builtins/printf.def:882
+#: builtins/printf.def:878
 msgid "missing hex digit for \\x"
 msgstr "faltando dígito hexa para \\x"
 
-#: builtins/printf.def:897
+#: builtins/printf.def:893
 #, c-format
 msgid "missing unicode digit for \\%c"
 msgstr "faltando dígito unicode para \\%c"
@@ -662,19 +653,19 @@ msgstr "nenhum outro diretório"
 msgid "%s: invalid argument"
 msgstr "%s argumento inválido"
 
-#: builtins/pushd.def:480
+#: builtins/pushd.def:475
 msgid "<no current directory>"
 msgstr "<nenhum diretório atual>"
 
-#: builtins/pushd.def:524
+#: builtins/pushd.def:519
 msgid "directory stack empty"
 msgstr "pilha de diretórios está vazia"
 
-#: builtins/pushd.def:526
+#: builtins/pushd.def:521
 msgid "directory stack index"
 msgstr "índice de pilha de diretórios"
 
-#: builtins/pushd.def:701
+#: builtins/pushd.def:696
 msgid ""
 "Display the list of currently remembered directories.  Directories\n"
 "    find their way onto the list with the `pushd' command; you can get\n"
@@ -689,12 +680,10 @@ msgid ""
 "    \twith its position in the stack\n"
 "    \n"
 "    Arguments:\n"
-"      +N\tDisplays the Nth entry counting from the left of the list shown "
-"by\n"
+"      +N\tDisplays the Nth entry counting from the left of the list shown by\n"
 "    \tdirs when invoked without options, starting with zero.\n"
 "    \n"
-"      -N\tDisplays the Nth entry counting from the right of the list shown "
-"by\n"
+"      -N\tDisplays the Nth entry counting from the right of the list shown by\n"
 "\tdirs when invoked without options, starting with zero."
 msgstr ""
 "Exibe a lista de diretórios atualmente memorizados. Diretórios são\n"
@@ -716,7 +705,7 @@ msgstr ""
 "      -N\tExibe a n-ésima entrada a partir da esquerda da linha\n"
 "      \t\tmostrada por `dirs' chamado sem opções, iniciando com zero."
 
-#: builtins/pushd.def:723
+#: builtins/pushd.def:718
 msgid ""
 "Adds a directory to the top of the directory stack, or rotates\n"
 "    the stack, making the new top of the stack the current working\n"
@@ -763,7 +752,7 @@ msgstr ""
 "    \n"
 "     O comando interno `dirs' exibe a pilha de diretórios."
 
-#: builtins/pushd.def:748
+#: builtins/pushd.def:743
 msgid ""
 "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"
@@ -801,48 +790,45 @@ msgstr ""
 "    \n"
 "    O comando interno `dirs' exibe a pilha de diretório."
 
-#: builtins/read.def:277
+#: builtins/read.def:279
 #, c-format
 msgid "%s: invalid timeout specification"
 msgstr "%s: especificação de tempo limite inválida"
 
-#: builtins/read.def:729
+#: builtins/read.def:696
 #, c-format
 msgid "read error: %d: %s"
 msgstr "erro de leitura: %d: %s"
 
-#: builtins/return.def:68
+#: builtins/return.def:71
 msgid "can only `return' from a function or sourced script"
-msgstr ""
-"possível retornar (`return') apenas de uma função ou script carregado (com "
-"`source')"
+msgstr "possível retornar (`return') apenas de uma função ou script carregado (com `source')"
 
-#: builtins/set.def:834
+#: builtins/set.def:841
 msgid "cannot simultaneously unset a function and a variable"
-msgstr ""
-"impossível simultaneamente remover definição de uma função e uma variável"
+msgstr "impossível simultaneamente remover definição de uma função e uma variável"
 
-#: builtins/set.def:881
+#: builtins/set.def:888
 #, c-format
 msgid "%s: cannot unset"
 msgstr "%s: impossível remover definição"
 
-#: builtins/set.def:902 variables.c:3597
+#: builtins/set.def:909 variables.c:3389
 #, c-format
 msgid "%s: cannot unset: readonly %s"
 msgstr "%s: impossível remover definição: %s somente-leitura"
 
-#: builtins/set.def:915
+#: builtins/set.def:922
 #, c-format
 msgid "%s: not an array variable"
 msgstr "%s: não é uma variável array"
 
-#: builtins/setattr.def:189
+#: builtins/setattr.def:191
 #, c-format
 msgid "%s: not a function"
 msgstr "%s: não é uma função"
 
-#: builtins/setattr.def:194
+#: builtins/setattr.def:196
 #, c-format
 msgid "%s: cannot export"
 msgstr "%s: impossível exportar"
@@ -851,21 +837,20 @@ msgstr "%s: impossível exportar"
 msgid "shift count"
 msgstr "número de shift"
 
-#: builtins/shopt.def:301
+#: builtins/shopt.def:289
 msgid "cannot set and unset shell options simultaneously"
-msgstr ""
-"impossível simultaneamente definir e remover definição de opções do shell"
+msgstr "impossível simultaneamente definir e remover definição de opções do shell"
 
-#: builtins/shopt.def:403
+#: builtins/shopt.def:391
 #, c-format
 msgid "%s: invalid shell option name"
 msgstr "%s: nome de opção de shell inválido"
 
-#: builtins/source.def:128
+#: builtins/source.def:131
 msgid "filename argument required"
 msgstr "requer argumento arquivo"
 
-#: builtins/source.def:154
+#: builtins/source.def:157
 #, c-format
 msgid "%s: file not found"
 msgstr "%s: arquivo não encontrado"
@@ -878,61 +863,61 @@ msgstr "impossível suspender"
 msgid "cannot suspend a login shell"
 msgstr "impossível suspender um shell de login."
 
-#: builtins/type.def:235
+#: builtins/type.def:236
 #, c-format
 msgid "%s is aliased to `%s'\n"
 msgstr "%s está apelidada para `%s'\n"
 
-#: builtins/type.def:256
+#: builtins/type.def:257
 #, c-format
 msgid "%s is a shell keyword\n"
 msgstr "%s é uma palavra-chave do shell\n"
 
-#: builtins/type.def:275
+#: builtins/type.def:276
 #, c-format
 msgid "%s is a function\n"
 msgstr "%s é uma função\n"
 
-#: builtins/type.def:299
+#: builtins/type.def:300
 #, c-format
 msgid "%s is a special shell builtin\n"
 msgstr "%s é um comando interno especial do shell\n"
 
-#: builtins/type.def:301
+#: builtins/type.def:302
 #, c-format
 msgid "%s is a shell builtin\n"
 msgstr "%s é um comando interno do shell\n"
 
-#: builtins/type.def:323 builtins/type.def:408
+#: builtins/type.def:324 builtins/type.def:409
 #, c-format
 msgid "%s is %s\n"
 msgstr "%s é %s\n"
 
-#: builtins/type.def:343
+#: builtins/type.def:344
 #, c-format
 msgid "%s is hashed (%s)\n"
 msgstr "%s está na tabela hash (%s)\n"
 
-#: builtins/ulimit.def:396
+#: builtins/ulimit.def:398
 #, c-format
 msgid "%s: invalid limit argument"
 msgstr "%s: argumento limite inválido"
 
-#: builtins/ulimit.def:422
+#: builtins/ulimit.def:424
 #, c-format
 msgid "`%c': bad command"
 msgstr "`%c': comando incorreto"
 
-#: builtins/ulimit.def:451
+#: builtins/ulimit.def:453
 #, c-format
 msgid "%s: cannot get limit: %s"
 msgstr "%s: impossível obter limite: %s"
 
-#: builtins/ulimit.def:477
+#: builtins/ulimit.def:479
 msgid "limit"
 msgstr "limite"
 
-#: builtins/ulimit.def:489 builtins/ulimit.def:789
+#: builtins/ulimit.def:491 builtins/ulimit.def:791
 #, c-format
 msgid "%s: cannot modify limit: %s"
 msgstr "%s: impossível modificar limite: %s"
@@ -951,375 +936,357 @@ msgstr "`%c': operador de modo simbólico inválido"
 msgid "`%c': invalid symbolic mode character"
 msgstr "`%c': caractere de modo simbólico inválido"
 
-#: error.c:89 error.c:347 error.c:349 error.c:351
+#: error.c:90 error.c:348 error.c:350 error.c:352
 msgid " line "
 msgstr " linha "
 
-#: error.c:164
+#: error.c:165
 #, c-format
 msgid "last command: %s\n"
 msgstr "último comando: %s\n"
 
-#: error.c:172
+#: error.c:173
 #, c-format
 msgid "Aborting..."
 msgstr "Abortando..."
 
 #. TRANSLATORS: this is a prefix for informational messages.
-#: error.c:287
+#: error.c:288
 #, c-format
 msgid "INFORM: "
 msgstr "INFORM: "
 
-#: error.c:462
+#: error.c:463
 msgid "unknown command error"
 msgstr "erro de comando desconhecido"
 
-#: error.c:463
+#: error.c:464
 msgid "bad command type"
 msgstr "tipo de comando incorreto"
 
-#: error.c:464
+#: error.c:465
 msgid "bad connector"
 msgstr "conector incorreto"
 
-#: error.c:465
+#: error.c:466
 msgid "bad jump"
 msgstr "desvio incorreto"
 
-#: error.c:503
+#: error.c:504
 #, c-format
 msgid "%s: unbound variable"
 msgstr "%s: variável não associada"
 
-#: eval.c:242
+#: eval.c:209
 #, c-format
 msgid "\atimed out waiting for input: auto-logout\n"
-msgstr ""
-"\atempo limite de espera excedido aguardando entrada: fim automático da "
-"sessão\n"
+msgstr "\atempo limite de espera excedido aguardando entrada: fim automático da sessão\n"
 
-#: execute_cmd.c:536
+#: execute_cmd.c:527
 #, c-format
 msgid "cannot redirect standard input from /dev/null: %s"
 msgstr "impossível redirecionar a entrada padrão para /dev/null: %s"
 
-#: execute_cmd.c:1294
+#: execute_cmd.c:1275
 #, c-format
 msgid "TIMEFORMAT: `%c': invalid format character"
 msgstr "TIMEFORMAT: `%c': caractere de formato inválido"
 
-#: execute_cmd.c:2330
+#: execute_cmd.c:2273
 #, c-format
 msgid "execute_coproc: coproc [%d:%s] still exists"
 msgstr "execute_coproc: coproc [%d:%s] ainda existe"
 
-#: execute_cmd.c:2456
+#: execute_cmd.c:2377
 msgid "pipe error"
 msgstr "erro de `pipe'"
 
-#: execute_cmd.c:4624
+#: execute_cmd.c:4496
 #, c-format
 msgid "eval: maximum eval nesting level exceeded (%d)"
 msgstr "eval: excedido o nível máximo de aninhamento de `eval' (%d)"
 
-#: execute_cmd.c:4636
+#: execute_cmd.c:4508
 #, c-format
 msgid "%s: maximum source nesting level exceeded (%d)"
 msgstr "%s: excedido o nível máximo de aninhamento de `function' (%d)"
 
-#: execute_cmd.c:4742
+#: execute_cmd.c:4616
 #, c-format
 msgid "%s: maximum function nesting level exceeded (%d)"
 msgstr "%s: excedido o nível máximo de aninhamento de avaliação (%d)"
 
-#: execute_cmd.c:5285
+#: execute_cmd.c:5144
 #, c-format
 msgid "%s: restricted: cannot specify `/' in command names"
 msgstr "%s: restrição: não é permitido especificar `/' em nomes de comandos"
 
-#: execute_cmd.c:5383
+#: execute_cmd.c:5232
 #, c-format
 msgid "%s: command not found"
 msgstr "%s: comando não encontrado"
 
-#: execute_cmd.c:5627
+#: execute_cmd.c:5470
 #, c-format
 msgid "%s: %s"
 msgstr "%s: %s"
 
-#: execute_cmd.c:5665
+#: execute_cmd.c:5508
 #, c-format
 msgid "%s: %s: bad interpreter"
 msgstr "%s: %s: interpretador incorreto"
 
-#: execute_cmd.c:5702
+#: execute_cmd.c:5545
 #, c-format
 msgid "%s: cannot execute binary file: %s"
 msgstr "%s: impossível executar o arquivo binário: %s"
 
-#: execute_cmd.c:5788
+#: execute_cmd.c:5623
 #, c-format
 msgid "`%s': is a special builtin"
 msgstr "`%s': é um comando interno especial"
 
-#: execute_cmd.c:5840
+#: execute_cmd.c:5675
 #, c-format
 msgid "cannot duplicate fd %d to fd %d"
 msgstr "impossível duplicar fd (descritor de arquivo) %d para fd %d"
 
-#: expr.c:263
+#: expr.c:259
 msgid "expression recursion level exceeded"
 msgstr "excedido o nível de recursividade da expressão"
 
-#: expr.c:291
+#: expr.c:283
 msgid "recursion stack underflow"
 msgstr "esvaziamento de pilha de recursão"
 
-#: expr.c:453
+#: expr.c:431
 msgid "syntax error in expression"
 msgstr "erro de sintaxe na expressão"
 
-#: expr.c:497
+#: expr.c:475
 msgid "attempted assignment to non-variable"
 msgstr "tentativa de atribuição para algo que não é uma variável"
 
-#: expr.c:506
-#, fuzzy
-msgid "syntax error in variable assignment"
-msgstr "erro de sintaxe na expressão"
-
-#: expr.c:520 expr.c:886
+#: expr.c:495 expr.c:858
 msgid "division by 0"
 msgstr "divisão por 0"
 
-#: expr.c:567
+#: expr.c:542
 msgid "bug: bad expassign token"
 msgstr "erro de programação: token incorreto passado para expassign()"
 
-#: expr.c:621
+#: expr.c:595
 msgid "`:' expected for conditional expression"
 msgstr "esperava `:' para expressão condicional"
 
-#: expr.c:947
+#: expr.c:919
 msgid "exponent less than 0"
 msgstr "exponente menor que 0"
 
-#: expr.c:1004
+#: expr.c:976
 msgid "identifier expected after pre-increment or pre-decrement"
 msgstr "esperava identificador após pré-acréscimo ou pré-decréscimo"
 
-#: expr.c:1030
+#: expr.c:1002
 msgid "missing `)'"
 msgstr "faltando `)'"
 
-#: expr.c:1081 expr.c:1458
+#: expr.c:1053 expr.c:1393
 msgid "syntax error: operand expected"
 msgstr "erro de sintaxe: esperava operando"
 
-#: expr.c:1460
+#: expr.c:1395
 msgid "syntax error: invalid arithmetic operator"
 msgstr "erro de sintaxe: operador aritmético inválido"
 
-#: expr.c:1484
+#: expr.c:1419
 #, c-format
 msgid "%s%s%s: %s (error token is \"%s\")"
 msgstr "%s%s%s: %s (token de erro é \"%s\")"
 
-#: expr.c:1542
+#: expr.c:1477
 msgid "invalid arithmetic base"
 msgstr "base aritmética inválida"
 
-#: expr.c:1562
+#: expr.c:1497
 msgid "value too great for base"
 msgstr "valor muito grande para esta base de numeração"
 
-#: expr.c:1611
+#: expr.c:1546
 #, c-format
 msgid "%s: expression error\n"
 msgstr "%s: erro de expressão\n"
 
-#: general.c:69
+#: general.c:68
 msgid "getcwd: cannot access parent directories"
 msgstr "getcwd: impossível acessar os diretórios pais (anteriores)"
 
-#: input.c:99 subst.c:5858
+#: input.c:102 subst.c:5858
 #, c-format
 msgid "cannot reset nodelay mode for fd %d"
-msgstr ""
-"impossível redefinir modo `nodelay' para o descritor de arquivo (fd) %d"
+msgstr "impossível redefinir modo `nodelay' para o descritor de arquivo (fd) %d"
 
-#: input.c:266
+#: input.c:271
 #, c-format
 msgid "cannot allocate new file descriptor for bash input from fd %d"
-msgstr ""
-"impossível alocar novo descritor de arquivo (fd) para a entrada do `bash' a "
-"partir do fd %d"
+msgstr "impossível alocar novo descritor de arquivo (fd) para a entrada do `bash' a partir do fd %d"
 
-#: input.c:274
+#: input.c:279
 #, c-format
 msgid "save_bash_input: buffer already exists for new fd %d"
-msgstr ""
-"save_bash_input: buffer já existe para o novo descritor de arquivo (fd) %d"
+msgstr "save_bash_input: buffer já existe para o novo descritor de arquivo (fd) %d"
 
 #: jobs.c:527
 msgid "start_pipeline: pgrp pipe"
 msgstr "start_pipeline: `pipe' de pgrp"
 
-#: jobs.c:1080
+#: jobs.c:1035
 #, c-format
 msgid "forked pid %d appears in running job %d"
-msgstr ""
-"identificador de processo (pid) %d bifurcado (fork) aparece no trabalho em "
-"execução %d"
+msgstr "identificador de processo (pid) %d bifurcado (fork) aparece no trabalho em execução %d"
 
-#: jobs.c:1199
+#: jobs.c:1154
 #, c-format
 msgid "deleting stopped job %d with process group %ld"
 msgstr "excluindo trabalho parado %d com grupo de processo %ld"
 
-#: jobs.c:1303
+#: jobs.c:1258
 #, c-format
 msgid "add_process: process %5ld (%s) in the_pipeline"
 msgstr "add_process: processo %5ld (%s) em the_pipeline"
 
-#: jobs.c:1306
+#: jobs.c:1261
 #, c-format
 msgid "add_process: pid %5ld (%s) marked as still alive"
 msgstr "add_process: pid %5ld (%s) marcado como ainda vivo"
 
-#: jobs.c:1635
+#: jobs.c:1590
 #, c-format
 msgid "describe_pid: %ld: no such pid"
 msgstr "describe_pid: %ld: o identificador do processo (pid) não existe"
 
-#: jobs.c:1650
+#: jobs.c:1605
 #, c-format
 msgid "Signal %d"
 msgstr "Sinal %d"
 
-#: jobs.c:1664 jobs.c:1690
+#: jobs.c:1619 jobs.c:1645
 msgid "Done"
 msgstr "Concluído"
 
-#: jobs.c:1669 siglist.c:123
+#: jobs.c:1624 siglist.c:123
 msgid "Stopped"
 msgstr "Parado"
 
-#: jobs.c:1673
+#: jobs.c:1628
 #, c-format
 msgid "Stopped(%s)"
 msgstr "Parado(%s)"
 
-#: jobs.c:1677
+#: jobs.c:1632
 msgid "Running"
 msgstr "Executando"
 
-#: jobs.c:1694
+#: jobs.c:1649
 #, c-format
 msgid "Done(%d)"
 msgstr "Concluído(%d)"
 
-#: jobs.c:1696
+#: jobs.c:1651
 #, c-format
 msgid "Exit %d"
 msgstr "Fim da execução com status %d"
 
-#: jobs.c:1699
+#: jobs.c:1654
 msgid "Unknown status"
 msgstr "Status desconhecido"
 
-#: jobs.c:1786
+#: jobs.c:1741
 #, c-format
 msgid "(core dumped) "
 msgstr "(imagem do núcleo gravada)"
 
-#: jobs.c:1805
+#: jobs.c:1760
 #, c-format
 msgid "  (wd: %s)"
 msgstr "  (wd: %s)"
 
-#: jobs.c:2033
+#: jobs.c:1985
 #, c-format
 msgid "child setpgid (%ld to %ld)"
 msgstr "`setpgid' filho (%ld para %ld)"
 
-#: jobs.c:2395 nojobs.c:657
+#: jobs.c:2347 nojobs.c:654
 #, c-format
 msgid "wait: pid %ld is not a child of this shell"
 msgstr "wait: o pid %ld não é um processo filho deste shell"
 
-#: jobs.c:2687
+#: jobs.c:2602
 #, c-format
 msgid "wait_for: No record of process %ld"
 msgstr "wait_for: Sem registro do processo %ld"
 
-#: jobs.c:3048
+#: jobs.c:2929
 #, c-format
 msgid "wait_for_job: job %d is stopped"
 msgstr "wait_for_job: trabalho %d está parado"
 
-#: jobs.c:3355
+#: jobs.c:3221
 #, c-format
 msgid "%s: job has terminated"
 msgstr "%s: o trabalho terminou"
 
-#: jobs.c:3364
+#: jobs.c:3230
 #, c-format
 msgid "%s: job %d already in background"
 msgstr "%s: o trabalho %d já está em plano de fundo"
 
-#: jobs.c:3590
+#: jobs.c:3455
 msgid "waitchld: turning on WNOHANG to avoid indefinite block"
 msgstr "waitchld: ativando WNOHANG para evitar bloqueio indefinido"
 
-#: jobs.c:4114
+#: jobs.c:3970
 #, c-format
 msgid "%s: line %d: "
 msgstr "%s, linha %d: "
 
-#: jobs.c:4128 nojobs.c:900
+#: jobs.c:3984 nojobs.c:897
 #, c-format
 msgid " (core dumped)"
 msgstr " (imagem do núcleo gravada)"
 
-#: jobs.c:4140 jobs.c:4153
+#: jobs.c:3996 jobs.c:4009
 #, c-format
 msgid "(wd now: %s)\n"
 msgstr "(wd agora: %s)\n"
 
-#: jobs.c:4185
+#: jobs.c:4041
 msgid "initialize_job_control: getpgrp failed"
 msgstr "initialize_job_control: getpgrp falhou"
 
-#: jobs.c:4241
-#, fuzzy
-msgid "initialize_job_control: no job control in background"
-msgstr "initialize_job_control: disciplina da linha"
-
-#: jobs.c:4257
+#: jobs.c:4104
 msgid "initialize_job_control: line discipline"
 msgstr "initialize_job_control: disciplina da linha"
 
-#: jobs.c:4267
+#: jobs.c:4114
 msgid "initialize_job_control: setpgid"
 msgstr "initialize_job_control: setpgid"
 
-#: jobs.c:4288 jobs.c:4297
+#: jobs.c:4135 jobs.c:4144
 #, c-format
 msgid "cannot set terminal process group (%d)"
 msgstr "impossível definir grupo do processo do terminal (%d)"
 
-#: jobs.c:4302
+#: jobs.c:4149
 msgid "no job control in this shell"
 msgstr "nenhum controle de trabalho neste shell"
 
-#: lib/malloc/malloc.c:306
+#: lib/malloc/malloc.c:296
 #, c-format
 msgid "malloc: failed assertion: %s\n"
 msgstr "malloc: asserção falhou: %s\n"
 
-#: lib/malloc/malloc.c:322
+#: lib/malloc/malloc.c:312
 #, c-format
 msgid ""
 "\r\n"
@@ -1328,39 +1295,39 @@ msgstr ""
 "\r\n"
 "malloc: %s:%d: asserção remendada\r\n"
 
-#: lib/malloc/malloc.c:323
+#: lib/malloc/malloc.c:313
 msgid "unknown"
 msgstr "desconhecido"
 
-#: lib/malloc/malloc.c:811
+#: lib/malloc/malloc.c:801
 msgid "malloc: block on free list clobbered"
 msgstr "malloc: bloco socado em lista livre"
 
-#: lib/malloc/malloc.c:888
+#: lib/malloc/malloc.c:878
 msgid "free: called with already freed block argument"
 msgstr "free: chamado com argumento de bloco já liberado"
 
-#: lib/malloc/malloc.c:891
+#: lib/malloc/malloc.c:881
 msgid "free: called with unallocated block argument"
 msgstr "free: chamado com argumento de bloco não alocado"
 
-#: lib/malloc/malloc.c:910
+#: lib/malloc/malloc.c:900
 msgid "free: underflow detected; mh_nbytes out of range"
 msgstr "free: esvaziamento de pilha detectado; mh_nbytes fora do limite"
 
-#: lib/malloc/malloc.c:916
+#: lib/malloc/malloc.c:906
 msgid "free: start and end chunk sizes differ"
 msgstr "free: tamanhos de porções do início e do fim são diferentes"
 
-#: lib/malloc/malloc.c:1015
+#: lib/malloc/malloc.c:1005
 msgid "realloc: called with unallocated block argument"
 msgstr "realloc: chamado com argumento de bloco não alocado"
 
-#: lib/malloc/malloc.c:1030
+#: lib/malloc/malloc.c:1020
 msgid "realloc: underflow detected; mh_nbytes out of range"
 msgstr "realloc: esvaziamento de pilha detectado; mh_nbytes fora do limite"
 
-#: lib/malloc/malloc.c:1036
+#: lib/malloc/malloc.c:1026
 msgid "realloc: start and end chunk sizes differ"
 msgstr "realloc: tamanhos de porções do início e do fim são diferentes"
 
@@ -1402,22 +1369,22 @@ msgstr "%s: especificação de caminho de rede inválida"
 msgid "network operations not supported"
 msgstr "sem suporte a operações de rede"
 
-#: locale.c:205
+#: locale.c:200
 #, c-format
 msgid "setlocale: LC_ALL: cannot change locale (%s)"
 msgstr "setlocale: LC_ALL: impossível alterar locale (%s)"
 
-#: locale.c:207
+#: locale.c:202
 #, c-format
 msgid "setlocale: LC_ALL: cannot change locale (%s): %s"
 msgstr "setlocale: LC_ALL: impossível alterar locale (%s): %s"
 
-#: locale.c:272
+#: locale.c:259
 #, c-format
 msgid "setlocale: %s: cannot change locale (%s)"
 msgstr "setlocale: %s: impossível alterar locale (%s)"
 
-#: locale.c:274
+#: locale.c:261
 #, c-format
 msgid "setlocale: %s: cannot change locale (%s): %s"
 msgstr "setlocale: %s: impossível alterar locale (%s): %s"
@@ -1435,149 +1402,145 @@ msgstr "Você tem mensagem nova de correio em $_"
 msgid "The mail in %s has been read\n"
 msgstr "As mensagens de correio em %s foram lidas\n"
 
-#: make_cmd.c:317
+#: make_cmd.c:329
 msgid "syntax error: arithmetic expression required"
 msgstr "erro de sintaxe: requer expressão aritmética"
 
-#: make_cmd.c:319
+#: make_cmd.c:331
 msgid "syntax error: `;' unexpected"
 msgstr "erro de sintaxe: `;' inesperado"
 
-#: make_cmd.c:320
+#: make_cmd.c:332
 #, c-format
 msgid "syntax error: `((%s))'"
 msgstr "erro de sintaxe: `((%s))'"
 
-#: make_cmd.c:572
+#: make_cmd.c:584
 #, c-format
 msgid "make_here_document: bad instruction type %d"
 msgstr "make_here_document: tipo da instrução incorreto %d"
 
-#: make_cmd.c:657
+#: make_cmd.c:669
 #, c-format
 msgid "here-document at line %d delimited by end-of-file (wanted `%s')"
-msgstr ""
-"here-document na linha %d delimitado pelo fim do arquivo (desejava `%s')"
+msgstr "here-document na linha %d delimitado pelo fim do arquivo (desejava `%s')"
 
-#: make_cmd.c:756
+#: make_cmd.c:768
 #, c-format
 msgid "make_redirection: redirection instruction `%d' out of range"
 msgstr "make_redirection: instrução de redirecionamento `%d' fora do limite"
 
-#: parse.y:2369
+#: parse.y:2324
 #, c-format
-msgid ""
-"shell_getc: shell_input_line_size (%zu) exceeds SIZE_MAX (%lu): line "
-"truncated"
-msgstr ""
-"shell_getc: shell_input_line_size (%zu) excede SIZE_MAX (%lu): linha truncada"
+msgid "shell_getc: shell_input_line_size (%zu) exceeds SIZE_MAX (%lu): line truncated"
+msgstr "shell_getc: shell_input_line_size (%zu) excede SIZE_MAX (%lu): linha truncada"
 
-#: parse.y:2772
+#: parse.y:2700
 msgid "maximum here-document count exceeded"
 msgstr "excedido o número máximo de here-document"
 
-#: parse.y:3511 parse.y:3881
+#: parse.y:3390 parse.y:3748
 #, c-format
 msgid "unexpected EOF while looking for matching `%c'"
 msgstr "encontrado EOF inesperado enquanto procurava por `%c' correspondente"
 
-#: parse.y:4581
+#: parse.y:4410
 msgid "unexpected EOF while looking for `]]'"
 msgstr "encontrado EOF inesperado enquanto procurava por `]]'"
 
-#: parse.y:4586
+#: parse.y:4415
 #, c-format
 msgid "syntax error in conditional expression: unexpected token `%s'"
 msgstr "erro de sintaxe na expressão condicional: token inesperado `%s'"
 
-#: parse.y:4590
+#: parse.y:4419
 msgid "syntax error in conditional expression"
 msgstr "erro de sintaxe na expressão condicional"
 
-#: parse.y:4668
+#: parse.y:4497
 #, c-format
 msgid "unexpected token `%s', expected `)'"
 msgstr "token inesperado `%s', esperava`)'"
 
-#: parse.y:4672
+#: parse.y:4501
 msgid "expected `)'"
 msgstr "esperava `)'"
 
-#: parse.y:4700
+#: parse.y:4529
 #, c-format
 msgid "unexpected argument `%s' to conditional unary operator"
 msgstr "argumento inesperado `%s' para operador unário condicional"
 
-#: parse.y:4704
+#: parse.y:4533
 msgid "unexpected argument to conditional unary operator"
 msgstr "argumento inesperado para operador unário condicional"
 
-#: parse.y:4750
+#: parse.y:4579
 #, c-format
 msgid "unexpected token `%s', conditional binary operator expected"
 msgstr "token inesperado `%s', esperava operador binário condicional"
 
-#: parse.y:4754
+#: parse.y:4583
 msgid "conditional binary operator expected"
 msgstr "esperava operador binário condicional"
 
-#: parse.y:4776
+#: parse.y:4605
 #, c-format
 msgid "unexpected argument `%s' to conditional binary operator"
 msgstr "argumento inesperado `%s' para operador binário condicional"
 
-#: parse.y:4780
+#: parse.y:4609
 msgid "unexpected argument to conditional binary operator"
 msgstr "argumento inesperado para operador binário condicional"
 
-#: parse.y:4791
+#: parse.y:4620
 #, c-format
 msgid "unexpected token `%c' in conditional command"
 msgstr "token inesperado `%c' em comando condicional"
 
-#: parse.y:4794
+#: parse.y:4623
 #, c-format
 msgid "unexpected token `%s' in conditional command"
 msgstr "token inesperado `%s' em comando condicional"
 
-#: parse.y:4798
+#: parse.y:4627
 #, c-format
 msgid "unexpected token %d in conditional command"
 msgstr "token inesperado %d em comando condicional"
 
-#: parse.y:6220
+#: parse.y:5996
 #, c-format
 msgid "syntax error near unexpected token `%s'"
 msgstr "erro de sintaxe próximo ao token inesperado `%s'"
 
-#: parse.y:6238
+#: parse.y:6014
 #, c-format
 msgid "syntax error near `%s'"
 msgstr "erro de sintaxe próximo a `%s'"
 
-#: parse.y:6248
+#: parse.y:6024
 msgid "syntax error: unexpected end of file"
 msgstr "erro de sintaxe: fim prematuro do arquivo"
 
-#: parse.y:6248
+#: parse.y:6024
 msgid "syntax error"
 msgstr "erro de sintaxe"
 
-#: parse.y:6310
+#: parse.y:6086
 #, c-format
 msgid "Use \"%s\" to leave the shell.\n"
 msgstr "Use \"%s\" para sair do shell.\n"
 
-#: parse.y:6472
+#: parse.y:6248
 msgid "unexpected EOF while looking for matching `)'"
 msgstr "encontrado EOF inesperado enquanto procurava por `)' correspondente"
 
-#: pcomplete.c:1132
+#: pcomplete.c:1126
 #, c-format
 msgid "completion: function `%s' not found"
 msgstr "completion: função `%s' não encontrada"
 
-#: pcomplete.c:1722
+#: pcomplete.c:1646
 #, c-format
 msgid "programmable_completion: %s: possible retry loop"
 msgstr "programmable_completion: %s: possível loop de nova tentativa"
@@ -1588,113 +1551,109 @@ msgstr "programmable_completion: %s: possível loop de nova tentativa"
 msgid "progcomp_insert: %s: NULL COMPSPEC"
 msgstr "progcomp_insert: %s: COMPSPEC NULO"
 
-#: print_cmd.c:300
+#: print_cmd.c:302
 #, c-format
 msgid "print_command: bad connector `%d'"
 msgstr "print_command: conector incorreto `%d'"
 
-#: print_cmd.c:373
+#: print_cmd.c:375
 #, c-format
 msgid "xtrace_set: %d: invalid file descriptor"
 msgstr "xtrace_set: %d: descritor de arquivo inválido"
 
-#: print_cmd.c:378
+#: print_cmd.c:380
 msgid "xtrace_set: NULL file pointer"
 msgstr "xtrace_set: ponteiro de arquivo NULO"
 
-#: print_cmd.c:382
+#: print_cmd.c:384
 #, c-format
 msgid "xtrace fd (%d) != fileno xtrace fp (%d)"
 msgstr "xtrace fd (%d) != fileno xtrace fp (%d)"
 
-#: print_cmd.c:1538
+#: print_cmd.c:1534
 #, c-format
 msgid "cprintf: `%c': invalid format character"
 msgstr "cprintf: `%c': caractere de formato inválido"
 
-#: redir.c:121 redir.c:167
+#: redir.c:124 redir.c:171
 msgid "file descriptor out of range"
 msgstr "descritor de arquivo fora dos limites"
 
-#: redir.c:174
+#: redir.c:178
 #, c-format
 msgid "%s: ambiguous redirect"
 msgstr "%s: redirecionamento ambíguo"
 
-#: redir.c:178
+#: redir.c:182
 #, c-format
 msgid "%s: cannot overwrite existing file"
 msgstr "%s: impossível sobrescrever arquivo existente"
 
-#: redir.c:183
+#: redir.c:187
 #, c-format
 msgid "%s: restricted: cannot redirect output"
 msgstr "%s: restrição: impossível redirecionar saída"
 
-#: redir.c:188
+#: redir.c:192
 #, c-format
 msgid "cannot create temp file for here-document: %s"
 msgstr "impossível criar arquivo temporário para here-document: %s"
 
-#: redir.c:192
+#: redir.c:196
 #, c-format
 msgid "%s: cannot assign fd to variable"
 msgstr "%s: impossível atribuir fd a variável"
 
-#: redir.c:588
+#: redir.c:586
 msgid "/dev/(tcp|udp)/host/port not supported without networking"
 msgstr "sem suporte a /dev/(tcp|udp)/máquina/porta sem rede"
 
-#: redir.c:870 redir.c:985 redir.c:1046 redir.c:1211
+#: redir.c:868 redir.c:983 redir.c:1044 redir.c:1209
 msgid "redirection error: cannot duplicate fd"
 msgstr "erro de redirecionamento: impossível duplicar fd"
 
-#: shell.c:343
+#: shell.c:347
 msgid "could not find /tmp, please create!"
 msgstr "impossível localizar /tmp, por favor crie!"
 
-#: shell.c:347
+#: shell.c:351
 msgid "/tmp must be a valid directory name"
 msgstr "/tmp deve ser um nome de diretório válido"
 
-#: shell.c:798
-msgid "pretty-printing mode ignored in interactive shells"
-msgstr ""
-
-#: shell.c:940
+#: shell.c:927
 #, c-format
 msgid "%c%c: invalid option"
 msgstr "%c%c: opção inválida"
 
-#: shell.c:1299
+#: shell.c:1282
 #, c-format
 msgid "cannot set uid to %d: effective uid %d"
 msgstr "impossível definir uid para %d: uid efetivo %d"
 
-#: shell.c:1306
+#: shell.c:1289
 #, c-format
 msgid "cannot set gid to %d: effective gid %d"
 msgstr "impossível definir gid para %d: gid efetivo %d"
 
-#: shell.c:1494
+#: shell.c:1458
 msgid "cannot start debugger; debugging mode disabled"
 msgstr "possível iniciar o depurador; modo de depuração desabilitado"
 
-#: shell.c:1608
+#: shell.c:1566
 #, c-format
 msgid "%s: Is a directory"
 msgstr "%s: É um diretório"
 
-#: shell.c:1826
+#: shell.c:1777
 msgid "I have no name!"
 msgstr "Eu não tenho nome!"
 
-#: shell.c:1980
+#: shell.c:1930
 #, c-format
 msgid "GNU bash, version %s-(%s)\n"
 msgstr "GNU bash, versão %s-(%s)\n"
 
-#: shell.c:1981
+#: shell.c:1931
 #, c-format
 msgid ""
 "Usage:\t%s [GNU long option] [option] ...\n"
@@ -1703,52 +1662,49 @@ msgstr ""
 "Utilização:\t%s [opção-longa-GNU] [opção] ...\n"
 "\t%s [opção-longa-GNU] [opção] arquivo-de-script ...\n"
 
-#: shell.c:1983
+#: shell.c:1933
 msgid "GNU long options:\n"
 msgstr "opções-longas-GNU:\n"
 
-#: shell.c:1987
+#: shell.c:1937
 msgid "Shell options:\n"
 msgstr "Opções do shell:\n"
 
-#: shell.c:1988
+#: shell.c:1938
 msgid "\t-ilrsD or -c command or -O shopt_option\t\t(invocation only)\n"
 msgstr "\t-ilrsD or -c comando ou -O opção-shopt\t\t(somente para chamada)\n"
 
-#: shell.c:2003
+#: shell.c:1953
 #, c-format
 msgid "\t-%s or -o option\n"
 msgstr "\t-%s ou -o opção\n"
 
-#: shell.c:2009
+#: shell.c:1959
 #, c-format
 msgid "Type `%s -c \"help set\"' for more information about shell options.\n"
-msgstr ""
-"Digite `%s -c \"help set\"' para mais informações sobre as opções do shell.\n"
+msgstr "Digite `%s -c \"help set\"' para mais informações sobre as opções do shell.\n"
 
-#: shell.c:2010
+#: shell.c:1960
 #, c-format
 msgid "Type `%s -c help' for more information about shell builtin commands.\n"
-msgstr ""
-"Digite `%s -c help' para mais informações sobre os comandos internos do "
-"shell.\n"
+msgstr "Digite `%s -c help' para mais informações sobre os comandos internos do shell.\n"
 
-#: shell.c:2011
+#: shell.c:1961
 #, c-format
 msgid "Use the `bashbug' command to report bugs.\n"
 msgstr "Uso o comando `bashbug' para relatar erros.\n"
 
-#: shell.c:2013
+#: shell.c:1963
 #, c-format
 msgid "bash home page: <http://www.gnu.org/software/bash>\n"
 msgstr "página do bash: <http://www.gnu.org/software/bash>\n"
 
-#: shell.c:2014
+#: shell.c:1964
 #, c-format
 msgid "General help using GNU software: <http://www.gnu.org/gethelp/>\n"
 msgstr "Ajuda geral sobre uso de software GNU: <http://www.gnu.org/gethelp/>\n"
 
-#: sig.c:695
+#: sig.c:707
 #, c-format
 msgid "sigprocmask: %d: invalid operation"
 msgstr "sigprocmask: %d: operação inválida"
@@ -1922,21 +1878,21 @@ msgstr "Sinal desconhecido #"
 msgid "Unknown Signal #%d"
 msgstr "Sinal desconhecido #%d"
 
-#: subst.c:1450 subst.c:1641
+#: subst.c:1445 subst.c:1608
 #, c-format
 msgid "bad substitution: no closing `%s' in %s"
 msgstr "substituição incorreta: sem `%s' de fechamento em %s"
 
-#: subst.c:3209
+#: subst.c:3154
 #, c-format
 msgid "%s: cannot assign list to array member"
 msgstr "%s: impossível atribuir uma lista a um membro de um array"
 
-#: subst.c:5734 subst.c:5750
+#: subst.c:5740 subst.c:5756
 msgid "cannot make pipe for process substitution"
 msgstr "impossível criar `pipe' para a substituição do processo"
 
-#: subst.c:5796
+#: subst.c:5798
 msgid "cannot make child for process substitution"
 msgstr "impossível criar um processo filho para a substituição do processo"
 
@@ -1955,77 +1911,67 @@ msgstr "impossível abrir `pipe' %s para escrita"
 msgid "cannot duplicate named pipe %s as fd %d"
 msgstr "impossível duplicar `pipe' %s como descritor de arquivo (fd) %d"
 
-#: subst.c:5990
+#: subst.c:5959
 msgid "command substitution: ignored null byte in input"
 msgstr "substituição de comando: byte nulo ignorado na entrada"
 
-#: subst.c:6121
+#: subst.c:6083
 msgid "cannot make pipe for command substitution"
 msgstr "impossível criar um `pipe' para substituição do comando"
 
-#: subst.c:6164
+#: subst.c:6127
 msgid "cannot make child for command substitution"
 msgstr "impossível criar um processo filho para substituição do comando"
 
-#: subst.c:6190
+#: subst.c:6153
 msgid "command_substitute: cannot duplicate pipe as fd 1"
-msgstr ""
-"command_substitute: impossível duplicar o `pipe' como descritor de arquivo "
-"(fd) 1"
+msgstr "command_substitute: impossível duplicar o `pipe' como descritor de arquivo (fd) 1"
 
-#: subst.c:6641 subst.c:9483
+#: subst.c:6580 subst.c:8939
 #, c-format
 msgid "%s: invalid variable name for name reference"
 msgstr "%s: nome de variável inválido para referência de nome"
 
-#: subst.c:6737 subst.c:6755 subst.c:6903
+#: subst.c:6666 subst.c:8351 subst.c:8371
+#, c-format
+msgid "%s: bad substitution"
+msgstr "%s: substituição incorreta"
+
+#: subst.c:6800
 #, c-format
 msgid "%s: invalid indirect expansion"
 msgstr "%s: expansão indireta inválida"
 
-#: subst.c:6771 subst.c:6910
+#: subst.c:6807
 #, c-format
 msgid "%s: invalid variable name"
 msgstr "%s: nome de variável inválido"
 
-#: subst.c:6962
-#, fuzzy, c-format
-msgid "%s: parameter not set"
-msgstr "%s: parâmetro nulo ou não inicializado"
-
-#: subst.c:6964
+#: subst.c:6854
 #, c-format
 msgid "%s: parameter null or not set"
 msgstr "%s: parâmetro nulo ou não inicializado"
 
-#: subst.c:7201 subst.c:7216
+#: subst.c:7089 subst.c:7104
 #, c-format
 msgid "%s: substring expression < 0"
 msgstr "%s: expressão de substring < 0"
 
-#: subst.c:8839 subst.c:8860
-#, c-format
-msgid "%s: bad substitution"
-msgstr "%s: substituição incorreta"
-
-#: subst.c:8948
+#: subst.c:8450
 #, c-format
 msgid "$%s: cannot assign in this way"
 msgstr "$%s: impossível atribuir desta maneira"
 
-#: subst.c:9346
-msgid ""
-"future versions of the shell will force evaluation as an arithmetic "
-"substitution"
-msgstr ""
-"versões futuras do shell vão forçar avaliação como um substituto aritmético"
+#: subst.c:8802
+msgid "future versions of the shell will force evaluation as an arithmetic substitution"
+msgstr "versões futuras do shell vão forçar avaliação como um substituto aritmético"
 
-#: subst.c:9903
+#: subst.c:9349
 #, c-format
 msgid "bad substitution: no closing \"`\" in %s"
 msgstr "substituição incorreta: sem \"`\" de fechamento em %s"
 
-#: subst.c:10907
+#: subst.c:10298
 #, c-format
 msgid "no match: %s"
 msgstr "sem correspondência: %s"
@@ -2048,111 +1994,107 @@ msgstr "esperava `)'"
 msgid "`)' expected, found %s"
 msgstr "esperava `)', encontrado %s"
 
-#: test.c:282 test.c:748 test.c:751
+#: test.c:282 test.c:744 test.c:747
 #, c-format
 msgid "%s: unary operator expected"
 msgstr "%s: esperava operador unário"
 
-#: test.c:469 test.c:791
+#: test.c:469 test.c:787
 #, c-format
 msgid "%s: binary operator expected"
 msgstr "%s: esperava operador binário"
 
-#: test.c:873
+#: test.c:869
 msgid "missing `]'"
 msgstr "faltando `]'"
 
-#: trap.c:216
+#: trap.c:224
 msgid "invalid signal number"
 msgstr "número de sinal inválido"
 
-#: trap.c:379
+#: trap.c:387
 #, c-format
 msgid "run_pending_traps: bad value in trap_list[%d]: %p"
 msgstr "run_pending_traps: valor incorreto em trap_list[%d]: %p"
 
-#: trap.c:383
+#: trap.c:391
 #, c-format
-msgid ""
-"run_pending_traps: signal handler is SIG_DFL, resending %d (%s) to myself"
-msgstr ""
-"run_pending_traps: manipulador de sinal é SIG_DFL, enviando novamente %d (%"
-"s) para mim mesmo"
+msgid "run_pending_traps: signal handler is SIG_DFL, resending %d (%s) to myself"
+msgstr "run_pending_traps: manipulador de sinal é SIG_DFL, enviando novamente %d (%s) para mim mesmo"
 
-#: trap.c:439
+#: trap.c:447
 #, c-format
 msgid "trap_handler: bad signal %d"
 msgstr "trap_handler: sinal incorreto %d"
 
-#: variables.c:399
+#: variables.c:409
 #, c-format
 msgid "error importing function definition for `%s'"
 msgstr "erro ao importar a definição da função para `%s'"
 
-#: variables.c:801
+#: variables.c:814
 #, c-format
 msgid "shell level (%d) too high, resetting to 1"
 msgstr "nível do shell (%d) muito grande, redefinindo para 1"
 
-#: variables.c:2512
+#: variables.c:2413
 msgid "make_local_variable: no function context at current scope"
 msgstr "make_local_variable: nenhum contexto de função no atual escopo"
 
-#: variables.c:2531
+#: variables.c:2432
 #, c-format
 msgid "%s: variable may not be assigned value"
 msgstr "%s: a variável pode não ter um valor atribuído"
 
-#: variables.c:3246
+#: variables.c:3043
 #, c-format
 msgid "%s: assigning integer to name reference"
 msgstr "%s: atribuindo inteiro para referência de nome"
 
-#: variables.c:4149
+#: variables.c:3940
 msgid "all_local_variables: no function context at current scope"
 msgstr "all_local_variables: nenhum contexto de função no escopo atual"
 
-#: variables.c:4437
+#: variables.c:4218
 #, c-format
 msgid "%s has null exportstr"
 msgstr "%s possui a string de exportação nula"
 
 # exportstr é uma variável no código fonte do bash (arquivo variiables.c)
-#: variables.c:4442 variables.c:4451
+#: variables.c:4223 variables.c:4232
 #, c-format
 msgid "invalid character %d in exportstr for %s"
 msgstr "caractere inválido na %d na exportstr para %s"
 
 # exportstr é uma variável no código fonte do bash (arquivo variiables.c)
-#: variables.c:4457
+#: variables.c:4238
 #, c-format
 msgid "no `=' in exportstr for %s"
 msgstr "Sem `=' na exportstr para %s"
 
-#: variables.c:4911
+#: variables.c:4684
 msgid "pop_var_context: head of shell_variables not a function context"
 msgstr "pop_var_context: cabeça de shell_variables não é um contexto de função"
 
-#: variables.c:4924
+#: variables.c:4697
 msgid "pop_var_context: no global_variables context"
 msgstr "pop_var_context: nenhum contexto em no global_variables"
 
-#: variables.c:4999
+#: variables.c:4772
 msgid "pop_scope: head of shell_variables not a temporary environment scope"
-msgstr ""
-"pop_scope: cabeça de shell_variables não é um escopo de ambiente temporário"
+msgstr "pop_scope: cabeça de shell_variables não é um escopo de ambiente temporário"
 
-#: variables.c:5862
+#: variables.c:5619
 #, c-format
 msgid "%s: %s: cannot open as FILE"
 msgstr "%s: %s: impossível abrir como ARQUIVO"
 
-#: variables.c:5867
+#: variables.c:5624
 #, c-format
 msgid "%s: %s: invalid value for trace file descriptor"
 msgstr "%s: %s: valor inválido para rastrear descritor de arquivo"
 
-#: variables.c:5912
+#: variables.c:5669
 #, c-format
 msgid "%s: %s: compatibility value out of range"
 msgstr "%s: %s: valor de compatibilidade fora dos limites"
@@ -2162,12 +2104,8 @@ msgid "Copyright (C) 2016 Free Software Foundation, Inc."
 msgstr "Copyright (C) 2016 Free Software Foundation, Inc."
 
 #: version.c:47 version2.c:47
-msgid ""
-"License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl."
-"html>\n"
-msgstr ""
-"Licença GPLv3+: GNU GPL versão 3 ou posterior <http://gnu.org/licenses/gpl."
-"html>.\n"
+msgid "License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>\n"
+msgstr "Licença GPLv3+: GNU GPL versão 3 ou posterior <http://gnu.org/licenses/gpl.html>.\n"
 
 #: version.c:86 version2.c:86
 #, c-format
@@ -2182,22 +2120,22 @@ msgstr "Este é um software livre; você é livre para alterar e redistribuí-lo
 msgid "There is NO WARRANTY, to the extent permitted by law."
 msgstr "Há NENHUMA GARANTIA, na extensão permitida pela lei."
 
-#: xmalloc.c:93
+#: xmalloc.c:91
 #, c-format
 msgid "%s: cannot allocate %lu bytes (%lu bytes allocated)"
 msgstr "%s: impossível alocar %lu bytes (%lu bytes alocados)"
 
-#: xmalloc.c:95
+#: xmalloc.c:93
 #, c-format
 msgid "%s: cannot allocate %lu bytes"
 msgstr "%s: impossível alocar %lu bytes"
 
-#: xmalloc.c:165
+#: xmalloc.c:163
 #, c-format
 msgid "%s: %s:%d: cannot allocate %lu bytes (%lu bytes allocated)"
 msgstr "%s: %s:%d: impossível alocar %lu bytes (%lu bytes alocados)"
 
-#: xmalloc.c:167
+#: xmalloc.c:165
 #, c-format
 msgid "%s: %s:%d: cannot allocate %lu bytes"
 msgstr "%s: %s:%d: impossível alocar %lu bytes"
@@ -2211,13 +2149,8 @@ msgid "unalias [-a] name [name ...]"
 msgstr "unalias [-a] NOME [NOME ...]"
 
 #: builtins.c:53
-msgid ""
-"bind [-lpsvPSVX] [-m keymap] [-f filename] [-q name] [-u name] [-r keyseq] [-"
-"x keyseq:shell-command] [keyseq:readline-function or readline-command]"
-msgstr ""
-"bind [-lpsvPSVX] [-m MAPA-TECLAS] [-f ARQUIVO] [-q NOME] [-u NOME] [-r SEQ-"
-"TECLAS]  [-x SEQ-TECLAS:COMANDO-SHELL] [SEQ-TECLAS:FUNÇÃO-DE-LINHA ou "
-"COMANDO-DE-LINHA]"
+msgid "bind [-lpsvPSVX] [-m keymap] [-f filename] [-q name] [-u name] [-r keyseq] [-x keyseq:shell-command] [keyseq:readline-function or readline-command]"
+msgstr "bind [-lpsvPSVX] [-m MAPA-TECLAS] [-f ARQUIVO] [-q NOME] [-u NOME] [-r SEQ-TECLAS]  [-x SEQ-TECLAS:COMANDO-SHELL] [SEQ-TECLAS:FUNÇÃO-DE-LINHA ou COMANDO-DE-LINHA]"
 
 #: builtins.c:56
 msgid "break [n]"
@@ -2293,8 +2226,7 @@ msgstr "logout [n]"
 
 #: builtins.c:105
 msgid "fc [-e ename] [-lnr] [first] [last] or fc -s [pat=rep] [command]"
-msgstr ""
-"fc [-e EDITOR] [-lnr] [PRIMEIRO] [ÚLTIMO] ou fc -s [ANTIGO=NOVO] [COMANDO]"
+msgstr "fc [-e EDITOR] [-lnr] [PRIMEIRO] [ÚLTIMO] ou fc -s [ANTIGO=NOVO] [COMANDO]"
 
 #: builtins.c:109
 msgid "fg [job_spec]"
@@ -2313,12 +2245,8 @@ msgid "help [-dms] [pattern ...]"
 msgstr "help [-dms] [PADRÃO ...]"
 
 #: builtins.c:123
-msgid ""
-"history [-c] [-d offset] [n] or history -anrw [filename] or history -ps arg "
-"[arg...]"
-msgstr ""
-"history [-c] [-d POSIÇÃO] [n] ou history -anrw [ARQUIVO] ou history -ps ARG "
-"[ARG...]"
+msgid "history [-c] [-d offset] [n] or history -anrw [filename] or history -ps arg [arg...]"
+msgstr "history [-c] [-d POSIÇÃO] [n] ou history -anrw [ARQUIVO] ou history -ps ARG [ARG...]"
 
 #: builtins.c:127
 msgid "jobs [-lnprs] [jobspec ...] or jobs -x command [args]"
@@ -2329,24 +2257,16 @@ msgid "disown [-h] [-ar] [jobspec ... | pid ...]"
 msgstr "disown [-h] [-ar] [ESPEC-JOB ... | pid ...]"
 
 #: builtins.c:134
-msgid ""
-"kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... or kill -l "
-"[sigspec]"
-msgstr ""
-"kill [-s SIGSPEC | -n SIGNUM | -SIGSPEC] PID | ESPEC-JOB ... ou kill -l "
-"[SIGSPEC]"
+msgid "kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... or kill -l [sigspec]"
+msgstr "kill [-s SIGSPEC | -n SIGNUM | -SIGSPEC] PID | ESPEC-JOB ... ou kill -l [SIGSPEC]"
 
 #: builtins.c:136
 msgid "let arg [arg ...]"
 msgstr "let ARG [ARG ...]"
 
 #: builtins.c:138
-msgid ""
-"read [-ers] [-a array] [-d delim] [-i text] [-n nchars] [-N nchars] [-p "
-"prompt] [-t timeout] [-u fd] [name ...]"
-msgstr ""
-"read [-ers] [-a ARRAY] [-d DELIM] [-i TEXTO] [-n NCHARS] [-N NCHARS] [-p "
-"CONFIRMAR ] [-t TEMPO] [-u FD] [NOME ...]"
+msgid "read [-ers] [-a array] [-d delim] [-i text] [-n nchars] [-N nchars] [-p prompt] [-t timeout] [-u fd] [name ...]"
+msgstr "read [-ers] [-a ARRAY] [-d DELIM] [-i TEXTO] [-n NCHARS] [-N NCHARS] [-p CONFIRMAR ] [-t TEMPO] [-u FD] [NOME ...]"
 
 #: builtins.c:140
 msgid "return [n]"
@@ -2409,8 +2329,7 @@ msgid "umask [-p] [-S] [mode]"
 msgstr "umask [-p] [-S] [MODO]"
 
 #: builtins.c:177
-#, fuzzy
-msgid "wait [-fn] [id ...]"
+msgid "wait [-n] [id ...]"
 msgstr "wait [-n] [ID ...]"
 
 #: builtins.c:181
@@ -2438,12 +2357,8 @@ msgid "case WORD in [PATTERN [| PATTERN]...) COMMANDS ;;]... esac"
 msgstr "case PALAVRA in [PADRÃO [| PADRÃO]...) COMANDOS ;;]... esac"
 
 #: builtins.c:194
-msgid ""
-"if COMMANDS; then COMMANDS; [ elif COMMANDS; then COMMANDS; ]... [ else "
-"COMMANDS; ] fi"
-msgstr ""
-"if COMANDOS; then COMANDOS; [ elif COMANDOS; then COMANDOS; ]... [ else "
-"COMANDOS; ] fi"
+msgid "if COMMANDS; then COMMANDS; [ elif COMMANDS; then COMMANDS; ]... [ else COMMANDS; ] fi"
+msgstr "if COMANDOS; then COMANDOS; [ elif COMANDOS; then COMANDOS; ]... [ else COMANDOS; ] fi"
 
 #: builtins.c:196
 msgid "while COMMANDS; do COMMANDS; done"
@@ -2503,44 +2418,24 @@ msgid "printf [-v var] format [arguments]"
 msgstr "printf [-v VAR] FORMATO [ARGUMENTOS]"
 
 #: builtins.c:231
-msgid ""
-"complete [-abcdefgjksuv] [-pr] [-DE] [-o option] [-A action] [-G globpat] [-"
-"W wordlist]  [-F function] [-C command] [-X filterpat] [-P prefix] [-S "
-"suffix] [name ...]"
-msgstr ""
-"complete [-abcdefgjksuv] [-pr] [-DE] [-o OPÇÃO] [-A AÇÃO] [-G GLOBAL] [-W "
-"LISTA-PALAVRAS]  [-F FUNÇÃO] [-C COMANDO] [-X FILTRO] [-P PREFIXO] [-S "
-"SUFIXO] [NOME ...]"
+msgid "complete [-abcdefgjksuv] [-pr] [-DE] [-o option] [-A action] [-G globpat] [-W wordlist]  [-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] [name ...]"
+msgstr "complete [-abcdefgjksuv] [-pr] [-DE] [-o OPÇÃO] [-A AÇÃO] [-G GLOBAL] [-W LISTA-PALAVRAS]  [-F FUNÇÃO] [-C COMANDO] [-X FILTRO] [-P PREFIXO] [-S SUFIXO] [NOME ...]"
 
 #: builtins.c:235
-msgid ""
-"compgen [-abcdefgjksuv] [-o option] [-A action] [-G globpat] [-W wordlist]  "
-"[-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] [word]"
-msgstr ""
-"compgen [-abcdefgjksuv] [-o OPÇÃO] [-A AÇÃO] [-G GLOBAL] [-W LISTA-"
-"PALAVRAS]  [-F FUNÇÃO] [-C COMANDO] [-X FILTRO] [-P PREFIXO] [-S SUFIXO] "
-"[PALAVRA]"
+msgid "compgen [-abcdefgjksuv] [-o option] [-A action] [-G globpat] [-W wordlist]  [-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] [word]"
+msgstr "compgen [-abcdefgjksuv] [-o OPÇÃO] [-A AÇÃO] [-G GLOBAL] [-W LISTA-PALAVRAS]  [-F FUNÇÃO] [-C COMANDO] [-X FILTRO] [-P PREFIXO] [-S SUFIXO] [PALAVRA]"
 
 #: builtins.c:239
 msgid "compopt [-o|+o option] [-DE] [name ...]"
 msgstr "compopt [-o|+o OPÇÃO] [-DE] [NOME ...]"
 
 #: builtins.c:242
-msgid ""
-"mapfile [-d delim] [-n count] [-O origin] [-s count] [-t] [-u fd] [-C "
-"callback] [-c quantum] [array]"
-msgstr ""
-"mapfile [-d DELIM] [-n NÚMERO] [-O ORIGEM] [-s NÚMERO] [-t] [-u FD] [-C "
-"CHAMADA] [-c QUANTIDADE] [ARRAY]"
+msgid "mapfile [-d delim] [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c quantum] [array]"
+msgstr "mapfile [-d DELIM] [-n NÚMERO] [-O ORIGEM] [-s NÚMERO] [-t] [-u FD] [-C CHAMADA] [-c QUANTIDADE] [ARRAY]"
 
 #: builtins.c:244
-#, fuzzy
-msgid ""
-"readarray [-d delim] [-n count] [-O origin] [-s count] [-t] [-u fd] [-C "
-"callback] [-c quantum] [array]"
-msgstr ""
-"readarray [-n NÚMERO] [-O ORIGEM] [-s NÚMERO] [-t] [-u FD] [-C CHAMADA] [-c "
-"QUANTIDADE] [ARRAY]"
+msgid "readarray [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c quantum] [array]"
+msgstr "readarray [-n NÚMERO] [-O ORIGEM] [-s NÚMERO] [-t] [-u FD] [-C CHAMADA] [-c QUANTIDADE] [ARRAY]"
 
 # help alias
 #: builtins.c:256
@@ -2558,8 +2453,7 @@ msgid ""
 "      -p\tprint all defined aliases in a reusable format\n"
 "    \n"
 "    Exit Status:\n"
-"    alias returns true unless a NAME is supplied for which no alias has "
-"been\n"
+"    alias returns true unless a NAME is supplied for which no alias has been\n"
 "    defined."
 msgstr ""
 "Define ou exibe apelidos (aliases).\n"
@@ -2608,30 +2502,25 @@ msgid ""
 "    Options:\n"
 "      -m  keymap         Use KEYMAP as the keymap for the duration of this\n"
 "                         command.  Acceptable keymap names are emacs,\n"
-"                         emacs-standard, emacs-meta, emacs-ctlx, vi, vi-"
-"move,\n"
+"                         emacs-standard, emacs-meta, emacs-ctlx, vi, vi-move,\n"
 "                         vi-command, and vi-insert.\n"
 "      -l                 List names of functions.\n"
 "      -P                 List function names and bindings.\n"
 "      -p                 List functions and bindings in a form that can be\n"
 "                         reused as input.\n"
-"      -S                 List key sequences that invoke macros and their "
-"values\n"
-"      -s                 List key sequences that invoke macros and their "
-"values\n"
+"      -S                 List key sequences that invoke macros and their values\n"
+"      -s                 List key sequences that invoke macros and their values\n"
 "                         in a form that can be reused as input.\n"
 "      -V                 List variable names and values\n"
 "      -v                 List variable names and values in a form that can\n"
 "                         be reused as input.\n"
 "      -q  function-name  Query about which keys invoke the named function.\n"
-"      -u  function-name  Unbind all keys which are bound to the named "
-"function.\n"
+"      -u  function-name  Unbind all keys which are bound to the named function.\n"
 "      -r  keyseq         Remove the binding for KEYSEQ.\n"
 "      -f  filename       Read key bindings from FILENAME.\n"
 "      -x  keyseq:shell-command\tCause SHELL-COMMAND to be executed when\n"
 "    \t\t\t\tKEYSEQ is entered.\n"
-"      -X                 List key sequences bound with -x and associated "
-"commands\n"
+"      -X                 List key sequences bound with -x and associated commands\n"
 "                         in a form that can be reused as input.\n"
 "    \n"
 "    Exit Status:\n"
@@ -2651,33 +2540,24 @@ msgstr ""
 "                         vi, vi-move, vi-command e vi-insert.\n"
 "      -l                 Lista nomes de funções.\n"
 "      -P                 Lista nomes e associações de função.\n"
-"      -p                 Lista funções e associações em uma forma que pode "
-"ser\n"
+"      -p                 Lista funções e associações em uma forma que pode ser\n"
 "                         usada como entrada.\n"
-"      -S                 Lista sequências de teclas que chamam macros e "
-"seus\n"
+"      -S                 Lista sequências de teclas que chamam macros e seus\n"
 "                         valores\n"
-"      -s                 Lista sequências de teclas que chamam macros e "
-"seus\n"
-"                         valores em uma forma que pode ser usada como "
-"entrada.\n"
+"      -s                 Lista sequências de teclas que chamam macros e seus\n"
+"                         valores em uma forma que pode ser usada como entrada.\n"
 "      -V                 Lista nomes e valores de variáveis\n"
-"      -v                 Lista nomes e valores de variáveis em uma forma "
-"que\n"
+"      -v                 Lista nomes e valores de variáveis em uma forma que\n"
 "                         pode ser usada como entrada.\n"
-"      -q  NOME           Consulta sobre quais teclas chamam a função "
-"informada.\n"
-"      -u  NOME           Desassocia todas teclas que estão associadas à "
-"função\n"
+"      -q  NOME           Consulta sobre quais teclas chamam a função informada.\n"
+"      -u  NOME           Desassocia todas teclas que estão associadas à função\n"
 "                         informada.\n"
 "      -r  SEQ-TECLAS     Remove a associação para SEQ-TECLAS.\n"
 "      -f  ARQUIVO        Lê associações de tecla de ARQUIVO.\n"
 "      -x  SEQ-TECLAS:COMANDO-SHELL\n"
-"                         Faz com que COMANDO-SHELL seja executado ao "
-"inserir\n"
+"                         Faz com que COMANDO-SHELL seja executado ao inserir\n"
 "                         SEQ-TECLAS.\n"
-"      -X                 Lista sequência de teclas associadas com -x e "
-"comandos\n"
+"      -X                 Lista sequência de teclas associadas com -x e comandos\n"
 "                         associados em uma forma que pode ser usada como\n"
 "                         entrada.\n"
 "    \n"
@@ -2731,8 +2611,7 @@ msgid ""
 "    \n"
 "    Execute SHELL-BUILTIN with arguments ARGs without performing command\n"
 "    lookup.  This is useful when you wish to reimplement a shell builtin\n"
-"    as a shell function, but need to execute the builtin within the "
-"function.\n"
+"    as a shell function, but need to execute the builtin within the function.\n"
 "    \n"
 "    Exit Status:\n"
 "    Returns the exit status of SHELL-BUILTIN, or false if SHELL-BUILTIN is\n"
@@ -2768,8 +2647,7 @@ msgstr ""
 "Retorna o contexto da chamada de sub-rotina atual.\n"
 "    \n"
 "    Sem EXPR, retorna \"$linha $arquivo\".  Com EXPR, retorna\n"
-"    \"$linha $sub-rotina $arquivo\"; essa informação extra pode ser usada "
-"para\n"
+"    \"$linha $sub-rotina $arquivo\"; essa informação extra pode ser usada para\n"
 "    fornecer um rastro da pilha.\n"
 "    \n"
 "    O valor de EXPR indica quantos quadros de chamada deve voltar antes do\n"
@@ -2784,22 +2662,16 @@ msgstr ""
 msgid ""
 "Change the shell working directory.\n"
 "    \n"
-"    Change the current directory to DIR.  The default DIR is the value of "
-"the\n"
+"    Change the current directory to DIR.  The default DIR is the value of the\n"
 "    HOME shell variable.\n"
 "    \n"
-"    The variable CDPATH defines the search path for the directory "
-"containing\n"
-"    DIR.  Alternative directory names in CDPATH are separated by a colon "
-"(:).\n"
-"    A null directory name is the same as the current directory.  If DIR "
-"begins\n"
+"    The variable CDPATH defines the search path for the directory containing\n"
+"    DIR.  Alternative directory names in CDPATH are separated by a colon (:).\n"
+"    A null directory name is the same as the current directory.  If DIR begins\n"
 "    with a slash (/), then CDPATH is not used.\n"
 "    \n"
-"    If the directory is not found, and the shell option `cdable_vars' is "
-"set,\n"
-"    the word is assumed to be  a variable name.  If that variable has a "
-"value,\n"
+"    If the directory is not found, and the shell option `cdable_vars' is set,\n"
+"    the word is assumed to be  a variable name.  If that variable has a value,\n"
 "    its value is used for DIR.\n"
 "    \n"
 "    Options:\n"
@@ -2815,13 +2687,11 @@ msgid ""
 "    \t\tattributes as a directory containing the file attributes\n"
 "    \n"
 "    The default is to follow symbolic links, as if `-L' were specified.\n"
-"    `..' is processed by removing the immediately previous pathname "
-"component\n"
+"    `..' is processed by removing the immediately previous pathname component\n"
 "    back to a slash or the beginning of DIR.\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns 0 if the directory is changed, and if $PWD is set successfully "
-"when\n"
+"    Returns 0 if the directory is changed, and if $PWD is set successfully when\n"
 "    -P is used; non-zero otherwise."
 msgstr ""
 "Altera o diretório de trabalho do shell.\n"
@@ -2829,20 +2699,17 @@ msgstr ""
 "    Altera o diretório atual para DIR, sendo o padrão de DIR o mesmo valor\n"
 "    da variável HOME.\n"
 "    \n"
-"    A variável CDPATH define o caminho de pesquisa para o diretório "
-"contendo\n"
+"    A variável CDPATH define o caminho de pesquisa para o diretório contendo\n"
 "    DIR. Nomes de diretórios alternativos em CDPATH são separados por\n"
 "    dois-pontos (:). Um nome de diretório nulo é o mesmo que o diretório\n"
 "    atual. Se DIR inicia com uma barra (/), então CDPATH não é usada.\n"
 "    \n"
-"    Se o diretório não for encontrado e a opção `cdable_vars` estiver "
-"definida\n"
+"    Se o diretório não for encontrado e a opção `cdable_vars` estiver definida\n"
 "    no shell, a palavra é presumida como sendo o nome de uma variável. Se\n"
 "    tal variável possuir um valor, este valor é usado para DIR.\n"
 "    \n"
 "    Opções:\n"
-"      -L\tforça links simbólicos a serem seguidos: resolver links "
-"simbólicos\n"
+"      -L\tforça links simbólicos a serem seguidos: resolver links simbólicos\n"
 "      \t\tem DIR após processar instâncias de `..'\n"
 "      -P\tusa a estrutura do diretório físico sem seguir links\n"
 "    \t\tsimbólicos: resolve links simbólicos em DIR antes de processar\n"
@@ -2853,15 +2720,12 @@ msgstr ""
 "    \t\tatributos estendidos como um diretório contendo os atributos de\n"
 "    \t\tarquivo\n"
 "    \n"
-"    O padrão é seguir links simbólicos, como se `-L' tivesse sido "
-"especificada.\n"
-"    `..' é processada removendo o componente de caminho imediatamente "
-"anterior\n"
+"    O padrão é seguir links simbólicos, como se `-L' tivesse sido especificada.\n"
+"    `..' é processada removendo o componente de caminho imediatamente anterior\n"
 "    de volta para uma barra ou para o início de DIR.\n"
 "    \n"
 "    Status de saída:\n"
-"    Retorna 0, se o diretório tiver sido alterado e se $PWD está definida "
-"com\n"
+"    Retorna 0, se o diretório tiver sido alterado e se $PWD está definida com\n"
 "    sucesso quando a opção -P for usada; do contrário, retorna não-zero."
 
 # help pwd
@@ -2942,8 +2806,7 @@ msgid ""
 "Execute a simple command or display information about commands.\n"
 "    \n"
 "    Runs COMMAND with ARGS suppressing  shell function lookup, or display\n"
-"    information about the specified COMMANDs.  Can be used to invoke "
-"commands\n"
+"    information about the specified COMMANDs.  Can be used to invoke commands\n"
 "    on disk when a function with the same name exists.\n"
 "    \n"
 "    Options:\n"
@@ -2973,7 +2836,6 @@ msgstr ""
 
 # help declare
 #: builtins.c:490
-#, fuzzy
 msgid ""
 "Set variable values and attributes.\n"
 "    \n"
@@ -2992,11 +2854,11 @@ msgid ""
 "      -a\tto make NAMEs indexed arrays (if supported)\n"
 "      -A\tto make NAMEs associative arrays (if supported)\n"
 "      -i\tto make NAMEs have the `integer' attribute\n"
-"      -l\tto convert the value of each NAME to lower case on assignment\n"
+"      -l\tto convert NAMEs to lower case on assignment\n"
 "      -n\tmake NAME a reference to the variable named by its value\n"
 "      -r\tto make NAMEs readonly\n"
 "      -t\tto make NAMEs have the `trace' attribute\n"
-"      -u\tto convert the value of each NAME to upper case on assignment\n"
+"      -u\tto convert NAMEs to upper case on assignment\n"
 "      -x\tto make NAMEs export\n"
 "    \n"
 "    Using `+' instead of `-' turns off the given attribute.\n"
@@ -3004,8 +2866,7 @@ msgid ""
 "    Variables with the integer attribute have arithmetic evaluation (see\n"
 "    the `let' command) performed when the variable is assigned a value.\n"
 "    \n"
-"    When used in a function, `declare' makes NAMEs local, as with the "
-"`local'\n"
+"    When used in a function, `declare' makes NAMEs local, as with the `local'\n"
 "    command.  The `-g' option suppresses this behavior.\n"
 "    \n"
 "    Exit Status:\n"
@@ -3014,8 +2875,7 @@ msgid ""
 msgstr ""
 "Define valores e atributos de variável.\n"
 "    \n"
-"    Declara variáveis e a elas fornece atributos. Se nenhum NOME for "
-"fornecido,\n"
+"    Declara variáveis e a elas fornece atributos. Se nenhum NOME for fornecido,\n"
 "    exibe os atributos e valores de todas as variáveis.\n"
 "    \n"
 "    Opções:\n"
@@ -3079,8 +2939,7 @@ msgstr ""
 "    Cria uma variável local chamada NOME e lhe dá VALOR. OPÇÃO pode ser\n"
 "    qualquer opção aceita pelo `declare'.\n"
 "    \n"
-"    Variáveis locais podem ser usadas apenas em uma função; elas são "
-"visíveis\n"
+"    Variáveis locais podem ser usadas apenas em uma função; elas são visíveis\n"
 "    apenas para a função na qual elas foram definidas, bem como para seus\n"
 "    filhos.\n"
 "    \n"
@@ -3094,8 +2953,7 @@ msgstr ""
 msgid ""
 "Write arguments to the standard output.\n"
 "    \n"
-"    Display the ARGs, separated by a single space character and followed by "
-"a\n"
+"    Display the ARGs, separated by a single space character and followed by a\n"
 "    newline, on the standard output.\n"
 "    \n"
 "    Options:\n"
@@ -3235,8 +3093,7 @@ msgstr ""
 msgid ""
 "Execute arguments as a shell command.\n"
 "    \n"
-"    Combine ARGs into a single string, use the result as input to the "
-"shell,\n"
+"    Combine ARGs into a single string, use the result as input to the shell,\n"
 "    and execute the resulting commands.\n"
 "    \n"
 "    Exit Status:\n"
@@ -3317,8 +3174,7 @@ msgstr ""
 "    caractere de opção encontrada. Se getopts não estiver no modo\n"
 "    silencioso, uma opção inválida é vista, getopts coloca um '?' em\n"
 "    NOME e remove definição de OPTARG. Se um argumento obrigatório não for\n"
-"    encontrado, um '?' é colocado em NOME, OPTARG tem sua definição "
-"removida\n"
+"    encontrado, um '?' é colocado em NOME, OPTARG tem sua definição removida\n"
 "    e uma mensagem de diagnóstico é mostrada.\n"
 "    \n"
 "    Se a variável shell OPTERR possuir o valor 0, getopts desabilita a\n"
@@ -3338,8 +3194,7 @@ msgid ""
 "Replace the shell with the given command.\n"
 "    \n"
 "    Execute COMMAND, replacing this shell with the specified program.\n"
-"    ARGUMENTS become the arguments to COMMAND.  If COMMAND is not "
-"specified,\n"
+"    ARGUMENTS become the arguments to COMMAND.  If COMMAND is not specified,\n"
 "    any redirections take effect in the current shell.\n"
 "    \n"
 "    Options:\n"
@@ -3347,13 +3202,11 @@ msgid ""
 "      -c\texecute COMMAND with an empty environment\n"
 "      -l\tplace a dash in the zeroth argument to COMMAND\n"
 "    \n"
-"    If the command cannot be executed, a non-interactive shell exits, "
-"unless\n"
+"    If the command cannot be executed, a non-interactive shell exits, unless\n"
 "    the shell option `execfail' is set.\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns success unless COMMAND is not found or a redirection error "
-"occurs."
+"    Returns success unless COMMAND is not found or a redirection error occurs."
 msgstr ""
 "Substitui o shell com o comando fornecido.\n"
 "    \n"
@@ -3392,8 +3245,7 @@ msgstr ""
 msgid ""
 "Exit a login shell.\n"
 "    \n"
-"    Exits a login shell with exit status N.  Returns an error if not "
-"executed\n"
+"    Exits a login shell with exit status N.  Returns an error if not executed\n"
 "    in a login shell."
 msgstr ""
 "Sai de um shell de login.\n"
@@ -3406,15 +3258,13 @@ msgstr ""
 msgid ""
 "Display or execute commands from the history list.\n"
 "    \n"
-"    fc is used to list or edit and re-execute commands from the history "
-"list.\n"
+"    fc is used to list or edit and re-execute commands from the history list.\n"
 "    FIRST and LAST can be numbers specifying the range, or FIRST can be a\n"
 "    string, which means the most recent command beginning with that\n"
 "    string.\n"
 "    \n"
 "    Options:\n"
-"      -e ENAME\tselect which editor to use.  Default is FCEDIT, then "
-"EDITOR,\n"
+"      -e ENAME\tselect which editor to use.  Default is FCEDIT, then EDITOR,\n"
 "    \t\tthen vi\n"
 "      -l \tlist lines instead of editing\n"
 "      -n\tomit line numbers when listing\n"
@@ -3428,14 +3278,12 @@ msgid ""
 "    the last command.\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns success or status of executed command; non-zero if an error "
-"occurs."
+"    Returns success or status of executed command; non-zero if an error occurs."
 msgstr ""
 "Exibe ou executa comandos da lista do histórico.\n"
 "    \n"
 "    fc é usado para listar ou editar e re-executar comandos da lista de\n"
-"    histórico. PRIMEIRO e ÚLTIMO podem ser números especificando o "
-"intervalo\n"
+"    histórico. PRIMEIRO e ÚLTIMO podem ser números especificando o intervalo\n"
 "    ou PRIMEIRO pode ser uma string, o que significa o comando mais recente\n"
 "    iniciando com aquela string.\n"
 "    \n"
@@ -3476,18 +3324,15 @@ msgstr ""
 "    a noção do shell de trabalho atual é usada.\n"
 "    \n"
 "    Status de saída:\n"
-"    Status do comando colocado em primeiro plano ou falha, se ocorrer um "
-"erro."
+"    Status do comando colocado em primeiro plano ou falha, se ocorrer um erro."
 
 # help bg
 #: builtins.c:773
 msgid ""
 "Move jobs to the background.\n"
 "    \n"
-"    Place the jobs identified by each JOB_SPEC in the background, as if "
-"they\n"
-"    had been started with `&'.  If JOB_SPEC is not present, the shell's "
-"notion\n"
+"    Place the jobs identified by each JOB_SPEC in the background, as if they\n"
+"    had been started with `&'.  If JOB_SPEC is not present, the shell's notion\n"
 "    of the current job is used.\n"
 "    \n"
 "    Exit Status:\n"
@@ -3509,8 +3354,7 @@ msgid ""
 "Remember or display program locations.\n"
 "    \n"
 "    Determine and remember the full pathname of each command NAME.  If\n"
-"    no arguments are given, information about remembered commands is "
-"displayed.\n"
+"    no arguments are given, information about remembered commands is displayed.\n"
 "    \n"
 "    Options:\n"
 "      -d\tforget the remembered location of each NAME\n"
@@ -3529,8 +3373,7 @@ msgid ""
 msgstr ""
 "Memoriza ou exibe localizações de programas.\n"
 "    \n"
-"    Determina e memoriza do caminho completo de cada comando NOME. Se "
-"nenhum\n"
+"    Determina e memoriza do caminho completo de cada comando NOME. Se nenhum\n"
 "    argumento for fornecido, exibe informação sobre comandos memorizados.\n"
 "    \n"
 "    Opções:\n"
@@ -3551,7 +3394,6 @@ msgstr ""
 
 # help help
 #: builtins.c:812
-#, fuzzy
 msgid ""
 "Display information about builtin commands.\n"
 "    \n"
@@ -3566,11 +3408,10 @@ msgid ""
 "    \t\tPATTERN\n"
 "    \n"
 "    Arguments:\n"
-"      PATTERN\tPattern specifying a help topic\n"
+"      PATTERN\tPattern specifiying a help topic\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns success unless PATTERN is not found or an invalid option is "
-"given."
+"    Returns success unless PATTERN is not found or an invalid option is given."
 msgstr ""
 "Exibe informação sobre comandos internos (builtin).\n"
 "    \n"
@@ -3592,7 +3433,6 @@ msgstr ""
 "    inválida seja fornecida."
 
 #: builtins.c:836
-#, fuzzy
 msgid ""
 "Display or manipulate the history list.\n"
 "    \n"
@@ -3601,8 +3441,7 @@ msgid ""
 "    \n"
 "    Options:\n"
 "      -c\tclear the history list by deleting all of the entries\n"
-"      -d offset\tdelete the history entry at position OFFSET. Negative\n"
-"    \t\toffsets count back from the end of the history list\n"
+"      -d offset\tdelete the history entry at position OFFSET.\n"
 "    \n"
 "      -a\tappend history lines from this session to the history file\n"
 "      -n\tread all history lines not already read from the history file\n"
@@ -3620,8 +3459,7 @@ msgid ""
 "    \n"
 "    If the HISTTIMEFORMAT variable is set and not null, its value is used\n"
 "    as a format string for strftime(3) to print the time stamp associated\n"
-"    with each displayed history entry.  No time stamps are printed "
-"otherwise.\n"
+"    with each displayed history entry.  No time stamps are printed otherwise.\n"
 "    \n"
 "    Exit Status:\n"
 "    Returns success unless an invalid option is given or an error occurs."
@@ -3659,7 +3497,7 @@ msgstr ""
 "    ocorra um erro."
 
 # help jobs
-#: builtins.c:873
+#: builtins.c:872
 msgid ""
 "Display status of jobs.\n"
 "    \n"
@@ -3705,7 +3543,7 @@ msgstr ""
 "    ocorra um erro. Se -x for usado, retorna o status de saída do COMANDO."
 
 # help disown
-#: builtins.c:900
+#: builtins.c:899
 msgid ""
 "Remove jobs from current shell.\n"
 "    \n"
@@ -3737,7 +3575,7 @@ msgstr ""
 "    sejam fornecidos."
 
 # help kill
-#: builtins.c:919
+#: builtins.c:918
 msgid ""
 "Send a signal to a job.\n"
 "    \n"
@@ -3783,15 +3621,14 @@ msgstr ""
 "    ocorra um erro."
 
 # help let
-#: builtins.c:943
+#: builtins.c:942
 msgid ""
 "Evaluate arithmetic expressions.\n"
 "    \n"
 "    Evaluate each ARG as an arithmetic expression.  Evaluation is done in\n"
 "    fixed-width integers with no check for overflow, though division by 0\n"
 "    is trapped and flagged as an error.  The following list of operators is\n"
-"    grouped into levels of equal-precedence operators.  The levels are "
-"listed\n"
+"    grouped into levels of equal-precedence operators.  The levels are listed\n"
 "    in order of decreasing precedence.\n"
 "    \n"
 "    \tid++, id--\tvariable post-increment, post-decrement\n"
@@ -3869,35 +3706,30 @@ msgstr ""
 "    let retorna 0."
 
 # help read
-#: builtins.c:988
-#, fuzzy
+#: builtins.c:987
 msgid ""
 "Read a line from the standard input and split it into fields.\n"
 "    \n"
 "    Reads a single line from the standard input, or from file descriptor FD\n"
-"    if the -u option is supplied.  The line is split into fields as with "
-"word\n"
+"    if the -u option is supplied.  The line is split into fields as with word\n"
 "    splitting, and the first word is assigned to the first NAME, the second\n"
 "    word to the second NAME, and so on, with any leftover words assigned to\n"
-"    the last NAME.  Only the characters found in $IFS are recognized as "
-"word\n"
+"    the last NAME.  Only the characters found in $IFS are recognized as word\n"
 "    delimiters.\n"
 "    \n"
-"    If no NAMEs are supplied, the line read is stored in the REPLY "
-"variable.\n"
+"    If no NAMEs are supplied, the line read is stored in the REPLY variable.\n"
 "    \n"
 "    Options:\n"
 "      -a array\tassign the words read to sequential indices of the array\n"
 "    \t\tvariable ARRAY, starting at zero\n"
 "      -d delim\tcontinue until the first character of DELIM is read, rather\n"
 "    \t\tthan newline\n"
-"      -e\tuse Readline to obtain the line\n"
+"      -e\tuse Readline to obtain the line in an interactive shell\n"
 "      -i text\tuse TEXT as the initial text for Readline\n"
 "      -n nchars\treturn after reading NCHARS characters rather than waiting\n"
 "    \t\tfor a newline, but honor a delimiter if fewer than\n"
 "    \t\tNCHARS characters are read before the delimiter\n"
-"      -N nchars\treturn only after reading exactly NCHARS characters, "
-"unless\n"
+"      -N nchars\treturn only after reading exactly NCHARS characters, unless\n"
 "    \t\tEOF is encountered or read times out, ignoring any\n"
 "    \t\tdelimiter\n"
 "      -p prompt\toutput the string PROMPT without a trailing newline before\n"
@@ -3915,19 +3747,15 @@ msgid ""
 "      -u fd\tread from file descriptor FD instead of the standard input\n"
 "    \n"
 "    Exit Status:\n"
-"    The return code is zero, unless end-of-file is encountered, read times "
-"out\n"
-"    (in which case it's greater than 128), a variable assignment error "
-"occurs,\n"
+"    The return code is zero, unless end-of-file is encountered, read times out\n"
+"    (in which case it's greater than 128), a variable assignment error occurs,\n"
 "    or an invalid file descriptor is supplied as the argument to -u."
 msgstr ""
 "Lê uma linha da entrada padrão e separa em campos.\n"
 "\n"
 "    Lê uma linha da entrada padrão ou do descritor de arquivo FD, caso a\n"
-"    opção -u seja fornecida. A linha é separada em campos, na mesma forma "
-"de\n"
-"    separação de palavras, e a primeira palavra é atribuída ao primeiro "
-"NOME,\n"
+"    opção -u seja fornecida. A linha é separada em campos, na mesma forma de\n"
+"    separação de palavras, e a primeira palavra é atribuída ao primeiro NOME,\n"
 "    o segundo ao segundo NOME e por aí vai, com qualquer palavras restantes\n"
 "    atribuídas para o último NOME. Apenas os caracteres encontrados em $IFS\n"
 "    são reconhecidos como delimitadores de palavras.\n"
@@ -3943,13 +3771,11 @@ msgstr ""
 "      -e            usa Readline para obter a linha em um shell interativo\n"
 "      -i TEXTO      usa TEXTO como o texto inicial para Readline\n"
 "      -n NCHARS     retorna após ler NCHARS caracteres, ao invés de esperar\n"
-"                    por uma nova linha, mas respeita um delimitador se "
-"número\n"
+"                    por uma nova linha, mas respeita um delimitador se número\n"
 "                    de caracteres menor que NCHARS sejam lidos antes do\n"
 "                    delimitador\n"
 "      -N NCHARS     retorna apenas após ler exatamente NCHARS caracteres, a\n"
-"                    menos que EOF (fim do arquivo) seja encontrado ou "
-"`read'\n"
+"                    menos que EOF (fim do arquivo) seja encontrado ou `read'\n"
 "                    esgote o tempo limite, ignorando qualquer delimitador\n"
 "      -p CONFIRMAR  mostra a string PROMPT sem remover nova linha antes de\n"
 "                    tentar ler\n"
@@ -3958,26 +3784,21 @@ msgstr ""
 "      -s            não ecoa entrada vindo de um terminal\n"
 "      -t TEMPO      esgota-se o tempo limite e retorna falha, caso uma toda\n"
 "                    uma linha não seja lida em TEMPO segundos. O valor da\n"
-"                    variável TMOUT é o tempo limite padrão. TEMPO pode ser "
-"um\n"
-"                    número fracionado. SE TEMPO for 0, `read' retorna "
-"sucesso\n"
+"                    variável TMOUT é o tempo limite padrão. TEMPO pode ser um\n"
+"                    número fracionado. SE TEMPO for 0, `read' retorna sucesso\n"
 "                    apenas se a entrada estiver disponível no descritor de\n"
-"                    arquivo especificado. O status de saída é maior que "
-"128,\n"
+"                    arquivo especificado. O status de saída é maior que 128,\n"
 "                    se o tempo limite for excedido\n"
-"      -u FD         lê do descritor de arquivo FD, ao invés da entrada "
-"padrão\n"
+"      -u FD         lê do descritor de arquivo FD, ao invés da entrada padrão\n"
 "    \n"
 "    Status de saída:\n"
 "    O código de retorno é zero, a menos que o EOF (fim do arquivo) seja\n"
-"    encontrado, `read' esgote o tempo limite (caso em que o código de "
-"retorno\n"
+"    encontrado, `read' esgote o tempo limite (caso em que o código de retorno\n"
 "    será 128), ocorra erro de atribuição de uma variável ou um descritor de\n"
 "    arquivo inválido seja fornecido como argumento para -u."
 
 # help return
-#: builtins.c:1035
+#: builtins.c:1034
 msgid ""
 "Return from a shell function.\n"
 "    \n"
@@ -3999,7 +3820,7 @@ msgstr ""
 "    script."
 
 # help set
-#: builtins.c:1048
+#: builtins.c:1047
 msgid ""
 "Set or unset values of shell options and positional parameters.\n"
 "    \n"
@@ -4042,8 +3863,7 @@ msgid ""
 "              physical     same as -P\n"
 "              pipefail     the return value of a pipeline is the status of\n"
 "                           the last command to exit with a non-zero status,\n"
-"                           or zero if no command exited with a non-zero "
-"status\n"
+"                           or zero if no command exited with a non-zero status\n"
 "              posix        change the behavior of bash where the default\n"
 "                           operation differs from the Posix standard to\n"
 "                           match the standard\n"
@@ -4067,8 +3887,7 @@ msgid ""
 "          by default when the shell is interactive.\n"
 "      -P  If set, do not resolve symbolic links when executing commands\n"
 "          such as cd which change the current directory.\n"
-"      -T  If set, the DEBUG and RETURN traps are inherited by shell "
-"functions.\n"
+"      -T  If set, the DEBUG and RETURN traps are inherited by shell functions.\n"
 "      --  Assign any remaining arguments to the positional parameters.\n"
 "          If there are no remaining arguments, the positional parameters\n"
 "          are unset.\n"
@@ -4084,21 +3903,18 @@ msgid ""
 "    Exit Status:\n"
 "    Returns success unless an invalid option is given."
 msgstr ""
-"Define ou remove definição de valores das opções e dos parâmetros "
-"posicionais\n"
+"Define ou remove definição de valores das opções e dos parâmetros posicionais\n"
 "do shell:\n"
 "    \n"
 "    Altera o valor de opções e de parâmetros posicionais do shell ou mostra\n"
 "    os nomes ou valores de variáveis shell.\n"
 "    \n"
 "    Opções:\n"
-"      -a  Marca variáveis, que foram modificadas ou criadas, para "
-"exportação.\n"
+"      -a  Marca variáveis, que foram modificadas ou criadas, para exportação.\n"
 "      -b  Notifica sobre terminação de trabalho imediatamente.\n"
 "      -e  Sai imediatamente se um comando sai com um status não-zero.\n"
 "      -f  Desabilita a geração de nome de arquivo (\"globbing\").\n"
-"      -h  Memoriza a localização de comandos à medida em que são "
-"procurados.\n"
+"      -h  Memoriza a localização de comandos à medida em que são procurados.\n"
 "      -k  Todos argumentos de atribuição são colocados no ambiente para um\n"
 "          comando, e não apenas aqueles que precedem o nome do comando.\n"
 "      -m  Controle de trabalho está habilitado.\n"
@@ -4116,8 +3932,7 @@ msgstr ""
 "              history      habilita histórico de comandos\n"
 "              ignoreeof    shell não vai sair após leitura de EOF\n"
 "              interactive-comments\n"
-"                           permite mostrar comentários em comandos "
-"interativos\n"
+"                           permite mostrar comentários em comandos interativos\n"
 "              keyword      mesmo que -k\n"
 "              monitor      mesmo que -m\n"
 "              noclobber    mesmo que -C\n"
@@ -4129,10 +3944,8 @@ msgstr ""
 "              onecmd       mesmo que -t\n"
 "              physical     mesmo que -P\n"
 "              pipefail     o valor de retorno de uma linha de comandos é o\n"
-"                           status do último comando a sair com status não-"
-"zero,\n"
-"                           ou zero se nenhum comando saiu com status não "
-"zero\n"
+"                           status do último comando a sair com status não-zero,\n"
+"                           ou zero se nenhum comando saiu com status não zero\n"
 "              posix        altera o comportamento do bash, onde a operação\n"
 "                           padrão diverge dos padrões do Posix para\n"
 "                           corresponder a estes padrões\n"
@@ -4140,44 +3953,33 @@ msgstr ""
 "              verbose      mesmo que -v\n"
 "              vi           usa interface de edição de linha estilo vi\n"
 "              xtrace       mesmo que -x\n"
-"      -p  Ligado sempre que IDs de usuário real e efetivo não "
-"corresponderem.\n"
-"          Desabilita processamento do arquivo $ENV e importação de funções "
-"da\n"
+"      -p  Ligado sempre que IDs de usuário real e efetivo não corresponderem.\n"
+"          Desabilita processamento do arquivo $ENV e importação de funções da\n"
 "          shell. Ao desligar essa opção, causa o uid e o gid efetivo serem\n"
 "          os uid e gid reais.\n"
 "      -t  Sai após a leitura e execução de um comando.\n"
-"      -u  Trata limpeza (unset) de variáveis como um erro quando "
-"substituindo.\n"
+"      -u  Trata limpeza (unset) de variáveis como um erro quando substituindo.\n"
 "      -v  Mostra linhas de entrada do shell na medida em que forem lidas.\n"
-"      -x  Mostra comandos e seus argumentos na medida em que forme "
-"executados.\n"
+"      -x  Mostra comandos e seus argumentos na medida em que forme executados.\n"
 "      -B  o shell vai realizar expansão de chaves\n"
 "      -C  Se definido, não permite arquivos normais existentes serem\n"
 "          sobrescritos por redirecionamento da saída.\n"
 "      -E  Se definido, a armadilha ERR é herdada por funções do shell.\n"
-"      -H  Habilita substituição de histórico estilo \"!\". Essa sinalização "
-"está\n"
+"      -H  Habilita substituição de histórico estilo \"!\". Essa sinalização está\n"
 "          habilitada por padrão quando  shell é interativa.\n"
-"      -P  Se definida, não resolve links simbólicos ao sair de comandos, "
-"tais\n"
+"      -P  Se definida, não resolve links simbólicos ao sair de comandos, tais\n"
 "          como `cd' (que altera o diretório atual).\n"
-"      -T  Se definido, a armadilha DEBUG e RETURN são herdadas por funções "
-"do shell.\n"
-"      --  Atribui quaisquer argumentos restantes aos parâmetros "
-"posicionais.\n"
+"      -T  Se definido, a armadilha DEBUG e RETURN são herdadas por funções do shell.\n"
+"      --  Atribui quaisquer argumentos restantes aos parâmetros posicionais.\n"
 "          Se não houver argumentos restantes, os parâmetros posicionais são\n"
 "          limpos (unset).\n"
-"      -   Atribui quaisquer argumentos restantes aos parâmetros "
-"posicionais.\n"
+"      -   Atribui quaisquer argumentos restantes aos parâmetros posicionais.\n"
 "          As opções -x e -v são desligadas.\n"
 "    \n"
 "    Usar +, ao invés de -, causa essas sinalizações serem desligadas. As\n"
 "    sinalizações também podem ser usadas por meio de chamada do shell. As\n"
-"    sinalizações atualmente definidas podem ser encontradas em $-. Os n "
-"ARGs\n"
-"    restantes são parâmetros posicionais e são atribuídos, em ordem, a $1, "
-"$2,\n"
+"    sinalizações atualmente definidas podem ser encontradas em $-. Os n ARGs\n"
+"    restantes são parâmetros posicionais e são atribuídos, em ordem, a $1, $2,\n"
 "    .. $n. Se nenhuma ARG for fornecido, todas as variáveis shell são\n"
 "    mostradas.\n"
 "    \n"
@@ -4185,7 +3987,7 @@ msgstr ""
 "    Retorna sucesso, a menos que uma opção inválida seja fornecida."
 
 # help unset
-#: builtins.c:1133
+#: builtins.c:1132
 msgid ""
 "Unset values and attributes of shell variables and functions.\n"
 "    \n"
@@ -4197,8 +3999,7 @@ msgid ""
 "      -n\ttreat each NAME as a name reference and unset the variable itself\n"
 "    \t\trather than the variable it references\n"
 "    \n"
-"    Without options, unset first tries to unset a variable, and if that "
-"fails,\n"
+"    Without options, unset first tries to unset a variable, and if that fails,\n"
 "    tries to unset a function.\n"
 "    \n"
 "    Some variables cannot be unset; also see `readonly'.\n"
@@ -4226,13 +4027,12 @@ msgstr ""
 "    um NOME seja somente-leitura."
 
 # help export
-#: builtins.c:1155
+#: builtins.c:1154
 msgid ""
 "Set export attribute for shell variables.\n"
 "    \n"
 "    Marks each NAME for automatic export to the environment of subsequently\n"
-"    executed commands.  If VALUE is supplied, assign VALUE before "
-"exporting.\n"
+"    executed commands.  If VALUE is supplied, assign VALUE before exporting.\n"
 "    \n"
 "    Options:\n"
 "      -f\trefer to shell functions\n"
@@ -4247,8 +4047,7 @@ msgstr ""
 "Define atributo de exportação para variáveis shell.\n"
 "    \n"
 "    Marca cada NOME para exportação automática para o ambiente dos comandos\n"
-"    executados subsequentemente. Se VALOR for fornecido, atribui VALOR "
-"antes\n"
+"    executados subsequentemente. Se VALOR for fornecido, atribui VALOR antes\n"
 "    de exportar.\n"
 "    \n"
 "    Opções:\n"
@@ -4263,7 +4062,7 @@ msgstr ""
 "    NOME seja inválido."
 
 # help readonly
-#: builtins.c:1174
+#: builtins.c:1173
 msgid ""
 "Mark shell variables as unchangeable.\n"
 "    \n"
@@ -4303,7 +4102,7 @@ msgstr ""
 "    NOME seja inválido."
 
 # help shift
-#: builtins.c:1196
+#: builtins.c:1195
 msgid ""
 "Shift positional parameters.\n"
 "    \n"
@@ -4315,15 +4114,14 @@ msgid ""
 msgstr ""
 "Desloca parâmetros posicionais.\n"
 "    \n"
-"    Renomeia os parâmetros posicionais $N+1,$N+2 ... até $1,$2 ...  Se N "
-"não\n"
+"    Renomeia os parâmetros posicionais $N+1,$N+2 ... até $1,$2 ...  Se N não\n"
 "    for fornecido, presume-se que ele seja 1.\n"
 "    \n"
 "    Status de saída:\n"
 "    Retorna sucesso, a menos que N seja negativo ou maior que $#."
 
 # help source
-#: builtins.c:1208 builtins.c:1223
+#: builtins.c:1207 builtins.c:1222
 msgid ""
 "Execute commands from a file in the current shell.\n"
 "    \n"
@@ -4348,7 +4146,7 @@ msgstr ""
 "    ARQUIVO não puder ser lido."
 
 # help suspend
-#: builtins.c:1239
+#: builtins.c:1238
 msgid ""
 "Suspend shell execution.\n"
 "    \n"
@@ -4374,7 +4172,7 @@ msgstr ""
 "    ou ocorra um erro."
 
 # help test
-#: builtins.c:1255
+#: builtins.c:1254
 msgid ""
 "Evaluate conditional expression.\n"
 "    \n"
@@ -4408,8 +4206,7 @@ msgid ""
 "      -x FILE        True if the file is executable by you.\n"
 "      -O FILE        True if the file is effectively owned by you.\n"
 "      -G FILE        True if the file is effectively owned by your group.\n"
-"      -N FILE        True if the file has been modified since it was last "
-"read.\n"
+"      -N FILE        True if the file has been modified since it was last read.\n"
 "    \n"
 "      FILE1 -nt FILE2  True if file1 is newer than file2 (according to\n"
 "                       modification date).\n"
@@ -4430,8 +4227,7 @@ msgid ""
 "      STRING1 != STRING2\n"
 "                     True if the strings are not equal.\n"
 "      STRING1 < STRING2\n"
-"                     True if STRING1 sorts before STRING2 "
-"lexicographically.\n"
+"                     True if STRING1 sorts before STRING2 lexicographically.\n"
 "      STRING1 > STRING2\n"
 "                     True if STRING1 sorts after STRING2 lexicographically.\n"
 "    \n"
@@ -4458,10 +4254,8 @@ msgid ""
 msgstr ""
 "Avalia expressão condicional.\n"
 "    \n"
-"    Sai com um status de 0 (verdadeiro) ou 1 (falso) dependendo da "
-"avaliação\n"
-"    de EXPR. As expressões podem ser unárias ou binárias. Expressões "
-"unárias\n"
+"    Sai com um status de 0 (verdadeiro) ou 1 (falso) dependendo da avaliação\n"
+"    de EXPR. As expressões podem ser unárias ou binárias. Expressões unárias\n"
 "    são normalmente usadas para examinar o status de um arquivo. Há\n"
 "    operadores de strings e também há operadores de comparação numérica.\n"
 "    \n"
@@ -4475,8 +4269,7 @@ msgstr ""
 "      -c ARQUIVO     Verdadeiro, se arquivo for um caractere especial.\n"
 "      -d ARQUIVO     Verdadeiro, se arquivo for um diretório.\n"
 "      -e ARQUIVO     Verdadeiro, se arquivo existir.\n"
-"      -f ARQUIVO     Verdadeiro, se arquivo existir e for um arquivo "
-"normal.\n"
+"      -f ARQUIVO     Verdadeiro, se arquivo existir e for um arquivo normal.\n"
 "      -g ARQUIVO     Verdadeiro, se arquivo for set-group-id.\n"
 "      -h ARQUIVO     Verdadeiro, se arquivo for um link simbólico.\n"
 "      -L ARQUIVO     Verdadeiro, se arquivo for um link simbólico.\n"
@@ -4527,24 +4320,20 @@ msgstr ""
 "                     e for uma referência de nome.\n"
 "      ! EXPR         Verdadeiro, se a expressão EXPR for falsa.\n"
 "      EXPR1 -a EXPR2 Verdadeiro, se ambas EXPR1 e EXPR2 forem verdadeiras.\n"
-"      EXPR1 -o EXPR2 Verdadeiro, se ao menos uma das expressões for "
-"verdadeira.\n"
+"      EXPR1 -o EXPR2 Verdadeiro, se ao menos uma das expressões for verdadeira.\n"
 "    \n"
-"      arg1 OP arg2   Testes aritméticos.  OP é um dentre -eq, -ne, -lt, -"
-"le,\n"
+"      arg1 OP arg2   Testes aritméticos.  OP é um dentre -eq, -ne, -lt, -le,\n"
 "                     -gt, or -ge.\n"
 "    \n"
-"    Operadores binários de aritmética retornam verdadeiro se ARG1 for "
-"igual,\n"
+"    Operadores binários de aritmética retornam verdadeiro se ARG1 for igual,\n"
 "    não-igual, menor-que, menor-ou-igual-a ou maior-ou-igual-a ARG2.\n"
 "    \n"
 "    Status de saída:\n"
-"    Retorna sucesso, se EXPR for avaliada como verdadeira; falha, se EXPR "
-"for\n"
+"    Retorna sucesso, se EXPR for avaliada como verdadeira; falha, se EXPR for\n"
 "    avaliada como falsa ou um argumento inválido for informado."
 
 # help [
-#: builtins.c:1337
+#: builtins.c:1336
 msgid ""
 "Evaluate conditional expression.\n"
 "    \n"
@@ -4557,12 +4346,11 @@ msgstr ""
 "    argumento deve ser um `]' literal, para corresponder ao `[' que abriu."
 
 # help times
-#: builtins.c:1346
+#: builtins.c:1345
 msgid ""
 "Display process times.\n"
 "    \n"
-"    Prints the accumulated user and system times for the shell and all of "
-"its\n"
+"    Prints the accumulated user and system times for the shell and all of its\n"
 "    child processes.\n"
 "    \n"
 "    Exit Status:\n"
@@ -4577,12 +4365,11 @@ msgstr ""
 "    Sempre com sucesso."
 
 # help trap
-#: builtins.c:1358
+#: builtins.c:1357
 msgid ""
 "Trap signals and other events.\n"
 "    \n"
-"    Defines and activates handlers to be run when the shell receives "
-"signals\n"
+"    Defines and activates handlers to be run when the shell receives signals\n"
 "    or other conditions.\n"
 "    \n"
 "    ARG is a command to be read and executed when the shell receives the\n"
@@ -4591,34 +4378,26 @@ msgid ""
 "    value.  If ARG is the null string each SIGNAL_SPEC is ignored by the\n"
 "    shell and by the commands it invokes.\n"
 "    \n"
-"    If a SIGNAL_SPEC is EXIT (0) ARG is executed on exit from the shell.  "
-"If\n"
-"    a SIGNAL_SPEC is DEBUG, ARG is executed before every simple command.  "
-"If\n"
-"    a SIGNAL_SPEC is RETURN, ARG is executed each time a shell function or "
-"a\n"
-"    script run by the . or source builtins finishes executing.  A "
-"SIGNAL_SPEC\n"
-"    of ERR means to execute ARG each time a command's failure would cause "
-"the\n"
+"    If a SIGNAL_SPEC is EXIT (0) ARG is executed on exit from the shell.  If\n"
+"    a SIGNAL_SPEC is DEBUG, ARG is executed before every simple command.  If\n"
+"    a SIGNAL_SPEC is RETURN, ARG is executed each time a shell function or a\n"
+"    script run by the . or source builtins finishes executing.  A SIGNAL_SPEC\n"
+"    of ERR means to execute ARG each time a command's failure would cause the\n"
 "    shell to exit when the -e option is enabled.\n"
 "    \n"
-"    If no arguments are supplied, trap prints the list of commands "
-"associated\n"
+"    If no arguments are supplied, trap prints the list of commands associated\n"
 "    with each signal.\n"
 "    \n"
 "    Options:\n"
 "      -l\tprint a list of signal names and their corresponding numbers\n"
 "      -p\tdisplay the trap commands associated with each SIGNAL_SPEC\n"
 "    \n"
-"    Each SIGNAL_SPEC is either a signal name in <signal.h> or a signal "
-"number.\n"
+"    Each SIGNAL_SPEC is either a signal name in <signal.h> or a signal number.\n"
 "    Signal names are case insensitive and the SIG prefix is optional.  A\n"
 "    signal may be sent to the shell with \"kill -signal $$\".\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns success unless a SIGSPEC is invalid or an invalid option is "
-"given."
+"    Returns success unless a SIGSPEC is invalid or an invalid option is given."
 msgstr ""
 "Tratamento de sinais e outros eventos.\n"
 "    \n"
@@ -4658,7 +4437,7 @@ msgstr ""
 "    uma opção inválida seja fornecida."
 
 # help type
-#: builtins.c:1394
+#: builtins.c:1393
 msgid ""
 "Display information about command type.\n"
 "    \n"
@@ -4684,8 +4463,7 @@ msgid ""
 "      NAME\tCommand name to be interpreted.\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns success if all of the NAMEs are found; fails if any are not "
-"found."
+"    Returns success if all of the NAMEs are found; fails if any are not found."
 msgstr ""
 "Exibe informação sobre o tipo de comando.\n"
 "    \n"
@@ -4715,12 +4493,11 @@ msgstr ""
 "    deles não for encontrado."
 
 # help ulimit
-#: builtins.c:1425
+#: builtins.c:1424
 msgid ""
 "Modify shell resource limits.\n"
 "    \n"
-"    Provides control over the resources available to the shell and "
-"processes\n"
+"    Provides control over the resources available to the shell and processes\n"
 "    it creates, on systems that allow such control.\n"
 "    \n"
 "    Options:\n"
@@ -4810,7 +4587,7 @@ msgstr ""
 "    ocorra um erro."
 
 # help umask
-#: builtins.c:1475
+#: builtins.c:1474
 msgid ""
 "Display or set file mode mask.\n"
 "    \n"
@@ -4846,24 +4623,19 @@ msgstr ""
 "    inválida seja fornecida."
 
 # help wait
-#: builtins.c:1495
-#, fuzzy
+#: builtins.c:1494
 msgid ""
 "Wait for job completion and return exit status.\n"
 "    \n"
-"    Waits for each process identified by an ID, which may be a process ID or "
-"a\n"
+"    Waits for each process identified by an ID, which may be a process ID or a\n"
 "    job specification, and reports its termination status.  If ID is not\n"
 "    given, waits for all currently active child processes, and the return\n"
-"    status is zero.  If ID is a job specification, waits for all processes\n"
+"    status is zero.  If ID is a job specification, waits for all processes\n"
 "    in that job's pipeline.\n"
 "    \n"
 "    If the -n option is supplied, waits for the next job to terminate and\n"
 "    returns its exit status.\n"
 "    \n"
-"    If the -f option is supplied, and job control is enabled, waits for the\n"
-"    specified ID to terminate, instead of waiting for it to change status.\n"
-"    \n"
 "    Exit Status:\n"
 "    Returns the status of the last ID; fails if ID is invalid or an invalid\n"
 "    option is given."
@@ -4885,18 +4657,16 @@ msgstr ""
 "    inválida for fornecida."
 
 # help wait
-#: builtins.c:1519
+#: builtins.c:1515
 msgid ""
 "Wait for process completion and return exit status.\n"
 "    \n"
-"    Waits for each process specified by a PID and reports its termination "
-"status.\n"
+"    Waits for each process specified by a PID and reports its termination status.\n"
 "    If PID is not given, waits for all currently active child processes,\n"
 "    and the return status is zero.  PID must be a process ID.\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns the status of the last PID; fails if PID is invalid or an "
-"invalid\n"
+"    Returns the status of the last PID; fails if PID is invalid or an invalid\n"
 "    option is given."
 msgstr ""
 "Espera por conclusão de processo e retorna o status de saída.\n"
@@ -4911,7 +4681,7 @@ msgstr ""
 "    inválida for fornecida."
 
 # help for
-#: builtins.c:1534
+#: builtins.c:1530
 msgid ""
 "Execute commands for each member in a list.\n"
 "    \n"
@@ -4927,15 +4697,14 @@ msgstr ""
 "    \n"
 "    O loop `for' executa uma sequência de comandos para cada membro em\n"
 "    uma lista de itens. Se `in PALAVRAS ...;' não estiver presente, então\n"
-"    `in \"$@\"' é presumido. Para cada elemento em PALAVRAS, NOME é "
-"definido\n"
+"    `in \"$@\"' é presumido. Para cada elemento em PALAVRAS, NOME é definido\n"
 "    com aquele elemento e os COMANDOS são executados.\n"
 "    \n"
 "    Status de saída:\n"
 "    Retorna o status do último comando executado."
 
 # help for ((    (?)
-#: builtins.c:1548
+#: builtins.c:1544
 msgid ""
 "Arithmetic for loop.\n"
 "    \n"
@@ -4966,7 +4735,7 @@ msgstr ""
 "    Retorna o status do último comando executado."
 
 # help select
-#: builtins.c:1566
+#: builtins.c:1562
 msgid ""
 "Select words from a list and execute commands.\n"
 "    \n"
@@ -5004,7 +4773,7 @@ msgstr ""
 "    Retorna o status do último comando executado."
 
 # help time
-#: builtins.c:1587
+#: builtins.c:1583
 msgid ""
 "Report time consumed by pipeline's execution.\n"
 "    \n"
@@ -5034,7 +4803,7 @@ msgstr ""
 "    O status de retorno é o status retornado por LINHA-COMANDOS."
 
 # help case
-#: builtins.c:1604
+#: builtins.c:1600
 msgid ""
 "Execute commands based on pattern matching.\n"
 "    \n"
@@ -5053,21 +4822,16 @@ msgstr ""
 "    Retorna o status do último comando executado."
 
 # help if
-#: builtins.c:1616
+#: builtins.c:1612
 msgid ""
 "Execute commands based on conditional.\n"
 "    \n"
-"    The `if COMMANDS' list is executed.  If its exit status is zero, then "
-"the\n"
-"    `then COMMANDS' list is executed.  Otherwise, each `elif COMMANDS' list "
-"is\n"
+"    The `if COMMANDS' list is executed.  If its exit status is zero, then the\n"
+"    `then COMMANDS' list is executed.  Otherwise, each `elif COMMANDS' list is\n"
 "    executed in turn, and if its exit status is zero, the corresponding\n"
-"    `then COMMANDS' list is executed and the if command completes.  "
-"Otherwise,\n"
-"    the `else COMMANDS' list is executed, if present.  The exit status of "
-"the\n"
-"    entire construct is the exit status of the last command executed, or "
-"zero\n"
+"    `then COMMANDS' list is executed and the if command completes.  Otherwise,\n"
+"    the `else COMMANDS' list is executed, if present.  The exit status of the\n"
+"    entire construct is the exit status of the last command executed, or zero\n"
 "    if no condition tested true.\n"
 "    \n"
 "    Exit Status:\n"
@@ -5088,7 +4852,7 @@ msgstr ""
 "    Retorna o status do último comando executado."
 
 # help while
-#: builtins.c:1633
+#: builtins.c:1629
 msgid ""
 "Execute commands as long as a test succeeds.\n"
 "    \n"
@@ -5107,7 +4871,7 @@ msgstr ""
 "    Retorna o status do último comando executado."
 
 # help until
-#: builtins.c:1645
+#: builtins.c:1641
 msgid ""
 "Execute commands as long as a test does not succeed.\n"
 "    \n"
@@ -5126,7 +4890,7 @@ msgstr ""
 "    Status de saída:\n"
 "    Retorna o status do último comando executado."
 
-#: builtins.c:1657
+#: builtins.c:1653
 msgid ""
 "Create a coprocess named NAME.\n"
 "    \n"
@@ -5149,13 +4913,12 @@ msgstr ""
 "    O comando coproc retorna um status de saída de 0."
 
 # help function
-#: builtins.c:1671
+#: builtins.c:1667
 msgid ""
 "Define shell function.\n"
 "    \n"
 "    Create a shell function named NAME.  When invoked as a simple command,\n"
-"    NAME runs COMMANDs in the calling shell's context.  When NAME is "
-"invoked,\n"
+"    NAME runs COMMANDs in the calling shell's context.  When NAME is invoked,\n"
 "    the arguments are passed to the function as $1...$n, and the function's\n"
 "    name is in $FUNCNAME.\n"
 "    \n"
@@ -5173,7 +4936,7 @@ msgstr ""
 "    Retorna sucesso, a menos que NOME seja somente-leitura."
 
 # help -m {
-#: builtins.c:1685
+#: builtins.c:1681
 msgid ""
 "Group commands as a unit.\n"
 "    \n"
@@ -5191,7 +4954,7 @@ msgstr ""
 "    Status de saída:\n"
 "    Retorna o status do último comando executado."
 
-#: builtins.c:1697
+#: builtins.c:1693
 msgid ""
 "Resume job in foreground.\n"
 "    \n"
@@ -5217,7 +4980,7 @@ msgstr ""
 "    Retorna o status de um trabalho resumido."
 
 # help '(('
-#: builtins.c:1712
+#: builtins.c:1708
 msgid ""
 "Evaluate arithmetic expression.\n"
 "    \n"
@@ -5236,16 +4999,13 @@ msgstr ""
 "    Retorna 1, se EXPRESSÃO for avaliada como 0; do contrário, retorna 0."
 
 # help '['
-#: builtins.c:1724
+#: builtins.c:1720
 msgid ""
 "Execute conditional command.\n"
 "    \n"
-"    Returns a status of 0 or 1 depending on the evaluation of the "
-"conditional\n"
-"    expression EXPRESSION.  Expressions are composed of the same primaries "
-"used\n"
-"    by the `test' builtin, and may be combined using the following "
-"operators:\n"
+"    Returns a status of 0 or 1 depending on the evaluation of the conditional\n"
+"    expression EXPRESSION.  Expressions are composed of the same primaries used\n"
+"    by the `test' builtin, and may be combined using the following operators:\n"
 "    \n"
 "      ( EXPRESSION )\tReturns the value of EXPRESSION\n"
 "      ! EXPRESSION\t\tTrue if EXPRESSION is false; else false\n"
@@ -5289,7 +5049,7 @@ msgstr ""
 "    0 ou 1 dependendo do valor de EXPRESSÃO."
 
 # help variables
-#: builtins.c:1750
+#: builtins.c:1746
 msgid ""
 "Common shell variable names and usage.\n"
 "    \n"
@@ -5373,8 +5133,7 @@ msgstr ""
 "    OSTYPE\t\t\tA versão do Unix no qual Bash está sendo executado.\n"
 "    PATH\t\t\tUma lista separada por dois-pontos de diretórios para\n"
 "    \t\t\tpesquisar ao se procurar por comandos.\n"
-"    PROMPT_COMMAND\tUm comando a ser executado antes de imprimir cada "
-"prompt\n"
+"    PROMPT_COMMAND\tUm comando a ser executado antes de imprimir cada prompt\n"
 "    \t\t\tprimário.\n"
 "    PS1\t\t\t\tA string de prompt primário.\n"
 "    PS2\t\t\t\tA string de prompt secundária.\n"
@@ -5405,7 +5164,7 @@ msgstr ""
 "    \t\t\t\thistórico.\n"
 
 # help pushd
-#: builtins.c:1807
+#: builtins.c:1803
 msgid ""
 "Add directories to stack.\n"
 "    \n"
@@ -5465,7 +5224,7 @@ msgstr ""
 "    a alteração de diretório falhar."
 
 # help popd
-#: builtins.c:1841
+#: builtins.c:1837
 msgid ""
 "Remove directories from stack.\n"
 "    \n"
@@ -5516,7 +5275,7 @@ msgstr ""
 "    a alteração de diretório falhar."
 
 # help dirs
-#: builtins.c:1871
+#: builtins.c:1867
 msgid ""
 "Display directory stack.\n"
 "    \n"
@@ -5570,14 +5329,13 @@ msgstr ""
 "    ocorrer um erro."
 
 # help shopt
-#: builtins.c:1902
-#, fuzzy
+#: builtins.c:1898
 msgid ""
 "Set and unset shell options.\n"
 "    \n"
 "    Change the setting of each shell option OPTNAME.  Without any option\n"
-"    arguments, list each supplied OPTNAME, or all shell options if no\n"
-"    OPTNAMEs are given, with an indication of whether or not each is set.\n"
+"    arguments, list all shell options with an indication of whether or not each\n"
+"    is set.\n"
 "    \n"
 "    Options:\n"
 "      -o\trestrict OPTNAMEs to those defined for use with `set -o'\n"
@@ -5608,7 +5366,7 @@ msgstr ""
 "    opção inválida for fornecida ou NOME-OPÇÃO estiver desabilitado."
 
 # help printf
-#: builtins.c:1923
+#: builtins.c:1919
 msgid ""
 "Formats and prints ARGUMENTS under control of the FORMAT.\n"
 "    \n"
@@ -5616,34 +5374,27 @@ msgid ""
 "      -v var\tassign the output to shell variable VAR rather than\n"
 "    \t\tdisplay it on the standard output\n"
 "    \n"
-"    FORMAT is a character string which contains three types of objects: "
-"plain\n"
-"    characters, which are simply copied to standard output; character "
-"escape\n"
+"    FORMAT is a character string which contains three types of objects: plain\n"
+"    characters, which are simply copied to standard output; character escape\n"
 "    sequences, which are converted and copied to the standard output; and\n"
-"    format specifications, each of which causes printing of the next "
-"successive\n"
+"    format specifications, each of which causes printing of the next successive\n"
 "    argument.\n"
 "    \n"
-"    In addition to the standard format specifications described in printf"
-"(1),\n"
+"    In addition to the standard format specifications described in printf(1),\n"
 "    printf interprets:\n"
 "    \n"
 "      %b\texpand backslash escape sequences in the corresponding argument\n"
 "      %q\tquote the argument in a way that can be reused as shell input\n"
-"      %(fmt)T\toutput the date-time string resulting from using FMT as a "
-"format\n"
+"      %(fmt)T\toutput the date-time string resulting from using FMT as a format\n"
 "    \t        string for strftime(3)\n"
 "    \n"
 "    The format is re-used as necessary to consume all of the arguments.  If\n"
 "    there are fewer arguments than the format requires,  extra format\n"
-"    specifications behave as if a zero value or null string, as "
-"appropriate,\n"
+"    specifications behave as if a zero value or null string, as appropriate,\n"
 "    had been supplied.\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns success unless an invalid option is given or a write or "
-"assignment\n"
+"    Returns success unless an invalid option is given or a write or assignment\n"
 "    error occurs."
 msgstr ""
 "Formata e imprime ARGUMENTOS sob controle de FORMATO.\n"
@@ -5678,14 +5429,12 @@ msgstr ""
 "    ocorra um erro de escrita ou atribuição."
 
 # help complete
-#: builtins.c:1957
+#: builtins.c:1953
 msgid ""
 "Specify how arguments are to be completed by Readline.\n"
 "    \n"
-"    For each NAME, specify how arguments are to be completed.  If no "
-"options\n"
-"    are supplied, existing completion specifications are printed in a way "
-"that\n"
+"    For each NAME, specify how arguments are to be completed.  If no options\n"
+"    are supplied, existing completion specifications are printed in a way that\n"
 "    allows them to be reused as input.\n"
 "    \n"
 "    Options:\n"
@@ -5711,10 +5460,8 @@ msgstr ""
 "    impressas em uma forma que permite-as serem usadas como entrada.\n"
 "    \n"
 "    Opções:\n"
-"      -p\timprime especificações existentes de completar em um formato "
-"usável\n"
-"      -r\tremove uma especificação de completar para cada NOME ou, se "
-"nenhum\n"
+"      -p\timprime especificações existentes de completar em um formato usável\n"
+"      -r\tremove uma especificação de completar para cada NOME ou, se nenhum\n"
 "      \t\tNOME for fornecido, todas as especificações de completar\n"
 "      -D\taplica as completações e ações como sendo o padrão para comandos\n"
 "      \t\tsem qualquer especificação definida\n"
@@ -5730,13 +5477,12 @@ msgstr ""
 "    ocorra um erro."
 
 # help compgen
-#: builtins.c:1985
+#: builtins.c:1981
 msgid ""
 "Display possible completions depending on the options.\n"
 "    \n"
 "    Intended to be used from within a shell function generating possible\n"
-"    completions.  If the optional WORD argument is supplied, matches "
-"against\n"
+"    completions.  If the optional WORD argument is supplied, matches against\n"
 "    WORD are generated.\n"
 "    \n"
 "    Exit Status:\n"
@@ -5753,16 +5499,13 @@ msgstr ""
 "    ocorra um erro."
 
 # help compopt
-#: builtins.c:2000
+#: builtins.c:1996
 msgid ""
 "Modify or display completion options.\n"
 "    \n"
-"    Modify the completion options for each NAME, or, if no NAMEs are "
-"supplied,\n"
-"    the completion currently being executed.  If no OPTIONs are given, "
-"print\n"
-"    the completion options for each NAME or the current completion "
-"specification.\n"
+"    Modify the completion options for each NAME, or, if no NAMEs are supplied,\n"
+"    the completion currently being executed.  If no OPTIONs are given, print\n"
+"    the completion options for each NAME or the current completion specification.\n"
 "    \n"
 "    Options:\n"
 "    \t-o option\tSet completion option OPTION for each NAME\n"
@@ -5811,26 +5554,21 @@ msgstr ""
 "    NOME não tem uma especificação de completação definida."
 
 # help mapfile
-#: builtins.c:2030
+#: builtins.c:2026
 msgid ""
 "Read lines from the standard input into an indexed array variable.\n"
 "    \n"
-"    Read lines from the standard input into the indexed array variable "
-"ARRAY, or\n"
-"    from file descriptor FD if the -u option is supplied.  The variable "
-"MAPFILE\n"
+"    Read lines from the standard input into the indexed array variable ARRAY, or\n"
+"    from file descriptor FD if the -u option is supplied.  The variable MAPFILE\n"
 "    is the default ARRAY.\n"
 "    \n"
 "    Options:\n"
 "      -d delim\tUse DELIM to terminate lines, instead of newline\n"
-"      -n count\tCopy at most COUNT lines.  If COUNT is 0, all lines are "
-"copied\n"
-"      -O origin\tBegin assigning to ARRAY at index ORIGIN.  The default "
-"index is 0\n"
+"      -n count\tCopy at most COUNT lines.  If COUNT is 0, all lines are copied\n"
+"      -O origin\tBegin assigning to ARRAY at index ORIGIN.  The default index is 0\n"
 "      -s count\tDiscard the first COUNT lines read\n"
 "      -t\tRemove a trailing DELIM from each line read (default newline)\n"
-"      -u fd\tRead lines from file descriptor FD instead of the standard "
-"input\n"
+"      -u fd\tRead lines from file descriptor FD instead of the standard input\n"
 "      -C callback\tEvaluate CALLBACK each time QUANTUM lines are read\n"
 "      -c quantum\tSpecify the number of lines read between each call to\n"
 "    \t\t\tCALLBACK\n"
@@ -5843,13 +5581,11 @@ msgid ""
 "    element to be assigned and the line to be assigned to that element\n"
 "    as additional arguments.\n"
 "    \n"
-"    If not supplied with an explicit origin, mapfile will clear ARRAY "
-"before\n"
+"    If not supplied with an explicit origin, mapfile will clear ARRAY before\n"
 "    assigning to it.\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns success unless an invalid option is given or ARRAY is readonly "
-"or\n"
+"    Returns success unless an invalid option is given or ARRAY is readonly or\n"
 "    not an indexed array."
 msgstr ""
 "Lê linhas da entrada padrão para uma variável array indexado.\n"
@@ -5860,28 +5596,23 @@ msgstr ""
 "    \n"
 "    Opções:\n"
 "      -d DELIM      Usa DELIM para terminar linhas, ao invés de nova linha\n"
-"      -n NÚMERO     Copia no máximo NÚMERO linhas. Se NÚMERO for 0, todas "
-"as\n"
+"      -n NÚMERO     Copia no máximo NÚMERO linhas. Se NÚMERO for 0, todas as\n"
 "                    linhas são copiadas\n"
 "      -O ORIGEM     Inicia atribuição de ARRAY no índice ORIGEM. O índice\n"
 "                    padrão é 0\n"
 "      -s NÚMERO     Descarta as primeiras NÚMERO linhas lidas\n"
 "      -t            Remove uma DELIM ao final para cada linha lida\n"
 "                    (padrão: nova linha)\n"
-"      -u FD         Lê linhas do descritor de arquivos FD, ao invés da "
-"entrada\n"
+"      -u FD         Lê linhas do descritor de arquivos FD, ao invés da entrada\n"
 "                    padrão\n"
-"      -C CHAMADA    Avalia CHAMADA a cada vez que QUANTIDADE linhas foram "
-"lidas\n"
-"      -c QUANTIDADE Especifica o número de linhas lidas entre cada chamada "
-"para\n"
+"      -C CHAMADA    Avalia CHAMADA a cada vez que QUANTIDADE linhas foram lidas\n"
+"      -c QUANTIDADE Especifica o número de linhas lidas entre cada chamada para\n"
 "                    CHAMADA\n"
 "    \n"
 "    Argumentos:\n"
 "      ARRAY         Nome da variável array para usar para arquivos de dados\n"
 "    \n"
-"    Se -C for fornecido sem -c, a quantidade padrão é 5000. Quando CHAMADA "
-"é\n"
+"    Se -C for fornecido sem -c, a quantidade padrão é 5000. Quando CHAMADA é\n"
 "    avaliada, é fornecido o índice para o próximo elemento da array ser\n"
 "    atribuído e a linha para ser atribuída àquele elemento como argumentos\n"
 "    adicionais\n"
@@ -5894,7 +5625,7 @@ msgstr ""
 "    somente leitura ou não for um array indexado."
 
 # help readarray
-#: builtins.c:2066
+#: builtins.c:2062
 msgid ""
 "Read lines from a file into an array variable.\n"
 "    \n"
@@ -5963,12 +5694,9 @@ msgstr ""
 #~ "    If FILENAME is given, it is used as the history file.  Otherwise,\n"
 #~ "    if HISTFILE has a value, that is used, else ~/.bash_history.\n"
 #~ "    \n"
-#~ "    If the HISTTIMEFORMAT variable is set and not null, its value is "
-#~ "used\n"
-#~ "    as a format string for strftime(3) to print the time stamp "
-#~ "associated\n"
-#~ "    with each displayed history entry.  No time stamps are printed "
-#~ "otherwise.\n"
+#~ "    If the HISTTIMEFORMAT variable is set and not null, its value is used\n"
+#~ "    as a format string for strftime(3) to print the time stamp associated\n"
+#~ "    with each displayed history entry.  No time stamps are printed otherwise.\n"
 #~ "    \n"
 #~ "    Exit Status:\n"
 #~ "    Returns success unless an invalid option is given or an error occurs."
@@ -5994,16 +5722,12 @@ msgstr ""
 #~ "      -s\t\t\tanexa os ARGs à lista de histórico como uma única entrada\n"
 #~ "    \n"
 #~ "    Se ARQUIVO for fornecido, ele é usado como o arquivo de histórico.\n"
-#~ "    Do contrário, se a variável HISTFILE tiver um valor, este será "
-#~ "usado;\n"
+#~ "    Do contrário, se a variável HISTFILE tiver um valor, este será usado;\n"
 #~ "    senão, usa de ~/.bash_history.\n"
 #~ "    \n"
-#~ "    Se a variável HISTTIMEFORMAT for definida e não for nula, seu valor "
-#~ "é\n"
-#~ "    usado como uma string de formato para strftime(3) para mostrar a "
-#~ "marca\n"
-#~ "    de tempo associada com cada entrada de histórico exibida. Do "
-#~ "contrário,\n"
+#~ "    Se a variável HISTTIMEFORMAT for definida e não for nula, seu valor é\n"
+#~ "    usado como uma string de formato para strftime(3) para mostrar a marca\n"
+#~ "    de tempo associada com cada entrada de histórico exibida. Do contrário,\n"
 #~ "    nenhuma marca de tempo é mostrada.\n"
 #~ "    \n"
 #~ "    Status de saída:\n"
@@ -6024,10 +5748,8 @@ msgstr ""
 #~ "      -l\tlist the signal names; if arguments follow `-l' they are\n"
 #~ "    \t\tassumed to be signal numbers for which names should be listed\n"
 #~ "    \n"
-#~ "    Kill is a shell builtin for two reasons: it allows job IDs to be "
-#~ "used\n"
-#~ "    instead of process IDs, and allows processes to be killed if the "
-#~ "limit\n"
+#~ "    Kill is a shell builtin for two reasons: it allows job IDs to be used\n"
+#~ "    instead of process IDs, and allows processes to be killed if the limit\n"
 #~ "    on processes that you can create is reached.\n"
 #~ "    \n"
 #~ "    Exit Status:\n"
@@ -6085,8 +5807,7 @@ msgstr ""
 #~ "              history      enable command history\n"
 #~ "              ignoreeof    the shell will not exit upon reading EOF\n"
 #~ "              interactive-comments\n"
-#~ "                           allow comments to appear in interactive "
-#~ "commands\n"
+#~ "                           allow comments to appear in interactive commands\n"
 #~ "              keyword      same as -k\n"
 #~ "              monitor      same as -m\n"
 #~ "              noclobber    same as -C\n"
@@ -6097,12 +5818,9 @@ msgstr ""
 #~ "              nounset      same as -u\n"
 #~ "              onecmd       same as -t\n"
 #~ "              physical     same as -P\n"
-#~ "              pipefail     the return value of a pipeline is the status "
-#~ "of\n"
-#~ "                           the last command to exit with a non-zero "
-#~ "status,\n"
-#~ "                           or zero if no command exited with a non-zero "
-#~ "status\n"
+#~ "              pipefail     the return value of a pipeline is the status of\n"
+#~ "                           the last command to exit with a non-zero status,\n"
+#~ "                           or zero if no command exited with a non-zero status\n"
 #~ "              posix        change the behavior of bash where the default\n"
 #~ "                           operation differs from the Posix standard to\n"
 #~ "                           match the standard\n"
@@ -6110,11 +5828,9 @@ msgstr ""
 #~ "              verbose      same as -v\n"
 #~ "              vi           use a vi-style line editing interface\n"
 #~ "              xtrace       same as -x\n"
-#~ "      -p  Turned on whenever the real and effective user ids do not "
-#~ "match.\n"
+#~ "      -p  Turned on whenever the real and effective user ids do not match.\n"
 #~ "          Disables processing of the $ENV file and importing of shell\n"
-#~ "          functions.  Turning this option off causes the effective uid "
-#~ "and\n"
+#~ "          functions.  Turning this option off causes the effective uid and\n"
 #~ "          gid to be set to the real uid and gid.\n"
 #~ "      -t  Exit after reading and executing one command.\n"
 #~ "      -u  Treat unset variables as an error when substituting.\n"
@@ -6137,32 +5853,26 @@ msgstr ""
 #~ "    \n"
 #~ "    Using + rather than - causes these flags to be turned off.  The\n"
 #~ "    flags can also be used upon invocation of the shell.  The current\n"
-#~ "    set of flags may be found in $-.  The remaining n ARGs are "
-#~ "positional\n"
+#~ "    set of flags may be found in $-.  The remaining n ARGs are positional\n"
 #~ "    parameters and are assigned, in order, to $1, $2, .. $n.  If no\n"
 #~ "    ARGs are given, all shell variables are printed.\n"
 #~ "    \n"
 #~ "    Exit Status:\n"
 #~ "    Returns success unless an invalid option is given."
 #~ msgstr ""
-#~ "Define ou remove definição de valores das opções e dos parâmetros "
-#~ "posicionais\n"
+#~ "Define ou remove definição de valores das opções e dos parâmetros posicionais\n"
 #~ "do shell:\n"
 #~ "    \n"
-#~ "    Altera o valor de opções e de parâmetros posicionais do shell ou "
-#~ "mostra\n"
+#~ "    Altera o valor de opções e de parâmetros posicionais do shell ou mostra\n"
 #~ "    os nomes ou valores de variáveis shell.\n"
 #~ "    \n"
 #~ "    Opções:\n"
-#~ "      -a  Marca variáveis, que foram modificadas ou criadas, para "
-#~ "exportação.\n"
+#~ "      -a  Marca variáveis, que foram modificadas ou criadas, para exportação.\n"
 #~ "      -b  Notifica sobre terminação de trabalho imediatamente.\n"
 #~ "      -e  Sai imediatamente se um comando sai com um status não-zero.\n"
 #~ "      -f  Desabilita a geração de nome de arquivo (\"globbing\").\n"
-#~ "      -h  Memoriza a localização de comandos à medida em que são "
-#~ "procurados.\n"
-#~ "      -k  Todos argumentos de atribuição são colocados no ambiente para "
-#~ "um\n"
+#~ "      -h  Memoriza a localização de comandos à medida em que são procurados.\n"
+#~ "      -k  Todos argumentos de atribuição são colocados no ambiente para um\n"
 #~ "          comando, e não apenas aqueles que precedem o nome do comando.\n"
 #~ "      -m  Controle de trabalho está habilitado.\n"
 #~ "      -n  Lê comandos, mas não os executa.\n"
@@ -6179,8 +5889,7 @@ msgstr ""
 #~ "              history      habilita histórico de comandos\n"
 #~ "              ignoreeof    shell não vai sair após leitura de EOF\n"
 #~ "              interactive-comments\n"
-#~ "                           permite mostrar comentários em comandos "
-#~ "interativos\n"
+#~ "                           permite mostrar comentários em comandos interativos\n"
 #~ "              keyword      mesmo que -k\n"
 #~ "              monitor      mesmo que -m\n"
 #~ "              noclobber    mesmo que -C\n"
@@ -6191,61 +5900,43 @@ msgstr ""
 #~ "              nounset      mesmo que -u\n"
 #~ "              onecmd       mesmo que -t\n"
 #~ "              physical     mesmo que -P\n"
-#~ "              pipefail     o valor de retorno de uma linha de comandos é "
-#~ "o\n"
-#~ "                           status do último comando a sair com status não-"
-#~ "zero,\n"
-#~ "                           ou zero se nenhum comando saiu com status não "
-#~ "zero\n"
-#~ "              posix        altera o comportamento do bash, onde a "
-#~ "operação\n"
+#~ "              pipefail     o valor de retorno de uma linha de comandos é o\n"
+#~ "                           status do último comando a sair com status não-zero,\n"
+#~ "                           ou zero se nenhum comando saiu com status não zero\n"
+#~ "              posix        altera o comportamento do bash, onde a operação\n"
 #~ "                           padrão diverge dos padrões do Posix para\n"
 #~ "                           corresponder a estes padrões\n"
 #~ "              privileged   mesmo que -p\n"
 #~ "              verbose      mesmo que -v\n"
 #~ "              vi           usa interface de edição de linha estilo vi\n"
 #~ "              xtrace       mesmo que -x\n"
-#~ "      -p  Ligado sempre que IDs de usuário real e efetivo não "
-#~ "corresponderem.\n"
-#~ "          Desabilita processamento do arquivo $ENV e importação de "
-#~ "funções da\n"
-#~ "          shell. Ao desligar essa opção, causa o uid e o gid efetivo "
-#~ "serem\n"
+#~ "      -p  Ligado sempre que IDs de usuário real e efetivo não corresponderem.\n"
+#~ "          Desabilita processamento do arquivo $ENV e importação de funções da\n"
+#~ "          shell. Ao desligar essa opção, causa o uid e o gid efetivo serem\n"
 #~ "          os uid e gid reais.\n"
 #~ "      -t  Sai após a leitura e execução de um comando.\n"
-#~ "      -u  Trata limpeza (unset) de variáveis como um erro quando "
-#~ "substituindo.\n"
-#~ "      -v  Mostra linhas de entrada do shell na medida em que forem "
-#~ "lidas.\n"
-#~ "      -x  Mostra comandos e seus argumentos na medida em que forme "
-#~ "executados.\n"
+#~ "      -u  Trata limpeza (unset) de variáveis como um erro quando substituindo.\n"
+#~ "      -v  Mostra linhas de entrada do shell na medida em que forem lidas.\n"
+#~ "      -x  Mostra comandos e seus argumentos na medida em que forme executados.\n"
 #~ "      -B  o shell vai realizar expansão de chaves\n"
 #~ "      -C  Se definido, não permite arquivos normais existentes serem\n"
 #~ "          sobrescritos por redirecionamento da saída.\n"
 #~ "      -E  Se definido, a armadilha ERR é herdada por funções do shell.\n"
-#~ "      -H  Habilita substituição de histórico estilo \"!\". Essa "
-#~ "sinalização está\n"
+#~ "      -H  Habilita substituição de histórico estilo \"!\". Essa sinalização está\n"
 #~ "          habilitada por padrão quando  shell é interativa.\n"
-#~ "      -P  Se definida, não resolve links simbólicos ao sair de comandos, "
-#~ "tais\n"
+#~ "      -P  Se definida, não resolve links simbólicos ao sair de comandos, tais\n"
 #~ "          como `cd' (que altera o diretório atual).\n"
 #~ "      -T  Se definido, a armadilha DEBUG é herdada por funções do shell.\n"
-#~ "      --  Atribui quaisquer argumentos restantes aos parâmetros "
-#~ "posicionais.\n"
-#~ "          Se não houver argumentos restantes, os parâmetros posicionais "
-#~ "são\n"
+#~ "      --  Atribui quaisquer argumentos restantes aos parâmetros posicionais.\n"
+#~ "          Se não houver argumentos restantes, os parâmetros posicionais são\n"
 #~ "          limpos (unset).\n"
-#~ "      -   Atribui quaisquer argumentos restantes aos parâmetros "
-#~ "posicionais.\n"
+#~ "      -   Atribui quaisquer argumentos restantes aos parâmetros posicionais.\n"
 #~ "          As opções -x e -v são desligadas.\n"
 #~ "    \n"
 #~ "    Usar +, ao invés de -, causa essas sinalizações serem desligadas. As\n"
-#~ "    sinalizações também podem ser usadas por meio de chamada do shell. "
-#~ "As\n"
-#~ "    sinalizações atualmente definidas podem ser encontradas em $-. Os n "
-#~ "ARGs\n"
-#~ "    restantes são parâmetros posicionais e são atribuídos, em ordem, a "
-#~ "$1, $2,\n"
+#~ "    sinalizações também podem ser usadas por meio de chamada do shell. As\n"
+#~ "    sinalizações atualmente definidas podem ser encontradas em $-. Os n ARGs\n"
+#~ "    restantes são parâmetros posicionais e são atribuídos, em ordem, a $1, $2,\n"
 #~ "    .. $n. Se nenhuma ARG for fornecido, todas as variáveis shell são\n"
 #~ "    mostradas.\n"
 #~ "    \n"
@@ -6256,10 +5947,8 @@ msgstr ""
 #~ msgid ""
 #~ "Create a coprocess named NAME.\n"
 #~ "    \n"
-#~ "    Execute COMMAND asynchronously, with the standard output and "
-#~ "standard\n"
-#~ "    input of the command connected via a pipe to file descriptors "
-#~ "assigned\n"
+#~ "    Execute COMMAND asynchronously, with the standard output and standard\n"
+#~ "    input of the command connected via a pipe to file descriptors assigned\n"
 #~ "    to indices 0 and 1 of an array variable NAME in the executing shell.\n"
 #~ "    The default NAME is \"COPROC\".\n"
 #~ "    \n"
@@ -6269,8 +5958,7 @@ msgstr ""
 #~ "Cria um coprocesso chamado NOME.\n"
 #~ "    \n"
 #~ "    Executa COMANDO assincronamente, com a saída padrão e entrada padrão\n"
-#~ "    do comando conectados via um `pipe' (redirecionamento) para "
-#~ "descritores\n"
+#~ "    do comando conectados via um `pipe' (redirecionamento) para descritores\n"
 #~ "    de arquivo atribuídos para índices 0 e 1 de uma variável array NOME\n"
 #~ "    no shell em execução. O NOME padrão é \"COPROC\".\n"
 #~ "    \n"
@@ -6393,8 +6081,7 @@ msgstr ""
 #~ msgstr "substituição de comando"
 
 #~ msgid "Can't reopen pipe to command substitution (fd %d): %s"
-#~ msgstr ""
-#~ "Impossível reabrir o `pipe' para substituição de comando (fd %d): %s"
+#~ msgstr "Impossível reabrir o `pipe' para substituição de comando (fd %d): %s"
 
 #~ msgid "$%c: unbound variable"
 #~ msgstr "$%c: variável não associada"
@@ -6478,8 +6165,7 @@ msgstr ""
 #~ msgstr "de aliases na forma `alias NOME=VALOR' na saída padrão."
 
 #~ msgid "Otherwise, an alias is defined for each NAME whose VALUE is given."
-#~ msgstr ""
-#~ "Ou então, um alias é definido para cada NOME cujo VALOR for fornecido."
+#~ msgstr "Ou então, um alias é definido para cada NOME cujo VALOR for fornecido."
 
 #~ msgid "A trailing space in VALUE causes the next word to be checked for"
 #~ msgstr "Um espaço após VALOR faz a próxima palavra ser verificada para"
@@ -6488,45 +6174,34 @@ msgstr ""
 #~ msgstr "substituição do alias quando o alias é expandido. Alias retorna"
 
 #~ msgid "true unless a NAME is given for which no alias has been defined."
-#~ msgstr ""
-#~ "verdadeiro, a não ser que seja fornecido um NOME sem alias definido."
+#~ msgstr "verdadeiro, a não ser que seja fornecido um NOME sem alias definido."
 
-#~ msgid ""
-#~ "Remove NAMEs from the list of defined aliases.  If the -a option is given,"
-#~ msgstr ""
-#~ "Remove NOMEs da lista de aliases definidos. Se a opção -a for fornecida,"
+#~ msgid "Remove NAMEs from the list of defined aliases.  If the -a option is given,"
+#~ msgstr "Remove NOMEs da lista de aliases definidos. Se a opção -a for fornecida,"
 
 #~ msgid "then remove all alias definitions."
 #~ msgstr "então todas as definições de alias são removidas."
 
 #~ msgid "Bind a key sequence to a Readline function, or to a macro.  The"
-#~ msgstr ""
-#~ "Víncula uma seqüência de teclas a uma função de leitura de linha, ou a uma"
+#~ msgstr "Víncula uma seqüência de teclas a uma função de leitura de linha, ou a uma"
 
 #~ msgid "syntax is equivalent to that found in ~/.inputrc, but must be"
-#~ msgstr ""
-#~ "macro.  A sintaxe é equivalente à encontrada em ~/.inputrc, mas deve ser"
+#~ msgstr "macro.  A sintaxe é equivalente à encontrada em ~/.inputrc, mas deve ser"
 
-#~ msgid ""
-#~ "passed as a single argument: bind '\"\\C-x\\C-r\": re-read-init-file'."
-#~ msgstr ""
-#~ "passada como um único argumento: bind '\"\\C-x\\C-r\": re-read-init-file'."
+#~ msgid "passed as a single argument: bind '\"\\C-x\\C-r\": re-read-init-file'."
+#~ msgstr "passada como um único argumento: bind '\"\\C-x\\C-r\": re-read-init-file'."
 
 #~ msgid "Arguments we accept:"
 #~ msgstr "Argumentos permitidos:"
 
-#~ msgid ""
-#~ "  -m  keymap         Use `keymap' as the keymap for the duration of this"
-#~ msgstr ""
-#~ "  -m  MAPA-TECLAS    Usar `MAPA-TECLAS' como mapa das teclas pela duração"
+#~ msgid "  -m  keymap         Use `keymap' as the keymap for the duration of this"
+#~ msgstr "  -m  MAPA-TECLAS    Usar `MAPA-TECLAS' como mapa das teclas pela duração"
 
 #~ msgid "                     command.  Acceptable keymap names are emacs,"
 #~ msgstr "                     deste comando.  Os nomes aceitos são emacs,"
 
-#~ msgid ""
-#~ "                     emacs-standard, emacs-meta, emacs-ctlx, vi, vi-move,"
-#~ msgstr ""
-#~ "                     emacs-standard, emacs-meta, emacs-ctlx, vi, vi-move,"
+#~ msgid "                     emacs-standard, emacs-meta, emacs-ctlx, vi, vi-move,"
+#~ msgstr "                     emacs-standard, emacs-meta, emacs-ctlx, vi, vi-move,"
 
 #~ msgid "                     vi-command, and vi-insert."
 #~ msgstr "                     vi-command, and vi-insert."
@@ -6537,10 +6212,8 @@ msgstr ""
 #~ msgid "  -P                 List function names and bindings."
 #~ msgstr "  -P                 Listar nomes e associações das funções."
 
-#~ msgid ""
-#~ "  -p                 List functions and bindings in a form that can be"
-#~ msgstr ""
-#~ "  -p                 Listar nomes e associações das funções de uma forma"
+#~ msgid "  -p                 List functions and bindings in a form that can be"
+#~ msgstr "  -p                 Listar nomes e associações das funções de uma forma"
 
 #~ msgid "                     reused as input."
 #~ msgstr "                     que pode ser reutilizada como entrada."
@@ -6551,31 +6224,24 @@ msgstr ""
 #~ msgid "  -f  filename       Read key bindings from FILENAME."
 #~ msgstr "  -f  ARQUIVO        Ler os vínculos das teclas em ARQUIVO."
 
-#~ msgid ""
-#~ "  -q  function-name  Query about which keys invoke the named function."
+#~ msgid "  -q  function-name  Query about which keys invoke the named function."
 #~ msgstr "  -q  NOME-FUNÇÃO    Consultar quais teclas chamam esta função."
 
 #~ msgid "  -V                 List variable names and values"
 #~ msgstr "  -V                 Listar os nomes e os valores das variáveis."
 
-#~ msgid ""
-#~ "  -v                 List variable names and values in a form that can"
-#~ msgstr ""
-#~ "  -v                 Listar os nomes e os valores das variáveis de uma"
+#~ msgid "  -v                 List variable names and values in a form that can"
+#~ msgstr "  -v                 Listar os nomes e os valores das variáveis de uma"
 
 #~ msgid "                     be reused as input."
 #~ msgstr "                     forma que pode ser reutilizada como entrada."
 
-#~ msgid ""
-#~ "  -S                 List key sequences that invoke macros and their "
-#~ "values"
+#~ msgid "  -S                 List key sequences that invoke macros and their values"
 #~ msgstr ""
 #~ "  -S                 Listar as seqüências de teclas que chamam macros\n"
 #~ "                         e seus valores."
 
-#~ msgid ""
-#~ "  -s                 List key sequences that invoke macros and their "
-#~ "values in"
+#~ msgid "  -s                 List key sequences that invoke macros and their values in"
 #~ msgstr "  -s                 Listar seqüências de teclas que chamam macros"
 
 #~ msgid "                     a form that can be reused as input."
@@ -6596,8 +6262,7 @@ msgstr ""
 #~ msgstr "Se N for especificado, prossegue no N-ésimo laço envolvente."
 
 #~ msgid "Run a shell builtin.  This is useful when you wish to rename a"
-#~ msgstr ""
-#~ "Executa um comando interno do shell.  Útil quando desejamos substituir"
+#~ msgstr "Executa um comando interno do shell.  Útil quando desejamos substituir"
 
 #~ msgid "shell builtin to be a function, but need the functionality of the"
 #~ msgstr "um comando interno do shell por uma função, mas necessitamos da"
@@ -6612,12 +6277,10 @@ msgstr ""
 #~ msgstr "para DIR.  A variável $CDPATH define o caminho de procura para"
 
 #~ msgid "the directory containing DIR.  Alternative directory names in CDPATH"
-#~ msgstr ""
-#~ "o diretório que contém DIR.  Nomes de diretórios alternativos em CDPATH"
+#~ msgstr "o diretório que contém DIR.  Nomes de diretórios alternativos em CDPATH"
 
 #~ msgid "are separated by a colon (:).  A null directory name is the same as"
-#~ msgstr ""
-#~ "são separados por dois pontos (:).  Um nome de diretório nulo é o mesmo"
+#~ msgstr "são separados por dois pontos (:).  Um nome de diretório nulo é o mesmo"
 
 #~ msgid "the current directory, i.e. `.'.  If DIR begins with a slash (/),"
 #~ msgstr "que o diretório atual, i.e. `.'.  Se DIR inicia com uma barra (/),"
@@ -6626,20 +6289,15 @@ msgstr ""
 #~ msgstr "então $CDPATH não é usado.  Se o diretório não for encontrado, e a"
 
 #~ msgid "shell option `cdable_vars' is set, then try the word as a variable"
-#~ msgstr ""
-#~ "opção `cdable_vars' estiver definida, tentar usar DIR como um nome de"
+#~ msgstr "opção `cdable_vars' estiver definida, tentar usar DIR como um nome de"
 
 #~ msgid "name.  If that variable has a value, then cd to the value of that"
-#~ msgstr ""
-#~ "variável.  Se esta variável tiver valor, então `cd' para o valor desta"
+#~ msgstr "variável.  Se esta variável tiver valor, então `cd' para o valor desta"
 
-#~ msgid ""
-#~ "variable.  The -P option says to use the physical directory structure"
-#~ msgstr ""
-#~ "variável.  A opção -P indica para usar a estrutura física do diretório"
+#~ msgid "variable.  The -P option says to use the physical directory structure"
+#~ msgstr "variável.  A opção -P indica para usar a estrutura física do diretório"
 
-#~ msgid ""
-#~ "instead of following symbolic links; the -L option forces symbolic links"
+#~ msgid "instead of following symbolic links; the -L option forces symbolic links"
 #~ msgstr "em vez de seguir os vínculos simbólicos; a opção -L força seguir os"
 
 #~ msgid "to be followed."
@@ -6654,27 +6312,19 @@ msgstr ""
 #~ msgid "makes pwd follow symbolic links."
 #~ msgstr "com que `pwd' siga os vínculos simbólicos."
 
-#~ msgid ""
-#~ "Runs COMMAND with ARGS ignoring shell functions.  If you have a shell"
-#~ msgstr ""
-#~ "Executa COMANDO com ARGs ignorando as funções da shell.  Ex: Havendo"
+#~ msgid "Runs COMMAND with ARGS ignoring shell functions.  If you have a shell"
+#~ msgstr "Executa COMANDO com ARGs ignorando as funções da shell.  Ex: Havendo"
 
 #~ msgid "function called `ls', and you wish to call the command `ls', you can"
-#~ msgstr ""
-#~ "uma função `ls', e se for necessário executar o comando `ls', executa-se"
+#~ msgstr "uma função `ls', e se for necessário executar o comando `ls', executa-se"
 
-#~ msgid ""
-#~ "say \"command ls\".  If the -p option is given, a default value is used"
-#~ msgstr ""
-#~ "\"command ls\".  Se a opção -p for fornecida, o valor padrão é utilizado"
+#~ msgid "say \"command ls\".  If the -p option is given, a default value is used"
+#~ msgstr "\"command ls\".  Se a opção -p for fornecida, o valor padrão é utilizado"
 
-#~ msgid ""
-#~ "for PATH that is guaranteed to find all of the standard utilities.  If"
-#~ msgstr ""
-#~ "para PATH, garantindo-se o encontro de todos os utilitários padrão. Se"
+#~ msgid "for PATH that is guaranteed to find all of the standard utilities.  If"
+#~ msgstr "para PATH, garantindo-se o encontro de todos os utilitários padrão. Se"
 
-#~ msgid ""
-#~ "the -V or -v option is given, a string is printed describing COMMAND."
+#~ msgid "the -V or -v option is given, a string is printed describing COMMAND."
 #~ msgstr "a opção -V ou -v for fornecida, é exibida a descrição do COMANDO."
 
 #~ msgid "The -V option produces a more verbose description."
@@ -6725,8 +6375,7 @@ msgstr ""
 #~ msgid "name only."
 #~ msgstr "somente."
 
-#~ msgid ""
-#~ "Using `+' instead of `-' turns off the given attribute instead.  When"
+#~ msgid "Using `+' instead of `-' turns off the given attribute instead.  When"
 #~ msgstr "Usando `+' em vez de `-' faz o atributo ser desabilitado.  Quando"
 
 #~ msgid "used in a function, makes NAMEs local, as with the `local' command."
@@ -6745,8 +6394,7 @@ msgstr ""
 #~ msgstr "Exibe ARGs.  Se -n for fornecido, o caracter final de nova linha é"
 
 #~ msgid "suppressed.  If the -e option is given, interpretation of the"
-#~ msgstr ""
-#~ "suprimido.  Se a opção -e for fornecida, a interpretação dos seguintes"
+#~ msgstr "suprimido.  Se a opção -e for fornecida, a interpretação dos seguintes"
 
 #~ msgid "following backslash-escaped characters is turned on:"
 #~ msgstr "caracteres após a contrabarra é ativada:"
@@ -6784,74 +6432,56 @@ msgstr ""
 #~ msgid "\t\\num\tthe character whose ASCII code is NUM (octal)."
 #~ msgstr "\t\\num\to caracter com código ASCII igual a NUM (octal)."
 
-#~ msgid ""
-#~ "You can explicitly turn off the interpretation of the above characters"
-#~ msgstr ""
-#~ "Pode-se explicitamente desabilitar a interpretação dos caracteres acima"
+#~ msgid "You can explicitly turn off the interpretation of the above characters"
+#~ msgstr "Pode-se explicitamente desabilitar a interpretação dos caracteres acima"
 
 #~ msgid "with the -E option."
 #~ msgstr "através da opção -E."
 
-#~ msgid ""
-#~ "Output the ARGs.  If -n is specified, the trailing newline is suppressed."
-#~ msgstr ""
-#~ "Exibe ARGS.  Se -n for fornecido, o caracter final de nova linha é "
-#~ "suprimido."
+#~ msgid "Output the ARGs.  If -n is specified, the trailing newline is suppressed."
+#~ msgstr "Exibe ARGS.  Se -n for fornecido, o caracter final de nova linha é suprimido."
 
 #~ msgid "Enable and disable builtin shell commands.  This allows"
-#~ msgstr ""
-#~ "Habilita e desabilita os comandos internos do shell, permitindo usar"
+#~ msgstr "Habilita e desabilita os comandos internos do shell, permitindo usar"
 
 #~ msgid "you to use a disk command which has the same name as a shell"
-#~ msgstr ""
-#~ "um comando de disco que tenha o mesmo nome do comando interno do shell."
+#~ msgstr "um comando de disco que tenha o mesmo nome do comando interno do shell."
 
 #~ msgid "builtin.  If -n is used, the NAMEs become disabled; otherwise"
-#~ msgstr ""
-#~ "Se -n for especificado, os NOMEs são desabilitados, senão os nomes são"
+#~ msgstr "Se -n for especificado, os NOMEs são desabilitados, senão os nomes são"
 
 #~ msgid "NAMEs are enabled.  For example, to use the `test' found on your"
-#~ msgstr ""
-#~ "habilitados. Por exemplo, para usar `test' encontrado pelo PATH em vez"
+#~ msgstr "habilitados. Por exemplo, para usar `test' encontrado pelo PATH em vez"
 
 #~ msgid "path instead of the shell builtin version, type `enable -n test'."
-#~ msgstr ""
-#~ "da versão interna do comando, digite `enable -n test'. Em sistemas que"
+#~ msgstr "da versão interna do comando, digite `enable -n test'. Em sistemas que"
 
 #~ msgid "On systems supporting dynamic loading, the -f option may be used"
-#~ msgstr ""
-#~ "suportam carregamento dinâmico, pode-se usar a opção -f para carregar"
+#~ msgstr "suportam carregamento dinâmico, pode-se usar a opção -f para carregar"
 
 #~ msgid "to load new builtins from the shared object FILENAME.  The -d"
-#~ msgstr ""
-#~ "novos comandos internos do objeto compartilhado ARQUIVO.  A opção -d"
+#~ msgstr "novos comandos internos do objeto compartilhado ARQUIVO.  A opção -d"
 
 #~ msgid "option will delete a builtin previously loaded with -f.  If no"
-#~ msgstr ""
-#~ "elimina os comandos internos previamente carregados com -f.  Se nenhum"
+#~ msgstr "elimina os comandos internos previamente carregados com -f.  Se nenhum"
 
 #~ msgid "non-option names are given, or the -p option is supplied, a list"
-#~ msgstr ""
-#~ "nome for fornecido, ou se a opção -p for fornecida, uma lista de comandos"
+#~ msgstr "nome for fornecido, ou se a opção -p for fornecida, uma lista de comandos"
 
 #~ msgid "of builtins is printed.  The -a option means to print every builtin"
-#~ msgstr ""
-#~ "internos é exibida.  A opção -a faz com que todos os comandos internos"
+#~ msgstr "internos é exibida.  A opção -a faz com que todos os comandos internos"
 
 #~ msgid "with an indication of whether or not it is enabled.  The -s option"
 #~ msgstr "sejam exibidos indicando se estão habilitados ou não.  A opção -s"
 
 #~ msgid "restricts the output to the Posix.2 `special' builtins.  The -n"
-#~ msgstr ""
-#~ "restringe a saída aos comandos internos `especiais' Posix.2.  A opção"
+#~ msgstr "restringe a saída aos comandos internos `especiais' Posix.2.  A opção"
 
 #~ msgid "option displays a list of all disabled builtins."
 #~ msgstr "-n exibe a lista de todos os comandos internos desabilitados."
 
-#~ msgid ""
-#~ "Read ARGs as input to the shell and execute the resulting command(s)."
-#~ msgstr ""
-#~ "Ler ARGs como entrada do shell e executar o(s) comando(s) resultante(s)."
+#~ msgid "Read ARGs as input to the shell and execute the resulting command(s)."
+#~ msgstr "Ler ARGs como entrada do shell e executar o(s) comando(s) resultante(s)."
 
 #~ msgid "Getopts is used by shell procedures to parse positional parameters."
 #~ msgstr ""
@@ -6880,15 +6510,13 @@ msgstr ""
 #~ msgstr "shell OPTIND.  OPTIND é inicializado com 1 cada vez que o script"
 
 #~ msgid "a shell script is invoked.  When an option requires an argument,"
-#~ msgstr ""
-#~ "do shell é chamado.  Quando uma opção requer um argumento, `getopts'"
+#~ msgstr "do shell é chamado.  Quando uma opção requer um argumento, `getopts'"
 
 #~ msgid "getopts places that argument into the shell variable OPTARG."
 #~ msgstr "coloca este argumento dentro da variável do shell OPTARG."
 
 #~ msgid "getopts reports errors in one of two ways.  If the first character"
-#~ msgstr ""
-#~ "`getopts' informa os erros de duas maneiras.  Se o primeiro caracter de"
+#~ msgstr "`getopts' informa os erros de duas maneiras.  Se o primeiro caracter de"
 
 #~ msgid "of OPTSTRING is a colon, getopts uses silent error reporting.  In"
 #~ msgstr "OPÇÕES for dois pontos, `getopts' usa o modo silencioso.  Neste"
@@ -6900,24 +6528,19 @@ msgstr ""
 #~ msgstr "encontrada, `getopts' coloca o caracter da opção em OPTARG.  Se um"
 
 #~ msgid "required argument is not found, getopts places a ':' into NAME and"
-#~ msgstr ""
-#~ "argumento requerido não for encontrado, `getopts' coloca ':' em  NOME e"
+#~ msgstr "argumento requerido não for encontrado, `getopts' coloca ':' em  NOME e"
 
 #~ msgid "sets OPTARG to the option character found.  If getopts is not in"
-#~ msgstr ""
-#~ "atribui a OPTARG o caracter de opção encontrado. Se `getopts' não está em"
+#~ msgstr "atribui a OPTARG o caracter de opção encontrado. Se `getopts' não está em"
 
 #~ msgid "silent mode, and an illegal option is seen, getopts places '?' into"
-#~ msgstr ""
-#~ "modo silencioso, e uma opção ilegal é encontrada, `getopts' coloca '?' em"
+#~ msgstr "modo silencioso, e uma opção ilegal é encontrada, `getopts' coloca '?' em"
 
 #~ msgid "NAME and unsets OPTARG.  If a required option is not found, a '?'"
-#~ msgstr ""
-#~ "NOME e desativa OPTARG.  Se uma opção requerida não é encontrada, uma '?'"
+#~ msgstr "NOME e desativa OPTARG.  Se uma opção requerida não é encontrada, uma '?'"
 
 #~ msgid "is placed in NAME, OPTARG is unset, and a diagnostic message is"
-#~ msgstr ""
-#~ "é colocada em NOME, OPTARG é desativado, e uma mensagem de diagnóstico é"
+#~ msgstr "é colocada em NOME, OPTARG é desativado, e uma mensagem de diagnóstico é"
 
 #~ msgid "printed."
 #~ msgstr "exibida."
@@ -6932,19 +6555,16 @@ msgstr ""
 #~ msgstr "OPTSTRING não seja dois pontos.  OPTERR tem o valor 1 por padrão."
 
 #~ msgid "Getopts normally parses the positional parameters ($0 - $9), but if"
-#~ msgstr ""
-#~ "`getopts' normalmente faz a leitura dos parãmetros posicionais ($0 - $9),"
+#~ msgstr "`getopts' normalmente faz a leitura dos parãmetros posicionais ($0 - $9),"
 
 #~ msgid "more arguments are given, they are parsed instead."
 #~ msgstr "mas, se mais argumentos forem fornecidos, então estes são lidos."
 
 #~ msgid "Exec FILE, replacing this shell with the specified program."
-#~ msgstr ""
-#~ "Executa ARQUIVO, substituindo esta shell pelo programa especificado."
+#~ msgstr "Executa ARQUIVO, substituindo esta shell pelo programa especificado."
 
 #~ msgid "If FILE is not specified, the redirections take effect in this"
-#~ msgstr ""
-#~ "Se ARQUIVO não for especificado, os redirecionamentos são efetivados"
+#~ msgstr "Se ARQUIVO não for especificado, os redirecionamentos são efetivados"
 
 #~ msgid "shell.  If the first argument is `-l', then place a dash in the"
 #~ msgstr "neste shell.  Se o primeiro argumento for `-l', coloca um hífen no"
@@ -6962,8 +6582,7 @@ msgstr ""
 #~ msgstr "Se o arquivo não puder ser executado e o shell não for interativa,"
 
 #~ msgid "then the shell exits, unless the variable \"no_exit_on_failed_exec\""
-#~ msgstr ""
-#~ "então o shell termina, a menos que a variável \"no_exit_on_failed_exec\""
+#~ msgstr "então o shell termina, a menos que a variável \"no_exit_on_failed_exec\""
 
 #~ msgid "is set."
 #~ msgstr "esteja inicializada."
@@ -6971,8 +6590,7 @@ msgstr ""
 #~ msgid "is that of the last command executed."
 #~ msgstr "de saída é igual ao do último comando executado."
 
-#~ msgid ""
-#~ "FIRST and LAST can be numbers specifying the range, or FIRST can be a"
+#~ msgid "FIRST and LAST can be numbers specifying the range, or FIRST can be a"
 #~ msgstr "PRIMEIRO e ÚLTIMO podem ser números especificando o intervalo, ou"
 
 #~ msgid "string, which means the most recent command beginning with that"
@@ -6981,16 +6599,11 @@ msgstr ""
 #~ msgid "string."
 #~ msgstr "mais recente começado por estes caracteres."
 
-#~ msgid ""
-#~ "   -e ENAME selects which editor to use.  Default is FCEDIT, then EDITOR,"
-#~ msgstr ""
-#~ "   -e EDITOR seleciona qual editor usar.  O padrão é FCEDIT, depois "
-#~ "EDITOR,"
+#~ msgid "   -e ENAME selects which editor to use.  Default is FCEDIT, then EDITOR,"
+#~ msgstr "   -e EDITOR seleciona qual editor usar.  O padrão é FCEDIT, depois EDITOR,"
 
-#~ msgid ""
-#~ "      then the editor which corresponds to the current readline editing"
-#~ msgstr ""
-#~ "      depois o editor correspondente ao modo de edição atual da leitura"
+#~ msgid "      then the editor which corresponds to the current readline editing"
+#~ msgstr "      depois o editor correspondente ao modo de edição atual da leitura"
 
 #~ msgid "      mode, then vi."
 #~ msgstr "      de linha, e depois o vi."
@@ -7001,40 +6614,32 @@ msgstr ""
 #~ msgid "   -n means no line numbers listed."
 #~ msgstr "   -n indica para não listar os números das linhas."
 
-#~ msgid ""
-#~ "   -r means reverse the order of the lines (making it newest listed "
-#~ "first)."
-#~ msgstr ""
-#~ "   -r faz reverter a ordem das linhas (a última torna-se a primeira)."
+#~ msgid "   -r means reverse the order of the lines (making it newest listed first)."
+#~ msgstr "   -r faz reverter a ordem das linhas (a última torna-se a primeira)."
 
 #~ msgid "With the `fc -s [pat=rep ...] [command]' format, the command is"
-#~ msgstr ""
-#~ "No formato `fc -s [ANTIGO=NOVO ...] [COMANDO]', o comando é executado"
+#~ msgstr "No formato `fc -s [ANTIGO=NOVO ...] [COMANDO]', o comando é executado"
 
 #~ msgid "re-executed after the substitution OLD=NEW is performed."
 #~ msgstr "novamente após a substituição de ANTIGO por NOVO ser realizada."
 
 #~ msgid "A useful alias to use with this is r='fc -s', so that typing `r cc'"
-#~ msgstr ""
-#~ "Um alias útil a ser usado é r='fc -s' para que, ao se digitar `r cc',"
+#~ msgstr "Um alias útil a ser usado é r='fc -s' para que, ao se digitar `r cc',"
 
 #~ msgid "runs the last command beginning with `cc' and typing `r' re-executes"
 #~ msgstr "seja executado o último comando começado por `cc' e, ao se digitar"
 
 #~ msgid "Place JOB_SPEC in the foreground, and make it the current job.  If"
-#~ msgstr ""
-#~ "Colocar JOB-ESPECIFICADO no primeiro plano, e torná-lo o trabalho atual."
+#~ msgstr "Colocar JOB-ESPECIFICADO no primeiro plano, e torná-lo o trabalho atual."
 
 #~ msgid "JOB_SPEC is not present, the shell's notion of the current job is"
-#~ msgstr ""
-#~ "Se JOB-ESPECIFICADO não estiver presente, a noção do shell do trabalho"
+#~ msgstr "Se JOB-ESPECIFICADO não estiver presente, a noção do shell do trabalho"
 
 #~ msgid "used."
 #~ msgstr "atual é utilizada."
 
 #~ msgid "Place JOB_SPEC in the background, as if it had been started with"
-#~ msgstr ""
-#~ "Colocar JOB-ESPECIFICADO no segundo plano, como se tivesse sido ativado"
+#~ msgstr "Colocar JOB-ESPECIFICADO no segundo plano, como se tivesse sido ativado"
 
 #~ msgid "`&'.  If JOB_SPEC is not present, the shell's notion of the current"
 #~ msgstr "com `&'. Se JOB-ESPECIFICADO não estiver presente, a noção do shell"
@@ -7043,22 +6648,18 @@ msgstr ""
 #~ msgstr "do trabalho atual é utilizada."
 
 #~ msgid "For each NAME, the full pathname of the command is determined and"
-#~ msgstr ""
-#~ "Para cada NOME, o caminho completo do comando é determinado e lembrado."
+#~ msgstr "Para cada NOME, o caminho completo do comando é determinado e lembrado."
 
 #~ msgid "remembered.  If the -p option is supplied, PATHNAME is used as the"
-#~ msgstr ""
-#~ "Se a opção -p for fornecida, CAMINHO é utilizado como o caminho completo"
+#~ msgstr "Se a opção -p for fornecida, CAMINHO é utilizado como o caminho completo"
 
 #~ msgid "full pathname of NAME, and no path search is performed.  The -r"
 #~ msgstr "para NOME, e nenhuma procura de caminho é realizada.  A opção -r"
 
 #~ msgid "option causes the shell to forget all remembered locations.  If no"
-#~ msgstr ""
-#~ "faz com que a shell esqueça todas as localizações lembradas.  Sem nenhum"
+#~ msgstr "faz com que a shell esqueça todas as localizações lembradas.  Sem nenhum"
 
-#~ msgid ""
-#~ "arguments are given, information about remembered commands is displayed."
+#~ msgid "arguments are given, information about remembered commands is displayed."
 #~ msgstr "argumento, as informações sobre os comandos lembrados são exibidas."
 
 #~ msgid "Display helpful information about builtin commands.  If PATTERN is"
@@ -7068,12 +6669,10 @@ msgstr ""
 #~ msgstr "especificado, fornece ajuda detalhada para todos os comandos que"
 
 #~ msgid "otherwise a list of the builtins is printed."
-#~ msgstr ""
-#~ "correspondem ao PADRÃO, senão a lista dos comandos internos é exibida."
+#~ msgstr "correspondem ao PADRÃO, senão a lista dos comandos internos é exibida."
 
 #~ msgid "Display the history list with line numbers.  Lines listed with"
-#~ msgstr ""
-#~ "Exibe a lista histórica com os números das linhas. Linhas contendo um"
+#~ msgstr "Exibe a lista histórica com os números das linhas. Linhas contendo um"
 
 #~ msgid "with a `*' have been modified.  Argument of N says to list only"
 #~ msgstr "`*' foram modificadas.  O argumento N faz listar somente as últimas"
@@ -7081,19 +6680,14 @@ msgstr ""
 #~ msgid "the last N lines.  The -c option causes the history list to be"
 #~ msgstr "N linhas.  A opção -c faz com que a lista histórica seja apagada"
 
-#~ msgid ""
-#~ "cleared by deleting all of the entries.  The `-w' option writes out the"
-#~ msgstr ""
-#~ "removendo todas as entradas.  A opção `-w' escreve o histórico atual no"
+#~ msgid "cleared by deleting all of the entries.  The `-w' option writes out the"
+#~ msgstr "removendo todas as entradas.  A opção `-w' escreve o histórico atual no"
 
-#~ msgid ""
-#~ "current history to the history file;  `-r' means to read the file and"
-#~ msgstr ""
-#~ "arquivo de histórico;  A opção `-r' significa ler o arquivo e apensar seu"
+#~ msgid "current history to the history file;  `-r' means to read the file and"
+#~ msgstr "arquivo de histórico;  A opção `-r' significa ler o arquivo e apensar seu"
 
 #~ msgid "append the contents to the history list instead.  `-a' means"
-#~ msgstr ""
-#~ "conteúdo à lista histórica.  A opção `-a' significa apensar as linhas de"
+#~ msgstr "conteúdo à lista histórica.  A opção `-a' significa apensar as linhas de"
 
 #~ msgid "to append history lines from this session to the history file."
 #~ msgstr "histórico desta sessão ao arquivo de histórico."
@@ -7102,113 +6696,82 @@ msgstr ""
 #~ msgstr "A opção `-n' faz ler todas as linhas de histórico ainda não lidas"
 
 #~ msgid "from the history file and append them to the history list.  If"
-#~ msgstr ""
-#~ "do arquivo histórico, e apensá-las à lista de histórico.  Se ARQUIVO"
+#~ msgstr "do arquivo histórico, e apensá-las à lista de histórico.  Se ARQUIVO"
 
 #~ msgid "FILENAME is given, then that is used as the history file else"
 #~ msgstr "for fornecido, então este é usado como arquivo de histórico, senão"
 
 #~ msgid "if $HISTFILE has a value, that is used, else ~/.bash_history."
-#~ msgstr ""
-#~ "se $HISTFILE possui valor, este é usado, senão ~/.bash_history.  Se a"
+#~ msgstr "se $HISTFILE possui valor, este é usado, senão ~/.bash_history.  Se a"
 
 #~ msgid "If the -s option is supplied, the non-option ARGs are appended to"
-#~ msgstr ""
-#~ "opção -s for fornecida, os ARGs, que não forem opções, são apensados à"
+#~ msgstr "opção -s for fornecida, os ARGs, que não forem opções, são apensados à"
 
 #~ msgid "the history list as a single entry.  The -p option means to perform"
-#~ msgstr ""
-#~ "lista histórica como uma única entrada. A opção -p significa realizar a"
+#~ msgstr "lista histórica como uma única entrada. A opção -p significa realizar a"
 
-#~ msgid ""
-#~ "history expansion on each ARG and display the result, without storing"
-#~ msgstr ""
-#~ "expansão da história em cada ARG e exibir o resultado, sem armazenar"
+#~ msgid "history expansion on each ARG and display the result, without storing"
+#~ msgstr "expansão da história em cada ARG e exibir o resultado, sem armazenar"
 
 #~ msgid "anything in the history list."
 #~ msgstr "nada na lista de histórico."
 
 #~ msgid "Lists the active jobs.  The -l option lists process id's in addition"
-#~ msgstr ""
-#~ "Lista os trabalhos ativos.  A opção -l lista os ID's dos processos além"
+#~ msgstr "Lista os trabalhos ativos.  A opção -l lista os ID's dos processos além"
 
 #~ msgid "to the normal information; the -p option lists process id's only."
-#~ msgstr ""
-#~ "das informações usuais;  a opção -p lista somente os ID's dos processos."
+#~ msgstr "das informações usuais;  a opção -p lista somente os ID's dos processos."
 
-#~ msgid ""
-#~ "If -n is given, only processes that have changed status since the last"
-#~ msgstr ""
-#~ "Se -n for fornecido, somente os processos que mudaram de status desde a"
+#~ msgid "If -n is given, only processes that have changed status since the last"
+#~ msgstr "Se -n for fornecido, somente os processos que mudaram de status desde a"
 
-#~ msgid ""
-#~ "notification are printed.  JOBSPEC restricts output to that job.  The"
-#~ msgstr ""
-#~ "última notificação são exibidos.  JOB-ESPECIFICADO restringe a saída a "
-#~ "este"
+#~ msgid "notification are printed.  JOBSPEC restricts output to that job.  The"
+#~ msgstr "última notificação são exibidos.  JOB-ESPECIFICADO restringe a saída a este"
 
 #~ msgid "-r and -s options restrict output to running and stopped jobs only,"
-#~ msgstr ""
-#~ "trabalho.  As opções -r e -s restringem a saída apenas aos trabalhos"
+#~ msgstr "trabalho.  As opções -r e -s restringem a saída apenas aos trabalhos"
 
 #~ msgid "respectively.  Without options, the status of all active jobs is"
-#~ msgstr ""
-#~ "executando e parados, respectivamente.  Sem opções, o status de todos os"
+#~ msgstr "executando e parados, respectivamente.  Sem opções, o status de todos os"
 
-#~ msgid ""
-#~ "printed.  If -x is given, COMMAND is run after all job specifications"
-#~ msgstr ""
-#~ "trabalhos ativos são exibidos.  Se -x for fornecido, COMANDO é executado"
+#~ msgid "printed.  If -x is given, COMMAND is run after all job specifications"
+#~ msgstr "trabalhos ativos são exibidos.  Se -x for fornecido, COMANDO é executado"
 
-#~ msgid ""
-#~ "that appear in ARGS have been replaced with the process ID of that job's"
-#~ msgstr ""
-#~ "após todas as especificações de trabalho que aparecem em ARGS terem sido"
+#~ msgid "that appear in ARGS have been replaced with the process ID of that job's"
+#~ msgstr "após todas as especificações de trabalho que aparecem em ARGS terem sido"
 
 #~ msgid "process group leader."
 #~ msgstr "substituídas pelo ID do processo líder deste grupo de processos."
 
 #~ msgid "Removes each JOBSPEC argument from the table of active jobs."
-#~ msgstr ""
-#~ "Remove cada argumento JOB-ESPECIFICADO da tabela de trabalhos ativos."
+#~ msgstr "Remove cada argumento JOB-ESPECIFICADO da tabela de trabalhos ativos."
 
 #~ msgid "Send the processes named by PID (or JOB) the signal SIGSPEC.  If"
-#~ msgstr ""
-#~ "Envia ao processo identificado pelo PID (ou JOB) o sinal SIGSPEC.  Se"
+#~ msgstr "Envia ao processo identificado pelo PID (ou JOB) o sinal SIGSPEC.  Se"
 
-#~ msgid ""
-#~ "SIGSPEC is not present, then SIGTERM is assumed.  An argument of `-l'"
-#~ msgstr ""
-#~ "SIGSPEC não estiver presente, então SIGTERM é assumido.  A opção `-l'"
+#~ msgid "SIGSPEC is not present, then SIGTERM is assumed.  An argument of `-l'"
+#~ msgstr "SIGSPEC não estiver presente, então SIGTERM é assumido.  A opção `-l'"
 
 #~ msgid "lists the signal names; if arguments follow `-l' they are assumed to"
-#~ msgstr ""
-#~ "lista os nomes dos sinais;  havendo argumentos após `-l', são assumidos"
+#~ msgstr "lista os nomes dos sinais;  havendo argumentos após `-l', são assumidos"
 
 #~ msgid "be signal numbers for which names should be listed.  Kill is a shell"
-#~ msgstr ""
-#~ "como sendo os números dos sinais cujos nomes devem ser exibidos.  Kill"
+#~ msgstr "como sendo os números dos sinais cujos nomes devem ser exibidos.  Kill"
 
 #~ msgid "builtin for two reasons: it allows job IDs to be used instead of"
-#~ msgstr ""
-#~ "é um comando interno por duas razões: permite o uso do ID do trabalho em"
+#~ msgstr "é um comando interno por duas razões: permite o uso do ID do trabalho em"
 
 #~ msgid "process IDs, and, if you have reached the limit on processes that"
-#~ msgstr ""
-#~ "vez do ID do processo e, caso tenha sido atingido o limite de processos "
-#~ "que"
+#~ msgstr "vez do ID do processo e, caso tenha sido atingido o limite de processos que"
 
-#~ msgid ""
-#~ "you can create, you don't have to start a process to kill another one."
-#~ msgstr ""
-#~ "podem ser criados, não é necessário um novo processo para remover outro."
+#~ msgid "you can create, you don't have to start a process to kill another one."
+#~ msgstr "podem ser criados, não é necessário um novo processo para remover outro."
 
 #~ msgid "Each ARG is an arithmetic expression to be evaluated.  Evaluation"
 #~ msgstr "Cada ARG é uma expressão aritmética a ser avaliada.  A avaliação é"
 
 #~ msgid "is done in long integers with no check for overflow, though division"
-#~ msgstr ""
-#~ "feita usando inteiros longos sem verificar estouro, embora a divisão"
+#~ msgstr "feita usando inteiros longos sem verificar estouro, embora a divisão"
 
 #~ msgid "by 0 is trapped and flagged as an error.  The following list of"
 #~ msgstr "por 0 seja capturada e indicada como erro.  A lista abaixo está"
@@ -7280,8 +6843,7 @@ msgstr ""
 #~ msgstr "ativo para ser usada em uma expressão."
 
 #~ msgid "Operators are evaluated in order of precedence.  Sub-expressions in"
-#~ msgstr ""
-#~ "Os operadores são avaliados em ordem de precedência.  Sub-expressões"
+#~ msgstr "Os operadores são avaliados em ordem de precedência.  Sub-expressões"
 
 #~ msgid "parentheses are evaluated first and may override the precedence"
 #~ msgstr "entre parênteses são avaliadas primeiro e podem prevalecer sobre as"
@@ -7298,76 +6860,53 @@ msgstr ""
 #~ msgid "One line is read from the standard input, and the first word is"
 #~ msgstr "Uma linha é lida a partir da entrada padrão, e a primeira palavra é"
 
-#~ msgid ""
-#~ "assigned to the first NAME, the second word to the second NAME, and so"
-#~ msgstr ""
-#~ "atribuída ao primeiro NOME, a segunda ao segundo NOME, e assim por diante,"
+#~ msgid "assigned to the first NAME, the second word to the second NAME, and so"
+#~ msgstr "atribuída ao primeiro NOME, a segunda ao segundo NOME, e assim por diante,"
 
-#~ msgid ""
-#~ "on, with leftover words assigned to the last NAME.  Only the characters"
-#~ msgstr ""
-#~ "com as palavras restantes atribuídas ao último NOME.  Somente os "
-#~ "caracteres"
+#~ msgid "on, with leftover words assigned to the last NAME.  Only the characters"
+#~ msgstr "com as palavras restantes atribuídas ao último NOME.  Somente os caracteres"
 
 #~ msgid "found in $IFS are recognized as word delimiters.  The return code is"
-#~ msgstr ""
-#~ "encontrados em $IFS são reconhecidos como delimitadores. O código de "
-#~ "retorno"
+#~ msgstr "encontrados em $IFS são reconhecidos como delimitadores. O código de retorno"
 
-#~ msgid ""
-#~ "zero, unless end-of-file is encountered.  If no NAMEs are supplied, the"
-#~ msgstr ""
-#~ "é zero, a menos que EOF seja encontrado.  Se nenhum NOME for fornecido,"
+#~ msgid "zero, unless end-of-file is encountered.  If no NAMEs are supplied, the"
+#~ msgstr "é zero, a menos que EOF seja encontrado.  Se nenhum NOME for fornecido,"
 
-#~ msgid ""
-#~ "line read is stored in the REPLY variable.  If the -r option is given,"
-#~ msgstr ""
-#~ "a linha lida é armazenada na variável REPLY.  Se a opção -r for fornecida,"
+#~ msgid "line read is stored in the REPLY variable.  If the -r option is given,"
+#~ msgstr "a linha lida é armazenada na variável REPLY.  Se a opção -r for fornecida,"
 
 #~ msgid "this signifies `raw' input, and backslash escaping is disabled.  If"
-#~ msgstr ""
-#~ "significa entrada `textual', desabilitando a interpretação da contrabarra."
+#~ msgstr "significa entrada `textual', desabilitando a interpretação da contrabarra."
 
 #~ msgid "the `-p' option is supplied, the string supplied as an argument is"
-#~ msgstr ""
-#~ "Se a opção `-p' for fornecida a MENSAGEM fornecida como argumento é "
-#~ "exibida,"
+#~ msgstr "Se a opção `-p' for fornecida a MENSAGEM fornecida como argumento é exibida,"
 
-#~ msgid ""
-#~ "output without a trailing newline before attempting to read.  If -a is"
-#~ msgstr ""
-#~ "sem o caracter de nova linha, antes de efetuar a leitura.  Se a opção -a"
+#~ msgid "output without a trailing newline before attempting to read.  If -a is"
+#~ msgstr "sem o caracter de nova linha, antes de efetuar a leitura.  Se a opção -a"
 
-#~ msgid ""
-#~ "supplied, the words read are assigned to sequential indices of ARRAY,"
-#~ msgstr ""
-#~ "for fornecida, as palavras lidas são atribuídas aos índices seqüenciais"
+#~ msgid "supplied, the words read are assigned to sequential indices of ARRAY,"
+#~ msgstr "for fornecida, as palavras lidas são atribuídas aos índices seqüenciais"
 
 #~ msgid "starting at zero.  If -e is supplied and the shell is interactive,"
-#~ msgstr ""
-#~ "do ARRAY, começando por zero.  Se a opção -e for fornecida, e a shell for"
+#~ msgstr "do ARRAY, começando por zero.  Se a opção -e for fornecida, e a shell for"
 
 #~ msgid "readline is used to obtain the line."
 #~ msgstr "interativa, `readline' é utilizado para ler a linha."
 
-#~ msgid ""
-#~ "Causes a function to exit with the return value specified by N.  If N"
+#~ msgid "Causes a function to exit with the return value specified by N.  If N"
 #~ msgstr "Faz a função terminar com o valor de retorno especificado por N."
 
 #~ msgid "is omitted, the return status is that of the last command."
 #~ msgstr "Se N for omitido, retorna o status do último comando executado."
 
 #~ msgid "    -a  Mark variables which are modified or created for export."
-#~ msgstr ""
-#~ "    -a  Marcar para exportação as variáveis que são criadas ou "
-#~ "modificadas."
+#~ msgstr "    -a  Marcar para exportação as variáveis que são criadas ou modificadas."
 
 #~ msgid "    -b  Notify of job termination immediately."
 #~ msgstr "    -b  Notificar imediatamente o término do trabalho."
 
 #~ msgid "    -e  Exit immediately if a command exits with a non-zero status."
-#~ msgstr ""
-#~ "    -e  Terminar imediatamente se um comando terminar com status != 0."
+#~ msgstr "    -e  Terminar imediatamente se um comando terminar com status != 0."
 
 #~ msgid "    -f  Disable file name generation (globbing)."
 #~ msgstr "    -f  Desabilitar a geração de nome de arquivo (metacaracteres)."
@@ -7375,16 +6914,14 @@ msgstr ""
 #~ msgid "    -h  Remember the location of commands as they are looked up."
 #~ msgstr "    -h  Lembrar da localização dos comandos ao procurá-los."
 
-#~ msgid ""
-#~ "    -i  Force the shell to be an \"interactive\" one.  Interactive shells"
+#~ msgid "    -i  Force the shell to be an \"interactive\" one.  Interactive shells"
 #~ msgstr "    -i  Forçar a shell ser do tipo \"interativa\".  `Shells'"
 
 #~ msgid "        always read `~/.bashrc' on startup."
 #~ msgstr "        interativas sempre lêem `~/.bashrc' ao iniciar."
 
 #~ msgid "    -k  All assignment arguments are placed in the environment for a"
-#~ msgstr ""
-#~ "    -k  Todos os argumentos de atribuição são colocados no ambiente,"
+#~ msgstr "    -k  Todos os argumentos de atribuição são colocados no ambiente,"
 
 #~ msgid "        command, not just those that precede the command name."
 #~ msgstr "        e não somente os que precedem o nome do comando."
@@ -7408,8 +6945,7 @@ msgstr ""
 #~ msgstr "            braceexpand  o mesmo que -B"
 
 #~ msgid "            emacs        use an emacs-style line editing interface"
-#~ msgstr ""
-#~ "            emacs        usar interface de edição de linha estilo emacs"
+#~ msgstr "            emacs        usar interface de edição de linha estilo emacs"
 
 #~ msgid "            errexit      same as -e"
 #~ msgstr "            errexit      o mesmo que -e"
@@ -7426,10 +6962,8 @@ msgstr ""
 #~ msgid "            interactive-comments"
 #~ msgstr "            interactive-comments"
 
-#~ msgid ""
-#~ "                         allow comments to appear in interactive commands"
-#~ msgstr ""
-#~ "                         permite comentários em comandos interativos"
+#~ msgid "                         allow comments to appear in interactive commands"
+#~ msgstr "                         permite comentários em comandos interativos"
 
 #~ msgid "            keyword      same as -k"
 #~ msgstr "            keyword      o mesmo que -k"
@@ -7458,15 +6992,11 @@ msgstr ""
 #~ msgid "            physical     same as -P"
 #~ msgstr "            physical     o mesmo que -P"
 
-#~ msgid ""
-#~ "            posix        change the behavior of bash where the default"
-#~ msgstr ""
-#~ "            posix        mudar o comportamento do `bash' onde o padrão"
+#~ msgid "            posix        change the behavior of bash where the default"
+#~ msgstr "            posix        mudar o comportamento do `bash' onde o padrão"
 
-#~ msgid ""
-#~ "                         operation differs from the 1003.2 standard to"
-#~ msgstr ""
-#~ "                         for diferente do padrão 1003.2, para tornar"
+#~ msgid "                         operation differs from the 1003.2 standard to"
+#~ msgstr "                         for diferente do padrão 1003.2, para tornar"
 
 #~ msgid "                         match the standard"
 #~ msgstr "                         igual ao padrão"
@@ -7478,26 +7008,19 @@ msgstr ""
 #~ msgstr "            verbose      o mesmo que -v"
 
 #~ msgid "            vi           use a vi-style line editing interface"
-#~ msgstr ""
-#~ "            vi           usar interface de edição de linha estilo vi"
+#~ msgstr "            vi           usar interface de edição de linha estilo vi"
 
 #~ msgid "            xtrace       same as -x"
 #~ msgstr "            xtrace       o mesmo que -x"
 
-#~ msgid ""
-#~ "    -p  Turned on whenever the real and effective user ids do not match."
-#~ msgstr ""
-#~ "    -p  Habilitado sempre que o usuário real e efetivo forem diferentes."
+#~ msgid "    -p  Turned on whenever the real and effective user ids do not match."
+#~ msgstr "    -p  Habilitado sempre que o usuário real e efetivo forem diferentes."
 
 #~ msgid "        Disables processing of the $ENV file and importing of shell"
-#~ msgstr ""
-#~ "        Desabilita o processamento do arquivo $ENV e importação das "
-#~ "funções"
+#~ msgstr "        Desabilita o processamento do arquivo $ENV e importação das funções"
 
-#~ msgid ""
-#~ "        functions.  Turning this option off causes the effective uid and"
-#~ msgstr ""
-#~ "        da shell.  Desabilitando esta opção faz com que o `uid' e `gid'"
+#~ msgid "        functions.  Turning this option off causes the effective uid and"
+#~ msgstr "        da shell.  Desabilitando esta opção faz com que o `uid' e `gid'"
 
 #~ msgid "        gid to be set to the real uid and gid."
 #~ msgstr "        efetivos sejam feitos o mesmo que o `uid' e `gid' reais."
@@ -7506,8 +7029,7 @@ msgstr ""
 #~ msgstr "    -t  Sair após ler e executar um comando."
 
 #~ msgid "    -u  Treat unset variables as an error when substituting."
-#~ msgstr ""
-#~ "    -u  Tratar como erro as variáveis não inicializadas na substituição."
+#~ msgstr "    -u  Tratar como erro as variáveis não inicializadas na substituição."
 
 #~ msgid "    -v  Print shell input lines as they are read."
 #~ msgstr "    -v  Exibir as linhas de entrada da shell ao lê-las."
@@ -7540,13 +7062,10 @@ msgstr ""
 #~ msgstr "Usando + em vez de - faz com que as opções sejam desabilitadas. As"
 
 #~ msgid "flags can also be used upon invocation of the shell.  The current"
-#~ msgstr ""
-#~ "opções também podem ser usadas na chamada da shell.  O conjunto atual"
+#~ msgstr "opções também podem ser usadas na chamada da shell.  O conjunto atual"
 
-#~ msgid ""
-#~ "set of flags may be found in $-.  The remaining n ARGs are positional"
-#~ msgstr ""
-#~ "de opções pode ser encontrado em $-. Os n ARGs restantes são parâmetros"
+#~ msgid "set of flags may be found in $-.  The remaining n ARGs are positional"
+#~ msgstr "de opções pode ser encontrado em $-. Os n ARGs restantes são parâmetros"
 
 #~ msgid "parameters and are assigned, in order, to $1, $2, .. $n.  If no"
 #~ msgstr "posicionais e são atribuídos, em ordem, a $1, $2, .. $n.  Se nenhum"
@@ -7555,12 +7074,10 @@ msgstr ""
 #~ msgstr "ARG for fornecido, todas as variáveis da shell são exibidas."
 
 #~ msgid "For each NAME, remove the corresponding variable or function.  Given"
-#~ msgstr ""
-#~ "Para cada NOME, remove a variável ou a função correspondente.  Usando-se a"
+#~ msgstr "Para cada NOME, remove a variável ou a função correspondente.  Usando-se a"
 
 #~ msgid "the `-v', unset will only act on variables.  Given the `-f' flag,"
-#~ msgstr ""
-#~ "opção `-v', `unset' atua somente nas variáveis.  Usando-se a opção `-f'"
+#~ msgstr "opção `-v', `unset' atua somente nas variáveis.  Usando-se a opção `-f'"
 
 #~ msgid "unset will only act on functions.  With neither flag, unset first"
 #~ msgstr "`unset' atua somente nas funções.  Sem nenhuma opção, inicialmente"
@@ -7568,32 +7085,26 @@ msgstr ""
 #~ msgid "tries to unset a variable, and if that fails, then tries to unset a"
 #~ msgstr "`unset' tenta remover uma variável e, se falhar, tenta remover uma"
 
-#~ msgid ""
-#~ "function.  Some variables (such as PATH and IFS) cannot be unset; also"
-#~ msgstr ""
-#~ "função.  Algumas variáveis (como PATH e IFS) não podem ser removidas."
+#~ msgid "function.  Some variables (such as PATH and IFS) cannot be unset; also"
+#~ msgstr "função.  Algumas variáveis (como PATH e IFS) não podem ser removidas."
 
 #~ msgid "see readonly."
 #~ msgstr "Veja também o comando `readonly'."
 
 #~ msgid "NAMEs are marked for automatic export to the environment of"
-#~ msgstr ""
-#~ "NOMEs são marcados para serem automaticamente exportados para o ambiente"
+#~ msgstr "NOMEs são marcados para serem automaticamente exportados para o ambiente"
 
 #~ msgid "subsequently executed commands.  If the -f option is given,"
 #~ msgstr "dos comando executados a seguir.  Se a opção -f for fornecida,"
 
 #~ msgid "the NAMEs refer to functions.  If no NAMEs are given, or if `-p'"
-#~ msgstr ""
-#~ "os NOMEs se referem a funções.  Se nenhum nome for fornecido, ou se `-p'"
+#~ msgstr "os NOMEs se referem a funções.  Se nenhum nome for fornecido, ou se `-p'"
 
 #~ msgid "is given, a list of all names that are exported in this shell is"
-#~ msgstr ""
-#~ "for usado, uma lista com todos os nomes que são exportados nesta shell é"
+#~ msgstr "for usado, uma lista com todos os nomes que são exportados nesta shell é"
 
 #~ msgid "printed.  An argument of `-n' says to remove the export property"
-#~ msgstr ""
-#~ "exibida.  O argumento `-n' faz remover a propriedade de exportação dos"
+#~ msgstr "exibida.  O argumento `-n' faz remover a propriedade de exportação dos"
 
 #~ msgid "from subsequent NAMEs.  An argument of `--' disables further option"
 #~ msgstr "NOMEs subseqüentes.  O argumento `--' desabilita o processamento de"
@@ -7601,40 +7112,29 @@ msgstr ""
 #~ msgid "processing."
 #~ msgstr "opções posteriores."
 
-#~ msgid ""
-#~ "The given NAMEs are marked readonly and the values of these NAMEs may"
-#~ msgstr ""
-#~ "Os NOMEs são marcados como somente para leitura, e os valores destes"
+#~ msgid "The given NAMEs are marked readonly and the values of these NAMEs may"
+#~ msgstr "Os NOMEs são marcados como somente para leitura, e os valores destes"
 
 #~ msgid "not be changed by subsequent assignment.  If the -f option is given,"
-#~ msgstr ""
-#~ "NOMEs não poderão ser alterados por novas atribuições.  Se a opção -f for"
+#~ msgstr "NOMEs não poderão ser alterados por novas atribuições.  Se a opção -f for"
 
 #~ msgid "then functions corresponding to the NAMEs are so marked.  If no"
-#~ msgstr ""
-#~ "fornecida, as funções correspondentes a NOMEs também são marcadas.  Sem"
+#~ msgstr "fornecida, as funções correspondentes a NOMEs também são marcadas.  Sem"
 
-#~ msgid ""
-#~ "arguments are given, or if `-p' is given, a list of all readonly names"
-#~ msgstr ""
-#~ "nenhum argumento, ou se `-p' for usado, uma lista com todos os nomes"
+#~ msgid "arguments are given, or if `-p' is given, a list of all readonly names"
+#~ msgstr "nenhum argumento, ou se `-p' for usado, uma lista com todos os nomes"
 
-#~ msgid ""
-#~ "is printed.  An argument of `-n' says to remove the readonly property"
-#~ msgstr ""
-#~ "somente para leitura é exibida.  O argumento `-n' remove a propriedade"
+#~ msgid "is printed.  An argument of `-n' says to remove the readonly property"
+#~ msgstr "somente para leitura é exibida.  O argumento `-n' remove a propriedade"
 
 #~ msgid "from subsequent NAMEs.  The `-a' option means to treat each NAME as"
 #~ msgstr "somente para leitura.  A opção `-a' faz tratar cada NOME como uma"
 
 #~ msgid "an array variable.  An argument of `--' disables further option"
-#~ msgstr ""
-#~ "variável tipo array.  Um argumento `--' desabilita o processamento de"
+#~ msgstr "variável tipo array.  Um argumento `--' desabilita o processamento de"
 
-#~ msgid ""
-#~ "The positional parameters from $N+1 ... are renamed to $1 ...  If N is"
-#~ msgstr ""
-#~ "Os parâmetros posicionais a partir de $N+1 ... são deslocados para $1 ..."
+#~ msgid "The positional parameters from $N+1 ... are renamed to $1 ...  If N is"
+#~ msgstr "Os parâmetros posicionais a partir de $N+1 ... são deslocados para $1 ..."
 
 #~ msgid "not given, it is assumed to be 1."
 #~ msgstr "Se N não for especificado, o valor 1 é assumido ($2 vira $1 ...)."
@@ -7646,31 +7146,25 @@ msgstr ""
 #~ msgstr "$PATH são usados para encontrar o diretório contendo o ARQUIVO."
 
 #~ msgid "Suspend the execution of this shell until it receives a SIGCONT"
-#~ msgstr ""
-#~ "Suspender a execução desta shell até que o sinal SIGCONT seja recebido."
+#~ msgstr "Suspender a execução desta shell até que o sinal SIGCONT seja recebido."
 
 #~ msgid "signal.  The `-f' if specified says not to complain about this"
 #~ msgstr "Se a opção `-f' for especificada indica para não reclamar sobre ser"
 
 #~ msgid "being a login shell if it is; just suspend anyway."
-#~ msgstr ""
-#~ "uma `shell de login', caso seja; simplesmente suspender de qualquer forma."
+#~ msgstr "uma `shell de login', caso seja; simplesmente suspender de qualquer forma."
 
 #~ msgid "Exits with a status of 0 (trueness) or 1 (falseness) depending on"
-#~ msgstr ""
-#~ "Termina com status 0 (verdadeiro) ou 1 (falso) conforme EXPR for avaliada."
+#~ msgstr "Termina com status 0 (verdadeiro) ou 1 (falso) conforme EXPR for avaliada."
 
 #~ msgid "the evaluation of EXPR.  Expressions may be unary or binary.  Unary"
-#~ msgstr ""
-#~ "As expressões podem ser unárias ou binárias. As expressões unárias são"
+#~ msgstr "As expressões podem ser unárias ou binárias. As expressões unárias são"
 
 #~ msgid "expressions are often used to examine the status of a file.  There"
-#~ msgstr ""
-#~ "muito usadas para examinar o status de um arquivo.  Existem, também,"
+#~ msgstr "muito usadas para examinar o status de um arquivo.  Existem, também,"
 
 #~ msgid "are string operators as well, and numeric comparison operators."
-#~ msgstr ""
-#~ "operadores para cadeias de caracteres (strings) e comparações numéricas."
+#~ msgstr "operadores para cadeias de caracteres (strings) e comparações numéricas."
 
 #~ msgid "File operators:"
 #~ msgstr "Operadores para arquivos:"
@@ -7679,8 +7173,7 @@ msgstr ""
 #~ msgstr "    -b ARQUIVO  Verdade se o arquivo for do tipo especial de bloco."
 
 #~ msgid "    -c FILE        True if file is character special."
-#~ msgstr ""
-#~ "    -c ARQUIVO  Verdade se o arquivo for do tipo especial de caracter."
+#~ msgstr "    -c ARQUIVO  Verdade se o arquivo for do tipo especial de caracter."
 
 #~ msgid "    -d FILE        True if file is a directory."
 #~ msgstr "    -d ARQUIVO  Verdade se o arquivo for um diretório."
@@ -7692,12 +7185,10 @@ msgstr ""
 #~ msgstr "    -f ARQUIVO  Verdade se o arquivo existir e for do tipo regular."
 
 #~ msgid "    -g FILE        True if file is set-group-id."
-#~ msgstr ""
-#~ "    -g ARQUIVO  Verdade se o arquivo tiver o bit \"set-group-id\" ativo."
+#~ msgstr "    -g ARQUIVO  Verdade se o arquivo tiver o bit \"set-group-id\" ativo."
 
 #~ msgid "    -h FILE        True if file is a symbolic link.  Use \"-L\"."
-#~ msgstr ""
-#~ "    -h ARQUIVO  Verdade se arquivo for um vínculo simbólico.  Usar \"-L\"."
+#~ msgstr "    -h ARQUIVO  Verdade se arquivo for um vínculo simbólico.  Usar \"-L\"."
 
 #~ msgid "    -L FILE        True if file is a symbolic link."
 #~ msgstr "    -L ARQUIVO  Verdade se o arquivo for um vínculo simbólico."
@@ -7709,8 +7200,7 @@ msgstr ""
 #~ msgstr "    -p ARQUIVO  Verdade se o arquivo for um `named pipe'."
 
 #~ msgid "    -r FILE        True if file is readable by you."
-#~ msgstr ""
-#~ "    -r ARQUIVO  Verdade se você tiver autorização para ler o arquivo."
+#~ msgstr "    -r ARQUIVO  Verdade se você tiver autorização para ler o arquivo."
 
 #~ msgid "    -s FILE        True if file exists and is not empty."
 #~ msgstr "    -s ARQUIVO  Verdade se o arquivo existir e não estiver vazio."
@@ -7724,26 +7214,19 @@ msgstr ""
 #~ "                    em um terminal."
 
 #~ msgid "    -u FILE        True if the file is set-user-id."
-#~ msgstr ""
-#~ "    -u ARQUIVO  Verdade se o arquivo tiver o bit \"set-user-id\" ativo."
+#~ msgstr "    -u ARQUIVO  Verdade se o arquivo tiver o bit \"set-user-id\" ativo."
 
 #~ msgid "    -w FILE        True if the file is writable by you."
-#~ msgstr ""
-#~ "    -w ARQUIVO  Verdade se você tiver autorização para escrever no "
-#~ "arquivo."
+#~ msgstr "    -w ARQUIVO  Verdade se você tiver autorização para escrever no arquivo."
 
 #~ msgid "    -x FILE        True if the file is executable by you."
-#~ msgstr ""
-#~ "    -x ARQUIVO  Verdade se você tiver autorização para executar o arquivo."
+#~ msgstr "    -x ARQUIVO  Verdade se você tiver autorização para executar o arquivo."
 
 #~ msgid "    -O FILE        True if the file is effectively owned by you."
-#~ msgstr ""
-#~ "    -O ARQUIVO  Verdade se o arquivo pertencer ao seu usuário efetivo."
+#~ msgstr "    -O ARQUIVO  Verdade se o arquivo pertencer ao seu usuário efetivo."
 
-#~ msgid ""
-#~ "    -G FILE        True if the file is effectively owned by your group."
-#~ msgstr ""
-#~ "    -G ARQUIVO  Verdade se o arquivo pertencer ao seu grupo efetivo."
+#~ msgid "    -G FILE        True if the file is effectively owned by your group."
+#~ msgstr "    -G ARQUIVO  Verdade se o arquivo pertencer ao seu grupo efetivo."
 
 #~ msgid "  FILE1 -nt FILE2  True if file1 is newer than (according to"
 #~ msgstr "  ARQ1 -nt ARQ2 Verdade se ARQ1 for mais novo (conforme a data"
@@ -7786,18 +7269,14 @@ msgstr ""
 #~ msgid "    STRING1 < STRING2"
 #~ msgstr "    STRING1 < STRING2"
 
-#~ msgid ""
-#~ "                   True if STRING1 sorts before STRING2 lexicographically"
-#~ msgstr ""
-#~ "                Verdade se STRING1 tiver ordenação anterior à STRING2."
+#~ msgid "                   True if STRING1 sorts before STRING2 lexicographically"
+#~ msgstr "                Verdade se STRING1 tiver ordenação anterior à STRING2."
 
 #~ msgid "    STRING1 > STRING2"
 #~ msgstr "    STRING1 > STRING2"
 
-#~ msgid ""
-#~ "                   True if STRING1 sorts after STRING2 lexicographically"
-#~ msgstr ""
-#~ "                Verdade se STRING1 tiver ordenação posterior à STRING2."
+#~ msgid "                   True if STRING1 sorts after STRING2 lexicographically"
+#~ msgstr "                Verdade se STRING1 tiver ordenação posterior à STRING2."
 
 #~ msgid "Other operators:"
 #~ msgstr "Outros operadores:"
@@ -7818,11 +7297,9 @@ msgstr ""
 #~ msgstr "                   -lt, -le, -gt, ou -ge."
 
 #~ msgid "Arithmetic binary operators return true if ARG1 is equal, not-equal,"
-#~ msgstr ""
-#~ "Operadores aritméticos binários retornam verdadeiro se ARG1 for igual,"
+#~ msgstr "Operadores aritméticos binários retornam verdadeiro se ARG1 for igual,"
 
-#~ msgid ""
-#~ "less-than, less-than-or-equal, greater-than, or greater-than-or-equal"
+#~ msgid "less-than, less-than-or-equal, greater-than, or greater-than-or-equal"
 #~ msgstr "diferente, menor, menor ou igual, maior, ou maior ou igual do que"
 
 #~ msgid "than ARG2."
@@ -7835,60 +7312,46 @@ msgstr ""
 #~ msgstr "argumento deve ser o literal `]', para fechar o `[' de abertura."
 
 #~ msgid "Print the accumulated user and system times for processes run from"
-#~ msgstr ""
-#~ "Exibe os tempos acumulados do usuário e do sistema para os processos"
+#~ msgstr "Exibe os tempos acumulados do usuário e do sistema para os processos"
 
 #~ msgid "the shell."
 #~ msgstr "executados por esta shell."
 
 #~ msgid "The command ARG is to be read and executed when the shell receives"
-#~ msgstr ""
-#~ "O comando em ARG é para ser lido e executado quando a shell receber o(s)"
+#~ msgstr "O comando em ARG é para ser lido e executado quando a shell receber o(s)"
 
 #~ msgid "signal(s) SIGNAL_SPEC.  If ARG is absent all specified signals are"
-#~ msgstr ""
-#~ "sinal(is) SINAL-ESPEC.  Se ARG for omitido, todos os sinais especificados"
+#~ msgstr "sinal(is) SINAL-ESPEC.  Se ARG for omitido, todos os sinais especificados"
 
 #~ msgid "reset to their original values.  If ARG is the null string each"
-#~ msgstr ""
-#~ "retornam aos seus valores originais.  Se ARG for uma string nula, cada"
+#~ msgstr "retornam aos seus valores originais.  Se ARG for uma string nula, cada"
 
 #~ msgid "SIGNAL_SPEC is ignored by the shell and by the commands it invokes."
-#~ msgstr ""
-#~ "SINAL-ESPEC é ignorado pela shell e pelos comandos chamados por ela."
+#~ msgstr "SINAL-ESPEC é ignorado pela shell e pelos comandos chamados por ela."
 
 #~ msgid "If SIGNAL_SPEC is EXIT (0) the command ARG is executed on exit from"
-#~ msgstr ""
-#~ "Se SINAL-ESPEC for EXIT (0) o comando em ARG é executado na saída da"
+#~ msgstr "Se SINAL-ESPEC for EXIT (0) o comando em ARG é executado na saída da"
 
 #~ msgid "the shell.  If SIGNAL_SPEC is DEBUG, ARG is executed after every"
-#~ msgstr ""
-#~ "shell.  Se SINAL-ESPEC for DEBUG, o comando em ARG é executado após cada"
+#~ msgstr "shell.  Se SINAL-ESPEC for DEBUG, o comando em ARG é executado após cada"
 
 #~ msgid "command.  If ARG is `-p' then the trap commands associated with"
-#~ msgstr ""
-#~ "comando.  Se ARG for `-p' então os comandos de captura associados com cada"
+#~ msgstr "comando.  Se ARG for `-p' então os comandos de captura associados com cada"
 
 #~ msgid "each SIGNAL_SPEC are displayed.  If no arguments are supplied or if"
 #~ msgstr "SINAL-ESPEC são exibidos.  Se nenhum argumento for fornecido, ou se"
 
 #~ msgid "only `-p' is given, trap prints the list of commands associated with"
-#~ msgstr ""
-#~ "somente `-p' for fornecido, é exibida a lista dos comandos associados"
+#~ msgstr "somente `-p' for fornecido, é exibida a lista dos comandos associados"
 
-#~ msgid ""
-#~ "each signal number.  SIGNAL_SPEC is either a signal name in <signal.h>"
-#~ msgstr ""
-#~ "com cada número de sinal.  SINAL-ESPEC é um nome de sinal em <signal.h> ou"
+#~ msgid "each signal number.  SIGNAL_SPEC is either a signal name in <signal.h>"
+#~ msgstr "com cada número de sinal.  SINAL-ESPEC é um nome de sinal em <signal.h> ou"
 
-#~ msgid ""
-#~ "or a signal number.  `trap -l' prints a list of signal names and their"
-#~ msgstr ""
-#~ "um número de sinal.  `trap -l' exibe a lista de nomes de sinais com seus"
+#~ msgid "or a signal number.  `trap -l' prints a list of signal names and their"
+#~ msgstr "um número de sinal.  `trap -l' exibe a lista de nomes de sinais com seus"
 
 #~ msgid "corresponding numbers.  Note that a signal can be sent to the shell"
-#~ msgstr ""
-#~ "números correspondentes.  Note que o sinal pode ser enviado para a shell"
+#~ msgstr "números correspondentes.  Note que o sinal pode ser enviado para a shell"
 
 #~ msgid "with \"kill -signal $$\"."
 #~ msgstr "através do comando \"kill -SINAL $$\"."
@@ -7897,19 +7360,13 @@ msgstr ""
 #~ msgstr "Para cada NOME, indica como este deve ser interpretado caso seja"
 
 #~ msgid "If the -t option is used, returns a single word which is one of"
-#~ msgstr ""
-#~ "Se a opção -t for fornecida, `type' retorna uma única palavra dentre"
+#~ msgstr "Se a opção -t for fornecida, `type' retorna uma única palavra dentre"
 
-#~ msgid ""
-#~ "`alias', `keyword', `function', `builtin', `file' or `', if NAME is an"
-#~ msgstr ""
-#~ "`alias', `keyword', `function', `builtin', `file' ou `', se NOME for um"
+#~ msgid "`alias', `keyword', `function', `builtin', `file' or `', if NAME is an"
+#~ msgstr "`alias', `keyword', `function', `builtin', `file' ou `', se NOME for um"
 
-#~ msgid ""
-#~ "alias, shell reserved word, shell function, shell builtin, disk file,"
-#~ msgstr ""
-#~ "alias, uma palavra reservada, função ou comando interno da shell, um "
-#~ "arquivo"
+#~ msgid "alias, shell reserved word, shell function, shell builtin, disk file,"
+#~ msgstr "alias, uma palavra reservada, função ou comando interno da shell, um arquivo"
 
 #~ msgid "or unfound, respectively."
 #~ msgstr "em disco, ou não for encontrado, respectivamente."
@@ -7923,10 +7380,8 @@ msgstr ""
 #~ msgid "If the -a flag is used, displays all of the places that contain an"
 #~ msgstr "Se a opção -a for fornecida, exibe todos os locais que contém um"
 
-#~ msgid ""
-#~ "executable named `file'.  This includes aliases and functions, if and"
-#~ msgstr ""
-#~ "arquivo executável chamado `ARQUIVO', incluindo os aliases e funções,"
+#~ msgid "executable named `file'.  This includes aliases and functions, if and"
+#~ msgstr "arquivo executável chamado `ARQUIVO', incluindo os aliases e funções,"
 
 #~ msgid "only if the -p flag is not also used."
 #~ msgstr "mas somente se a opção -p não for fornecida conjuntamente."
@@ -7938,12 +7393,10 @@ msgstr ""
 #~ msgstr "-a, -p, and -t, respectivamente."
 
 #~ msgid "Ulimit provides control over the resources available to processes"
-#~ msgstr ""
-#~ "Ulimit estabelece controle sobre os recursos disponíveis para os processos"
+#~ msgstr "Ulimit estabelece controle sobre os recursos disponíveis para os processos"
 
 #~ msgid "started by the shell, on systems that allow such control.  If an"
-#~ msgstr ""
-#~ "iniciados por esta shell, em sistemas que permitem estes controles. Se uma"
+#~ msgstr "iniciados por esta shell, em sistemas que permitem estes controles. Se uma"
 
 #~ msgid "option is given, it is interpreted as follows:"
 #~ msgstr "opção for fornecida, é interpretada como mostrado a seguir:"
@@ -7958,15 +7411,13 @@ msgstr ""
 #~ msgstr "    -a\ttodos os limites correntes são informados"
 
 #~ msgid "    -c\tthe maximum size of core files created"
-#~ msgstr ""
-#~ "    -c\to tamanho máximo para os arquivos de imagem do núcleo criados"
+#~ msgstr "    -c\to tamanho máximo para os arquivos de imagem do núcleo criados"
 
 #~ msgid "    -d\tthe maximum size of a process's data segment"
 #~ msgstr "    -d\to tamanho máximo do segmento de dados de um processo"
 
 #~ msgid "    -m\tthe maximum resident set size"
-#~ msgstr ""
-#~ "    -m\to tamanho máximo do conjunto de processos residentes em memória"
+#~ msgstr "    -m\to tamanho máximo do conjunto de processos residentes em memória"
 
 #~ msgid "    -s\tthe maximum stack size"
 #~ msgstr "    -s\to tamanho máximo da pilha"
@@ -7990,15 +7441,13 @@ msgstr ""
 #~ msgstr "    -v\to tamanho da memória virtual"
 
 #~ msgid "If LIMIT is given, it is the new value of the specified resource."
-#~ msgstr ""
-#~ "Se LIMITE for fornecido, torna-se o novo valor do recurso especificado."
+#~ msgstr "Se LIMITE for fornecido, torna-se o novo valor do recurso especificado."
 
 #~ msgid "Otherwise, the current value of the specified resource is printed."
 #~ msgstr "Senão, o valor atual do recurso especificado é exibido."
 
 #~ msgid "If no option is given, then -f is assumed.  Values are in 1k"
-#~ msgstr ""
-#~ "Se nenhuma opção for fornecida, então -f é assumido. Os valores são em"
+#~ msgstr "Se nenhuma opção for fornecida, então -f é assumido. Os valores são em"
 
 #~ msgid "increments, except for -t, which is in seconds, -p, which is in"
 #~ msgstr "incrementos de 1k, exceto para -t, que é em segundos, -p, que é em"
@@ -8009,101 +7458,77 @@ msgstr ""
 #~ msgid "processes."
 #~ msgstr "processos."
 
-#~ msgid ""
-#~ "The user file-creation mask is set to MODE.  If MODE is omitted, or if"
-#~ msgstr ""
-#~ "MODO é atribuído à máscara de criação de arquivos do usuário.  Se omitido,"
+#~ msgid "The user file-creation mask is set to MODE.  If MODE is omitted, or if"
+#~ msgstr "MODO é atribuído à máscara de criação de arquivos do usuário.  Se omitido,"
 
-#~ msgid ""
-#~ "`-S' is supplied, the current value of the mask is printed.  The `-S'"
-#~ msgstr ""
-#~ "ou se `-S' for especificado, a máscara em uso é exibida.  A opção `-S'"
+#~ msgid "`-S' is supplied, the current value of the mask is printed.  The `-S'"
+#~ msgstr "ou se `-S' for especificado, a máscara em uso é exibida.  A opção `-S'"
 
-#~ msgid ""
-#~ "option makes the output symbolic; otherwise an octal number is output."
+#~ msgid "option makes the output symbolic; otherwise an octal number is output."
 #~ msgstr "exibe símbolos na saída; sem esta opção um número octal é exibido."
 
 #~ msgid "If MODE begins with a digit, it is interpreted as an octal number,"
-#~ msgstr ""
-#~ "Se MODO começar por um dígito, é interpretado como sendo um número octal,"
+#~ msgstr "Se MODO começar por um dígito, é interpretado como sendo um número octal,"
 
-#~ msgid ""
-#~ "otherwise it is a symbolic mode string like that accepted by chmod(1)."
-#~ msgstr ""
-#~ "senão devem ser caracteres simbólicos, como os aceitos por chmod(1)."
+#~ msgid "otherwise it is a symbolic mode string like that accepted by chmod(1)."
+#~ msgstr "senão devem ser caracteres simbólicos, como os aceitos por chmod(1)."
 
-#~ msgid ""
-#~ "Wait for the specified process and report its termination status.  If"
-#~ msgstr ""
-#~ "Aguardar pelo processo especificado e informar seu status de término. Se N"
+#~ msgid "Wait for the specified process and report its termination status.  If"
+#~ msgstr "Aguardar pelo processo especificado e informar seu status de término. Se N"
 
 #~ msgid "N is not given, all currently active child processes are waited for,"
-#~ msgstr ""
-#~ "não for especificado, todos os processos filhos ativos são aguardados,"
+#~ msgstr "não for especificado, todos os processos filhos ativos são aguardados,"
 
 #~ msgid "and the return code is zero.  N may be a process ID or a job"
 #~ msgstr "e o código de retorno é zero.  N pode ser o ID de um processo ou a"
 
 #~ msgid "specification; if a job spec is given, all processes in the job's"
-#~ msgstr ""
-#~ "especificação de um trabalho; Se for a especificação de um trabalho, todos"
+#~ msgstr "especificação de um trabalho; Se for a especificação de um trabalho, todos"
 
 #~ msgid "pipeline are waited for."
 #~ msgstr "os processos presentes no `pipeline' do trabalho são aguardados."
 
 #~ msgid "and the return code is zero.  N is a process ID; if it is not given,"
-#~ msgstr ""
-#~ "e o código de retorno é zero.  N é o ID de um processo; se N não for"
+#~ msgstr "e o código de retorno é zero.  N é o ID de um processo; se N não for"
 
 #~ msgid "all child processes of the shell are waited for."
 #~ msgstr "especificado, todos os processos filhos da shell são aguardados."
 
 #~ msgid "The `for' loop executes a sequence of commands for each member in a"
-#~ msgstr ""
-#~ "O laço `for' executa a seqüência de comandos para cada membro na lista de"
+#~ msgstr "O laço `for' executa a seqüência de comandos para cada membro na lista de"
 
-#~ msgid ""
-#~ "list of items.  If `in WORDS ...;' is not present, then `in \"$@\"' is"
-#~ msgstr ""
-#~ "items.  Se `in PALAVRAS ...;' não estiver presente, então `in \"$@\"'"
+#~ msgid "list of items.  If `in WORDS ...;' is not present, then `in \"$@\"' is"
+#~ msgstr "items.  Se `in PALAVRAS ...;' não estiver presente, então `in \"$@\"'"
 
-#~ msgid ""
-#~ "assumed.  For each element in WORDS, NAME is set to that element, and"
-#~ msgstr ""
-#~ "(parâmetros posicionais) é assumido. Para cada elemento em PALAVRAS, NOME"
+#~ msgid "assumed.  For each element in WORDS, NAME is set to that element, and"
+#~ msgstr "(parâmetros posicionais) é assumido. Para cada elemento em PALAVRAS, NOME"
 
 #~ msgid "the COMMANDS are executed."
 #~ msgstr "assume seu valor, e os COMANDOS são executados."
 
 #~ msgid "The WORDS are expanded, generating a list of words.  The"
-#~ msgstr ""
-#~ "As palavras são expandidas, gerando uma lista de palavras. O conjunto"
+#~ msgstr "As palavras são expandidas, gerando uma lista de palavras. O conjunto"
 
 #~ msgid "set of expanded words is printed on the standard error, each"
-#~ msgstr ""
-#~ "de palavras expandidas é enviado para a saída de erro padrão, cada uma"
+#~ msgstr "de palavras expandidas é enviado para a saída de erro padrão, cada uma"
 
 #~ msgid "preceded by a number.  If `in WORDS' is not present, `in \"$@\"'"
-#~ msgstr ""
-#~ "precedida por um número.  Se `in PALAVRAS' for omitido, `in \"$@\"' é"
+#~ msgstr "precedida por um número.  Se `in PALAVRAS' for omitido, `in \"$@\"' é"
 
 #~ msgid "is assumed.  The PS3 prompt is then displayed and a line read"
 #~ msgstr "assumido.  Em seguida o prompt PS3 é exibido, e uma linha é lida da"
 
 #~ msgid "from the standard input.  If the line consists of the number"
-#~ msgstr ""
-#~ "entrada padrão.  Se a linha consistir do número correspondente ao número"
+#~ msgstr "entrada padrão.  Se a linha consistir do número correspondente ao número"
 
 #~ msgid "corresponding to one of the displayed words, then NAME is set"
 #~ msgstr "de uma das palavras exibidas, então NOME é atribuído para esta"
 
 #~ msgid "to that word.  If the line is empty, WORDS and the prompt are"
-#~ msgstr ""
-#~ "PALAVRA.  Se a linha estiver vazia, PALAVRAS e o prompt são exibidos"
+#~ msgstr "PALAVRA.  Se a linha estiver vazia, PALAVRAS e o prompt são exibidos"
 
 #~ msgid "redisplayed.  If EOF is read, the command completes.  Any other"
-#~ msgstr ""
-#~ "novamente.  Se EOF for lido, o comando termina.  Qualquer outro valor"
+#~ msgstr "novamente.  Se EOF for lido, o comando termina.  Qualquer outro valor"
 
 #~ msgid "value read causes NAME to be set to null.  The line read is saved"
 #~ msgstr "lido faz com que NOME seja tornado nulo.  A linha lida é salva"
@@ -8115,42 +7540,28 @@ msgstr ""
 #~ msgstr "até que o comando `break' ou `return' seja executado."
 
 #~ msgid "Selectively execute COMMANDS based upon WORD matching PATTERN.  The"
-#~ msgstr ""
-#~ "Executar seletivamente COMANDOS tomando por base a correspondência entre"
+#~ msgstr "Executar seletivamente COMANDOS tomando por base a correspondência entre"
 
 #~ msgid "`|' is used to separate multiple patterns."
-#~ msgstr ""
-#~ "PALAVRA e PADRÃO. O caracter `|' é usado para separar múltiplos padrões."
+#~ msgstr "PALAVRA e PADRÃO. O caracter `|' é usado para separar múltiplos padrões."
 
-#~ msgid ""
-#~ "The if COMMANDS are executed.  If the exit status is zero, then the then"
-#~ msgstr ""
-#~ "Os COMANDOS `if' são executados. Se os status de saída for zero, então os"
+#~ msgid "The if COMMANDS are executed.  If the exit status is zero, then the then"
+#~ msgstr "Os COMANDOS `if' são executados. Se os status de saída for zero, então os"
 
-#~ msgid ""
-#~ "COMMANDS are executed.  Otherwise, each of the elif COMMANDS are executed"
-#~ msgstr ""
-#~ "COMANDOS `then' são executados, senão, os COMANDOS `elif' são executados "
-#~ "em"
+#~ msgid "COMMANDS are executed.  Otherwise, each of the elif COMMANDS are executed"
+#~ msgstr "COMANDOS `then' são executados, senão, os COMANDOS `elif' são executados em"
 
-#~ msgid ""
-#~ "in turn, and if the exit status is zero, the corresponding then COMMANDS"
-#~ msgstr ""
-#~ "seqüência e, se o status de saída for zero, os COMANDOS `then' associados"
+#~ msgid "in turn, and if the exit status is zero, the corresponding then COMMANDS"
+#~ msgstr "seqüência e, se o status de saída for zero, os COMANDOS `then' associados"
 
-#~ msgid ""
-#~ "are executed and the if command completes.  Otherwise, the else COMMANDS"
-#~ msgstr ""
-#~ "são executados e o `if' termina.  Senão, os COMANDOS da cláusula `else'"
+#~ msgid "are executed and the if command completes.  Otherwise, the else COMMANDS"
+#~ msgstr "são executados e o `if' termina.  Senão, os COMANDOS da cláusula `else'"
 
-#~ msgid ""
-#~ "are executed, if present.  The exit status is the exit status of the last"
-#~ msgstr ""
-#~ "são executados, se houver.  O status de saída é o status de saída do"
+#~ msgid "are executed, if present.  The exit status is the exit status of the last"
+#~ msgstr "são executados, se houver.  O status de saída é o status de saída do"
 
 #~ msgid "command executed, or zero if no condition tested true."
-#~ msgstr ""
-#~ "último comando executado, ou zero, se nenhuma condição for verdadeira."
+#~ msgstr "último comando executado, ou zero, se nenhuma condição for verdadeira."
 
 #~ msgid "Expand and execute COMMANDS as long as the final command in the"
 #~ msgstr "Expande e executa COMANDOS enquanto o comando final nos"
@@ -8177,22 +7588,16 @@ msgstr ""
 #~ msgstr "redirecionar todo um conjunto de comandos."
 
 #~ msgid "This is similar to the `fg' command.  Resume a stopped or background"
-#~ msgstr ""
-#~ "Semelhante ao comando `fg'. Prossegue a execução de um trabalho parado ou"
+#~ msgstr "Semelhante ao comando `fg'. Prossegue a execução de um trabalho parado ou"
 
 #~ msgid "job.  If you specifiy DIGITS, then that job is used.  If you specify"
-#~ msgstr ""
-#~ "em segundo plano. Se DÍGITOS for especificado, então este trabalho é "
-#~ "usado."
+#~ msgstr "em segundo plano. Se DÍGITOS for especificado, então este trabalho é usado."
 
-#~ msgid ""
-#~ "WORD, then the job whose name begins with WORD is used.  Following the"
-#~ msgstr ""
-#~ "Se for especificado PALAVRA, o trabalho começado por PALAVRA é usado."
+#~ msgid "WORD, then the job whose name begins with WORD is used.  Following the"
+#~ msgstr "Se for especificado PALAVRA, o trabalho começado por PALAVRA é usado."
 
 #~ msgid "job specification with a `&' places the job in the background."
-#~ msgstr ""
-#~ "Seguindo-se a especificação por um `&' põe o trabalho em segundo plano."
+#~ msgstr "Seguindo-se a especificação por um `&' põe o trabalho em segundo plano."
 
 #~ msgid "BASH_VERSION    The version numbers of this Bash."
 #~ msgstr "BASH_VERSION    Os números da versão desta `bash'."
@@ -8206,15 +7611,11 @@ msgstr ""
 #~ msgid "\t\tdirectory."
 #~ msgstr "\t\tencontrado no diretório atual."
 
-#~ msgid ""
-#~ "HISTFILE        The name of the file where your command history is stored."
-#~ msgstr ""
-#~ "HISTFILE        O nome do arquivo onde o histórico de comandos é "
-#~ "armazenado."
+#~ msgid "HISTFILE        The name of the file where your command history is stored."
+#~ msgstr "HISTFILE        O nome do arquivo onde o histórico de comandos é armazenado."
 
 #~ msgid "HISTFILESIZE    The maximum number of lines this file can contain."
-#~ msgstr ""
-#~ "HISTFILESIZE    O número máximo de linhas que este arquivo pode conter."
+#~ msgstr "HISTFILESIZE    O número máximo de linhas que este arquivo pode conter."
 
 #~ msgid "HISTSIZE        The maximum number of history lines that a running"
 #~ msgstr "HISTSIZE        O número máximo de linhas do histórico que uma"
@@ -8223,16 +7624,12 @@ msgstr ""
 #~ msgstr "\t\tshell em execução pode acessar."
 
 #~ msgid "HOME            The complete pathname to your login directory."
-#~ msgstr ""
-#~ "HOME            O nome completo do caminho do seu diretório de login."
+#~ msgstr "HOME            O nome completo do caminho do seu diretório de login."
 
-#~ msgid ""
-#~ "HOSTTYPE        The type of CPU this version of Bash is running under."
-#~ msgstr ""
-#~ "HOSTTYPE        O tipo de CPU sob a qual esta `bash' está executando."
+#~ msgid "HOSTTYPE        The type of CPU this version of Bash is running under."
+#~ msgstr "HOSTTYPE        O tipo de CPU sob a qual esta `bash' está executando."
 
-#~ msgid ""
-#~ "IGNOREEOF       Controls the action of the shell on receipt of an EOF"
+#~ msgid "IGNOREEOF       Controls the action of the shell on receipt of an EOF"
 #~ msgstr "IGNOREEOF       Controla a ação da shell ao receber um caracter"
 
 #~ msgid "\t\tcharacter as the sole input.  If set, then the value"
@@ -8245,16 +7642,13 @@ msgstr ""
 #~ msgstr "\t\tde forma seguida em uma linha vazia, antes da shell terminar"
 
 #~ msgid "\t\t(default 10).  When unset, EOF signifies the end of input."
-#~ msgstr ""
-#~ "\t\t(padrão 10).  Caso contrário, EOF significa o fim da entrada de dados."
+#~ msgstr "\t\t(padrão 10).  Caso contrário, EOF significa o fim da entrada de dados."
 
 #~ msgid "MAILCHECK\tHow often, in seconds, Bash checks for new mail."
-#~ msgstr ""
-#~ "MAILCHECK\tFreqüência, em segundos, para a `bash' verificar novo e-mail."
+#~ msgstr "MAILCHECK\tFreqüência, em segundos, para a `bash' verificar novo e-mail."
 
 #~ msgid "MAILPATH\tA colon-separated list of filenames which Bash checks"
-#~ msgstr ""
-#~ "MAILPATH\tUma lista, separada por dois pontos, de nomes de arquivos,"
+#~ msgstr "MAILPATH\tUma lista, separada por dois pontos, de nomes de arquivos,"
 
 #~ msgid "\t\tfor new mail."
 #~ msgstr "\t\tnos quais a `bash' vai verificar se existe novo e-mail."
@@ -8263,8 +7657,7 @@ msgstr ""
 #~ msgstr "OSTYPE\t\tA versão do Unix sob a qual a `bash' está executando."
 
 #~ msgid "PATH            A colon-separated list of directories to search when"
-#~ msgstr ""
-#~ "PATH            Uma lista, separada por dois pontos, de diretórios a"
+#~ msgstr "PATH            Uma lista, separada por dois pontos, de diretórios a"
 
 #~ msgid "\t\tlooking for commands."
 #~ msgstr "\t\tserem pesquisados quando os comandos forem procurados."
@@ -8285,20 +7678,16 @@ msgstr ""
 #~ msgstr "TERM            O nome do tipo de terminal em uso no momento."
 
 #~ msgid "auto_resume     Non-null means a command word appearing on a line by"
-#~ msgstr ""
-#~ "auto_resume     Não nulo significa que um comando aparecendo sozinho em"
+#~ msgstr "auto_resume     Não nulo significa que um comando aparecendo sozinho em"
 
 #~ msgid "\t\titself is first looked for in the list of currently"
-#~ msgstr ""
-#~ "\t\tlinha deve ser procurado primeiro na lista de trabalhos parados."
+#~ msgstr "\t\tlinha deve ser procurado primeiro na lista de trabalhos parados."
 
 #~ msgid "\t\tstopped jobs.  If found there, that job is foregrounded."
-#~ msgstr ""
-#~ "\t\tSe for encontrado na lista, o trabalho vai para o primeiro plano."
+#~ msgstr "\t\tSe for encontrado na lista, o trabalho vai para o primeiro plano."
 
 #~ msgid "\t\tA value of `exact' means that the command word must"
-#~ msgstr ""
-#~ "\t\tO valor `exact' significa que a palavra do comando deve corresponder"
+#~ msgstr "\t\tO valor `exact' significa que a palavra do comando deve corresponder"
 
 #~ msgid "\t\texactly match a command in the list of stopped jobs.  A"
 #~ msgstr "\t\texatamente a um comando da lista de trabalhos parados."
@@ -8310,23 +7699,19 @@ msgstr ""
 #~ msgstr "\t\tcorresponder a uma parte do trabalho.  Qualquer outro valor"
 
 #~ msgid "\t\tthe command must be a prefix of a stopped job."
-#~ msgstr ""
-#~ "\t\tsignifica que o comando deve ser um prefixo de um trabalho parado."
+#~ msgstr "\t\tsignifica que o comando deve ser um prefixo de um trabalho parado."
 
 #~ msgid "command_oriented_history"
 #~ msgstr "command_oriented_history"
 
-#~ msgid ""
-#~ "                Non-null means to save multiple-line commands together on"
-#~ msgstr ""
-#~ "                Se não for nulo significa salvar comandos com múltiplas"
+#~ msgid "                Non-null means to save multiple-line commands together on"
+#~ msgstr "                Se não for nulo significa salvar comandos com múltiplas"
 
 #~ msgid "                a single history line."
 #~ msgstr "                linhas, juntas em uma única linha do histórico."
 
 #~ msgid "histchars       Characters controlling history expansion and quick"
-#~ msgstr ""
-#~ "histchars       Caracteres que controlam a expansão do histórico e a"
+#~ msgstr "histchars       Caracteres que controlam a expansão do histórico e a"
 
 #~ msgid "\t\tsubstitution.  The first character is the history"
 #~ msgstr "\t\tsubstituição rápida.  O primeiro caracter é o de substituição"
@@ -8341,12 +7726,10 @@ msgstr ""
 #~ msgstr "\t\té o de comentário do histórico, geralmente o `#'."
 
 #~ msgid "HISTCONTROL\tSet to a value of `ignorespace', it means don't enter"
-#~ msgstr ""
-#~ "HISTCONTROL\tCom valor igual a `ignorespace', significa não introduzir"
+#~ msgstr "HISTCONTROL\tCom valor igual a `ignorespace', significa não introduzir"
 
 #~ msgid "\t\tlines which begin with a space or tab on the history"
-#~ msgstr ""
-#~ "\t\tlinhas que iniciam por espaço ou tabulação na lista de histórico."
+#~ msgstr "\t\tlinhas que iniciam por espaço ou tabulação na lista de histórico."
 
 #~ msgid "\t\tlist.  Set to a value of `ignoredups', it means don't"
 #~ msgstr "\t\tCom valor igual a `ignoredups', significa não introduzir linhas"
@@ -8358,8 +7741,7 @@ msgstr ""
 #~ msgstr "\t\t`ignoreboth' significa combinar as duas opções.  Remover,"
 
 #~ msgid "\t\tor set to any other value than those above means to save"
-#~ msgstr ""
-#~ "\t\tou atribuir algum outro valor que não os acima, significa salvar"
+#~ msgstr "\t\tou atribuir algum outro valor que não os acima, significa salvar"
 
 #~ msgid "\t\tall lines on the history list."
 #~ msgstr "\t\ttodas as linhas na lista de histórico."
@@ -8368,22 +7750,19 @@ msgstr ""
 #~ msgstr "Adiciona o diretório no topo da pilha de diretórios, ou rotaciona a"
 
 #~ msgid "the stack, making the new top of the stack the current working"
-#~ msgstr ""
-#~ "pilha, fazendo o diretório atual de trabalho ficar no topo da pilha."
+#~ msgstr "pilha, fazendo o diretório atual de trabalho ficar no topo da pilha."
 
 #~ msgid "directory.  With no arguments, exchanges the top two directories."
 #~ msgstr "Sem nenhum argumento, troca os dois diretórios do topo."
 
 #~ msgid "+N\tRotates the stack so that the Nth directory (counting"
-#~ msgstr ""
-#~ "+N\tRotaciona a pilha de tal forma que o n-ésimo diretório (contado a"
+#~ msgstr "+N\tRotaciona a pilha de tal forma que o n-ésimo diretório (contado a"
 
 #~ msgid "\tfrom the left of the list shown by `dirs') is at the top."
 #~ msgstr "\tpartir da esquerda da lista exibida por `dirs') fique no topo."
 
 #~ msgid "-N\tRotates the stack so that the Nth directory (counting"
-#~ msgstr ""
-#~ "-N\tRotaciona a pilha de tal forma que o n-ésimo diretório (contado a"
+#~ msgstr "-N\tRotaciona a pilha de tal forma que o n-ésimo diretório (contado a"
 
 #~ msgid "\tfrom the right) is at the top."
 #~ msgstr "\tpartir da direita) fique no topo."
@@ -8424,8 +7803,7 @@ msgstr ""
 #~ msgid "\tremoves the last directory, `popd -1' the next to last."
 #~ msgstr "\tremove o último diretório, `popd -1' o penúltimo."
 
-#~ msgid ""
-#~ "-n\tsuppress the normal change of directory when removing directories"
+#~ msgid "-n\tsuppress the normal change of directory when removing directories"
 #~ msgstr "-n\tsuprime a troca normal de diretório ao remover-se diretórios"
 
 #~ msgid "\tfrom the stack, so only the stack is manipulated."
@@ -8440,57 +7818,44 @@ msgstr ""
 #~ msgid "back up through the list with the `popd' command."
 #~ msgstr "removidos da lista através do comando `popd'."
 
-#~ msgid ""
-#~ "The -l flag specifies that `dirs' should not print shorthand versions"
+#~ msgid "The -l flag specifies that `dirs' should not print shorthand versions"
 #~ msgstr "A opção -l especifica que `dirs' não deve exibir a versão resumida"
 
-#~ msgid ""
-#~ "of directories which are relative to your home directory.  This means"
-#~ msgstr ""
-#~ "dos diretórios relativos ao seu diretório `home'. Isto significa que"
+#~ msgid "of directories which are relative to your home directory.  This means"
+#~ msgstr "dos diretórios relativos ao seu diretório `home'. Isto significa que"
 
 #~ msgid "that `~/bin' might be displayed as `/homes/bfox/bin'.  The -v flag"
-#~ msgstr ""
-#~ "`~/bin' deve ser exibido como `/home/você/bin'.  A opção -v faz com que"
+#~ msgstr "`~/bin' deve ser exibido como `/home/você/bin'.  A opção -v faz com que"
 
 #~ msgid "causes `dirs' to print the directory stack with one entry per line,"
 #~ msgstr "`dirs' exiba a pilha de diretórios com uma entrada por linha,"
 
-#~ msgid ""
-#~ "prepending the directory name with its position in the stack.  The -p"
+#~ msgid "prepending the directory name with its position in the stack.  The -p"
 #~ msgstr "antecedendo o nome do diretório com a sua posição na pilha. A opção"
 
 #~ msgid "flag does the same thing, but the stack position is not prepended."
 #~ msgstr "-p faz a mesma coisa, mas a posição na pilha não é exibida. A opção"
 
-#~ msgid ""
-#~ "The -c flag clears the directory stack by deleting all of the elements."
+#~ msgid "The -c flag clears the directory stack by deleting all of the elements."
 #~ msgstr "-c limpa a pilha de diretórios apagando todos os seus elementos."
 
-#~ msgid ""
-#~ "+N\tdisplays the Nth entry counting from the left of the list shown by"
-#~ msgstr ""
-#~ "+N\texibe a n-ésima entrada contada a partir da esquerda da lista exibida"
+#~ msgid "+N\tdisplays the Nth entry counting from the left of the list shown by"
+#~ msgstr "+N\texibe a n-ésima entrada contada a partir da esquerda da lista exibida"
 
 #~ msgid "\tdirs when invoked without options, starting with zero."
 #~ msgstr "\tpor `dirs', quando este é chamado sem opções, começando por zero."
 
-#~ msgid ""
-#~ "-N\tdisplays the Nth entry counting from the right of the list shown by"
-#~ msgstr ""
-#~ "-N\texibe a n-ésima entrada contada a partir da direita da lista exibida"
+#~ msgid "-N\tdisplays the Nth entry counting from the right of the list shown by"
+#~ msgstr "-N\texibe a n-ésima entrada contada a partir da direita da lista exibida"
 
 #~ msgid "Toggle the values of variables controlling optional behavior."
-#~ msgstr ""
-#~ "Alterna os valores das variáveis controladoras de comportamentos "
-#~ "opcionais."
+#~ msgstr "Alterna os valores das variáveis controladoras de comportamentos opcionais."
 
 #~ msgid "The -s flag means to enable (set) each OPTNAME; the -u flag"
 #~ msgstr "A opção -s ativa (set) cada NOME-OPÇÃO; a opção -u desativa cada"
 
 #~ msgid "unsets each OPTNAME.  The -q flag suppresses output; the exit"
-#~ msgstr ""
-#~ "NOME-OPÇÃO. A opção -q suprime a saída; o status de término indica se"
+#~ msgstr "NOME-OPÇÃO. A opção -q suprime a saída; o status de término indica se"
 
 #~ msgid "status indicates whether each OPTNAME is set or unset.  The -o"
 #~ msgstr "cada NOME-OPÇÃO foi ativado ou desativado  A opção -o restringe"
@@ -8502,8 +7867,7 @@ msgstr ""
 #~ msgstr "Sem nenhuma opção, ou com a opção -p, uma lista com todas as"
 
 #~ msgid "settable options is displayed, with an indication of whether or"
-#~ msgstr ""
-#~ "opções que podem ser ativadas é exibida, com indicação sobre se cada uma"
+#~ msgstr "opções que podem ser ativadas é exibida, com indicação sobre se cada uma"
 
 #~ msgid "not each is set."
 #~ msgstr "das opções está ativa ou não."
index e07ed021cd19185fe58b1d8981ca6164d12d0678..d8a68edbb06f57b76c385602cb87698f3c2d26c3 100644 (file)
--- a/po/ru.po
+++ b/po/ru.po
@@ -8,133 +8,131 @@ msgid ""
 msgstr ""
 "Project-Id-Version: bash 4.4\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2018-04-27 14:15-0400\n"
+"POT-Creation-Date: 2016-09-10 12:42-0400\n"
 "PO-Revision-Date: 2018-04-17 14:09+0300\n"
 "Last-Translator: Pavel Maryanov <acid@jack.kiev.ua>\n"
 "Language-Team: Russian <gnu@d07.ru>\n"
+"Language: ru\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"Language: ru\n"
 "X-Bugs: Report translation errors to the Language-Team address.\n"
-"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%"
-"10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
+"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
 "X-Generator: Poedit 2.0.6\n"
 
-#: arrayfunc.c:58
+#: arrayfunc.c:54
 msgid "bad array subscript"
 msgstr "неправильный индекс массива"
 
-#: arrayfunc.c:373 builtins/declare.def:618 variables.c:2188 variables.c:2214
-#: variables.c:2922
+#: arrayfunc.c:368 builtins/declare.def:574 variables.c:2092 variables.c:2118
+#: variables.c:2730
 #, c-format
 msgid "%s: removing nameref attribute"
 msgstr "%s: удаляется атрибут nameref"
 
-#: arrayfunc.c:398 builtins/declare.def:831
+#: arrayfunc.c:393 builtins/declare.def:780
 #, c-format
 msgid "%s: cannot convert indexed to associative array"
 msgstr "%s: не удаётся преобразовать индекс в ассоциативный массив"
 
-#: arrayfunc.c:582
+#: arrayfunc.c:578
 #, c-format
 msgid "%s: invalid associative array key"
 msgstr "%s: недопустимый ключ ассоциативного массива"
 
-#: arrayfunc.c:584
+#: arrayfunc.c:580
 #, c-format
 msgid "%s: cannot assign to non-numeric index"
 msgstr "%s: не удаётся присвоить значение нечисловому индексу"
 
-#: arrayfunc.c:629
+#: arrayfunc.c:625
 #, c-format
 msgid "%s: %s: must use subscript when assigning associative array"
-msgstr ""
-"%s: %s: необходимо использовать индекс при назначении ассоциативному массиву"
+msgstr "%s: %s: необходимо использовать индекс при назначении ассоциативному массиву"
 
-#: bashhist.c:436
+#: bashhist.c:421
 #, c-format
 msgid "%s: cannot create: %s"
 msgstr "%s: не удаётся создать файл: %s"
 
-#: bashline.c:4111
+#: bashline.c:4091
 msgid "bash_execute_unix_command: cannot find keymap for command"
 msgstr "bash_execute_unix_command: не удаётся найти keymap для команды"
 
-#: bashline.c:4221
+#: bashline.c:4189
 #, c-format
 msgid "%s: first non-whitespace character is not `\"'"
 msgstr "%s: первый непробельный символ не является «\"»"
 
-#: bashline.c:4250
+#: bashline.c:4218
 #, c-format
 msgid "no closing `%c' in %s"
 msgstr "нет закрывающего «%c» в %s"
 
-#: bashline.c:4284
+#: bashline.c:4252
 #, c-format
 msgid "%s: missing colon separator"
 msgstr "%s: отсутствует разделитель-двоеточие"
 
-#: braces.c:331
+#: braces.c:329
 #, c-format
 msgid "brace expansion: cannot allocate memory for %s"
 msgstr "расширение скобки: не удаётся выделить память для %s"
 
-#: braces.c:429
-#, fuzzy, c-format
-msgid "brace expansion: failed to allocate memory for %u elements"
+#: braces.c:427
+#, c-format
+msgid "brace expansion: failed to allocate memory for %d elements"
 msgstr "расширение скобки: не удаётся выделить память для %d элементов"
 
-#: braces.c:473
+#: braces.c:471
 #, c-format
 msgid "brace expansion: failed to allocate memory for `%s'"
 msgstr "расширение скобки: не удалось выделить память для «%s»"
 
-#: builtins/alias.def:131
+#: builtins/alias.def:133
 #, c-format
 msgid "`%s': invalid alias name"
 msgstr "«%s»: недопустимый псевдоним"
 
-#: builtins/bind.def:122 builtins/bind.def:125
+#: builtins/bind.def:123 builtins/bind.def:126
 msgid "line editing not enabled"
 msgstr "редактирование строки не включено"
 
-#: builtins/bind.def:212
+#: builtins/bind.def:213
 #, c-format
 msgid "`%s': invalid keymap name"
 msgstr "«%s»: недопустимое название keymap"
 
-#: builtins/bind.def:252
+#: builtins/bind.def:253
 #, c-format
 msgid "%s: cannot read: %s"
 msgstr "%s: не удаётся прочитать файл: %s"
 
-#: builtins/bind.def:304 builtins/bind.def:334
+#: builtins/bind.def:270
+#, c-format
+msgid "`%s': cannot unbind"
+msgstr "«%s»: не удаётся отменить привязку"
+
+#: builtins/bind.def:308 builtins/bind.def:338
 #, c-format
 msgid "`%s': unknown function name"
 msgstr "«%s»: неизвестное название функции"
 
-#: builtins/bind.def:312
+#: builtins/bind.def:316
 #, c-format
 msgid "%s is not bound to any keys.\n"
 msgstr "%s не привязан ни к какой клавише.\n"
 
-#: builtins/bind.def:316
+#: builtins/bind.def:320
 #, c-format
 msgid "%s can be invoked via "
 msgstr "%s можно вызвать через "
 
-#: builtins/bind.def:353 builtins/bind.def:368
-#, c-format
-msgid "`%s': cannot unbind"
-msgstr "«%s»: не удаётся отменить привязку"
-
-#: builtins/break.def:77 builtins/break.def:119
+#: builtins/break.def:79 builtins/break.def:121
 msgid "loop count"
 msgstr "счётчик циклов"
 
-#: builtins/break.def:139
+#: builtins/break.def:141
 msgid "only meaningful in a `for', `while', or `until' loop"
 msgstr "имеет значение только для циклов «for», «while» или «until»"
 
@@ -148,162 +146,162 @@ msgstr ""
 "    \n"
 "    Без EXPR выполняет возврат "
 
-#: builtins/cd.def:319
+#: builtins/cd.def:321
 msgid "HOME not set"
 msgstr "Не задана переменная HOME"
 
-#: builtins/cd.def:327 builtins/common.c:161 test.c:889
+#: builtins/cd.def:329 builtins/common.c:167 test.c:885
 msgid "too many arguments"
 msgstr "слишком много аргументов"
 
-#: builtins/cd.def:334
+#: builtins/cd.def:336
 msgid "null directory"
 msgstr "нулевой каталог"
 
-#: builtins/cd.def:345
+#: builtins/cd.def:347
 msgid "OLDPWD not set"
 msgstr "Не задана переменная OLDPWD"
 
-#: builtins/common.c:96
+#: builtins/common.c:102
 #, c-format
 msgid "line %d: "
 msgstr "строка %d: "
 
-#: builtins/common.c:134 error.c:264
+#: builtins/common.c:140 error.c:265
 #, c-format
 msgid "warning: "
 msgstr "предупреждение: "
 
-#: builtins/common.c:148
+#: builtins/common.c:154
 #, c-format
 msgid "%s: usage: "
 msgstr "%s: использование: "
 
-#: builtins/common.c:193 shell.c:510 shell.c:838
+#: builtins/common.c:199 shell.c:514 shell.c:825
 #, c-format
 msgid "%s: option requires an argument"
 msgstr "%s: для параметра требуется аргумент"
 
-#: builtins/common.c:200
+#: builtins/common.c:206
 #, c-format
 msgid "%s: numeric argument required"
 msgstr "%s: требуется числовой аргумент"
 
-#: builtins/common.c:207
+#: builtins/common.c:213
 #, c-format
 msgid "%s: not found"
 msgstr "%s: не найден"
 
-#: builtins/common.c:216 shell.c:851
+#: builtins/common.c:222 shell.c:838
 #, c-format
 msgid "%s: invalid option"
 msgstr "%s: недопустимый параметр"
 
-#: builtins/common.c:223
+#: builtins/common.c:229
 #, c-format
 msgid "%s: invalid option name"
 msgstr "%s: недопустимое название параметра"
 
-#: builtins/common.c:230 execute_cmd.c:2342 general.c:294 general.c:299
+#: builtins/common.c:236 general.c:293 general.c:298
 #, c-format
 msgid "`%s': not a valid identifier"
 msgstr "«%s»: это недопустимый идентификатор"
 
-#: builtins/common.c:240
+#: builtins/common.c:246
 msgid "invalid octal number"
 msgstr "недопустимое восьмеричное число"
 
-#: builtins/common.c:242
+#: builtins/common.c:248
 msgid "invalid hex number"
 msgstr "недопустимое шестнадцатеричное число"
 
-#: builtins/common.c:244 expr.c:1538
+#: builtins/common.c:250 expr.c:1473
 msgid "invalid number"
 msgstr "недопустимое число"
 
-#: builtins/common.c:252
+#: builtins/common.c:258
 #, c-format
 msgid "%s: invalid signal specification"
 msgstr "%s: недопустимое указание сигнала"
 
-#: builtins/common.c:259
+#: builtins/common.c:265
 #, c-format
 msgid "`%s': not a pid or valid job spec"
 msgstr "«%s»: это не идентификатор процесса и не допустимый указатель задания"
 
-#: builtins/common.c:266 error.c:510
+#: builtins/common.c:272 error.c:511
 #, c-format
 msgid "%s: readonly variable"
 msgstr "%s: переменная только для чтения"
 
-#: builtins/common.c:274
+#: builtins/common.c:280
 #, c-format
 msgid "%s: %s out of range"
 msgstr "%s: %s за пределами диапазона"
 
-#: builtins/common.c:274 builtins/common.c:276
+#: builtins/common.c:280 builtins/common.c:282
 msgid "argument"
 msgstr "аргумент"
 
-#: builtins/common.c:276
+#: builtins/common.c:282
 #, c-format
 msgid "%s out of range"
 msgstr "%s за пределами диапазона"
 
-#: builtins/common.c:284
+#: builtins/common.c:290
 #, c-format
 msgid "%s: no such job"
 msgstr "%s: нет такого задания"
 
-#: builtins/common.c:292
+#: builtins/common.c:298
 #, c-format
 msgid "%s: no job control"
 msgstr "%s: нет управления заданиями"
 
-#: builtins/common.c:294
+#: builtins/common.c:300
 msgid "no job control"
 msgstr "нет управления заданиями"
 
-#: builtins/common.c:304
+#: builtins/common.c:310
 #, c-format
 msgid "%s: restricted"
 msgstr "%s: ограниченный режим"
 
-#: builtins/common.c:306
+#: builtins/common.c:312
 msgid "restricted"
 msgstr "ограниченный режим"
 
-#: builtins/common.c:314
+#: builtins/common.c:320
 #, c-format
 msgid "%s: not a shell builtin"
 msgstr "%s: это не не встроенная команда bash"
 
-#: builtins/common.c:323
+#: builtins/common.c:329
 #, c-format
 msgid "write error: %s"
 msgstr "ошибка записи: %s"
 
-#: builtins/common.c:331
+#: builtins/common.c:337
 #, c-format
 msgid "error setting terminal attributes: %s"
 msgstr "ошибка назначения атрибутов терминала: %s"
 
-#: builtins/common.c:333
+#: builtins/common.c:339
 #, c-format
 msgid "error getting terminal attributes: %s"
 msgstr "ошибка получения атрибутов терминала: %s"
 
-#: builtins/common.c:579
+#: builtins/common.c:585
 #, c-format
 msgid "%s: error retrieving current directory: %s: %s\n"
 msgstr "%s: ошибка определения текущего каталога: %s: %s\n"
 
-#: builtins/common.c:645 builtins/common.c:647
+#: builtins/common.c:651 builtins/common.c:653
 #, c-format
 msgid "%s: ambiguous job spec"
 msgstr "%s: неоднозначный указатель задания"
 
-#: builtins/common.c:908
+#: builtins/common.c:918
 msgid "help not available in this version"
 msgstr "справка отсутствует в этой версии"
 
@@ -312,69 +310,69 @@ msgstr "справка отсутствует в этой версии"
 msgid "%s: invalid action name"
 msgstr "%s: недопустимое название действия"
 
-#: builtins/complete.def:452 builtins/complete.def:653
-#: builtins/complete.def:874
+#: builtins/complete.def:452 builtins/complete.def:647
+#: builtins/complete.def:858
 #, c-format
 msgid "%s: no completion specification"
 msgstr "%s: нет определения завершения"
 
-#: builtins/complete.def:707
+#: builtins/complete.def:699
 msgid "warning: -F option may not work as you expect"
 msgstr "предупреждение: параметр -F может работать не так, как ожидается"
 
-#: builtins/complete.def:709
+#: builtins/complete.def:701
 msgid "warning: -C option may not work as you expect"
 msgstr "предупреждение: параметр -C может работать не так, как ожидается"
 
-#: builtins/complete.def:847
+#: builtins/complete.def:831
 msgid "not currently executing completion function"
 msgstr "сейчас не выполняет функцию завершения"
 
-#: builtins/declare.def:132
+#: builtins/declare.def:127
 msgid "can only be used in a function"
 msgstr "можно использовать только внутри функции"
 
-#: builtins/declare.def:369 builtins/declare.def:736
+#: builtins/declare.def:332 builtins/declare.def:685
 #, c-format
 msgid "%s: reference variable cannot be an array"
 msgstr "%s: ссылочная переменная не может быть массивом"
 
-#: builtins/declare.def:380 variables.c:3161
+#: builtins/declare.def:343 variables.c:2959
 #, c-format
 msgid "%s: nameref variable self references not allowed"
 msgstr "%s: переменные nameref, ссылающиеся сами на себя, не допускаются"
 
-#: builtins/declare.def:385 variables.c:2018 variables.c:3083 variables.c:3095
-#: variables.c:3158
+#: builtins/declare.def:348 variables.c:1928 variables.c:2877 variables.c:2889
+#: variables.c:2956
 #, c-format
 msgid "%s: circular name reference"
 msgstr "%s: круговая ссылка на имя"
 
-#: builtins/declare.def:390 builtins/declare.def:742 builtins/declare.def:753
+#: builtins/declare.def:353 builtins/declare.def:691 builtins/declare.def:702
 #, c-format
 msgid "`%s': invalid variable name for name reference"
 msgstr "«%s»: недопустимое название переменной для ссылки на имя"
 
-#: builtins/declare.def:500
+#: builtins/declare.def:463
 msgid "cannot use `-f' to make functions"
 msgstr "«-f» нельзя использовать для создания функций"
 
-#: builtins/declare.def:512 execute_cmd.c:5797
+#: builtins/declare.def:475 execute_cmd.c:5632
 #, c-format
 msgid "%s: readonly function"
 msgstr "%s: значение функции можно только считать"
 
-#: builtins/declare.def:804
+#: builtins/declare.def:753
 #, c-format
 msgid "%s: quoted compound array assignment deprecated"
 msgstr "%s: присвоение составного массива в кавычках устарело"
 
-#: builtins/declare.def:818
+#: builtins/declare.def:767
 #, c-format
 msgid "%s: cannot destroy array variables in this way"
 msgstr "%s: переменные массива нельзя уничтожить таким образом"
 
-#: builtins/declare.def:825 builtins/read.def:784
+#: builtins/declare.def:774 builtins/read.def:751
 #, c-format
 msgid "%s: cannot convert associative to indexed array"
 msgstr "%s: не удаётся преобразовать ассоциативный массив в индексированный"
@@ -408,68 +406,68 @@ msgstr "%s: не загружается динамически"
 msgid "%s: cannot delete: %s"
 msgstr "%s: не удаётся удалить: %s"
 
-#: builtins/evalfile.c:138 builtins/hash.def:184 execute_cmd.c:5629
+#: builtins/evalfile.c:144 builtins/hash.def:172 execute_cmd.c:5472
 #, c-format
 msgid "%s: is a directory"
 msgstr "%s: это каталог"
 
-#: builtins/evalfile.c:144
+#: builtins/evalfile.c:150
 #, c-format
 msgid "%s: not a regular file"
 msgstr "%s: это не обычный файл"
 
-#: builtins/evalfile.c:153
+#: builtins/evalfile.c:159
 #, c-format
 msgid "%s: file is too large"
 msgstr "%s: файл слишком велик"
 
-#: builtins/evalfile.c:188 builtins/evalfile.c:206 shell.c:1623
+#: builtins/evalfile.c:194 builtins/evalfile.c:212 shell.c:1578
 #, c-format
 msgid "%s: cannot execute binary file"
 msgstr "%s: не удаётся запустить бинарный файл"
 
-#: builtins/exec.def:155 builtins/exec.def:157 builtins/exec.def:237
+#: builtins/exec.def:156 builtins/exec.def:158 builtins/exec.def:235
 #, c-format
 msgid "%s: cannot execute: %s"
 msgstr "%s: не удаётся запустить: %s"
 
-#: builtins/exit.def:64
+#: builtins/exit.def:67
 #, c-format
 msgid "logout\n"
 msgstr "выход\n"
 
-#: builtins/exit.def:89
+#: builtins/exit.def:92
 msgid "not login shell: use `exit'"
 msgstr "не командный процессор login: используйте «exit»"
 
-#: builtins/exit.def:121
+#: builtins/exit.def:124
 #, c-format
 msgid "There are stopped jobs.\n"
 msgstr "Есть остановленные задания.\n"
 
-#: builtins/exit.def:123
+#: builtins/exit.def:126
 #, c-format
 msgid "There are running jobs.\n"
 msgstr "Есть выполняемые задания.\n"
 
-#: builtins/fc.def:265
+#: builtins/fc.def:269
 msgid "no command found"
 msgstr "команда не найдена"
 
-#: builtins/fc.def:323 builtins/fc.def:372
+#: builtins/fc.def:327 builtins/fc.def:376
 msgid "history specification"
 msgstr "указание журнала команд"
 
-#: builtins/fc.def:393
+#: builtins/fc.def:397
 #, c-format
 msgid "%s: cannot open temp file: %s"
 msgstr "%s: не удаётся открыть временный файл: %s"
 
-#: builtins/fg_bg.def:152 builtins/jobs.def:284
+#: builtins/fg_bg.def:153 builtins/jobs.def:284
 msgid "current"
 msgstr "текущий"
 
-#: builtins/fg_bg.def:161
+#: builtins/fg_bg.def:162
 #, c-format
 msgid "job %d started without job control"
 msgstr "задание %d запущено без возможности управления"
@@ -484,41 +482,39 @@ msgstr "%s: недопустимый параметр — %c\n"
 msgid "%s: option requires an argument -- %c\n"
 msgstr "%s: для параметра требуется аргумент — %c\n"
 
-#: builtins/hash.def:91
+#: builtins/hash.def:92
 msgid "hashing disabled"
 msgstr "хэширование отключено"
 
-#: builtins/hash.def:138
+#: builtins/hash.def:139
 #, c-format
 msgid "%s: hash table empty\n"
 msgstr "%s: таблица хэшей пустая\n"
 
-#: builtins/hash.def:266
+#: builtins/hash.def:254
 #, c-format
 msgid "hits\tcommand\n"
 msgstr "вызовы\tкоманда\n"
 
-#: builtins/help.def:133
+#: builtins/help.def:135
+#, c-format
 msgid "Shell commands matching keyword `"
 msgid_plural "Shell commands matching keywords `"
 msgstr[0] "Команды, соответствующие ключевому слову «"
 msgstr[1] "Команды, соответствующие ключевым словам «"
 msgstr[2] "Команды, соответствующие ключевым словам «"
 
-#: builtins/help.def:185
+#: builtins/help.def:187
 #, c-format
-msgid ""
-"no help topics match `%s'.  Try `help help' or `man -k %s' or `info %s'."
-msgstr ""
-"нет разделов справки, соответствующих «%s».  Попробуйте ввести «help help» или "
-"«man -k %s» или «info %s»."
+msgid "no help topics match `%s'.  Try `help help' or `man -k %s' or `info %s'."
+msgstr "нет разделов справки, соответствующих «%s».  Попробуйте ввести «help help» или «man -k %s» или «info %s»."
 
-#: builtins/help.def:224
+#: builtins/help.def:226
 #, c-format
 msgid "%s: cannot open: %s"
 msgstr "%s: не удаётся открыть файл: %s"
 
-#: builtins/help.def:524
+#: builtins/help.def:526
 #, c-format
 msgid ""
 "These shell commands are defined internally.  Type `help' to see this list.\n"
@@ -529,32 +525,28 @@ msgid ""
 "A star (*) next to a name means that the command is disabled.\n"
 "\n"
 msgstr ""
-"Показанные ниже команды определены внутри командного процессора.  Чтобы "
-"вывести полный список, введите «help».\n"
+"Показанные ниже команды определены внутри командного процессора.  Чтобы вывести полный список, введите «help».\n"
 "Чтобы вывести справку по функции «name», введите «help name».\n"
 "Чтобы вывести справку по командному процессору, введите «info bash».\n"
-"Чтобы вывести справку по командам, которые отсутствуют в этом списке, "
-"введите «man -k» или «info».\n"
+"Чтобы вывести справку по командам, которые отсутствуют в этом списке, введите «man -k» или «info».\n"
 "\n"
-"Звёздочка (*) рядом с названием команды означает, что эта команда "
-"отключена.\n"
+"Звёздочка (*) рядом с названием команды означает, что эта команда отключена.\n"
 "\n"
 
-#: builtins/history.def:154
+#: builtins/history.def:155
 msgid "cannot use more than one of -anrw"
 msgstr "нельзя использовать больше одного параметра -anrw"
 
-#: builtins/history.def:187 builtins/history.def:197 builtins/history.def:212
-#: builtins/history.def:229 builtins/history.def:241 builtins/history.def:248
+#: builtins/history.def:187
 msgid "history position"
 msgstr "положение журнала команд"
 
-#: builtins/history.def:331
+#: builtins/history.def:264
 #, c-format
 msgid "%s: invalid timestamp"
 msgstr "%s: недопустимая метка времени"
 
-#: builtins/history.def:442
+#: builtins/history.def:375
 #, c-format
 msgid "%s: history expansion failed"
 msgstr "%s: не удалось расширить журнал команд"
@@ -568,16 +560,16 @@ msgstr "%s: ошибка inlib"
 msgid "no other options allowed with `-x'"
 msgstr "с параметром «-x» нельзя указывать другие параметры"
 
-#: builtins/kill.def:200
+#: builtins/kill.def:202
 #, c-format
 msgid "%s: arguments must be process or job IDs"
 msgstr "%s: аргументами должны быть идентификаторы процессов или заданий"
 
-#: builtins/kill.def:263
+#: builtins/kill.def:265
 msgid "Unknown error"
 msgstr "Неизвестная ошибка"
 
-#: builtins/let.def:97 builtins/let.def:122 expr.c:614 expr.c:632
+#: builtins/let.def:97 builtins/let.def:122 expr.c:583 expr.c:598
 msgid "expression expected"
 msgstr "ожидается выражение"
 
@@ -586,69 +578,69 @@ msgstr "ожидается выражение"
 msgid "%s: not an indexed array"
 msgstr "%s: это не индексированный массив"
 
-#: builtins/mapfile.def:271 builtins/read.def:305
+#: builtins/mapfile.def:272 builtins/read.def:306
 #, c-format
 msgid "%s: invalid file descriptor specification"
 msgstr "%s: недопустимое указание дескриптора файла"
 
-#: builtins/mapfile.def:279 builtins/read.def:312
+#: builtins/mapfile.def:280 builtins/read.def:313
 #, c-format
 msgid "%d: invalid file descriptor: %s"
 msgstr "%d: invalid недопустимый дескриптор файла: %s"
 
-#: builtins/mapfile.def:288 builtins/mapfile.def:326
+#: builtins/mapfile.def:289 builtins/mapfile.def:327
 #, c-format
 msgid "%s: invalid line count"
 msgstr "%s: недопустимое число строк"
 
-#: builtins/mapfile.def:299
+#: builtins/mapfile.def:300
 #, c-format
 msgid "%s: invalid array origin"
 msgstr "%s: недопустимое начало массива"
 
-#: builtins/mapfile.def:316
+#: builtins/mapfile.def:317
 #, c-format
 msgid "%s: invalid callback quantum"
 msgstr "%s: недопустимый квант обратного вызова"
 
-#: builtins/mapfile.def:349
+#: builtins/mapfile.def:350
 msgid "empty array variable name"
 msgstr "пустое имя переменной массива"
 
-#: builtins/mapfile.def:370
+#: builtins/mapfile.def:371
 msgid "array variable support required"
 msgstr "требуется поддержка переменных массива"
 
-#: builtins/printf.def:416
+#: builtins/printf.def:412
 #, c-format
 msgid "`%s': missing format character"
 msgstr "«%s»: отсутствует символ форматирования"
 
-#: builtins/printf.def:471
+#: builtins/printf.def:467
 #, c-format
 msgid "`%c': invalid time format specification"
 msgstr "«%c»: недопустимое указание формата времени"
 
-#: builtins/printf.def:673
+#: builtins/printf.def:669
 #, c-format
 msgid "`%c': invalid format character"
 msgstr "«%c»: недопустимый символ форматирования"
 
-#: builtins/printf.def:699
+#: builtins/printf.def:695
 #, c-format
 msgid "warning: %s: %s"
 msgstr "предупреждение: %s: %s"
 
-#: builtins/printf.def:785
+#: builtins/printf.def:781
 #, c-format
 msgid "format parsing problem: %s"
 msgstr "ошибка анализа формата: %s"
 
-#: builtins/printf.def:882
+#: builtins/printf.def:878
 msgid "missing hex digit for \\x"
 msgstr "отсутствует шестнадцатеричная цифра для \\x"
 
-#: builtins/printf.def:897
+#: builtins/printf.def:893
 #, c-format
 msgid "missing unicode digit for \\%c"
 msgstr "отсутствует цифра Юникода для \\%c"
@@ -662,19 +654,19 @@ msgstr "отсутствует другой каталог"
 msgid "%s: invalid argument"
 msgstr "%s: недопустимый аргумент"
 
-#: builtins/pushd.def:480
+#: builtins/pushd.def:475
 msgid "<no current directory>"
 msgstr "<отсутствует текущий каталог>"
 
-#: builtins/pushd.def:524
+#: builtins/pushd.def:519
 msgid "directory stack empty"
 msgstr "стек каталогов пуст"
 
-#: builtins/pushd.def:526
+#: builtins/pushd.def:521
 msgid "directory stack index"
 msgstr "индекс стека каталогов"
 
-#: builtins/pushd.def:701
+#: builtins/pushd.def:696
 msgid ""
 "Display the list of currently remembered directories.  Directories\n"
 "    find their way onto the list with the `pushd' command; you can get\n"
@@ -689,12 +681,10 @@ msgid ""
 "    \twith its position in the stack\n"
 "    \n"
 "    Arguments:\n"
-"      +N\tDisplays the Nth entry counting from the left of the list shown "
-"by\n"
+"      +N\tDisplays the Nth entry counting from the left of the list shown by\n"
 "    \tdirs when invoked without options, starting with zero.\n"
 "    \n"
-"      -N\tDisplays the Nth entry counting from the right of the list shown "
-"by\n"
+"      -N\tDisplays the Nth entry counting from the right of the list shown by\n"
 "\tdirs when invoked without options, starting with zero."
 msgstr ""
 "Выводит список запомненных на данный момент каталогов.  Каталоги\n"
@@ -716,7 +706,7 @@ msgstr ""
 "      -N\tпоказать N-ю запись справа в списке каталогов,\n"
 "\tпоказанного при вызове без параметров, начиная с нуля."
 
-#: builtins/pushd.def:723
+#: builtins/pushd.def:718
 msgid ""
 "Adds a directory to the top of the directory stack, or rotates\n"
 "    the stack, making the new top of the stack the current working\n"
@@ -742,8 +732,7 @@ msgid ""
 msgstr ""
 "Добавляет каталог в начало стека каталогов или выполняет\n"
 "    ротацию стека, помещая в начало стека текущий рабочий\n"
-"    каталог.  Если аргументы не указаны, меняет местами два первых "
-"каталога.\n"
+"    каталог.  Если аргументы не указаны, меняет местами два первых каталога.\n"
 "    \n"
 "    Параметры:\n"
 "      -n\tпредотвращает обычное изменение каталога при добавлении\n"
@@ -763,7 +752,7 @@ msgstr ""
 "    \n"
 "    Встроенная команда dirs показывает стек каталогов."
 
-#: builtins/pushd.def:748
+#: builtins/pushd.def:743
 msgid ""
 "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"
@@ -801,45 +790,45 @@ msgstr ""
 "    \n"
 "    Встроенная команда dirs показывает стек каталогов."
 
-#: builtins/read.def:277
+#: builtins/read.def:279
 #, c-format
 msgid "%s: invalid timeout specification"
 msgstr "%s: недопустимое указание тайм-аута"
 
-#: builtins/read.def:729
+#: builtins/read.def:696
 #, c-format
 msgid "read error: %d: %s"
 msgstr "ошибка чтения: %d: %s"
 
-#: builtins/return.def:68
+#: builtins/return.def:71
 msgid "can only `return' from a function or sourced script"
 msgstr "возврат можно выполнить только из функции или исходного скрипта"
 
-#: builtins/set.def:834
+#: builtins/set.def:841
 msgid "cannot simultaneously unset a function and a variable"
 msgstr "нельзя одновременно сбросить функцию и переменную"
 
-#: builtins/set.def:881
+#: builtins/set.def:888
 #, c-format
 msgid "%s: cannot unset"
 msgstr "%s: не удаётся выполнить сброс"
 
-#: builtins/set.def:902 variables.c:3597
+#: builtins/set.def:909 variables.c:3389
 #, c-format
 msgid "%s: cannot unset: readonly %s"
 msgstr "%s: не удаётся выполнить сброс: %s доступен только для чтения"
 
-#: builtins/set.def:915
+#: builtins/set.def:922
 #, c-format
 msgid "%s: not an array variable"
 msgstr "%s: это не переменная массива"
 
-#: builtins/setattr.def:189
+#: builtins/setattr.def:191
 #, c-format
 msgid "%s: not a function"
 msgstr "%s: это не функция"
 
-#: builtins/setattr.def:194
+#: builtins/setattr.def:196
 #, c-format
 msgid "%s: cannot export"
 msgstr "%s: не удаётся экспортировать"
@@ -848,20 +837,20 @@ msgstr "%s: не удаётся экспортировать"
 msgid "shift count"
 msgstr "счётчик смещений"
 
-#: builtins/shopt.def:301
+#: builtins/shopt.def:289
 msgid "cannot set and unset shell options simultaneously"
 msgstr "нельзя одновременно задать и сбросить параметры командного процессора"
 
-#: builtins/shopt.def:403
+#: builtins/shopt.def:391
 #, c-format
 msgid "%s: invalid shell option name"
 msgstr "%s: недопустимое название параметра командного процессора"
 
-#: builtins/source.def:128
+#: builtins/source.def:131
 msgid "filename argument required"
 msgstr "требуется аргумент с именем файла"
 
-#: builtins/source.def:154
+#: builtins/source.def:157
 #, c-format
 msgid "%s: file not found"
 msgstr "%s: файл не найден"
@@ -874,61 +863,61 @@ msgstr "не удаётся приостановить"
 msgid "cannot suspend a login shell"
 msgstr "не удаётся приостановить командный процессор login"
 
-#: builtins/type.def:235
+#: builtins/type.def:236
 #, c-format
 msgid "%s is aliased to `%s'\n"
 msgstr "%s — это псевдонимом для «%s»\n"
 
-#: builtins/type.def:256
+#: builtins/type.def:257
 #, c-format
 msgid "%s is a shell keyword\n"
 msgstr "%s — это ключевое слово командного процессора\n"
 
-#: builtins/type.def:275
+#: builtins/type.def:276
 #, c-format
 msgid "%s is a function\n"
 msgstr "%s — это функция\n"
 
-#: builtins/type.def:299
+#: builtins/type.def:300
 #, c-format
 msgid "%s is a special shell builtin\n"
 msgstr "%s — это специальная встроенная команда bash\n"
 
-#: builtins/type.def:301
+#: builtins/type.def:302
 #, c-format
 msgid "%s is a shell builtin\n"
 msgstr "%s — это встроенная команда bash\n"
 
-#: builtins/type.def:323 builtins/type.def:408
+#: builtins/type.def:324 builtins/type.def:409
 #, c-format
 msgid "%s is %s\n"
 msgstr "%s является %s\n"
 
-#: builtins/type.def:343
+#: builtins/type.def:344
 #, c-format
 msgid "%s is hashed (%s)\n"
 msgstr "для %s вычислен хэш (%s)\n"
 
-#: builtins/ulimit.def:396
+#: builtins/ulimit.def:398
 #, c-format
 msgid "%s: invalid limit argument"
 msgstr "%s: недопустимый аргумент ограничения"
 
-#: builtins/ulimit.def:422
+#: builtins/ulimit.def:424
 #, c-format
 msgid "`%c': bad command"
 msgstr "«%c»: недопустимая команда"
 
-#: builtins/ulimit.def:451
+#: builtins/ulimit.def:453
 #, c-format
 msgid "%s: cannot get limit: %s"
 msgstr "%s: не удаётся получить ограничение: %s"
 
-#: builtins/ulimit.def:477
+#: builtins/ulimit.def:479
 msgid "limit"
 msgstr "ограничение"
 
-#: builtins/ulimit.def:489 builtins/ulimit.def:789
+#: builtins/ulimit.def:491 builtins/ulimit.def:791
 #, c-format
 msgid "%s: cannot modify limit: %s"
 msgstr "%s: не удаётся изменить ограничение: %s"
@@ -947,211 +936,202 @@ msgstr "«%c»: недопустимый оператор символьного
 msgid "`%c': invalid symbolic mode character"
 msgstr "«%c»: недопустимый знак символьного режима"
 
-#: error.c:89 error.c:347 error.c:349 error.c:351
+#: error.c:90 error.c:348 error.c:350 error.c:352
 msgid " line "
 msgstr " строка "
 
-#: error.c:164
+#: error.c:165
 #, c-format
 msgid "last command: %s\n"
 msgstr "последняя команда: %s\n"
 
-#: error.c:172
+#: error.c:173
 #, c-format
 msgid "Aborting..."
 msgstr "Прерывание..."
 
 #. TRANSLATORS: this is a prefix for informational messages.
-#: error.c:287
+#: error.c:288
 #, c-format
 msgid "INFORM: "
 msgstr "ИНФО: "
 
-#: error.c:462
+#: error.c:463
 msgid "unknown command error"
 msgstr "неизвестная ошибка команды"
 
-#: error.c:463
+#: error.c:464
 msgid "bad command type"
 msgstr "неверный тип команды"
 
-#: error.c:464
+#: error.c:465
 msgid "bad connector"
 msgstr "неверный соединитель"
 
-#: error.c:465
+#: error.c:466
 msgid "bad jump"
 msgstr "ошибка перехода"
 
-#: error.c:503
+#: error.c:504
 #, c-format
 msgid "%s: unbound variable"
 msgstr "%s: не заданы границы переменной"
 
-#: eval.c:242
+#: eval.c:209
 #, c-format
 msgid "\atimed out waiting for input: auto-logout\n"
 msgstr "\aпревышено время ожидания ввода: auto-logout\n"
 
-#: execute_cmd.c:536
+#: execute_cmd.c:527
 #, c-format
 msgid "cannot redirect standard input from /dev/null: %s"
 msgstr "не удаётся перенаправить стандартный ввод из /dev/null: %s"
 
-#: execute_cmd.c:1294
+#: execute_cmd.c:1275
 #, c-format
 msgid "TIMEFORMAT: `%c': invalid format character"
 msgstr "TIMEFORMAT: «%c»: недопустимый символ форматирования"
 
-#: execute_cmd.c:2330
+#: execute_cmd.c:2273
 #, c-format
 msgid "execute_coproc: coproc [%d:%s] still exists"
 msgstr "execute_coproc: coproc [%d:%s] всё ещё существует"
 
-#: execute_cmd.c:2456
+#: execute_cmd.c:2377
 msgid "pipe error"
 msgstr "ошибка конвейера"
 
-#: execute_cmd.c:4624
+#: execute_cmd.c:4496
 #, c-format
 msgid "eval: maximum eval nesting level exceeded (%d)"
 msgstr "eval: достигнут максимальный уровень вложенности eval (%d)"
 
-#: execute_cmd.c:4636
+#: execute_cmd.c:4508
 #, c-format
 msgid "%s: maximum source nesting level exceeded (%d)"
 msgstr "%s: достигнут максимальный уровень вложенности source (%d)"
 
-#: execute_cmd.c:4742
+#: execute_cmd.c:4616
 #, c-format
 msgid "%s: maximum function nesting level exceeded (%d)"
 msgstr "%s: достигнут максимальный уровень вложенности функций (%d)"
 
-#: execute_cmd.c:5285
+#: execute_cmd.c:5144
 #, c-format
 msgid "%s: restricted: cannot specify `/' in command names"
-msgstr ""
-"%s: ограниченный режим: в названиях команд нельзя использовать косую черту «/»"
+msgstr "%s: ограниченный режим: в названиях команд нельзя использовать косую черту «/»"
 
-#: execute_cmd.c:5383
+#: execute_cmd.c:5232
 #, c-format
 msgid "%s: command not found"
 msgstr "%s: команда не найдена"
 
-#: execute_cmd.c:5627
+#: execute_cmd.c:5470
 #, c-format
 msgid "%s: %s"
 msgstr "%s: %s"
 
-#: execute_cmd.c:5665
+#: execute_cmd.c:5508
 #, c-format
 msgid "%s: %s: bad interpreter"
 msgstr "%s: %s: неверный интерпретатор"
 
-#: execute_cmd.c:5702
+#: execute_cmd.c:5545
 #, c-format
 msgid "%s: cannot execute binary file: %s"
 msgstr "%s: не удаётся запустить бинарный файл: %s"
 
-#: execute_cmd.c:5788
+#: execute_cmd.c:5623
 #, c-format
 msgid "`%s': is a special builtin"
 msgstr "«%s»: это специальная встроенная команда"
 
-#: execute_cmd.c:5840
+#: execute_cmd.c:5675
 #, c-format
 msgid "cannot duplicate fd %d to fd %d"
 msgstr "не удаётся скопировать файловый дескриптор %d в %d"
 
-#: expr.c:263
+#: expr.c:259
 msgid "expression recursion level exceeded"
 msgstr "слишком много вложенных выражений"
 
-#: expr.c:291
+#: expr.c:283
 msgid "recursion stack underflow"
 msgstr "отрицательное переполнение стека вложенных выражений"
 
-#: expr.c:453
+#: expr.c:431
 msgid "syntax error in expression"
 msgstr "синтаксическая ошибка в выражении"
 
-#: expr.c:497
+#: expr.c:475
 msgid "attempted assignment to non-variable"
 msgstr "значение можно присвоить только переменной"
 
-#: expr.c:506
-#, fuzzy
-msgid "syntax error in variable assignment"
-msgstr "синтаксическая ошибка в выражении"
-
-#: expr.c:520 expr.c:886
+#: expr.c:495 expr.c:858
 msgid "division by 0"
 msgstr "деление на 0"
 
-#: expr.c:567
+#: expr.c:542
 msgid "bug: bad expassign token"
 msgstr "ошибка: недопустимый маркер присвоения выражения"
 
-#: expr.c:621
+#: expr.c:595
 msgid "`:' expected for conditional expression"
 msgstr "в условном выражении должен быть символ «:»"
 
-#: expr.c:947
+#: expr.c:919
 msgid "exponent less than 0"
 msgstr "экспонента меньше нуля"
 
-#: expr.c:1004
+#: expr.c:976
 msgid "identifier expected after pre-increment or pre-decrement"
-msgstr ""
-"после предварительного инкремента или декремента ожидается идентификатор "
+msgstr "после предварительного инкремента или декремента ожидается идентификатор "
 
-#: expr.c:1030
+#: expr.c:1002
 msgid "missing `)'"
 msgstr "отсутствует символ «)»"
 
-#: expr.c:1081 expr.c:1458
+#: expr.c:1053 expr.c:1393
 msgid "syntax error: operand expected"
 msgstr "синтаксическая ошибка: ожидается операнд"
 
-#: expr.c:1460
+#: expr.c:1395
 msgid "syntax error: invalid arithmetic operator"
 msgstr "ошибка синтаксиса: недопустимый математический оператор"
 
-#: expr.c:1484
+#: expr.c:1419
 #, c-format
 msgid "%s%s%s: %s (error token is \"%s\")"
 msgstr "%s%s%s: %s (неверный маркер «%s»)"
 
-#: expr.c:1542
+#: expr.c:1477
 msgid "invalid arithmetic base"
 msgstr "недопустимое математическое основание"
 
-#: expr.c:1562
+#: expr.c:1497
 msgid "value too great for base"
 msgstr "слишком большое значение для основания"
 
-#: expr.c:1611
+#: expr.c:1546
 #, c-format
 msgid "%s: expression error\n"
 msgstr "%s: ошибка выражения\n"
 
-#: general.c:69
+#: general.c:68
 msgid "getcwd: cannot access parent directories"
 msgstr "getcwd: нет доступа к родительским каталогам"
 
-#: input.c:99 subst.c:5858
+#: input.c:102 subst.c:5858
 #, c-format
 msgid "cannot reset nodelay mode for fd %d"
 msgstr "не удаётся сбросить режим nodelay для файлового дескриптора %d"
 
-#: input.c:266
+#: input.c:271
 #, c-format
 msgid "cannot allocate new file descriptor for bash input from fd %d"
-msgstr ""
-"не удаётся выделить новый дескриптор для входных данных bash из файлового "
-"дескриптора %d"
+msgstr "не удаётся выделить новый дескриптор для входных данных bash из файлового дескриптора %d"
 
-#: input.c:274
+#: input.c:279
 #, c-format
 msgid "save_bash_input: buffer already exists for new fd %d"
 msgstr "save_bash_input: у нового файлового дескриптора %d уже есть буфер"
@@ -1160,162 +1140,153 @@ msgstr "save_bash_input: у нового файлового дескриптор
 msgid "start_pipeline: pgrp pipe"
 msgstr "start_pipeline: pgrp pipe"
 
-#: jobs.c:1080
+#: jobs.c:1035
 #, c-format
 msgid "forked pid %d appears in running job %d"
 msgstr "идентификатор дочернего процесса %d принадлежит запущенному заданию %d"
 
-#: jobs.c:1199
+#: jobs.c:1154
 #, c-format
 msgid "deleting stopped job %d with process group %ld"
 msgstr "удаление остановленного задания %d с группой процесса %ld"
 
-#: jobs.c:1303
+#: jobs.c:1258
 #, c-format
 msgid "add_process: process %5ld (%s) in the_pipeline"
 msgstr "add_process: процесс %5ld (%s) в the_pipeline"
 
-#: jobs.c:1306
+#: jobs.c:1261
 #, c-format
 msgid "add_process: pid %5ld (%s) marked as still alive"
-msgstr ""
-"add_process: процесс с идентификатором %5ld (%s) помечен как всё ещё активный"
+msgstr "add_process: процесс с идентификатором %5ld (%s) помечен как всё ещё активный"
 
-#: jobs.c:1635
+#: jobs.c:1590
 #, c-format
 msgid "describe_pid: %ld: no such pid"
 msgstr "describe_pid: %ld: нет процесса с таким идентификатором"
 
-#: jobs.c:1650
+#: jobs.c:1605
 #, c-format
 msgid "Signal %d"
 msgstr "Сигнал %d"
 
-#: jobs.c:1664 jobs.c:1690
+#: jobs.c:1619 jobs.c:1645
 msgid "Done"
 msgstr "Завершён"
 
-#: jobs.c:1669 siglist.c:123
+#: jobs.c:1624 siglist.c:123
 msgid "Stopped"
 msgstr "Остановлен"
 
-#: jobs.c:1673
+#: jobs.c:1628
 #, c-format
 msgid "Stopped(%s)"
 msgstr "Остановлен (%s)"
 
-#: jobs.c:1677
+#: jobs.c:1632
 msgid "Running"
 msgstr "Запущен"
 
-#: jobs.c:1694
+#: jobs.c:1649
 #, c-format
 msgid "Done(%d)"
 msgstr "Завершён (%d)"
 
-#: jobs.c:1696
+#: jobs.c:1651
 #, c-format
 msgid "Exit %d"
 msgstr "Выход %d"
 
-#: jobs.c:1699
+#: jobs.c:1654
 msgid "Unknown status"
 msgstr "Состояние неизвестно"
 
-#: jobs.c:1786
+#: jobs.c:1741
 #, c-format
 msgid "(core dumped) "
 msgstr "(стек памяти сброшен на диск) "
 
-#: jobs.c:1805
+#: jobs.c:1760
 #, c-format
 msgid "  (wd: %s)"
 msgstr "  (рабочий каталог: %s)"
 
-#: jobs.c:2033
+#: jobs.c:1985
 #, c-format
 msgid "child setpgid (%ld to %ld)"
 msgstr "дочерний setpgid (%ld к %ld)"
 
-#: jobs.c:2395 nojobs.c:657
+#: jobs.c:2347 nojobs.c:654
 #, c-format
 msgid "wait: pid %ld is not a child of this shell"
-msgstr ""
-"wait: процесс %ld не является дочерним процессом этого командного процессора"
+msgstr "wait: процесс %ld не является дочерним процессом этого командного процессора"
 
-#: jobs.c:2687
+#: jobs.c:2602
 #, c-format
 msgid "wait_for: No record of process %ld"
 msgstr "wait_for: нет записей процесса %ld"
 
-#: jobs.c:3048
+#: jobs.c:2929
 #, c-format
 msgid "wait_for_job: job %d is stopped"
 msgstr "wait_for_job: задание %d остановлено"
 
-#: jobs.c:3355
+#: jobs.c:3221
 #, c-format
 msgid "%s: job has terminated"
 msgstr "%s: выполнение задания прервано"
 
-#: jobs.c:3364
+#: jobs.c:3230
 #, c-format
 msgid "%s: job %d already in background"
 msgstr "%s: задание %d уже выполняется в фоновом режиме"
 
-#: jobs.c:3590
+#: jobs.c:3455
 msgid "waitchld: turning on WNOHANG to avoid indefinite block"
-msgstr ""
-"waitchld: включается WNOHANG, чтобы предотвратить появление неопределённого "
-"блока"
+msgstr "waitchld: включается WNOHANG, чтобы предотвратить появление неопределённого блока"
 
-#: jobs.c:4114
+#: jobs.c:3970
 #, c-format
 msgid "%s: line %d: "
 msgstr "%s: строка %d: "
 
-#: jobs.c:4128 nojobs.c:900
+#: jobs.c:3984 nojobs.c:897
 #, c-format
 msgid " (core dumped)"
 msgstr " (стек памяти сброшен на диск)"
 
-#: jobs.c:4140 jobs.c:4153
+#: jobs.c:3996 jobs.c:4009
 #, c-format
 msgid "(wd now: %s)\n"
 msgstr "(рабочий каталог: %s)\n"
 
-#: jobs.c:4185
+#: jobs.c:4041
 msgid "initialize_job_control: getpgrp failed"
 msgstr "initialize_job_control: ошибка вызова getpgrp "
 
-#: jobs.c:4241
-#, fuzzy
-msgid "initialize_job_control: no job control in background"
-msgstr "initialize_job_control: дисциплина строки"
-
-#: jobs.c:4257
+#: jobs.c:4104
 msgid "initialize_job_control: line discipline"
 msgstr "initialize_job_control: дисциплина строки"
 
-#: jobs.c:4267
+#: jobs.c:4114
 msgid "initialize_job_control: setpgid"
 msgstr "initialize_job_control: setpgid"
 
-#: jobs.c:4288 jobs.c:4297
+#: jobs.c:4135 jobs.c:4144
 #, c-format
 msgid "cannot set terminal process group (%d)"
 msgstr "не удаётся задать группу процесса терминала (%d)"
 
-#: jobs.c:4302
+#: jobs.c:4149
 msgid "no job control in this shell"
 msgstr "этот командный процессор не может управлять заданиями"
 
-#: lib/malloc/malloc.c:306
+#: lib/malloc/malloc.c:296
 #, c-format
 msgid "malloc: failed assertion: %s\n"
 msgstr "malloc: ошибка утверждения: %s\n"
 
-#: lib/malloc/malloc.c:322
+#: lib/malloc/malloc.c:312
 #, c-format
 msgid ""
 "\r\n"
@@ -1324,43 +1295,39 @@ msgstr ""
 "\\r\n"
 "malloc: %s:%d: утверждение не удалось\\r\n"
 
-#: lib/malloc/malloc.c:323
+#: lib/malloc/malloc.c:313
 msgid "unknown"
 msgstr "неизвестно"
 
-#: lib/malloc/malloc.c:811
+#: lib/malloc/malloc.c:801
 msgid "malloc: block on free list clobbered"
 msgstr "malloc: блок в списке свободных затёрт"
 
-#: lib/malloc/malloc.c:888
+#: lib/malloc/malloc.c:878
 msgid "free: called with already freed block argument"
 msgstr "free: вызван с аргументом уже освобождённого блока"
 
-#: lib/malloc/malloc.c:891
+#: lib/malloc/malloc.c:881
 msgid "free: called with unallocated block argument"
 msgstr "free: вызван с аргументом невыделенного блока"
 
-#: lib/malloc/malloc.c:910
+#: lib/malloc/malloc.c:900
 msgid "free: underflow detected; mh_nbytes out of range"
-msgstr ""
-"free: обнаружено отрицательное переполнение; mh_nbytes байт за пределами "
-"диапазона"
+msgstr "free: обнаружено отрицательное переполнение; mh_nbytes байт за пределами диапазона"
 
-#: lib/malloc/malloc.c:916
+#: lib/malloc/malloc.c:906
 msgid "free: start and end chunk sizes differ"
 msgstr "free: размеры начального и конечного блока отличаются"
 
-#: lib/malloc/malloc.c:1015
+#: lib/malloc/malloc.c:1005
 msgid "realloc: called with unallocated block argument"
 msgstr "realloc: вызван с аргументом невыделенного блока"
 
-#: lib/malloc/malloc.c:1030
+#: lib/malloc/malloc.c:1020
 msgid "realloc: underflow detected; mh_nbytes out of range"
-msgstr ""
-"realloc: обнаружено отрицательное переполнение; mh_nbytes байт за пределами "
-"диапазона"
+msgstr "realloc: обнаружено отрицательное переполнение; mh_nbytes байт за пределами диапазона"
 
-#: lib/malloc/malloc.c:1036
+#: lib/malloc/malloc.c:1026
 msgid "realloc: start and end chunk sizes differ"
 msgstr "realloc: размеры начального и конечного блока отличаются"
 
@@ -1402,22 +1369,22 @@ msgstr "%s: недопустимое указание сетевого пути"
 msgid "network operations not supported"
 msgstr "сетевые операции не поддерживаются"
 
-#: locale.c:205
+#: locale.c:200
 #, c-format
 msgid "setlocale: LC_ALL: cannot change locale (%s)"
 msgstr "setlocale: LC_ALL: не удаётся изменить язык (%s)"
 
-#: locale.c:207
+#: locale.c:202
 #, c-format
 msgid "setlocale: LC_ALL: cannot change locale (%s): %s"
 msgstr "setlocale: LC_ALL: не удаётся изменить язык (%s): %s"
 
-#: locale.c:272
+#: locale.c:259
 #, c-format
 msgid "setlocale: %s: cannot change locale (%s)"
 msgstr "setlocale: %s: не удаётся изменить язык (%s)"
 
-#: locale.c:274
+#: locale.c:261
 #, c-format
 msgid "setlocale: %s: cannot change locale (%s): %s"
 msgstr "setlocale: %s: не удаётся изменить язык (%s): %s"
@@ -1435,151 +1402,145 @@ msgstr "Для вас есть почта в $_"
 msgid "The mail in %s has been read\n"
 msgstr "Сообщения в %s были прочитаны\n"
 
-#: make_cmd.c:317
+#: make_cmd.c:329
 msgid "syntax error: arithmetic expression required"
 msgstr "синтаксическая ошибка: требуется математическое выражение"
 
-#: make_cmd.c:319
+#: make_cmd.c:331
 msgid "syntax error: `;' unexpected"
 msgstr "синтаксическая ошибка: ожидается «;»"
 
-#: make_cmd.c:320
+#: make_cmd.c:332
 #, c-format
 msgid "syntax error: `((%s))'"
 msgstr "синтаксическая ошибка: «((%s))»"
 
-#: make_cmd.c:572
+#: make_cmd.c:584
 #, c-format
 msgid "make_here_document: bad instruction type %d"
 msgstr "make_here_document: недопустимый тип инструкции %d"
 
-#: make_cmd.c:657
+#: make_cmd.c:669
 #, c-format
 msgid "here-document at line %d delimited by end-of-file (wanted `%s')"
-msgstr ""
-"блок here-document в строке %d разделён знаком конца файла (ожидался «%s»)"
+msgstr "блок here-document в строке %d разделён знаком конца файла (ожидался «%s»)"
 
-#: make_cmd.c:756
+#: make_cmd.c:768
 #, c-format
 msgid "make_redirection: redirection instruction `%d' out of range"
-msgstr ""
-"make_redirection: инструкция перенаправления «%d» вышла за пределы диапазона"
+msgstr "make_redirection: инструкция перенаправления «%d» вышла за пределы диапазона"
 
-#: parse.y:2369
+#: parse.y:2324
 #, c-format
-msgid ""
-"shell_getc: shell_input_line_size (%zu) exceeds SIZE_MAX (%lu): line "
-"truncated"
-msgstr ""
-"shell_getc: shell_input_line_size (%zu) превысил SIZE_MAX (%lu): строка "
-"обрезана"
+msgid "shell_getc: shell_input_line_size (%zu) exceeds SIZE_MAX (%lu): line truncated"
+msgstr "shell_getc: shell_input_line_size (%zu) превысил SIZE_MAX (%lu): строка обрезана"
 
-#: parse.y:2772
+#: parse.y:2700
 msgid "maximum here-document count exceeded"
 msgstr "достигнуто максимальное число переменных here-document"
 
-#: parse.y:3511 parse.y:3881
+#: parse.y:3390 parse.y:3748
 #, c-format
 msgid "unexpected EOF while looking for matching `%c'"
 msgstr "неожиданный конец файла во время поиска «%c»"
 
-#: parse.y:4581
+#: parse.y:4410
 msgid "unexpected EOF while looking for `]]'"
 msgstr "неожиданный конец файла во время поиска «]]»"
 
-#: parse.y:4586
+#: parse.y:4415
 #, c-format
 msgid "syntax error in conditional expression: unexpected token `%s'"
 msgstr "синтаксическая ошибка в условном выражении: неожиданный маркер «%s»"
 
-#: parse.y:4590
+#: parse.y:4419
 msgid "syntax error in conditional expression"
 msgstr "синтаксическая ошибка в условном выражении"
 
-#: parse.y:4668
+#: parse.y:4497
 #, c-format
 msgid "unexpected token `%s', expected `)'"
 msgstr "неожиданный маркер «%s», ожидался «)»"
 
-#: parse.y:4672
+#: parse.y:4501
 msgid "expected `)'"
 msgstr "ожидается символ «)»"
 
-#: parse.y:4700
+#: parse.y:4529
 #, c-format
 msgid "unexpected argument `%s' to conditional unary operator"
 msgstr "неожиданный аргумент «%s» для условного унарного оператора"
 
-#: parse.y:4704
+#: parse.y:4533
 msgid "unexpected argument to conditional unary operator"
 msgstr "неожиданный аргумент для условного унарного оператора"
 
-#: parse.y:4750
+#: parse.y:4579
 #, c-format
 msgid "unexpected token `%s', conditional binary operator expected"
 msgstr "неожиданный маркер «%s», ожидается условный бинарный оператор"
 
-#: parse.y:4754
+#: parse.y:4583
 msgid "conditional binary operator expected"
 msgstr "ожидается условный бинарный оператор"
 
-#: parse.y:4776
+#: parse.y:4605
 #, c-format
 msgid "unexpected argument `%s' to conditional binary operator"
 msgstr "неожиданный аргумент «%s» для условного бинарного оператора"
 
-#: parse.y:4780
+#: parse.y:4609
 msgid "unexpected argument to conditional binary operator"
 msgstr "неожиданный аргумент для условного бинарного оператора"
 
-#: parse.y:4791
+#: parse.y:4620
 #, c-format
 msgid "unexpected token `%c' in conditional command"
 msgstr "неожиданный маркер «%c» в условной команде"
 
-#: parse.y:4794
+#: parse.y:4623
 #, c-format
 msgid "unexpected token `%s' in conditional command"
 msgstr "неожиданный маркер «%s» в условной команде"
 
-#: parse.y:4798
+#: parse.y:4627
 #, c-format
 msgid "unexpected token %d in conditional command"
 msgstr "неожиданный маркер %d в условной команде"
 
-#: parse.y:6220
+#: parse.y:5996
 #, c-format
 msgid "syntax error near unexpected token `%s'"
 msgstr "синтаксическая ошибка рядом с неожиданным маркером «%s»"
 
-#: parse.y:6238
+#: parse.y:6014
 #, c-format
 msgid "syntax error near `%s'"
 msgstr "синтаксическая ошибка рядом с «%s»"
 
-#: parse.y:6248
+#: parse.y:6024
 msgid "syntax error: unexpected end of file"
 msgstr "синтаксическая ошибка: неожиданный конец файла"
 
-#: parse.y:6248
+#: parse.y:6024
 msgid "syntax error"
 msgstr "синтаксическая ошибка"
 
-#: parse.y:6310
+#: parse.y:6086
 #, c-format
 msgid "Use \"%s\" to leave the shell.\n"
 msgstr "Для выхода из командного процессора используйте «%s».\n"
 
-#: parse.y:6472
+#: parse.y:6248
 msgid "unexpected EOF while looking for matching `)'"
 msgstr "неожиданный конец файла во время поиска «)»"
 
-#: pcomplete.c:1132
+#: pcomplete.c:1126
 #, c-format
 msgid "completion: function `%s' not found"
 msgstr "completion: функция «%s» не найдена"
 
-#: pcomplete.c:1722
+#: pcomplete.c:1646
 #, c-format
 msgid "programmable_completion: %s: possible retry loop"
 msgstr "programmable_completion: %s: возможен бесконечный цикл повторов"
@@ -1589,113 +1550,109 @@ msgstr "programmable_completion: %s: возможен бесконечный ц
 msgid "progcomp_insert: %s: NULL COMPSPEC"
 msgstr "progcomp_insert: %s: NULL COMPSPEC"
 
-#: print_cmd.c:300
+#: print_cmd.c:302
 #, c-format
 msgid "print_command: bad connector `%d'"
 msgstr "print_command: неверный соединитель «%d»"
 
-#: print_cmd.c:373
+#: print_cmd.c:375
 #, c-format
 msgid "xtrace_set: %d: invalid file descriptor"
 msgstr "xtrace_set: %d: недопустимый идентификатор файла"
 
-#: print_cmd.c:378
+#: print_cmd.c:380
 msgid "xtrace_set: NULL file pointer"
 msgstr "xtrace_set: пустой указатель на файл"
 
-#: print_cmd.c:382
+#: print_cmd.c:384
 #, c-format
 msgid "xtrace fd (%d) != fileno xtrace fp (%d)"
 msgstr "xtrace fd (%d) != fileno xtrace fp (%d)"
 
-#: print_cmd.c:1538
+#: print_cmd.c:1534
 #, c-format
 msgid "cprintf: `%c': invalid format character"
 msgstr "cprintf: «%c»: недопустимый символ форматирования"
 
-#: redir.c:121 redir.c:167
+#: redir.c:124 redir.c:171
 msgid "file descriptor out of range"
 msgstr "файловый дескриптор за пределами диапазона"
 
-#: redir.c:174
+#: redir.c:178
 #, c-format
 msgid "%s: ambiguous redirect"
 msgstr "%s: неоднозначное перенаправление"
 
-#: redir.c:178
+#: redir.c:182
 #, c-format
 msgid "%s: cannot overwrite existing file"
 msgstr "%s: не удаётся перезаписать существующий файл"
 
-#: redir.c:183
+#: redir.c:187
 #, c-format
 msgid "%s: restricted: cannot redirect output"
 msgstr "%s: ограниченный режим: не удаётся перенаправить вывод"
 
-#: redir.c:188
+#: redir.c:192
 #, c-format
 msgid "cannot create temp file for here-document: %s"
 msgstr "не удаётся создать временный файл для блока here-document: %s"
 
-#: redir.c:192
+#: redir.c:196
 #, c-format
 msgid "%s: cannot assign fd to variable"
 msgstr "%s: не удаётся присвоить файловый дескриптор переменной"
 
-#: redir.c:588
+#: redir.c:586
 msgid "/dev/(tcp|udp)/host/port not supported without networking"
 msgstr "/dev/(tcp|udp)/host/port не поддерживается без сети"
 
-#: redir.c:870 redir.c:985 redir.c:1046 redir.c:1211
+#: redir.c:868 redir.c:983 redir.c:1044 redir.c:1209
 msgid "redirection error: cannot duplicate fd"
 msgstr "ошибка перенаправления: не удаётся создать копию файлового дескриптора"
 
-#: shell.c:343
+#: shell.c:347
 msgid "could not find /tmp, please create!"
 msgstr "не удалось найти /tmp; создайте этот каталог"
 
-#: shell.c:347
+#: shell.c:351
 msgid "/tmp must be a valid directory name"
 msgstr "/tmp должен быть допустимым названием каталога"
 
-#: shell.c:798
-msgid "pretty-printing mode ignored in interactive shells"
-msgstr ""
-
-#: shell.c:940
+#: shell.c:927
 #, c-format
 msgid "%c%c: invalid option"
 msgstr "%c%c: недопустимый параметр"
 
-#: shell.c:1299
+#: shell.c:1282
 #, c-format
 msgid "cannot set uid to %d: effective uid %d"
 msgstr "не удаётся установить UID %d: эффективный UID %d"
 
-#: shell.c:1306
+#: shell.c:1289
 #, c-format
 msgid "cannot set gid to %d: effective gid %d"
 msgstr "не удаётся установить GID %d: эффективный GID %d"
 
-#: shell.c:1494
+#: shell.c:1458
 msgid "cannot start debugger; debugging mode disabled"
 msgstr "не удаётся запустить отладчик: режим отладки отключён"
 
-#: shell.c:1608
+#: shell.c:1566
 #, c-format
 msgid "%s: Is a directory"
 msgstr "%s: это каталог"
 
-#: shell.c:1826
+#: shell.c:1777
 msgid "I have no name!"
 msgstr "Не удаётся определить название"
 
-#: shell.c:1980
+#: shell.c:1930
 #, c-format
 msgid "GNU bash, version %s-(%s)\n"
 msgstr "GNU bash, версия %s-(%s)\n"
 
-#: shell.c:1981
+#: shell.c:1931
 #, c-format
 msgid ""
 "Usage:\t%s [GNU long option] [option] ...\n"
@@ -1704,55 +1661,49 @@ msgstr ""
 "Использование:\t%s [длинные параметры GNU] [параметры] ...\n"
 "\t\t%s [длинные параметры GNU] [параметры] файл_скрипта ...\n"
 
-#: shell.c:1983
+#: shell.c:1933
 msgid "GNU long options:\n"
 msgstr "Длинные параметры GNU:\n"
 
-#: shell.c:1987
+#: shell.c:1937
 msgid "Shell options:\n"
 msgstr "Параметры командного процессора:\n"
 
-#: shell.c:1988
+#: shell.c:1938
 msgid "\t-ilrsD or -c command or -O shopt_option\t\t(invocation only)\n"
-msgstr ""
-"\t-irsD или -c команда или -O короткие_параметры\t\t(только при запуске)\n"
+msgstr "\t-irsD или -c команда или -O короткие_параметры\t\t(только при запуске)\n"
 
-#: shell.c:2003
+#: shell.c:1953
 #, c-format
 msgid "\t-%s or -o option\n"
 msgstr "\t-%s или -o параметр\n"
 
-#: shell.c:2009
+#: shell.c:1959
 #, c-format
 msgid "Type `%s -c \"help set\"' for more information about shell options.\n"
-msgstr ""
-"Для получения дополнительных сведений о параметрах командного процессора "
-"введите «%s -c \"help set\"».\n"
+msgstr "Для получения дополнительных сведений о параметрах командного процессора введите «%s -c \"help set\"».\n"
 
-#: shell.c:2010
+#: shell.c:1960
 #, c-format
 msgid "Type `%s -c help' for more information about shell builtin commands.\n"
-msgstr ""
-"Для получения дополнительных сведений о встроенных командах введите «%s -c "
-"help».\n"
+msgstr "Для получения дополнительных сведений о встроенных командах введите «%s -c help».\n"
 
-#: shell.c:2011
+#: shell.c:1961
 #, c-format
 msgid "Use the `bashbug' command to report bugs.\n"
 msgstr "Для отправки сообщений об ошибках используйте команду «bashbug».\n"
 
-#: shell.c:2013
+#: shell.c:1963
 #, c-format
 msgid "bash home page: <http://www.gnu.org/software/bash>\n"
 msgstr "Домашняя страница bash: <http://www.gnu.org/software/bash>\n"
 
-#: shell.c:2014
+#: shell.c:1964
 #, c-format
 msgid "General help using GNU software: <http://www.gnu.org/gethelp/>\n"
-msgstr ""
-"Общая справка по использованию программ GNU: <http://www.gnu.org/gethelp/>\n"
+msgstr "Общая справка по использованию программ GNU: <http://www.gnu.org/gethelp/>\n"
 
-#: sig.c:695
+#: sig.c:707
 #, c-format
 msgid "sigprocmask: %d: invalid operation"
 msgstr "sigprocmask: %d: недопустимая операция"
@@ -1926,21 +1877,21 @@ msgstr "Неизвестный номер сигнала"
 msgid "Unknown Signal #%d"
 msgstr "Неизвестный номер сигнала %d"
 
-#: subst.c:1450 subst.c:1641
+#: subst.c:1445 subst.c:1608
 #, c-format
 msgid "bad substitution: no closing `%s' in %s"
 msgstr "неверная подстановка: нет закрывающей «%s» в %s"
 
-#: subst.c:3209
+#: subst.c:3154
 #, c-format
 msgid "%s: cannot assign list to array member"
 msgstr "%s: не удаётся присвоить список элементу массива"
 
-#: subst.c:5734 subst.c:5750
+#: subst.c:5740 subst.c:5756
 msgid "cannot make pipe for process substitution"
 msgstr "не удаётся создать конвейер для подстановки процесса"
 
-#: subst.c:5796
+#: subst.c:5798
 msgid "cannot make child for process substitution"
 msgstr "не удаётся создать дочерний процесс для подстановки"
 
@@ -1957,80 +1908,69 @@ msgstr "не удаётся открыть именованный конвейе
 #: subst.c:5873
 #, c-format
 msgid "cannot duplicate named pipe %s as fd %d"
-msgstr ""
-"не удаётся скопировать именованный конвейер %s  в файловый дескриптор %d"
+msgstr "не удаётся скопировать именованный конвейер %s  в файловый дескриптор %d"
 
-#: subst.c:5990
+#: subst.c:5959
 msgid "command substitution: ignored null byte in input"
 msgstr "подстановка команды: во входных данных проигнорирован нулевой байт"
 
-#: subst.c:6121
+#: subst.c:6083
 msgid "cannot make pipe for command substitution"
 msgstr "не удаётся создать конвейер для подстановки команды"
 
-#: subst.c:6164
+#: subst.c:6127
 msgid "cannot make child for command substitution"
 msgstr "не удаётся создать дочерний процесс для подстановки команды"
 
-#: subst.c:6190
+#: subst.c:6153
 msgid "command_substitute: cannot duplicate pipe as fd 1"
-msgstr ""
-"command_substitute: не удаётся скопировать конвейер в файловый дескриптор 1"
+msgstr "command_substitute: не удаётся скопировать конвейер в файловый дескриптор 1"
 
-#: subst.c:6641 subst.c:9483
+#: subst.c:6580 subst.c:8939
 #, c-format
 msgid "%s: invalid variable name for name reference"
 msgstr "%s: недопустимое название переменной для ссылки на имя"
 
-#: subst.c:6737 subst.c:6755 subst.c:6903
+#: subst.c:6666 subst.c:8351 subst.c:8371
+#, c-format
+msgid "%s: bad substitution"
+msgstr "%s: недопустимая подстановка"
+
+#: subst.c:6800
 #, c-format
 msgid "%s: invalid indirect expansion"
 msgstr "%s: недопустимое непрямое раскрытие"
 
-#: subst.c:6771 subst.c:6910
+#: subst.c:6807
 #, c-format
 msgid "%s: invalid variable name"
 msgstr "%s: недопустимое имя переменной"
 
-#: subst.c:6962
-#, fuzzy, c-format
-msgid "%s: parameter not set"
-msgstr "%s: параметр не задан или пустой"
-
-#: subst.c:6964
+#: subst.c:6854
 #, c-format
 msgid "%s: parameter null or not set"
 msgstr "%s: параметр не задан или пустой"
 
-#: subst.c:7201 subst.c:7216
+#: subst.c:7089 subst.c:7104
 #, c-format
 msgid "%s: substring expression < 0"
 msgstr "%s: заданное подстрокой выражение меньше нуля"
 
-#: subst.c:8839 subst.c:8860
-#, c-format
-msgid "%s: bad substitution"
-msgstr "%s: недопустимая подстановка"
-
-#: subst.c:8948
+#: subst.c:8450
 #, c-format
 msgid "$%s: cannot assign in this way"
 msgstr "$%s: такое присвоение невозможно"
 
-#: subst.c:9346
-msgid ""
-"future versions of the shell will force evaluation as an arithmetic "
-"substitution"
-msgstr ""
-"в будущих версиях командный процессор оценка будет выполняться как "
-"математическая подстановка"
+#: subst.c:8802
+msgid "future versions of the shell will force evaluation as an arithmetic substitution"
+msgstr "в будущих версиях командный процессор оценка будет выполняться как математическая подстановка"
 
-#: subst.c:9903
+#: subst.c:9349
 #, c-format
 msgid "bad substitution: no closing \"`\" in %s"
 msgstr "неверная подстановка: нет закрывающей «`» в %s"
 
-#: subst.c:10907
+#: subst.c:10298
 #, c-format
 msgid "no match: %s"
 msgstr "нет совпадений: %s"
@@ -2053,111 +1993,105 @@ msgstr "ожидается символ «)»"
 msgid "`)' expected, found %s"
 msgstr "ожидается символ «)», обнаружено %s"
 
-#: test.c:282 test.c:748 test.c:751
+#: test.c:282 test.c:744 test.c:747
 #, c-format
 msgid "%s: unary operator expected"
 msgstr "%s: ожидается унарный оператор"
 
-#: test.c:469 test.c:791
+#: test.c:469 test.c:787
 #, c-format
 msgid "%s: binary operator expected"
 msgstr "%s: ожидается бинарный оператор"
 
-#: test.c:873
+#: test.c:869
 msgid "missing `]'"
 msgstr "отсутствует символ «]»"
 
-#: trap.c:216
+#: trap.c:224
 msgid "invalid signal number"
 msgstr "недопустимый номер сигнала"
 
-#: trap.c:379
+#: trap.c:387
 #, c-format
 msgid "run_pending_traps: bad value in trap_list[%d]: %p"
 msgstr "run_pending_traps: неверное значение в trap_list[%d]: %p"
 
-#: trap.c:383
+#: trap.c:391
 #, c-format
-msgid ""
-"run_pending_traps: signal handler is SIG_DFL, resending %d (%s) to myself"
-msgstr ""
-"run_pending_traps: обработчик сигнала — SIG_DFL; повторная отправка %d (%s) "
-"самому себе"
+msgid "run_pending_traps: signal handler is SIG_DFL, resending %d (%s) to myself"
+msgstr "run_pending_traps: обработчик сигнала — SIG_DFL; повторная отправка %d (%s) самому себе"
 
-#: trap.c:439
+#: trap.c:447
 #, c-format
 msgid "trap_handler: bad signal %d"
 msgstr "trap_handler: неверный сигнал %d"
 
-#: variables.c:399
+#: variables.c:409
 #, c-format
 msgid "error importing function definition for `%s'"
 msgstr "ошибка импорта определения функции для «%s»"
 
-#: variables.c:801
+#: variables.c:814
 #, c-format
 msgid "shell level (%d) too high, resetting to 1"
 msgstr "слишком высокий уровень командного процессора (%d); сбрасывается до 1"
 
-#: variables.c:2512
+#: variables.c:2413
 msgid "make_local_variable: no function context at current scope"
 msgstr "make_local_variable: в текущей области отсутствует контекст функции"
 
-#: variables.c:2531
+#: variables.c:2432
 #, c-format
 msgid "%s: variable may not be assigned value"
 msgstr "%s: переменной не может быть присвоено значение"
 
-#: variables.c:3246
+#: variables.c:3043
 #, c-format
 msgid "%s: assigning integer to name reference"
 msgstr "%s: целое числе присваивается ссылке на имя"
 
-#: variables.c:4149
+#: variables.c:3940
 msgid "all_local_variables: no function context at current scope"
 msgstr "all_local_variables: в текущей области отсутствует контекст функции"
 
-#: variables.c:4437
+#: variables.c:4218
 #, c-format
 msgid "%s has null exportstr"
 msgstr "%s имеет пустую exportstr"
 
-#: variables.c:4442 variables.c:4451
+#: variables.c:4223 variables.c:4232
 #, c-format
 msgid "invalid character %d in exportstr for %s"
 msgstr "недопустимый символ %d в exportstr для %s"
 
-#: variables.c:4457
+#: variables.c:4238
 #, c-format
 msgid "no `=' in exportstr for %s"
 msgstr "отсутствует «=» в exportstr для %s"
 
-#: variables.c:4911
+#: variables.c:4684
 msgid "pop_var_context: head of shell_variables not a function context"
-msgstr ""
-"pop_var_context: заголовок shell_variables не является контекстом функции"
+msgstr "pop_var_context: заголовок shell_variables не является контекстом функции"
 
-#: variables.c:4924
+#: variables.c:4697
 msgid "pop_var_context: no global_variables context"
 msgstr "pop_var_context: отсутствует контекст global_variables"
 
-#: variables.c:4999
+#: variables.c:4772
 msgid "pop_scope: head of shell_variables not a temporary environment scope"
-msgstr ""
-"pop_scope: заголовок shell_variables не является областью временного "
-"окружения"
+msgstr "pop_scope: заголовок shell_variables не является областью временного окружения"
 
-#: variables.c:5862
+#: variables.c:5619
 #, c-format
 msgid "%s: %s: cannot open as FILE"
 msgstr "%s: %s: не удаётся открыть как ФАЙЛ"
 
-#: variables.c:5867
+#: variables.c:5624
 #, c-format
 msgid "%s: %s: invalid value for trace file descriptor"
 msgstr "%s: %s: недопустимое значение для дескриптора файла трассировки"
 
-#: variables.c:5912
+#: variables.c:5669
 #, c-format
 msgid "%s: %s: compatibility value out of range"
 msgstr "%s: %s: значение совместимости за пределами диапазона"
@@ -2167,12 +2101,8 @@ msgid "Copyright (C) 2016 Free Software Foundation, Inc."
 msgstr "© Free Software Foundation, Inc, 2016."
 
 #: version.c:47 version2.c:47
-msgid ""
-"License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl."
-"html>\n"
-msgstr ""
-"Лицензия GPLv3+: GNU GPL версии 3 или более поздней <http://gnu.org/licenses/"
-"gpl.html>\n"
+msgid "License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>\n"
+msgstr "Лицензия GPLv3+: GNU GPL версии 3 или более поздней <http://gnu.org/licenses/gpl.html>\n"
 
 #: version.c:86 version2.c:86
 #, c-format
@@ -2181,30 +2111,28 @@ msgstr "GNU bash, версия %s (%s)\n"
 
 #: version.c:91 version2.c:91
 msgid "This is free software; you are free to change and redistribute it."
-msgstr ""
-"Это свободное программное обеспечение. Вы можете изменять и распространять "
-"его."
+msgstr "Это свободное программное обеспечение. Вы можете изменять и распространять его."
 
 #: version.c:92 version2.c:92
 msgid "There is NO WARRANTY, to the extent permitted by law."
 msgstr "НИКАКАЯ ГАРАНТИЯ не предоставляется в пределах, допускаемых законом."
 
-#: xmalloc.c:93
+#: xmalloc.c:91
 #, c-format
 msgid "%s: cannot allocate %lu bytes (%lu bytes allocated)"
 msgstr "%s: не удаётся выделить %lu байт (выделено %lu байт)"
 
-#: xmalloc.c:95
+#: xmalloc.c:93
 #, c-format
 msgid "%s: cannot allocate %lu bytes"
 msgstr "%s: не удаётся выделить %lu байт"
 
-#: xmalloc.c:165
+#: xmalloc.c:163
 #, c-format
 msgid "%s: %s:%d: cannot allocate %lu bytes (%lu bytes allocated)"
 msgstr "%s: %s:%d: не удаётся выделить %lu байт (выделено %lu байт)"
 
-#: xmalloc.c:167
+#: xmalloc.c:165
 #, c-format
 msgid "%s: %s:%d: cannot allocate %lu bytes"
 msgstr "%s: %s:%d: не удаётся выделить %lu байт"
@@ -2218,13 +2146,8 @@ msgid "unalias [-a] name [name ...]"
 msgstr "unalias [-a] имя [имя ...]"
 
 #: builtins.c:53
-msgid ""
-"bind [-lpsvPSVX] [-m keymap] [-f filename] [-q name] [-u name] [-r keyseq] [-"
-"x keyseq:shell-command] [keyseq:readline-function or readline-command]"
-msgstr ""
-"bind [-lpvsPSVX] [-m раскладка] [-f файл] [-q имя] [-u name] [-r "
-"послед_клавиш] [-x послед_клавиш:команда_shell] [послед_клавиш:фнкц_readline "
-"или команда_readline]"
+msgid "bind [-lpsvPSVX] [-m keymap] [-f filename] [-q name] [-u name] [-r keyseq] [-x keyseq:shell-command] [keyseq:readline-function or readline-command]"
+msgstr "bind [-lpvsPSVX] [-m раскладка] [-f файл] [-q имя] [-u name] [-r послед_клавиш] [-x послед_клавиш:команда_shell] [послед_клавиш:фнкц_readline или команда_readline]"
 
 #: builtins.c:56
 msgid "break [n]"
@@ -2300,9 +2223,7 @@ msgstr "logout [n]"
 
 #: builtins.c:105
 msgid "fc [-e ename] [-lnr] [first] [last] or fc -s [pat=rep] [command]"
-msgstr ""
-"fc [-e редактор] [-lnr] [первая] [последняя] или fc -s [шаблон=замена] "
-"[команда]"
+msgstr "fc [-e редактор] [-lnr] [первая] [последняя] или fc -s [шаблон=замена] [команда]"
 
 #: builtins.c:109
 msgid "fg [job_spec]"
@@ -2321,12 +2242,8 @@ msgid "help [-dms] [pattern ...]"
 msgstr "help [-dms] [шаблон ...]"
 
 #: builtins.c:123
-msgid ""
-"history [-c] [-d offset] [n] or history -anrw [filename] or history -ps arg "
-"[arg...]"
-msgstr ""
-"history [-c] [-d смещение] [n] или history -anrw [файл] или history -ps "
-"аргумент [аргумент...]"
+msgid "history [-c] [-d offset] [n] or history -anrw [filename] or history -ps arg [arg...]"
+msgstr "history [-c] [-d смещение] [n] или history -anrw [файл] или history -ps аргумент [аргумент...]"
 
 #: builtins.c:127
 msgid "jobs [-lnprs] [jobspec ...] or jobs -x command [args]"
@@ -2337,24 +2254,16 @@ msgid "disown [-h] [-ar] [jobspec ... | pid ...]"
 msgstr "disown [-h] [-ar] [задание ... | pid ...]"
 
 #: builtins.c:134
-msgid ""
-"kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... or kill -l "
-"[sigspec]"
-msgstr ""
-"kill [-s назв_сигнала | -n номер_сигнала | -назв_сигнала] ид_процесса | "
-"назв_задания] ... или kill -l [назв_сигнала]"
+msgid "kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... or kill -l [sigspec]"
+msgstr "kill [-s назв_сигнала | -n номер_сигнала | -назв_сигнала] ид_процесса | назв_задания] ... или kill -l [назв_сигнала]"
 
 #: builtins.c:136
 msgid "let arg [arg ...]"
 msgstr "let аргумент [аргумент ...]"
 
 #: builtins.c:138
-msgid ""
-"read [-ers] [-a array] [-d delim] [-i text] [-n nchars] [-N nchars] [-p "
-"prompt] [-t timeout] [-u fd] [name ...]"
-msgstr ""
-"read [-ers] [-a массив] [-d разделитель] [-i текст] [-n число_символов] [-N "
-"число_символов] [-p приглашение] [-t тайм-аут] [-u fd] [имя ...]"
+msgid "read [-ers] [-a array] [-d delim] [-i text] [-n nchars] [-N nchars] [-p prompt] [-t timeout] [-u fd] [name ...]"
+msgstr "read [-ers] [-a массив] [-d разделитель] [-i текст] [-n число_символов] [-N число_символов] [-p приглашение] [-t тайм-аут] [-u fd] [имя ...]"
 
 #: builtins.c:140
 msgid "return [n]"
@@ -2417,8 +2326,7 @@ msgid "umask [-p] [-S] [mode]"
 msgstr "umask [-p] [-S] [режим]"
 
 #: builtins.c:177
-#, fuzzy
-msgid "wait [-fn] [id ...]"
+msgid "wait [-n] [id ...]"
 msgstr "wait [-n] [идентификатор ...]"
 
 #: builtins.c:181
@@ -2446,12 +2354,8 @@ msgid "case WORD in [PATTERN [| PATTERN]...) COMMANDS ;;]... esac"
 msgstr "case СЛОВО in [ШАБЛОН [| ШАБЛОН]...) КОМАНДЫ ;;]... esac"
 
 #: builtins.c:194
-msgid ""
-"if COMMANDS; then COMMANDS; [ elif COMMANDS; then COMMANDS; ]... [ else "
-"COMMANDS; ] fi"
-msgstr ""
-"if КОМАНДЫ; then КОМАНДЫ; [ elif КОМАНДЫ; then КОМАНДЫ; ]... [ else "
-"КОМАНДЫ; ] fi"
+msgid "if COMMANDS; then COMMANDS; [ elif COMMANDS; then COMMANDS; ]... [ else COMMANDS; ] fi"
+msgstr "if КОМАНДЫ; then КОМАНДЫ; [ elif КОМАНДЫ; then КОМАНДЫ; ]... [ else КОМАНДЫ; ] fi"
 
 #: builtins.c:196
 msgid "while COMMANDS; do COMMANDS; done"
@@ -2487,8 +2391,7 @@ msgstr "[[ выражение ]]"
 
 #: builtins.c:212
 msgid "variables - Names and meanings of some shell variables"
-msgstr ""
-"переменные — имена и значения некоторых переменных командного процессора"
+msgstr "переменные — имена и значения некоторых переменных командного процессора"
 
 #: builtins.c:215
 msgid "pushd [-n] [+N | -N | dir]"
@@ -2511,44 +2414,24 @@ msgid "printf [-v var] format [arguments]"
 msgstr "printf [-v переменная] формат [аргументы]"
 
 #: builtins.c:231
-msgid ""
-"complete [-abcdefgjksuv] [-pr] [-DE] [-o option] [-A action] [-G globpat] [-"
-"W wordlist]  [-F function] [-C command] [-X filterpat] [-P prefix] [-S "
-"suffix] [name ...]"
-msgstr ""
-"complete [-abcdefgjksuv] [-pr] [-DE] [-o параметр] [-A действие] [-G "
-"глоб_шаблон] [-W список_слов]  [-F функция] [-C команда] [-X фильтр_шабл] [-"
-"P префикс] [-S суффикс] [имя ...]"
+msgid "complete [-abcdefgjksuv] [-pr] [-DE] [-o option] [-A action] [-G globpat] [-W wordlist]  [-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] [name ...]"
+msgstr "complete [-abcdefgjksuv] [-pr] [-DE] [-o параметр] [-A действие] [-G глоб_шаблон] [-W список_слов]  [-F функция] [-C команда] [-X фильтр_шабл] [-P префикс] [-S суффикс] [имя ...]"
 
 #: builtins.c:235
-msgid ""
-"compgen [-abcdefgjksuv] [-o option] [-A action] [-G globpat] [-W wordlist]  "
-"[-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] [word]"
-msgstr ""
-"compgen [-abcdefgjksuv] [-o параметр] [-A действие] [-G глоб_шабл] [-W "
-"список_слов]  [-F функция] [-C команда] [-X фильтр_шабл] [-P префикс] [-S "
-"суффикс] [слово]"
+msgid "compgen [-abcdefgjksuv] [-o option] [-A action] [-G globpat] [-W wordlist]  [-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] [word]"
+msgstr "compgen [-abcdefgjksuv] [-o параметр] [-A действие] [-G глоб_шабл] [-W список_слов]  [-F функция] [-C команда] [-X фильтр_шабл] [-P префикс] [-S суффикс] [слово]"
 
 #: builtins.c:239
 msgid "compopt [-o|+o option] [-DE] [name ...]"
 msgstr "compopt [-o|+o параметр] [-DE] [имя ...]"
 
 #: builtins.c:242
-msgid ""
-"mapfile [-d delim] [-n count] [-O origin] [-s count] [-t] [-u fd] [-C "
-"callback] [-c quantum] [array]"
-msgstr ""
-"mapfile [-d разделитель] [-n число] [-O начало] [-s число] [-t] [-u fd] [-C "
-"callback] [-c quantum] [массив]"
+msgid "mapfile [-d delim] [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c quantum] [array]"
+msgstr "mapfile [-d разделитель] [-n число] [-O начало] [-s число] [-t] [-u fd] [-C callback] [-c quantum] [массив]"
 
 #: builtins.c:244
-#, fuzzy
-msgid ""
-"readarray [-d delim] [-n count] [-O origin] [-s count] [-t] [-u fd] [-C "
-"callback] [-c quantum] [array]"
-msgstr ""
-"readarray [-n число] [-O начало] [-s число] [-t] [-u fd] [-C callback] [-c "
-"quantum] [массив]"
+msgid "readarray [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c quantum] [array]"
+msgstr "readarray [-n число] [-O начало] [-s число] [-t] [-u fd] [-C callback] [-c quantum] [массив]"
 
 #: builtins.c:256
 msgid ""
@@ -2565,8 +2448,7 @@ msgid ""
 "      -p\tprint all defined aliases in a reusable format\n"
 "    \n"
 "    Exit Status:\n"
-"    alias returns true unless a NAME is supplied for which no alias has "
-"been\n"
+"    alias returns true unless a NAME is supplied for which no alias has been\n"
 "    defined."
 msgstr ""
 "Определение или отображение псевдонимов.\n"
@@ -2604,6 +2486,40 @@ msgstr ""
 
 #: builtins.c:291
 #, fuzzy
+#| msgid ""
+#| "Set Readline key bindings and variables.\n"
+#| "    \n"
+#| "    Bind a key sequence to a Readline function or a macro, or set a\n"
+#| "    Readline variable.  The non-option argument syntax is equivalent to\n"
+#| "    that found in ~/.inputrc, but must be passed as a single argument:\n"
+#| "    e.g., bind '\"\\C-x\\C-r\": re-read-init-file'.\n"
+#| "    \n"
+#| "    Options:\n"
+#| "      -m  keymap         Use KEYMAP as the keymap for the duration of this\n"
+#| "                         command.  Acceptable keymap names are emacs,\n"
+#| "                         emacs-standard, emacs-meta, emacs-ctlx, vi, vi-move,\n"
+#| "                         vi-command, and vi-insert.\n"
+#| "      -l                 List names of functions.\n"
+#| "      -P                 List function names and bindings.\n"
+#| "      -p                 List functions and bindings in a form that can be\n"
+#| "                         reused as input.\n"
+#| "      -S                 List key sequences that invoke macros and their values\n"
+#| "      -s                 List key sequences that invoke macros and their values\n"
+#| "                         in a form that can be reused as input.\n"
+#| "      -V                 List variable names and values\n"
+#| "      -v                 List variable names and values in a form that can\n"
+#| "                         be reused as input.\n"
+#| "      -q  function-name  Query about which keys invoke the named function.\n"
+#| "      -u  function-name  Unbind all keys which are bound to the named function.\n"
+#| "      -r  keyseq         Remove the binding for KEYSEQ.\n"
+#| "      -f  filename       Read key bindings from FILENAME.\n"
+#| "      -x  keyseq:shell-command\tCause SHELL-COMMAND to be executed when\n"
+#| "    \t\t\t\tKEYSEQ is entered.\n"
+#| "      -X\t\t     List key sequences bound with -x and associated commands\n"
+#| "                         in a form that can be reused as input.\n"
+#| "    \n"
+#| "    Exit Status:\n"
+#| "    bind returns 0 unless an unrecognized option is given or an error occurs."
 msgid ""
 "Set Readline key bindings and variables.\n"
 "    \n"
@@ -2615,30 +2531,25 @@ msgid ""
 "    Options:\n"
 "      -m  keymap         Use KEYMAP as the keymap for the duration of this\n"
 "                         command.  Acceptable keymap names are emacs,\n"
-"                         emacs-standard, emacs-meta, emacs-ctlx, vi, vi-"
-"move,\n"
+"                         emacs-standard, emacs-meta, emacs-ctlx, vi, vi-move,\n"
 "                         vi-command, and vi-insert.\n"
 "      -l                 List names of functions.\n"
 "      -P                 List function names and bindings.\n"
 "      -p                 List functions and bindings in a form that can be\n"
 "                         reused as input.\n"
-"      -S                 List key sequences that invoke macros and their "
-"values\n"
-"      -s                 List key sequences that invoke macros and their "
-"values\n"
+"      -S                 List key sequences that invoke macros and their values\n"
+"      -s                 List key sequences that invoke macros and their values\n"
 "                         in a form that can be reused as input.\n"
 "      -V                 List variable names and values\n"
 "      -v                 List variable names and values in a form that can\n"
 "                         be reused as input.\n"
 "      -q  function-name  Query about which keys invoke the named function.\n"
-"      -u  function-name  Unbind all keys which are bound to the named "
-"function.\n"
+"      -u  function-name  Unbind all keys which are bound to the named function.\n"
 "      -r  keyseq         Remove the binding for KEYSEQ.\n"
 "      -f  filename       Read key bindings from FILENAME.\n"
 "      -x  keyseq:shell-command\tCause SHELL-COMMAND to be executed when\n"
 "    \t\t\t\tKEYSEQ is entered.\n"
-"      -X                 List key sequences bound with -x and associated "
-"commands\n"
+"      -X                 List key sequences bound with -x and associated commands\n"
 "                         in a form that can be reused as input.\n"
 "    \n"
 "    Exit Status:\n"
@@ -2647,18 +2558,14 @@ msgstr ""
 "Определение привязок клавиш и переменных readline.\n"
 "    \n"
 "    Привязывает последовательность клавиш функции readline или макросу\n"
-"    или задаёт переменную readline.  Синтаксис аргументов без параметров "
-"аналогичен\n"
-"    синтаксису файла ~/.inputrc, но всё должно передаваться в одном "
-"аргументе,\n"
+"    или задаёт переменную readline.  Синтаксис аргументов без параметров аналогичен\n"
+"    синтаксису файла ~/.inputrc, но всё должно передаваться в одном аргументе,\n"
 "    например bind '\"\\C-x\\C-r\": перечитать-init-файл'.\n"
 "    \n"
 "    Параметры:\n"
-"      -m  раскладка      использовать указанную раскладку во время "
-"выполнения\n"
+"      -m  раскладка      использовать указанную раскладку во время выполнения\n"
 "                         данной команды.  Допустимые раскладки: emacs,\n"
-"                         emacs-standard, emacs-meta, emacs-ctlx, vi, vi-"
-"move,\n"
+"                         emacs-standard, emacs-meta, emacs-ctlx, vi, vi-move,\n"
 "                         vi-command и vi-insert.\n"
 "      -l                 вывести названия функций\n"
 "      -P                 вывести названия функций и их привязки\n"
@@ -2673,19 +2580,16 @@ msgstr ""
 "      -v                 вывести имена переменных и их значения\n"
 "                         в формате для повторного использования\n"
 "      -q  имя_функции\t вывести клавиши, вызывающие указанную функцию\n"
-"      -u  имя_функции    отвязать все клавиши, привязанные к указанной "
-"функции\n"
+"      -u  имя_функции    отвязать все клавиши, привязанные к указанной функции\n"
 "      -r  посл-клавиш    удалить привязку для последовательности клавиш\n"
 "      -f  файл           прочитать привязки из файла\n"
 "      -x  посл-клавиш:кмнд-shell выполнить команду bash, если введена\n"
 "    \t\t\t\tпоследовательность клавиш\n"
-"      -X\t\t     вывести последовательности клавиш, привязанные с помощью -"
-"x, и связанные команды\n"
+"      -X\t\t     вывести последовательности клавиш, привязанные с помощью -x, и связанные команды\n"
 "                         в формате для повторного использования\n"
 "    \n"
 "    Состояние выхода:\n"
-"    bind возвращает 0, если был указан допустимый параметр или не возникла "
-"ошибка."
+"    bind возвращает 0, если был указан допустимый параметр или не возникла ошибка."
 
 #: builtins.c:330
 msgid ""
@@ -2699,8 +2603,7 @@ msgid ""
 msgstr ""
 "Прерывание цикла for, while или until.\n"
 "    \n"
-"    Прерывает цикл for, while или until.  Если указано N, прерывает N "
-"вложенных\n"
+"    Прерывает цикл for, while или until.  Если указано N, прерывает N вложенных\n"
 "    циклов.\n"
 "    \n"
 "    Состояние выхода:\n"
@@ -2730,8 +2633,7 @@ msgid ""
 "    \n"
 "    Execute SHELL-BUILTIN with arguments ARGs without performing command\n"
 "    lookup.  This is useful when you wish to reimplement a shell builtin\n"
-"    as a shell function, but need to execute the builtin within the "
-"function.\n"
+"    as a shell function, but need to execute the builtin within the function.\n"
 "    \n"
 "    Exit Status:\n"
 "    Returns the exit status of SHELL-BUILTIN, or false if SHELL-BUILTIN is\n"
@@ -2740,14 +2642,11 @@ msgstr ""
 "Выполнение встроенных команд.\n"
 "    \n"
 "    Выполняет встроенную команду bash с аргументами\n"
-"    без поиска команды.  Это полезно, если нужно переопределить встроенную "
-"команду\n"
-"    как функцию командного процессора, в этой функции нужно выполнить "
-"встроенную команду.\n"
+"    без поиска команды.  Это полезно, если нужно переопределить встроенную команду\n"
+"    как функцию командного процессора, в этой функции нужно выполнить встроенную команду.\n"
 "    \n"
 "    Состояние выхода:\n"
-"    Возвращает состояние выхода встроенной команды или ложь, если указанная "
-"команда bash\n"
+"    Возвращает состояние выхода встроенной команды или ложь, если указанная команда bash\n"
 "    не является встроенной."
 
 #: builtins.c:369
@@ -2767,8 +2666,7 @@ msgid ""
 msgstr ""
 "Возвращает контекст вызова текущей подпрограммы.\n"
 "    \n"
-"    Если выражение не указано, возвращает «$line $filename».  Если выражение "
-"указано, возвращает\n"
+"    Если выражение не указано, возвращает «$line $filename».  Если выражение указано, возвращает\n"
 "    «$line $subroutine $filename». Эти дополнительные данные можно\n"
 "    использовать для трассировки стека.\n"
 "    \n"
@@ -2776,31 +2674,57 @@ msgstr ""
 "    для возврата к текущему кадру. Первый кадр имеет номер 0.\n"
 "    \n"
 "    Состояние выхода:\n"
-"    Возвращает 0, если командный процессор не выполняет функцию, или "
-"выражение\n"
+"    Возвращает 0, если командный процессор не выполняет функцию, или выражение\n"
 "    является допустимым."
 
 #: builtins.c:387
 #, fuzzy
+#| msgid ""
+#| "Change the shell working directory.\n"
+#| "    \n"
+#| "    Change the current directory to DIR.  The default DIR is the value of the\n"
+#| "    HOME shell variable.\n"
+#| "    \n"
+#| "    The variable CDPATH defines the search path for the directory containing\n"
+#| "    DIR.  Alternative directory names in CDPATH are separated by a colon (:).\n"
+#| "    A null directory name is the same as the current directory.  If DIR begins\n"
+#| "    with a slash (/), then CDPATH is not used.\n"
+#| "    \n"
+#| "    If the directory is not found, and the shell option `cdable_vars' is set,\n"
+#| "    the word is assumed to be  a variable name.  If that variable has a value,\n"
+#| "    its value is used for DIR.\n"
+#| "    \n"
+#| "    Options:\n"
+#| "        -L\tforce symbolic links to be followed: resolve symbolic links in\n"
+#| "    \tDIR after processing instances of `..'\n"
+#| "        -P\tuse the physical directory structure without following symbolic\n"
+#| "    \tlinks: resolve symbolic links in DIR before processing instances\n"
+#| "    \tof `..'\n"
+#| "        -e\tif the -P option is supplied, and the current working directory\n"
+#| "    \tcannot be determined successfully, exit with a non-zero status\n"
+#| "        -@  on systems that support it, present a file with extended attributes\n"
+#| "            as a directory containing the file attributes\n"
+#| "    \n"
+#| "    The default is to follow symbolic links, as if `-L' were specified.\n"
+#| "    `..' is processed by removing the immediately previous pathname component\n"
+#| "    back to a slash or the beginning of DIR.\n"
+#| "    \n"
+#| "    Exit Status:\n"
+#| "    Returns 0 if the directory is changed, and if $PWD is set successfully when\n"
+#| "    -P is used; non-zero otherwise."
 msgid ""
 "Change the shell working directory.\n"
 "    \n"
-"    Change the current directory to DIR.  The default DIR is the value of "
-"the\n"
+"    Change the current directory to DIR.  The default DIR is the value of the\n"
 "    HOME shell variable.\n"
 "    \n"
-"    The variable CDPATH defines the search path for the directory "
-"containing\n"
-"    DIR.  Alternative directory names in CDPATH are separated by a colon "
-"(:).\n"
-"    A null directory name is the same as the current directory.  If DIR "
-"begins\n"
+"    The variable CDPATH defines the search path for the directory containing\n"
+"    DIR.  Alternative directory names in CDPATH are separated by a colon (:).\n"
+"    A null directory name is the same as the current directory.  If DIR begins\n"
 "    with a slash (/), then CDPATH is not used.\n"
 "    \n"
-"    If the directory is not found, and the shell option `cdable_vars' is "
-"set,\n"
-"    the word is assumed to be  a variable name.  If that variable has a "
-"value,\n"
+"    If the directory is not found, and the shell option `cdable_vars' is set,\n"
+"    the word is assumed to be  a variable name.  If that variable has a value,\n"
 "    its value is used for DIR.\n"
 "    \n"
 "    Options:\n"
@@ -2816,31 +2740,25 @@ msgid ""
 "    \t\tattributes as a directory containing the file attributes\n"
 "    \n"
 "    The default is to follow symbolic links, as if `-L' were specified.\n"
-"    `..' is processed by removing the immediately previous pathname "
-"component\n"
+"    `..' is processed by removing the immediately previous pathname component\n"
 "    back to a slash or the beginning of DIR.\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns 0 if the directory is changed, and if $PWD is set successfully "
-"when\n"
+"    Returns 0 if the directory is changed, and if $PWD is set successfully when\n"
 "    -P is used; non-zero otherwise."
 msgstr ""
 "Смена рабочего каталога командного процессора.\n"
 "    \n"
-"    Изменяет текущий каталог на указанный каталог.  Каталог по умолчанию "
-"хранится в\n"
+"    Изменяет текущий каталог на указанный каталог.  Каталог по умолчанию хранится в\n"
 "    переменной $HOME командного процессора.\n"
 "    \n"
 "    Переменная $CDPATH определяет путь поиска каталога, содержащего\n"
-"    указанный каталог.  Альтернативные каталоги в $CDPATH разделяются "
-"двоеточием (:).\n"
-"    Пустое название каталога соответствует текущему каталогу.  Если каталог "
-"начинается\n"
+"    указанный каталог.  Альтернативные каталоги в $CDPATH разделяются двоеточием (:).\n"
+"    Пустое название каталога соответствует текущему каталогу.  Если каталог начинается\n"
 "    с косой черты (/), переменная $CDPATH не используется.\n"
 "    \n"
 "    Если каталог не найден и задан параметр «cdable_vars»,\n"
-"    слово считается названием переменной.  Если эта переменная содержит "
-"значение,\n"
+"    слово считается названием переменной.  Если эта переменная содержит значение,\n"
 "    оно используется для каталога.\n"
 "    \n"
 "    Параметры:\n"
@@ -2851,24 +2769,32 @@ msgstr ""
 "    \tобработки «..»\n"
 "        -e\tесли указан параметр -P, и не удаётся определить текущий\n"
 "    \tрабочий каталог, команда завершается с ненулевым состоянием\n"
-"        -@  на системах, которые это поддерживают, представляет файл с "
-"расширенными\n"
+"        -@  на системах, которые это поддерживают, представляет файл с расширенными\n"
 "            атрибутами как каталог, содержащий атрибуты файла\n"
 "    \n"
-"    По умолчанию выполняется переход по символьным ссылкам (как при указании "
-"параметра «-L»).\n"
-"    «..» обрабатывается путём удаления первого компонента пути до косой "
-"черты\n"
+"    По умолчанию выполняется переход по символьным ссылкам (как при указании параметра «-L»).\n"
+"    «..» обрабатывается путём удаления первого компонента пути до косой черты\n"
 "    или из начала каталога.\n"
 "    \n"
 "    Состояние выхода:\n"
-"    Возвращает 0, если каталог был изменён, и если $PWD был успешно "
-"установлен\n"
-"    при использовании параметра -P. В противном случае возвращается "
-"ненулевое состояние."
+"    Возвращает 0, если каталог был изменён, и если $PWD был успешно установлен\n"
+"    при использовании параметра -P. В противном случае возвращается ненулевое состояние."
 
 #: builtins.c:425
 #, fuzzy
+#| msgid ""
+#| "Print the name of the current working directory.\n"
+#| "    \n"
+#| "    Options:\n"
+#| "      -L\tprint the value of $PWD if it names the current working\n"
+#| "    \tdirectory\n"
+#| "      -P\tprint the physical directory, without any symbolic links\n"
+#| "    \n"
+#| "    By default, `pwd' behaves as if `-L' were specified.\n"
+#| "    \n"
+#| "    Exit Status:\n"
+#| "    Returns 0 unless an invalid option is given or the current directory\n"
+#| "    cannot be read."
 msgid ""
 "Print the name of the current working directory.\n"
 "    \n"
@@ -2938,12 +2864,26 @@ msgstr ""
 
 #: builtins.c:471
 #, fuzzy
+#| msgid ""
+#| "Execute a simple command or display information about commands.\n"
+#| "    \n"
+#| "    Runs COMMAND with ARGS suppressing  shell function lookup, or display\n"
+#| "    information about the specified COMMANDs.  Can be used to invoke commands\n"
+#| "    on disk when a function with the same name exists.\n"
+#| "    \n"
+#| "    Options:\n"
+#| "      -p\tuse a default value for PATH that is guaranteed to find all of\n"
+#| "    \tthe standard utilities\n"
+#| "      -v\tprint a description of COMMAND similar to the `type' builtin\n"
+#| "      -V\tprint a more verbose description of each COMMAND\n"
+#| "    \n"
+#| "    Exit Status:\n"
+#| "    Returns exit status of COMMAND, or failure if COMMAND is not found."
 msgid ""
 "Execute a simple command or display information about commands.\n"
 "    \n"
 "    Runs COMMAND with ARGS suppressing  shell function lookup, or display\n"
-"    information about the specified COMMANDs.  Can be used to invoke "
-"commands\n"
+"    information about the specified COMMANDs.  Can be used to invoke commands\n"
 "    on disk when a function with the same name exists.\n"
 "    \n"
 "    Options:\n"
@@ -2957,15 +2897,12 @@ msgid ""
 msgstr ""
 "Выполнение простой команды или вывод информации о командах.\n"
 "    \n"
-"    Выполняет команду с аргументами без поиска функции командного "
-"процессора\n"
-"    или выводит информацию об указанных командах.  Можно использовать для "
-"вызова команд\n"
+"    Выполняет команду с аргументами без поиска функции командного процессора\n"
+"    или выводит информацию об указанных командах.  Можно использовать для вызова команд\n"
 "    с диска, когда функция с таким именем уже существует.\n"
 "    \n"
 "    Параметры:\n"
-"      -p\tиспользовать значение по умолчанию для $PATH, чтобы "
-"гарантированно\n"
+"      -p\tиспользовать значение по умолчанию для $PATH, чтобы гарантированно\n"
 "    \tнайти все стандартные команды\n"
 "      -v\tвывести описание команды аналогично встроенной команде «type»\n"
 "      -V\tвывести более подробное описание каждой команды\n"
@@ -2975,6 +2912,42 @@ msgstr ""
 
 #: builtins.c:490
 #, fuzzy
+#| msgid ""
+#| "Set variable values and attributes.\n"
+#| "    \n"
+#| "    Declare variables and give them attributes.  If no NAMEs are given,\n"
+#| "    display the attributes and values of all variables.\n"
+#| "    \n"
+#| "    Options:\n"
+#| "      -f\trestrict action or display to function names and definitions\n"
+#| "      -F\trestrict display to function names only (plus line number and\n"
+#| "    \tsource file when debugging)\n"
+#| "      -g\tcreate global variables when used in a shell function; otherwise\n"
+#| "    \tignored\n"
+#| "      -p\tdisplay the attributes and value of each NAME\n"
+#| "    \n"
+#| "    Options which set attributes:\n"
+#| "      -a\tto make NAMEs indexed arrays (if supported)\n"
+#| "      -A\tto make NAMEs associative arrays (if supported)\n"
+#| "      -i\tto make NAMEs have the `integer' attribute\n"
+#| "      -l\tto convert NAMEs to lower case on assignment\n"
+#| "      -n\tmake NAME a reference to the variable named by its value\n"
+#| "      -r\tto make NAMEs readonly\n"
+#| "      -t\tto make NAMEs have the `trace' attribute\n"
+#| "      -u\tto convert NAMEs to upper case on assignment\n"
+#| "      -x\tto make NAMEs export\n"
+#| "    \n"
+#| "    Using `+' instead of `-' turns off the given attribute.\n"
+#| "    \n"
+#| "    Variables with the integer attribute have arithmetic evaluation (see\n"
+#| "    the `let' command) performed when the variable is assigned a value.\n"
+#| "    \n"
+#| "    When used in a function, `declare' makes NAMEs local, as with the `local'\n"
+#| "    command.  The `-g' option suppresses this behavior.\n"
+#| "    \n"
+#| "    Exit Status:\n"
+#| "    Returns success unless an invalid option is supplied or a variable\n"
+#| "    assignment error occurs."
 msgid ""
 "Set variable values and attributes.\n"
 "    \n"
@@ -2993,11 +2966,11 @@ msgid ""
 "      -a\tto make NAMEs indexed arrays (if supported)\n"
 "      -A\tto make NAMEs associative arrays (if supported)\n"
 "      -i\tto make NAMEs have the `integer' attribute\n"
-"      -l\tto convert the value of each NAME to lower case on assignment\n"
+"      -l\tto convert NAMEs to lower case on assignment\n"
 "      -n\tmake NAME a reference to the variable named by its value\n"
 "      -r\tto make NAMEs readonly\n"
 "      -t\tto make NAMEs have the `trace' attribute\n"
-"      -u\tto convert the value of each NAME to upper case on assignment\n"
+"      -u\tto convert NAMEs to upper case on assignment\n"
 "      -x\tto make NAMEs export\n"
 "    \n"
 "    Using `+' instead of `-' turns off the given attribute.\n"
@@ -3005,8 +2978,7 @@ msgid ""
 "    Variables with the integer attribute have arithmetic evaluation (see\n"
 "    the `let' command) performed when the variable is assigned a value.\n"
 "    \n"
-"    When used in a function, `declare' makes NAMEs local, as with the "
-"`local'\n"
+"    When used in a function, `declare' makes NAMEs local, as with the `local'\n"
 "    command.  The `-g' option suppresses this behavior.\n"
 "    \n"
 "    Exit Status:\n"
@@ -3015,16 +2987,14 @@ msgid ""
 msgstr ""
 "Указание значений переменных и атрибутов.\n"
 "    \n"
-"    Объявление переменных и назначение им атрибутов.  Если имена не "
-"указаны,\n"
+"    Объявление переменных и назначение им атрибутов.  Если имена не указаны,\n"
 "    выводит атрибуты и значения всех переменных.\n"
 "    \n"
 "    Параметры:\n"
 "      -f\tограничить действие или вывести имена функций и их определения\n"
 "      -F\tвывести только имена функций (а также номер строки\n"
 "    \tв исходном файле при отладке)\n"
-"      -g\tсоздать глобальные переменные при использовании в функции "
-"командного процессора; в противном случае\n"
+"      -g\tсоздать глобальные переменные при использовании в функции командного процессора; в противном случае\n"
 "    \tигнорируется\n"
 "      -p\tвывести атрибуты и значения каждого имени\n"
 "    \n"
@@ -3033,8 +3003,7 @@ msgstr ""
 "      -A\tсделать имена ассоциативными массивами (если поддерживается)\n"
 "      -i\tназначить именам атрибут «integer»\n"
 "      -l\tперевести имена в нижний регистр при назначении\n"
-"      -n\tсделать имя ссылкой на переменную с именем, соответствующим её "
-"значению\n"
+"      -n\tсделать имя ссылкой на переменную с именем, соответствующим её значению\n"
 "      -r\tотключить запись в имена\n"
 "      -t\tназначить именам атрибут «trace»\n"
 "      -l\tперевести имена в верхний регистр при назначении\n"
@@ -3043,11 +3012,9 @@ msgstr ""
 "    Знак «+» вместо «-» отключает указанный атрибут.\n"
 "    \n"
 "    Переменные с атрибутом «integer» содержат математическое выражение (см.\n"
-"    команду «let»), которое рассчитывается при назначении значения "
-"переменной.\n"
+"    команду «let»), которое рассчитывается при назначении значения переменной.\n"
 "    \n"
-"    При использовании в функции «declare» делает имена локальными как при "
-"использовании\n"
+"    При использовании в функции «declare» делает имена локальными как при использовании\n"
 "    данной команды.  Параметр «-g» отключает это поведение.\n"
 "    \n"
 "    Состояние выхода:\n"
@@ -3056,6 +3023,10 @@ msgstr ""
 
 #: builtins.c:530
 #, fuzzy
+#| msgid ""
+#| "Set variable values and attributes.\n"
+#| "    \n"
+#| "    Obsolete.  See `help declare'."
 msgid ""
 "Set variable values and attributes.\n"
 "    \n"
@@ -3081,26 +3052,52 @@ msgid ""
 msgstr ""
 "Определение локальных переменных.\n"
 "    \n"
-"    Создаёт локальную переменную с указанным именем и присваивает ей "
-"указанное значение.  Параметром может быть\n"
+"    Создаёт локальную переменную с указанным именем и присваивает ей указанное значение.  Параметром может быть\n"
 "    любой параметр, принимаемый командой «declare».\n"
 "    \n"
-"    Локальные переменные можно использовать только внутри функции. Они "
-"видны\n"
+"    Локальные переменные можно использовать только внутри функции. Они видны\n"
 "    только той функции, в которой они определены, и её дочерним функциям.\n"
 "    \n"
 "    Состояние выхода:\n"
 "    Возвращает успех, если был указан допустимый параметр, не возникла\n"
-"    ошибка присвоения переменной или командный процессор не выполняет "
-"функцию."
+"    ошибка присвоения переменной или командный процессор не выполняет функцию."
 
 #: builtins.c:555
 #, fuzzy
+#| msgid ""
+#| "Write arguments to the standard output.\n"
+#| "    \n"
+#| "    Display the ARGs, separated by a single space character and followed by a\n"
+#| "    newline, on the standard output.\n"
+#| "    \n"
+#| "    Options:\n"
+#| "      -n\tdo not append a newline\n"
+#| "      -e\tenable interpretation of the following backslash escapes\n"
+#| "      -E\texplicitly suppress interpretation of backslash escapes\n"
+#| "    \n"
+#| "    `echo' interprets the following backslash-escaped characters:\n"
+#| "      \\a\talert (bell)\n"
+#| "      \\b\tbackspace\n"
+#| "      \\c\tsuppress further output\n"
+#| "      \\e\tescape character\n"
+#| "      \\E\tescape character\n"
+#| "      \\f\tform feed\n"
+#| "      \\n\tnew line\n"
+#| "      \\r\tcarriage return\n"
+#| "      \\t\thorizontal tab\n"
+#| "      \\v\tvertical tab\n"
+#| "      \\\\\tbackslash\n"
+#| "      \\0nnn\tthe character whose ASCII code is NNN (octal).  NNN can be\n"
+#| "    \t0 to 3 octal digits\n"
+#| "      \\xHH\tthe eight-bit character whose value is HH (hexadecimal).  HH\n"
+#| "    \tcan be one or two hex digits\n"
+#| "    \n"
+#| "    Exit Status:\n"
+#| "    Returns success unless a write error occurs."
 msgid ""
 "Write arguments to the standard output.\n"
 "    \n"
-"    Display the ARGs, separated by a single space character and followed by "
-"a\n"
+"    Display the ARGs, separated by a single space character and followed by a\n"
 "    newline, on the standard output.\n"
 "    \n"
 "    Options:\n"
@@ -3130,19 +3127,15 @@ msgid ""
 msgstr ""
 "Вывод аргументов на стандартный вывод.\n"
 "    \n"
-"    Выводит аргументы, разделённые пробелом, добавляя в конце символ новой "
-"строки,\n"
+"    Выводит аргументы, разделённые пробелом, добавляя в конце символ новой строки,\n"
 "    на стандартный вывод.\n"
 "    \n"
 "    Параметры:\n"
 "      -n\tне добавлять символ новой строки\n"
-"      -e\tвключить интерпретацию символов, экранированных обратной косой "
-"чертой\n"
-"      -E\tявно отключить интерпретацию символов, экранированных обратной "
-"косой чертой\n"
+"      -e\tвключить интерпретацию символов, экранированных обратной косой чертой\n"
+"      -E\tявно отключить интерпретацию символов, экранированных обратной косой чертой\n"
 "    \n"
-"    echo интерпретирует следующие символы, экранированные обратной косой "
-"чертой:\n"
+"    echo интерпретирует следующие символы, экранированные обратной косой чертой:\n"
 "      \\a\tоповещение (звуковой сигнал)\n"
 "      \\b\tbackspace\n"
 "      \\c\tотключение дальнейшего вывода\n"
@@ -3154,11 +3147,9 @@ msgstr ""
 "      \\t\tгоризонтальная табуляция\n"
 "      \\v\tвертикальная табуляция\n"
 "      \\\\\tобратная косая черта\n"
-"      \\0nnn\tсимвол с ASCII-кодом NNN (восьмеричным)  NNN может быть "
-"длиной\n"
+"      \\0nnn\tсимвол с ASCII-кодом NNN (восьмеричным)  NNN может быть длиной\n"
 "    \tот 0 до 3 восьмеричных цифр\n"
-"      \\xHH\tвосьмиразрядный символ, значение которого — HH "
-"(шестнадцатеричное)  HH\n"
+"      \\xHH\tвосьмиразрядный символ, значение которого — HH (шестнадцатеричное)  HH\n"
 "    \tможет быть одной или двумя шестнадцатеричными цифрами\n"
 "    \n"
 "    Состояние выхода:\n"
@@ -3178,8 +3169,7 @@ msgid ""
 msgstr ""
 "Вывод аргументов на стандартный вывод.\n"
 "    \n"
-"    Выводит аргументы на стандартный вывод, добавляя в конце символ новой "
-"строки.\n"
+"    Выводит аргументы на стандартный вывод, добавляя в конце символ новой строки.\n"
 "    \n"
 "    Параметры:\n"
 "      -n\tне добавлять символ новой строки\n"
@@ -3215,16 +3205,13 @@ msgid ""
 msgstr ""
 "Включение и отключение встроенных команд командного процессора.\n"
 "    \n"
-"    Включает и отключает команды, встроенные в командный процессор.  "
-"Отключение позволит\n"
-"    выполнить команду с диска, название которой совпадает с названием "
-"встроенной команды,\n"
+"    Включает и отключает команды, встроенные в командный процессор.  Отключение позволит\n"
+"    выполнить команду с диска, название которой совпадает с названием встроенной команды,\n"
 "    без указания полного пути к ней.\n"
 "    \n"
 "    Параметры:\n"
 "      -a\tпоказать список встроенных команд и их состояние\n"
-"      -n\tотключить все указанные имена или вывести список отключённых "
-"команд\n"
+"      -n\tотключить все указанные имена или вывести список отключённых команд\n"
 "      -p\tпоказать список встроенных команд\n"
 "      -s\tпоказать только названия встроенных команд «special» Posix\n"
 "    \n"
@@ -3238,15 +3225,13 @@ msgstr ""
 "    а не встроенную в командный процессор, введите «enable -n test».\n"
 "    \n"
 "    Состояние выхода:\n"
-"    Возвращает успех, если указанное имя не является встроенной командой или "
-"не произошла ошибка."
+"    Возвращает успех, если указанное имя не является встроенной командой или не произошла ошибка."
 
 #: builtins.c:634
 msgid ""
 "Execute arguments as a shell command.\n"
 "    \n"
-"    Combine ARGs into a single string, use the result as input to the "
-"shell,\n"
+"    Combine ARGs into a single string, use the result as input to the shell,\n"
 "    and execute the resulting commands.\n"
 "    \n"
 "    Exit Status:\n"
@@ -3309,8 +3294,7 @@ msgstr ""
 "    буквы идёт двоеточие, считается, что у параметра есть аргумент,\n"
 "    который должен быть отделён пробелом.\n"
 "    \n"
-"    При каждом своём вызове getopts поместит следующий параметр в "
-"переменную\n"
+"    При каждом своём вызове getopts поместит следующий параметр в переменную\n"
 "    $имя, проинициализировав это имя, если оно не существует,\n"
 "    и проиндексирует следующий обрабатываемый аргумент в переменной\n"
 "    $OPTIND.  Переменная $OPTIND инициализируется при каждом вызове\n"
@@ -3318,40 +3302,51 @@ msgstr ""
 "    getopts помещает этот аргумент в переменную $OPTARG.\n"
 "    \n"
 "    getopts сообщает об ошибках двумя способами.  Если первый символ\n"
-"    в «строке_параметров» является двоеточием, getopts включает режим "
-"молчания.  В этом\n"
+"    в «строке_параметров» является двоеточием, getopts включает режим молчания.  В этом\n"
 "    режиме сообщения об ошибках не выводятся.  Если указан неверный\n"
 "    параметр, getopts помещает символ параметра в переменную $OPTARG.  Если\n"
 "    обязательный аргумент не найден, getopts помещает «:» в «имя»\n"
-"    и задаёт для $OPTARG символ найденного параметра.  Если getopts не в "
-"режиме\n"
+"    и задаёт для $OPTARG символ найденного параметра.  Если getopts не в режиме\n"
 "    молчания, и был указан неверный параметр, getopts помещает «?»\n"
-"    в НАЗВАНИЕ и удаляет переменную OPTARG.  Если обязательный аргумент не "
-"найден, в НАЗВАНИЕ\n"
+"    в НАЗВАНИЕ и удаляет переменную OPTARG.  Если обязательный аргумент не найден, в НАЗВАНИЕ\n"
 "    помещается «?», переменная OPTARG удаляется и выводится диагностическое\n"
 "    сообщение.\n"
 "    \n"
 "    Если переменная OPTERR имеет значение 0, getopts отключает\n"
 "    вывод сообщений об ошибках, даже если первый символ переменной\n"
-"    OPTSTRING не является двоеточием.  По умолчанию переменная OPTERR имеет "
-"значение 1.\n"
+"    OPTSTRING не является двоеточием.  По умолчанию переменная OPTERR имеет значение 1.\n"
 "    \n"
 "    Getopts обычно анализирует позиционные параметры ($0–$9), но если\n"
 "    задано больше аргументов, анализируются последние.\n"
 "    \n"
 "    Состояние выхода:\n"
-"    Возвращает успех, если найден параметр. Возвращает ошибку, если "
-"достигнут\n"
+"    Возвращает успех, если найден параметр. Возвращает ошибку, если достигнут\n"
 "    конец параметров или возникла ошибка."
 
 #: builtins.c:688
 #, fuzzy
+#| msgid ""
+#| "Replace the shell with the given command.\n"
+#| "    \n"
+#| "    Execute COMMAND, replacing this shell with the specified program.\n"
+#| "    ARGUMENTS become the arguments to COMMAND.  If COMMAND is not specified,\n"
+#| "    any redirections take effect in the current shell.\n"
+#| "    \n"
+#| "    Options:\n"
+#| "      -a name\tpass NAME as the zeroth argument to COMMAND\n"
+#| "      -c\t\texecute COMMAND with an empty environment\n"
+#| "      -l\t\tplace a dash in the zeroth argument to COMMAND\n"
+#| "    \n"
+#| "    If the command cannot be executed, a non-interactive shell exits, unless\n"
+#| "    the shell option `execfail' is set.\n"
+#| "    \n"
+#| "    Exit Status:\n"
+#| "    Returns success unless COMMAND is not found or a redirection error occurs."
 msgid ""
 "Replace the shell with the given command.\n"
 "    \n"
 "    Execute COMMAND, replacing this shell with the specified program.\n"
-"    ARGUMENTS become the arguments to COMMAND.  If COMMAND is not "
-"specified,\n"
+"    ARGUMENTS become the arguments to COMMAND.  If COMMAND is not specified,\n"
 "    any redirections take effect in the current shell.\n"
 "    \n"
 "    Options:\n"
@@ -3359,20 +3354,16 @@ msgid ""
 "      -c\texecute COMMAND with an empty environment\n"
 "      -l\tplace a dash in the zeroth argument to COMMAND\n"
 "    \n"
-"    If the command cannot be executed, a non-interactive shell exits, "
-"unless\n"
+"    If the command cannot be executed, a non-interactive shell exits, unless\n"
 "    the shell option `execfail' is set.\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns success unless COMMAND is not found or a redirection error "
-"occurs."
+"    Returns success unless COMMAND is not found or a redirection error occurs."
 msgstr ""
 "Замена командного процессора указанной командой.\n"
 "    \n"
-"    Выполняет команду, заменяя текущий командный процессор указанной "
-"программой.\n"
-"    Указанные аргументы становятся аргументами для команды.  Если команда не "
-"указана,\n"
+"    Выполняет команду, заменяя текущий командный процессор указанной программой.\n"
+"    Указанные аргументы становятся аргументами для команды.  Если команда не указана,\n"
 "    все перенаправления будет выполняться в текущем командном процессоре.\n"
 "    \n"
 "    Параметры:\n"
@@ -3384,8 +3375,7 @@ msgstr ""
 "    закроется (если только на задан «execfail»).\n"
 "    \n"
 "    Состояние выхода:\n"
-"    Возвращает успех, если команда не была найдена или не возникла ошибка "
-"перенаправления."
+"    Возвращает успех, если команда не была найдена или не возникла ошибка перенаправления."
 
 #: builtins.c:709
 msgid ""
@@ -3403,8 +3393,7 @@ msgstr ""
 msgid ""
 "Exit a login shell.\n"
 "    \n"
-"    Exits a login shell with exit status N.  Returns an error if not "
-"executed\n"
+"    Exits a login shell with exit status N.  Returns an error if not executed\n"
 "    in a login shell."
 msgstr ""
 "Выход из командного процессора login.\n"
@@ -3416,15 +3405,13 @@ msgstr ""
 msgid ""
 "Display or execute commands from the history list.\n"
 "    \n"
-"    fc is used to list or edit and re-execute commands from the history "
-"list.\n"
+"    fc is used to list or edit and re-execute commands from the history list.\n"
 "    FIRST and LAST can be numbers specifying the range, or FIRST can be a\n"
 "    string, which means the most recent command beginning with that\n"
 "    string.\n"
 "    \n"
 "    Options:\n"
-"      -e ENAME\tselect which editor to use.  Default is FCEDIT, then "
-"EDITOR,\n"
+"      -e ENAME\tselect which editor to use.  Default is FCEDIT, then EDITOR,\n"
 "    \t\tthen vi\n"
 "      -l \tlist lines instead of editing\n"
 "      -n\tomit line numbers when listing\n"
@@ -3438,15 +3425,12 @@ msgid ""
 "    the last command.\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns success or status of executed command; non-zero if an error "
-"occurs."
+"    Returns success or status of executed command; non-zero if an error occurs."
 msgstr ""
 "Отображение или выполнение команд из журнала.\n"
 "    \n"
-"    fc выводит список команд из журнала или позволяет изменить и повторно "
-"выполнить их.\n"
-"    Аргументы «первая» и «последняя» могут быть числами, определяющими "
-"диапазон.\n"
+"    fc выводит список команд из журнала или позволяет изменить и повторно выполнить их.\n"
+"    Аргументы «первая» и «последняя» могут быть числами, определяющими диапазон.\n"
 "    Аргумент «первая» также может быть строкой, которая означает\n"
 "    последнюю команду, начинающуюся с этой строки.\n"
 "    \n"
@@ -3461,13 +3445,11 @@ msgstr ""
 "    выполняется повторно после замены старая=новая.\n"
 "    \n"
 "    Полезный псевдоним для команды — r='fc -s'. Так если ввести «r cc»,\n"
-"    будет выполнена последняя команда, начинающаяся с «cc», а если ввести "
-"«r»,\n"
+"    будет выполнена последняя команда, начинающаяся с «cc», а если ввести «r»,\n"
 "    будет выполнена последняя команда.\n"
 "    \n"
 "    Состояние выхода:\n"
-"    Возвращает успех или состояние выполненной команды. В случае ошибки "
-"возвращает ненулевое состояние."
+"    Возвращает успех или состояние выполненной команды. В случае ошибки возвращает ненулевое состояние."
 
 #: builtins.c:758
 msgid ""
@@ -3487,17 +3469,14 @@ msgstr ""
 "    текущее задание.\n"
 "    \n"
 "    Состояние выхода:\n"
-"    Возвращает состояние команды, переведённой в интерактивный режим, или "
-"ошибку, если возникла ошибка."
+"    Возвращает состояние команды, переведённой в интерактивный режим, или ошибку, если возникла ошибка."
 
 #: builtins.c:773
 msgid ""
 "Move jobs to the background.\n"
 "    \n"
-"    Place the jobs identified by each JOB_SPEC in the background, as if "
-"they\n"
-"    had been started with `&'.  If JOB_SPEC is not present, the shell's "
-"notion\n"
+"    Place the jobs identified by each JOB_SPEC in the background, as if they\n"
+"    had been started with `&'.  If JOB_SPEC is not present, the shell's notion\n"
 "    of the current job is used.\n"
 "    \n"
 "    Exit Status:\n"
@@ -3510,17 +3489,35 @@ msgstr ""
 "    текущего задания.\n"
 "    \n"
 "    Состояние выхода:\n"
-"    Возвращает успех, если не включено управление заданиями или не произошла "
-"ошибка."
+"    Возвращает успех, если не включено управление заданиями или не произошла ошибка."
 
 #: builtins.c:787
 #, fuzzy
+#| msgid ""
+#| "Remember or display program locations.\n"
+#| "    \n"
+#| "    Determine and remember the full pathname of each command NAME.  If\n"
+#| "    no arguments are given, information about remembered commands is displayed.\n"
+#| "    \n"
+#| "    Options:\n"
+#| "      -d\t\tforget the remembered location of each NAME\n"
+#| "      -l\t\tdisplay in a format that may be reused as input\n"
+#| "      -p pathname\tuse PATHNAME as the full pathname of NAME\n"
+#| "      -r\t\tforget all remembered locations\n"
+#| "      -t\t\tprint the remembered location of each NAME, preceding\n"
+#| "    \t\teach location with the corresponding NAME if multiple\n"
+#| "    \t\tNAMEs are given\n"
+#| "    Arguments:\n"
+#| "      NAME\t\tEach NAME is searched for in $PATH and added to the list\n"
+#| "    \t\tof remembered commands.\n"
+#| "    \n"
+#| "    Exit Status:\n"
+#| "    Returns success unless NAME is not found or an invalid option is given."
 msgid ""
 "Remember or display program locations.\n"
 "    \n"
 "    Determine and remember the full pathname of each command NAME.  If\n"
-"    no arguments are given, information about remembered commands is "
-"displayed.\n"
+"    no arguments are given, information about remembered commands is displayed.\n"
 "    \n"
 "    Options:\n"
 "      -d\tforget the remembered location of each NAME\n"
@@ -3555,11 +3552,28 @@ msgstr ""
 "    \t\tзапомненных команд.\n"
 "    \n"
 "    Состояние выхода:\n"
-"    Возвращает успех, если команда была найдена или был указан допустимый "
-"параметр."
+"    Возвращает успех, если команда была найдена или был указан допустимый параметр."
 
 #: builtins.c:812
 #, fuzzy
+#| msgid ""
+#| "Display information about builtin commands.\n"
+#| "    \n"
+#| "    Displays brief summaries of builtin commands.  If PATTERN is\n"
+#| "    specified, gives detailed help on all commands matching PATTERN,\n"
+#| "    otherwise the list of help topics is printed.\n"
+#| "    \n"
+#| "    Options:\n"
+#| "      -d\toutput short description for each topic\n"
+#| "      -m\tdisplay usage in pseudo-manpage format\n"
+#| "      -s\toutput only a short usage synopsis for each topic matching\n"
+#| "    \tPATTERN\n"
+#| "    \n"
+#| "    Arguments:\n"
+#| "      PATTERN\tPattern specifiying a help topic\n"
+#| "    \n"
+#| "    Exit Status:\n"
+#| "    Returns success unless PATTERN is not found or an invalid option is given."
 msgid ""
 "Display information about builtin commands.\n"
 "    \n"
@@ -3574,17 +3588,15 @@ msgid ""
 "    \t\tPATTERN\n"
 "    \n"
 "    Arguments:\n"
-"      PATTERN\tPattern specifying a help topic\n"
+"      PATTERN\tPattern specifiying a help topic\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns success unless PATTERN is not found or an invalid option is "
-"given."
+"    Returns success unless PATTERN is not found or an invalid option is given."
 msgstr ""
 "Вывод информации о встроенных командах.\n"
 "    \n"
 "    Показывает краткую справку о встроенных командах.  Если указан\n"
-"    шаблон, выводит подробную справку по всем командам, удовлетворяющим "
-"шаблону.\n"
+"    шаблон, выводит подробную справку по всем командам, удовлетворяющим шаблону.\n"
 "    В противном случае выводится список разделов справки.\n"
 "    \n"
 "    Параметры:\n"
@@ -3597,11 +3609,40 @@ msgstr ""
 "      ШАБЛОН\tшаблон, определяющий раздел справки\n"
 "    \n"
 "    Состояние выхода:\n"
-"    Возвращает успех, если был найден шаблон или был указан допустимый "
-"параметр."
+"    Возвращает успех, если был найден шаблон или был указан допустимый параметр."
 
 #: builtins.c:836
 #, fuzzy
+#| msgid ""
+#| "Display or manipulate the history list.\n"
+#| "    \n"
+#| "    Display the history list with line numbers, prefixing each modified\n"
+#| "    entry with a `*'.  An argument of N lists only the last N entries.\n"
+#| "    \n"
+#| "    Options:\n"
+#| "      -c\tclear the history list by deleting all of the entries\n"
+#| "      -d offset\tdelete the history entry at offset OFFSET.\n"
+#| "    \n"
+#| "      -a\tappend history lines from this session to the history file\n"
+#| "      -n\tread all history lines not already read from the history file\n"
+#| "      -r\tread the history file and append the contents to the history\n"
+#| "    \tlist\n"
+#| "      -w\twrite the current history to the history file\n"
+#| "    \tand append them to the history list\n"
+#| "    \n"
+#| "      -p\tperform history expansion on each ARG and display the result\n"
+#| "    \twithout storing it in the history list\n"
+#| "      -s\tappend the ARGs to the history list as a single entry\n"
+#| "    \n"
+#| "    If FILENAME is given, it is used as the history file.  Otherwise,\n"
+#| "    if $HISTFILE has a value, that is used, else ~/.bash_history.\n"
+#| "    \n"
+#| "    If the $HISTTIMEFORMAT variable is set and not null, its value is used\n"
+#| "    as a format string for strftime(3) to print the time stamp associated\n"
+#| "    with each displayed history entry.  No time stamps are printed otherwise.\n"
+#| "    \n"
+#| "    Exit Status:\n"
+#| "    Returns success unless an invalid option is given or an error occurs."
 msgid ""
 "Display or manipulate the history list.\n"
 "    \n"
@@ -3610,8 +3651,7 @@ msgid ""
 "    \n"
 "    Options:\n"
 "      -c\tclear the history list by deleting all of the entries\n"
-"      -d offset\tdelete the history entry at position OFFSET. Negative\n"
-"    \t\toffsets count back from the end of the history list\n"
+"      -d offset\tdelete the history entry at position OFFSET.\n"
 "    \n"
 "      -a\tappend history lines from this session to the history file\n"
 "      -n\tread all history lines not already read from the history file\n"
@@ -3629,8 +3669,7 @@ msgid ""
 "    \n"
 "    If the HISTTIMEFORMAT variable is set and not null, its value is used\n"
 "    as a format string for strftime(3) to print the time stamp associated\n"
-"    with each displayed history entry.  No time stamps are printed "
-"otherwise.\n"
+"    with each displayed history entry.  No time stamps are printed otherwise.\n"
 "    \n"
 "    Exit Status:\n"
 "    Returns success unless an invalid option is given or an error occurs."
@@ -3638,16 +3677,14 @@ msgstr ""
 "Отображение или изменение журнала команд.\n"
 "    \n"
 "    Выводит журнал команд с номерами строк и звёздочками (*) перед всеми\n"
-"    изменёнными записями.  С аргументом N показываются только последние N "
-"записей.\n"
+"    изменёнными записями.  С аргументом N показываются только последние N записей.\n"
 "    \n"
 "    Параметры:\n"
 "      -c\tочистить журнал, удалив из него все записи\n"
 "      -d смещение\tудалить запись журнала по указанному смещению\n"
 "    \n"
 "      -a\tдобавить журнал текущего сеанса в файл журнала\n"
-"      -n\tпрочитать все записи, которые ещё не были прочитаны из файла "
-"журнала\n"
+"      -n\tпрочитать все записи, которые ещё не были прочитаны из файла журнала\n"
 "      -r\tпрочитать файл журнала и добавить его содержимое\n"
 "    \tв журнал\n"
 "      -w\tзаписать текущий журнал в файл журнала\n"
@@ -3658,21 +3695,38 @@ msgstr ""
 "      -s\tдобавить аргументы в журнал как одну запись\n"
 "    \n"
 "    Если указан файл, он используется как файл журнала.  В противном случае\n"
-"    если $HISTFILE содержит значение, используется этот файл, иначе — файл "
-"~/.bash_history.\n"
+"    если $HISTFILE содержит значение, используется этот файл, иначе — файл ~/.bash_history.\n"
 "    \n"
-"    Если переменная $HISTTIMEFORMAT задана и не является пустой, её "
-"значение\n"
+"    Если переменная $HISTTIMEFORMAT задана и не является пустой, её значение\n"
 "    используется как строка форматирования для strftime(3) для вывода метки\n"
-"    времени для каждой показанной записи журнала.  В противном случае метки "
-"времени не будут показаны.\n"
+"    времени для каждой показанной записи журнала.  В противном случае метки времени не будут показаны.\n"
 "    \n"
 "    Состояние выхода:\n"
-"    Возвращает успех, если был указан допустимый параметр или не возникла "
-"ошибка."
+"    Возвращает успех, если был указан допустимый параметр или не возникла ошибка."
 
-#: builtins.c:873
+#: builtins.c:872
 #, fuzzy
+#| msgid ""
+#| "Display status of jobs.\n"
+#| "    \n"
+#| "    Lists the active jobs.  JOBSPEC restricts output to that job.\n"
+#| "    Without options, the status of all active jobs is displayed.\n"
+#| "    \n"
+#| "    Options:\n"
+#| "      -l\tlists process IDs in addition to the normal information\n"
+#| "      -n\tlist only processes that have changed status since the last\n"
+#| "    \tnotification\n"
+#| "      -p\tlists process IDs only\n"
+#| "      -r\trestrict output to running jobs\n"
+#| "      -s\trestrict output to stopped jobs\n"
+#| "    \n"
+#| "    If -x is supplied, COMMAND is run after all job specifications that\n"
+#| "    appear in ARGS have been replaced with the process ID of that job's\n"
+#| "    process group leader.\n"
+#| "    \n"
+#| "    Exit Status:\n"
+#| "    Returns success unless an invalid option is given or an error occurs.\n"
+#| "    If -x is used, returns the exit status of COMMAND."
 msgid ""
 "Display status of jobs.\n"
 "    \n"
@@ -3697,14 +3751,11 @@ msgid ""
 msgstr ""
 "Отображение состояния заданий.\n"
 "    \n"
-"    Выводит список активных заданий.  Если указан номер задания, выводится "
-"только это задание.\n"
-"    Если не указать параметры, будет показано состояние всех активных "
-"заданий.\n"
+"    Выводит список активных заданий.  Если указан номер задания, выводится только это задание.\n"
+"    Если не указать параметры, будет показано состояние всех активных заданий.\n"
 "    \n"
 "    Параметры:\n"
-"      -l\tпоказать идентификаторы процессов в дополнение к обычной "
-"информации\n"
+"      -l\tпоказать идентификаторы процессов в дополнение к обычной информации\n"
 "      -n\tпоказать только те процессы, у которых изменилось состояние\n"
 "    \tс момента после последнего уведомления\n"
 "      -p\tпоказать только идентификаторы процессов\n"
@@ -3716,12 +3767,25 @@ msgstr ""
 "    лидера группы процессов задания.\n"
 "    \n"
 "    Состояние выхода:\n"
-"    Возвращает успех, если был указан допустимый параметр или не возникла "
-"ошибка.\n"
+"    Возвращает успех, если был указан допустимый параметр или не возникла ошибка.\n"
 "    Если указан параметр -x, возвращает состояние выхода команды."
 
-#: builtins.c:900
+#: builtins.c:899
 #, fuzzy
+#| msgid ""
+#| "Remove jobs from current shell.\n"
+#| "    \n"
+#| "    Removes each JOBSPEC argument from the table of active jobs.  Without\n"
+#| "    any JOBSPECs, the shell uses its notion of the current job.\n"
+#| "    \n"
+#| "    Options:\n"
+#| "      -a\tremove all jobs if JOBSPEC is not supplied\n"
+#| "      -h\tmark each JOBSPEC so that SIGHUP is not sent to the job if the\n"
+#| "    \tshell receives a SIGHUP\n"
+#| "      -r\tremove only running jobs\n"
+#| "    \n"
+#| "    Exit Status:\n"
+#| "    Returns success unless an invalid option or JOBSPEC is given."
 msgid ""
 "Remove jobs from current shell.\n"
 "    \n"
@@ -3751,8 +3815,27 @@ msgstr ""
 "    Состояние выхода:\n"
 "    Возвращает успех, если был указан допустимый параметр или задание."
 
-#: builtins.c:919
+#: builtins.c:918
 #, fuzzy
+#| msgid ""
+#| "Send a signal to a job.\n"
+#| "    \n"
+#| "    Send the processes identified by PID or JOBSPEC the signal named by\n"
+#| "    SIGSPEC or SIGNUM.  If neither SIGSPEC nor SIGNUM is present, then\n"
+#| "    SIGTERM is assumed.\n"
+#| "    \n"
+#| "    Options:\n"
+#| "      -s sig\tSIG is a signal name\n"
+#| "      -n sig\tSIG is a signal number\n"
+#| "      -l\tlist the signal names; if arguments follow `-l' they are\n"
+#| "    \tassumed to be signal numbers for which names should be listed\n"
+#| "    \n"
+#| "    Kill is a shell builtin for two reasons: it allows job IDs to be used\n"
+#| "    instead of process IDs, and allows processes to be killed if the limit\n"
+#| "    on processes that you can create is reached.\n"
+#| "    \n"
+#| "    Exit Status:\n"
+#| "    Returns success unless an invalid option is given or an error occurs."
 msgid ""
 "Send a signal to a job.\n"
 "    \n"
@@ -3783,29 +3866,24 @@ msgstr ""
 "    Параметры:\n"
 "      -s сигнал\tназвание сигнала\n"
 "      -n сигнал\tномер сигнала\n"
-"      -l\t\tпоказывает названия сигналов; если после аргументов указано «-"
-"l»,\n"
-"    \tони считаются номерами сигналов, для которых необходимо показать "
-"названия\n"
+"      -l\t\tпоказывает названия сигналов; если после аргументов указано «-l»,\n"
+"    \tони считаются номерами сигналов, для которых необходимо показать названия\n"
 "    \n"
-"    kill — это встроенная команда, предназначенная для двух задач: "
-"использовать\n"
+"    kill — это встроенная команда, предназначенная для двух задач: использовать\n"
 "    номера заданий вместо номеров процессов и убивать процессы\n"
 "    при достижении предельного числа процессов.\n"
 "    \n"
 "    Состояние выхода:\n"
-"    Возвращает успех, если был указан допустимый параметр или не возникла "
-"ошибка."
+"    Возвращает успех, если был указан допустимый параметр или не возникла ошибка."
 
-#: builtins.c:943
+#: builtins.c:942
 msgid ""
 "Evaluate arithmetic expressions.\n"
 "    \n"
 "    Evaluate each ARG as an arithmetic expression.  Evaluation is done in\n"
 "    fixed-width integers with no check for overflow, though division by 0\n"
 "    is trapped and flagged as an error.  The following list of operators is\n"
-"    grouped into levels of equal-precedence operators.  The levels are "
-"listed\n"
+"    grouped into levels of equal-precedence operators.  The levels are listed\n"
 "    in order of decreasing precedence.\n"
 "    \n"
 "    \tid++, id--\tvariable post-increment, post-decrement\n"
@@ -3843,11 +3921,9 @@ msgid ""
 msgstr ""
 "Расчёт математических выражений.\n"
 "    \n"
-"    Выполняет расчёт всех аргументов в математическом выражении.  Расчёт "
-"выполняется\n"
+"    Выполняет расчёт всех аргументов в математическом выражении.  Расчёт выполняется\n"
 "    для целых чисел фиксированной ширины с без проверки на переполнение.\n"
-"    Однако деление на 0 перехватывается и выдаётся ошибка.  Указанные ниже "
-"операторы объединены\n"
+"    Однако деление на 0 перехватывается и выдаётся ошибка.  Указанные ниже операторы объединены\n"
 "    в группы с одинаковым приоритетом.  Группы перечислены\n"
 "    в порядке уменьшения приоритета.\n"
 "    \n"
@@ -3872,10 +3948,8 @@ msgstr ""
 "    \t+=, -=, <<=, >>=,\n"
 "    \t&=, ^=, |=\tприсвоение\n"
 "    \n"
-"    в качестве операндов можно использовать переменные командного "
-"процессора.  Название переменной\n"
-"    заменяется её значением (приводится к целому числу фиксированной "
-"ширины)\n"
+"    в качестве операндов можно использовать переменные командного процессора.  Название переменной\n"
+"    заменяется её значением (приводится к целому числу фиксированной ширины)\n"
 "    в выражении.  У переменной не должен быть включён атрибут integer,\n"
 "    чтобы её можно было использовать в выражении.\n"
 "    \n"
@@ -3884,38 +3958,74 @@ msgstr ""
 "    выше правила старшинства.\n"
 "    \n"
 "    Состояние выхода:\n"
-"    Если последний АРГУМЕНТ имеет значение 0, let возвращает 1. В противном "
-"случае let возвращает 0."
+"    Если последний АРГУМЕНТ имеет значение 0, let возвращает 1. В противном случае let возвращает 0."
 
-#: builtins.c:988
+#: builtins.c:987
 #, fuzzy
+#| msgid ""
+#| "Read a line from the standard input and split it into fields.\n"
+#| "    \n"
+#| "    Reads a single line from the standard input, or from file descriptor FD\n"
+#| "    if the -u option is supplied.  The line is split into fields as with word\n"
+#| "    splitting, and the first word is assigned to the first NAME, the second\n"
+#| "    word to the second NAME, and so on, with any leftover words assigned to\n"
+#| "    the last NAME.  Only the characters found in $IFS are recognized as word\n"
+#| "    delimiters.\n"
+#| "    \n"
+#| "    If no NAMEs are supplied, the line read is stored in the REPLY variable.\n"
+#| "    \n"
+#| "    Options:\n"
+#| "      -a array\tassign the words read to sequential indices of the array\n"
+#| "    \t\tvariable ARRAY, starting at zero\n"
+#| "      -d delim\tcontinue until the first character of DELIM is read, rather\n"
+#| "    \t\tthan newline\n"
+#| "      -e\t\tuse Readline to obtain the line in an interactive shell\n"
+#| "      -i text\tUse TEXT as the initial text for Readline\n"
+#| "      -n nchars\treturn after reading NCHARS characters rather than waiting\n"
+#| "    \t\tfor a newline, but honor a delimiter if fewer than NCHARS\n"
+#| "    \t\tcharacters are read before the delimiter\n"
+#| "      -N nchars\treturn only after reading exactly NCHARS characters, unless\n"
+#| "    \t\tEOF is encountered or read times out, ignoring any delimiter\n"
+#| "      -p prompt\toutput the string PROMPT without a trailing newline before\n"
+#| "    \t\tattempting to read\n"
+#| "      -r\t\tdo not allow backslashes to escape any characters\n"
+#| "      -s\t\tdo not echo input coming from a terminal\n"
+#| "      -t timeout\ttime out and return failure if a complete line of input is\n"
+#| "    \t\tnot read within TIMEOUT seconds.  The value of the TMOUT\n"
+#| "    \t\tvariable is the default timeout.  TIMEOUT may be a\n"
+#| "    \t\tfractional number.  If TIMEOUT is 0, read returns immediately,\n"
+#| "    \t\twithout trying to read any data, returning success only if\n"
+#| "    \t\tinput is available on the specified file descriptor.  The\n"
+#| "    \t\texit status is greater than 128 if the timeout is exceeded\n"
+#| "      -u fd\t\tread from file descriptor FD instead of the standard input\n"
+#| "    \n"
+#| "    Exit Status:\n"
+#| "    The return code is zero, unless end-of-file is encountered, read times out\n"
+#| "    (in which case it's greater than 128), a variable assignment error occurs,\n"
+#| "    or an invalid file descriptor is supplied as the argument to -u."
 msgid ""
 "Read a line from the standard input and split it into fields.\n"
 "    \n"
 "    Reads a single line from the standard input, or from file descriptor FD\n"
-"    if the -u option is supplied.  The line is split into fields as with "
-"word\n"
+"    if the -u option is supplied.  The line is split into fields as with word\n"
 "    splitting, and the first word is assigned to the first NAME, the second\n"
 "    word to the second NAME, and so on, with any leftover words assigned to\n"
-"    the last NAME.  Only the characters found in $IFS are recognized as "
-"word\n"
+"    the last NAME.  Only the characters found in $IFS are recognized as word\n"
 "    delimiters.\n"
 "    \n"
-"    If no NAMEs are supplied, the line read is stored in the REPLY "
-"variable.\n"
+"    If no NAMEs are supplied, the line read is stored in the REPLY variable.\n"
 "    \n"
 "    Options:\n"
 "      -a array\tassign the words read to sequential indices of the array\n"
 "    \t\tvariable ARRAY, starting at zero\n"
 "      -d delim\tcontinue until the first character of DELIM is read, rather\n"
 "    \t\tthan newline\n"
-"      -e\tuse Readline to obtain the line\n"
+"      -e\tuse Readline to obtain the line in an interactive shell\n"
 "      -i text\tuse TEXT as the initial text for Readline\n"
 "      -n nchars\treturn after reading NCHARS characters rather than waiting\n"
 "    \t\tfor a newline, but honor a delimiter if fewer than\n"
 "    \t\tNCHARS characters are read before the delimiter\n"
-"      -N nchars\treturn only after reading exactly NCHARS characters, "
-"unless\n"
+"      -N nchars\treturn only after reading exactly NCHARS characters, unless\n"
 "    \t\tEOF is encountered or read times out, ignoring any\n"
 "    \t\tdelimiter\n"
 "      -p prompt\toutput the string PROMPT without a trailing newline before\n"
@@ -3933,68 +4043,52 @@ msgid ""
 "      -u fd\tread from file descriptor FD instead of the standard input\n"
 "    \n"
 "    Exit Status:\n"
-"    The return code is zero, unless end-of-file is encountered, read times "
-"out\n"
-"    (in which case it's greater than 128), a variable assignment error "
-"occurs,\n"
+"    The return code is zero, unless end-of-file is encountered, read times out\n"
+"    (in which case it's greater than 128), a variable assignment error occurs,\n"
 "    or an invalid file descriptor is supplied as the argument to -u."
 msgstr ""
 "Чтение строки со стандартного ввода и разделение её на поля.\n"
 "    \n"
 "    Читает одну строку со стандартного ввода или из файлового дескриптора,\n"
 "    если указан параметр -u.  Строка разделяется на поля по словам.\n"
-"    Первое слово присваивается первому указанному имени, второе слово — "
-"второму\n"
+"    Первое слово присваивается первому указанному имени, второе слово — второму\n"
 "    имени и так далее.\n"
-"    Оставшиеся слова присваиваются последнему указанному имени.  В качестве "
-"разделителей слов используются только символы\n"
+"    Оставшиеся слова присваиваются последнему указанному имени.  В качестве разделителей слов используются только символы\n"
 "    из переменной $IFS.\n"
 "    \n"
-"    Если имена не указаны, прочитанная строка сохраняется в переменной "
-"$REPLY.\n"
+"    Если имена не указаны, прочитанная строка сохраняется в переменной $REPLY.\n"
 "    \n"
 "    Параметры:\n"
 "      -a массив\tпоследовательно присвоить прочитанные слова указателям\n"
 "    \t\tмассива, начиная с нуля\n"
 "      -d разделитель\tпродолжить до первого разделителя,\n"
 "    \t\tа не до символа новой строки\n"
-"      -e\t\tс помощью readline получить строку в интерактивном командном "
-"процессоре\n"
+"      -e\t\tс помощью readline получить строку в интерактивном командном процессоре\n"
 "      -i текст\t\tиспользовать текст в качестве исходного для readline\n"
-"      -n число_знаков\tвыполнить возврат после прочтения числа знаков, а не "
-"ждать\n"
-"    \t\tсимвола новой строки; учитывать разделитель, если до него было "
-"прочитано\n"
+"      -n число_знаков\tвыполнить возврат после прочтения числа знаков, а не ждать\n"
+"    \t\tсимвола новой строки; учитывать разделитель, если до него было прочитано\n"
 "    \t\tменьше указанного числа знаков\n"
-"      -N число_знаков\tвыполнить возврат только после прочтения указанного "
-"числа знаков,\n"
-"    \t\tесли только не был получен конец строки или не истекло время "
-"ожидания, игнорируя все разделители\n"
+"      -N число_знаков\tвыполнить возврат только после прочтения указанного числа знаков,\n"
+"    \t\tесли только не был получен конец строки или не истекло время ожидания, игнорируя все разделители\n"
 "      -p приглашение\tпоказать приглашение без символа новой строки в конце\n"
 "    \t\tперед тем как читать\n"
 "      -r\t\tне выполнять экранирование символами косой черты\n"
 "      -s\t\tне показывать данные, полученные из терминала\n"
-"      -t тайм-аут\tпрекратить ожидание и вывести ошибку, если полная "
-"входная\n"
-"    \t\tстрока не была прочитана за указанное число секунд  В переменной "
-"$TMOUT хранится\n"
+"      -t тайм-аут\tпрекратить ожидание и вывести ошибку, если полная входная\n"
+"    \t\tстрока не была прочитана за указанное число секунд  В переменной $TMOUT хранится\n"
 "    \t\tзначение тайм-аута по умолчанию.  Время ожидания\n"
-"    \t\tможет быть дробным числом.  Если тайм-аут равен 0, read немедленно "
-"выполняет возврат,\n"
+"    \t\tможет быть дробным числом.  Если тайм-аут равен 0, read немедленно выполняет возврат,\n"
 "    \t\tне пытаясь прочитать никакие данные. Успех возвращается,\n"
-"    \t\tтолько если входные данные доступны по указанному файловому "
-"дескриптору.   \n"
+"    \t\tтолько если входные данные доступны по указанному файловому дескриптору.   \n"
 "    \t\tСостояние выхода больше 128, если время ожидания было превышено.\n"
 "      -u fd\t\tчитать из файлового дескриптора, а не со стандартного входа\n"
 "    \n"
 "    Состояние выхода:\n"
-"    Состояние выхода будет нулевым, если не был встречен конец файла, не "
-"истекло время ожидания\n"
-"    (в этом случае состояние выхода будет больше 128), не возникла ошибка "
-"присвоения переменной\n"
+"    Состояние выхода будет нулевым, если не был встречен конец файла, не истекло время ожидания\n"
+"    (в этом случае состояние выхода будет больше 128), не возникла ошибка присвоения переменной\n"
 "    или не был указан недопустимый файловый дескриптор как аргумент для -u."
 
-#: builtins.c:1035
+#: builtins.c:1034
 msgid ""
 "Return from a shell function.\n"
 "    \n"
@@ -4012,11 +4106,91 @@ msgstr ""
 "    последней команды, выполненной в функции или скрипте.\n"
 "    \n"
 "    Состояние выхода:\n"
-"    Возвращает N или ошибку, если командный процессор не выполняет функцию "
-"или скрипт."
+"    Возвращает N или ошибку, если командный процессор не выполняет функцию или скрипт."
 
-#: builtins.c:1048
+#: builtins.c:1047
 #, fuzzy
+#| msgid ""
+#| "Set or unset values of shell options and positional parameters.\n"
+#| "    \n"
+#| "    Change the value of shell attributes and positional parameters, or\n"
+#| "    display the names and values of shell variables.\n"
+#| "    \n"
+#| "    Options:\n"
+#| "      -a  Mark variables which are modified or created for export.\n"
+#| "      -b  Notify of job termination immediately.\n"
+#| "      -e  Exit immediately if a command exits with a non-zero status.\n"
+#| "      -f  Disable file name generation (globbing).\n"
+#| "      -h  Remember the location of commands as they are looked up.\n"
+#| "      -k  All assignment arguments are placed in the environment for a\n"
+#| "          command, not just those that precede the command name.\n"
+#| "      -m  Job control is enabled.\n"
+#| "      -n  Read commands but do not execute them.\n"
+#| "      -o option-name\n"
+#| "          Set the variable corresponding to option-name:\n"
+#| "              allexport    same as -a\n"
+#| "              braceexpand  same as -B\n"
+#| "              emacs        use an emacs-style line editing interface\n"
+#| "              errexit      same as -e\n"
+#| "              errtrace     same as -E\n"
+#| "              functrace    same as -T\n"
+#| "              hashall      same as -h\n"
+#| "              histexpand   same as -H\n"
+#| "              history      enable command history\n"
+#| "              ignoreeof    the shell will not exit upon reading EOF\n"
+#| "              interactive-comments\n"
+#| "                           allow comments to appear in interactive commands\n"
+#| "              keyword      same as -k\n"
+#| "              monitor      same as -m\n"
+#| "              noclobber    same as -C\n"
+#| "              noexec       same as -n\n"
+#| "              noglob       same as -f\n"
+#| "              nolog        currently accepted but ignored\n"
+#| "              notify       same as -b\n"
+#| "              nounset      same as -u\n"
+#| "              onecmd       same as -t\n"
+#| "              physical     same as -P\n"
+#| "              pipefail     the return value of a pipeline is the status of\n"
+#| "                           the last command to exit with a non-zero status,\n"
+#| "                           or zero if no command exited with a non-zero status\n"
+#| "              posix        change the behavior of bash where the default\n"
+#| "                           operation differs from the Posix standard to\n"
+#| "                           match the standard\n"
+#| "              privileged   same as -p\n"
+#| "              verbose      same as -v\n"
+#| "              vi           use a vi-style line editing interface\n"
+#| "              xtrace       same as -x\n"
+#| "      -p  Turned on whenever the real and effective user ids do not match.\n"
+#| "          Disables processing of the $ENV file and importing of shell\n"
+#| "          functions.  Turning this option off causes the effective uid and\n"
+#| "          gid to be set to the real uid and gid.\n"
+#| "      -t  Exit after reading and executing one command.\n"
+#| "      -u  Treat unset variables as an error when substituting.\n"
+#| "      -v  Print shell input lines as they are read.\n"
+#| "      -x  Print commands and their arguments as they are executed.\n"
+#| "      -B  the shell will perform brace expansion\n"
+#| "      -C  If set, disallow existing regular files to be overwritten\n"
+#| "          by redirection of output.\n"
+#| "      -E  If set, the ERR trap is inherited by shell functions.\n"
+#| "      -H  Enable ! style history substitution.  This flag is on\n"
+#| "          by default when the shell is interactive.\n"
+#| "      -P  If set, do not resolve symbolic links when executing commands\n"
+#| "          such as cd which change the current directory.\n"
+#| "      -T  If set, the DEBUG trap is inherited by shell functions.\n"
+#| "      --  Assign any remaining arguments to the positional parameters.\n"
+#| "          If there are no remaining arguments, the positional parameters\n"
+#| "          are unset.\n"
+#| "      -   Assign any remaining arguments to the positional parameters.\n"
+#| "          The -x and -v options are turned off.\n"
+#| "    \n"
+#| "    Using + rather than - causes these flags to be turned off.  The\n"
+#| "    flags can also be used upon invocation of the shell.  The current\n"
+#| "    set of flags may be found in $-.  The remaining n ARGs are positional\n"
+#| "    parameters and are assigned, in order, to $1, $2, .. $n.  If no\n"
+#| "    ARGs are given, all shell variables are printed.\n"
+#| "    \n"
+#| "    Exit Status:\n"
+#| "    Returns success unless an invalid option is given."
 msgid ""
 "Set or unset values of shell options and positional parameters.\n"
 "    \n"
@@ -4059,8 +4233,7 @@ msgid ""
 "              physical     same as -P\n"
 "              pipefail     the return value of a pipeline is the status of\n"
 "                           the last command to exit with a non-zero status,\n"
-"                           or zero if no command exited with a non-zero "
-"status\n"
+"                           or zero if no command exited with a non-zero status\n"
 "              posix        change the behavior of bash where the default\n"
 "                           operation differs from the Posix standard to\n"
 "                           match the standard\n"
@@ -4084,8 +4257,7 @@ msgid ""
 "          by default when the shell is interactive.\n"
 "      -P  If set, do not resolve symbolic links when executing commands\n"
 "          such as cd which change the current directory.\n"
-"      -T  If set, the DEBUG and RETURN traps are inherited by shell "
-"functions.\n"
+"      -T  If set, the DEBUG and RETURN traps are inherited by shell functions.\n"
 "      --  Assign any remaining arguments to the positional parameters.\n"
 "          If there are no remaining arguments, the positional parameters\n"
 "          are unset.\n"
@@ -4101,19 +4273,15 @@ msgid ""
 "    Exit Status:\n"
 "    Returns success unless an invalid option is given."
 msgstr ""
-"Присвоение или удаление значений параметров командного процессора и "
-"позиционных параметров.\n"
+"Присвоение или удаление значений параметров командного процессора и позиционных параметров.\n"
 "    \n"
-"    Изменяет значение атрибутов командного процессора и позиционных "
-"параметров или\n"
+"    Изменяет значение атрибутов командного процессора и позиционных параметров или\n"
 "    выводит названия и значения переменных командного процессора.\n"
 "    \n"
 "    Параметры:\n"
-"      -a  пометить переменные, которые были изменены или созданы для "
-"экспорта\n"
+"      -a  пометить переменные, которые были изменены или созданы для экспорта\n"
 "      -b  немедленно уведомить о завершении задания\n"
-"      -e  немедленно выйти, если команда выполняет выход с ненулевым "
-"состоянием\n"
+"      -e  немедленно выйти, если команда выполняет выход с ненулевым состоянием\n"
 "      -f  отключить генерацию имён файлов (подстановка)\n"
 "      -h  запомнить расположение команд, как они выглядели ранее\n"
 "      -k  поместить в окружение для команды все аргументы присвоения,\n"
@@ -4124,19 +4292,16 @@ msgstr ""
 "          Задаёт переменную, соответствующую названию параметра:\n"
 "              allexport    эквивалент -a\n"
 "              braceexpand  эквивалент -B\n"
-"              emacs        использовать стиль emacs для редактирования "
-"строк\n"
+"              emacs        использовать стиль emacs для редактирования строк\n"
 "              errexit      эквивалент -e\n"
 "              errtrace     эквивалент -E\n"
 "              functrace    эквивалент -T\n"
 "              hashall      эквивалент -h\n"
 "              histexpand   эквивалент -H\n"
 "              history      включить журнал команд\n"
-"              ignoreeof    не закрывать командный процессор после получения "
-"конца файла\n"
+"              ignoreeof    не закрывать командный процессор после получения конца файла\n"
 "              interactive-comments\n"
-"                           разрешить показ комментариев в интерактивных "
-"командах\n"
+"                           разрешить показ комментариев в интерактивных командах\n"
 "              keyword      эквивалент -k\n"
 "              monitor      эквивалент -m\n"
 "              noclobber    эквивалент -C\n"
@@ -4147,22 +4312,17 @@ msgstr ""
 "              nounset      эквивалент -u\n"
 "              onecmd       эквивалент -t\n"
 "              physical     эквивалент -P\n"
-"              pipefail     возвращаемое значение конвейера является "
-"состоянием\n"
-"                           последней команды, завершившейся с ненулевым "
-"состоянием,\n"
-"                           или нулём, если не было команды, завершившейся с "
-"ненулевым состоянием\n"
+"              pipefail     возвращаемое значение конвейера является состоянием\n"
+"                           последней команды, завершившейся с ненулевым состоянием,\n"
+"                           или нулём, если не было команды, завершившейся с ненулевым состоянием\n"
 "              posix        изменить поведение bash там, где операции\n"
-"                           по умолчанию отличаются от стандарта Posix, "
-"чтобы\n"
+"                           по умолчанию отличаются от стандарта Posix, чтобы\n"
 "                           соответствовать этому стандарту\n"
 "              privileged   эквивалент -p\n"
 "              verbose      эквивалент -v\n"
 "              vi           использовать стиль vi для редактирования строк\n"
 "              xtrace       эквивалент -x\n"
-"      -p  Включён, когда реальный и эффективный идентификаторы пользователя "
-"не совпадают.\n"
+"      -p  Включён, когда реальный и эффективный идентификаторы пользователя не совпадают.\n"
 "          Отключает обработку файла $ENV и импорт функций командного\n"
 "          процессора.  Если отключить этот параметр, эффективные UID и GID\n"
 "          будут назначены реальным UID и GID.\n"
@@ -4173,16 +4333,12 @@ msgstr ""
 "      -B  Командный процессор развернёт скобки.\n"
 "      -C  Если задано, запретить перезапись существующих обычных файлов\n"
 "          вследствие перенаправления вывода.\n"
-"      -E  Если задано, ловушка ERR наследуется функциями командного "
-"процессора.\n"
-"      -H  Включить замену журнала с использованием !.  По умолчанию этот "
-"флаг\n"
+"      -E  Если задано, ловушка ERR наследуется функциями командного процессора.\n"
+"      -H  Включить замену журнала с использованием !.  По умолчанию этот флаг\n"
 "          установлен, если командный процессор интерактивный.\n"
-"      -P  Если задано, не разрешать символьные ссылки при выполнении "
-"команд,\n"
+"      -P  Если задано, не разрешать символьные ссылки при выполнении команд,\n"
 "          таких как cd, которые изменяют текущий каталог.\n"
-"      -T  Если задано, ловушка DEBUG наследуется функциями командного "
-"процессора.\n"
+"      -T  Если задано, ловушка DEBUG наследуется функциями командного процессора.\n"
 "      --  Назначить все оставшиеся аргументы позиционным параметрам.\n"
 "          Если аргументов не осталось, позиционные параметры\n"
 "          удаляются.\n"
@@ -4190,18 +4346,34 @@ msgstr ""
 "          Параметры -x и -v выключены.\n"
 "    \n"
 "    Если вместо - указать +, флаги будут выключены.   \n"
-"    Флаги также можно использовать до вызова командного процессора.  "
-"Текущий\n"
-"    набор флагов можно просмотреть в $-.  Оставшиеся n аргументов являются "
-"позиционными\n"
+"    Флаги также можно использовать до вызова командного процессора.  Текущий\n"
+"    набор флагов можно просмотреть в $-.  Оставшиеся n аргументов являются позиционными\n"
 "    параметрами и назначаются в порядке $1, $2, .. $n.  Если\n"
 "    аргументы не указаны, выводятся все переменные командного процессора.\n"
 "    \n"
 "    Состояние выхода:\n"
 "    Возвращает успех, если был указан допустимый параметр."
 
-#: builtins.c:1133
+#: builtins.c:1132
 #, fuzzy
+#| msgid ""
+#| "Unset values and attributes of shell variables and functions.\n"
+#| "    \n"
+#| "    For each NAME, remove the corresponding variable or function.\n"
+#| "    \n"
+#| "    Options:\n"
+#| "      -f\ttreat each NAME as a shell function\n"
+#| "      -v\ttreat each NAME as a shell variable\n"
+#| "      -n\ttreat each NAME as a name reference and unset the variable itself\n"
+#| "    \trather than the variable it references\n"
+#| "    \n"
+#| "    Without options, unset first tries to unset a variable, and if that fails,\n"
+#| "    tries to unset a function.\n"
+#| "    \n"
+#| "    Some variables cannot be unset; also see `readonly'.\n"
+#| "    \n"
+#| "    Exit Status:\n"
+#| "    Returns success unless an invalid option is given or a NAME is read-only."
 msgid ""
 "Unset values and attributes of shell variables and functions.\n"
 "    \n"
@@ -4213,8 +4385,7 @@ msgid ""
 "      -n\ttreat each NAME as a name reference and unset the variable itself\n"
 "    \t\trather than the variable it references\n"
 "    \n"
-"    Without options, unset first tries to unset a variable, and if that "
-"fails,\n"
+"    Without options, unset first tries to unset a variable, and if that fails,\n"
 "    tries to unset a function.\n"
 "    \n"
 "    Some variables cannot be unset; also see `readonly'.\n"
@@ -4229,27 +4400,23 @@ msgstr ""
 "    Параметры:\n"
 "      -f\tсчитать каждое указанное имя функцией командного процессора\n"
 "      -v\tсчитать каждое указанное имя переменной командного процессора\n"
-"      -n\tсчитать каждое указанное имя ссылкой на название и удалить саму "
-"переменную,\n"
+"      -n\tсчитать каждое указанное имя ссылкой на название и удалить саму переменную,\n"
 "    \tа не переменную, на которую указывает ссылка\n"
 "    \n"
-"    Если параметры не указаны, unset сначала пытается удалить переменную. "
-"Если это не удаётся,\n"
+"    Если параметры не указаны, unset сначала пытается удалить переменную. Если это не удаётся,\n"
 "    пытается удалить функцию.\n"
 "    \n"
 "    Некоторые переменные нельзя удалить. См. также «readonly».\n"
 "    \n"
 "    Состояние выхода:\n"
-"    Возвращает успех, если был указан допустимый параметр или указанное имя "
-"доступно для записи."
+"    Возвращает успех, если был указан допустимый параметр или указанное имя доступно для записи."
 
-#: builtins.c:1155
+#: builtins.c:1154
 msgid ""
 "Set export attribute for shell variables.\n"
 "    \n"
 "    Marks each NAME for automatic export to the environment of subsequently\n"
-"    executed commands.  If VALUE is supplied, assign VALUE before "
-"exporting.\n"
+"    executed commands.  If VALUE is supplied, assign VALUE before exporting.\n"
 "    \n"
 "    Options:\n"
 "      -f\trefer to shell functions\n"
@@ -4264,8 +4431,7 @@ msgstr ""
 "Установка атрибута экспорта для переменных командного процессора.\n"
 "    \n"
 "    Помечает все имена для автоматического экспорта в среду для\n"
-"    последующих выполняемых команд.  Если указано значение, оно "
-"присваивается перед экспортом.\n"
+"    последующих выполняемых команд.  Если указано значение, оно присваивается перед экспортом.\n"
 "    \n"
 "    Параметры:\n"
 "      -f\tиспользовать функции командного процессора\n"
@@ -4277,8 +4443,26 @@ msgstr ""
 "    Состояние выхода:\n"
 "    Возвращает успех, если был указан допустимый параметр или имя."
 
-#: builtins.c:1174
+#: builtins.c:1173
 #, fuzzy
+#| msgid ""
+#| "Mark shell variables as unchangeable.\n"
+#| "    \n"
+#| "    Mark each NAME as read-only; the values of these NAMEs may not be\n"
+#| "    changed by subsequent assignment.  If VALUE is supplied, assign VALUE\n"
+#| "    before marking as read-only.\n"
+#| "    \n"
+#| "    Options:\n"
+#| "      -a\trefer to indexed array variables\n"
+#| "      -A\trefer to associative array variables\n"
+#| "      -f\trefer to shell functions\n"
+#| "      -p\tdisplay a list of all readonly variables or functions, depending on\n"
+#| "            whether or not the -f option is given\n"
+#| "    \n"
+#| "    An argument of `--' disables further option processing.\n"
+#| "    \n"
+#| "    Exit Status:\n"
+#| "    Returns success unless an invalid option is given or NAME is invalid."
 msgid ""
 "Mark shell variables as unchangeable.\n"
 "    \n"
@@ -4301,16 +4485,14 @@ msgstr ""
 "Запрет изменения переменных командного процессора.\n"
 "    \n"
 "    Делает каждое имя доступным только чтения. Значения этих имён нельзя\n"
-"    будет изменить в будущем.  Если указано значение, присваивает это "
-"значение\n"
+"    будет изменить в будущем.  Если указано значение, присваивает это значение\n"
 "    перед тем, как сделать его доступным только для чтения.\n"
 "    \n"
 "    Параметры:\n"
 "      -a\tссылаться на переменные индексированного массива\n"
 "      -A\tссылаться на переменные ассоциативного массива\n"
 "      -f\tиспользовать функции командного процессора\n"
-"      -p\tвывести список всех переменных или функций, доступных только для "
-"чтения,\n"
+"      -p\tвывести список всех переменных или функций, доступных только для чтения,\n"
 "            в зависимости от того, указан ли параметр -f\n"
 "    \n"
 "    Аргумент «--» отключает дальнейшую обработку параметров.\n"
@@ -4318,7 +4500,7 @@ msgstr ""
 "    Состояние выхода:\n"
 "    Возвращает успех, если был указан допустимый параметр или имя."
 
-#: builtins.c:1196
+#: builtins.c:1195
 msgid ""
 "Shift positional parameters.\n"
 "    \n"
@@ -4336,7 +4518,7 @@ msgstr ""
 "    Состояние выхода:\n"
 "    Возвращает успех, если N положительный или меньше $#."
 
-#: builtins.c:1208 builtins.c:1223
+#: builtins.c:1207 builtins.c:1222
 msgid ""
 "Execute commands from a file in the current shell.\n"
 "    \n"
@@ -4351,18 +4533,16 @@ msgid ""
 msgstr ""
 "Выполнение команд из файла в текущем командном процессоре.\n"
 "    \n"
-"    Читает и выполняет команды из указанного файла в текущем командном "
-"процессоре.   \n"
+"    Читает и выполняет команды из указанного файла в текущем командном процессоре.   \n"
 "    Файла ищется в каталогах, указанных в переменной $PATH.\n"
 "    Если указаны аргументы, они становятся позиционными параметрами\n"
 "    при выполнении файла.\n"
 "    \n"
 "    Состояние выхода:\n"
-"    Возвращает состояние последней выполненной команды из файла. Возвращает "
-"ошибку,\n"
+"    Возвращает состояние последней выполненной команды из файла. Возвращает ошибку,\n"
 "    если файл не удаётся прочитать."
 
-#: builtins.c:1239
+#: builtins.c:1238
 msgid ""
 "Suspend shell execution.\n"
 "    \n"
@@ -4377,21 +4557,94 @@ msgid ""
 msgstr ""
 "Приостановка работы командного процессора.\n"
 "    \n"
-"    Приостанавливает работу текущего командного процессора до получения "
-"сигнала SIGCONT.\n"
-"    Работу командных процессоров login можно приостановить только в "
-"принудительном режиме.\n"
+"    Приостанавливает работу текущего командного процессора до получения сигнала SIGCONT.\n"
+"    Работу командных процессоров login можно приостановить только в принудительном режиме.\n"
 "    \n"
 "    Параметры:\n"
-"      -f\tпринудительно приостановить работу, даже если командный "
-"процессор — login\n"
+"      -f\tпринудительно приостановить работу, даже если командный процессор — login\n"
 "    \n"
 "    Состояние выхода:\n"
-"    Возвращает успех, если не включено управление заданиями или не произошла "
-"ошибка."
+"    Возвращает успех, если не включено управление заданиями или не произошла ошибка."
 
-#: builtins.c:1255
+#: builtins.c:1254
 #, fuzzy
+#| msgid ""
+#| "Evaluate conditional expression.\n"
+#| "    \n"
+#| "    Exits with a status of 0 (true) or 1 (false) depending on\n"
+#| "    the evaluation of EXPR.  Expressions may be unary or binary.  Unary\n"
+#| "    expressions are often used to examine the status of a file.  There\n"
+#| "    are string operators and numeric comparison operators as well.\n"
+#| "    \n"
+#| "    The behavior of test depends on the number of arguments.  Read the\n"
+#| "    bash manual page for the complete specification.\n"
+#| "    \n"
+#| "    File operators:\n"
+#| "    \n"
+#| "      -a FILE        True if file exists.\n"
+#| "      -b FILE        True if file is block special.\n"
+#| "      -c FILE        True if file is character special.\n"
+#| "      -d FILE        True if file is a directory.\n"
+#| "      -e FILE        True if file exists.\n"
+#| "      -f FILE        True if file exists and is a regular file.\n"
+#| "      -g FILE        True if file is set-group-id.\n"
+#| "      -h FILE        True if file is a symbolic link.\n"
+#| "      -L FILE        True if file is a symbolic link.\n"
+#| "      -k FILE        True if file has its `sticky' bit set.\n"
+#| "      -p FILE        True if file is a named pipe.\n"
+#| "      -r FILE        True if file is readable by you.\n"
+#| "      -s FILE        True if file exists and is not empty.\n"
+#| "      -S FILE        True if file is a socket.\n"
+#| "      -t FD          True if FD is opened on a terminal.\n"
+#| "      -u FILE        True if the file is set-user-id.\n"
+#| "      -w FILE        True if the file is writable by you.\n"
+#| "      -x FILE        True if the file is executable by you.\n"
+#| "      -O FILE        True if the file is effectively owned by you.\n"
+#| "      -G FILE        True if the file is effectively owned by your group.\n"
+#| "      -N FILE        True if the file has been modified since it was last read.\n"
+#| "    \n"
+#| "      FILE1 -nt FILE2  True if file1 is newer than file2 (according to\n"
+#| "                       modification date).\n"
+#| "    \n"
+#| "      FILE1 -ot FILE2  True if file1 is older than file2.\n"
+#| "    \n"
+#| "      FILE1 -ef FILE2  True if file1 is a hard link to file2.\n"
+#| "    \n"
+#| "    String operators:\n"
+#| "    \n"
+#| "      -z STRING      True if string is empty.\n"
+#| "    \n"
+#| "      -n STRING\n"
+#| "         STRING      True if string is not empty.\n"
+#| "    \n"
+#| "      STRING1 = STRING2\n"
+#| "                     True if the strings are equal.\n"
+#| "      STRING1 != STRING2\n"
+#| "                     True if the strings are not equal.\n"
+#| "      STRING1 < STRING2\n"
+#| "                     True if STRING1 sorts before STRING2 lexicographically.\n"
+#| "      STRING1 > STRING2\n"
+#| "                     True if STRING1 sorts after STRING2 lexicographically.\n"
+#| "    \n"
+#| "    Other operators:\n"
+#| "    \n"
+#| "      -o OPTION      True if the shell option OPTION is enabled.\n"
+#| "      -v VAR\t True if the shell variable VAR is set\n"
+#| "      -R VAR\t True if the shell variable VAR is set and is a name reference.\n"
+#| "      ! EXPR         True if expr is false.\n"
+#| "      EXPR1 -a EXPR2 True if both expr1 AND expr2 are true.\n"
+#| "      EXPR1 -o EXPR2 True if either expr1 OR expr2 is true.\n"
+#| "    \n"
+#| "      arg1 OP arg2   Arithmetic tests.  OP is one of -eq, -ne,\n"
+#| "                     -lt, -le, -gt, or -ge.\n"
+#| "    \n"
+#| "    Arithmetic binary operators return true if ARG1 is equal, not-equal,\n"
+#| "    less-than, less-than-or-equal, greater-than, or greater-than-or-equal\n"
+#| "    than ARG2.\n"
+#| "    \n"
+#| "    Exit Status:\n"
+#| "    Returns success if EXPR evaluates to true; fails if EXPR evaluates to\n"
+#| "    false or an invalid argument is given."
 msgid ""
 "Evaluate conditional expression.\n"
 "    \n"
@@ -4425,8 +4678,7 @@ msgid ""
 "      -x FILE        True if the file is executable by you.\n"
 "      -O FILE        True if the file is effectively owned by you.\n"
 "      -G FILE        True if the file is effectively owned by your group.\n"
-"      -N FILE        True if the file has been modified since it was last "
-"read.\n"
+"      -N FILE        True if the file has been modified since it was last read.\n"
 "    \n"
 "      FILE1 -nt FILE2  True if file1 is newer than file2 (according to\n"
 "                       modification date).\n"
@@ -4447,8 +4699,7 @@ msgid ""
 "      STRING1 != STRING2\n"
 "                     True if the strings are not equal.\n"
 "      STRING1 < STRING2\n"
-"                     True if STRING1 sorts before STRING2 "
-"lexicographically.\n"
+"                     True if STRING1 sorts before STRING2 lexicographically.\n"
 "      STRING1 > STRING2\n"
 "                     True if STRING1 sorts after STRING2 lexicographically.\n"
 "    \n"
@@ -4476,8 +4727,7 @@ msgstr ""
 "Расчёт условного выражения.\n"
 "    \n"
 "    Возвращает состояние 0 (истина) или 1 (ложь) после\n"
-"    расчёта выражения.  Выражения могут быть унарными или бинарными.  "
-"Унарные\n"
+"    расчёта выражения.  Выражения могут быть унарными или бинарными.  Унарные\n"
 "    выражения часто используются для определения состояния файла.  Также\n"
 "    доступны стоковые операторы и операторы сравнения чисел.\n"
 "    \n"
@@ -4491,8 +4741,7 @@ msgstr ""
 "      -c ФАЙЛ        Истина, если файл представляет символьное устройство.\n"
 "      -d ФАЙЛ        Истина, если файл является каталогом.\n"
 "      -e ФАЙЛ        Истина, если файл существует.\n"
-"      -f ФАЙЛ        Истина, если файл существует и является обычным "
-"файлом.\n"
+"      -f ФАЙЛ        Истина, если файл существует и является обычным файлом.\n"
 "      -g ФАЙЛ        Истина, если для файла установлен бит SGID.\n"
 "      -h ФАЙЛ        Истина, если файл является символьной ссылкой.\n"
 "      -L ФАЙЛ        Истина, если файл является символьной ссылкой.\n"
@@ -4501,15 +4750,12 @@ msgstr ""
 "      -r ФАЙЛ        Истина, если вы можете прочитать файл.\n"
 "      -s ФАЙЛ        Истина, если файл существует и не является пустым.\n"
 "      -S ФАЙЛ        Истина, если файл является сокетом.\n"
-"      -t ФД          Истина, если файловый дескриптор ФД открыт в "
-"терминале.\n"
+"      -t ФД          Истина, если файловый дескриптор ФД открыт в терминале.\n"
 "      -u ФАЙЛ        Истина, если для файла установлен бит SUID.\n"
 "      -w ФАЙЛ        Истина, если вы можете выполнить запись в файл.\n"
 "      -x ФАЙЛ        Истина, если вы можете выполнить файл.\n"
-"      -O ФАЙЛ        Истина, если вы являетесь эффективным владельцем "
-"файла.\n"
-"      -G ФАЙЛ        Истина, если ваша группа является эффективным "
-"владельцем файла.\n"
+"      -O ФАЙЛ        Истина, если вы являетесь эффективным владельцем файла.\n"
+"      -G ФАЙЛ        Истина, если ваша группа является эффективным владельцем файла.\n"
 "      -N ФАЙЛ        Истина, если файл был изменён после последнего чтения.\n"
 "    \n"
 "      ФАЙЛ1 -nt ФАЙЛ2  Истина, если файл1 новее файла2 (согласно\n"
@@ -4517,8 +4763,7 @@ msgstr ""
 "    \n"
 "      ФАЙЛ1 -ot ФАЙЛ2  Истина, если файл1 старее файла2.\n"
 "    \n"
-"      ФАЙЛ1 -ef ФАЙЛ2  Истина, если файл1 является жёсткой ссылкой на "
-"файл2.\n"
+"      ФАЙЛ1 -ef ФАЙЛ2  Истина, если файл1 является жёсткой ссылкой на файл2.\n"
 "    \n"
 "    Строковые операторы:\n"
 "    \n"
@@ -4532,38 +4777,31 @@ msgstr ""
 "      СТРОКА1 != СТРОКА2\n"
 "                     Истина, если строки не совпадают.\n"
 "      СТРОКА1 < СТРОКА2\n"
-"                     Истина, если СТРОКА1 сортируется до СТРОКИ2 "
-"лексикографически.\n"
+"                     Истина, если СТРОКА1 сортируется до СТРОКИ2 лексикографически.\n"
 "      СТРОКА1 > СТРОКА2\n"
-"                     Истина, если СТРОКА1 сортируется после СТРОКИ2 "
-"лексикографически.\n"
+"                     Истина, если СТРОКА1 сортируется после СТРОКИ2 лексикографически.\n"
 "    \n"
 "    Остальные операторы:\n"
 "    \n"
 "      -o ПАРАМЕТР    Истина, если параметр командного процессора включён.\n"
 "      -v ПЕР\t Истина, если переменная командного процессора задана\n"
-"      -R ПЕР\t Истина, если переменная командного процессора задана и "
-"является именованной ссылкой.\n"
+"      -R ПЕР\t Истина, если переменная командного процессора задана и является именованной ссылкой.\n"
 "      ! ВЫРАЖ        Истина, если выражение возвращает ложь.\n"
 "      ВЫРАЖ1 -a ВЫРАЖ2 Истина, если оба выражения возвращают истину.\n"
-"      ВЫРАЖ1 -o ВЫРАЖ2 Истина, если хотя бы одно из выражений возвращает "
-"истину.\n"
+"      ВЫРАЖ1 -o ВЫРАЖ2 Истина, если хотя бы одно из выражений возвращает истину.\n"
 "    \n"
-"      арг1 ОП арг2   Математические проверки.  ОП может быть одним из "
-"следующих: -eq, -ne,\n"
+"      арг1 ОП арг2   Математические проверки.  ОП может быть одним из следующих: -eq, -ne,\n"
 "                     -lt, -le, -gt или -ge.\n"
 "    \n"
-"    Математические бинарные операторы возвращают истину, если АРГУМЕНТ1 "
-"равен, не равен,\n"
+"    Математические бинарные операторы возвращают истину, если АРГУМЕНТ1 равен, не равен,\n"
 "    меньше, меньше или равен либо больше или равен\n"
 "    АРГУМЕНТУ2.\n"
 "    \n"
 "    Состояние выхода:\n"
-"    Возвращает успех, если выражение истинно, или ошибку, если выражение "
-"ложно\n"
+"    Возвращает успех, если выражение истинно, или ошибку, если выражение ложно\n"
 "    или указан недопустимый аргумент."
 
-#: builtins.c:1337
+#: builtins.c:1336
 msgid ""
 "Evaluate conditional expression.\n"
 "    \n"
@@ -4575,12 +4813,11 @@ msgstr ""
 "    Это синоним встроенной команды test, но последним аргументом должна\n"
 "    быть скобка «]», соответствующая открывающей «[»."
 
-#: builtins.c:1346
+#: builtins.c:1345
 msgid ""
 "Display process times.\n"
 "    \n"
-"    Prints the accumulated user and system times for the shell and all of "
-"its\n"
+"    Prints the accumulated user and system times for the shell and all of its\n"
 "    child processes.\n"
 "    \n"
 "    Exit Status:\n"
@@ -4588,19 +4825,17 @@ msgid ""
 msgstr ""
 "Отображение времени процесса.\n"
 "    \n"
-"    Показывает объединённые значения времени пользователя и системы для "
-"командного\n"
+"    Показывает объединённые значения времени пользователя и системы для командного\n"
 "    процессора и всех его дочерних процессов.\n"
 "    \n"
 "    Состояние выхода:\n"
 "    Всегда возвращает успех."
 
-#: builtins.c:1358
+#: builtins.c:1357
 msgid ""
 "Trap signals and other events.\n"
 "    \n"
-"    Defines and activates handlers to be run when the shell receives "
-"signals\n"
+"    Defines and activates handlers to be run when the shell receives signals\n"
 "    or other conditions.\n"
 "    \n"
 "    ARG is a command to be read and executed when the shell receives the\n"
@@ -4609,34 +4844,26 @@ msgid ""
 "    value.  If ARG is the null string each SIGNAL_SPEC is ignored by the\n"
 "    shell and by the commands it invokes.\n"
 "    \n"
-"    If a SIGNAL_SPEC is EXIT (0) ARG is executed on exit from the shell.  "
-"If\n"
-"    a SIGNAL_SPEC is DEBUG, ARG is executed before every simple command.  "
-"If\n"
-"    a SIGNAL_SPEC is RETURN, ARG is executed each time a shell function or "
-"a\n"
-"    script run by the . or source builtins finishes executing.  A "
-"SIGNAL_SPEC\n"
-"    of ERR means to execute ARG each time a command's failure would cause "
-"the\n"
+"    If a SIGNAL_SPEC is EXIT (0) ARG is executed on exit from the shell.  If\n"
+"    a SIGNAL_SPEC is DEBUG, ARG is executed before every simple command.  If\n"
+"    a SIGNAL_SPEC is RETURN, ARG is executed each time a shell function or a\n"
+"    script run by the . or source builtins finishes executing.  A SIGNAL_SPEC\n"
+"    of ERR means to execute ARG each time a command's failure would cause the\n"
 "    shell to exit when the -e option is enabled.\n"
 "    \n"
-"    If no arguments are supplied, trap prints the list of commands "
-"associated\n"
+"    If no arguments are supplied, trap prints the list of commands associated\n"
 "    with each signal.\n"
 "    \n"
 "    Options:\n"
 "      -l\tprint a list of signal names and their corresponding numbers\n"
 "      -p\tdisplay the trap commands associated with each SIGNAL_SPEC\n"
 "    \n"
-"    Each SIGNAL_SPEC is either a signal name in <signal.h> or a signal "
-"number.\n"
+"    Each SIGNAL_SPEC is either a signal name in <signal.h> or a signal number.\n"
 "    Signal names are case insensitive and the SIG prefix is optional.  A\n"
 "    signal may be sent to the shell with \"kill -signal $$\".\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns success unless a SIGSPEC is invalid or an invalid option is "
-"given."
+"    Returns success unless a SIGSPEC is invalid or an invalid option is given."
 msgstr ""
 "Захват сигналов и других событий.\n"
 "    \n"
@@ -4644,22 +4871,16 @@ msgstr ""
 "    командный процессор получает сигналы или при других условиях.\n"
 "    \n"
 "    Аргумент — это команда, которая считывается и выполняется, когда\n"
-"    командный процессор получает указанные сигнал(ы).  Если аргумент "
-"отсутствует (и указан один сигнал)\n"
+"    командный процессор получает указанные сигнал(ы).  Если аргумент отсутствует (и указан один сигнал)\n"
 "    или указано «-», для всех указанных сигналов восстанавливаются\n"
-"    исходные значения.  Если аргумент — пустая строка, все указанные сигналы "
-"игнорируются\n"
+"    исходные значения.  Если аргумент — пустая строка, все указанные сигналы игнорируются\n"
 "    командным процессором и вызываемыми им командами.\n"
 "    \n"
-"    Если сигнал — EXIT (0), аргумент выполняется при выходе из командного "
-"процессора.  Если\n"
-"    сигнал — DEBUG, аргумент выполняется перед каждой простой командой.  "
-"Если\n"
+"    Если сигнал — EXIT (0), аргумент выполняется при выходе из командного процессора.  Если\n"
+"    сигнал — DEBUG, аргумент выполняется перед каждой простой командой.  Если\n"
 "    сигнал — RETURN, аргумент выполняется каждый раз, когда функция\n"
-"    или скрипт выполняется в . или исходные встроенные команды завершают "
-"свою работу.  Сигнал\n"
-"    ERR означает выполнение аргумента каждый раз, когда ошибка команды "
-"приведёт\n"
+"    или скрипт выполняется в . или исходные встроенные команды завершают свою работу.  Сигнал\n"
+"    ERR означает выполнение аргумента каждый раз, когда ошибка команды приведёт\n"
 "    к выходу из командного процессора, когда включён параметр -e.\n"
 "    \n"
 "    Если аргументы не указаны, trap выводит список команд, связанных\n"
@@ -4669,17 +4890,41 @@ msgstr ""
 "      -l\tпоказать названия сигналов и их номера\n"
 "      -p\tпоказать команды trap, связанные с каждым сигналом\n"
 "    \n"
-"    Идентификатор сигнала — это название сигнала в <signal.h> или номер "
-"сигнала.\n"
-"    Названия сигналов не зависят от регистра, а префикс SIG не является "
-"обязательным.   \n"
+"    Идентификатор сигнала — это название сигнала в <signal.h> или номер сигнала.\n"
+"    Названия сигналов не зависят от регистра, а префикс SIG не является обязательным.   \n"
 "    Сигнал можно отправить в командный процессор командой «kill -signal $$».\n"
 "    \n"
 "    Состояние выхода:\n"
 "    Возвращает успех, если был указан допустимый сигнал или параметр."
 
-#: builtins.c:1394
+#: builtins.c:1393
 #, fuzzy
+#| msgid ""
+#| "Display information about command type.\n"
+#| "    \n"
+#| "    For each NAME, indicate how it would be interpreted if used as a\n"
+#| "    command name.\n"
+#| "    \n"
+#| "    Options:\n"
+#| "      -a\tdisplay all locations containing an executable named NAME;\n"
+#| "    \tincludes aliases, builtins, and functions, if and only if\n"
+#| "    \tthe `-p' option is not also used\n"
+#| "      -f\tsuppress shell function lookup\n"
+#| "      -P\tforce a PATH search for each NAME, even if it is an alias,\n"
+#| "    \tbuiltin, or function, and returns the name of the disk file\n"
+#| "    \tthat would be executed\n"
+#| "      -p\treturns either the name of the disk file that would be executed,\n"
+#| "    \tor nothing if `type -t NAME' would not return `file'.\n"
+#| "      -t\toutput a single word which is one of `alias', `keyword',\n"
+#| "    \t`function', `builtin', `file' or `', if NAME is an alias, shell\n"
+#| "    \treserved word, shell function, shell builtin, disk file, or not\n"
+#| "    \tfound, respectively\n"
+#| "    \n"
+#| "    Arguments:\n"
+#| "      NAME\tCommand name to be interpreted.\n"
+#| "    \n"
+#| "    Exit Status:\n"
+#| "    Returns success if all of the NAMEs are found; fails if any are not found."
 msgid ""
 "Display information about command type.\n"
 "    \n"
@@ -4705,30 +4950,25 @@ msgid ""
 "      NAME\tCommand name to be interpreted.\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns success if all of the NAMEs are found; fails if any are not "
-"found."
+"    Returns success if all of the NAMEs are found; fails if any are not found."
 msgstr ""
 "Вывод информации о типе команды.\n"
 "    \n"
-"    Для каждого указанного имени показывает, как оно будет интерпретировано "
-"при\n"
+"    Для каждого указанного имени показывает, как оно будет интерпретировано при\n"
 "    использовании в качестве названия команды.\n"
 "    \n"
 "    Параметры:\n"
-"      -a\tпоказать все местоположения, где есть исполняемый файл с указанным "
-"именем,\n"
+"      -a\tпоказать все местоположения, где есть исполняемый файл с указанным именем,\n"
 "    \tвключая псевдонимы, встроенные команды и функции, а также при условии\n"
 "    \tчто не используется параметр «-p»\n"
 "      -f\tне искать функции командного процессора\n"
-"      -P\tпринудительно искать в $PATH все указанные имена, даже если это "
-"псевдоним,\n"
+"      -P\tпринудительно искать в $PATH все указанные имена, даже если это псевдоним,\n"
 "    \tвстроенная команда или функция, и возвращать название файла на диске,\n"
 "    \tкоторый будет запущен\n"
 "      -p\tвозвращает название файла на диске, который будет запущен,\n"
 "    \tили ничего, если «type -t имя» не возвращает «file».\n"
 "      -t\tвывести одно из слов «alias», «keyword»,\n"
-"    \t«function», «builtin», «file» или «», если указанное имя является, "
-"соответственно,\n"
+"    \t«function», «builtin», «file» или «», если указанное имя является, соответственно,\n"
 "    \tпсевдонимом, зарезервированным словом, функцией, встроенной командой\n"
 "    \tкомандного процессора, файлом на диске или имя не было найдено\n"
 "    \n"
@@ -4736,16 +4976,57 @@ msgstr ""
 "      ИМЯ\tназвание интерпретируемой команды\n"
 "    \n"
 "    Состояние выхода:\n"
-"    Возвращает успех, если все указанные имена были найдены, или ошибку в "
-"противном случае."
+"    Возвращает успех, если все указанные имена были найдены, или ошибку в противном случае."
 
-#: builtins.c:1425
+#: builtins.c:1424
 #, fuzzy
+#| msgid ""
+#| "Modify shell resource limits.\n"
+#| "    \n"
+#| "    Provides control over the resources available to the shell and processes\n"
+#| "    it creates, on systems that allow such control.\n"
+#| "    \n"
+#| "    Options:\n"
+#| "      -S\tuse the `soft' resource limit\n"
+#| "      -H\tuse the `hard' resource limit\n"
+#| "      -a\tall current limits are reported\n"
+#| "      -b\tthe socket buffer size\n"
+#| "      -c\tthe maximum size of core files created\n"
+#| "      -d\tthe maximum size of a process's data segment\n"
+#| "      -e\tthe maximum scheduling priority (`nice')\n"
+#| "      -f\tthe maximum size of files written by the shell and its children\n"
+#| "      -i\tthe maximum number of pending signals\n"
+#| "      -l\tthe maximum size a process may lock into memory\n"
+#| "      -m\tthe maximum resident set size\n"
+#| "      -n\tthe maximum number of open file descriptors\n"
+#| "      -p\tthe pipe buffer size\n"
+#| "      -q\tthe maximum number of bytes in POSIX message queues\n"
+#| "      -r\tthe maximum real-time scheduling priority\n"
+#| "      -s\tthe maximum stack size\n"
+#| "      -t\tthe maximum amount of cpu time in seconds\n"
+#| "      -u\tthe maximum number of user processes\n"
+#| "      -v\tthe size of virtual memory\n"
+#| "      -x\tthe maximum number of file locks\n"
+#| "      -T    the maximum number of threads\n"
+#| "    \n"
+#| "    Not all options are available on all platforms.\n"
+#| "    \n"
+#| "    If LIMIT is given, it is the new value of the specified resource; the\n"
+#| "    special LIMIT values `soft', `hard', and `unlimited' stand for the\n"
+#| "    current soft limit, the current hard limit, and no limit, respectively.\n"
+#| "    Otherwise, the current value of the specified resource is printed.  If\n"
+#| "    no option is given, then -f is assumed.\n"
+#| "    \n"
+#| "    Values are in 1024-byte increments, except for -t, which is in seconds,\n"
+#| "    -p, which is in increments of 512 bytes, and -u, which is an unscaled\n"
+#| "    number of processes.\n"
+#| "    \n"
+#| "    Exit Status:\n"
+#| "    Returns success unless an invalid option is supplied or an error occurs."
 msgid ""
 "Modify shell resource limits.\n"
 "    \n"
-"    Provides control over the resources available to the shell and "
-"processes\n"
+"    Provides control over the resources available to the shell and processes\n"
 "    it creates, on systems that allow such control.\n"
 "    \n"
 "    Options:\n"
@@ -4790,8 +5071,7 @@ msgid ""
 msgstr ""
 "Изменение ограничений ресурсов командного процессора.\n"
 "    \n"
-"    Позволяет контролировать ресурсы, доступные командному процессору и "
-"создаваемым\n"
+"    Позволяет контролировать ресурсы, доступные командному процессору и создаваемым\n"
 "    им  процессам, в системах, где возможен такой контроль.\n"
 "    \n"
 "    Параметры:\n"
@@ -4802,8 +5082,7 @@ msgstr ""
 "      -c\tмаксимальный размер создаваемых core-файлов\n"
 "      -d\tмаксимальный размер сегмента данных процесса\n"
 "      -e\tмаксимальный приоритет планирования («nice»)\n"
-"      -f\tмаксимальный размер файлов, записываемых командным процессором и "
-"его дочерними процессами\n"
+"      -f\tмаксимальный размер файлов, записываемых командным процессором и его дочерними процессами\n"
 "      -i\tмаксимальное число ожидающих сигналов\n"
 "      -l\tмаксимальный объём, который процесс может заблокировать в памяти\n"
 "      -m\tмаксимальный объём резидентной памяти\n"
@@ -4820,24 +5099,20 @@ msgstr ""
 "    \n"
 "    Не все параметры доступны на всех платформах.\n"
 "    \n"
-"    Если указано ограничение, оно является новым значением для указанного "
-"ресурса.\n"
+"    Если указано ограничение, оно является новым значением для указанного ресурса.\n"
 "    Специальные значения «soft», «hard» и «unlimited» означают,\n"
-"    соответственно, текущее мягкое ограничение, текущее жёсткое ограничение "
-"и отсутствие ограничения.\n"
+"    соответственно, текущее мягкое ограничение, текущее жёсткое ограничение и отсутствие ограничения.\n"
 "    В противном случае выводится текущее значение указанного ресурса.  Если\n"
 "    параметр не указан, подразумевается использование параметра -f.\n"
 "    \n"
-"    Значения задаются с шагом 1024 байт, кроме параметра -t с шагом в "
-"секундах,\n"
+"    Значения задаются с шагом 1024 байт, кроме параметра -t с шагом в секундах,\n"
 "    параметра -p с шагом 512 байт и параметра -u, представляющего\n"
 "    количество процессов.\n"
 "    \n"
 "    Состояние выхода:\n"
-"    Возвращает успех, если был указан допустимый параметр или не возникла "
-"ошибка."
+"    Возвращает успех, если был указан допустимый параметр или не возникла ошибка."
 
-#: builtins.c:1475
+#: builtins.c:1474
 msgid ""
 "Display or set file mode mask.\n"
 "    \n"
@@ -4856,42 +5131,32 @@ msgid ""
 msgstr ""
 "Отображение или указание маски режима для файлов.\n"
 "    \n"
-"    Задаёт маску РЕЖИМ для файлов, создаваемых пользователем.  Если РЕЖИМ не "
-"указан,\n"
+"    Задаёт маску РЕЖИМ для файлов, создаваемых пользователем.  Если РЕЖИМ не указан,\n"
 "    выводит текущее значение маски.\n"
 "    \n"
-"    Если РЕЖИМ начинается с цифры, он интерпретируется как восьмеричное "
-"число.\n"
-"    В противном случае он считается символьной строкой как для команды chmod"
-"(1).\n"
+"    Если РЕЖИМ начинается с цифры, он интерпретируется как восьмеричное число.\n"
+"    В противном случае он считается символьной строкой как для команды chmod(1).\n"
 "    \n"
 "    Параметры:\n"
-"      -p\tесли РЕЖИМ не указан, вывести маску, пригодную для повторного "
-"использования\n"
-"      -S\tвывести маску в символьном виде, в противном случае выводится "
-"восьмеричное число\n"
+"      -p\tесли РЕЖИМ не указан, вывести маску, пригодную для повторного использования\n"
+"      -S\tвывести маску в символьном виде, в противном случае выводится восьмеричное число\n"
 "    \n"
 "    Состояние выхода:\n"
 "    Возвращает успех, если был указан допустимый РЕЖИМ или параметр."
 
-#: builtins.c:1495
-#, fuzzy
+#: builtins.c:1494
 msgid ""
 "Wait for job completion and return exit status.\n"
 "    \n"
-"    Waits for each process identified by an ID, which may be a process ID or "
-"a\n"
+"    Waits for each process identified by an ID, which may be a process ID or a\n"
 "    job specification, and reports its termination status.  If ID is not\n"
 "    given, waits for all currently active child processes, and the return\n"
-"    status is zero.  If ID is a job specification, waits for all processes\n"
+"    status is zero.  If ID is a job specification, waits for all processes\n"
 "    in that job's pipeline.\n"
 "    \n"
 "    If the -n option is supplied, waits for the next job to terminate and\n"
 "    returns its exit status.\n"
 "    \n"
-"    If the -f option is supplied, and job control is enabled, waits for the\n"
-"    specified ID to terminate, instead of waiting for it to change status.\n"
-"    \n"
 "    Exit Status:\n"
 "    Returns the status of the last ID; fails if ID is invalid or an invalid\n"
 "    option is given."
@@ -4899,11 +5164,9 @@ msgstr ""
 "Ожидание завершения задания и возврат состояния выхода.\n"
 "    \n"
 "    Ожидает завершения всех процессов, заданных идентификаторами\n"
-"    (идентификатор процесса или номер задания), и возвращает их состояние "
-"выхода.  Если идентификатор\n"
+"    (идентификатор процесса или номер задания), и возвращает их состояние выхода.  Если идентификатор\n"
 "    не указан, ожидает завершения всех активных дочерних процессов\n"
-"    и возвращает нулевое состояние выхода.  Если идентификатор не является "
-"номером задания, ожидает завершения\n"
+"    и возвращает нулевое состояние выхода.  Если идентификатор не является номером задания, ожидает завершения\n"
 "    всех процессов в конвейере данного задания.\n"
 "    \n"
 "    Если указан параметр -n, ожидает завершения следующего задания\n"
@@ -4913,33 +5176,29 @@ msgstr ""
 "    Возвращает состояние последнего идентификатора. Возвращает ошибку, если\n"
 "    указан недопустимый идентификатор или параметр."
 
-#: builtins.c:1519
+#: builtins.c:1515
 msgid ""
 "Wait for process completion and return exit status.\n"
 "    \n"
-"    Waits for each process specified by a PID and reports its termination "
-"status.\n"
+"    Waits for each process specified by a PID and reports its termination status.\n"
 "    If PID is not given, waits for all currently active child processes,\n"
 "    and the return status is zero.  PID must be a process ID.\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns the status of the last PID; fails if PID is invalid or an "
-"invalid\n"
+"    Returns the status of the last PID; fails if PID is invalid or an invalid\n"
 "    option is given."
 msgstr ""
 "Ожидание завершения процесса и возврат состояния выхода.\n"
 "    \n"
-"    Ожидает завершения всех процессов, заданных идентификаторами (PID), и "
-"возвращает их состояние выхода.\n"
+"    Ожидает завершения всех процессов, заданных идентификаторами (PID), и возвращает их состояние выхода.\n"
 "    Если идентификатор процесса не указан, ожидает завершения всех активных\n"
-"    дочерних процессов и возвращает нулевое состояние выхода.  PID должен "
-"быть идентификатором процесса.\n"
+"    дочерних процессов и возвращает нулевое состояние выхода.  PID должен быть идентификатором процесса.\n"
 "    \n"
 "    Состояние выхода:\n"
 "    Возвращает состояние последнего идентификатора. Возвращает ошибку, если\n"
 "    указан недопустимый идентификатор или параметр."
 
-#: builtins.c:1534
+#: builtins.c:1530
 msgid ""
 "Execute commands for each member in a list.\n"
 "    \n"
@@ -4955,14 +5214,13 @@ msgstr ""
 "    \n"
 "    Цикл «for» выполняет последовательность команд для каждого элемента\n"
 "    списка.  Если операнд «in СЛОВА ...;» отсутствует, подразумевается\n"
-"    операнд «in \"$@\"».  Каждому элементу в списке СЛОВА присваивается ИМЯ и "
-"для него\n"
+"    операнд «in \"$@\"».  Каждому элементу в списке СЛОВА присваивается ИМЯ и для него\n"
 "    выполняются КОМАНДЫ.\n"
 "    \n"
 "    Состояние выхода:\n"
 "    Возвращает состояние последней выполненной команды."
 
-#: builtins.c:1548
+#: builtins.c:1544
 msgid ""
 "Arithmetic for loop.\n"
 "    \n"
@@ -4986,14 +5244,13 @@ msgstr ""
 "    \t\tКОМАНДЫ\n"
 "    \t\t(( ВЫРАЖ3 ))\n"
 "    \tdone\n"
-"    ВЫРАЖ1, ВЫРАЖ2 и ВЫРАЖ3 — это математические выражения.  Если любое из "
-"выражений\n"
+"    ВЫРАЖ1, ВЫРАЖ2 и ВЫРАЖ3 — это математические выражения.  Если любое из выражений\n"
 "    не указано, считается, что оно возвращает 1.\n"
 "    \n"
 "    Состояние выхода:\n"
 "    Возвращает состояние последней выполненной команды."
 
-#: builtins.c:1566
+#: builtins.c:1562
 msgid ""
 "Select words from a list and execute commands.\n"
 "    \n"
@@ -5016,26 +5273,20 @@ msgstr ""
 "    \n"
 "    СЛОВА разворачиваются, формируя список слов.   \n"
 "    Набор развёрнутых слов выводится в поток ошибок с номерами\n"
-"    в начале строк.  Если операнд «in СЛОВА ...;» отсутствует, "
-"подразумевается\n"
-"    операнд «in \"$@\"».  Затем выводится приглашение $PS3 и со стандартного "
-"ввода\n"
+"    в начале строк.  Если операнд «in СЛОВА ...;» отсутствует, подразумевается\n"
+"    операнд «in \"$@\"».  Затем выводится приглашение $PS3 и со стандартного ввода\n"
 "    считывается строка.  Если строка состоит из номера,\n"
 "    соответствующего одному из показанных слов, этому слову\n"
-"    присваивается указанное имя.  Если строка пустая, будут повторно "
-"показаны указанные слова\n"
-"    и приглашение.  Если прочитан символ конца файла, команда завершает свою "
-"работу.  Если прочитаны\n"
-"    любые другие значения, указанному имени присваивается пустое значение.  "
-"Прочитанная строка\n"
-"    сохраняется в переменную $REPLY.  Команды выполняются после каждой "
-"выборки,\n"
+"    присваивается указанное имя.  Если строка пустая, будут повторно показаны указанные слова\n"
+"    и приглашение.  Если прочитан символ конца файла, команда завершает свою работу.  Если прочитаны\n"
+"    любые другие значения, указанному имени присваивается пустое значение.  Прочитанная строка\n"
+"    сохраняется в переменную $REPLY.  Команды выполняются после каждой выборки,\n"
 "    пока не будет выполнена команда прерывания.\n"
 "    \n"
 "    Состояние выхода:\n"
 "    Возвращает состояние последней выполненной команды."
 
-#: builtins.c:1587
+#: builtins.c:1583
 msgid ""
 "Report time consumed by pipeline's execution.\n"
 "    \n"
@@ -5052,20 +5303,18 @@ msgid ""
 msgstr ""
 "Вывод времени, потраченного на выполнение конвейера.\n"
 "    \n"
-"    Выполняет конвейер и выводит значения реального времени, "
-"пользовательского времени\n"
+"    Выполняет конвейер и выводит значения реального времени, пользовательского времени\n"
 "    и системного времени ЦП, потраченного на выполнения конвейера.\n"
 "    \n"
 "    Параметры:\n"
 "      -p\tпоказать значения времени в формате Posix\n"
 "    \n"
-"    Для форматирования выходных данных используется значение переменной "
-"$TIMEFORMAT.\n"
+"    Для форматирования выходных данных используется значение переменной $TIMEFORMAT.\n"
 "    \n"
 "    Состояние выхода:\n"
 "    Возвращаемое состояние соответствует состоянию выхода конвейера."
 
-#: builtins.c:1604
+#: builtins.c:1600
 msgid ""
 "Execute commands based on pattern matching.\n"
 "    \n"
@@ -5083,21 +5332,16 @@ msgstr ""
 "    Состояние выхода:\n"
 "    Возвращает состояние последней выполненной команды."
 
-#: builtins.c:1616
+#: builtins.c:1612
 msgid ""
 "Execute commands based on conditional.\n"
 "    \n"
-"    The `if COMMANDS' list is executed.  If its exit status is zero, then "
-"the\n"
-"    `then COMMANDS' list is executed.  Otherwise, each `elif COMMANDS' list "
-"is\n"
+"    The `if COMMANDS' list is executed.  If its exit status is zero, then the\n"
+"    `then COMMANDS' list is executed.  Otherwise, each `elif COMMANDS' list is\n"
 "    executed in turn, and if its exit status is zero, the corresponding\n"
-"    `then COMMANDS' list is executed and the if command completes.  "
-"Otherwise,\n"
-"    the `else COMMANDS' list is executed, if present.  The exit status of "
-"the\n"
-"    entire construct is the exit status of the last command executed, or "
-"zero\n"
+"    `then COMMANDS' list is executed and the if command completes.  Otherwise,\n"
+"    the `else COMMANDS' list is executed, if present.  The exit status of the\n"
+"    entire construct is the exit status of the last command executed, or zero\n"
 "    if no condition tested true.\n"
 "    \n"
 "    Exit Status:\n"
@@ -5106,20 +5350,17 @@ msgstr ""
 "Выполнение команд в зависимости от условий.\n"
 "    \n"
 "    Сначала выполняется список «if КОМАНДЫ».  Если состояние выхода нулевое,\n"
-"    выполняется список «then КОМАНДЫ».  В противном случае выполняется по "
-"очереди\n"
+"    выполняется список «then КОМАНДЫ».  В противном случае выполняется по очереди\n"
 "    все списки «elif КОМАНДЫ», и если их состояние выхода будет нулевым,\n"
-"    выполнится список «then КОМАНДЫ», и команда if завершится.  В противном "
-"случае\n"
+"    выполнится список «then КОМАНДЫ», и команда if завершится.  В противном случае\n"
 "    выполнится список «else КОМАНДЫ», если он указан.  Состояние выхода всей\n"
-"    конструкции соответствует состоянию выхода последней выполненной команды "
-"или будет нулевым,\n"
+"    конструкции соответствует состоянию выхода последней выполненной команды или будет нулевым,\n"
 "    если ни одна проверка условия не возвратила истину.\n"
 "    \n"
 "    Состояние выхода:\n"
 "    Возвращает состояние последней выполненной команды."
 
-#: builtins.c:1633
+#: builtins.c:1629
 msgid ""
 "Execute commands as long as a test succeeds.\n"
 "    \n"
@@ -5137,7 +5378,7 @@ msgstr ""
 "    Состояние выхода:\n"
 "    Возвращает состояние последней выполненной команды."
 
-#: builtins.c:1645
+#: builtins.c:1641
 msgid ""
 "Execute commands as long as a test does not succeed.\n"
 "    \n"
@@ -5155,8 +5396,18 @@ msgstr ""
 "    Состояние выхода:\n"
 "    Возвращает состояние последней выполненной команды."
 
-#: builtins.c:1657
+#: builtins.c:1653
 #, fuzzy
+#| msgid ""
+#| "Create a coprocess named NAME.\n"
+#| "    \n"
+#| "    Execute COMMAND asynchronously, with the standard output and standard\n"
+#| "    input of the command connected via a pipe to file descriptors assigned\n"
+#| "    to indices 0 and 1 of an array variable NAME in the executing shell.\n"
+#| "    The default NAME is \"COPROC\".\n"
+#| "    \n"
+#| "    Exit Status:\n"
+#| "    Returns the exit status of COMMAND."
 msgid ""
 "Create a coprocess named NAME.\n"
 "    \n"
@@ -5171,22 +5422,19 @@ msgstr ""
 "Создание дополнительного процесса с указанным именем.\n"
 "    \n"
 "    Выполняет команду асинхронно, когда стандартный вывод и стандартный\n"
-"    вход команды подключены через конвейер к дескрипторам файлов, которые "
-"назначены\n"
-"    указателям 0 и 1 массива переменных ИМЯ в активном командном "
-"процессоре.\n"
+"    вход команды подключены через конвейер к дескрипторам файлов, которые назначены\n"
+"    указателям 0 и 1 массива переменных ИМЯ в активном командном процессоре.\n"
 "    Имя по умолчанию — «COPROC».\n"
 "    \n"
 "    Состояние выхода:\n"
 "    Возвращает состояние выхода команды."
 
-#: builtins.c:1671
+#: builtins.c:1667
 msgid ""
 "Define shell function.\n"
 "    \n"
 "    Create a shell function named NAME.  When invoked as a simple command,\n"
-"    NAME runs COMMANDs in the calling shell's context.  When NAME is "
-"invoked,\n"
+"    NAME runs COMMANDs in the calling shell's context.  When NAME is invoked,\n"
 "    the arguments are passed to the function as $1...$n, and the function's\n"
 "    name is in $FUNCNAME.\n"
 "    \n"
@@ -5195,17 +5443,15 @@ msgid ""
 msgstr ""
 "Определение функции командного процессора.\n"
 "    \n"
-"    Создаёт функцию командного процессора с указанным именем.  При запуске в "
-"качестве простой команды\n"
-"    ИМЯ выполняет КОМАНДЫ в контексте вызывающего их командного процессора.  "
-"При вызове ИМЕНИ\n"
+"    Создаёт функцию командного процессора с указанным именем.  При запуске в качестве простой команды\n"
+"    ИМЯ выполняет КОМАНДЫ в контексте вызывающего их командного процессора.  При вызове ИМЕНИ\n"
 "    аргументы передаются в функцию как $1...$n, а функция получает\n"
 "    название $FUNCNAME.\n"
 "    \n"
 "    Состояние выхода:\n"
 "    Возвращает успех, если переменная ИМЯ доступно для записи."
 
-#: builtins.c:1685
+#: builtins.c:1681
 msgid ""
 "Group commands as a unit.\n"
 "    \n"
@@ -5217,14 +5463,13 @@ msgid ""
 msgstr ""
 "Группировка команд.\n"
 "    \n"
-"    Выполняет набор команд, объединённых в группу.  Это единственный способ "
-"перенаправления\n"
+"    Выполняет набор команд, объединённых в группу.  Это единственный способ перенаправления\n"
 "    всего набора команд.\n"
 "    \n"
 "    Состояние выхода:\n"
 "    Возвращает состояние последней выполненной команды."
 
-#: builtins.c:1697
+#: builtins.c:1693
 msgid ""
 "Resume job in foreground.\n"
 "    \n"
@@ -5240,17 +5485,15 @@ msgstr ""
 "Возобновление работы задания в интерактивном режиме.\n"
 "    \n"
 "    Аналогично аргументу JOB_SPEC для команды «fg».  Возобновляет\n"
-"    работу остановленного или фонового задания.  Через JOB_SPEC можно задать "
-"название\n"
-"    или номер задания.  Если после номера задания указать «&», задание будет "
-"переведено\n"
+"    работу остановленного или фонового задания.  Через JOB_SPEC можно задать название\n"
+"    или номер задания.  Если после номера задания указать «&», задание будет переведено\n"
 "    в фоновый режим, как если бы идентификатор задания был указан как\n"
 "    аргумент для команды «bg».\n"
 "    \n"
 "    Состояние выхода:\n"
 "    Возвращает состояние возобновлённого задания."
 
-#: builtins.c:1712
+#: builtins.c:1708
 msgid ""
 "Evaluate arithmetic expression.\n"
 "    \n"
@@ -5268,16 +5511,13 @@ msgstr ""
 "    Состояние выхода:\n"
 "    Возвращает 1, если выражение равно 0, в противном случае возвращает 0."
 
-#: builtins.c:1724
+#: builtins.c:1720
 msgid ""
 "Execute conditional command.\n"
 "    \n"
-"    Returns a status of 0 or 1 depending on the evaluation of the "
-"conditional\n"
-"    expression EXPRESSION.  Expressions are composed of the same primaries "
-"used\n"
-"    by the `test' builtin, and may be combined using the following "
-"operators:\n"
+"    Returns a status of 0 or 1 depending on the evaluation of the conditional\n"
+"    expression EXPRESSION.  Expressions are composed of the same primaries used\n"
+"    by the `test' builtin, and may be combined using the following operators:\n"
 "    \n"
 "      ( EXPRESSION )\tReturns the value of EXPRESSION\n"
 "      ! EXPRESSION\t\tTrue if EXPRESSION is false; else false\n"
@@ -5298,22 +5538,16 @@ msgstr ""
 "Выполнение условной команды.\n"
 "    \n"
 "    Возвращает состояние 0 или 1 в зависимости от результата расчёта\n"
-"    условного выражения.  Выражения составляются из тех же примитивов, "
-"которые используются\n"
-"    во встроенной команде «test». Их можно объединить с помощью следующих "
-"операторов:\n"
+"    условного выражения.  Выражения составляются из тех же примитивов, которые используются\n"
+"    во встроенной команде «test». Их можно объединить с помощью следующих операторов:\n"
 "    \n"
 "      ( выражение )\tВозвращает значение выражения\n"
-"      ! выражение\tВозвращает истину, если выражение ложно, в противном "
-"случае возвращает ложь\n"
-"      ВЫРАЖ1 && ВЫРАЖ2\tВозвращает истину, если оба выражения истинны, в "
-"противном случае возвращает ложь\n"
-"      ВЫРАЖ1 || ВЫРАЖ2\tВозвращает истину, если хотя бы одно из выражений "
-"истинно, в противном случае возвращает ложь\n"
+"      ! выражение\tВозвращает истину, если выражение ложно, в противном случае возвращает ложь\n"
+"      ВЫРАЖ1 && ВЫРАЖ2\tВозвращает истину, если оба выражения истинны, в противном случае возвращает ложь\n"
+"      ВЫРАЖ1 || ВЫРАЖ2\tВозвращает истину, если хотя бы одно из выражений истинно, в противном случае возвращает ложь\n"
 "    \n"
 "    Если используются операторы «==» и «!=», строка справа от\n"
-"    оператора используется как шаблон, и выполняется сопоставление по "
-"шаблону.\n"
+"    оператора используется как шаблон, и выполняется сопоставление по шаблону.\n"
 "    Если используется оператор «=~», строка справа от оператора\n"
 "    оценивается как регулярное выражение.\n"
 "    \n"
@@ -5323,7 +5557,7 @@ msgstr ""
 "    Состояние выхода:\n"
 "    0 или 1 в зависимости от значения выражения."
 
-#: builtins.c:1750
+#: builtins.c:1746
 msgid ""
 "Common shell variable names and usage.\n"
 "    \n"
@@ -5381,8 +5615,7 @@ msgstr ""
 "    BASH_VERSION\tНомер версии bash.\n"
 "    CDPATH\t\tСписок каталогов, разделённых двоеточиями, для поиска\n"
 "    \t\tв них каталогов, указанных как аргументы для «cd».\n"
-"    GLOBIGNORE\tСписок шаблонов, разделённых двоеточиями и описывающих имена "
-"файлов,\n"
+"    GLOBIGNORE\tСписок шаблонов, разделённых двоеточиями и описывающих имена файлов,\n"
 "    \t\tкоторые будут игнорироваться при развёртывании пути.\n"
 "    HISTFILE\t\tИмя файла, в котором хранится журнал команд.\n"
 "    HISTFILESIZE\tЧисло строк в файле журнала.\n"
@@ -5391,15 +5624,11 @@ msgstr ""
 "    HOME\t\tПолный путь к вашему домашнему каталогу.\n"
 "    HOSTNAME\t\tИмя данной системы.\n"
 "    HOSTTYPE\t\tТип процессора, на котором работает данная версия bash.\n"
-"    IGNOREEOF\tУправляет действием командного процессора при получении "
-"символа\n"
-"    \t\tсимвола конца файла в качестве единственных входных данных.  Если "
-"задано, тогда значение\n"
+"    IGNOREEOF\tУправляет действием командного процессора при получении символа\n"
+"    \t\tсимвола конца файла в качестве единственных входных данных.  Если задано, тогда значение\n"
 "    \t\tявляется числом символов EOF, которые могут быть\n"
-"    \t\tпрочитаны подряд в пустой строке, после чего командный процессор "
-"будет закрыт\n"
-"    \t\t(по умолчанию — 10).  Если не задано, EOF означает конец входных "
-"данных.\n"
+"    \t\tпрочитаны подряд в пустой строке, после чего командный процессор будет закрыт\n"
+"    \t\t(по умолчанию — 10).  Если не задано, EOF означает конец входных данных.\n"
 "    MACHTYPE\t\tСтрока с описанием текущей системы, в которой запущен bash.\n"
 "    MAILCHECK\tКак часто (в секундах) bash проверяет наличие новой почты.\n"
 "    MAILPATH\t\tСписок имён файлов, разделённых двоеточиями, в которых bash\n"
@@ -5412,15 +5641,13 @@ msgstr ""
 "    PS1\t\tОсновная строка приглашения.\n"
 "    PS2\t\tДополнительная строка приглашения.\n"
 "    PWD\t\tПолный путь до текущего каталога.\n"
-"    SHELLOPTS\tСписок включённых параметров командного процессора, "
-"разделённых двоеточиями.\n"
+"    SHELLOPTS\tСписок включённых параметров командного процессора, разделённых двоеточиями.\n"
 "    TERM\t\tНазвание текущего типа терминала.\n"
 "    TIMEFORMAT\tФормат вывода данных о времени, показываемых\n"
 "    \t\tкомандой time.\n"
 "    auto_resume\tНепустое значение означает слово в строке запуска команды,\n"
 "    \t\tкоторое сначала ищется в списке\n"
-"    \t\tостановленных заданий.  Если команда найдена, задание переводится в "
-"интерактивный режим.\n"
+"    \t\tостановленных заданий.  Если команда найдена, задание переводится в интерактивный режим.\n"
 "    \t\tЗначение «exact» означает, что слово команды должно\n"
 "    \t\tточно совпадать с командой в списке остановленных заданий.   \n"
 "    \t\tЗначение «substring» означает, что слово команды\n"
@@ -5431,12 +5658,39 @@ msgstr ""
 "    \t\tподстановку журнала. Обычно это «!».  Второй символ\n"
 "    \t\tозначает «быструю подстановку». Обычно это «^».   \n"
 "    \t\tТретий символ означает примечание журнала. Обычно это «#».\n"
-"    HISTIGNORE\tСписок шаблонов, разделённых двоеточиями и описывающих "
-"команды,\n"
+"    HISTIGNORE\tСписок шаблонов, разделённых двоеточиями и описывающих команды,\n"
 "    \t\tкоторые должны быть сохранены в журнале.\n"
 
-#: builtins.c:1807
+#: builtins.c:1803
 #, fuzzy
+#| msgid ""
+#| "Add directories to stack.\n"
+#| "    \n"
+#| "    Adds a directory to the top of the directory stack, or rotates\n"
+#| "    the stack, making the new top of the stack the current working\n"
+#| "    directory.  With no arguments, exchanges the top two directories.\n"
+#| "    \n"
+#| "    Options:\n"
+#| "      -n\tSuppresses the normal change of directory when adding\n"
+#| "    \tdirectories to the stack, so only the stack is manipulated.\n"
+#| "    \n"
+#| "    Arguments:\n"
+#| "      +N\tRotates the stack so that the Nth directory (counting\n"
+#| "    \tfrom the left of the list shown by `dirs', starting with\n"
+#| "    \tzero) is at the top.\n"
+#| "    \n"
+#| "      -N\tRotates the stack so that the Nth directory (counting\n"
+#| "    \tfrom the right of the list shown by `dirs', starting with\n"
+#| "    \tzero) is at the top.\n"
+#| "    \n"
+#| "      dir\tAdds DIR to the directory stack at the top, making it the\n"
+#| "    \tnew current working directory.\n"
+#| "    \n"
+#| "    The `dirs' builtin displays the directory stack.\n"
+#| "    \n"
+#| "    Exit Status:\n"
+#| "    Returns success unless an invalid argument is supplied or the directory\n"
+#| "    change fails."
 msgid ""
 "Add directories to stack.\n"
 "    \n"
@@ -5470,8 +5724,7 @@ msgstr ""
 "    \n"
 "    Добавляет каталог в начало стека каталогов или выполняет\n"
 "    ротацию стека, помещая в начало стека текущий рабочий\n"
-"    каталог.  Если аргументы не указаны, меняет местами два первых "
-"каталога.\n"
+"    каталог.  Если аргументы не указаны, меняет местами два первых каталога.\n"
 "    \n"
 "    Параметры:\n"
 "      -n\tпредотвращает обычное изменение каталога при добавлении\n"
@@ -5495,8 +5748,32 @@ msgstr ""
 "    Возвращает успех, если был указан допустимый параметр или удалось\n"
 "    перейти в каталог."
 
-#: builtins.c:1841
+#: builtins.c:1837
 #, fuzzy
+#| msgid ""
+#| "Remove directories from stack.\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"
+#| "    Options:\n"
+#| "      -n\tSuppresses the normal change of directory when removing\n"
+#| "    \tdirectories from the stack, so only the stack is manipulated.\n"
+#| "    \n"
+#| "    Arguments:\n"
+#| "      +N\tRemoves the Nth entry counting from the left of the list\n"
+#| "    \tshown by `dirs', starting with zero.  For example: `popd +0'\n"
+#| "    \tremoves the first directory, `popd +1' the second.\n"
+#| "    \n"
+#| "      -N\tRemoves the Nth entry counting from the right of the list\n"
+#| "    \tshown by `dirs', starting with zero.  For example: `popd -0'\n"
+#| "    \tremoves the last directory, `popd -1' the next to last.\n"
+#| "    \n"
+#| "    The `dirs' builtin displays the directory stack.\n"
+#| "    \n"
+#| "    Exit Status:\n"
+#| "    Returns success unless an invalid argument is supplied or the directory\n"
+#| "    change fails."
 msgid ""
 "Remove directories from stack.\n"
 "    \n"
@@ -5546,8 +5823,32 @@ msgstr ""
 "    Возвращает успех, если был указан допустимый параметр или удалось\n"
 "    перейти в каталог."
 
-#: builtins.c:1871
+#: builtins.c:1867
 #, fuzzy
+#| msgid ""
+#| "Display directory stack.\n"
+#| "    \n"
+#| "    Display the list of currently remembered directories.  Directories\n"
+#| "    find their way onto the list with the `pushd' command; you can get\n"
+#| "    back up through the list with the `popd' command.\n"
+#| "    \n"
+#| "    Options:\n"
+#| "      -c\tclear the directory stack by deleting all of the elements\n"
+#| "      -l\tdo not print tilde-prefixed versions of directories relative\n"
+#| "    \tto your home directory\n"
+#| "      -p\tprint the directory stack with one entry per line\n"
+#| "      -v\tprint the directory stack with one entry per line prefixed\n"
+#| "    \twith its position in the stack\n"
+#| "    \n"
+#| "    Arguments:\n"
+#| "      +N\tDisplays the Nth entry counting from the left of the list shown by\n"
+#| "    \tdirs when invoked without options, starting with zero.\n"
+#| "    \n"
+#| "      -N\tDisplays the Nth entry counting from the right of the list shown by\n"
+#| "    \tdirs when invoked without options, starting with zero.\n"
+#| "    \n"
+#| "    Exit Status:\n"
+#| "    Returns success unless an invalid option is supplied or an error occurs."
 msgid ""
 "Display directory stack.\n"
 "    \n"
@@ -5597,17 +5898,15 @@ msgstr ""
 "    \tпоказанного при вызове без параметров, начиная с нуля.\n"
 "    \n"
 "    Состояние выхода:\n"
-"    Возвращает успех, если был указан допустимый параметр или не возникла "
-"ошибка."
+"    Возвращает успех, если был указан допустимый параметр или не возникла ошибка."
 
-#: builtins.c:1902
-#, fuzzy
+#: builtins.c:1898
 msgid ""
 "Set and unset shell options.\n"
 "    \n"
 "    Change the setting of each shell option OPTNAME.  Without any option\n"
-"    arguments, list each supplied OPTNAME, or all shell options if no\n"
-"    OPTNAMEs are given, with an indication of whether or not each is set.\n"
+"    arguments, list all shell options with an indication of whether or not each\n"
+"    is set.\n"
 "    \n"
 "    Options:\n"
 "      -o\trestrict OPTNAMEs to those defined for use with `set -o'\n"
@@ -5622,10 +5921,8 @@ msgid ""
 msgstr ""
 "Установка и удаление параметров командного процессора.\n"
 "    \n"
-"    Изменяет настройки указанных параметров командного процессора.  Если не "
-"указать\n"
-"    аргумент с параметром, выводит все параметры командного процессора, "
-"показывая\n"
+"    Изменяет настройки указанных параметров командного процессора.  Если не указать\n"
+"    аргумент с параметром, выводит все параметры командного процессора, показывая\n"
 "    какой из них установлен, а какой нет.\n"
 "    \n"
 "    Параметры:\n"
@@ -5639,8 +5936,37 @@ msgstr ""
 "    Возвращает успех, если указанный параметр включён. Возвращает ошибку,\n"
 "    если был указан недопустимый параметр или параметр отключён."
 
-#: builtins.c:1923
+#: builtins.c:1919
 #, fuzzy
+#| msgid ""
+#| "Formats and prints ARGUMENTS under control of the FORMAT.\n"
+#| "    \n"
+#| "    Options:\n"
+#| "      -v var\tassign the output to shell variable VAR rather than\n"
+#| "    \t\tdisplay it on the standard output\n"
+#| "    \n"
+#| "    FORMAT is a character string which contains three types of objects: plain\n"
+#| "    characters, which are simply copied to standard output; character escape\n"
+#| "    sequences, which are converted and copied to the standard output; and\n"
+#| "    format specifications, each of which causes printing of the next successive\n"
+#| "    argument.\n"
+#| "    \n"
+#| "    In addition to the standard format specifications described in printf(1),\n"
+#| "    printf interprets:\n"
+#| "    \n"
+#| "      %b\texpand backslash escape sequences in the corresponding argument\n"
+#| "      %q\tquote the argument in a way that can be reused as shell input\n"
+#| "      %(fmt)T output the date-time string resulting from using FMT as a format\n"
+#| "            string for strftime(3)\n"
+#| "    \n"
+#| "    The format is re-used as necessary to consume all of the arguments.  If\n"
+#| "    there are fewer arguments than the format requires,  extra format\n"
+#| "    specifications behave as if a zero value or null string, as appropriate,\n"
+#| "    had been supplied.\n"
+#| "    \n"
+#| "    Exit Status:\n"
+#| "    Returns success unless an invalid option is given or a write or assignment\n"
+#| "    error occurs."
 msgid ""
 "Formats and prints ARGUMENTS under control of the FORMAT.\n"
 "    \n"
@@ -5648,34 +5974,27 @@ msgid ""
 "      -v var\tassign the output to shell variable VAR rather than\n"
 "    \t\tdisplay it on the standard output\n"
 "    \n"
-"    FORMAT is a character string which contains three types of objects: "
-"plain\n"
-"    characters, which are simply copied to standard output; character "
-"escape\n"
+"    FORMAT is a character string which contains three types of objects: plain\n"
+"    characters, which are simply copied to standard output; character escape\n"
 "    sequences, which are converted and copied to the standard output; and\n"
-"    format specifications, each of which causes printing of the next "
-"successive\n"
+"    format specifications, each of which causes printing of the next successive\n"
 "    argument.\n"
 "    \n"
-"    In addition to the standard format specifications described in printf"
-"(1),\n"
+"    In addition to the standard format specifications described in printf(1),\n"
 "    printf interprets:\n"
 "    \n"
 "      %b\texpand backslash escape sequences in the corresponding argument\n"
 "      %q\tquote the argument in a way that can be reused as shell input\n"
-"      %(fmt)T\toutput the date-time string resulting from using FMT as a "
-"format\n"
+"      %(fmt)T\toutput the date-time string resulting from using FMT as a format\n"
 "    \t        string for strftime(3)\n"
 "    \n"
 "    The format is re-used as necessary to consume all of the arguments.  If\n"
 "    there are fewer arguments than the format requires,  extra format\n"
-"    specifications behave as if a zero value or null string, as "
-"appropriate,\n"
+"    specifications behave as if a zero value or null string, as appropriate,\n"
 "    had been supplied.\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns success unless an invalid option is given or a write or "
-"assignment\n"
+"    Returns success unless an invalid option is given or a write or assignment\n"
 "    error occurs."
 msgstr ""
 "Форматирует и выводит аргументы согласно указанному формату.\n"
@@ -5686,43 +6005,56 @@ msgstr ""
 "    \n"
 "    ФОРМАТ — это символьная строка, содержащая три типа объектов: простые\n"
 "    символы, которые копируются на стандартный вывод, экранирующие\n"
-"    последовательности, которые преобразовываются и копируются на "
-"стандартный\n"
+"    последовательности, которые преобразовываются и копируются на стандартный\n"
 "    вывод, и спецификации, которые активируют вывод следующего успешного\n"
 "    аргумента.\n"
 "    \n"
-"    В дополнение к стандартным спецификациям формата, описанным в printf"
-"(1),\n"
+"    В дополнение к стандартным спецификациям формата, описанным в printf(1),\n"
 "    printf интерпретирует:\n"
 "    \n"
-"      %b\tразвёртывание экранирующих последовательностей с обратной косой "
-"чертой в соответствующий аргумент;\n"
-"      %q\tзаключение аргумента в кавычки, чтобы его можно было повторно "
-"использовать в качестве входных данных для командного процессора;\n"
-"      %(fmt)T вывод строки дата-время, полученной после использования FMT в "
-"качестве\n"
+"      %b\tразвёртывание экранирующих последовательностей с обратной косой чертой в соответствующий аргумент;\n"
+"      %q\tзаключение аргумента в кавычки, чтобы его можно было повторно использовать в качестве входных данных для командного процессора;\n"
+"      %(fmt)T вывод строки дата-время, полученной после использования FMT в качестве\n"
 "            строки форматирования для strftime(3)\n"
 "    \n"
-"    Если необходимо задействовать все аргументы, формат используется "
-"повторно.  Если\n"
+"    Если необходимо задействовать все аргументы, формат используется повторно.  Если\n"
 "    аргументов меньше, чем требуется для форматирования, дополнительные\n"
 "    спецификации форматирования интерпретируются как содержащие нулевое\n"
 "    или пустое значение.\n"
 "    \n"
 "    Состояние выхода:\n"
-"    Возвращает успех, если был указан допустимый параметр или не возникла "
-"ошибка\n"
+"    Возвращает успех, если был указан допустимый параметр или не возникла ошибка\n"
 "    записи или присвоения."
 
-#: builtins.c:1957
+#: builtins.c:1953
 #, fuzzy
+#| msgid ""
+#| "Specify how arguments are to be completed by Readline.\n"
+#| "    \n"
+#| "    For each NAME, specify how arguments are to be completed.  If no options\n"
+#| "    are supplied, existing completion specifications are printed in a way that\n"
+#| "    allows them to be reused as input.\n"
+#| "    \n"
+#| "    Options:\n"
+#| "      -p\tprint existing completion specifications in a reusable format\n"
+#| "      -r\tremove a completion specification for each NAME, or, if no\n"
+#| "    \tNAMEs are supplied, all completion specifications\n"
+#| "      -D\tapply the completions and actions as the default for commands\n"
+#| "    \twithout any specific completion defined\n"
+#| "      -E\tapply the completions and actions to \"empty\" commands --\n"
+#| "    \tcompletion attempted on a blank line\n"
+#| "    \n"
+#| "    When completion is attempted, the actions are applied in the order the\n"
+#| "    uppercase-letter options are listed above.  The -D option takes\n"
+#| "    precedence over -E.\n"
+#| "    \n"
+#| "    Exit Status:\n"
+#| "    Returns success unless an invalid option is supplied or an error occurs."
 msgid ""
 "Specify how arguments are to be completed by Readline.\n"
 "    \n"
-"    For each NAME, specify how arguments are to be completed.  If no "
-"options\n"
-"    are supplied, existing completion specifications are printed in a way "
-"that\n"
+"    For each NAME, specify how arguments are to be completed.  If no options\n"
+"    are supplied, existing completion specifications are printed in a way that\n"
 "    allows them to be reused as input.\n"
 "    \n"
 "    Options:\n"
@@ -5743,14 +6075,12 @@ msgid ""
 msgstr ""
 "Определение количества аргументов, завершаемых функцией readline.\n"
 "    \n"
-"    Для каждого имени нужно указать количество завершаемых аргументов.  Если "
-"параметры\n"
+"    Для каждого имени нужно указать количество завершаемых аргументов.  Если параметры\n"
 "    не указаны, выводятся существующие спецификации завершения формате\n"
 "    для повторного использования.\n"
 "    \n"
 "    Параметры:\n"
-"      -p\tвывести существующие спецификации завершения в формате для "
-"повторного использования\n"
+"      -p\tвывести существующие спецификации завершения в формате для повторного использования\n"
 "      -r\tудалить спецификации завершения для каждого имени или,\n"
 "    \tесли имена не указаны, все спецификации\n"
 "      -D\tприменить завершения и действия как стандартные для команд,\n"
@@ -5763,16 +6093,14 @@ msgstr ""
 "    высокий приоритет, чем -E.\n"
 "    \n"
 "    Состояние выхода:\n"
-"    Возвращает успех, если был указан допустимый параметр или не возникла "
-"ошибка."
+"    Возвращает успех, если был указан допустимый параметр или не возникла ошибка."
 
-#: builtins.c:1985
+#: builtins.c:1981
 msgid ""
 "Display possible completions depending on the options.\n"
 "    \n"
 "    Intended to be used from within a shell function generating possible\n"
-"    completions.  If the optional WORD argument is supplied, matches "
-"against\n"
+"    completions.  If the optional WORD argument is supplied, matches against\n"
 "    WORD are generated.\n"
 "    \n"
 "    Exit Status:\n"
@@ -5781,24 +6109,19 @@ msgstr ""
 "Вывод возможных завершений в зависимости от параметров.\n"
 "    \n"
 "    compgen предназначен для использования в функциях bash, генерирующих\n"
-"    возможные завершения.  Если указан необязательный аргумент слово, "
-"выполняет\n"
+"    возможные завершения.  Если указан необязательный аргумент слово, выполняет\n"
 "    сопоставление со сгенерированным словом.\n"
 "    \n"
 "    Состояние выхода:\n"
-"    Возвращает успех, если был указан допустимый параметр или не возникла "
-"ошибка."
+"    Возвращает успех, если был указан допустимый параметр или не возникла ошибка."
 
-#: builtins.c:2000
+#: builtins.c:1996
 msgid ""
 "Modify or display completion options.\n"
 "    \n"
-"    Modify the completion options for each NAME, or, if no NAMEs are "
-"supplied,\n"
-"    the completion currently being executed.  If no OPTIONs are given, "
-"print\n"
-"    the completion options for each NAME or the current completion "
-"specification.\n"
+"    Modify the completion options for each NAME, or, if no NAMEs are supplied,\n"
+"    the completion currently being executed.  If no OPTIONs are given, print\n"
+"    the completion options for each NAME or the current completion specification.\n"
 "    \n"
 "    Options:\n"
 "    \t-o option\tSet completion option OPTION for each NAME\n"
@@ -5822,10 +6145,8 @@ msgstr ""
 "Изменение или вывод параметров завершения.\n"
 "    \n"
 "    Изменяет параметры завершения для каждого имени или, если имена\n"
-"    не указаны, для текущего завершения.  Если параметры не указаны, "
-"выводит\n"
-"    параметры завершения для каждого имени или текущую спецификацию "
-"завершения.\n"
+"    не указаны, для текущего завершения.  Если параметры не указаны, выводит\n"
+"    параметры завершения для каждого имени или текущую спецификацию завершения.\n"
 "    \n"
 "    Параметры:\n"
 "    \t-o параметр\tзадать параметр завершения для каждого имени\n"
@@ -5837,10 +6158,8 @@ msgstr ""
 "    Аргументы:\n"
 "    \n"
 "    Каждое имя ссылается на команду, для которой уже должна быть определена\n"
-"    спецификация завершения с помощью встроенной команды «complete».  Если "
-"имена\n"
-"    не указаны, функция, которая сейчас генерирует завершения, должна "
-"вызвать\n"
+"    спецификация завершения с помощью встроенной команды «complete».  Если имена\n"
+"    не указаны, функция, которая сейчас генерирует завершения, должна вызвать\n"
 "    compopt, и должны измениться параметры для текущего\n"
 "    генератора завершения.\n"
 "    \n"
@@ -5848,27 +6167,52 @@ msgstr ""
 "    Возвращает успех, если был указан допустимый параметр или для имени\n"
 "    определена спецификация завершения."
 
-#: builtins.c:2030
+#: builtins.c:2026
 #, fuzzy
+#| msgid ""
+#| "Read lines from the standard input into an indexed array variable.\n"
+#| "    \n"
+#| "    Read lines from the standard input into the indexed array variable ARRAY, or\n"
+#| "    from file descriptor FD if the -u option is supplied.  The variable MAPFILE\n"
+#| "    is the default ARRAY.\n"
+#| "    \n"
+#| "    Options:\n"
+#| "      -n count\tCopy at most COUNT lines.  If COUNT is 0, all lines are copied.\n"
+#| "      -O origin\tBegin assigning to ARRAY at index ORIGIN.  The default index is 0.\n"
+#| "      -s count \tDiscard the first COUNT lines read.\n"
+#| "      -t\t\tRemove a trailing newline from each line read.\n"
+#| "      -u fd\t\tRead lines from file descriptor FD instead of the standard input.\n"
+#| "      -C callback\tEvaluate CALLBACK each time QUANTUM lines are read.\n"
+#| "      -c quantum\tSpecify the number of lines read between each call to CALLBACK.\n"
+#| "    \n"
+#| "    Arguments:\n"
+#| "      ARRAY\t\tArray variable name to use for file data.\n"
+#| "    \n"
+#| "    If -C is supplied without -c, the default quantum is 5000.  When\n"
+#| "    CALLBACK is evaluated, it is supplied the index of the next array\n"
+#| "    element to be assigned and the line to be assigned to that element\n"
+#| "    as additional arguments.\n"
+#| "    \n"
+#| "    If not supplied with an explicit origin, mapfile will clear ARRAY before\n"
+#| "    assigning to it.\n"
+#| "    \n"
+#| "    Exit Status:\n"
+#| "    Returns success unless an invalid option is given or ARRAY is readonly or\n"
+#| "    not an indexed array."
 msgid ""
 "Read lines from the standard input into an indexed array variable.\n"
 "    \n"
-"    Read lines from the standard input into the indexed array variable "
-"ARRAY, or\n"
-"    from file descriptor FD if the -u option is supplied.  The variable "
-"MAPFILE\n"
+"    Read lines from the standard input into the indexed array variable ARRAY, or\n"
+"    from file descriptor FD if the -u option is supplied.  The variable MAPFILE\n"
 "    is the default ARRAY.\n"
 "    \n"
 "    Options:\n"
 "      -d delim\tUse DELIM to terminate lines, instead of newline\n"
-"      -n count\tCopy at most COUNT lines.  If COUNT is 0, all lines are "
-"copied\n"
-"      -O origin\tBegin assigning to ARRAY at index ORIGIN.  The default "
-"index is 0\n"
+"      -n count\tCopy at most COUNT lines.  If COUNT is 0, all lines are copied\n"
+"      -O origin\tBegin assigning to ARRAY at index ORIGIN.  The default index is 0\n"
 "      -s count\tDiscard the first COUNT lines read\n"
 "      -t\tRemove a trailing DELIM from each line read (default newline)\n"
-"      -u fd\tRead lines from file descriptor FD instead of the standard "
-"input\n"
+"      -u fd\tRead lines from file descriptor FD instead of the standard input\n"
 "      -C callback\tEvaluate CALLBACK each time QUANTUM lines are read\n"
 "      -c quantum\tSpecify the number of lines read between each call to\n"
 "    \t\t\tCALLBACK\n"
@@ -5881,32 +6225,25 @@ msgid ""
 "    element to be assigned and the line to be assigned to that element\n"
 "    as additional arguments.\n"
 "    \n"
-"    If not supplied with an explicit origin, mapfile will clear ARRAY "
-"before\n"
+"    If not supplied with an explicit origin, mapfile will clear ARRAY before\n"
 "    assigning to it.\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns success unless an invalid option is given or ARRAY is readonly "
-"or\n"
+"    Returns success unless an invalid option is given or ARRAY is readonly or\n"
 "    not an indexed array."
 msgstr ""
 "Чтение строк со стандартного ввода в переменную индексированного массива.\n"
 "    \n"
-"    Читает строки со стандартного ввода в переменную указанного "
-"индексированного массива\n"
-"    или из указанного файлового дескриптора, если указан параметр -u.  "
-"Переменная $MAPFILE\n"
+"    Читает строки со стандартного ввода в переменную указанного индексированного массива\n"
+"    или из указанного файлового дескриптора, если указан параметр -u.  Переменная $MAPFILE\n"
 "    является массивом по умолчанию.\n"
 "    \n"
 "    Параметры:\n"
-"      -n число\tкопировать указанное число строк  Если число равно 0, "
-"копируются все строки.\n"
-"      -O начало\tначать присвоение массиву, начиная с заданного указателя  "
-"По умолчанию указатель равен 0.\n"
+"      -n число\tкопировать указанное число строк  Если число равно 0, копируются все строки.\n"
+"      -O начало\tначать присвоение массиву, начиная с заданного указателя  По умолчанию указатель равен 0.\n"
 "      -s число \tотбросить указанное число первых строк\n"
 "      -t\t\tудалить завершающие переводы строки изо всех прочитанных строк\n"
-"      -u fd\t\tчитать строки из файлового дескриптора, а не со стандартного "
-"входа\n"
+"      -u fd\t\tчитать строки из файлового дескриптора, а не со стандартного входа\n"
 "      -C callback\tоценивать callback при чтении каждой строки quantum\n"
 "      -c quantum\tчисло строк, читаемых от каждого вызова до callback\n"
 "    \n"
@@ -5914,8 +6251,7 @@ msgstr ""
 "      МАССИВ\t\tназвание переменной массива, используемой для данных файла.\n"
 "    \n"
 "    Если параметр -C указан без -c, quantum по умолчанию равен 5000.  Когда\n"
-"    оценивается callback, он предоставляет указатель на следующий "
-"присваиваемый\n"
+"    оценивается callback, он предоставляет указатель на следующий присваиваемый\n"
 "    элемента массива и на строку, присваиваемую этому элементу,\n"
 "    в качестве дополнительных аргументов.\n"
 "    \n"
@@ -5923,11 +6259,10 @@ msgstr ""
 "    операции присвоения.\n"
 "    \n"
 "    Состояние выхода:\n"
-"    Возвращает успех, если был указан допустимый параметр или массив "
-"доступен для записи\n"
+"    Возвращает успех, если был указан допустимый параметр или массив доступен для записи\n"
 "    и является индексированным."
 
-#: builtins.c:2066
+#: builtins.c:2062
 msgid ""
 "Read lines from a file into an array variable.\n"
 "    \n"
@@ -5959,8 +6294,7 @@ msgstr ""
 #~ msgstr "brace_expand> "
 
 #~ msgid "Attempt to free unknown command type `%d'.\n"
-#~ msgstr ""
-#~ "Попытка освободить память структуры команды неизвестного типа `%d'.\n"
+#~ msgstr "Попытка освободить память структуры команды неизвестного типа `%d'.\n"
 
 #~ msgid "Report this to %s\n"
 #~ msgstr "Сообщите об этом по адресу %s\n"
@@ -6069,9 +6403,7 @@ msgstr ""
 #~ msgstr "подстановка команд"
 
 #~ msgid "Can't reopen pipe to command substitution (fd %d): %s"
-#~ msgstr ""
-#~ "Невозможно вновь открыть канал для подстановки команд (файловый "
-#~ "дексриптор %d): %s"
+#~ msgstr "Невозможно вновь открыть канал для подстановки команд (файловый дексриптор %d): %s"
 
 #~ msgid "$%c: unbound variable"
 #~ msgstr "$%c: не заданы границы"
@@ -6089,8 +6421,7 @@ msgstr ""
 #~ msgstr "[%s: неверный индекс"
 
 #~ msgid "xrealloc: cannot reallocate %lu bytes (%lu bytes allocated)"
-#~ msgstr ""
-#~ "xmalloc: невозможно заново выделить %lu байтов (выделено %lu байтов)"
+#~ msgstr "xmalloc: невозможно заново выделить %lu байтов (выделено %lu байтов)"
 
 #~ msgid "digits occur in two different argv-elements.\n"
 #~ msgstr "цифры встречаются в двух разных элементах argv.\n"
@@ -6159,50 +6490,40 @@ msgstr ""
 #~ msgstr "случае, для каждого ИМЕНИ определяется псевдокоманда со ЗНАЧЕНИЕМ."
 
 #~ msgid "A trailing space in VALUE causes the next word to be checked for"
-#~ msgstr ""
-#~ "Если на конце ЗНАЧЕНИЯ есть пробелы, при разворачивании псевдокоманды"
+#~ msgstr "Если на конце ЗНАЧЕНИЯ есть пробелы, при разворачивании псевдокоманды"
 
 #~ msgid "alias substitution when the alias is expanded.  Alias returns"
 #~ msgstr "следующее слово проверяется на подстановку псевдокоманд. Alias"
 
 #~ msgid "true unless a NAME is given for which no alias has been defined."
-#~ msgstr ""
-#~ "возвращает true, если только не задано ИМЯ, для которого нет псевдокоманд."
+#~ msgstr "возвращает true, если только не задано ИМЯ, для которого нет псевдокоманд."
 
-#~ msgid ""
-#~ "Remove NAMEs from the list of defined aliases.  If the -a option is given,"
-#~ msgstr ""
-#~ "Удаляет ИМЕНА из списка определённых псевдокоманд. Если задан параметр -a,"
+#~ msgid "Remove NAMEs from the list of defined aliases.  If the -a option is given,"
+#~ msgstr "Удаляет ИМЕНА из списка определённых псевдокоманд. Если задан параметр -a,"
 
 #~ msgid "then remove all alias definitions."
 #~ msgstr "удаляет все определения псевдокоманд."
 
 #~ msgid "Bind a key sequence to a Readline function, or to a macro.  The"
-#~ msgstr ""
-#~ "Связывает последовательность клавиш с функцией Readline или с макросом."
+#~ msgstr "Связывает последовательность клавиш с функцией Readline или с макросом."
 
 #~ msgid "syntax is equivalent to that found in ~/.inputrc, but must be"
 #~ msgstr "Синтаксис тот же, что и в ~/.inputrc, но должен передаваться"
 
-#~ msgid ""
-#~ "passed as a single argument: bind '\"\\C-x\\C-r\": re-read-init-file'."
+#~ msgid "passed as a single argument: bind '\"\\C-x\\C-r\": re-read-init-file'."
 #~ msgstr "одним аргументом: bind '\"\\C-x\\C-r\": re-read-init-file'."
 
 #~ msgid "Arguments we accept:"
 #~ msgstr "Принимаемые аргументы:"
 
-#~ msgid ""
-#~ "  -m  keymap         Use `keymap' as the keymap for the duration of this"
-#~ msgstr ""
-#~ "   -m раскладка      Использовать во время работы программы указанную"
+#~ msgid "  -m  keymap         Use `keymap' as the keymap for the duration of this"
+#~ msgstr "   -m раскладка      Использовать во время работы программы указанную"
 
 #~ msgid "                     command.  Acceptable keymap names are emacs,"
 #~ msgstr "                     раскладку.  Допустимые имена раскладок: emacs,"
 
-#~ msgid ""
-#~ "                     emacs-standard, emacs-meta, emacs-ctlx, vi, vi-move,"
-#~ msgstr ""
-#~ "                     emacs-standard, emacs-meta, emacs-ctlx, vi, vi-move,"
+#~ msgid "                     emacs-standard, emacs-meta, emacs-ctlx, vi, vi-move,"
+#~ msgstr "                     emacs-standard, emacs-meta, emacs-ctlx, vi, vi-move,"
 
 #~ msgid "                     vi-command, and vi-insert."
 #~ msgstr "                     vi-command и vi-insert."
@@ -6213,8 +6534,7 @@ msgstr ""
 #~ msgid "  -P                 List function names and bindings."
 #~ msgstr "  -P                  Вывести список имён функций и связей."
 
-#~ msgid ""
-#~ "  -p                 List functions and bindings in a form that can be"
+#~ msgid "  -p                 List functions and bindings in a form that can be"
 #~ msgstr "  -p                 Вывести список имён функций и связей в виде,"
 
 #~ msgid "                     reused as input."
@@ -6226,40 +6546,26 @@ msgstr ""
 #~ msgid "  -f  filename       Read key bindings from FILENAME."
 #~ msgstr "  -f  имя_файла      Прочесть связи из файла."
 
-#~ msgid ""
-#~ "  -q  function-name  Query about which keys invoke the named function."
-#~ msgstr ""
-#~ "  -q  имя_функции    Запрос, какие клавиши вызовут указанную функцию."
+#~ msgid "  -q  function-name  Query about which keys invoke the named function."
+#~ msgstr "  -q  имя_функции    Запрос, какие клавиши вызовут указанную функцию."
 
 #~ msgid "  -V                 List variable names and values"
 #~ msgstr "  -V                 Вывести список имён и значений переменных."
 
-#~ msgid ""
-#~ "  -v                 List variable names and values in a form that can"
-#~ msgstr ""
-#~ "  -v                 Вывести список имён и значений переменных в виде,"
+#~ msgid "  -v                 List variable names and values in a form that can"
+#~ msgstr "  -v                 Вывести список имён и значений переменных в виде,"
 
 #~ msgid "                     be reused as input."
 #~ msgstr "                     который можно использовать на входе"
 
-#~ msgid ""
-#~ "  -S                 List key sequences that invoke macros and their "
-#~ "values"
-#~ msgstr ""
-#~ "  -S                 Вывести список последовательностей клавиш, "
-#~ "вызывающих макросы и их значений."
+#~ msgid "  -S                 List key sequences that invoke macros and their values"
+#~ msgstr "  -S                 Вывести список последовательностей клавиш, вызывающих макросы и их значений."
 
-#~ msgid ""
-#~ "  -s                 List key sequences that invoke macros and their "
-#~ "values in"
-#~ msgstr ""
-#~ "  -s                Вывести список последовательностей клавиш, вызывающих "
-#~ "макросы"
+#~ msgid "  -s                 List key sequences that invoke macros and their values in"
+#~ msgstr "  -s                Вывести список последовательностей клавиш, вызывающих макросы"
 
 #~ msgid "                     a form that can be reused as input."
-#~ msgstr ""
-#~ "                     и их значений в виде, который можно использовать на "
-#~ "входе"
+#~ msgstr "                     и их значений в виде, который можно использовать на входе"
 
 #~ msgid "Exit from within a FOR, WHILE or UNTIL loop.  If N is specified,"
 #~ msgstr "Выйти из цикла FOR, WHILE или UNTIL.  Если указано N,"
@@ -6286,89 +6592,64 @@ msgstr ""
 #~ msgstr "Изменить текущий каталог на заданный.  Переменная $HOME содержит"
 
 #~ msgid "default DIR.  The variable $CDPATH defines the search path for"
-#~ msgstr ""
-#~ "каталог по умолчанию.  Переменная $CDPATH определяет путь, в котором"
+#~ msgstr "каталог по умолчанию.  Переменная $CDPATH определяет путь, в котором"
 
 #~ msgid "the directory containing DIR.  Alternative directory names in CDPATH"
-#~ msgstr ""
-#~ "ищется каталог, содержащий КАТАЛОГ.  Альтернативные каталоги в CDPATH"
+#~ msgstr "ищется каталог, содержащий КАТАЛОГ.  Альтернативные каталоги в CDPATH"
 
 #~ msgid "are separated by a colon (:).  A null directory name is the same as"
-#~ msgstr ""
-#~ "разделяются точкой с запятой (:).  Пустое имя каталога -- то же самое,"
+#~ msgstr "разделяются точкой с запятой (:).  Пустое имя каталога -- то же самое,"
 
 #~ msgid "the current directory, i.e. `.'.  If DIR begins with a slash (/),"
-#~ msgstr ""
-#~ "что текущий каталог, т.е. `.'.  Если КАТАЛОГ начинается с дроби (/),"
+#~ msgstr "что текущий каталог, т.е. `.'.  Если КАТАЛОГ начинается с дроби (/),"
 
 #~ msgid "then $CDPATH is not used.  If the directory is not found, and the"
-#~ msgstr ""
-#~ "$CDPATh не используется.  Если каталог не найден, и установлен параметр"
+#~ msgstr "$CDPATh не используется.  Если каталог не найден, и установлен параметр"
 
 #~ msgid "shell option `cdable_vars' is set, then try the word as a variable"
-#~ msgstr ""
-#~ "оболочки `cdable_vars', делается попытка интерпретировать это слово как "
-#~ "имя"
+#~ msgstr "оболочки `cdable_vars', делается попытка интерпретировать это слово как имя"
 
 #~ msgid "name.  If that variable has a value, then cd to the value of that"
-#~ msgstr ""
-#~ "переменной.  Если эта переменная имеет значение, каталог меняется на это"
+#~ msgstr "переменной.  Если эта переменная имеет значение, каталог меняется на это"
 
-#~ msgid ""
-#~ "variable.  The -P option says to use the physical directory structure"
-#~ msgstr ""
-#~ "значение.  Параметр -P указывает использовать физическую структуру "
-#~ "каталогов,"
+#~ msgid "variable.  The -P option says to use the physical directory structure"
+#~ msgstr "значение.  Параметр -P указывает использовать физическую структуру каталогов,"
 
-#~ msgid ""
-#~ "instead of following symbolic links; the -L option forces symbolic links"
-#~ msgstr ""
-#~ "а не следовать символчиеским ссылкам, параметр -L заставляет следовать"
+#~ msgid "instead of following symbolic links; the -L option forces symbolic links"
+#~ msgstr "а не следовать символчиеским ссылкам, параметр -L заставляет следовать"
 
 #~ msgid "to be followed."
 #~ msgstr "символическим ссылкам."
 
 #~ msgid "Print the current working directory.  With the -P option, pwd prints"
-#~ msgstr ""
-#~ "Вывести имя текущего рабочего каталога.  С параметром -P pwd выводит"
+#~ msgstr "Вывести имя текущего рабочего каталога.  С параметром -P pwd выводит"
 
 #~ msgid "the physical directory, without any symbolic links; the -L option"
-#~ msgstr ""
-#~ "физический каталог, без символических ссылок, параметр -L заставляет"
+#~ msgstr "физический каталог, без символических ссылок, параметр -L заставляет"
 
 #~ msgid "makes pwd follow symbolic links."
 #~ msgstr "pwd следовать символическим ссылкам."
 
-#~ msgid ""
-#~ "Runs COMMAND with ARGS ignoring shell functions.  If you have a shell"
-#~ msgstr ""
-#~ "Выполняет КОМАНДУ с АРГУМЕНТАМИ, игнорируя функции оболочки. Если у вас "
-#~ "есть"
+#~ msgid "Runs COMMAND with ARGS ignoring shell functions.  If you have a shell"
+#~ msgstr "Выполняет КОМАНДУ с АРГУМЕНТАМИ, игнорируя функции оболочки. Если у вас есть"
 
 #~ msgid "function called `ls', and you wish to call the command `ls', you can"
-#~ msgstr ""
-#~ "функция оболочки `ls', а вы хотите вызвать команду `ls', можно "
-#~ "использовать"
+#~ msgstr "функция оболочки `ls', а вы хотите вызвать команду `ls', можно использовать"
 
-#~ msgid ""
-#~ "say \"command ls\".  If the -p option is given, a default value is used"
-#~ msgstr ""
-#~ "\"command ls\".  Если задан параметр -p, используется значение $PATH"
+#~ msgid "say \"command ls\".  If the -p option is given, a default value is used"
+#~ msgstr "\"command ls\".  Если задан параметр -p, используется значение $PATH"
 
-#~ msgid ""
-#~ "for PATH that is guaranteed to find all of the standard utilities.  If"
+#~ msgid "for PATH that is guaranteed to find all of the standard utilities.  If"
 #~ msgstr "по умолчанию, что гарантирует отыскание стандартных утилит.  Если"
 
-#~ msgid ""
-#~ "the -V or -v option is given, a string is printed describing COMMAND."
+#~ msgid "the -V or -v option is given, a string is printed describing COMMAND."
 #~ msgstr "задан параметр -V или -v, выводится строка, описывающая КОМАНДУ."
 
 #~ msgid "The -V option produces a more verbose description."
 #~ msgstr "Параметр -V создаёт более подробное описание."
 
 #~ msgid "Declare variables and/or give them attributes.  If no NAMEs are"
-#~ msgstr ""
-#~ "Объявляет переменные и/или придаёт им атрибуты.  Если не заданы ИМЕНА,"
+#~ msgstr "Объявляет переменные и/или придаёт им атрибуты.  Если не заданы ИМЕНА,"
 
 #~ msgid "given, then display the values of variables instead.  The -p option"
 #~ msgstr "выводит вместо этого значения переменных.  Параметр -p выведет"
@@ -6412,13 +6693,11 @@ msgstr ""
 #~ msgid "name only."
 #~ msgstr "функции."
 
-#~ msgid ""
-#~ "Using `+' instead of `-' turns off the given attribute instead.  When"
+#~ msgid "Using `+' instead of `-' turns off the given attribute instead.  When"
 #~ msgstr "Использование `+' вместо `-' выключает заданный атрибут.  При"
 
 #~ msgid "used in a function, makes NAMEs local, as with the `local' command."
-#~ msgstr ""
-#~ "использовании в функции делает ИМЕНа локальными, как команда `local'."
+#~ msgstr "использовании в функции делает ИМЕНа локальными, как команда `local'."
 
 #~ msgid "Obsolete.  See `declare'."
 #~ msgstr "Устарела.  См. `declare'."
@@ -6433,8 +6712,7 @@ msgstr ""
 #~ msgstr "Выводит АРГУМЕНТЫ.  Если задано -n, подавляется завершающий переход"
 
 #~ msgid "suppressed.  If the -e option is given, interpretation of the"
-#~ msgstr ""
-#~ "на новую строку.  Если задан параметр -e, интерпретируются следующие"
+#~ msgstr "на новую строку.  Если задан параметр -e, интерпретируются следующие"
 
 #~ msgid "following backslash-escaped characters is turned on:"
 #~ msgstr "экранированные символы:"
@@ -6472,18 +6750,14 @@ msgstr ""
 #~ msgid "\t\\num\tthe character whose ASCII code is NUM (octal)."
 #~ msgstr "\t\\число\tсимвол, восьмеричный ASCII-код которого равен ЧИСЛУ"
 
-#~ msgid ""
-#~ "You can explicitly turn off the interpretation of the above characters"
+#~ msgid "You can explicitly turn off the interpretation of the above characters"
 #~ msgstr "Вы можете явно выключить интерпретацию вышеприведённых символов"
 
 #~ msgid "with the -E option."
 #~ msgstr "параметром -E."
 
-#~ msgid ""
-#~ "Output the ARGs.  If -n is specified, the trailing newline is suppressed."
-#~ msgstr ""
-#~ "Выводит АРГУМЕНТЫ.  Если задано -n, подавляется завершающий переход на "
-#~ "новую строку."
+#~ msgid "Output the ARGs.  If -n is specified, the trailing newline is suppressed."
+#~ msgstr "Выводит АРГУМЕНТЫ.  Если задано -n, подавляется завершающий переход на новую строку."
 
 #~ msgid "Enable and disable builtin shell commands.  This allows"
 #~ msgstr "Включает и блокирует встроенные команды оболочки.  Это позволяет"
@@ -6492,12 +6766,10 @@ msgstr ""
 #~ msgstr "использовать внешние команды с теми же именами, что команды"
 
 #~ msgid "builtin.  If -n is used, the NAMEs become disabled; otherwise"
-#~ msgstr ""
-#~ "оболочки.  При использовании -n ИМЕНА блокируются, в противном случае"
+#~ msgstr "оболочки.  При использовании -n ИМЕНА блокируются, в противном случае"
 
 #~ msgid "NAMEs are enabled.  For example, to use the `test' found on your"
-#~ msgstr ""
-#~ "включаются.  Например, чтобы использовать файл `test', а не встроенную"
+#~ msgstr "включаются.  Например, чтобы использовать файл `test', а не встроенную"
 
 #~ msgid "path instead of the shell builtin version, type `enable -n test'."
 #~ msgstr "в оболочку версию, введите enable -n test'.  На системах,"
@@ -6506,8 +6778,7 @@ msgstr ""
 #~ msgstr "поддерживающих динамическую загрузку можно использовать параметр -f"
 
 #~ msgid "to load new builtins from the shared object FILENAME.  The -d"
-#~ msgstr ""
-#~ "чтобы загрузить новые встроенные команды из разделяемого объекта ФАЙЛ."
+#~ msgstr "чтобы загрузить новые встроенные команды из разделяемого объекта ФАЙЛ."
 
 #~ msgid "option will delete a builtin previously loaded with -f.  If no"
 #~ msgstr "Параметр -d удаляет команды, загруженные -f.  Если имена, кроме"
@@ -6516,8 +6787,7 @@ msgstr ""
 #~ msgstr "как в параметрах, не заданы, или если задан параметр -p, выводится"
 
 #~ msgid "of builtins is printed.  The -a option means to print every builtin"
-#~ msgstr ""
-#~ "список встроенных команд.  Параметр -a требует вывести все встроенные"
+#~ msgstr "список встроенных команд.  Параметр -a требует вывести все встроенные"
 
 #~ msgid "with an indication of whether or not it is enabled.  The -s option"
 #~ msgstr "команды с информацией, блокированы ли они.  Параметр -s выводит"
@@ -6528,22 +6798,17 @@ msgstr ""
 #~ msgid "option displays a list of all disabled builtins."
 #~ msgstr "всех блокированных встроенных команд."
 
-#~ msgid ""
-#~ "Read ARGs as input to the shell and execute the resulting command(s)."
-#~ msgstr ""
-#~ "Читает АРГУМЕНТЫ как входной текст оболочки и выполняет полученные "
-#~ "команды."
+#~ msgid "Read ARGs as input to the shell and execute the resulting command(s)."
+#~ msgstr "Читает АРГУМЕНТЫ как входной текст оболочки и выполняет полученные команды."
 
 #~ msgid "Getopts is used by shell procedures to parse positional parameters."
-#~ msgstr ""
-#~ "Getopts используется процедурами оболочки для анализа параметров командной"
+#~ msgstr "Getopts используется процедурами оболочки для анализа параметров командной"
 
 #~ msgid "OPTSTRING contains the option letters to be recognized; if a letter"
 #~ msgstr "строки.  СТРОКА_ПАРАМЕТРОВ содержит буквы параметров, которые нужно"
 
 #~ msgid "is followed by a colon, the option is expected to have an argument,"
-#~ msgstr ""
-#~ "распознать.  Если за буквой следует двоеточие, параметр должен иметь"
+#~ msgstr "распознать.  Если за буквой следует двоеточие, параметр должен иметь"
 
 #~ msgid "which should be separated from it by white space."
 #~ msgstr "аргумент, отделённый от него промежутком."
@@ -6558,8 +6823,7 @@ msgstr ""
 #~ msgstr "следующего аргумента в переменную оболочки OPTIND.  OPTIND"
 
 #~ msgid "variable OPTIND.  OPTIND is initialized to 1 each time the shell or"
-#~ msgstr ""
-#~ "принимает значение 1 при каждом вызове оболочки или скрипта оболочки."
+#~ msgstr "принимает значение 1 при каждом вызове оболочки или скрипта оболочки."
 
 #~ msgid "a shell script is invoked.  When an option requires an argument,"
 #~ msgstr "Если параметр требует аргумента, getopts помещает этот аргумент"
@@ -6568,19 +6832,16 @@ msgstr ""
 #~ msgstr "в переменную оболочки OPTARG."
 
 #~ msgid "getopts reports errors in one of two ways.  If the first character"
-#~ msgstr ""
-#~ "getopts сообщает об ошибках одним из двух способов. Если первый символ"
+#~ msgstr "getopts сообщает об ошибках одним из двух способов. Если первый символ"
 
 #~ msgid "of OPTSTRING is a colon, getopts uses silent error reporting.  In"
-#~ msgstr ""
-#~ "OPTSTRING -- двоеточие, getopts использует бесшумный способ.  В этом"
+#~ msgstr "OPTSTRING -- двоеточие, getopts использует бесшумный способ.  В этом"
 
 #~ msgid "this mode, no error messages are printed.  If an illegal option is"
 #~ msgstr "случае сообщения об ошибках не выводятся.  Если найден недопустимый"
 
 #~ msgid "seen, getopts places the option character found into OPTARG.  If a"
-#~ msgstr ""
-#~ "параметр, getopts помещает найденный символ в OPTARG.  Если не найден"
+#~ msgstr "параметр, getopts помещает найденный символ в OPTARG.  Если не найден"
 
 #~ msgid "required argument is not found, getopts places a ':' into NAME and"
 #~ msgstr "требуемый аргумент, getopts помещает в ИМЯ ':', а в OPTARG --"
@@ -6637,8 +6898,7 @@ msgstr ""
 #~ msgstr "Если файл не может быть запущен, а оболочка не интерактивна,"
 
 #~ msgid "then the shell exits, unless the variable \"no_exit_on_failed_exec\""
-#~ msgstr ""
-#~ "производится выход из оболочки, если только не установлена переменная"
+#~ msgstr "производится выход из оболочки, если только не установлена переменная"
 
 #~ msgid "is set."
 #~ msgstr "\"no_exit_on_failed_exec\""
@@ -6646,10 +6906,8 @@ msgstr ""
 #~ msgid "is that of the last command executed."
 #~ msgstr "завершения будет таким же, как у последней выполненной команды."
 
-#~ msgid ""
-#~ "FIRST and LAST can be numbers specifying the range, or FIRST can be a"
-#~ msgstr ""
-#~ "ПЕРВАЯ и ПОСЛЕДНЯЯ могут быть числами, ограничивающими диапазон, или"
+#~ msgid "FIRST and LAST can be numbers specifying the range, or FIRST can be a"
+#~ msgstr "ПЕРВАЯ и ПОСЛЕДНЯЯ могут быть числами, ограничивающими диапазон, или"
 
 #~ msgid "string, which means the most recent command beginning with that"
 #~ msgstr "же ПЕРВАЯ может быть строкой, означающей самую недавнюю команду,"
@@ -6657,13 +6915,10 @@ msgstr ""
 #~ msgid "string."
 #~ msgstr "начинающуюся с этой строки."
 
-#~ msgid ""
-#~ "   -e ENAME selects which editor to use.  Default is FCEDIT, then EDITOR,"
-#~ msgstr ""
-#~ "   -e ИМЯ_РЕДАКТОРА выбирает используемый редактор.  По умолчанию FCEDIT,"
+#~ msgid "   -e ENAME selects which editor to use.  Default is FCEDIT, then EDITOR,"
+#~ msgstr "   -e ИМЯ_РЕДАКТОРА выбирает используемый редактор.  По умолчанию FCEDIT,"
 
-#~ msgid ""
-#~ "      then the editor which corresponds to the current readline editing"
+#~ msgid "      then the editor which corresponds to the current readline editing"
 #~ msgstr "      затем EDITOR, затем редактор, соответствуюший текущему режиму"
 
 #~ msgid "      mode, then vi."
@@ -6675,14 +6930,11 @@ msgstr ""
 #~ msgid "   -n means no line numbers listed."
 #~ msgstr "   -n не выводить номера строк."
 
-#~ msgid ""
-#~ "   -r means reverse the order of the lines (making it newest listed "
-#~ "first)."
+#~ msgid "   -r means reverse the order of the lines (making it newest listed first)."
 #~ msgstr "   -r вывести строки в обратном порядке (в начале самые новые)."
 
 #~ msgid "With the `fc -s [pat=rep ...] [command]' format, the command is"
-#~ msgstr ""
-#~ "В формате `fc -s [шаблон=замена] [команда]  команда выполняется заново"
+#~ msgstr "В формате `fc -s [шаблон=замена] [команда]  команда выполняется заново"
 
 #~ msgid "re-executed after the substitution OLD=NEW is performed."
 #~ msgstr "после того, как произведена подстановка."
@@ -6694,8 +6946,7 @@ msgstr ""
 #~ msgstr "команду, начинающуюся с `cc', а `r' заново выполняет последнюю"
 
 #~ msgid "Place JOB_SPEC in the foreground, and make it the current job.  If"
-#~ msgstr ""
-#~ "Возвращает задачу с указанным номером из фонового режима и делает её"
+#~ msgstr "Возвращает задачу с указанным номером из фонового режима и делает её"
 
 #~ msgid "JOB_SPEC is not present, the shell's notion of the current job is"
 #~ msgstr "текущей задачей. Если номер не задан, используется представление"
@@ -6704,12 +6955,10 @@ msgstr ""
 #~ msgstr "оболочки о текущей задаче."
 
 #~ msgid "Place JOB_SPEC in the background, as if it had been started with"
-#~ msgstr ""
-#~ "Переводит задачу с указанным номером в фоновый режим, как если бы она"
+#~ msgstr "Переводит задачу с указанным номером в фоновый режим, как если бы она"
 
 #~ msgid "`&'.  If JOB_SPEC is not present, the shell's notion of the current"
-#~ msgstr ""
-#~ "была запущена с `&'.  Если номер не задан, используется представление"
+#~ msgstr "была запущена с `&'.  Если номер не задан, используется представление"
 
 #~ msgid "job is used."
 #~ msgstr "оболочки о текущей задаче."
@@ -6726,17 +6975,14 @@ msgstr ""
 #~ msgid "option causes the shell to forget all remembered locations.  If no"
 #~ msgstr "список положений в памяти.  Если аргументы не заданы, выводится"
 
-#~ msgid ""
-#~ "arguments are given, information about remembered commands is displayed."
+#~ msgid "arguments are given, information about remembered commands is displayed."
 #~ msgstr "информация о запомненных командах."
 
 #~ msgid "Display helpful information about builtin commands.  If PATTERN is"
-#~ msgstr ""
-#~ "Вывести полезную информацию о встроенных командах.  Если задан ШАБЛОН,"
+#~ msgstr "Вывести полезную информацию о встроенных командах.  Если задан ШАБЛОН,"
 
 #~ msgid "specified, gives detailed help on all commands matching PATTERN,"
-#~ msgstr ""
-#~ "вывести подробную справку по всем командам, соответствующим ШАБЛОНУ,"
+#~ msgstr "вывести подробную справку по всем командам, соответствующим ШАБЛОНУ,"
 
 #~ msgid "otherwise a list of the builtins is printed."
 #~ msgstr "в противном случае вывести список встроенных команд."
@@ -6745,18 +6991,15 @@ msgstr ""
 #~ msgstr "Вывести историю команд в виде списка с номерами строк.  Изменённые"
 
 #~ msgid "with a `*' have been modified.  Argument of N says to list only"
-#~ msgstr ""
-#~ "строки помечаются символом `*'.  Аргумент N указывает выводить только"
+#~ msgstr "строки помечаются символом `*'.  Аргумент N указывает выводить только"
 
 #~ msgid "the last N lines.  The -c option causes the history list to be"
 #~ msgstr "последние N строк.  Параметр -c очищает историю команд, удаляя"
 
-#~ msgid ""
-#~ "cleared by deleting all of the entries.  The `-w' option writes out the"
+#~ msgid "cleared by deleting all of the entries.  The `-w' option writes out the"
 #~ msgstr "все строки.  Параметр `-w' записывает текущую историю в указанный"
 
-#~ msgid ""
-#~ "current history to the history file;  `-r' means to read the file and"
+#~ msgid "current history to the history file;  `-r' means to read the file and"
 #~ msgstr "файл; `-r' читает такой файл и дополняет его содержимым историю"
 
 #~ msgid "append the contents to the history list instead.  `-a' means"
@@ -6783,8 +7026,7 @@ msgstr ""
 #~ msgid "the history list as a single entry.  The -p option means to perform"
 #~ msgstr "Параметр -p выполняет развёртывание каждого АРГУМЕНТА и выводит"
 
-#~ msgid ""
-#~ "history expansion on each ARG and display the result, without storing"
+#~ msgid "history expansion on each ARG and display the result, without storing"
 #~ msgstr "результат, не сохраняя ничего в списке истории команд."
 
 #~ msgid "anything in the history list."
@@ -6796,53 +7038,41 @@ msgstr ""
 #~ msgid "to the normal information; the -p option lists process id's only."
 #~ msgstr "идентификаторы процессов: параметр -p выодит только идентификаторы."
 
-#~ msgid ""
-#~ "If -n is given, only processes that have changed status since the last"
+#~ msgid "If -n is given, only processes that have changed status since the last"
 #~ msgstr "Если задано -n, выводятся только процессы, статус которых изменился"
 
-#~ msgid ""
-#~ "notification are printed.  JOBSPEC restricts output to that job.  The"
-#~ msgstr ""
-#~ "со времени последнего уведомления.  Если задан номер задачи, выводится"
+#~ msgid "notification are printed.  JOBSPEC restricts output to that job.  The"
+#~ msgstr "со времени последнего уведомления.  Если задан номер задачи, выводится"
 
 #~ msgid "-r and -s options restrict output to running and stopped jobs only,"
 #~ msgstr "только она.  Параметры -r и -s выводит только работающие или только"
 
 #~ msgid "respectively.  Without options, the status of all active jobs is"
-#~ msgstr ""
-#~ "остановленные задачи соответственно.  Без параметров выодится статус"
+#~ msgstr "остановленные задачи соответственно.  Без параметров выодится статус"
 
-#~ msgid ""
-#~ "printed.  If -x is given, COMMAND is run after all job specifications"
-#~ msgstr ""
-#~ "всех активных задач.  Если задано -x, в КОМАНДЕ вместо всех АРГУМЕНТОВ"
+#~ msgid "printed.  If -x is given, COMMAND is run after all job specifications"
+#~ msgstr "всех активных задач.  Если задано -x, в КОМАНДЕ вместо всех АРГУМЕНТОВ"
 
-#~ msgid ""
-#~ "that appear in ARGS have been replaced with the process ID of that job's"
+#~ msgid "that appear in ARGS have been replaced with the process ID of that job's"
 #~ msgstr "(номеров задач) подставляется идентификатор лидера соответствующей"
 
 #~ msgid "process group leader."
 #~ msgstr "группы процессов, и КОМАНДА выполняется."
 
 #~ msgid "Removes each JOBSPEC argument from the table of active jobs."
-#~ msgstr ""
-#~ "Удаляет все задачи, заданные спецификациями в аргументе, из таблицы задач."
+#~ msgstr "Удаляет все задачи, заданные спецификациями в аргументе, из таблицы задач."
 
 #~ msgid "Send the processes named by PID (or JOB) the signal SIGSPEC.  If"
-#~ msgstr ""
-#~ "Посылает указанным процессам (заданным PID или спецификацией) сигнал"
+#~ msgstr "Посылает указанным процессам (заданным PID или спецификацией) сигнал"
 
-#~ msgid ""
-#~ "SIGSPEC is not present, then SIGTERM is assumed.  An argument of `-l'"
+#~ msgid "SIGSPEC is not present, then SIGTERM is assumed.  An argument of `-l'"
 #~ msgstr "SIGSPEC. Если отсутствует SIGSPEC, посылается SIGTERM. Аргументом"
 
 #~ msgid "lists the signal names; if arguments follow `-l' they are assumed to"
-#~ msgstr ""
-#~ "параметра `-l' служит список сигналов. Если он присутствует, выводятся"
+#~ msgstr "параметра `-l' служит список сигналов. Если он присутствует, выводятся"
 
 #~ msgid "be signal numbers for which names should be listed.  Kill is a shell"
-#~ msgstr ""
-#~ "названия сигналов с этими номерами. Kill является встроенной командой"
+#~ msgstr "названия сигналов с этими номерами. Kill является встроенной командой"
 
 #~ msgid "builtin for two reasons: it allows job IDs to be used instead of"
 #~ msgstr "оболочки по двум причинам: она позволяет использовать номера задач,"
@@ -6850,16 +7080,14 @@ msgstr ""
 #~ msgid "process IDs, and, if you have reached the limit on processes that"
 #~ msgstr "а не процессов, и если вы исчерпаете лимит созданных процессов,"
 
-#~ msgid ""
-#~ "you can create, you don't have to start a process to kill another one."
+#~ msgid "you can create, you don't have to start a process to kill another one."
 #~ msgstr "вы не сможете запустить новый процесс, уничтожающий один из старых."
 
 #~ msgid "Each ARG is an arithmetic expression to be evaluated.  Evaluation"
 #~ msgstr "Каждый аргумент рассматривается как арифметическое выражение."
 
 #~ msgid "is done in long integers with no check for overflow, though division"
-#~ msgstr ""
-#~ "Вычисление производится над длинными целыми без контроля переполнения,"
+#~ msgstr "Вычисление производится над длинными целыми без контроля переполнения,"
 
 #~ msgid "by 0 is trapped and flagged as an error.  The following list of"
 #~ msgstr "хотя деление на ноль отслеживается и считается ошибкой. Операции в"
@@ -6948,61 +7176,47 @@ msgstr ""
 #~ msgid "One line is read from the standard input, and the first word is"
 #~ msgstr "Со стандартного ввода считывается одна строка, первое её слово"
 
-#~ msgid ""
-#~ "assigned to the first NAME, the second word to the second NAME, and so"
+#~ msgid "assigned to the first NAME, the second word to the second NAME, and so"
 #~ msgstr "становится значением первого ИМЕНИ, второе -- второго ИМЕНИ и т.д."
 
-#~ msgid ""
-#~ "on, with leftover words assigned to the last NAME.  Only the characters"
-#~ msgstr ""
-#~ "Последнему ИМЕНИ присваивается весь остаток строки. Разделителями слов"
+#~ msgid "on, with leftover words assigned to the last NAME.  Only the characters"
+#~ msgstr "Последнему ИМЕНИ присваивается весь остаток строки. Разделителями слов"
 
 #~ msgid "found in $IFS are recognized as word delimiters.  The return code is"
 #~ msgstr "считаются только символы, входящие в $IFS. Код возврата равен нулю,"
 
-#~ msgid ""
-#~ "zero, unless end-of-file is encountered.  If no NAMEs are supplied, the"
+#~ msgid "zero, unless end-of-file is encountered.  If no NAMEs are supplied, the"
 #~ msgstr "за исключением случая, если встретился конец файла. Если ИМЕНА не"
 
-#~ msgid ""
-#~ "line read is stored in the REPLY variable.  If the -r option is given,"
-#~ msgstr ""
-#~ "заданы, прочитанная строка помещается в переменную REPLY. Если задан"
+#~ msgid "line read is stored in the REPLY variable.  If the -r option is given,"
+#~ msgstr "заданы, прочитанная строка помещается в переменную REPLY. Если задан"
 
 #~ msgid "this signifies `raw' input, and backslash escaping is disabled.  If"
-#~ msgstr ""
-#~ "параметр -r, это означает `сырой' ввод, т.е. символ \\ не экранирует"
+#~ msgstr "параметр -r, это означает `сырой' ввод, т.е. символ \\ не экранирует"
 
 #~ msgid "the `-p' option is supplied, the string supplied as an argument is"
-#~ msgstr ""
-#~ "символы. Если задано `-p', перед чтением на вывод в качестве аргумента"
+#~ msgstr "символы. Если задано `-p', перед чтением на вывод в качестве аргумента"
 
-#~ msgid ""
-#~ "output without a trailing newline before attempting to read.  If -a is"
-#~ msgstr ""
-#~ "подаётся заданная строка (без завершающего символа перевода строки)."
+#~ msgid "output without a trailing newline before attempting to read.  If -a is"
+#~ msgstr "подаётся заданная строка (без завершающего символа перевода строки)."
 
-#~ msgid ""
-#~ "supplied, the words read are assigned to sequential indices of ARRAY,"
+#~ msgid "supplied, the words read are assigned to sequential indices of ARRAY,"
 #~ msgstr "Если задано -a, прочитанные слова становятся значениями элементов"
 
 #~ msgid "starting at zero.  If -e is supplied and the shell is interactive,"
-#~ msgstr ""
-#~ "МАССИВА, начиная с нулевого. Если задано -c и оболочка интерактивна,"
+#~ msgstr "МАССИВА, начиная с нулевого. Если задано -c и оболочка интерактивна,"
 
 #~ msgid "readline is used to obtain the line."
 #~ msgstr "чтобы получить строку используется readline."
 
-#~ msgid ""
-#~ "Causes a function to exit with the return value specified by N.  If N"
+#~ msgid "Causes a function to exit with the return value specified by N.  If N"
 #~ msgstr "Заставляет функцию завершить работу с кодом возврата, заданным N."
 
 #~ msgid "is omitted, the return status is that of the last command."
 #~ msgstr "Если N опущено, им становится код возврата последней команды."
 
 #~ msgid "    -a  Mark variables which are modified or created for export."
-#~ msgstr ""
-#~ "    -a  Экспортировать переменные, которые изменялись или создавались."
+#~ msgstr "    -a  Экспортировать переменные, которые изменялись или создавались."
 
 #~ msgid "    -b  Notify of job termination immediately."
 #~ msgstr "    -b  Немедленно выводить сообщения о завершении задач."
@@ -7016,8 +7230,7 @@ msgstr ""
 #~ msgid "    -h  Remember the location of commands as they are looked up."
 #~ msgstr "    -h  Запоминать расположение обработанных команд."
 
-#~ msgid ""
-#~ "    -i  Force the shell to be an \"interactive\" one.  Interactive shells"
+#~ msgid "    -i  Force the shell to be an \"interactive\" one.  Interactive shells"
 #~ msgstr "    -i  Сделать оболочку \"интерактивной\". Интерактивные оболочки"
 
 #~ msgid "        always read `~/.bashrc' on startup."
@@ -7048,8 +7261,7 @@ msgstr ""
 #~ msgstr "            braceexpand  то же, что -B"
 
 #~ msgid "            emacs        use an emacs-style line editing interface"
-#~ msgstr ""
-#~ "            emacs        использовать стиль редактирования строк emacs"
+#~ msgstr "            emacs        использовать стиль редактирования строк emacs"
 
 #~ msgid "            errexit      same as -e"
 #~ msgstr "            errexit      то же, что -e"
@@ -7066,10 +7278,8 @@ msgstr ""
 #~ msgid "            interactive-comments"
 #~ msgstr "            interactive-comments"
 
-#~ msgid ""
-#~ "                         allow comments to appear in interactive commands"
-#~ msgstr ""
-#~ "                        допускает комментарии в интерактивных командах"
+#~ msgid "                         allow comments to appear in interactive commands"
+#~ msgstr "                        допускает комментарии в интерактивных командах"
 
 #~ msgid "            keyword      same as -k"
 #~ msgstr "            keyword      то же, что -k"
@@ -7098,12 +7308,10 @@ msgstr ""
 #~ msgid "            physical     same as -P"
 #~ msgstr "            physical     то же, что -P"
 
-#~ msgid ""
-#~ "            posix        change the behavior of bash where the default"
+#~ msgid "            posix        change the behavior of bash where the default"
 #~ msgstr "            posix        привести поведение bash, по умолчанию не"
 
-#~ msgid ""
-#~ "                         operation differs from the 1003.2 standard to"
+#~ msgid "                         operation differs from the 1003.2 standard to"
 #~ msgstr "                        соответствующее стандарту 1003.2, в"
 
 #~ msgid "                         match the standard"
@@ -7121,18 +7329,14 @@ msgstr ""
 #~ msgid "            xtrace       same as -x"
 #~ msgstr "            xtrace       то же, что -x"
 
-#~ msgid ""
-#~ "    -p  Turned on whenever the real and effective user ids do not match."
-#~ msgstr ""
-#~ "    -p  Если реальный и эффективный uid не совпадают, включается всегда."
+#~ msgid "    -p  Turned on whenever the real and effective user ids do not match."
+#~ msgstr "    -p  Если реальный и эффективный uid не совпадают, включается всегда."
 
 #~ msgid "        Disables processing of the $ENV file and importing of shell"
 #~ msgstr "        Отключает обработку файла $ENV и импорт функций оболочки."
 
-#~ msgid ""
-#~ "        functions.  Turning this option off causes the effective uid and"
-#~ msgstr ""
-#~ "        При выключении этого параметра эффективные uid и gid становятся"
+#~ msgid "        functions.  Turning this option off causes the effective uid and"
+#~ msgstr "        При выключении этого параметра эффективные uid и gid становятся"
 
 #~ msgid "        gid to be set to the real uid and gid."
 #~ msgstr "        равными реальным."
@@ -7141,8 +7345,7 @@ msgstr ""
 #~ msgstr "    -t  Завершить работу после чтения и выполнения одной команды."
 
 #~ msgid "    -u  Treat unset variables as an error when substituting."
-#~ msgstr ""
-#~ "    -u  При подстановке считать не установленные переменные ошибками."
+#~ msgstr "    -u  При подстановке считать не установленные переменные ошибками."
 
 #~ msgid "    -v  Print shell input lines as they are read."
 #~ msgstr "    -v  Выводить прочитанные строки входного текста оболочки."
@@ -7166,8 +7369,7 @@ msgstr ""
 #~ msgstr "        обычных файлов при перенаправлении вывода."
 
 #~ msgid "    -P  If set, do not follow symbolic links when executing commands"
-#~ msgstr ""
-#~ "    -P  Не следовать символическим ссылкам при выполнении таких команд,"
+#~ msgstr "    -P  Не следовать символическим ссылкам при выполнении таких команд,"
 
 #~ msgid "        such as cd which change the current directory."
 #~ msgstr "        как cd, т.е. изменяющих текущий каталог."
@@ -7176,11 +7378,9 @@ msgstr ""
 #~ msgstr "Использование + вместо - отключает флаг. Эти флаги могут также"
 
 #~ msgid "flags can also be used upon invocation of the shell.  The current"
-#~ msgstr ""
-#~ "использоваться при запуске оболочки. Текущий набор флагов содержится"
+#~ msgstr "использоваться при запуске оболочки. Текущий набор флагов содержится"
 
-#~ msgid ""
-#~ "set of flags may be found in $-.  The remaining n ARGs are positional"
+#~ msgid "set of flags may be found in $-.  The remaining n ARGs are positional"
 #~ msgstr "в $-. Остальные n аргументов -- позиционные параметры, и им, по"
 
 #~ msgid "parameters and are assigned, in order, to $1, $2, .. $n.  If no"
@@ -7193,8 +7393,7 @@ msgstr ""
 #~ msgstr "Для каждого ИМЕНИ удаляет соответствующую переменную или функцию."
 
 #~ msgid "the `-v', unset will only act on variables.  Given the `-f' flag,"
-#~ msgstr ""
-#~ "Если задано -v, unset влияет только на переменные, если -f -- только"
+#~ msgstr "Если задано -v, unset влияет только на переменные, если -f -- только"
 
 #~ msgid "unset will only act on functions.  With neither flag, unset first"
 #~ msgstr "на функции. Без флагов unset в первую очередь пытается удалить"
@@ -7202,8 +7401,7 @@ msgstr ""
 #~ msgid "tries to unset a variable, and if that fails, then tries to unset a"
 #~ msgstr "переменную, если это не удаётся -- функцию. Некоторые переменные"
 
-#~ msgid ""
-#~ "function.  Some variables (such as PATH and IFS) cannot be unset; also"
+#~ msgid "function.  Some variables (such as PATH and IFS) cannot be unset; also"
 #~ msgstr "(такие как PATH и IFS) не могут быть удалены. См."
 
 #~ msgid "see readonly."
@@ -7230,24 +7428,19 @@ msgstr ""
 #~ msgid "processing."
 #~ msgstr "параметров."
 
-#~ msgid ""
-#~ "The given NAMEs are marked readonly and the values of these NAMEs may"
-#~ msgstr ""
-#~ "Заданные ИМЕНА помечаются только для чтения, и значения этих ИМЁН не"
+#~ msgid "The given NAMEs are marked readonly and the values of these NAMEs may"
+#~ msgstr "Заданные ИМЕНА помечаются только для чтения, и значения этих ИМЁН не"
 
 #~ msgid "not be changed by subsequent assignment.  If the -f option is given,"
-#~ msgstr ""
-#~ "могут изменяться в последующих присваиваниях. Если задан параметр -f,"
+#~ msgstr "могут изменяться в последующих присваиваниях. Если задан параметр -f,"
 
 #~ msgid "then functions corresponding to the NAMEs are so marked.  If no"
 #~ msgstr "так помечаются функции с соответствующими ИМЕНАМИ. Если аргументы"
 
-#~ msgid ""
-#~ "arguments are given, or if `-p' is given, a list of all readonly names"
+#~ msgid "arguments are given, or if `-p' is given, a list of all readonly names"
 #~ msgstr "не заданы, или если задано `-p', выводится список имён только для"
 
-#~ msgid ""
-#~ "is printed.  An argument of `-n' says to remove the readonly property"
+#~ msgid "is printed.  An argument of `-n' says to remove the readonly property"
 #~ msgstr "чтения.  Аргумент `-n' указывает снять свойство `только для чтения'"
 
 #~ msgid "from subsequent NAMEs.  The `-a' option means to treat each NAME as"
@@ -7256,10 +7449,8 @@ msgstr ""
 #~ msgid "an array variable.  An argument of `--' disables further option"
 #~ msgstr "как массив.  Аргумент `--' прекращает дальнейшую обработку"
 
-#~ msgid ""
-#~ "The positional parameters from $N+1 ... are renamed to $1 ...  If N is"
-#~ msgstr ""
-#~ "Позиционные параметры начиная с $N+1 переобозначаются как $1,... Если"
+#~ msgid "The positional parameters from $N+1 ... are renamed to $1 ...  If N is"
+#~ msgstr "Позиционные параметры начиная с $N+1 переобозначаются как $1,... Если"
 
 #~ msgid "not given, it is assumed to be 1."
 #~ msgstr "N не задано, оно предполагается равным 1."
@@ -7298,8 +7489,7 @@ msgstr ""
 #~ msgstr "    -b ФАЙЛ        Истина, если файл -- специальный блочный файл."
 
 #~ msgid "    -c FILE        True if file is character special."
-#~ msgstr ""
-#~ "    -c ФАЙл        Истина, если файл -- специальный символьный файл."
+#~ msgstr "    -c ФАЙл        Истина, если файл -- специальный символьный файл."
 
 #~ msgid "    -d FILE        True if file is a directory."
 #~ msgstr "    -d ФАЙЛ        Истина, если файл -- каталог."
@@ -7308,23 +7498,19 @@ msgstr ""
 #~ msgstr "    -e ФАЙЛ        Истина, если файл существует."
 
 #~ msgid "    -f FILE        True if file exists and is a regular file."
-#~ msgstr ""
-#~ "    -f ФАЙЛ        Истина, если файл существует и является обычным файлом."
+#~ msgstr "    -f ФАЙЛ        Истина, если файл существует и является обычным файлом."
 
 #~ msgid "    -g FILE        True if file is set-group-id."
 #~ msgstr "    -g ФАЙЛ        Истина, если у файла установлен атрибут SGID."
 
 #~ msgid "    -h FILE        True if file is a symbolic link.  Use \"-L\"."
-#~ msgstr ""
-#~ "    -h ФАЙЛ        Истина, если файл -- символическая ссылка. Используйте "
-#~ "\"-L\"."
+#~ msgstr "    -h ФАЙЛ        Истина, если файл -- символическая ссылка. Используйте \"-L\"."
 
 #~ msgid "    -L FILE        True if file is a symbolic link."
 #~ msgstr "    -L ФАЙЛ        Истина, если файл -- символическая ссылка."
 
 #~ msgid "    -k FILE        True if file has its \"sticky\" bit set."
-#~ msgstr ""
-#~ "    -k ФАЙЛ        Истина, если у файла устанолвен \"бит привязчивости\"."
+#~ msgstr "    -k ФАЙЛ        Истина, если у файла устанолвен \"бит привязчивости\"."
 
 #~ msgid "    -p FILE        True if file is a named pipe."
 #~ msgstr "    -p ФАЙЛ        Истина, если файл -- именованный канал."
@@ -7339,9 +7525,7 @@ msgstr ""
 #~ msgstr "    -S ФАЙЛ        Истина, если файл -- сокет."
 
 #~ msgid "    -t FD          True if FD is opened on a terminal."
-#~ msgstr ""
-#~ "    -t FD          Истина, если файл с дескриптором FD связан с "
-#~ "терминалом."
+#~ msgstr "    -t FD          Истина, если файл с дескриптором FD связан с терминалом."
 
 #~ msgid "    -u FILE        True if the file is set-user-id."
 #~ msgstr "    -u ФАЙЛ        Истина, если у файла установлен атрибут SUID."
@@ -7355,14 +7539,11 @@ msgstr ""
 #~ msgid "    -O FILE        True if the file is effectively owned by you."
 #~ msgstr "    -O ФАЙЛ        Истина, если вы -- эффективный владелец файла."
 
-#~ msgid ""
-#~ "    -G FILE        True if the file is effectively owned by your group."
-#~ msgstr ""
-#~ "    -G ФАЙЛ        Истина, если ваша группа -- эффективная группа файла."
+#~ msgid "    -G FILE        True if the file is effectively owned by your group."
+#~ msgstr "    -G ФАЙЛ        Истина, если ваша группа -- эффективная группа файла."
 
 #~ msgid "  FILE1 -nt FILE2  True if file1 is newer than (according to"
-#~ msgstr ""
-#~ "  ФАЙЛ1 -nt ФАЙЛ2  Истина, если файл1 более новый (по дате последнего"
+#~ msgstr "  ФАЙЛ1 -nt ФАЙЛ2  Истина, если файл1 более новый (по дате последнего"
 
 #~ msgid "                   modification date) file2."
 #~ msgstr "                   изменения), чем файл2."
@@ -7400,20 +7581,14 @@ msgstr ""
 #~ msgid "    STRING1 < STRING2"
 #~ msgstr "    СТРОКА1 < СТРОКА2"
 
-#~ msgid ""
-#~ "                   True if STRING1 sorts before STRING2 lexicographically"
-#~ msgstr ""
-#~ "                   Истина, если СТРОКА1 лексикографически стоит раньше "
-#~ "СТРОКИ2"
+#~ msgid "                   True if STRING1 sorts before STRING2 lexicographically"
+#~ msgstr "                   Истина, если СТРОКА1 лексикографически стоит раньше СТРОКИ2"
 
 #~ msgid "    STRING1 > STRING2"
 #~ msgstr "    СТРОКА1 > СТРОКА2"
 
-#~ msgid ""
-#~ "                   True if STRING1 sorts after STRING2 lexicographically"
-#~ msgstr ""
-#~ "                   Истина, если СТРОКА1 лексикографически стоит позже "
-#~ "СТРОКИ2"
+#~ msgid "                   True if STRING1 sorts after STRING2 lexicographically"
+#~ msgstr "                   Истина, если СТРОКА1 лексикографически стоит позже СТРОКИ2"
 
 #~ msgid "Other operators:"
 #~ msgstr "Прочие операции:"
@@ -7434,11 +7609,9 @@ msgstr ""
 #~ msgstr "                   -lt, -le, -gt или -ge."
 
 #~ msgid "Arithmetic binary operators return true if ARG1 is equal, not-equal,"
-#~ msgstr ""
-#~ "Бинарные арифметические операции возвращают истину, если АРГ1 равен,"
+#~ msgstr "Бинарные арифметические операции возвращают истину, если АРГ1 равен,"
 
-#~ msgid ""
-#~ "less-than, less-than-or-equal, greater-than, or greater-than-or-equal"
+#~ msgid "less-than, less-than-or-equal, greater-than, or greater-than-or-equal"
 #~ msgstr "не равен, меньше, меньше или равен, больше или больше или равен"
 
 #~ msgid "than ARG2."
@@ -7457,27 +7630,22 @@ msgstr ""
 #~ msgstr "запущенных из оболочки."
 
 #~ msgid "The command ARG is to be read and executed when the shell receives"
-#~ msgstr ""
-#~ "Команда АРГ должна быть прочитана и выполнена при получении оболочкой"
+#~ msgstr "Команда АРГ должна быть прочитана и выполнена при получении оболочкой"
 
 #~ msgid "signal(s) SIGNAL_SPEC.  If ARG is absent all specified signals are"
-#~ msgstr ""
-#~ "указанного(ых) сигнала(ов). Если АРГ не задан, все указанные сигналы"
+#~ msgstr "указанного(ых) сигнала(ов). Если АРГ не задан, все указанные сигналы"
 
 #~ msgid "reset to their original values.  If ARG is the null string each"
-#~ msgstr ""
-#~ "обрабатываются обработчиками по умолчанию. Если АРГ -- пустая строка,"
+#~ msgstr "обрабатываются обработчиками по умолчанию. Если АРГ -- пустая строка,"
 
 #~ msgid "SIGNAL_SPEC is ignored by the shell and by the commands it invokes."
-#~ msgstr ""
-#~ "все указанные сигналы будут игнорироваться оболочкой и вызываемыми ей"
+#~ msgstr "все указанные сигналы будут игнорироваться оболочкой и вызываемыми ей"
 
 #~ msgid "If SIGNAL_SPEC is EXIT (0) the command ARG is executed on exit from"
 #~ msgstr "командами. Если задан сигнал EXIT (0), команда АРГ выполняется при"
 
 #~ msgid "the shell.  If SIGNAL_SPEC is DEBUG, ARG is executed after every"
-#~ msgstr ""
-#~ "выходе из оболочки, если DEBUG, АРГ выполняется при выполнении каждой"
+#~ msgstr "выходе из оболочки, если DEBUG, АРГ выполняется при выполнении каждой"
 
 #~ msgid "command.  If ARG is `-p' then the trap commands associated with"
 #~ msgstr "команды. Если АРГ -- `-p', выводятся команды, связанные с заданными"
@@ -7488,12 +7656,10 @@ msgstr ""
 #~ msgid "only `-p' is given, trap prints the list of commands associated with"
 #~ msgstr "trap выводит список команд, связанных со всеми сигналами. Сигнал"
 
-#~ msgid ""
-#~ "each signal number.  SIGNAL_SPEC is either a signal name in <signal.h>"
+#~ msgid "each signal number.  SIGNAL_SPEC is either a signal name in <signal.h>"
 #~ msgstr "задаётся либо своим именем в <signal.h>, либо номером. `trap -l'"
 
-#~ msgid ""
-#~ "or a signal number.  `trap -l' prints a list of signal names and their"
+#~ msgid "or a signal number.  `trap -l' prints a list of signal names and their"
 #~ msgstr "выводит список имён сигналов и соответствующих им номеров."
 
 #~ msgid "corresponding numbers.  Note that a signal can be sent to the shell"
@@ -7508,33 +7674,26 @@ msgstr ""
 #~ msgid "If the -t option is used, returns a single word which is one of"
 #~ msgstr "Если задан параметр -t, возвращает слово -- `alias', `keyword',"
 
-#~ msgid ""
-#~ "`alias', `keyword', `function', `builtin', `file' or `', if NAME is an"
+#~ msgid "`alias', `keyword', `function', `builtin', `file' or `', if NAME is an"
 #~ msgstr "`function', `builtin', `file' или `' -- если, соответственно, ИМЯ"
 
-#~ msgid ""
-#~ "alias, shell reserved word, shell function, shell builtin, disk file,"
+#~ msgid "alias, shell reserved word, shell function, shell builtin, disk file,"
 #~ msgstr "является псевдокомандой, зарезервированным словом, функцией, или"
 
 #~ msgid "or unfound, respectively."
 #~ msgstr "встроенной командой оболочки, дисковым файлом или не найдено."
 
 #~ msgid "If the -p flag is used, either returns the name of the disk file"
-#~ msgstr ""
-#~ "При использовании флага -p либо возвращается имя выполняемого дискового "
-#~ "файла,"
+#~ msgstr "При использовании флага -p либо возвращается имя выполняемого дискового файла,"
 
 #~ msgid "that would be executed, or nothing if -t would not return `file'."
 #~ msgstr "либо ничего, если -t вернуло бы значение, отличное от  `file'"
 
 #~ msgid "If the -a flag is used, displays all of the places that contain an"
-#~ msgstr ""
-#~ "При использовании флага -a выводится расположение всех исполняемых файлов"
+#~ msgstr "При использовании флага -a выводится расположение всех исполняемых файлов"
 
-#~ msgid ""
-#~ "executable named `file'.  This includes aliases and functions, if and"
-#~ msgstr ""
-#~ "с указанным именем. Если одновременно не используется флаг -p и только"
+#~ msgid "executable named `file'.  This includes aliases and functions, if and"
+#~ msgstr "с указанным именем. Если одновременно не используется флаг -p и только"
 
 #~ msgid "only if the -p flag is not also used."
 #~ msgstr "тогда, выводятся также псевдокоманды и функции."
@@ -7594,19 +7753,16 @@ msgstr ""
 #~ msgstr "    -v\tразмер виртуальной памяти"
 
 #~ msgid "If LIMIT is given, it is the new value of the specified resource."
-#~ msgstr ""
-#~ "Если задано ОГРАНИЧЕНИЕ, оно задёт новое значение для указанного ресурса."
+#~ msgstr "Если задано ОГРАНИЧЕНИЕ, оно задёт новое значение для указанного ресурса."
 
 #~ msgid "Otherwise, the current value of the specified resource is printed."
-#~ msgstr ""
-#~ "В противном случае выводится текущее значение для указанного ресурса."
+#~ msgstr "В противном случае выводится текущее значение для указанного ресурса."
 
 #~ msgid "If no option is given, then -f is assumed.  Values are in 1k"
 #~ msgstr "Если параметры не заданы, предполагается, что задано -f. Значения"
 
 #~ msgid "increments, except for -t, which is in seconds, -p, which is in"
-#~ msgstr ""
-#~ "измеряются в КБ, кроме -t, измеряемого в секундах, -p, единица измерения"
+#~ msgstr "измеряются в КБ, кроме -t, измеряемого в секундах, -p, единица измерения"
 
 #~ msgid "increments of 512 bytes, and -u, which is an unscaled number of"
 #~ msgstr "которого -- 512 байтов, и -u, задающего безразмерное число"
@@ -7614,52 +7770,38 @@ msgstr ""
 #~ msgid "processes."
 #~ msgstr "процессов."
 
-#~ msgid ""
-#~ "The user file-creation mask is set to MODE.  If MODE is omitted, or if"
-#~ msgstr ""
-#~ "Устанавливает маску создания пользователем файлов в РЕЖИМ. Если опущен"
+#~ msgid "The user file-creation mask is set to MODE.  If MODE is omitted, or if"
+#~ msgstr "Устанавливает маску создания пользователем файлов в РЕЖИМ. Если опущен"
 
-#~ msgid ""
-#~ "`-S' is supplied, the current value of the mask is printed.  The `-S'"
-#~ msgstr ""
-#~ "РЕЖИМ или задан параметр -S выводится текущее значение маски. Параметр"
+#~ msgid "`-S' is supplied, the current value of the mask is printed.  The `-S'"
+#~ msgstr "РЕЖИМ или задан параметр -S выводится текущее значение маски. Параметр"
 
-#~ msgid ""
-#~ "option makes the output symbolic; otherwise an octal number is output."
+#~ msgid "option makes the output symbolic; otherwise an octal number is output."
 #~ msgstr "-S делает вывод символическим, в противном случае используется"
 
 #~ msgid "If MODE begins with a digit, it is interpreted as an octal number,"
-#~ msgstr ""
-#~ "восьмеричое число. Если РЕЖИм начинается с цифры, он интерпретируется"
+#~ msgstr "восьмеричое число. Если РЕЖИм начинается с цифры, он интерпретируется"
 
-#~ msgid ""
-#~ "otherwise it is a symbolic mode string like that accepted by chmod(1)."
-#~ msgstr ""
-#~ "как восьмеричное число, в противном случае как строка, принимаемая chmod"
-#~ "(1)."
+#~ msgid "otherwise it is a symbolic mode string like that accepted by chmod(1)."
+#~ msgstr "как восьмеричное число, в противном случае как строка, принимаемая chmod(1)."
 
-#~ msgid ""
-#~ "Wait for the specified process and report its termination status.  If"
-#~ msgstr ""
-#~ "Подождать завершения указанного процесса и сообщить код завершения. Если"
+#~ msgid "Wait for the specified process and report its termination status.  If"
+#~ msgstr "Подождать завершения указанного процесса и сообщить код завершения. Если"
 
 #~ msgid "N is not given, all currently active child processes are waited for,"
-#~ msgstr ""
-#~ "N не задано, ожидается завершение работы всех активных дочерних процессов"
+#~ msgstr "N не задано, ожидается завершение работы всех активных дочерних процессов"
 
 #~ msgid "and the return code is zero.  N may be a process ID or a job"
 #~ msgstr "и код возврата равен 0. N может быть идентификатором процесса"
 
 #~ msgid "specification; if a job spec is given, all processes in the job's"
-#~ msgstr ""
-#~ "или спецификацией задачи, если задана спецификация задачи, ожидается"
+#~ msgstr "или спецификацией задачи, если задана спецификация задачи, ожидается"
 
 #~ msgid "pipeline are waited for."
 #~ msgstr "завершение работы всех процессов конвейера задачи."
 
 #~ msgid "and the return code is zero.  N is a process ID; if it is not given,"
-#~ msgstr ""
-#~ "и код возврата равен 0. N -- идентификатор процесса, если он не задан,"
+#~ msgstr "и код возврата равен 0. N -- идентификатор процесса, если он не задан,"
 
 #~ msgid "all child processes of the shell are waited for."
 #~ msgstr "ожидается завершение работы всех дочерних процессов оболочки."
@@ -7667,13 +7809,10 @@ msgstr ""
 #~ msgid "The `for' loop executes a sequence of commands for each member in a"
 #~ msgstr "Цикл `for' выполняет последовательность команд для каждого члена"
 
-#~ msgid ""
-#~ "list of items.  If `in WORDS ...;' is not present, then `in \"$@\"' is"
-#~ msgstr ""
-#~ "списка. Если отсутствует `in СЛОВА ...;', предполагается, что задано"
+#~ msgid "list of items.  If `in WORDS ...;' is not present, then `in \"$@\"' is"
+#~ msgstr "списка. Если отсутствует `in СЛОВА ...;', предполагается, что задано"
 
-#~ msgid ""
-#~ "assumed.  For each element in WORDS, NAME is set to that element, and"
+#~ msgid "assumed.  For each element in WORDS, NAME is set to that element, and"
 #~ msgstr "`in \"$@\"'. Для каждого из СЛОВ ИМЕНИ присваивается его значение"
 
 #~ msgid "the COMMANDS are executed."
@@ -7683,15 +7822,13 @@ msgstr ""
 #~ msgstr "СЛОВА разворачиваются и образуют список слов. Полученный список"
 
 #~ msgid "set of expanded words is printed on the standard error, each"
-#~ msgstr ""
-#~ "выводится на стандартный поток ошибок, каждому приписывается спереди"
+#~ msgstr "выводится на стандартный поток ошибок, каждому приписывается спереди"
 
 #~ msgid "preceded by a number.  If `in WORDS' is not present, `in \"$@\"'"
 #~ msgstr "число. Если `in СЛОВА' отсутствует, предполагается заданным"
 
 #~ msgid "is assumed.  The PS3 prompt is then displayed and a line read"
-#~ msgstr ""
-#~ "`in \"$@\"'. Затем выводится приглашение PS3 и со стандартного ввода"
+#~ msgstr "`in \"$@\"'. Затем выводится приглашение PS3 и со стандартного ввода"
 
 #~ msgid "from the standard input.  If the line consists of the number"
 #~ msgstr "считывается строка. Если строка состоит из числа, соответствующего"
@@ -7712,47 +7849,34 @@ msgstr ""
 #~ msgstr "сохраняется в переменной REPLY. После каждого выбора выполняются"
 
 #~ msgid "until a break or return command is executed."
-#~ msgstr ""
-#~ "КОМАНДЫ до тех пор, пока не будет выполнена команда break или return."
+#~ msgstr "КОМАНДЫ до тех пор, пока не будет выполнена команда break или return."
 
 #~ msgid "Selectively execute COMMANDS based upon WORD matching PATTERN.  The"
-#~ msgstr ""
-#~ "Выполняет КОМАНДЫ в зависимости от того, какому ШАБЛОНУ соответствует"
+#~ msgstr "Выполняет КОМАНДЫ в зависимости от того, какому ШАБЛОНУ соответствует"
 
 #~ msgid "`|' is used to separate multiple patterns."
-#~ msgstr ""
-#~ "СЛОВО. Для разделения нескольких допустимых шаблонов используется `|'."
+#~ msgstr "СЛОВО. Для разделения нескольких допустимых шаблонов используется `|'."
 
-#~ msgid ""
-#~ "The if COMMANDS are executed.  If the exit status is zero, then the then"
-#~ msgstr ""
-#~ "Выполняются КОМАНДЫ, заданные в if. Если код возврата нулевой, выполняются"
+#~ msgid "The if COMMANDS are executed.  If the exit status is zero, then the then"
+#~ msgstr "Выполняются КОМАНДЫ, заданные в if. Если код возврата нулевой, выполняются"
 
-#~ msgid ""
-#~ "COMMANDS are executed.  Otherwise, each of the elif COMMANDS are executed"
+#~ msgid "COMMANDS are executed.  Otherwise, each of the elif COMMANDS are executed"
 #~ msgstr "КОМАНДЫ then, иначе по очереди выполняются КОМАНДЫ elif, и если код"
 
-#~ msgid ""
-#~ "in turn, and if the exit status is zero, the corresponding then COMMANDS"
-#~ msgstr ""
-#~ "возврата нулевой, выполняются соответствующие КОМАНДЫ then и выполнение"
+#~ msgid "in turn, and if the exit status is zero, the corresponding then COMMANDS"
+#~ msgstr "возврата нулевой, выполняются соответствующие КОМАНДЫ then и выполнение"
 
-#~ msgid ""
-#~ "are executed and the if command completes.  Otherwise, the else COMMANDS"
-#~ msgstr ""
-#~ "команды if завершается. В противном случае выполняются КОМАНДЫ else,"
+#~ msgid "are executed and the if command completes.  Otherwise, the else COMMANDS"
+#~ msgstr "команды if завершается. В противном случае выполняются КОМАНДЫ else,"
 
-#~ msgid ""
-#~ "are executed, if present.  The exit status is the exit status of the last"
+#~ msgid "are executed, if present.  The exit status is the exit status of the last"
 #~ msgstr "если они присутствуют. Код возврата равен коду возврата последней"
 
 #~ msgid "command executed, or zero if no condition tested true."
-#~ msgstr ""
-#~ "выполненной команды, либо нулю, если ни одно условие не было истинным."
+#~ msgstr "выполненной команды, либо нулю, если ни одно условие не было истинным."
 
 #~ msgid "Expand and execute COMMANDS as long as the final command in the"
-#~ msgstr ""
-#~ "Разворачивает и выполняет КОМАНДЫ до тех пор, пока последняя команда"
+#~ msgstr "Разворачивает и выполняет КОМАНДЫ до тех пор, пока последняя команда"
 
 #~ msgid "`while' COMMANDS has an exit status of zero."
 #~ msgstr "предложения `while' не завершит работу с нулевым кодом возврата."
@@ -7776,15 +7900,12 @@ msgstr ""
 #~ msgstr "перенаправление для целого набора команд."
 
 #~ msgid "This is similar to the `fg' command.  Resume a stopped or background"
-#~ msgstr ""
-#~ "Похоже на команду `fg'. Продолжает выполнение остановленной или фоновой"
+#~ msgstr "Похоже на команду `fg'. Продолжает выполнение остановленной или фоновой"
 
 #~ msgid "job.  If you specifiy DIGITS, then that job is used.  If you specify"
-#~ msgstr ""
-#~ "задачи. Если заданы ЦИФРЫ, использяется задача с этим номером, а если"
+#~ msgstr "задачи. Если заданы ЦИФРЫ, использяется задача с этим номером, а если"
 
-#~ msgid ""
-#~ "WORD, then the job whose name begins with WORD is used.  Following the"
+#~ msgid "WORD, then the job whose name begins with WORD is used.  Following the"
 #~ msgstr "СЛОВО -- задача, имя которой начинается с этого слова. Завершение"
 
 #~ msgid "job specification with a `&' places the job in the background."
@@ -7799,8 +7920,7 @@ msgstr ""
 #~ msgid "\t\twhen the argument to `cd' is not found in the current"
 #~ msgstr "\t\tаргумент команды `cd', если он не найден в текущем"
 
-#~ msgid ""
-#~ "HISTFILE        The name of the file where your command history is stored."
+#~ msgid "HISTFILE        The name of the file where your command history is stored."
 #~ msgstr "HISTFILE        Имя файла, где сохраняется история команд."
 
 #~ msgid "HISTFILESIZE    The maximum number of lines this file can contain."
@@ -7815,15 +7935,11 @@ msgstr ""
 #~ msgid "HOME            The complete pathname to your login directory."
 #~ msgstr "HOME            Полный путь к домашнему каталогу."
 
-#~ msgid ""
-#~ "HOSTTYPE        The type of CPU this version of Bash is running under."
-#~ msgstr ""
-#~ "HOSTTYPE        Тип процессора, на котором работает эта версия Bash."
+#~ msgid "HOSTTYPE        The type of CPU this version of Bash is running under."
+#~ msgstr "HOSTTYPE        Тип процессора, на котором работает эта версия Bash."
 
-#~ msgid ""
-#~ "IGNOREEOF       Controls the action of the shell on receipt of an EOF"
-#~ msgstr ""
-#~ "IGNOREEOF       Управляет действиями, совершаемыми оболочкой при вводе"
+#~ msgid "IGNOREEOF       Controls the action of the shell on receipt of an EOF"
+#~ msgstr "IGNOREEOF       Управляет действиями, совершаемыми оболочкой при вводе"
 
 #~ msgid "\t\tcharacter as the sole input.  If set, then the value"
 #~ msgstr "\t\tсимвола конца файла. Если установлена, её значение -- число"
@@ -7835,12 +7951,10 @@ msgstr ""
 #~ msgstr "\t\tв пустой строке, после чего оболочка завершит работу"
 
 #~ msgid "\t\t(default 10).  When unset, EOF signifies the end of input."
-#~ msgstr ""
-#~ "\t\t(по умолчанию 10). Если не установлена, EOF обозначает конец ввода."
+#~ msgstr "\t\t(по умолчанию 10). Если не установлена, EOF обозначает конец ввода."
 
 #~ msgid "MAILCHECK\tHow often, in seconds, Bash checks for new mail."
-#~ msgstr ""
-#~ "MAILCHECK\tКак часто, в секундах, Bash проверяет наличие новой почты."
+#~ msgstr "MAILCHECK\tКак часто, в секундах, Bash проверяет наличие новой почты."
 
 #~ msgid "MAILPATH\tA colon-separated list of filenames which Bash checks"
 #~ msgstr "MAILPATH\tРазделённый запятыми список имён файлов, где Bash"
@@ -7873,8 +7987,7 @@ msgstr ""
 #~ msgstr "TERM            Имя типа текущего терминала."
 
 #~ msgid "auto_resume     Non-null means a command word appearing on a line by"
-#~ msgstr ""
-#~ "auto_resume     Ненулевые значения слов команд, встречающиеся в строке"
+#~ msgstr "auto_resume     Ненулевые значения слов команд, встречающиеся в строке"
 
 #~ msgid "\t\titself is first looked for in the list of currently"
 #~ msgstr "\t\tотдельно, сначала ищутся в списке остановленных"
@@ -7900,10 +8013,8 @@ msgstr ""
 #~ msgid "command_oriented_history"
 #~ msgstr "command_oriented_history"
 
-#~ msgid ""
-#~ "                Non-null means to save multiple-line commands together on"
-#~ msgstr ""
-#~ "                Ненулевое значение означает, что многострочные команды"
+#~ msgid "                Non-null means to save multiple-line commands together on"
+#~ msgstr "                Ненулевое значение означает, что многострочные команды"
 
 #~ msgid "                a single history line."
 #~ msgstr "                будут сохраняться в одной строке истории."
@@ -8001,8 +8112,7 @@ msgstr ""
 #~ msgid "\tremoves the last directory, `popd -1' the next to last."
 #~ msgstr "\tудаляет последний каталог, `popd -1' -- предпоследний."
 
-#~ msgid ""
-#~ "-n\tsuppress the normal change of directory when removing directories"
+#~ msgid "-n\tsuppress the normal change of directory when removing directories"
 #~ msgstr "-n\tподавляет обычную смену каталога при удалении каталогов из"
 
 #~ msgid "\tfrom the stack, so only the stack is manipulated."
@@ -8012,19 +8122,15 @@ msgstr ""
 #~ msgstr "Выводит список запомненных на данный момент каталогов. Каталоги"
 
 #~ msgid "find their way onto the list with the `pushd' command; you can get"
-#~ msgstr ""
-#~ "попадают в список при использовании команды `pushd', вы можете забрать"
+#~ msgstr "попадают в список при использовании команды `pushd', вы можете забрать"
 
 #~ msgid "back up through the list with the `popd' command."
 #~ msgstr "их из списка командой `popd'."
 
-#~ msgid ""
-#~ "The -l flag specifies that `dirs' should not print shorthand versions"
-#~ msgstr ""
-#~ "Флаг -l указывает, что `dirs' не должна выводит сокращённые варианты"
+#~ msgid "The -l flag specifies that `dirs' should not print shorthand versions"
+#~ msgstr "Флаг -l указывает, что `dirs' не должна выводит сокращённые варианты"
 
-#~ msgid ""
-#~ "of directories which are relative to your home directory.  This means"
+#~ msgid "of directories which are relative to your home directory.  This means"
 #~ msgstr "каталогов, заданных относительно домашнего. Это означает, что"
 
 #~ msgid "that `~/bin' might be displayed as `/homes/bfox/bin'.  The -v flag"
@@ -8033,27 +8139,22 @@ msgstr ""
 #~ msgid "causes `dirs' to print the directory stack with one entry per line,"
 #~ msgstr "заставляет `dirs' выводить каталоги по одному в строке, предваряя"
 
-#~ msgid ""
-#~ "prepending the directory name with its position in the stack.  The -p"
-#~ msgstr ""
-#~ "имя каталога номером его позиции в стеке. Флаг -p делает то же самое,"
+#~ msgid "prepending the directory name with its position in the stack.  The -p"
+#~ msgstr "имя каталога номером его позиции в стеке. Флаг -p делает то же самое,"
 
 #~ msgid "flag does the same thing, but the stack position is not prepended."
 #~ msgstr "но не добавляются номера позиций. Флаг -c очищает стек каталогов,"
 
-#~ msgid ""
-#~ "The -c flag clears the directory stack by deleting all of the elements."
+#~ msgid "The -c flag clears the directory stack by deleting all of the elements."
 #~ msgstr "удаляя все его элементы."
 
-#~ msgid ""
-#~ "+N\tdisplays the Nth entry counting from the left of the list shown by"
+#~ msgid "+N\tdisplays the Nth entry counting from the left of the list shown by"
 #~ msgstr "+N\tвыводит N-й каталог, считая с левой стороны списка, выводимого"
 
 #~ msgid "\tdirs when invoked without options, starting with zero."
 #~ msgstr "\tdirs при вызове без параметров, начиная с нуля."
 
-#~ msgid ""
-#~ "-N\tdisplays the Nth entry counting from the right of the list shown by"
+#~ msgid "-N\tdisplays the Nth entry counting from the right of the list shown by"
 #~ msgstr "-N\tвыводит N-й каталог, считая с правой стороны списка, выводимого"
 
 #~ msgid "Toggle the values of variables controlling optional behavior."
index 28c2b63a1718ebdbe9136b25ac0f9f8a81b8a4af..2a04db0ece643cc4c549e38921171d0d5167d987 100644 (file)
 # Traditional Chinese translations for bash package.
 # Copyright (C) 2008 Free Software Foundation, Inc.
 # This file is distributed under the same license as the bash package.
+#
 # Zi-You Dai <ioppooster@gmail.com>, 2008.
 # Mingye Wang (Arthur2e5) <arthur200126@hotmail.com>, 2015.
 # Wei-Lun Chao <bluebat@member.fsf.org>, 2015.
-#
+# pan93412 <pan93412@gmail.com>, 2018.
 msgid ""
 msgstr ""
-"Project-Id-Version: bash 4.3-rc2\n"
+"Project-Id-Version: bash 4.4\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2018-04-27 14:15-0400\n"
-"PO-Revision-Date: 2015-08-27 13:36+0800\n"
-"Last-Translator: Wei-Lun Chao <bluebat@member.fsf.org>\n"
+"POT-Creation-Date: 2016-09-10 12:42-0400\n"
+"PO-Revision-Date: 2018-05-08 21:29+0800\n"
+"Last-Translator: pan93412 <pan93412@gmail.com>\n"
 "Language-Team: Chinese (traditional) <zh-l10n@linux.org.tw>\n"
+"Language: zh_TW\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"Language: zh_TW\n"
 "X-Bugs: Report translation errors to the Language-Team address.\n"
 "Plural-Forms: nplurals=1; plural=0;\n"
+"X-Generator: Lokalize 2.0\n"
 
-#: arrayfunc.c:58
+#: arrayfunc.c:54
 msgid "bad array subscript"
 msgstr "陣列下標不正確"
 
-#: arrayfunc.c:373 builtins/declare.def:618 variables.c:2188 variables.c:2214
-#: variables.c:2922
+#: arrayfunc.c:368 builtins/declare.def:574 variables.c:2092 variables.c:2118
+#: variables.c:2730
 #, c-format
 msgid "%s: removing nameref attribute"
-msgstr ""
+msgstr "%s:正在移除 nameref 屬性"
 
-#: arrayfunc.c:398 builtins/declare.def:831
+#: arrayfunc.c:393 builtins/declare.def:780
 #, c-format
 msgid "%s: cannot convert indexed to associative array"
 msgstr "%s: 無法將索引陣列轉化為關聯陣列"
 
-#: arrayfunc.c:582
+#: arrayfunc.c:578
 #, c-format
 msgid "%s: invalid associative array key"
 msgstr "%s: 無效的關聯陣列鍵值"
 
-#: arrayfunc.c:584
+#: arrayfunc.c:580
 #, c-format
 msgid "%s: cannot assign to non-numeric index"
 msgstr "%s: 無法指派為非數字的索引"
 
-#: arrayfunc.c:629
+#: arrayfunc.c:625
 #, c-format
 msgid "%s: %s: must use subscript when assigning associative array"
 msgstr "%s: %s: 指派為關聯陣列時必須使用下標"
 
-#: bashhist.c:436
+#: bashhist.c:421
 #, c-format
 msgid "%s: cannot create: %s"
 msgstr "%s: 無法建立: %s"
 
-#: bashline.c:4111
+#: bashline.c:4091
 msgid "bash_execute_unix_command: cannot find keymap for command"
 msgstr "bash_execute_unix_command: 無法為命令找到鍵對映"
 
-#: bashline.c:4221
+#: bashline.c:4189
 #, c-format
 msgid "%s: first non-whitespace character is not `\"'"
 msgstr "%s: 第一個非空字元不是「\"」"
 
-#: bashline.c:4250
+#: bashline.c:4218
 #, c-format
 msgid "no closing `%c' in %s"
 msgstr "%2$s 中沒有閉合的「%1$c」"
 
-#: bashline.c:4284
+#: bashline.c:4252
 #, c-format
 msgid "%s: missing colon separator"
 msgstr "%s: 缺少冒號分隔符"
 
-#: braces.c:331
+#: braces.c:329
 #, c-format
 msgid "brace expansion: cannot allocate memory for %s"
 msgstr "大括號展開: 無法為 %s 分配記憶體"
 
-#: braces.c:429
-#, fuzzy, c-format
-msgid "brace expansion: failed to allocate memory for %u elements"
+#: braces.c:427
+#, c-format
+msgid "brace expansion: failed to allocate memory for %d elements"
 msgstr "大括號展開: 為 %d 個元素分配記憶體失敗"
 
-#: braces.c:473
+#: braces.c:471
 #, c-format
 msgid "brace expansion: failed to allocate memory for `%s'"
 msgstr "大括號展開: 為「%s」分配記憶體失敗"
 
-#: builtins/alias.def:131
+#: builtins/alias.def:133
 #, c-format
 msgid "`%s': invalid alias name"
 msgstr "「%s」: 無效的別名"
 
-#: builtins/bind.def:122 builtins/bind.def:125
+#: builtins/bind.def:123 builtins/bind.def:126
 msgid "line editing not enabled"
 msgstr "未啟用列編輯"
 
-#: builtins/bind.def:212
+#: builtins/bind.def:213
 #, c-format
 msgid "`%s': invalid keymap name"
 msgstr "「%s」: 無效的鍵對映名"
 
-#: builtins/bind.def:252
+#: builtins/bind.def:253
 #, c-format
 msgid "%s: cannot read: %s"
 msgstr "%s:不能讀取: %s"
 
-#: builtins/bind.def:304 builtins/bind.def:334
+#: builtins/bind.def:270
+#, c-format
+msgid "`%s': cannot unbind"
+msgstr "「%s」: 無法解除繫結"
+
+#: builtins/bind.def:308 builtins/bind.def:338
 #, c-format
 msgid "`%s': unknown function name"
 msgstr "「%s」:不明函數名稱"
 
-#: builtins/bind.def:312
+#: builtins/bind.def:316
 #, c-format
 msgid "%s is not bound to any keys.\n"
 msgstr "%s 未與任何鍵繫結。\n"
 
-#: builtins/bind.def:316
+#: builtins/bind.def:320
 #, c-format
 msgid "%s can be invoked via "
 msgstr "%s 可以被呼叫,藉由"
 
-#: builtins/bind.def:353 builtins/bind.def:368
-#, c-format
-msgid "`%s': cannot unbind"
-msgstr "「%s」: 無法解除繫結"
-
-#: builtins/break.def:77 builtins/break.def:119
+#: builtins/break.def:79 builtins/break.def:121
 msgid "loop count"
 msgstr "迴圈計數"
 
-#: builtins/break.def:139
+#: builtins/break.def:141
 msgid "only meaningful in a `for', `while', or `until' loop"
 msgstr "僅在「for」,「while」, 或者「until」迴圈中有意義"
 
@@ -146,234 +148,233 @@ msgstr ""
 "    \n"
 "    不帶 EXPR 時,回傳"
 
-#: builtins/cd.def:319
+#: builtins/cd.def:321
 msgid "HOME not set"
 msgstr "HOME 沒有設置"
 
-#: builtins/cd.def:327 builtins/common.c:161 test.c:889
+#: builtins/cd.def:329 builtins/common.c:167 test.c:885
 msgid "too many arguments"
 msgstr "太多引數"
 
-#: builtins/cd.def:334
-#, fuzzy
+#: builtins/cd.def:336
 msgid "null directory"
-msgstr "ç\84¡å\85¶ä»\96目錄"
+msgstr "空ç\9a\84目錄"
 
-#: builtins/cd.def:345
+#: builtins/cd.def:347
 msgid "OLDPWD not set"
 msgstr "OLDPWD 沒有設置"
 
-#: builtins/common.c:96
+#: builtins/common.c:102
 #, c-format
 msgid "line %d: "
 msgstr "第 %d 列:"
 
-#: builtins/common.c:134 error.c:264
+#: builtins/common.c:140 error.c:265
 #, c-format
 msgid "warning: "
 msgstr "警告:"
 
-#: builtins/common.c:148
+#: builtins/common.c:154
 #, c-format
 msgid "%s: usage: "
 msgstr "%s: 用法:"
 
-#: builtins/common.c:193 shell.c:510 shell.c:838
+#: builtins/common.c:199 shell.c:514 shell.c:825
 #, c-format
 msgid "%s: option requires an argument"
 msgstr "%s:選項需要一個引數"
 
-#: builtins/common.c:200
+#: builtins/common.c:206
 #, c-format
 msgid "%s: numeric argument required"
 msgstr "%s:需要數字引數"
 
-#: builtins/common.c:207
+#: builtins/common.c:213
 #, c-format
 msgid "%s: not found"
 msgstr "%s:沒有找到"
 
-#: builtins/common.c:216 shell.c:851
+#: builtins/common.c:222 shell.c:838
 #, c-format
 msgid "%s: invalid option"
 msgstr "%s:無效選項"
 
-#: builtins/common.c:223
+#: builtins/common.c:229
 #, c-format
 msgid "%s: invalid option name"
 msgstr "%s:無效選項名稱"
 
-#: builtins/common.c:230 execute_cmd.c:2342 general.c:294 general.c:299
+#: builtins/common.c:236 general.c:293 general.c:298
 #, c-format
 msgid "`%s': not a valid identifier"
 msgstr "「%s」:不是一個有效的識別符"
 
-#: builtins/common.c:240
+#: builtins/common.c:246
 msgid "invalid octal number"
 msgstr "無效的八進位數字"
 
-#: builtins/common.c:242
+#: builtins/common.c:248
 msgid "invalid hex number"
 msgstr "無效的十六進位數字"
 
-#: builtins/common.c:244 expr.c:1538
+#: builtins/common.c:250 expr.c:1473
 msgid "invalid number"
 msgstr "無效數字"
 
-#: builtins/common.c:252
+#: builtins/common.c:258
 #, c-format
 msgid "%s: invalid signal specification"
 msgstr "%s:無效的信號規格"
 
-#: builtins/common.c:259
+#: builtins/common.c:265
 #, c-format
 msgid "`%s': not a pid or valid job spec"
 msgstr "「%s」:不是一個 pid 或有效的工作規格"
 
-#: builtins/common.c:266 error.c:510
+#: builtins/common.c:272 error.c:511
 #, c-format
 msgid "%s: readonly variable"
 msgstr "%s:唯讀的變數"
 
-#: builtins/common.c:274
+#: builtins/common.c:280
 #, c-format
 msgid "%s: %s out of range"
 msgstr "%s:%s 超出範圍"
 
-#: builtins/common.c:274 builtins/common.c:276
+#: builtins/common.c:280 builtins/common.c:282
 msgid "argument"
 msgstr "引數"
 
-#: builtins/common.c:276
+#: builtins/common.c:282
 #, c-format
 msgid "%s out of range"
 msgstr "%s 超出範圍"
 
-#: builtins/common.c:284
+#: builtins/common.c:290
 #, c-format
 msgid "%s: no such job"
 msgstr "%s:沒有此類工作"
 
-#: builtins/common.c:292
+#: builtins/common.c:298
 #, c-format
 msgid "%s: no job control"
 msgstr "%s:沒有工作控制"
 
-#: builtins/common.c:294
+#: builtins/common.c:300
 msgid "no job control"
 msgstr "沒有工作控制"
 
-#: builtins/common.c:304
+#: builtins/common.c:310
 #, c-format
 msgid "%s: restricted"
 msgstr "%s:受限的"
 
-#: builtins/common.c:306
+#: builtins/common.c:312
 msgid "restricted"
 msgstr "受限的"
 
-#: builtins/common.c:314
+#: builtins/common.c:320
 #, c-format
 msgid "%s: not a shell builtin"
 msgstr "%s:不是一個內建 shell"
 
-#: builtins/common.c:323
+#: builtins/common.c:329
 #, c-format
 msgid "write error: %s"
 msgstr "寫入錯誤: %s"
 
-#: builtins/common.c:331
+#: builtins/common.c:337
 #, c-format
 msgid "error setting terminal attributes: %s"
 msgstr "設定終端屬性時出錯: %s"
 
-#: builtins/common.c:333
+#: builtins/common.c:339
 #, c-format
 msgid "error getting terminal attributes: %s"
 msgstr "獲取終端屬性時出錯: %s"
 
-#: builtins/common.c:579
+#: builtins/common.c:585
 #, c-format
 msgid "%s: error retrieving current directory: %s: %s\n"
 msgstr "%s:錯誤檢索當前目錄: %s: %s\n"
 
-#: builtins/common.c:645 builtins/common.c:647
+#: builtins/common.c:651 builtins/common.c:653
 #, c-format
 msgid "%s: ambiguous job spec"
 msgstr "%s:模稜兩可的工作規格"
 
-#: builtins/common.c:908
+#: builtins/common.c:918
 msgid "help not available in this version"
-msgstr ""
+msgstr "這個版本沒有可用的說明"
 
 #: builtins/complete.def:278
 #, c-format
 msgid "%s: invalid action name"
 msgstr "%s:無效的功能名稱"
 
-#: builtins/complete.def:452 builtins/complete.def:653
-#: builtins/complete.def:874
+#: builtins/complete.def:452 builtins/complete.def:647
+#: builtins/complete.def:858
 #, c-format
 msgid "%s: no completion specification"
 msgstr "%s:沒有完成的規格"
 
-#: builtins/complete.def:707
+#: builtins/complete.def:699
 msgid "warning: -F option may not work as you expect"
 msgstr "警告: -F 選項可能無法按預期工作"
 
-#: builtins/complete.def:709
+#: builtins/complete.def:701
 msgid "warning: -C option may not work as you expect"
 msgstr "警告: -C 選項可能無法按預期工作"
 
-#: builtins/complete.def:847
+#: builtins/complete.def:831
 msgid "not currently executing completion function"
 msgstr "當前未執行補完功能"
 
-#: builtins/declare.def:132
+#: builtins/declare.def:127
 msgid "can only be used in a function"
 msgstr "只能用在函數中"
 
-#: builtins/declare.def:369 builtins/declare.def:736
+#: builtins/declare.def:332 builtins/declare.def:685
 #, c-format
 msgid "%s: reference variable cannot be an array"
 msgstr "%s: 引用變數不能為陣列"
 
-#: builtins/declare.def:380 variables.c:3161
+#: builtins/declare.def:343 variables.c:2959
 #, c-format
 msgid "%s: nameref variable self references not allowed"
 msgstr "%s: 不允許名稱引用變數引用自身"
 
-#: builtins/declare.def:385 variables.c:2018 variables.c:3083 variables.c:3095
-#: variables.c:3158
+#: builtins/declare.def:348 variables.c:1928 variables.c:2877 variables.c:2889
+#: variables.c:2956
 #, c-format
 msgid "%s: circular name reference"
 msgstr "%s: 迴圈變數名引用"
 
-#: builtins/declare.def:390 builtins/declare.def:742 builtins/declare.def:753
-#, fuzzy, c-format
+#: builtins/declare.def:353 builtins/declare.def:691 builtins/declare.def:702
+#, c-format
 msgid "`%s': invalid variable name for name reference"
-msgstr "%s: 無效的引用變數名"
+msgstr "「%s」:無效的引用變數名"
 
-#: builtins/declare.def:500
+#: builtins/declare.def:463
 msgid "cannot use `-f' to make functions"
 msgstr "無法用「-f」生成函數"
 
-#: builtins/declare.def:512 execute_cmd.c:5797
+#: builtins/declare.def:475 execute_cmd.c:5632
 #, c-format
 msgid "%s: readonly function"
 msgstr "%s:唯讀函數"
 
-#: builtins/declare.def:804
+#: builtins/declare.def:753
 #, c-format
 msgid "%s: quoted compound array assignment deprecated"
-msgstr ""
+msgstr "%s:不建議使用引用的複合陣列指定"
 
-#: builtins/declare.def:818
+#: builtins/declare.def:767
 #, c-format
 msgid "%s: cannot destroy array variables in this way"
 msgstr "%s: 無法以這種方式銷毀陣列變數"
 
-#: builtins/declare.def:825 builtins/read.def:784
+#: builtins/declare.def:774 builtins/read.def:751
 #, c-format
 msgid "%s: cannot convert associative to indexed array"
 msgstr "%s: 無法將關聯陣列轉化為索引陣列"
@@ -395,7 +396,7 @@ msgstr "無法在共享物件 %2$s 中找到 %1$s: %3$s"
 #: builtins/enable.def:387
 #, c-format
 msgid "load function for %s returns failure (%d): not loaded"
-msgstr ""
+msgstr "為 %s 載入函式時回傳錯誤 (%d):尚未載入"
 
 #: builtins/enable.def:512
 #, c-format
@@ -407,68 +408,68 @@ msgstr "%s: 未以動態方式載入"
 msgid "%s: cannot delete: %s"
 msgstr "%s: 無法刪除: %s"
 
-#: builtins/evalfile.c:138 builtins/hash.def:184 execute_cmd.c:5629
+#: builtins/evalfile.c:144 builtins/hash.def:172 execute_cmd.c:5472
 #, c-format
 msgid "%s: is a directory"
 msgstr "%s: 是一個目錄"
 
-#: builtins/evalfile.c:144
+#: builtins/evalfile.c:150
 #, c-format
 msgid "%s: not a regular file"
 msgstr "%s: 不是常規檔案"
 
-#: builtins/evalfile.c:153
+#: builtins/evalfile.c:159
 #, c-format
 msgid "%s: file is too large"
 msgstr "%s: 檔案太大"
 
-#: builtins/evalfile.c:188 builtins/evalfile.c:206 shell.c:1623
+#: builtins/evalfile.c:194 builtins/evalfile.c:212 shell.c:1578
 #, c-format
 msgid "%s: cannot execute binary file"
 msgstr "%s: 無法執行二進位檔案"
 
-#: builtins/exec.def:155 builtins/exec.def:157 builtins/exec.def:237
+#: builtins/exec.def:156 builtins/exec.def:158 builtins/exec.def:235
 #, c-format
 msgid "%s: cannot execute: %s"
 msgstr "%s: 無法執行: %s"
 
-#: builtins/exit.def:64
+#: builtins/exit.def:67
 #, c-format
 msgid "logout\n"
 msgstr "登出\n"
 
-#: builtins/exit.def:89
+#: builtins/exit.def:92
 msgid "not login shell: use `exit'"
 msgstr "不是登入 shell: 使用「exit」"
 
-#: builtins/exit.def:121
+#: builtins/exit.def:124
 #, c-format
 msgid "There are stopped jobs.\n"
 msgstr "有停止的工作。\n"
 
-#: builtins/exit.def:123
+#: builtins/exit.def:126
 #, c-format
 msgid "There are running jobs.\n"
 msgstr "有執行中的工作。\n"
 
-#: builtins/fc.def:265
+#: builtins/fc.def:269
 msgid "no command found"
 msgstr "未找到命令"
 
-#: builtins/fc.def:323 builtins/fc.def:372
+#: builtins/fc.def:327 builtins/fc.def:376
 msgid "history specification"
 msgstr "歷史記錄規格"
 
-#: builtins/fc.def:393
+#: builtins/fc.def:397
 #, c-format
 msgid "%s: cannot open temp file: %s"
 msgstr "%s: 無法開啟臨時檔案: %s"
 
-#: builtins/fg_bg.def:152 builtins/jobs.def:284
+#: builtins/fg_bg.def:153 builtins/jobs.def:284
 msgid "current"
 msgstr "當前"
 
-#: builtins/fg_bg.def:161
+#: builtins/fg_bg.def:162
 #, c-format
 msgid "job %d started without job control"
 msgstr "在不帶工作控制的情況下啟動了工作 %d"
@@ -483,38 +484,37 @@ msgstr "%s: 非法選項 -- %c\n"
 msgid "%s: option requires an argument -- %c\n"
 msgstr "%s: 選項需要一個引數 -- %c\n"
 
-#: builtins/hash.def:91
+#: builtins/hash.def:92
 msgid "hashing disabled"
 msgstr "已停用雜湊"
 
-#: builtins/hash.def:138
+#: builtins/hash.def:139
 #, c-format
 msgid "%s: hash table empty\n"
 msgstr "%s: 雜湊表為空\n"
 
-#: builtins/hash.def:266
+#: builtins/hash.def:254
 #, c-format
 msgid "hits\tcommand\n"
 msgstr "命中\t命令\n"
 
-#: builtins/help.def:133
+#: builtins/help.def:135
+#, c-format
 msgid "Shell commands matching keyword `"
 msgid_plural "Shell commands matching keywords `"
 msgstr[0] "Shell 命令,匹配關鍵詞 `"
 
-#: builtins/help.def:185
+#: builtins/help.def:187
 #, c-format
-msgid ""
-"no help topics match `%s'.  Try `help help' or `man -k %s' or `info %s'."
-msgstr ""
-"沒有與「%s」匹配的說明主題。嘗試「help help」或「man -k %s」或「info %s」。"
+msgid "no help topics match `%s'.  Try `help help' or `man -k %s' or `info %s'."
+msgstr "沒有與「%s」匹配的說明主題。嘗試「help help」或「man -k %s」或「info %s」。"
 
-#: builtins/help.def:224
+#: builtins/help.def:226
 #, c-format
 msgid "%s: cannot open: %s"
 msgstr "%s: 無法開啟: %s"
 
-#: builtins/help.def:524
+#: builtins/help.def:526
 #, c-format
 msgid ""
 "These shell commands are defined internally.  Type `help' to see this list.\n"
@@ -533,21 +533,20 @@ msgstr ""
 "名稱旁邊的星號(*)表示該命令被停用。\n"
 "\n"
 
-#: builtins/history.def:154
+#: builtins/history.def:155
 msgid "cannot use more than one of -anrw"
 msgstr "最多能使用 -anrw 選項之一"
 
-#: builtins/history.def:187 builtins/history.def:197 builtins/history.def:212
-#: builtins/history.def:229 builtins/history.def:241 builtins/history.def:248
+#: builtins/history.def:187
 msgid "history position"
 msgstr "歷史記錄位置"
 
-#: builtins/history.def:331
-#, fuzzy, c-format
+#: builtins/history.def:264
+#, c-format
 msgid "%s: invalid timestamp"
-msgstr "%s: 無效引數"
+msgstr "%s:無效時間戳"
 
-#: builtins/history.def:442
+#: builtins/history.def:375
 #, c-format
 msgid "%s: history expansion failed"
 msgstr "%s: 歷史記錄擴充套件失敗"
@@ -561,16 +560,16 @@ msgstr "%s: inlib 失敗"
 msgid "no other options allowed with `-x'"
 msgstr "其他選項不能與「-x」同時使用"
 
-#: builtins/kill.def:200
+#: builtins/kill.def:202
 #, c-format
 msgid "%s: arguments must be process or job IDs"
 msgstr "%s: 引數必須是行程或工作 ID"
 
-#: builtins/kill.def:263
+#: builtins/kill.def:265
 msgid "Unknown error"
 msgstr "不明錯誤"
 
-#: builtins/let.def:97 builtins/let.def:122 expr.c:614 expr.c:632
+#: builtins/let.def:97 builtins/let.def:122 expr.c:583 expr.c:598
 msgid "expression expected"
 msgstr "需要表示式"
 
@@ -579,69 +578,69 @@ msgstr "需要表示式"
 msgid "%s: not an indexed array"
 msgstr "%s: 不是一個索引陣列"
 
-#: builtins/mapfile.def:271 builtins/read.def:305
+#: builtins/mapfile.def:272 builtins/read.def:306
 #, c-format
 msgid "%s: invalid file descriptor specification"
 msgstr "%s: 無效的檔案描述符規格"
 
-#: builtins/mapfile.def:279 builtins/read.def:312
+#: builtins/mapfile.def:280 builtins/read.def:313
 #, c-format
 msgid "%d: invalid file descriptor: %s"
 msgstr "%d: 無效的檔案描述符: %s"
 
-#: builtins/mapfile.def:288 builtins/mapfile.def:326
+#: builtins/mapfile.def:289 builtins/mapfile.def:327
 #, c-format
 msgid "%s: invalid line count"
 msgstr "%s: 無效的列數"
 
-#: builtins/mapfile.def:299
+#: builtins/mapfile.def:300
 #, c-format
 msgid "%s: invalid array origin"
 msgstr "%s: 無效的陣列原點"
 
-#: builtins/mapfile.def:316
+#: builtins/mapfile.def:317
 #, c-format
 msgid "%s: invalid callback quantum"
 msgstr "%s: 無效的回呼定量"
 
-#: builtins/mapfile.def:349
+#: builtins/mapfile.def:350
 msgid "empty array variable name"
 msgstr "空陣列變數名"
 
-#: builtins/mapfile.def:370
+#: builtins/mapfile.def:371
 msgid "array variable support required"
 msgstr "需要陣列變數支援"
 
-#: builtins/printf.def:416
+#: builtins/printf.def:412
 #, c-format
 msgid "`%s': missing format character"
 msgstr "「%s」: 缺少格式字元"
 
-#: builtins/printf.def:471
+#: builtins/printf.def:467
 #, c-format
 msgid "`%c': invalid time format specification"
 msgstr "「%c」: 無效的時間格式規格"
 
-#: builtins/printf.def:673
+#: builtins/printf.def:669
 #, c-format
 msgid "`%c': invalid format character"
 msgstr "「%c」: 無效格式字元"
 
-#: builtins/printf.def:699
+#: builtins/printf.def:695
 #, c-format
 msgid "warning: %s: %s"
 msgstr "警告: %s: %s"
 
-#: builtins/printf.def:785
+#: builtins/printf.def:781
 #, c-format
 msgid "format parsing problem: %s"
 msgstr "格式解析問題: %s"
 
-#: builtins/printf.def:882
+#: builtins/printf.def:878
 msgid "missing hex digit for \\x"
 msgstr "使用了 \\x 但缺少十六進位數字"
 
-#: builtins/printf.def:897
+#: builtins/printf.def:893
 #, c-format
 msgid "missing unicode digit for \\%c"
 msgstr "使用了 \\%c 但缺少萬國碼數字"
@@ -655,19 +654,19 @@ msgstr "無其他目錄"
 msgid "%s: invalid argument"
 msgstr "%s: 無效引數"
 
-#: builtins/pushd.def:480
+#: builtins/pushd.def:475
 msgid "<no current directory>"
 msgstr "<無當前目錄>"
 
-#: builtins/pushd.def:524
+#: builtins/pushd.def:519
 msgid "directory stack empty"
 msgstr "目錄堆疊為空"
 
-#: builtins/pushd.def:526
+#: builtins/pushd.def:521
 msgid "directory stack index"
 msgstr "目錄堆疊索引"
 
-#: builtins/pushd.def:701
+#: builtins/pushd.def:696
 msgid ""
 "Display the list of currently remembered directories.  Directories\n"
 "    find their way onto the list with the `pushd' command; you can get\n"
@@ -682,12 +681,10 @@ msgid ""
 "    \twith its position in the stack\n"
 "    \n"
 "    Arguments:\n"
-"      +N\tDisplays the Nth entry counting from the left of the list shown "
-"by\n"
+"      +N\tDisplays the Nth entry counting from the left of the list shown by\n"
 "    \tdirs when invoked without options, starting with zero.\n"
 "    \n"
-"      -N\tDisplays the Nth entry counting from the right of the list shown "
-"by\n"
+"      -N\tDisplays the Nth entry counting from the right of the list shown by\n"
 "\tdirs when invoked without options, starting with zero."
 msgstr ""
 "顯示當前記住的目錄列表。 目錄\n"
@@ -709,7 +706,7 @@ msgstr ""
 "      -N\t以 dirs 不帶選項輸出的順序,從右起第 N 個項目顯示列表,\n"
 "\t從 0 開始。"
 
-#: builtins/pushd.def:723
+#: builtins/pushd.def:718
 msgid ""
 "Adds a directory to the top of the directory stack, or rotates\n"
 "    the stack, making the new top of the stack the current working\n"
@@ -755,7 +752,7 @@ msgstr ""
 "    \n"
 "   「dirs」內建命令顯示目錄堆疊。"
 
-#: builtins/pushd.def:748
+#: builtins/pushd.def:743
 msgid ""
 "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"
@@ -793,67 +790,67 @@ msgstr ""
 "    \n"
 "   「dirs」內建變數顯示目錄堆疊。"
 
-#: builtins/read.def:277
+#: builtins/read.def:279
 #, c-format
 msgid "%s: invalid timeout specification"
 msgstr "%s: 無效的逾時規格"
 
-#: builtins/read.def:729
+#: builtins/read.def:696
 #, c-format
 msgid "read error: %d: %s"
 msgstr "讀取錯誤: %d: %s"
 
-#: builtins/return.def:68
+#: builtins/return.def:71
 msgid "can only `return' from a function or sourced script"
 msgstr "只能從函數或者原始指令稿「return」"
 
-#: builtins/set.def:834
+#: builtins/set.def:841
 msgid "cannot simultaneously unset a function and a variable"
 msgstr "無法同時取消設定一個函數和一個變數"
 
-#: builtins/set.def:881
+#: builtins/set.def:888
 #, c-format
 msgid "%s: cannot unset"
 msgstr "%s: 無法取消設定"
 
-#: builtins/set.def:902 variables.c:3597
+#: builtins/set.def:909 variables.c:3389
 #, c-format
 msgid "%s: cannot unset: readonly %s"
 msgstr "%s: 無法取消設定: 唯讀 %s"
 
-#: builtins/set.def:915
+#: builtins/set.def:922
 #, c-format
 msgid "%s: not an array variable"
 msgstr "%s: 不是陣列變數"
 
-#: builtins/setattr.def:189
+#: builtins/setattr.def:191
 #, c-format
 msgid "%s: not a function"
 msgstr "%s: 不是函數"
 
-#: builtins/setattr.def:194
-#, fuzzy, c-format
+#: builtins/setattr.def:196
+#, c-format
 msgid "%s: cannot export"
-msgstr "%s: 無法取消設定"
+msgstr "%s:無法會出"
 
 #: builtins/shift.def:73 builtins/shift.def:79
 msgid "shift count"
 msgstr "位移計數"
 
-#: builtins/shopt.def:301
+#: builtins/shopt.def:289
 msgid "cannot set and unset shell options simultaneously"
 msgstr "無法同時設定和取消設定 shell 選項"
 
-#: builtins/shopt.def:403
+#: builtins/shopt.def:391
 #, c-format
 msgid "%s: invalid shell option name"
 msgstr "%s: 無效的 shell 選項名稱"
 
-#: builtins/source.def:128
+#: builtins/source.def:131
 msgid "filename argument required"
 msgstr "需要檔名引數"
 
-#: builtins/source.def:154
+#: builtins/source.def:157
 #, c-format
 msgid "%s: file not found"
 msgstr "%s: 檔案未找到"
@@ -866,61 +863,61 @@ msgstr "無法懸置"
 msgid "cannot suspend a login shell"
 msgstr "無法將登入 shell 懸置"
 
-#: builtins/type.def:235
+#: builtins/type.def:236
 #, c-format
 msgid "%s is aliased to `%s'\n"
 msgstr "%s 是「%s」的別名\n"
 
-#: builtins/type.def:256
+#: builtins/type.def:257
 #, c-format
 msgid "%s is a shell keyword\n"
 msgstr "%s 是 shell 關鍵字\n"
 
-#: builtins/type.def:275
+#: builtins/type.def:276
 #, c-format
 msgid "%s is a function\n"
 msgstr "%s 是一個函數\n"
 
-#: builtins/type.def:299
-#, fuzzy, c-format
+#: builtins/type.def:300
+#, c-format
 msgid "%s is a special shell builtin\n"
-msgstr "%s 是 shell 內建\n"
+msgstr "%s 是特別的 shell 內建\n"
 
-#: builtins/type.def:301
+#: builtins/type.def:302
 #, c-format
 msgid "%s is a shell builtin\n"
 msgstr "%s 是 shell 內建\n"
 
-#: builtins/type.def:323 builtins/type.def:408
+#: builtins/type.def:324 builtins/type.def:409
 #, c-format
 msgid "%s is %s\n"
 msgstr "%s 是 %s\n"
 
-#: builtins/type.def:343
+#: builtins/type.def:344
 #, c-format
 msgid "%s is hashed (%s)\n"
 msgstr "%s 已進行雜湊操作(%s)\n"
 
-#: builtins/ulimit.def:396
+#: builtins/ulimit.def:398
 #, c-format
 msgid "%s: invalid limit argument"
 msgstr "%s: 無效的 limit 引數"
 
-#: builtins/ulimit.def:422
+#: builtins/ulimit.def:424
 #, c-format
 msgid "`%c': bad command"
 msgstr "「%c」:不當的命令"
 
-#: builtins/ulimit.def:451
+#: builtins/ulimit.def:453
 #, c-format
 msgid "%s: cannot get limit: %s"
 msgstr "%s:不能得到 limit: %s"
 
-#: builtins/ulimit.def:477
+#: builtins/ulimit.def:479
 msgid "limit"
 msgstr "limit"
 
-#: builtins/ulimit.def:489 builtins/ulimit.def:789
+#: builtins/ulimit.def:491 builtins/ulimit.def:791
 #, c-format
 msgid "%s: cannot modify limit: %s"
 msgstr "%s:不能修改 limit: %s"
@@ -939,207 +936,202 @@ msgstr "「%c」: 無效的符號狀態運算子"
 msgid "`%c': invalid symbolic mode character"
 msgstr "「%c」: 無效的符號狀態字元"
 
-#: error.c:89 error.c:347 error.c:349 error.c:351
+#: error.c:90 error.c:348 error.c:350 error.c:352
 msgid " line "
 msgstr " 列 "
 
-#: error.c:164
+#: error.c:165
 #, c-format
 msgid "last command: %s\n"
 msgstr "最後的命令: %s\n"
 
-#: error.c:172
+#: error.c:173
 #, c-format
 msgid "Aborting..."
 msgstr "中止…"
 
 #. TRANSLATORS: this is a prefix for informational messages.
-#: error.c:287
+#: error.c:288
 #, c-format
 msgid "INFORM: "
-msgstr ""
+msgstr "通知:"
 
-#: error.c:462
+#: error.c:463
 msgid "unknown command error"
 msgstr "不明命令錯誤"
 
-#: error.c:463
+#: error.c:464
 msgid "bad command type"
 msgstr "不當的命令類型"
 
-#: error.c:464
+#: error.c:465
 msgid "bad connector"
 msgstr "不當的連接器"
 
-#: error.c:465
+#: error.c:466
 msgid "bad jump"
 msgstr "錯誤的跳轉"
 
-#: error.c:503
+#: error.c:504
 #, c-format
 msgid "%s: unbound variable"
 msgstr "%s: 未繫結的變數"
 
-#: eval.c:242
+#: eval.c:209
 #, c-format
 msgid "\atimed out waiting for input: auto-logout\n"
 msgstr "\a 等待輸入逾時:自動登出\n"
 
-#: execute_cmd.c:536
+#: execute_cmd.c:527
 #, c-format
 msgid "cannot redirect standard input from /dev/null: %s"
 msgstr "無法從 /dev/null 重定向標準輸入: %s"
 
-#: execute_cmd.c:1294
+#: execute_cmd.c:1275
 #, c-format
 msgid "TIMEFORMAT: `%c': invalid format character"
 msgstr "時間格式:「%c」: 無效的格式字元"
 
-#: execute_cmd.c:2330
+#: execute_cmd.c:2273
 #, c-format
 msgid "execute_coproc: coproc [%d:%s] still exists"
-msgstr ""
+msgstr "execute_coproc:coproc [%d:%s] 仍然存在"
 
-#: execute_cmd.c:2456
+#: execute_cmd.c:2377
 msgid "pipe error"
 msgstr "管道錯誤"
 
-#: execute_cmd.c:4624
-#, fuzzy, c-format
+#: execute_cmd.c:4496
+#, c-format
 msgid "eval: maximum eval nesting level exceeded (%d)"
-msgstr "%s: 超出最大函數巢狀層數 (%d)"
+msgstr "eval:超出最大 eval 巢狀層數 (%d)"
 
-#: execute_cmd.c:4636
-#, fuzzy, c-format
+#: execute_cmd.c:4508
+#, c-format
 msgid "%s: maximum source nesting level exceeded (%d)"
-msgstr "%s: 超出最大函數巢狀層數 (%d)"
+msgstr "%s: 超出最大來源巢狀層數 (%d)"
 
-#: execute_cmd.c:4742
+#: execute_cmd.c:4616
 #, c-format
 msgid "%s: maximum function nesting level exceeded (%d)"
 msgstr "%s: 超出最大函數巢狀層數 (%d)"
 
-#: execute_cmd.c:5285
+#: execute_cmd.c:5144
 #, c-format
 msgid "%s: restricted: cannot specify `/' in command names"
 msgstr "%s: 受限的: 無法在命令名稱中使用「/」"
 
-#: execute_cmd.c:5383
+#: execute_cmd.c:5232
 #, c-format
 msgid "%s: command not found"
 msgstr "%s:命令找不到"
 
-#: execute_cmd.c:5627
+#: execute_cmd.c:5470
 #, c-format
 msgid "%s: %s"
 msgstr "%s: %s"
 
-#: execute_cmd.c:5665
+#: execute_cmd.c:5508
 #, c-format
 msgid "%s: %s: bad interpreter"
 msgstr "%s: %s: 不當的直譯器"
 
-#: execute_cmd.c:5702
+#: execute_cmd.c:5545
 #, c-format
 msgid "%s: cannot execute binary file: %s"
 msgstr "%s: 無法執行二進位檔案: %s"
 
-#: execute_cmd.c:5788
+#: execute_cmd.c:5623
 #, c-format
 msgid "`%s': is a special builtin"
 msgstr "「%s」: 特殊內建"
 
-#: execute_cmd.c:5840
+#: execute_cmd.c:5675
 #, c-format
 msgid "cannot duplicate fd %d to fd %d"
 msgstr "無法複製檔案描述符 %d 到檔案描述符 %d"
 
-#: expr.c:263
+#: expr.c:259
 msgid "expression recursion level exceeded"
 msgstr "表示式遞迴層次超出範圍"
 
-#: expr.c:291
+#: expr.c:283
 msgid "recursion stack underflow"
 msgstr "遞迴堆疊下限溢位"
 
-#: expr.c:453
+#: expr.c:431
 msgid "syntax error in expression"
 msgstr "表示式語法錯誤"
 
-#: expr.c:497
+#: expr.c:475
 msgid "attempted assignment to non-variable"
 msgstr "嘗試指派給非變數"
 
-#: expr.c:506
-#, fuzzy
-msgid "syntax error in variable assignment"
-msgstr "表示式語法錯誤"
-
-#: expr.c:520 expr.c:886
+#: expr.c:495 expr.c:858
 msgid "division by 0"
 msgstr "除 0"
 
-#: expr.c:567
+#: expr.c:542
 msgid "bug: bad expassign token"
 msgstr "錯誤:不當的表示式字組"
 
-#: expr.c:621
+#: expr.c:595
 msgid "`:' expected for conditional expression"
 msgstr "條件表示式需要「:」"
 
-#: expr.c:947
+#: expr.c:919
 msgid "exponent less than 0"
 msgstr "指數小於 0"
 
-#: expr.c:1004
+#: expr.c:976
 msgid "identifier expected after pre-increment or pre-decrement"
 msgstr "預增符或預減符後應跟有標識符"
 
-#: expr.c:1030
+#: expr.c:1002
 msgid "missing `)'"
 msgstr "缺少「)」"
 
-#: expr.c:1081 expr.c:1458
+#: expr.c:1053 expr.c:1393
 msgid "syntax error: operand expected"
 msgstr "語法錯誤: 需要運算元"
 
-#: expr.c:1460
+#: expr.c:1395
 msgid "syntax error: invalid arithmetic operator"
 msgstr "語法錯誤: 無效的算術運算子"
 
-#: expr.c:1484
+#: expr.c:1419
 #, c-format
 msgid "%s%s%s: %s (error token is \"%s\")"
 msgstr "%s%s%s: %s (錯誤字組是「%s」)"
 
-#: expr.c:1542
+#: expr.c:1477
 msgid "invalid arithmetic base"
 msgstr "無效的算術進位"
 
-#: expr.c:1562
+#: expr.c:1497
 msgid "value too great for base"
 msgstr "數值太大不可為算術進位的基底"
 
-#: expr.c:1611
+#: expr.c:1546
 #, c-format
 msgid "%s: expression error\n"
 msgstr "%s: 表示式錯誤\n"
 
-#: general.c:69
+#: general.c:68
 msgid "getcwd: cannot access parent directories"
 msgstr "getcwd: 無法訪問上層目錄"
 
-#: input.c:99 subst.c:5858
+#: input.c:102 subst.c:5858
 #, c-format
 msgid "cannot reset nodelay mode for fd %d"
 msgstr "無法為檔案描述符 %d 重置無延遲模式"
 
-#: input.c:266
+#: input.c:271
 #, c-format
 msgid "cannot allocate new file descriptor for bash input from fd %d"
 msgstr "無法從檔案描述符 %d 為 bash 的輸入獲取一個新的檔案描述符"
 
-#: input.c:274
+#: input.c:279
 #, c-format
 msgid "save_bash_input: buffer already exists for new fd %d"
 msgstr "save_bash_input: 已經存在新的檔案描述符 %d 的緩衝區"
@@ -1148,158 +1140,153 @@ msgstr "save_bash_input: 已經存在新的檔案描述符 %d 的緩衝區"
 msgid "start_pipeline: pgrp pipe"
 msgstr "start_pipeline: 行程群組管道"
 
-#: jobs.c:1080
+#: jobs.c:1035
 #, c-format
 msgid "forked pid %d appears in running job %d"
 msgstr "生成的行程識別號 %d 顯示為執行中的工作 %d"
 
-#: jobs.c:1199
+#: jobs.c:1154
 #, c-format
 msgid "deleting stopped job %d with process group %ld"
 msgstr "刪除行程群組 %2$ld 中已停止的工作 %1$d"
 
-#: jobs.c:1303
+#: jobs.c:1258
 #, c-format
 msgid "add_process: process %5ld (%s) in the_pipeline"
 msgstr "add_process: 行程 %5ld(%s) 進入 the_pipeline"
 
-#: jobs.c:1306
+#: jobs.c:1261
 #, c-format
 msgid "add_process: pid %5ld (%s) marked as still alive"
 msgstr "add_process: 行程識別號 %5ld(%s) 標註為仍活著"
 
-#: jobs.c:1635
+#: jobs.c:1590
 #, c-format
 msgid "describe_pid: %ld: no such pid"
 msgstr "describe_pid: %ld: 無此行程識別號"
 
-#: jobs.c:1650
+#: jobs.c:1605
 #, c-format
 msgid "Signal %d"
 msgstr "訊號 %d"
 
-#: jobs.c:1664 jobs.c:1690
+#: jobs.c:1619 jobs.c:1645
 msgid "Done"
 msgstr "已完成"
 
-#: jobs.c:1669 siglist.c:123
+#: jobs.c:1624 siglist.c:123
 msgid "Stopped"
 msgstr "已停止"
 
-#: jobs.c:1673
+#: jobs.c:1628
 #, c-format
 msgid "Stopped(%s)"
 msgstr "已停止(%s)"
 
-#: jobs.c:1677
+#: jobs.c:1632
 msgid "Running"
 msgstr "執行中"
 
-#: jobs.c:1694
+#: jobs.c:1649
 #, c-format
 msgid "Done(%d)"
 msgstr "已完成(%d)"
 
-#: jobs.c:1696
+#: jobs.c:1651
 #, c-format
 msgid "Exit %d"
 msgstr "退出 %d"
 
-#: jobs.c:1699
+#: jobs.c:1654
 msgid "Unknown status"
 msgstr "不明狀態"
 
-#: jobs.c:1786
+#: jobs.c:1741
 #, c-format
 msgid "(core dumped) "
 msgstr "(核心已傾印)"
 
-#: jobs.c:1805
+#: jobs.c:1760
 #, c-format
 msgid "  (wd: %s)"
 msgstr "  (工作目錄: %s)"
 
-#: jobs.c:2033
+#: jobs.c:1985
 #, c-format
 msgid "child setpgid (%ld to %ld)"
 msgstr "子行程 setpgid (%ld 到 %ld)"
 
-#: jobs.c:2395 nojobs.c:657
+#: jobs.c:2347 nojobs.c:654
 #, c-format
 msgid "wait: pid %ld is not a child of this shell"
 msgstr "wait: 行程識別號 %ld 不是當前 shell 的子行程"
 
-#: jobs.c:2687
+#: jobs.c:2602
 #, c-format
 msgid "wait_for: No record of process %ld"
 msgstr "wiat_for: 沒有行程 %ld 的記錄"
 
-#: jobs.c:3048
+#: jobs.c:2929
 #, c-format
 msgid "wait_for_job: job %d is stopped"
 msgstr "wait_for_job: 工作 %d 已停止"
 
-#: jobs.c:3355
+#: jobs.c:3221
 #, c-format
 msgid "%s: job has terminated"
 msgstr "%s: 工作已經終止"
 
-#: jobs.c:3364
+#: jobs.c:3230
 #, c-format
 msgid "%s: job %d already in background"
 msgstr "%s: 工作 %d 已在背景執行"
 
-#: jobs.c:3590
+#: jobs.c:3455
 msgid "waitchld: turning on WNOHANG to avoid indefinite block"
 msgstr "waitchld: 開啟 WNOHANG 以避免無限阻塞"
 
-#: jobs.c:4114
+#: jobs.c:3970
 #, c-format
 msgid "%s: line %d: "
 msgstr "%s: 第 %d 列:"
 
-#: jobs.c:4128 nojobs.c:900
+#: jobs.c:3984 nojobs.c:897
 #, c-format
 msgid " (core dumped)"
 msgstr " (核心已傾印)"
 
-#: jobs.c:4140 jobs.c:4153
+#: jobs.c:3996 jobs.c:4009
 #, c-format
 msgid "(wd now: %s)\n"
 msgstr "(當前工作目錄:%s)\n"
 
-#: jobs.c:4185
+#: jobs.c:4041
 msgid "initialize_job_control: getpgrp failed"
 msgstr "initialize_job_control: getpgrp 失敗"
 
-#: jobs.c:4241
-#, fuzzy
-msgid "initialize_job_control: no job control in background"
-msgstr "initialize_job_control: 列規律"
-
-#: jobs.c:4257
+#: jobs.c:4104
 msgid "initialize_job_control: line discipline"
 msgstr "initialize_job_control: 列規律"
 
-#: jobs.c:4267
+#: jobs.c:4114
 msgid "initialize_job_control: setpgid"
 msgstr "initialize_job_control: setpgid"
 
-#: jobs.c:4288 jobs.c:4297
+#: jobs.c:4135 jobs.c:4144
 #, c-format
 msgid "cannot set terminal process group (%d)"
 msgstr "無法設定終端行程群組(%d)"
 
-#: jobs.c:4302
+#: jobs.c:4149
 msgid "no job control in this shell"
 msgstr "此 shell 中無工作控制"
 
-#: lib/malloc/malloc.c:306
+#: lib/malloc/malloc.c:296
 #, c-format
 msgid "malloc: failed assertion: %s\n"
 msgstr "malloc: 主張失敗: %s\n"
 
-#: lib/malloc/malloc.c:322
+#: lib/malloc/malloc.c:312
 #, c-format
 msgid ""
 "\r\n"
@@ -1308,39 +1295,39 @@ msgstr ""
 "\r\n"
 "malloc: %s:%d: 主張已修補\r\n"
 
-#: lib/malloc/malloc.c:323
+#: lib/malloc/malloc.c:313
 msgid "unknown"
 msgstr "不明"
 
-#: lib/malloc/malloc.c:811
+#: lib/malloc/malloc.c:801
 msgid "malloc: block on free list clobbered"
 msgstr "malloc: 空閒串列中的區塊損壞"
 
-#: lib/malloc/malloc.c:888
+#: lib/malloc/malloc.c:878
 msgid "free: called with already freed block argument"
 msgstr "free: 用已經釋放的區塊做為呼叫引數"
 
-#: lib/malloc/malloc.c:891
+#: lib/malloc/malloc.c:881
 msgid "free: called with unallocated block argument"
 msgstr "free: 用未分配的區塊做為呼叫引數"
 
-#: lib/malloc/malloc.c:910
+#: lib/malloc/malloc.c:900
 msgid "free: underflow detected; mh_nbytes out of range"
 msgstr "free: 檢測到下限溢位;mh_nbytes 超出範圍"
 
-#: lib/malloc/malloc.c:916
+#: lib/malloc/malloc.c:906
 msgid "free: start and end chunk sizes differ"
 msgstr "free: 啟始和末尾區塊大小不一致"
 
-#: lib/malloc/malloc.c:1015
+#: lib/malloc/malloc.c:1005
 msgid "realloc: called with unallocated block argument"
 msgstr "realloc: 用未分配的區塊做為呼叫引數"
 
-#: lib/malloc/malloc.c:1030
+#: lib/malloc/malloc.c:1020
 msgid "realloc: underflow detected; mh_nbytes out of range"
 msgstr "realloc: 檢測到下限溢位;mh_nbytes 超出範圍"
 
-#: lib/malloc/malloc.c:1036
+#: lib/malloc/malloc.c:1026
 msgid "realloc: start and end chunk sizes differ"
 msgstr "realloc: 啟始和末尾區塊大小不一致"
 
@@ -1382,22 +1369,22 @@ msgstr "%s:不當的網路路徑規格"
 msgid "network operations not supported"
 msgstr "不支持網路操作"
 
-#: locale.c:205
+#: locale.c:200
 #, c-format
 msgid "setlocale: LC_ALL: cannot change locale (%s)"
 msgstr "setlocale: LC_ALL: 無法變更語區選項 (%s)"
 
-#: locale.c:207
+#: locale.c:202
 #, c-format
 msgid "setlocale: LC_ALL: cannot change locale (%s): %s"
 msgstr "setlocale: LC_ALL: 無法變更語區選項 (%s): %s"
 
-#: locale.c:272
+#: locale.c:259
 #, c-format
 msgid "setlocale: %s: cannot change locale (%s)"
 msgstr "setlocale: %s: 無法變更語區選項 (%s)"
 
-#: locale.c:274
+#: locale.c:261
 #, c-format
 msgid "setlocale: %s: cannot change locale (%s): %s"
 msgstr "setlocale: %s: 無法變更語區選項 (%s): %s"
@@ -1415,263 +1402,257 @@ msgstr "您有新郵件在 $_"
 msgid "The mail in %s has been read\n"
 msgstr "郵件在 %s 已閱讀\n"
 
-#: make_cmd.c:317
+#: make_cmd.c:329
 msgid "syntax error: arithmetic expression required"
 msgstr "語法錯誤:需要算式"
 
-#: make_cmd.c:319
+#: make_cmd.c:331
 msgid "syntax error: `;' unexpected"
 msgstr "語法錯誤:「;」意外"
 
-#: make_cmd.c:320
+#: make_cmd.c:332
 #, c-format
 msgid "syntax error: `((%s))'"
 msgstr "語法錯誤:「((%s))」"
 
-#: make_cmd.c:572
+#: make_cmd.c:584
 #, c-format
 msgid "make_here_document: bad instruction type %d"
 msgstr "make_here_document:不當的指示類型 %d"
 
-#: make_cmd.c:657
+#: make_cmd.c:669
 #, c-format
 msgid "here-document at line %d delimited by end-of-file (wanted `%s')"
 msgstr "立即文件在第 %d 列被檔案結束符分隔 (需要「%s」)"
 
-#: make_cmd.c:756
+#: make_cmd.c:768
 #, c-format
 msgid "make_redirection: redirection instruction `%d' out of range"
 msgstr "make_redirection:重新導向指示「%d」超出範圍"
 
-#: parse.y:2369
+#: parse.y:2324
 #, c-format
-msgid ""
-"shell_getc: shell_input_line_size (%zu) exceeds SIZE_MAX (%lu): line "
-"truncated"
-msgstr ""
+msgid "shell_getc: shell_input_line_size (%zu) exceeds SIZE_MAX (%lu): line truncated"
+msgstr "shell_getc: shell_input_line_size (%zu) 超過 SIZE_MAX (%lu):列被截斷"
 
-#: parse.y:2772
+#: parse.y:2700
 msgid "maximum here-document count exceeded"
-msgstr ""
+msgstr "超過此處檔案上限最大值"
 
-#: parse.y:3511 parse.y:3881
+#: parse.y:3390 parse.y:3748
 #, c-format
 msgid "unexpected EOF while looking for matching `%c'"
 msgstr "尋找匹配的「%c」時遇到了未預期的檔案結束符"
 
-#: parse.y:4581
+#: parse.y:4410
 msgid "unexpected EOF while looking for `]]'"
 msgstr "尋找「]]」時遇到了未預期的檔案結束符"
 
-#: parse.y:4586
+#: parse.y:4415
 #, c-format
 msgid "syntax error in conditional expression: unexpected token `%s'"
 msgstr "條件表示式中有語法錯誤: 未預期的字組「%s」"
 
-#: parse.y:4590
+#: parse.y:4419
 msgid "syntax error in conditional expression"
 msgstr "語法錯誤,在有條件的表示式"
 
-#: parse.y:4668
+#: parse.y:4497
 #, c-format
 msgid "unexpected token `%s', expected `)'"
 msgstr "未預期的字組「%s」,需要「)」"
 
-#: parse.y:4672
+#: parse.y:4501
 msgid "expected `)'"
 msgstr "預期「)」"
 
-#: parse.y:4700
+#: parse.y:4529
 #, c-format
 msgid "unexpected argument `%s' to conditional unary operator"
 msgstr "一元條件運算子使用了未預期的引數「%s」"
 
-#: parse.y:4704
+#: parse.y:4533
 msgid "unexpected argument to conditional unary operator"
 msgstr "一元條件運算子使用了未預期的引數"
 
-#: parse.y:4750
+#: parse.y:4579
 #, c-format
 msgid "unexpected token `%s', conditional binary operator expected"
 msgstr "未預期的字組「%s」,需要二元條件運算子"
 
-#: parse.y:4754
+#: parse.y:4583
 msgid "conditional binary operator expected"
 msgstr "需要二元條件運算子"
 
-#: parse.y:4776
+#: parse.y:4605
 #, c-format
 msgid "unexpected argument `%s' to conditional binary operator"
 msgstr "二元條件運算子使用了未預期的引數「%s」"
 
-#: parse.y:4780
+#: parse.y:4609
 msgid "unexpected argument to conditional binary operator"
 msgstr "二元條件運算子使用了未預期的引數"
 
-#: parse.y:4791
+#: parse.y:4620
 #, c-format
 msgid "unexpected token `%c' in conditional command"
 msgstr "條件命令中有未預期的字組「%c」"
 
-#: parse.y:4794
+#: parse.y:4623
 #, c-format
 msgid "unexpected token `%s' in conditional command"
 msgstr "條件命令中有未預期的字組「%s」"
 
-#: parse.y:4798
+#: parse.y:4627
 #, c-format
 msgid "unexpected token %d in conditional command"
 msgstr "條件命令中有未預期的字組 %d"
 
-#: parse.y:6220
+#: parse.y:5996
 #, c-format
 msgid "syntax error near unexpected token `%s'"
 msgstr "未預期的字組「%s」附近有語法錯誤"
 
-#: parse.y:6238
+#: parse.y:6014
 #, c-format
 msgid "syntax error near `%s'"
 msgstr "「%s」附近有語法錯誤"
 
-#: parse.y:6248
+#: parse.y:6024
 msgid "syntax error: unexpected end of file"
 msgstr "語法錯誤: 未預期的檔案結尾"
 
-#: parse.y:6248
+#: parse.y:6024
 msgid "syntax error"
 msgstr "語法錯誤"
 
-#: parse.y:6310
+#: parse.y:6086
 #, c-format
 msgid "Use \"%s\" to leave the shell.\n"
 msgstr "使用「%s」退出 shell 。\n"
 
-#: parse.y:6472
+#: parse.y:6248
 msgid "unexpected EOF while looking for matching `)'"
 msgstr "尋找匹配的「)」時遇到了未預期的檔案結束符"
 
-#: pcomplete.c:1132
+#: pcomplete.c:1126
 #, c-format
 msgid "completion: function `%s' not found"
 msgstr "補完: 未找到函數「%s」"
 
-#: pcomplete.c:1722
+#: pcomplete.c:1646
 #, c-format
 msgid "programmable_completion: %s: possible retry loop"
-msgstr ""
+msgstr "programmable_completion:%s:可能重試迴圈"
 
 #: pcomplib.c:182
 #, c-format
 msgid "progcomp_insert: %s: NULL COMPSPEC"
 msgstr "progcomp_insert: %s: 空的補完規格"
 
-#: print_cmd.c:300
+#: print_cmd.c:302
 #, c-format
 msgid "print_command: bad connector `%d'"
 msgstr "print_command: 錯誤的條件連接符「%d」"
 
-#: print_cmd.c:373
+#: print_cmd.c:375
 #, c-format
 msgid "xtrace_set: %d: invalid file descriptor"
 msgstr "xtrace_set: %d: 無效的檔案描述符"
 
-#: print_cmd.c:378
+#: print_cmd.c:380
 msgid "xtrace_set: NULL file pointer"
 msgstr "xtrace_set: 空的檔案指標"
 
-#: print_cmd.c:382
+#: print_cmd.c:384
 #, c-format
 msgid "xtrace fd (%d) != fileno xtrace fp (%d)"
 msgstr "xtrace fd (%d) != fileno xtrace fp (%d)"
 
-#: print_cmd.c:1538
+#: print_cmd.c:1534
 #, c-format
 msgid "cprintf: `%c': invalid format character"
 msgstr "cprintf:「%c」: 無效的格式字元"
 
-#: redir.c:121 redir.c:167
+#: redir.c:124 redir.c:171
 msgid "file descriptor out of range"
 msgstr "檔案描述符超出範圍"
 
-#: redir.c:174
+#: redir.c:178
 #, c-format
 msgid "%s: ambiguous redirect"
 msgstr "%s: 模稜兩可的重定向"
 
-#: redir.c:178
+#: redir.c:182
 #, c-format
 msgid "%s: cannot overwrite existing file"
 msgstr "%s: 無法覆寫已存在的檔案"
 
-#: redir.c:183
+#: redir.c:187
 #, c-format
 msgid "%s: restricted: cannot redirect output"
 msgstr "%s: 受限的: 無法重定向輸出"
 
-#: redir.c:188
+#: redir.c:192
 #, c-format
 msgid "cannot create temp file for here-document: %s"
 msgstr "無法為立即文件建立臨時檔案: %s"
 
-#: redir.c:192
+#: redir.c:196
 #, c-format
 msgid "%s: cannot assign fd to variable"
 msgstr "%s: 無法將檔案描述符指派給變數"
 
-#: redir.c:588
+#: redir.c:586
 msgid "/dev/(tcp|udp)/host/port not supported without networking"
 msgstr "沒有網路時不支援 /dev/(tcp|udp)/host/port"
 
-#: redir.c:870 redir.c:985 redir.c:1046 redir.c:1211
+#: redir.c:868 redir.c:983 redir.c:1044 redir.c:1209
 msgid "redirection error: cannot duplicate fd"
 msgstr "重定向錯誤: 無法複製檔案描述符"
 
-#: shell.c:343
+#: shell.c:347
 msgid "could not find /tmp, please create!"
 msgstr "無法找到 /tmp ,請建立"
 
-#: shell.c:347
+#: shell.c:351
 msgid "/tmp must be a valid directory name"
 msgstr "/tmp 必須為有效的目錄名稱"
 
-#: shell.c:798
-msgid "pretty-printing mode ignored in interactive shells"
-msgstr ""
-
-#: shell.c:940
+#: shell.c:927
 #, c-format
 msgid "%c%c: invalid option"
 msgstr "%c%c:無效選項"
 
-#: shell.c:1299
-#, fuzzy, c-format
+#: shell.c:1282
+#, c-format
 msgid "cannot set uid to %d: effective uid %d"
-msgstr "無法為檔案描述符 %d 重置無延遲模式"
+msgstr "無法設定 UID 至 %d:有效的 UID %d"
 
-#: shell.c:1306
-#, fuzzy, c-format
+#: shell.c:1289
+#, c-format
 msgid "cannot set gid to %d: effective gid %d"
-msgstr "無法為檔案描述符 %d 重置無延遲模式"
+msgstr "無法設定 GID 至 %d:有效的 GID %d"
 
-#: shell.c:1494
+#: shell.c:1458
 msgid "cannot start debugger; debugging mode disabled"
-msgstr ""
+msgstr "無法開啟偵錯器;偵錯模式已停用"
 
-#: shell.c:1608
-#, fuzzy, c-format
+#: shell.c:1566
+#, c-format
 msgid "%s: Is a directory"
 msgstr "%s: 是一個目錄"
 
-#: shell.c:1826
+#: shell.c:1777
 msgid "I have no name!"
 msgstr "我沒有名字!"
 
-#: shell.c:1980
+#: shell.c:1930
 #, c-format
 msgid "GNU bash, version %s-(%s)\n"
 msgstr "GNU bash,版本 %s-(%s)\n"
 
-#: shell.c:1981
+#: shell.c:1931
 #, c-format
 msgid ""
 "Usage:\t%s [GNU long option] [option] ...\n"
@@ -1680,49 +1661,49 @@ msgstr ""
 "用法:\t%s [GNU 長選項] [選項] …\n"
 "\t%s [GNU 長選項] [選項] 指令稿檔案 …\n"
 
-#: shell.c:1983
+#: shell.c:1933
 msgid "GNU long options:\n"
 msgstr "GNU 長選項:\n"
 
-#: shell.c:1987
+#: shell.c:1937
 msgid "Shell options:\n"
 msgstr "Shell 選項:\n"
 
-#: shell.c:1988
+#: shell.c:1938
 msgid "\t-ilrsD or -c command or -O shopt_option\t\t(invocation only)\n"
 msgstr "\t-irsD 或 -c <命令> 或 -O <shopt 選項>\t\t(僅適合呼叫)\n"
 
-#: shell.c:2003
+#: shell.c:1953
 #, c-format
 msgid "\t-%s or -o option\n"
 msgstr "\t-%s or -o 選項\n"
 
-#: shell.c:2009
+#: shell.c:1959
 #, c-format
 msgid "Type `%s -c \"help set\"' for more information about shell options.\n"
 msgstr "輸入「%s -c \"help set\"」更多關於 shell 選項的訊息。\n"
 
-#: shell.c:2010
+#: shell.c:1960
 #, c-format
 msgid "Type `%s -c help' for more information about shell builtin commands.\n"
 msgstr "輸入「%s -c help」更多關於內建 shell 命令的訊息。\n"
 
-#: shell.c:2011
+#: shell.c:1961
 #, c-format
 msgid "Use the `bashbug' command to report bugs.\n"
 msgstr "使用「bashbug」命令通報程式錯誤。\n"
 
-#: shell.c:2013
+#: shell.c:1963
 #, c-format
 msgid "bash home page: <http://www.gnu.org/software/bash>\n"
-msgstr ""
+msgstr "bash 官網:<http://www.gnu.org/software/bash>\n"
 
-#: shell.c:2014
+#: shell.c:1964
 #, c-format
 msgid "General help using GNU software: <http://www.gnu.org/gethelp/>\n"
-msgstr ""
+msgstr "GNU 軟體的常見使用說明:<http://www.gnu.org/gethelp/>\n"
 
-#: sig.c:695
+#: sig.c:707
 #, c-format
 msgid "sigprocmask: %d: invalid operation"
 msgstr "sigprocmask: %d:無效操作"
@@ -1896,21 +1877,21 @@ msgstr "不明訊號 #"
 msgid "Unknown Signal #%d"
 msgstr "不明訊號 #%d"
 
-#: subst.c:1450 subst.c:1641
+#: subst.c:1445 subst.c:1608
 #, c-format
 msgid "bad substitution: no closing `%s' in %s"
 msgstr "錯誤的替換: 在 %2$s 中沒有閉合的「%1$s」"
 
-#: subst.c:3209
+#: subst.c:3154
 #, c-format
 msgid "%s: cannot assign list to array member"
 msgstr "%s: 無法將串列指派給陣列成員"
 
-#: subst.c:5734 subst.c:5750
+#: subst.c:5740 subst.c:5756
 msgid "cannot make pipe for process substitution"
 msgstr "無法為行程替換建立管道"
 
-#: subst.c:5796
+#: subst.c:5798
 msgid "cannot make child for process substitution"
 msgstr "無法為行程替換建立子行程"
 
@@ -1929,75 +1910,67 @@ msgstr "無法開啟命名管道 %s 進行寫入"
 msgid "cannot duplicate named pipe %s as fd %d"
 msgstr "無法將命名管道 %s 做為檔案描述符 %d 複製"
 
-#: subst.c:5990
-#, fuzzy
+#: subst.c:5959
 msgid "command substitution: ignored null byte in input"
-msgstr "錯誤的替換: 在 %s 中沒有閉合的「`」"
+msgstr "指令替換:在輸入中忽略了空位元組"
 
-#: subst.c:6121
+#: subst.c:6083
 msgid "cannot make pipe for command substitution"
 msgstr "無法為命令替換建立管道"
 
-#: subst.c:6164
+#: subst.c:6127
 msgid "cannot make child for command substitution"
 msgstr "無法為命令替換建立子行程"
 
-#: subst.c:6190
+#: subst.c:6153
 msgid "command_substitute: cannot duplicate pipe as fd 1"
 msgstr "command_substitute: 無法將管道複製為檔案描述符 1"
 
-#: subst.c:6641 subst.c:9483
+#: subst.c:6580 subst.c:8939
 #, c-format
 msgid "%s: invalid variable name for name reference"
 msgstr "%s: 無效的引用變數名"
 
-#: subst.c:6737 subst.c:6755 subst.c:6903
-#, fuzzy, c-format
+#: subst.c:6666 subst.c:8351 subst.c:8371
+#, c-format
+msgid "%s: bad substitution"
+msgstr "%s: 錯誤的替換"
+
+#: subst.c:6800
+#, c-format
 msgid "%s: invalid indirect expansion"
-msgstr "%s: 無效的列數"
+msgstr "%s: 無效的間接擴展"
 
-#: subst.c:6771 subst.c:6910
-#, fuzzy, c-format
+#: subst.c:6807
+#, c-format
 msgid "%s: invalid variable name"
-msgstr "「%s」: 無效的別名"
+msgstr "%s:無效的變數名稱"
 
-#: subst.c:6962
-#, fuzzy, c-format
-msgid "%s: parameter not set"
-msgstr "%s: 參數為空或未設定"
-
-#: subst.c:6964
+#: subst.c:6854
 #, c-format
 msgid "%s: parameter null or not set"
 msgstr "%s: 參數為空或未設定"
 
-#: subst.c:7201 subst.c:7216
+#: subst.c:7089 subst.c:7104
 #, c-format
 msgid "%s: substring expression < 0"
 msgstr "%s: 子串表示式 < 0"
 
-#: subst.c:8839 subst.c:8860
-#, c-format
-msgid "%s: bad substitution"
-msgstr "%s: 錯誤的替換"
-
-#: subst.c:8948
+#: subst.c:8450
 #, c-format
 msgid "$%s: cannot assign in this way"
 msgstr "$%s: 無法如此指派"
 
-#: subst.c:9346
-msgid ""
-"future versions of the shell will force evaluation as an arithmetic "
-"substitution"
+#: subst.c:8802
+msgid "future versions of the shell will force evaluation as an arithmetic substitution"
 msgstr "未來版本的 shell 會強制以算術替換求值"
 
-#: subst.c:9903
+#: subst.c:9349
 #, c-format
 msgid "bad substitution: no closing \"`\" in %s"
 msgstr "錯誤的替換: 在 %s 中沒有閉合的「`」"
 
-#: subst.c:10907
+#: subst.c:10298
 #, c-format
 msgid "no match: %s"
 msgstr "無匹配: %s"
@@ -2020,122 +1993,116 @@ msgstr "需要「)」"
 msgid "`)' expected, found %s"
 msgstr "需要「)」,得到 %s"
 
-#: test.c:282 test.c:748 test.c:751
+#: test.c:282 test.c:744 test.c:747
 #, c-format
 msgid "%s: unary operator expected"
 msgstr "%s: 需要一元表示式"
 
-#: test.c:469 test.c:791
+#: test.c:469 test.c:787
 #, c-format
 msgid "%s: binary operator expected"
 msgstr "%s: 需要二元表示式"
 
-#: test.c:873
+#: test.c:869
 msgid "missing `]'"
 msgstr "缺少「]」"
 
-#: trap.c:216
+#: trap.c:224
 msgid "invalid signal number"
 msgstr "無效信號數字"
 
-#: trap.c:379
+#: trap.c:387
 #, c-format
 msgid "run_pending_traps: bad value in trap_list[%d]: %p"
 msgstr "run_pending_traps: trap_list[%d] 中的錯誤值: %p"
 
-#: trap.c:383
+#: trap.c:391
 #, c-format
-msgid ""
-"run_pending_traps: signal handler is SIG_DFL, resending %d (%s) to myself"
+msgid "run_pending_traps: signal handler is SIG_DFL, resending %d (%s) to myself"
 msgstr "run_pending_traps: 信號處理是 SIG_DFL,resending %d (%s) to myself"
 
-#: trap.c:439
+#: trap.c:447
 #, c-format
 msgid "trap_handler: bad signal %d"
 msgstr "trap_handler:不當的信號 %d"
 
-#: variables.c:399
+#: variables.c:409
 #, c-format
 msgid "error importing function definition for `%s'"
 msgstr "錯誤,輸入的函數定義為「%s」"
 
-#: variables.c:801
+#: variables.c:814
 #, c-format
 msgid "shell level (%d) too high, resetting to 1"
 msgstr "shell 層次 (%d) 太高,重置為 1"
 
-#: variables.c:2512
+#: variables.c:2413
 msgid "make_local_variable: no function context at current scope"
 msgstr "make_local_variable: 當前作用域中沒有函數語境"
 
-#: variables.c:2531
+#: variables.c:2432
 #, c-format
 msgid "%s: variable may not be assigned value"
 msgstr "%s: 變數不可指派值"
 
-#: variables.c:3246
-#, fuzzy, c-format
+#: variables.c:3043
+#, c-format
 msgid "%s: assigning integer to name reference"
-msgstr "%s: 無效的引用變數名"
+msgstr "%s:指定數字至名稱參考"
 
-#: variables.c:4149
+#: variables.c:3940
 msgid "all_local_variables: no function context at current scope"
 msgstr "all_local_variables: 當前作用域中沒有函數語境"
 
-#: variables.c:4437
+#: variables.c:4218
 #, c-format
 msgid "%s has null exportstr"
 msgstr "%s 有空的 exportstr"
 
-#: variables.c:4442 variables.c:4451
+#: variables.c:4223 variables.c:4232
 #, c-format
 msgid "invalid character %d in exportstr for %s"
 msgstr "%2$s 的 exportstr 中有無效的字元 %1$d"
 
-#: variables.c:4457
+#: variables.c:4238
 #, c-format
 msgid "no `=' in exportstr for %s"
 msgstr "%s 的 exportstr 中沒有「=」"
 
-#: variables.c:4911
+#: variables.c:4684
 msgid "pop_var_context: head of shell_variables not a function context"
 msgstr "pop_var_context: shell_variables 的前端不是函數語境"
 
-#: variables.c:4924
+#: variables.c:4697
 msgid "pop_var_context: no global_variables context"
 msgstr "pop_var_context: 沒有 global_variables 語境"
 
-#: variables.c:4999
+#: variables.c:4772
 msgid "pop_scope: head of shell_variables not a temporary environment scope"
 msgstr "pop_scope: shell_variables 的前端不是臨時環境作用域"
 
-#: variables.c:5862
+#: variables.c:5619
 #, c-format
 msgid "%s: %s: cannot open as FILE"
 msgstr "%s: %s: 無法做為檔案開啟"
 
-#: variables.c:5867
+#: variables.c:5624
 #, c-format
 msgid "%s: %s: invalid value for trace file descriptor"
 msgstr "%s: %s: 追蹤檔案描述符的值無效"
 
-#: variables.c:5912
+#: variables.c:5669
 #, c-format
 msgid "%s: %s: compatibility value out of range"
 msgstr "%s: %s: 相容版本數值超出範圍"
 
 #: version.c:46 version2.c:46
-#, fuzzy
 msgid "Copyright (C) 2016 Free Software Foundation, Inc."
-msgstr "著作權所有 (C) 2013 自由軟體基金會"
+msgstr "著作權所有 (C) 2016 自由軟體基金會"
 
 #: version.c:47 version2.c:47
-msgid ""
-"License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl."
-"html>\n"
-msgstr ""
-"許可證 GPLv3+: GNU GPL 許可證第三版或者更新版本 <http://gnu.org/licenses/gpl."
-"html>\n"
+msgid "License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>\n"
+msgstr "許可證 GPLv3+: GNU GPL 許可證第三版或者更新版本 <http://gnu.org/licenses/gpl.html>\n"
 
 #: version.c:86 version2.c:86
 #, c-format
@@ -2150,22 +2117,22 @@ msgstr "本軟體是自由軟體,您可以自由地更改和重新發布。"
 msgid "There is NO WARRANTY, to the extent permitted by law."
 msgstr "在法律許可的情況下特此明示,本軟體不提供任何擔保。"
 
-#: xmalloc.c:93
+#: xmalloc.c:91
 #, c-format
 msgid "%s: cannot allocate %lu bytes (%lu bytes allocated)"
 msgstr "%s: 無法分配 %lu 位元組 (已分配 %lu 位元組)"
 
-#: xmalloc.c:95
+#: xmalloc.c:93
 #, c-format
 msgid "%s: cannot allocate %lu bytes"
 msgstr "%s: 無法分配 %lu 位元組"
 
-#: xmalloc.c:165
+#: xmalloc.c:163
 #, c-format
 msgid "%s: %s:%d: cannot allocate %lu bytes (%lu bytes allocated)"
 msgstr "%s: %s:%d: 無法分配 %lu 位元組 (已分配 %lu 位元組)"
 
-#: xmalloc.c:167
+#: xmalloc.c:165
 #, c-format
 msgid "%s: %s:%d: cannot allocate %lu bytes"
 msgstr "%s: %s:%d: 無法分配 %lu 位元組"
@@ -2179,12 +2146,8 @@ msgid "unalias [-a] name [name ...]"
 msgstr "unalias [-a] 名稱 [名稱 …]"
 
 #: builtins.c:53
-msgid ""
-"bind [-lpsvPSVX] [-m keymap] [-f filename] [-q name] [-u name] [-r keyseq] [-"
-"x keyseq:shell-command] [keyseq:readline-function or readline-command]"
-msgstr ""
-"bind [-lpvsPSVX] [-m 鍵對映] [-f 檔名] [-q 名稱] [-u 名稱] [-r 鍵序列] [-x 鍵"
-"序列:shell- 命令] [鍵序列:readline- 函數 或 readline- 命令]"
+msgid "bind [-lpsvPSVX] [-m keymap] [-f filename] [-q name] [-u name] [-r keyseq] [-x keyseq:shell-command] [keyseq:readline-function or readline-command]"
+msgstr "bind [-lpvsPSVX] [-m 鍵對映] [-f 檔名] [-q 名稱] [-u 名稱] [-r 鍵序列] [-x 鍵序列:shell- 命令] [鍵序列:readline- 函數 或 readline- 命令]"
 
 #: builtins.c:56
 msgid "break [n]"
@@ -2219,9 +2182,8 @@ msgid "declare [-aAfFgilnrtux] [-p] [name[=value] ...]"
 msgstr "declare [-aAfFgilnrtux] [-p] [名稱[=值] …]"
 
 #: builtins.c:80
-#, fuzzy
 msgid "typeset [-aAfFgilnrtux] [-p] name[=value] ..."
-msgstr "typeset [-aAfFgilrtux] [-p] 名稱[=值] …"
+msgstr "typeset [-aAfFgilnrtux] [-p] 名稱[=值] ..."
 
 #: builtins.c:82
 msgid "local [option] name[=value] ..."
@@ -2280,41 +2242,28 @@ msgid "help [-dms] [pattern ...]"
 msgstr "help [-dms] [模式 …]"
 
 #: builtins.c:123
-msgid ""
-"history [-c] [-d offset] [n] or history -anrw [filename] or history -ps arg "
-"[arg...]"
-msgstr ""
-"history [-c] [-d 偏移量] [n] 或 history -anrw [檔名] 或 history -ps 引數 [參"
-"數…]"
+msgid "history [-c] [-d offset] [n] or history -anrw [filename] or history -ps arg [arg...]"
+msgstr "history [-c] [-d 偏移量] [n] 或 history -anrw [檔名] 或 history -ps 引數 [參數…]"
 
 #: builtins.c:127
 msgid "jobs [-lnprs] [jobspec ...] or jobs -x command [args]"
 msgstr "jobs [-lnprs] [工作規格 …] 或 jobs -x 命令 [引數]"
 
 #: builtins.c:131
-#, fuzzy
 msgid "disown [-h] [-ar] [jobspec ... | pid ...]"
-msgstr "disown [-h] [-ar] [工作規格 …]"
+msgstr "disown [-h] [-ar] [jobspec ... | pid ...]"
 
 #: builtins.c:134
-msgid ""
-"kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... or kill -l "
-"[sigspec]"
-msgstr ""
-"kill [-s 訊號規格 | -n 訊號編號 | - 訊號規格] 行程識別號 | 工作規格 … 或 "
-"kill -l [訊號規格]"
+msgid "kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... or kill -l [sigspec]"
+msgstr "kill [-s 訊號規格 | -n 訊號編號 | - 訊號規格] 行程識別號 | 工作規格 … 或 kill -l [訊號規格]"
 
 #: builtins.c:136
 msgid "let arg [arg ...]"
 msgstr "let 引數 [引數 …]"
 
 #: builtins.c:138
-msgid ""
-"read [-ers] [-a array] [-d delim] [-i text] [-n nchars] [-N nchars] [-p "
-"prompt] [-t timeout] [-u fd] [name ...]"
-msgstr ""
-"read [-ers] [-a 陣列] [-d 分隔符] [-i 緩衝區文字] [-n 讀取字元數] [-N 讀取字"
-"符數] [-p 提示符] [-t 逾時] [-u 檔案描述符] [名稱 …]"
+msgid "read [-ers] [-a array] [-d delim] [-i text] [-n nchars] [-N nchars] [-p prompt] [-t timeout] [-u fd] [name ...]"
+msgstr "read [-ers] [-a 陣列] [-d 分隔符] [-i 緩衝區文字] [-n 讀取字元數] [-N 讀取字符數] [-p 提示符] [-t 逾時] [-u 檔案描述符] [名稱 …]"
 
 #: builtins.c:140
 msgid "return [n]"
@@ -2369,17 +2318,15 @@ msgid "type [-afptP] name [name ...]"
 msgstr "type [-afptP] 名稱 [名稱 …]"
 
 #: builtins.c:171
-#, fuzzy
 msgid "ulimit [-SHabcdefiklmnpqrstuvxPT] [limit]"
-msgstr "ulimit [-SHabcdefilmnpqrstuvxT] [限制]"
+msgstr "ulimit [-SHabcdefiklmnpqrstuvxPT] [limit]"
 
 #: builtins.c:174
 msgid "umask [-p] [-S] [mode]"
 msgstr "umask [-p] [-S] [模式]"
 
 #: builtins.c:177
-#, fuzzy
-msgid "wait [-fn] [id ...]"
+msgid "wait [-n] [id ...]"
 msgstr "wait [-n] [編號 …]"
 
 #: builtins.c:181
@@ -2407,9 +2354,7 @@ msgid "case WORD in [PATTERN [| PATTERN]...) COMMANDS ;;]... esac"
 msgstr "case 詞 in [模式 [| 模式]…) 命令 ;;]… esac"
 
 #: builtins.c:194
-msgid ""
-"if COMMANDS; then COMMANDS; [ elif COMMANDS; then COMMANDS; ]... [ else "
-"COMMANDS; ] fi"
+msgid "if COMMANDS; then COMMANDS; [ elif COMMANDS; then COMMANDS; ]... [ else COMMANDS; ] fi"
 msgstr "if 命令 ; then 命令 ; [ elif 命令 ; then 命令 ; ]… [ else 命令 ; ] fi"
 
 #: builtins.c:196
@@ -2469,47 +2414,26 @@ msgid "printf [-v var] format [arguments]"
 msgstr "printf [-v var] 格式 [引數]"
 
 #: builtins.c:231
-msgid ""
-"complete [-abcdefgjksuv] [-pr] [-DE] [-o option] [-A action] [-G globpat] [-"
-"W wordlist]  [-F function] [-C command] [-X filterpat] [-P prefix] [-S "
-"suffix] [name ...]"
-msgstr ""
-"complete [-abcdefgjksuv] [-pr] [-DE] [-o 選項] [-A 動作] [-G 全域模式] [-W 詞"
-"語列表]  [-F 函數] [-C 命令] [-X 過濾模式] [-P 字首] [-S 字尾] [名稱 …]"
+msgid "complete [-abcdefgjksuv] [-pr] [-DE] [-o option] [-A action] [-G globpat] [-W wordlist]  [-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] [name ...]"
+msgstr "complete [-abcdefgjksuv] [-pr] [-DE] [-o 選項] [-A 動作] [-G 全域模式] [-W 詞語列表]  [-F 函數] [-C 命令] [-X 過濾模式] [-P 字首] [-S 字尾] [名稱 …]"
 
 #: builtins.c:235
-#, fuzzy
-msgid ""
-"compgen [-abcdefgjksuv] [-o option] [-A action] [-G globpat] [-W wordlist]  "
-"[-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] [word]"
-msgstr ""
-"compgen [-abcdefgjksuv] [-o 選項]  [-A 動作] [-G 全域模式] [-W 字詞列表]  [-"
-"F 函數] [-C 命令] [-X 過濾模式] [-P 字首] [-S 字尾] [字詞]"
+msgid "compgen [-abcdefgjksuv] [-o option] [-A action] [-G globpat] [-W wordlist]  [-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] [word]"
+msgstr "compgen [-abcdefgjksuv] [-o option] [-A action] [-G globpat] [-W wordlist]  [-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] [word]"
 
 #: builtins.c:239
 msgid "compopt [-o|+o option] [-DE] [name ...]"
 msgstr "compopt [-o|+o 選項] [-DE] [名稱 …]"
 
 #: builtins.c:242
-#, fuzzy
-msgid ""
-"mapfile [-d delim] [-n count] [-O origin] [-s count] [-t] [-u fd] [-C "
-"callback] [-c quantum] [array]"
-msgstr ""
-"mapfile [-n 計數] [-O 起始序號] [-s 計數] [-t] [-u fd] [-C 回呼] [-c 定量] "
-"[陣列]"
+msgid "mapfile [-d delim] [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c quantum] [array]"
+msgstr "mapfile [-d delim] [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c quantum] [array]"
 
 #: builtins.c:244
-#, fuzzy
-msgid ""
-"readarray [-d delim] [-n count] [-O origin] [-s count] [-t] [-u fd] [-C "
-"callback] [-c quantum] [array]"
-msgstr ""
-"readarray [-n 計數] [-O 起始序號] [-s 計數] [-t] [-u fd] [-C 回呼] [-c 定量] "
-"[陣列]"
+msgid "readarray [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c quantum] [array]"
+msgstr "readarray [-n 計數] [-O 起始序號] [-s 計數] [-t] [-u fd] [-C 回呼] [-c 定量] [陣列]"
 
 #: builtins.c:256
-#, fuzzy
 msgid ""
 "Define or display aliases.\n"
 "    \n"
@@ -2524,8 +2448,7 @@ msgid ""
 "      -p\tprint all defined aliases in a reusable format\n"
 "    \n"
 "    Exit Status:\n"
-"    alias returns true unless a NAME is supplied for which no alias has "
-"been\n"
+"    alias returns true unless a NAME is supplied for which no alias has been\n"
 "    defined."
 msgstr ""
 "定義或顯示別名。\n"
@@ -2545,7 +2468,6 @@ msgstr ""
 "    回傳值為真。"
 
 #: builtins.c:278
-#, fuzzy
 msgid ""
 "Remove each NAME from the list of defined aliases.\n"
 "    \n"
@@ -2557,12 +2479,11 @@ msgstr ""
 "從別名定義列表中刪除每一個 NAME。\n"
 "    \n"
 "    選項:\n"
-"      -a\t刪除所有的別名定義\n"
+"      -a\t刪除所有的別名定義\n"
 "    \n"
 "    回傳成功,除非 NAME 不是一個已存在的別名。"
 
 #: builtins.c:291
-#, fuzzy
 msgid ""
 "Set Readline key bindings and variables.\n"
 "    \n"
@@ -2574,30 +2495,25 @@ msgid ""
 "    Options:\n"
 "      -m  keymap         Use KEYMAP as the keymap for the duration of this\n"
 "                         command.  Acceptable keymap names are emacs,\n"
-"                         emacs-standard, emacs-meta, emacs-ctlx, vi, vi-"
-"move,\n"
+"                         emacs-standard, emacs-meta, emacs-ctlx, vi, vi-move,\n"
 "                         vi-command, and vi-insert.\n"
 "      -l                 List names of functions.\n"
 "      -P                 List function names and bindings.\n"
 "      -p                 List functions and bindings in a form that can be\n"
 "                         reused as input.\n"
-"      -S                 List key sequences that invoke macros and their "
-"values\n"
-"      -s                 List key sequences that invoke macros and their "
-"values\n"
+"      -S                 List key sequences that invoke macros and their values\n"
+"      -s                 List key sequences that invoke macros and their values\n"
 "                         in a form that can be reused as input.\n"
 "      -V                 List variable names and values\n"
 "      -v                 List variable names and values in a form that can\n"
 "                         be reused as input.\n"
 "      -q  function-name  Query about which keys invoke the named function.\n"
-"      -u  function-name  Unbind all keys which are bound to the named "
-"function.\n"
+"      -u  function-name  Unbind all keys which are bound to the named function.\n"
 "      -r  keyseq         Remove the binding for KEYSEQ.\n"
 "      -f  filename       Read key bindings from FILENAME.\n"
 "      -x  keyseq:shell-command\tCause SHELL-COMMAND to be executed when\n"
 "    \t\t\t\tKEYSEQ is entered.\n"
-"      -X                 List key sequences bound with -x and associated "
-"commands\n"
+"      -X                 List key sequences bound with -x and associated commands\n"
 "                         in a form that can be reused as input.\n"
 "    \n"
 "    Exit Status:\n"
@@ -2612,23 +2528,20 @@ msgstr ""
 "    \n"
 "    選項:\n"
 "      -m  鍵對映      在此命令執行過程中使用指定的鍵對映。\n"
-"                     可被接受的鍵對映名字有 emacs、emacs-standard、emacs-"
-"meta、\n"
+"                     可被接受的鍵對映名字有 emacs、emacs-standard、emacs-meta、\n"
 "                     emacs-ctlx、vi、vi-move、vi-command、和 vi-insert。\n"
 "      -l             列出函數名稱。\n"
 "      -P             列出函數名稱和繫結。\n"
 "      -p             以可以重新用作輸入的格式列出函數名稱和繫結。\n"
 "      -S             列出可以啟動巨集的鍵序列以及它們的值\n"
-"      -s             以可以重新用作輸入的格式列出可以啟動巨集的鍵以及它們的"
-"值。\n"
+"      -s             以可以重新用作輸入的格式列出可以啟動巨集的鍵以及它們的值。\n"
 "      -V             列出變數名稱和它們的值\n"
 "      -v             以可以重新用作輸入的格式列出變數的名稱和它們的值\n"
 "      -q  函數名      查詢指定的函數可以由哪些鍵啟動。\n"
 "      -u  函數名      反繫結所有繫結至指定函數的鍵。\n"
 "      -r  鍵序列      取消指定鍵序列的繫結。\n"
 "      -f  檔名      從指定檔案中讀取鍵繫結。\n"
-"      -x  鍵序列:shell 命令\t當指定的鍵序列被輸入時,執行指定的 shell 命"
-"令。\n"
+"      -x  鍵序列:shell 命令\t當指定的鍵序列被輸入時,執行指定的 shell 命令。\n"
 "      -X             以可被重用的形式列出用 -x 繫結的鍵序列和命令。\n"
 "    \n"
 "    退出狀態:\n"
@@ -2676,8 +2589,7 @@ msgid ""
 "    \n"
 "    Execute SHELL-BUILTIN with arguments ARGs without performing command\n"
 "    lookup.  This is useful when you wish to reimplement a shell builtin\n"
-"    as a shell function, but need to execute the builtin within the "
-"function.\n"
+"    as a shell function, but need to execute the builtin within the function.\n"
 "    \n"
 "    Exit Status:\n"
 "    Returns the exit status of SHELL-BUILTIN, or false if SHELL-BUILTIN is\n"
@@ -2690,8 +2602,7 @@ msgstr ""
 "    並且希望在函數之內執行該 shell 內建的情況下有用處。\n"
 "    \n"
 "    退出狀態:\n"
-"    以 SHELL-BUILTIN 內建的退出狀態為準,或者如果 SHELL-BUILTIN 不是一個 "
-"shell 內建時\n"
+"    以 SHELL-BUILTIN 內建的退出狀態為準,或者如果 SHELL-BUILTIN 不是一個 shell 內建時\n"
 "    為假。。"
 
 #: builtins.c:369
@@ -2723,26 +2634,19 @@ msgstr ""
 "    果為 0。"
 
 #: builtins.c:387
-#, fuzzy
 msgid ""
 "Change the shell working directory.\n"
 "    \n"
-"    Change the current directory to DIR.  The default DIR is the value of "
-"the\n"
+"    Change the current directory to DIR.  The default DIR is the value of the\n"
 "    HOME shell variable.\n"
 "    \n"
-"    The variable CDPATH defines the search path for the directory "
-"containing\n"
-"    DIR.  Alternative directory names in CDPATH are separated by a colon "
-"(:).\n"
-"    A null directory name is the same as the current directory.  If DIR "
-"begins\n"
+"    The variable CDPATH defines the search path for the directory containing\n"
+"    DIR.  Alternative directory names in CDPATH are separated by a colon (:).\n"
+"    A null directory name is the same as the current directory.  If DIR begins\n"
 "    with a slash (/), then CDPATH is not used.\n"
 "    \n"
-"    If the directory is not found, and the shell option `cdable_vars' is "
-"set,\n"
-"    the word is assumed to be  a variable name.  If that variable has a "
-"value,\n"
+"    If the directory is not found, and the shell option `cdable_vars' is set,\n"
+"    the word is assumed to be  a variable name.  If that variable has a value,\n"
 "    its value is used for DIR.\n"
 "    \n"
 "    Options:\n"
@@ -2758,13 +2662,11 @@ msgid ""
 "    \t\tattributes as a directory containing the file attributes\n"
 "    \n"
 "    The default is to follow symbolic links, as if `-L' were specified.\n"
-"    `..' is processed by removing the immediately previous pathname "
-"component\n"
+"    `..' is processed by removing the immediately previous pathname component\n"
 "    back to a slash or the beginning of DIR.\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns 0 if the directory is changed, and if $PWD is set successfully "
-"when\n"
+"    Returns 0 if the directory is changed, and if $PWD is set successfully when\n"
 "    -P is used; non-zero otherwise."
 msgstr ""
 "變更 shell 工作目錄。\n"
@@ -2772,24 +2674,18 @@ msgstr ""
 "    變更當前目錄至 DIR 目錄。預設的 DIR 目錄是 shell 變數 HOME\n"
 "    的值。\n"
 "    \n"
-"    變數 CDPATH 定義了含有 DIR 的目錄搜尋路徑,其中不同的目錄名稱由冒號 (:)分"
-"隔。\n"
-"    一個空的目錄名稱表示當前目錄。如果要切換到的 DIR 由斜線 (/) 開頭,則 "
-"CDPATH\n"
+"    變數 CDPATH 定義了含有 DIR 的目錄搜尋路徑,其中不同的目錄名稱由冒號 (:)分隔。\n"
+"    一個空的目錄名稱表示當前目錄。如果要切換到的 DIR 由斜線 (/) 開頭,則 CDPATH\n"
 "    變數不會被使用。\n"
 "    \n"
-"    如果路徑找不到,並且 shell 選項「cdable_vars」被設定,則引數詞被假定為一"
-"個\n"
+"    如果路徑找不到,並且 shell 選項「cdable_vars」被設定,則引數詞被假定為一個\n"
 "    變數名。如果該變數有值,則它的值被當做 DIR 目錄。\n"
 "    \n"
 "    選項:\n"
 "        -L\t強制跟隨符號鏈結: 在處理「..」之後解析 DIR 中的符號鏈結。\n"
-"        -P\t使用實體目錄結構而不跟隨符號鏈結: 在處理「..」之前解析 DIR 中的符"
-"號鏈結。\n"
-"        -e\t如果使用了 -P 引數,但不能成功確定當前工作目錄時,回傳非零的回傳"
-"值。\n"
-"        -@\t在支援擴展屬性的系統上,將一個有這些屬性的檔案當做有檔案屬性的目"
-"錄。\n"
+"        -P\t使用實體目錄結構而不跟隨符號鏈結: 在處理「..」之前解析 DIR 中的符號鏈結。\n"
+"        -e\t如果使用了 -P 引數,但不能成功確定當前工作目錄時,回傳非零的回傳值。\n"
+"        -@\t在支援擴展屬性的系統上,將一個有這些屬性的檔案當做有檔案屬性的目錄。\n"
 "    \n"
 "    預設情況下跟隨符號鏈結,如同指定「-L」。\n"
 "   「..」使用移除向前相鄰目錄名成員直到 DIR 開始或一個斜線的方式處理。\n"
@@ -2798,7 +2694,6 @@ msgstr ""
 "    如果目錄變更,或在使用 -P 選項時 $PWD 修改成功時回傳 0,否則非零。"
 
 #: builtins.c:425
-#, fuzzy
 msgid ""
 "Print the name of the current working directory.\n"
 "    \n"
@@ -2865,13 +2760,11 @@ msgstr ""
 "    一律失敗。"
 
 #: builtins.c:471
-#, fuzzy
 msgid ""
 "Execute a simple command or display information about commands.\n"
 "    \n"
 "    Runs COMMAND with ARGS suppressing  shell function lookup, or display\n"
-"    information about the specified COMMANDs.  Can be used to invoke "
-"commands\n"
+"    information about the specified COMMANDs.  Can be used to invoke commands\n"
 "    on disk when a function with the same name exists.\n"
 "    \n"
 "    Options:\n"
@@ -2898,7 +2791,6 @@ msgstr ""
 "    回傳 COMMAND 命令的回傳狀態,或者當找不到 COMMAND 命令時失敗。"
 
 #: builtins.c:490
-#, fuzzy
 msgid ""
 "Set variable values and attributes.\n"
 "    \n"
@@ -2917,11 +2809,11 @@ msgid ""
 "      -a\tto make NAMEs indexed arrays (if supported)\n"
 "      -A\tto make NAMEs associative arrays (if supported)\n"
 "      -i\tto make NAMEs have the `integer' attribute\n"
-"      -l\tto convert the value of each NAME to lower case on assignment\n"
+"      -l\tto convert NAMEs to lower case on assignment\n"
 "      -n\tmake NAME a reference to the variable named by its value\n"
 "      -r\tto make NAMEs readonly\n"
 "      -t\tto make NAMEs have the `trace' attribute\n"
-"      -u\tto convert the value of each NAME to upper case on assignment\n"
+"      -u\tto convert NAMEs to upper case on assignment\n"
 "      -x\tto make NAMEs export\n"
 "    \n"
 "    Using `+' instead of `-' turns off the given attribute.\n"
@@ -2929,8 +2821,7 @@ msgid ""
 "    Variables with the integer attribute have arithmetic evaluation (see\n"
 "    the `let' command) performed when the variable is assigned a value.\n"
 "    \n"
-"    When used in a function, `declare' makes NAMEs local, as with the "
-"`local'\n"
+"    When used in a function, `declare' makes NAMEs local, as with the `local'\n"
 "    command.  The `-g' option suppresses this behavior.\n"
 "    \n"
 "    Exit Status:\n"
@@ -2965,13 +2856,12 @@ msgstr ""
 "   「let」命令)\n"
 "    \n"
 "    在函數中使用時,「declare」使 NAME 成為本地變數,和「local」\n"
-"    命令一致。\n"
+"    命令一致。「-g」選項壓制這個行為\n"
 "    \n"
 "    退出狀態:\n"
 "    回傳成功除非使用了無效選項或者發生錯誤。"
 
 #: builtins.c:530
-#, fuzzy
 msgid ""
 "Set variable values and attributes.\n"
 "    \n"
@@ -2979,7 +2869,7 @@ msgid ""
 msgstr ""
 "設定變數的值和屬性。\n"
 "    \n"
-"    å»¢æ£\84。參見「help declare」。"
+"    å\8a\9fè\83½ç\9b¸å\90\8cæ\96¼ã\80\8cdeclareã\80\8d。參見「help declare」。"
 
 #: builtins.c:538
 msgid ""
@@ -3004,16 +2894,13 @@ msgstr ""
 "    部以及子函數中可見。\n"
 "    \n"
 "    退出狀態:\n"
-"    回傳成功,除非使用了無效的選項、發生了指派錯誤或者 shell 不在執行一個函"
-"數。"
+"    回傳成功,除非使用了無效的選項、發生了指派錯誤或者 shell 不在執行一個函數。"
 
 #: builtins.c:555
-#, fuzzy
 msgid ""
 "Write arguments to the standard output.\n"
 "    \n"
-"    Display the ARGs, separated by a single space character and followed by "
-"a\n"
+"    Display the ARGs, separated by a single space character and followed by a\n"
 "    newline, on the standard output.\n"
 "    \n"
 "    Options:\n"
@@ -3061,10 +2948,8 @@ msgstr ""
 "      \\t\t橫向製表符\n"
 "      \\v\t縱向製表符\n"
 "      \\\\\t反斜線\n"
-"      \\0nnn\t以 NNN (八進位)為 ASCII 碼的字元。 NNN 可以是 0 到 3 個八進位數"
-"字\n"
-"      \\xHH\t以 HH (十六進位)為值的八進位字元。HH 可以是一個或兩個十六進位數"
-"字\n"
+"      \\0nnn\t以 NNN (八進位)為 ASCII 碼的字元。 NNN 可以是 0 到 3 個八進位數字\n"
+"      \\xHH\t以 HH (十六進位)為值的八進位字元。HH 可以是一個或兩個十六進位數字\n"
 "    \n"
 "    退出狀態:\n"
 "    回傳成功除非有寫入錯誤發生。"
@@ -3145,8 +3030,7 @@ msgstr ""
 msgid ""
 "Execute arguments as a shell command.\n"
 "    \n"
-"    Combine ARGs into a single string, use the result as input to the "
-"shell,\n"
+"    Combine ARGs into a single string, use the result as input to the shell,\n"
 "    and execute the resulting commands.\n"
 "    \n"
 "    Exit Status:\n"
@@ -3239,13 +3123,11 @@ msgstr ""
 "    有錯誤發生則回傳失敗。"
 
 #: builtins.c:688
-#, fuzzy
 msgid ""
 "Replace the shell with the given command.\n"
 "    \n"
 "    Execute COMMAND, replacing this shell with the specified program.\n"
-"    ARGUMENTS become the arguments to COMMAND.  If COMMAND is not "
-"specified,\n"
+"    ARGUMENTS become the arguments to COMMAND.  If COMMAND is not specified,\n"
 "    any redirections take effect in the current shell.\n"
 "    \n"
 "    Options:\n"
@@ -3253,13 +3135,11 @@ msgid ""
 "      -c\texecute COMMAND with an empty environment\n"
 "      -l\tplace a dash in the zeroth argument to COMMAND\n"
 "    \n"
-"    If the command cannot be executed, a non-interactive shell exits, "
-"unless\n"
+"    If the command cannot be executed, a non-interactive shell exits, unless\n"
 "    the shell option `execfail' is set.\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns success unless COMMAND is not found or a redirection error "
-"occurs."
+"    Returns success unless COMMAND is not found or a redirection error occurs."
 msgstr ""
 "使用指定命令替換 shell。\n"
 "    \n"
@@ -3294,8 +3174,7 @@ msgstr ""
 msgid ""
 "Exit a login shell.\n"
 "    \n"
-"    Exits a login shell with exit status N.  Returns an error if not "
-"executed\n"
+"    Exits a login shell with exit status N.  Returns an error if not executed\n"
 "    in a login shell."
 msgstr ""
 "退出一個登入 shell。\n"
@@ -3307,15 +3186,13 @@ msgstr ""
 msgid ""
 "Display or execute commands from the history list.\n"
 "    \n"
-"    fc is used to list or edit and re-execute commands from the history "
-"list.\n"
+"    fc is used to list or edit and re-execute commands from the history list.\n"
 "    FIRST and LAST can be numbers specifying the range, or FIRST can be a\n"
 "    string, which means the most recent command beginning with that\n"
 "    string.\n"
 "    \n"
 "    Options:\n"
-"      -e ENAME\tselect which editor to use.  Default is FCEDIT, then "
-"EDITOR,\n"
+"      -e ENAME\tselect which editor to use.  Default is FCEDIT, then EDITOR,\n"
 "    \t\tthen vi\n"
 "      -l \tlist lines instead of editing\n"
 "      -n\tomit line numbers when listing\n"
@@ -3329,8 +3206,7 @@ msgid ""
 "    the last command.\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns success or status of executed command; non-zero if an error "
-"occurs."
+"    Returns success or status of executed command; non-zero if an error occurs."
 msgstr ""
 "從歷史記錄列表中顯示或者執行命令。\n"
 "    \n"
@@ -3380,10 +3256,8 @@ msgstr ""
 msgid ""
 "Move jobs to the background.\n"
 "    \n"
-"    Place the jobs identified by each JOB_SPEC in the background, as if "
-"they\n"
-"    had been started with `&'.  If JOB_SPEC is not present, the shell's "
-"notion\n"
+"    Place the jobs identified by each JOB_SPEC in the background, as if they\n"
+"    had been started with `&'.  If JOB_SPEC is not present, the shell's notion\n"
 "    of the current job is used.\n"
 "    \n"
 "    Exit Status:\n"
@@ -3399,13 +3273,11 @@ msgstr ""
 "    回傳成功除非工作管理沒有啟用或者錯誤發生。"
 
 #: builtins.c:787
-#, fuzzy
 msgid ""
 "Remember or display program locations.\n"
 "    \n"
 "    Determine and remember the full pathname of each command NAME.  If\n"
-"    no arguments are given, information about remembered commands is "
-"displayed.\n"
+"    no arguments are given, information about remembered commands is displayed.\n"
 "    \n"
 "    Options:\n"
 "      -d\tforget the remembered location of each NAME\n"
@@ -3436,15 +3308,13 @@ msgstr ""
 "    \t\tNAME 名稱,則每個位置前面會加上相應的 NAME 名稱\n"
 "    \t\t\n"
 "    引數:\n"
-"      NAME\t\t每個 NAME 名稱會在 $PATH 路徑變數中被搜尋,並且新增到記住的命"
-"令\n"
+"      NAME\t\t每個 NAME 名稱會在 $PATH 路徑變數中被搜尋,並且新增到記住的命令\n"
 "    列表中。\n"
 "    \n"
 "    退出狀態:\n"
 "    回傳成功,除非 NAME 命令沒有找到或者使用了無效的選項。"
 
 #: builtins.c:812
-#, fuzzy
 msgid ""
 "Display information about builtin commands.\n"
 "    \n"
@@ -3459,11 +3329,10 @@ msgid ""
 "    \t\tPATTERN\n"
 "    \n"
 "    Arguments:\n"
-"      PATTERN\tPattern specifying a help topic\n"
+"      PATTERN\tPattern specifiying a help topic\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns success unless PATTERN is not found or an invalid option is "
-"given."
+"    Returns success unless PATTERN is not found or an invalid option is given."
 msgstr ""
 "顯示內建命令的相關資訊。\n"
 "    \n"
@@ -3484,7 +3353,6 @@ msgstr ""
 "    回傳成功,除非 PATTERN 模式沒有找到或者使用了無效選項。"
 
 #: builtins.c:836
-#, fuzzy
 msgid ""
 "Display or manipulate the history list.\n"
 "    \n"
@@ -3493,8 +3361,7 @@ msgid ""
 "    \n"
 "    Options:\n"
 "      -c\tclear the history list by deleting all of the entries\n"
-"      -d offset\tdelete the history entry at position OFFSET. Negative\n"
-"    \t\toffsets count back from the end of the history list\n"
+"      -d offset\tdelete the history entry at position OFFSET.\n"
 "    \n"
 "      -a\tappend history lines from this session to the history file\n"
 "      -n\tread all history lines not already read from the history file\n"
@@ -3512,8 +3379,7 @@ msgid ""
 "    \n"
 "    If the HISTTIMEFORMAT variable is set and not null, its value is used\n"
 "    as a format string for strftime(3) to print the time stamp associated\n"
-"    with each displayed history entry.  No time stamps are printed "
-"otherwise.\n"
+"    with each displayed history entry.  No time stamps are printed otherwise.\n"
 "    \n"
 "    Exit Status:\n"
 "    Returns success unless an invalid option is given or an error occurs."
@@ -3529,7 +3395,7 @@ msgstr ""
 "    \n"
 "      -a\t將當前會話的歷史記錄列追加到歷史記錄檔案中\n"
 "      -n\t從歷史記錄檔案中讀取所有未被讀取的列\n"
-"      -r\t讀取歷史記錄檔案並將內容追加到歷史記錄列表中\n"
+"\t\t並且將它們追加到歷史列表      -r\t讀取歷史記錄檔案並將內容追加到歷史記錄列表中\n"
 "      -w\t將當前歷史記錄寫入到歷史記錄檔案中,並追加到歷史記錄列表中\n"
 "    \n"
 "      -p\t對每一個 ARG 引數展開歷史記錄並顯示結果,而不儲存到歷史記錄列表中\n"
@@ -3545,8 +3411,7 @@ msgstr ""
 "    退出狀態:\n"
 "    回傳成功,除非使用了無效的選項或者發生錯誤。"
 
-#: builtins.c:873
-#, fuzzy
+#: builtins.c:872
 msgid ""
 "Display status of jobs.\n"
 "    \n"
@@ -3588,8 +3453,7 @@ msgstr ""
 "    回傳成功,除非使用了無效的選項或者有錯誤發生。\n"
 "    如果使用 -x 選項,則回傳 COMMAND 命令的退出狀態。"
 
-#: builtins.c:900
-#, fuzzy
+#: builtins.c:899
 msgid ""
 "Remove jobs from current shell.\n"
 "    \n"
@@ -3619,8 +3483,7 @@ msgstr ""
 "    退出狀態:\n"
 "    回傳成功除非使用了無效的選項或者 JOBSPEC 規格。"
 
-#: builtins.c:919
-#, fuzzy
+#: builtins.c:918
 msgid ""
 "Send a signal to a job.\n"
 "    \n"
@@ -3660,15 +3523,14 @@ msgstr ""
 "    退出狀態:\n"
 "    回傳成功,除非使用了無效的選項或者有錯誤發生。"
 
-#: builtins.c:943
+#: builtins.c:942
 msgid ""
 "Evaluate arithmetic expressions.\n"
 "    \n"
 "    Evaluate each ARG as an arithmetic expression.  Evaluation is done in\n"
 "    fixed-width integers with no check for overflow, though division by 0\n"
 "    is trapped and flagged as an error.  The following list of operators is\n"
-"    grouped into levels of equal-precedence operators.  The levels are "
-"listed\n"
+"    grouped into levels of equal-precedence operators.  The levels are listed\n"
 "    in order of decreasing precedence.\n"
 "    \n"
 "    \tid++, id--\tvariable post-increment, post-decrement\n"
@@ -3736,41 +3598,35 @@ msgstr ""
 "    Shell 變數允許做為運算元。表示式中的變數名稱會以值取代\n"
 "    (強制轉換為定寬的整數)。表示式中的變數不需要開啟整數屬性。\n"
 "    \n"
-"    運算子按照優先順序進行求值。括號中的子表示式將被先求值,並可取代上述表示"
-"式規則。\n"
+"    運算子按照優先順序進行求值。括號中的子表示式將被先求值,並可取代上述表示式規則。\n"
 "    \n"
 "    退出狀態:\n"
 "    如果最後一個 ARG 引數求值為 0,則 let 回傳 1; 否則 let 回傳 0。"
 
-#: builtins.c:988
-#, fuzzy
+#: builtins.c:987
 msgid ""
 "Read a line from the standard input and split it into fields.\n"
 "    \n"
 "    Reads a single line from the standard input, or from file descriptor FD\n"
-"    if the -u option is supplied.  The line is split into fields as with "
-"word\n"
+"    if the -u option is supplied.  The line is split into fields as with word\n"
 "    splitting, and the first word is assigned to the first NAME, the second\n"
 "    word to the second NAME, and so on, with any leftover words assigned to\n"
-"    the last NAME.  Only the characters found in $IFS are recognized as "
-"word\n"
+"    the last NAME.  Only the characters found in $IFS are recognized as word\n"
 "    delimiters.\n"
 "    \n"
-"    If no NAMEs are supplied, the line read is stored in the REPLY "
-"variable.\n"
+"    If no NAMEs are supplied, the line read is stored in the REPLY variable.\n"
 "    \n"
 "    Options:\n"
 "      -a array\tassign the words read to sequential indices of the array\n"
 "    \t\tvariable ARRAY, starting at zero\n"
 "      -d delim\tcontinue until the first character of DELIM is read, rather\n"
 "    \t\tthan newline\n"
-"      -e\tuse Readline to obtain the line\n"
+"      -e\tuse Readline to obtain the line in an interactive shell\n"
 "      -i text\tuse TEXT as the initial text for Readline\n"
 "      -n nchars\treturn after reading NCHARS characters rather than waiting\n"
 "    \t\tfor a newline, but honor a delimiter if fewer than\n"
 "    \t\tNCHARS characters are read before the delimiter\n"
-"      -N nchars\treturn only after reading exactly NCHARS characters, "
-"unless\n"
+"      -N nchars\treturn only after reading exactly NCHARS characters, unless\n"
 "    \t\tEOF is encountered or read times out, ignoring any\n"
 "    \t\tdelimiter\n"
 "      -p prompt\toutput the string PROMPT without a trailing newline before\n"
@@ -3788,20 +3644,15 @@ msgid ""
 "      -u fd\tread from file descriptor FD instead of the standard input\n"
 "    \n"
 "    Exit Status:\n"
-"    The return code is zero, unless end-of-file is encountered, read times "
-"out\n"
-"    (in which case it's greater than 128), a variable assignment error "
-"occurs,\n"
+"    The return code is zero, unless end-of-file is encountered, read times out\n"
+"    (in which case it's greater than 128), a variable assignment error occurs,\n"
 "    or an invalid file descriptor is supplied as the argument to -u."
 msgstr ""
 "從標準輸入讀取一列並將其分為不同的區域。\n"
 "    \n"
-"    從標準輸入讀取單獨的一列,或者如果使用了 -u 選項,從檔案描述符 FD 中讀"
-"取。\n"
-"    該列被分割成區域,如同字詞分割一樣,並且第一個字詞被指派給第一個 NAME 變"
-"數,第二\n"
-"    個字詞被指派給第二個 NAME 變數,如此繼續,直到剩下所有的字詞被指派給最後"
-"一個 NAME\n"
+"    從標準輸入讀取單獨的一列,或者如果使用了 -u 選項,從檔案描述符 FD 中讀取。\n"
+"    該列被分割成區域,如同字詞分割一樣,並且第一個字詞被指派給第一個 NAME 變數,第二\n"
+"    個字詞被指派給第二個 NAME 變數,如此繼續,直到剩下所有的字詞被指派給最後一個 NAME\n"
 "    變數。只有 $IFS 變數中的字元被認做是字詞分隔符。\n"
 "    \n"
 "    如果沒有提供 NAME 變數,則讀取的列被存放在 REPLY 變數中。\n"
@@ -3813,15 +3664,13 @@ msgstr ""
 "      -i text\t使用 TEXT 文字做為 Readline 的初始文字\n"
 "      -n nchars\t讀取 nchars 個字元之後回傳,而不是等到讀取換列符。\n"
 "    \t\t但是分隔符仍然有效,如果遇到分隔符之前讀取了不足 nchars 個字元。\n"
-"      -N nchars\t在準確讀取了 nchars 個字元之後回傳,除非遇到檔案結束符或者讀"
-"取逾時,\n"
+"      -N nchars\t在準確讀取了 nchars 個字元之後回傳,除非遇到檔案結束符或者讀取逾時,\n"
 "    \t\t任何的分隔符都被忽略\n"
 "      -p prompt\t在嘗試讀取之前輸出 PROMPT 提示符並且不帶\n"
 "    \t\t換列符\n"
 "      -r\t不允許反斜線逸出任何字元\n"
 "      -s\t不顯示終端的任何輸入\n"
-"      -t timeout\t如果在 TIMEOUT 秒內沒有讀取一個完整的列則逾時並且回傳失"
-"敗。\n"
+"      -t timeout\t如果在 TIMEOUT 秒內沒有讀取一個完整的列則逾時並且回傳失敗。\n"
 "    \t\tTMOUT 變數的值是預設逾時時間。\n"
 "    \t\tTIMEOUT 可以是小數。如果 TIMEOUT 是 0,那麼僅當在指定的檔案描述符上\n"
 "    \t\t輸入有效的時候,read 才回傳成功。\n"
@@ -3832,7 +3681,7 @@ msgstr ""
 "    回傳碼為零,除非遇到了檔案結束符,讀取逾時,或者無效的文\n"
 "    件描述符做為引數傳遞給了 -u 選項。"
 
-#: builtins.c:1035
+#: builtins.c:1034
 msgid ""
 "Return from a shell function.\n"
 "    \n"
@@ -3852,8 +3701,7 @@ msgstr ""
 "    退出狀態:\n"
 "    回傳 N,或者如果 shell 不在執行一個函數或引用指令稿時,失敗。"
 
-#: builtins.c:1048
-#, fuzzy
+#: builtins.c:1047
 msgid ""
 "Set or unset values of shell options and positional parameters.\n"
 "    \n"
@@ -3896,8 +3744,7 @@ msgid ""
 "              physical     same as -P\n"
 "              pipefail     the return value of a pipeline is the status of\n"
 "                           the last command to exit with a non-zero status,\n"
-"                           or zero if no command exited with a non-zero "
-"status\n"
+"                           or zero if no command exited with a non-zero status\n"
 "              posix        change the behavior of bash where the default\n"
 "                           operation differs from the Posix standard to\n"
 "                           match the standard\n"
@@ -3921,8 +3768,7 @@ msgid ""
 "          by default when the shell is interactive.\n"
 "      -P  If set, do not resolve symbolic links when executing commands\n"
 "          such as cd which change the current directory.\n"
-"      -T  If set, the DEBUG and RETURN traps are inherited by shell "
-"functions.\n"
+"      -T  If set, the DEBUG and RETURN traps are inherited by shell functions.\n"
 "      --  Assign any remaining arguments to the positional parameters.\n"
 "          If there are no remaining arguments, the positional parameters\n"
 "          are unset.\n"
@@ -4001,7 +3847,7 @@ msgstr ""
 "          時候這個標識位預設開啟。\n"
 "      -P  設定之後類似 cd 的會變更當前目錄的命令不\n"
 "          追蹤符號鏈結。\n"
-"      -T  設定之後 DEBUG 陷阱會被 shell 函數繼承。\n"
+"      -T  設定之後 DEBUG 和 RETURN 陷阱會被 shell 函數繼承。\n"
 "      -   任何剩餘的引數會被指派給位置引數。\n"
 "          -x 和 -v 選項已關閉。\n"
 "    \n"
@@ -4014,8 +3860,7 @@ msgstr ""
 "    退出狀態:\n"
 "    回傳成功除非使用了無效的引數。"
 
-#: builtins.c:1133
-#, fuzzy
+#: builtins.c:1132
 msgid ""
 "Unset values and attributes of shell variables and functions.\n"
 "    \n"
@@ -4027,8 +3872,7 @@ msgid ""
 "      -n\ttreat each NAME as a name reference and unset the variable itself\n"
 "    \t\trather than the variable it references\n"
 "    \n"
-"    Without options, unset first tries to unset a variable, and if that "
-"fails,\n"
+"    Without options, unset first tries to unset a variable, and if that fails,\n"
 "    tries to unset a function.\n"
 "    \n"
 "    Some variables cannot be unset; also see `readonly'.\n"
@@ -4045,21 +3889,19 @@ msgstr ""
 "      -v\t將每個 NAME 視為變數\n"
 "      -n\t將每個 NAME 視為名稱引用,只取消其本身而非其指向的變數\n"
 "    \n"
-"    不帶選項時,unset 首先嘗試取消設定一個變數,如果失敗,再嘗試取消設定一個"
-"函數。\n"
+"    不帶選項時,unset 首先嘗試取消設定一個變數,如果失敗,再嘗試取消設定一個函數。\n"
 "    \n"
 "    某些變數不可以被取消設定;參見「readonly」。\n"
 "    \n"
 "    退出狀態:\n"
 "    回傳成功,除非使用了無效的選項或者 NAME 名稱為唯讀。"
 
-#: builtins.c:1155
+#: builtins.c:1154
 msgid ""
 "Set export attribute for shell variables.\n"
 "    \n"
 "    Marks each NAME for automatic export to the environment of subsequently\n"
-"    executed commands.  If VALUE is supplied, assign VALUE before "
-"exporting.\n"
+"    executed commands.  If VALUE is supplied, assign VALUE before exporting.\n"
 "    \n"
 "    Options:\n"
 "      -f\trefer to shell functions\n"
@@ -4086,8 +3928,7 @@ msgstr ""
 "    退出狀態:\n"
 "    回傳成功,除非使用了無效的選項或者 NAME 名稱。"
 
-#: builtins.c:1174
-#, fuzzy
+#: builtins.c:1173
 msgid ""
 "Mark shell variables as unchangeable.\n"
 "    \n"
@@ -4123,7 +3964,7 @@ msgstr ""
 "    退出狀態:\n"
 "    回傳成功,除非使用了無效的選項或者 NAME 名稱。"
 
-#: builtins.c:1196
+#: builtins.c:1195
 msgid ""
 "Shift positional parameters.\n"
 "    \n"
@@ -4141,7 +3982,7 @@ msgstr ""
 "    退出狀態:\n"
 "    回傳成功,除非 N 為負或者大於 $#。"
 
-#: builtins.c:1208 builtins.c:1223
+#: builtins.c:1207 builtins.c:1222
 msgid ""
 "Execute commands from a file in the current shell.\n"
 "    \n"
@@ -4163,7 +4004,7 @@ msgstr ""
 "    退出狀態:\n"
 "    回傳 FILENAME 檔案中最後一個命令的狀態;如果 FILENAME 檔案不可讀則失敗。"
 
-#: builtins.c:1239
+#: builtins.c:1238
 msgid ""
 "Suspend shell execution.\n"
 "    \n"
@@ -4187,8 +4028,7 @@ msgstr ""
 "    退出狀態:\n"
 "    回傳成功,除非沒有啟用工作控制或者有錯誤發生。"
 
-#: builtins.c:1255
-#, fuzzy
+#: builtins.c:1254
 msgid ""
 "Evaluate conditional expression.\n"
 "    \n"
@@ -4222,8 +4062,7 @@ msgid ""
 "      -x FILE        True if the file is executable by you.\n"
 "      -O FILE        True if the file is effectively owned by you.\n"
 "      -G FILE        True if the file is effectively owned by your group.\n"
-"      -N FILE        True if the file has been modified since it was last "
-"read.\n"
+"      -N FILE        True if the file has been modified since it was last read.\n"
 "    \n"
 "      FILE1 -nt FILE2  True if file1 is newer than file2 (according to\n"
 "                       modification date).\n"
@@ -4244,8 +4083,7 @@ msgid ""
 "      STRING1 != STRING2\n"
 "                     True if the strings are not equal.\n"
 "      STRING1 < STRING2\n"
-"                     True if STRING1 sorts before STRING2 "
-"lexicographically.\n"
+"                     True if STRING1 sorts before STRING2 lexicographically.\n"
 "      STRING1 > STRING2\n"
 "                     True if STRING1 sorts after STRING2 lexicographically.\n"
 "    \n"
@@ -4342,7 +4180,7 @@ msgstr ""
 "    如果 EXPR 表示式求值為真則回傳成功;如果 EXPR 表示式求值\n"
 "    為假或者使用了無效的引數則回傳失敗。"
 
-#: builtins.c:1337
+#: builtins.c:1336
 msgid ""
 "Evaluate conditional expression.\n"
 "    \n"
@@ -4354,12 +4192,11 @@ msgstr ""
 "    是內建命令「test」的同義詞,但是最後一個引數必須是\n"
 "    字元「]」,以匹配起始的「[」。"
 
-#: builtins.c:1346
+#: builtins.c:1345
 msgid ""
 "Display process times.\n"
 "    \n"
-"    Prints the accumulated user and system times for the shell and all of "
-"its\n"
+"    Prints the accumulated user and system times for the shell and all of its\n"
 "    child processes.\n"
 "    \n"
 "    Exit Status:\n"
@@ -4373,12 +4210,11 @@ msgstr ""
 "    退出狀態:\n"
 "    一律成功。"
 
-#: builtins.c:1358
+#: builtins.c:1357
 msgid ""
 "Trap signals and other events.\n"
 "    \n"
-"    Defines and activates handlers to be run when the shell receives "
-"signals\n"
+"    Defines and activates handlers to be run when the shell receives signals\n"
 "    or other conditions.\n"
 "    \n"
 "    ARG is a command to be read and executed when the shell receives the\n"
@@ -4387,34 +4223,26 @@ msgid ""
 "    value.  If ARG is the null string each SIGNAL_SPEC is ignored by the\n"
 "    shell and by the commands it invokes.\n"
 "    \n"
-"    If a SIGNAL_SPEC is EXIT (0) ARG is executed on exit from the shell.  "
-"If\n"
-"    a SIGNAL_SPEC is DEBUG, ARG is executed before every simple command.  "
-"If\n"
-"    a SIGNAL_SPEC is RETURN, ARG is executed each time a shell function or "
-"a\n"
-"    script run by the . or source builtins finishes executing.  A "
-"SIGNAL_SPEC\n"
-"    of ERR means to execute ARG each time a command's failure would cause "
-"the\n"
+"    If a SIGNAL_SPEC is EXIT (0) ARG is executed on exit from the shell.  If\n"
+"    a SIGNAL_SPEC is DEBUG, ARG is executed before every simple command.  If\n"
+"    a SIGNAL_SPEC is RETURN, ARG is executed each time a shell function or a\n"
+"    script run by the . or source builtins finishes executing.  A SIGNAL_SPEC\n"
+"    of ERR means to execute ARG each time a command's failure would cause the\n"
 "    shell to exit when the -e option is enabled.\n"
 "    \n"
-"    If no arguments are supplied, trap prints the list of commands "
-"associated\n"
+"    If no arguments are supplied, trap prints the list of commands associated\n"
 "    with each signal.\n"
 "    \n"
 "    Options:\n"
 "      -l\tprint a list of signal names and their corresponding numbers\n"
 "      -p\tdisplay the trap commands associated with each SIGNAL_SPEC\n"
 "    \n"
-"    Each SIGNAL_SPEC is either a signal name in <signal.h> or a signal "
-"number.\n"
+"    Each SIGNAL_SPEC is either a signal name in <signal.h> or a signal number.\n"
 "    Signal names are case insensitive and the SIG prefix is optional.  A\n"
 "    signal may be sent to the shell with \"kill -signal $$\".\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns success unless a SIGSPEC is invalid or an invalid option is "
-"given."
+"    Returns success unless a SIGSPEC is invalid or an invalid option is given."
 msgstr ""
 "對訊號和其他事件設陷阱。\n"
 "    \n"
@@ -4423,8 +4251,7 @@ msgstr ""
 "    ARG 引數是當 shell 接收到 SIGNAL_SPEC 訊號時讀取和執行的命令。\n"
 "    如果沒有指定 ARG 引數 (並且只給出一個 SIGNAL_SPEC 訊號) 或者\n"
 " ARG 引數為\n"
-"   「-」,每一個指定的引數會被重置為原始值。如果 ARG 引數是一個空串,則每一"
-"個\n"
+"   「-」,每一個指定的引數會被重置為原始值。如果 ARG 引數是一個空串,則每一個\n"
 "    SIGNAL_SPEC 訊號會被 shell 和它啟動的命令忽略。\n"
 "    \n"
 "    如果一個 SIGNAL_SPEC 訊號是 EXIT (0) ,則 ARG 命令會在 shell 退出時被\n"
@@ -4444,8 +4271,7 @@ msgstr ""
 "    退出狀態:\n"
 "    回傳成功,除非使用了無效的選項或者 SIGSPEC。"
 
-#: builtins.c:1394
-#, fuzzy
+#: builtins.c:1393
 msgid ""
 "Display information about command type.\n"
 "    \n"
@@ -4471,8 +4297,7 @@ msgid ""
 "      NAME\tCommand name to be interpreted.\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns success if all of the NAMEs are found; fails if any are not "
-"found."
+"    Returns success if all of the NAMEs are found; fails if any are not found."
 msgstr ""
 "顯示命令類型的資訊。\n"
 "    \n"
@@ -4497,13 +4322,11 @@ msgstr ""
 "    退出狀態:\n"
 "    如果所有的 NAME 命令都找到則回傳成功;任何找不到則失敗。"
 
-#: builtins.c:1425
-#, fuzzy
+#: builtins.c:1424
 msgid ""
 "Modify shell resource limits.\n"
 "    \n"
-"    Provides control over the resources available to the shell and "
-"processes\n"
+"    Provides control over the resources available to the shell and processes\n"
 "    it creates, on systems that allow such control.\n"
 "    \n"
 "    Options:\n"
@@ -4561,6 +4384,7 @@ msgstr ""
 "      -e\t最高的排程優先順序 (「nice」)\n"
 "      -f\t有 shell 及其子行程可以寫入的最大檔案尺寸\n"
 "      -i\t最多可以懸置的訊號數\n"
+"      -k\t為這個進程所分配的最大 kqueues 數量\n"
 "      -l\t一個行程可以鎖定的最大記憶體尺寸\n"
 "      -m\t最大的記憶體進駐尺寸\n"
 "      -n\t最多開啟的檔案描述符個數\n"
@@ -4568,6 +4392,7 @@ msgstr ""
 "      -q\tPOSIX 資訊佇列的最大位元組數\n"
 "      -r\t實時排程的最大優先順序\n"
 "      -s\t最大堆疊尺寸\n"
+"      -P\t偽終端的最大數量\n"
 "      -t\t最大的 CPU 時間,以秒為單位\n"
 "      -u\t最大使用者行程數\n"
 "      -v\t虛擬記憶體尺寸\n"
@@ -4577,8 +4402,7 @@ msgstr ""
 "    並非所有選項在所有系統上可用。\n"
 "    \n"
 "    如果提供了 LIMIT 變數,則它為指定資源的新值;特別的 LIMIT 值為\n"
-"   「soft」、「hard」和「unlimited」,分別表示當前的軟限制,硬限制和無限"
-"制。\n"
+"   「soft」、「hard」和「unlimited」,分別表示當前的軟限制,硬限制和無限制。\n"
 "    否則印出指定資源的當前限制值,不帶選項則假定為 -f\n"
 "    \n"
 "    取值都是 1024 位元組為單位,除了 -t 以秒為單位,-p 以 512 位元組遞增,\n"
@@ -4587,7 +4411,7 @@ msgstr ""
 "    退出狀態:\n"
 "    回傳成功,除非使用了無效的選項或者錯誤發生。"
 
-#: builtins.c:1475
+#: builtins.c:1474
 msgid ""
 "Display or set file mode mask.\n"
 "    \n"
@@ -4619,24 +4443,19 @@ msgstr ""
 "    退出狀態:\n"
 "    回傳成功,除非使用了無效的 MODE 模式或者選項。"
 
-#: builtins.c:1495
-#, fuzzy
+#: builtins.c:1494
 msgid ""
 "Wait for job completion and return exit status.\n"
 "    \n"
-"    Waits for each process identified by an ID, which may be a process ID or "
-"a\n"
+"    Waits for each process identified by an ID, which may be a process ID or a\n"
 "    job specification, and reports its termination status.  If ID is not\n"
 "    given, waits for all currently active child processes, and the return\n"
-"    status is zero.  If ID is a job specification, waits for all processes\n"
+"    status is zero.  If ID is a job specification, waits for all processes\n"
 "    in that job's pipeline.\n"
 "    \n"
 "    If the -n option is supplied, waits for the next job to terminate and\n"
 "    returns its exit status.\n"
 "    \n"
-"    If the -f option is supplied, and job control is enabled, waits for the\n"
-"    specified ID to terminate, instead of waiting for it to change status.\n"
-"    \n"
 "    Exit Status:\n"
 "    Returns the status of the last ID; fails if ID is invalid or an invalid\n"
 "    option is given."
@@ -4653,18 +4472,16 @@ msgstr ""
 "    退出狀態:\n"
 "    回傳最後一個 ID 行程的狀態;如果使用了無效的 ID 或者選項則失敗。"
 
-#: builtins.c:1519
+#: builtins.c:1515
 msgid ""
 "Wait for process completion and return exit status.\n"
 "    \n"
-"    Waits for each process specified by a PID and reports its termination "
-"status.\n"
+"    Waits for each process specified by a PID and reports its termination status.\n"
 "    If PID is not given, waits for all currently active child processes,\n"
 "    and the return status is zero.  PID must be a process ID.\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns the status of the last PID; fails if PID is invalid or an "
-"invalid\n"
+"    Returns the status of the last PID; fails if PID is invalid or an invalid\n"
 "    option is given."
 msgstr ""
 "等待行程完成並且回傳退出狀態。\n"
@@ -4673,10 +4490,9 @@ msgstr ""
 "    子行程都會被等待,並且回傳碼為零。PID 必須為行程識別號。\n"
 "    \n"
 "    退出狀態:\n"
-"    回傳行程 ID 的狀態;如果 PID 是無效的行程識別號或者指定了無效的選項則失"
-"敗。"
+"    回傳行程 ID 的狀態;如果 PID 是無效的行程識別號或者指定了無效的選項則失敗。"
 
-#: builtins.c:1534
+#: builtins.c:1530
 msgid ""
 "Execute commands for each member in a list.\n"
 "    \n"
@@ -4697,7 +4513,7 @@ msgstr ""
 "    退出狀態:\n"
 "    回傳最後執行命令的狀態。"
 
-#: builtins.c:1548
+#: builtins.c:1544
 msgid ""
 "Arithmetic for loop.\n"
 "    \n"
@@ -4727,7 +4543,7 @@ msgstr ""
 "    退出狀態:\n"
 "    回傳最後執行命令的狀態。"
 
-#: builtins.c:1566
+#: builtins.c:1562
 msgid ""
 "Select words from a list and execute commands.\n"
 "    \n"
@@ -4760,7 +4576,7 @@ msgstr ""
 "    退出狀態:\n"
 "    回傳最後一個執行命令的狀態。"
 
-#: builtins.c:1587
+#: builtins.c:1583
 msgid ""
 "Report time consumed by pipeline's execution.\n"
 "    \n"
@@ -4788,7 +4604,7 @@ msgstr ""
 "    退出狀態:\n"
 "    回傳狀態即 PIPELINE 的回傳狀態。"
 
-#: builtins.c:1604
+#: builtins.c:1600
 msgid ""
 "Execute commands based on pattern matching.\n"
 "    \n"
@@ -4806,21 +4622,16 @@ msgstr ""
 "    退出狀態:\n"
 "    回傳最後一個執行命令的狀態。"
 
-#: builtins.c:1616
+#: builtins.c:1612
 msgid ""
 "Execute commands based on conditional.\n"
 "    \n"
-"    The `if COMMANDS' list is executed.  If its exit status is zero, then "
-"the\n"
-"    `then COMMANDS' list is executed.  Otherwise, each `elif COMMANDS' list "
-"is\n"
+"    The `if COMMANDS' list is executed.  If its exit status is zero, then the\n"
+"    `then COMMANDS' list is executed.  Otherwise, each `elif COMMANDS' list is\n"
 "    executed in turn, and if its exit status is zero, the corresponding\n"
-"    `then COMMANDS' list is executed and the if command completes.  "
-"Otherwise,\n"
-"    the `else COMMANDS' list is executed, if present.  The exit status of "
-"the\n"
-"    entire construct is the exit status of the last command executed, or "
-"zero\n"
+"    `then COMMANDS' list is executed and the if command completes.  Otherwise,\n"
+"    the `else COMMANDS' list is executed, if present.  The exit status of the\n"
+"    entire construct is the exit status of the last command executed, or zero\n"
 "    if no condition tested true.\n"
 "    \n"
 "    Exit Status:\n"
@@ -4837,7 +4648,7 @@ msgstr ""
 "    退出狀態:\n"
 "    回傳最後一個執行命令的狀態。"
 
-#: builtins.c:1633
+#: builtins.c:1629
 msgid ""
 "Execute commands as long as a test succeeds.\n"
 "    \n"
@@ -4855,7 +4666,7 @@ msgstr ""
 "    退出狀態:\n"
 "    回傳最後一個執行命令的狀態。"
 
-#: builtins.c:1645
+#: builtins.c:1641
 msgid ""
 "Execute commands as long as a test does not succeed.\n"
 "    \n"
@@ -4873,8 +4684,7 @@ msgstr ""
 "    退出狀態:\n"
 "    回傳最後一個執行命令的狀態。"
 
-#: builtins.c:1657
-#, fuzzy
+#: builtins.c:1653
 msgid ""
 "Create a coprocess named NAME.\n"
 "    \n"
@@ -4894,15 +4704,14 @@ msgstr ""
 "    預設的 NAME 是「COPROC」。\n"
 "    \n"
 "    退出狀態:\n"
-"    回傳 COMMAND 命令的退出狀態。"
+"    coprc 指令回傳離開代碼 0。"
 
-#: builtins.c:1671
+#: builtins.c:1667
 msgid ""
 "Define shell function.\n"
 "    \n"
 "    Create a shell function named NAME.  When invoked as a simple command,\n"
-"    NAME runs COMMANDs in the calling shell's context.  When NAME is "
-"invoked,\n"
+"    NAME runs COMMANDs in the calling shell's context.  When NAME is invoked,\n"
 "    the arguments are passed to the function as $1...$n, and the function's\n"
 "    name is in $FUNCNAME.\n"
 "    \n"
@@ -4919,7 +4728,7 @@ msgstr ""
 "    退出狀態:\n"
 "    回傳成功除非 NAME 為唯讀。"
 
-#: builtins.c:1685
+#: builtins.c:1681
 msgid ""
 "Group commands as a unit.\n"
 "    \n"
@@ -4937,7 +4746,7 @@ msgstr ""
 "    退出狀態:\n"
 "    回傳最後一個執行命令的狀態。"
 
-#: builtins.c:1697
+#: builtins.c:1693
 msgid ""
 "Resume job in foreground.\n"
 "    \n"
@@ -4961,7 +4770,7 @@ msgstr ""
 "    退出狀態:\n"
 "    回傳被繼續的工作狀態。"
 
-#: builtins.c:1712
+#: builtins.c:1708
 msgid ""
 "Evaluate arithmetic expression.\n"
 "    \n"
@@ -4979,16 +4788,13 @@ msgstr ""
 "    退出狀態:\n"
 "    如果表示式求值為 0 則回傳 1;否則回傳 0。"
 
-#: builtins.c:1724
+#: builtins.c:1720
 msgid ""
 "Execute conditional command.\n"
 "    \n"
-"    Returns a status of 0 or 1 depending on the evaluation of the "
-"conditional\n"
-"    expression EXPRESSION.  Expressions are composed of the same primaries "
-"used\n"
-"    by the `test' builtin, and may be combined using the following "
-"operators:\n"
+"    Returns a status of 0 or 1 depending on the evaluation of the conditional\n"
+"    expression EXPRESSION.  Expressions are composed of the same primaries used\n"
+"    by the `test' builtin, and may be combined using the following operators:\n"
 "    \n"
 "      ( EXPRESSION )\tReturns the value of EXPRESSION\n"
 "      ! EXPRESSION\t\tTrue if EXPRESSION is false; else false\n"
@@ -5014,8 +4820,7 @@ msgstr ""
 "      ( EXPRESSION )\t回傳 EXPRESSION 表示式的值\n"
 "      ! EXPRESSION\t\t如果 EXPRESSION 表示式為假則為真,否則為假\n"
 "      EXPR1 && EXPR2\t如果 EXPR1 和 EXPR2 表示式均為真則為真,否則為假\n"
-"      EXPR1 || EXPR2\t如果 EXPR1 和 EXPR2 表示式中有一個為真則為真,否則為"
-"假\n"
+"      EXPR1 || EXPR2\t如果 EXPR1 和 EXPR2 表示式中有一個為真則為真,否則為假\n"
 "    \n"
 "    當使用「==」和「!=」運算子時,運算子右邊的字串被用作模式並且執行一個\n"
 "    匹配。當使用「=~」運算子時,運算子右邊的字串被當做正則表示式來進行\n"
@@ -5027,7 +4832,7 @@ msgstr ""
 "    退出狀態:\n"
 "    根據 EXPRESSION 的值為 0 或 1。"
 
-#: builtins.c:1750
+#: builtins.c:1746
 msgid ""
 "Common shell variable names and usage.\n"
 "    \n"
@@ -5122,8 +4927,7 @@ msgstr ""
 "    HISTIGNORE\t用於決定哪些命令被存入歷史記錄檔案的模式\n"
 "    \t\t列表,以冒號分隔。\n"
 
-#: builtins.c:1807
-#, fuzzy
+#: builtins.c:1803
 msgid ""
 "Add directories to stack.\n"
 "    \n"
@@ -5153,9 +4957,9 @@ msgid ""
 "    Returns success unless an invalid argument is supplied or the directory\n"
 "    change fails."
 msgstr ""
-"å¾\9eå \86ç\96\8a中å\88ªé\99¤目錄。\n"
+"å¾\9eå \86ç\96\8a中建ç«\8b目錄。\n"
 "    \n"
-"    å¾\9eç\9b®é\8c\84å \86ç\96\8a中å\88ªé\99¤æ¢\9dç\9b®ã\80\82ä¸\8d帶å¼\95æ\95¸æ\99\82ï¼\8cå\88ªé\99¤堆疊頂端目錄,並變更至新的堆疊\n"
+"    å¾\9eç\9b®é\8c\84å \86ç\96\8a中建ç«\8bæ¢\9dç\9b®ã\80\82ä¸\8d帶å¼\95æ\95¸æ\99\82ï¼\8c建ç«\8b堆疊頂端目錄,並變更至新的堆疊\n"
 "    頂端目錄。\n"
 "    \n"
 "    選項:\n"
@@ -5174,8 +4978,7 @@ msgstr ""
 "    退出狀態:\n"
 "    回傳成功,除非使用了無效的引數或者目錄變換失敗。"
 
-#: builtins.c:1841
-#, fuzzy
+#: builtins.c:1837
 msgid ""
 "Remove directories from stack.\n"
 "    \n"
@@ -5222,8 +5025,7 @@ msgstr ""
 "    退出狀態:\n"
 "    回傳成功,除非使用了無效的引數或者目錄變換失敗。"
 
-#: builtins.c:1871
-#, fuzzy
+#: builtins.c:1867
 msgid ""
 "Display directory stack.\n"
 "    \n"
@@ -5272,14 +5074,13 @@ msgstr ""
 "    退出狀態:\n"
 "    回傳成功,除非使用了無效的選項或者發生錯誤。"
 
-#: builtins.c:1902
-#, fuzzy
+#: builtins.c:1898
 msgid ""
 "Set and unset shell options.\n"
 "    \n"
 "    Change the setting of each shell option OPTNAME.  Without any option\n"
-"    arguments, list each supplied OPTNAME, or all shell options if no\n"
-"    OPTNAMEs are given, with an indication of whether or not each is set.\n"
+"    arguments, list all shell options with an indication of whether or not each\n"
+"    is set.\n"
 "    \n"
 "    Options:\n"
 "      -o\trestrict OPTNAMEs to those defined for use with `set -o'\n"
@@ -5309,8 +5110,7 @@ msgstr ""
 "    如果 OPTNAME 選項被啟用則回傳成功;如果是\n"
 "    無效的選項或 OPTNAME 被停用則失敗。"
 
-#: builtins.c:1923
-#, fuzzy
+#: builtins.c:1919
 msgid ""
 "Formats and prints ARGUMENTS under control of the FORMAT.\n"
 "    \n"
@@ -5318,34 +5118,27 @@ msgid ""
 "      -v var\tassign the output to shell variable VAR rather than\n"
 "    \t\tdisplay it on the standard output\n"
 "    \n"
-"    FORMAT is a character string which contains three types of objects: "
-"plain\n"
-"    characters, which are simply copied to standard output; character "
-"escape\n"
+"    FORMAT is a character string which contains three types of objects: plain\n"
+"    characters, which are simply copied to standard output; character escape\n"
 "    sequences, which are converted and copied to the standard output; and\n"
-"    format specifications, each of which causes printing of the next "
-"successive\n"
+"    format specifications, each of which causes printing of the next successive\n"
 "    argument.\n"
 "    \n"
-"    In addition to the standard format specifications described in printf"
-"(1),\n"
+"    In addition to the standard format specifications described in printf(1),\n"
 "    printf interprets:\n"
 "    \n"
 "      %b\texpand backslash escape sequences in the corresponding argument\n"
 "      %q\tquote the argument in a way that can be reused as shell input\n"
-"      %(fmt)T\toutput the date-time string resulting from using FMT as a "
-"format\n"
+"      %(fmt)T\toutput the date-time string resulting from using FMT as a format\n"
 "    \t        string for strftime(3)\n"
 "    \n"
 "    The format is re-used as necessary to consume all of the arguments.  If\n"
 "    there are fewer arguments than the format requires,  extra format\n"
-"    specifications behave as if a zero value or null string, as "
-"appropriate,\n"
+"    specifications behave as if a zero value or null string, as appropriate,\n"
 "    had been supplied.\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns success unless an invalid option is given or a write or "
-"assignment\n"
+"    Returns success unless an invalid option is given or a write or assignment\n"
 "    error occurs."
 msgstr ""
 "在 FORMAT 的控制下格式化並印出 ARGUMENTS 引數。\n"
@@ -5354,26 +5147,22 @@ msgstr ""
 "      -v var\t將輸出指派給 shell 變數 VAR 而不顯示在標準輸出上\n"
 "    \n"
 "    FORMAT 是包含三種物件的字串:簡單地被複製到標準輸出的普通字元;\n"
-"    被變換之後複製到標準輸入的逸出字元;以及每個都會影響到下個引數的印出格式"
-"化規格。\n"
+"    被變換之後複製到標準輸入的逸出字元;以及每個都會影響到下個引數的印出格式化規格。\n"
 "    \n"
 "    在 printf(1) 中描述的標準控制規格之外,printf 解析:\n"
 "、    \n"
 "      %b\t擴充套件對應引數中的反斜線逸出序列\n"
 "      %q\t以可做為 shell 輸入的格式引用引數\n"
-"    \n"
+"      %(fmt)T\t以 FMT 為提供 strftime(3) 的格式輸出日期與時間字串    \n"
 "    退出狀態:\n"
 "    回傳成功,除非使用了無效的選項或者發生寫入或指派錯誤。"
 
-#: builtins.c:1957
-#, fuzzy
+#: builtins.c:1953
 msgid ""
 "Specify how arguments are to be completed by Readline.\n"
 "    \n"
-"    For each NAME, specify how arguments are to be completed.  If no "
-"options\n"
-"    are supplied, existing completion specifications are printed in a way "
-"that\n"
+"    For each NAME, specify how arguments are to be completed.  If no options\n"
+"    are supplied, existing completion specifications are printed in a way that\n"
 "    allows them to be reused as input.\n"
 "    \n"
 "    Options:\n"
@@ -5410,13 +5199,12 @@ msgstr ""
 "    退出狀態:\n"
 "    回傳成功,除非使用了無效的選項或者錯誤發生。"
 
-#: builtins.c:1985
+#: builtins.c:1981
 msgid ""
 "Display possible completions depending on the options.\n"
 "    \n"
 "    Intended to be used from within a shell function generating possible\n"
-"    completions.  If the optional WORD argument is supplied, matches "
-"against\n"
+"    completions.  If the optional WORD argument is supplied, matches against\n"
 "    WORD are generated.\n"
 "    \n"
 "    Exit Status:\n"
@@ -5431,16 +5219,13 @@ msgstr ""
 "    退出狀態:\n"
 "    除非使用了無效選項或者錯誤發生,否則回傳成功。"
 
-#: builtins.c:2000
+#: builtins.c:1996
 msgid ""
 "Modify or display completion options.\n"
 "    \n"
-"    Modify the completion options for each NAME, or, if no NAMEs are "
-"supplied,\n"
-"    the completion currently being executed.  If no OPTIONs are given, "
-"print\n"
-"    the completion options for each NAME or the current completion "
-"specification.\n"
+"    Modify the completion options for each NAME, or, if no NAMEs are supplied,\n"
+"    the completion currently being executed.  If no OPTIONs are given, print\n"
+"    the completion options for each NAME or the current completion specification.\n"
 "    \n"
 "    Options:\n"
 "    \t-o option\tSet completion option OPTION for each NAME\n"
@@ -5463,8 +5248,7 @@ msgid ""
 msgstr ""
 "修改或顯示補完選項。\n"
 "    \n"
-"    修改每個 NAME 名稱的補完選項,或如果沒有提供 NAME 名稱,執行當前的補"
-"完。\n"
+"    修改每個 NAME 名稱的補完選項,或如果沒有提供 NAME 名稱,執行當前的補完。\n"
 "    如果不帶選項,印出每個 NAME 名稱的補完選項或當前的補完規格。\n"
 "    \n"
 "    選項:\n"
@@ -5483,27 +5267,21 @@ msgstr ""
 "    退出狀態:\n"
 "    回傳成功,除非使用了無效的選項或者 NAME 名稱沒有定義補完規格。"
 
-#: builtins.c:2030
-#, fuzzy
+#: builtins.c:2026
 msgid ""
 "Read lines from the standard input into an indexed array variable.\n"
 "    \n"
-"    Read lines from the standard input into the indexed array variable "
-"ARRAY, or\n"
-"    from file descriptor FD if the -u option is supplied.  The variable "
-"MAPFILE\n"
+"    Read lines from the standard input into the indexed array variable ARRAY, or\n"
+"    from file descriptor FD if the -u option is supplied.  The variable MAPFILE\n"
 "    is the default ARRAY.\n"
 "    \n"
 "    Options:\n"
 "      -d delim\tUse DELIM to terminate lines, instead of newline\n"
-"      -n count\tCopy at most COUNT lines.  If COUNT is 0, all lines are "
-"copied\n"
-"      -O origin\tBegin assigning to ARRAY at index ORIGIN.  The default "
-"index is 0\n"
+"      -n count\tCopy at most COUNT lines.  If COUNT is 0, all lines are copied\n"
+"      -O origin\tBegin assigning to ARRAY at index ORIGIN.  The default index is 0\n"
 "      -s count\tDiscard the first COUNT lines read\n"
 "      -t\tRemove a trailing DELIM from each line read (default newline)\n"
-"      -u fd\tRead lines from file descriptor FD instead of the standard "
-"input\n"
+"      -u fd\tRead lines from file descriptor FD instead of the standard input\n"
 "      -C callback\tEvaluate CALLBACK each time QUANTUM lines are read\n"
 "      -c quantum\tSpecify the number of lines read between each call to\n"
 "    \t\t\tCALLBACK\n"
@@ -5516,13 +5294,11 @@ msgid ""
 "    element to be assigned and the line to be assigned to that element\n"
 "    as additional arguments.\n"
 "    \n"
-"    If not supplied with an explicit origin, mapfile will clear ARRAY "
-"before\n"
+"    If not supplied with an explicit origin, mapfile will clear ARRAY before\n"
 "    assigning to it.\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns success unless an invalid option is given or ARRAY is readonly "
-"or\n"
+"    Returns success unless an invalid option is given or ARRAY is readonly or\n"
 "    not an indexed array."
 msgstr ""
 "從標準輸入讀取列到索引陣列變數中。\n"
@@ -5531,6 +5307,7 @@ msgstr ""
 "    從檔案描述符 FD 中讀取。MAPFILE 變數是預設的 ARRAY 變數。\n"
 "    \n"
 "    選項:\n"
+"      -d delim\t使用 DELIM 取代換行符號來斷行\n"
 "      -n count\t最多複製 COUNT 列,如果 COUNT 為 0,則複製所有列。\n"
 "      -O origin\t從索引 ORIGIN 開始 指派給 ARRAY 變數。預設索引是 0。\n"
 "      -s count \t丟棄最先讀取的 COUNT 列。\n"
@@ -5550,7 +5327,7 @@ msgstr ""
 "    退出狀態:\n"
 "    回傳成功,除非使用了無效的選項,或者 ARRAY 變數唯讀或不是索引陣列。"
 
-#: builtins.c:2066
+#: builtins.c:2062
 msgid ""
 "Read lines from a file into an array variable.\n"
 "    \n"
diff --git a/shell.c b/shell.c
index ad76636cdb74e0ee0256c9cddef2f85cbffcc41e..a9659bb8d132c4c1e35a7ff9c680695e9c6fe550 100644 (file)
--- a/shell.c
+++ b/shell.c
@@ -363,7 +363,7 @@ main (argc, argv, env)
 #endif /* !NO_MAIN_ENV_ARG */
 {
   register int i;
-  int code, old_errexit_flag;
+  int code, old_errexit_flag, old_onecmd;
 #if defined (RESTRICTED_SHELL)
   int saverst;
 #endif
@@ -1012,7 +1012,7 @@ sh_exit (s)
      int s;
 {
 #if defined (MALLOC_DEBUG) && defined (USING_BASH_MALLOC)
-  if (malloc_trace_at_exit)
+  if (malloc_trace_at_exit && (subshell_environment & (SUBSHELL_COMSUB|SUBSHELL_PROCSUB)) == 0)
     trace_malloc_stats (get_name_for_error (), (char *)NULL);
   /* mlocation_write_table (); */
 #endif
diff --git a/sig.c b/sig.c
index 6934f4f944e041003d145e92719d9fc79b6259c2..8daec14b6a48cf921c3328b8d2c42be8dd831f03 100644 (file)
--- a/sig.c
+++ b/sig.c
@@ -268,7 +268,6 @@ initialize_terminating_signals ()
        sigaction (XSIG (i), &oact, (struct sigaction *)NULL);
 #endif /* SIGPROF && !_MINIX */
     }
-
 #else /* !HAVE_POSIX_SIGNALS */
 
   for (i = 0; i < TERMSIGS_LENGTH; i++)
diff --git a/subst.c b/subst.c
index 6d100098621ed14e8f2e9fe89cddeeb98e11adfe..906b7ac5627c4b67946ea3176d7070a28b9a4751 100644 (file)
--- a/subst.c
+++ b/subst.c
@@ -387,10 +387,10 @@ dump_word_flags (flags)
       f &= ~W_ASSIGNARRAY;
       fprintf (stderr, "W_ASSIGNARRAY%s", f ? "|" : "");
     }
-  if (f & W_HASCTLESC)
+  if (f & W_SAWQUOTEDNULL)
     {
-      f &= ~W_HASCTLESC;
-      fprintf (stderr, "W_HASCTLESC%s", f ? "|" : "");
+      f &= ~W_SAWQUOTEDNULL;
+      fprintf (stderr, "W_SAWQUOTEDNULL%s", f ? "|" : "");
     }
   if (f & W_NOPROCSUB)
     {
@@ -1178,7 +1178,10 @@ string_extract_verbatim (string, slen, sindex, charlist, flags)
        }
 
 #if defined (HANDLE_MULTIBYTE)
-      mblength = MBLEN (string + i, slen - i);
+      if (locale_utf8locale && slen > i && UTF8_SINGLEBYTE (string[i]))
+       mblength = (string[i] != 0) ? 1 : 0;
+      else
+       mblength = MBLEN (string + i, slen - i);
       if (mblength > 1)
        {
          wchar_t wc;
@@ -3059,6 +3062,7 @@ do_compound_assignment (name, value, flags)
   SHELL_VAR *v;
   int mklocal, mkassoc, mkglobal, chklocal;
   WORD_LIST *list;
+  char *newname;       /* used for local nameref references */
 
   mklocal = flags & ASS_MKLOCAL;
   mkassoc = flags & ASS_MKASSOC;
@@ -3067,7 +3071,8 @@ do_compound_assignment (name, value, flags)
 
   if (mklocal && variable_context)
     {
-      v = find_variable (name);
+      v = find_variable (name);                /* follows namerefs */
+      newname = (v == 0) ? nameref_transform_name (name, flags) : v->name;
       if (v && ((readonly_p (v) && (flags & ASS_FORCE) == 0) || noassign_p (v)))
        {
          if (readonly_p (v))
@@ -3076,9 +3081,9 @@ do_compound_assignment (name, value, flags)
        }
       list = expand_compound_array_assignment (v, value, flags);
       if (mkassoc)
-       v = make_local_assoc_variable (name);
+       v = make_local_assoc_variable (newname, 0);
       else if (v == 0 || (array_p (v) == 0 && assoc_p (v) == 0) || v->context != variable_context)
-        v = make_local_array_variable (name, 0);
+        v = make_local_array_variable (newname, 0);
       if (v)
        assign_compound_array_list (v, list, flags);
       if (list)
@@ -3099,13 +3104,15 @@ do_compound_assignment (name, value, flags)
            err_readonly (name);
          return (v);   /* XXX */
        }
+      /* sanity check */
+      newname = (v == 0) ? nameref_transform_name (name, flags) : name;
       list = expand_compound_array_assignment (v, value, flags);
       if (v == 0 && mkassoc)
-       v = make_new_assoc_variable (name);
+       v = make_new_assoc_variable (newname);
       else if (v && mkassoc && assoc_p (v) == 0)
        v = convert_var_to_assoc (v);
       else if (v == 0)
-       v = make_new_array_variable (name);
+       v = make_new_array_variable (newname);
       else if (v && mkassoc == 0 && array_p (v) == 0)
        v = convert_var_to_array (v);
       if (v)
@@ -3896,15 +3903,17 @@ expand_string_for_pat (string, quoted, dollar_at_p, expanded_p)
 {
   WORD_DESC td;
   WORD_LIST *tresult;
+  int oexp;
 
   if (string == 0 || *string == '\0')
     return (WORD_LIST *)NULL;
 
+  oexp = expand_no_split_dollar_star;
   expand_no_split_dollar_star = 1;
   td.flags = W_NOSPLIT2;               /* no splitting, remove "" and '' */
   td.word = string;
   tresult = call_expand_word_internal (&td, quoted, 1, dollar_at_p, expanded_p);
-  expand_no_split_dollar_star = 0;
+  expand_no_split_dollar_star = oexp;
 
   return (tresult);
 }
@@ -6006,10 +6015,7 @@ read_comsub (fd, quoted, flags, rflag)
         from the rest of the word expansions (word splitting and globbing.)
         This is essentially quote_escapes inline. */
       else if (skip_ctlesc == 0 && c == CTLESC)
-       {
-         tflag |= W_HASCTLESC;
-         istring[istring_index++] = CTLESC;
-       }
+       istring[istring_index++] = CTLESC;
       else if ((skip_ctlnul == 0 && c == CTLNUL) || (c == ' ' && (ifs_value && *ifs_value == 0)))
        istring[istring_index++] = CTLESC;
 
@@ -6840,8 +6846,14 @@ parameter_brace_expand_rhs (name, value, op, quoted, pflags, qdollaratp, hasdoll
          temp = string_list_internal (l, " ");
          w->flags |= W_SPLITSPACE;
        }
+      else if (l_hasdollat || l->next)
+       temp = string_list_dollar_star (l, quoted, 0);
       else
-       temp = (l_hasdollat || l->next) ? string_list_dollar_star (l, quoted, 0) : string_list (l);
+       {
+         temp = string_list (l);
+         if (temp && (QUOTED_NULL (temp) == 0) && (l->word->flags & W_SAWQUOTEDNULL))
+           w->flags |= W_SAWQUOTEDNULL;        /* XXX */
+       }
 
       /* If we have a quoted null result (QUOTED_NULL(temp)) and the word is
         a quoted null (l->next == 0 && QUOTED_NULL(l->word->word)), the
@@ -7310,9 +7322,9 @@ get_var_and_type (varname, value, ind, quoted, flags, varp, valp)
          vtype = VT_VARIABLE;
          *varp = v;
          if (quoted & (Q_DOUBLE_QUOTES|Q_HERE_DOCUMENT))
-           *valp = dequote_string (value);
+           *valp = value ? dequote_string (value) : savestring ("");
          else
-           *valp = dequote_escapes (value);
+           *valp = value ? dequote_escapes (value) : (char *)NULL;
        }
       else
        {
@@ -7696,7 +7708,7 @@ parameter_brace_substring (varname, value, ind, substr, quoted, pflags, flags)
      int quoted, pflags, flags;
 {
   intmax_t e1, e2;
-  int vtype, r, starsub, qflags;
+  int vtype, r, starsub;
   char *temp, *val, *tt, *oname;
   SHELL_VAR *v;
 
@@ -7745,9 +7757,23 @@ parameter_brace_substring (varname, value, ind, substr, quoted, pflags, flags)
       FREE (tt);
       break;
     case VT_POSPARMS:
-      qflags = quoted;
-      tt = pos_params (varname, e1, e2, qflags);
-      /* string_list_dollar_at will quote the list if ifs_is_null != 0 */
+    case VT_ARRAYVAR:
+      if (vtype == VT_POSPARMS)
+       tt = pos_params (varname, e1, e2, quoted);
+#if defined (ARRAY_VARS)
+        /* assoc_subrange and array_subrange both call string_list_pos_params,
+          so we can treat this case just like VT_POSPARAMS. */
+      else if (assoc_p (v))
+       /* we convert to list and take first e2 elements starting at e1th
+          element -- officially undefined for now */   
+       tt = assoc_subrange (assoc_cell (v), e1, e2, starsub, quoted);
+      else
+       /* We want E2 to be the number of elements desired (arrays can be
+          sparse, so verify_substring_values just returns the numbers
+          specified and we rely on array_subrange to understand how to
+          deal with them). */
+       tt = array_subrange (array_cell (v), e1, e2, starsub, quoted);
+#endif
       /* We want to leave this alone in every case where pos_params/
         string_list_pos_params quotes the list members */
       if (tt && quoted == 0 && ifs_is_null)
@@ -7762,21 +7788,7 @@ parameter_brace_substring (varname, value, ind, substr, quoted, pflags, flags)
       else
        temp = tt;
       break;
-#if defined (ARRAY_VARS)
-    case VT_ARRAYVAR:
-      if (assoc_p (v))
-       /* we convert to list and take first e2 elements starting at e1th
-          element -- officially undefined for now */   
-       temp = assoc_subrange (assoc_cell (v), e1, e2, starsub, quoted);
-      else
-      /* We want E2 to be the number of elements desired (arrays can be sparse,
-        so verify_substring_values just returns the numbers specified and we
-        rely on array_subrange to understand how to deal with them). */
-       temp = array_subrange (array_cell (v), e1, e2, starsub, quoted);
-      /* array_subrange now calls array_quote_escapes as appropriate, so the
-        caller no longer needs to. */
-      break;
-#endif
+
     default:
       temp = (char *)NULL;
     }
@@ -7817,7 +7829,7 @@ pat_subst (string, pat, rep, mflags)
   int rptr, mtype, rxpand, mlen;
   size_t rsize, l, replen, rslen;
 
-  if (string  == 0)
+  if (string == 0)
     return (savestring (""));
 
   mtype = mflags & MATCH_TYPEMASK;
@@ -7968,7 +7980,7 @@ pos_params_pat_subst (string, pat, rep, mflags)
   qflags = (mflags & MATCH_QUOTED) == MATCH_QUOTED ? Q_DOUBLE_QUOTES : 0;
 
   /* If we are expanding in a context where word splitting will not be
-     performed, treat as quoted.  This changes how $* will be expanded. */
+     performed, treat as quoted. This changes how $* will be expanded. */
   if (pchar == '*' && (mflags & MATCH_ASSIGNRHS) && expand_no_split_dollar_star && ifs_is_null)
     qflags |= Q_DOUBLE_QUOTES;         /* Posix interp 888 */
 
@@ -8135,11 +8147,22 @@ parameter_brace_patsub (varname, value, ind, patsub, quoted, pflags, flags)
       if ((mflags & MATCH_STARSUB) && (mflags & MATCH_ASSIGNRHS) && ifs_is_null)
        mflags |= MATCH_QUOTED;         /* Posix interp 888 */
 
-      temp = assoc_p (v) ? assoc_patsub (assoc_cell (v), p, rep, mflags)
-                        : array_patsub (array_cell (v), p, rep, mflags);
-      /* Don't call quote_escapes anymore; array_patsub calls
-        array_quote_escapes as appropriate before adding the
-        space separators; ditto for assoc_patsub. */
+      /* these eventually call string_list_pos_params */
+      if (assoc_p (v))
+       temp = assoc_patsub (assoc_cell (v), p, rep, mflags);
+      else
+       temp = array_patsub (array_cell (v), p, rep, mflags);
+
+      if (temp && quoted == 0 && ifs_is_null)
+       {
+         /* Posix interp 888 */
+       }
+      else if (temp && (mflags & MATCH_QUOTED) == 0)
+       {
+         tt = quote_escapes (temp);
+         free (temp);
+         temp = tt;
+       }
       break;
 #endif
     }
@@ -8286,7 +8309,7 @@ parameter_brace_casemod (varname, value, ind, modspec, patspec, quoted, pflags,
        {
          /* Posix interp 888 */
        }
-      else if (temp && (mflags & MATCH_QUOTED)  == 0)
+      else if (temp && (mflags & MATCH_QUOTED) == 0)
        {
          tt = quote_escapes (temp);
          free (temp);
@@ -8304,9 +8327,18 @@ parameter_brace_casemod (varname, value, ind, modspec, patspec, quoted, pflags,
 
       temp = assoc_p (v) ? assoc_modcase (assoc_cell (v), pat, modop, mflags)
                         : array_modcase (array_cell (v), pat, modop, mflags);
-      /* Don't call quote_escapes; array_modcase calls array_quote_escapes
-        as appropriate before adding the space separators; ditto for
-        assoc_modcase. */
+
+      if (temp && quoted == 0 && ifs_is_null)
+       {
+         /* Posix interp 888 */
+       }
+      else if (temp && (mflags & MATCH_QUOTED) == 0)
+       {
+         tt = quote_escapes (temp);
+         free (temp);
+         temp = tt;
+       }
+
       break;
 #endif
     }
@@ -9870,6 +9902,8 @@ add_string:
 
          if (tword && (tword->flags & W_HASQUOTEDNULL))
            had_quoted_null = 1;                /* note for later */
+         if (tword && (tword->flags & W_SAWQUOTEDNULL))
+           had_quoted_null = 1;                /* XXX */
 
          temp = tword ? tword->word : (char *)NULL;
          dispose_word_desc (tword);
@@ -10146,6 +10180,9 @@ add_twochars:
          else
            temp = (char *)NULL;
 
+         if (temp == 0 && quoted_state == PARTIALLY_QUOTED)
+           had_quoted_null = 1;        /* note for later */
+
          /* We do not want to add quoted nulls to strings that are only
             partially quoted; we can throw them away.  The exception to
             this is when we are going to be performing word splitting,
@@ -10416,6 +10453,8 @@ finished_with_string:
            tword->word = istring;
          if (had_quoted_null && QUOTED_NULL (istring))
            tword->flags |= W_HASQUOTEDNULL;    /* XXX */
+         else if (had_quoted_null)
+           tword->flags |= W_SAWQUOTEDNULL;    /* XXX */
          if (tword->word != istring)
            free (istring);
          istring = 0;                  /* avoid later free() */
@@ -10596,9 +10635,14 @@ setifs (v)
     }
   else
     {
-      size_t ifs_len;
-      ifs_len = strnlen (ifs_value, MB_CUR_MAX);
-      ifs_firstc_len = MBLEN (ifs_value, ifs_len);
+      if (locale_utf8locale && UTF8_SINGLEBYTE (*ifs_value))
+       ifs_firstc_len = (*ifs_value != 0) ? 1 : 0;
+      else
+       {
+         size_t ifs_len;
+         ifs_len = strnlen (ifs_value, MB_CUR_MAX);
+         ifs_firstc_len = MBLEN (ifs_value, ifs_len);
+       }
       if (ifs_firstc_len == 1 || ifs_firstc_len == 0 || MB_INVALIDCH (ifs_firstc_len))
        {
          ifs_firstc[0] = ifs_value[0];
@@ -10649,10 +10693,24 @@ word_list_split (list)
      WORD_LIST *list;
 {
   WORD_LIST *result, *t, *tresult, *e;
+  WORD_DESC *w;
 
   for (t = list, result = (WORD_LIST *)NULL; t; t = t->next)
     {
       tresult = word_split (t->word, ifs_value);
+      /* POSIX 2.6: "If the complete expansion appropriate for a word results
+        in an empty field, that empty field shall be deleted from the list
+        of fields that form the completely expanded command, unless the
+        original word contained single-quote or double-quote characters."
+        This is where we handle these words that contain quoted null strings
+        and other characters that expand to nothing after word splitting. */
+      if (tresult == 0 && t->word && (t->word->flags & W_SAWQUOTEDNULL))       /* XXX */
+       {
+         w = alloc_word_desc ();
+         w->word = (char *)xmalloc (1);
+         w->word[0] = '\0';
+         tresult = make_word_list (w, (WORD_LIST *)NULL);
+       }
       if (result == 0)
         result = e = tresult;
       else
index f684a4d6d79099760635fb7099b0887d1ec26ab4..0289e0acf2b0ddce244e06cf32d2a1d9b032d83a 100644 (file)
@@ -4,11 +4,12 @@
 # documentation support: man2html
 # testing support: printenv recho zecho xcase
 #
-# bashbug lives here but is created by the top-level makefile
+# bashbug.sh lives here (created by configure), but bashbug is created by
+# the top-level makefile
 #
 # Currently only man2html is built
 #
-# Copyright (C) 1998-2009 Free Software Foundation, Inc.     
+# Copyright (C) 1998-2018 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
@@ -82,6 +83,6 @@ clean:
        $(RM) man2html$(EXEEXT) $(OBJ1)
 
 distclean maintainer-clean mostlyclean: clean
-       $(RM) bash.pc
+       $(RM) bash.pc bashbug.sh
 
 man2html.o: man2html.c
old mode 100644 (file)
new mode 100755 (executable)
index 770cb5c..883a671
@@ -1,8 +1,8 @@
 #! /bin/sh
 # Attempt to guess a canonical system name.
-#   Copyright 1992-2017 Free Software Foundation, Inc.
+#   Copyright 1992-2018 Free Software Foundation, Inc.
 
-timestamp='2017-12-17'
+timestamp='2018-05-19'
 
 # This file is free software; you can redistribute it and/or modify it
 # under the terms of the GNU General Public License as published by
@@ -50,7 +50,7 @@ version="\
 GNU config.guess ($timestamp)
 
 Originally written by Per Bothner.
-Copyright 1992-2017 Free Software Foundation, Inc.
+Copyright 1992-2018 Free Software Foundation, Inc.
 
 This is free software; see the source for copying conditions.  There is NO
 warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
@@ -106,10 +106,10 @@ trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ;
  { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ;
 dummy=$tmp/dummy ;
 tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ;
-case $CC_FOR_BUILD,$HOST_CC,$CC in
- ,,)    echo "int x;" > $dummy.c ;
+case ${CC_FOR_BUILD-},${HOST_CC-},${CC-} in
+ ,,)    echo "int x;" > "$dummy.c" ;
        for c in cc gcc c89 c99 ; do
-         if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then
+         if ($c -c -o "$dummy.o" "$dummy.c") >/dev/null 2>&1 ; then
             CC_FOR_BUILD="$c"; break ;
          fi ;
        done ;
@@ -132,14 +132,14 @@ UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
 UNAME_SYSTEM=`(uname -s) 2>/dev/null`  || UNAME_SYSTEM=unknown
 UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
 
-case "${UNAME_SYSTEM}" in
+case "$UNAME_SYSTEM" in
 Linux|GNU|GNU/*)
        # If the system lacks a compiler, then just pick glibc.
        # We could probably try harder.
        LIBC=gnu
 
-       eval $set_cc_for_build
-       cat <<-EOF > $dummy.c
+       eval "$set_cc_for_build"
+       cat <<-EOF > "$dummy.c"
        #include <features.h>
        #if defined(__UCLIBC__)
        LIBC=uclibc
@@ -149,13 +149,20 @@ Linux|GNU|GNU/*)
        LIBC=gnu
        #endif
        EOF
-       eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC' | sed 's, ,,g'`
+       eval "`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^LIBC' | sed 's, ,,g'`"
+
+       # If ldd exists, use it to detect musl libc.
+       if command -v ldd >/dev/null && \
+               ldd --version 2>&1 | grep -q ^musl
+       then
+           LIBC=musl
+       fi
        ;;
 esac
 
 # Note: order is significant - the case branches are not exclusive.
 
-case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
+case "$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in
     *:NetBSD:*:*)
        # NetBSD (nbsd) targets should (where applicable) match one or
        # more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*,
@@ -169,30 +176,30 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
        # portion of the name.  We always set it to "unknown".
        sysctl="sysctl -n hw.machine_arch"
        UNAME_MACHINE_ARCH=`(uname -p 2>/dev/null || \
-           /sbin/$sysctl 2>/dev/null || \
-           /usr/sbin/$sysctl 2>/dev/null || \
+           "/sbin/$sysctl" 2>/dev/null || \
+           "/usr/sbin/$sysctl" 2>/dev/null || \
            echo unknown)`
-       case "${UNAME_MACHINE_ARCH}" in
+       case "$UNAME_MACHINE_ARCH" in
            armeb) machine=armeb-unknown ;;
            arm*) machine=arm-unknown ;;
            sh3el) machine=shl-unknown ;;
            sh3eb) machine=sh-unknown ;;
            sh5el) machine=sh5le-unknown ;;
            earmv*)
-               arch=`echo ${UNAME_MACHINE_ARCH} | sed -e 's,^e\(armv[0-9]\).*$,\1,'`
-               endian=`echo ${UNAME_MACHINE_ARCH} | sed -ne 's,^.*\(eb\)$,\1,p'`
-               machine=${arch}${endian}-unknown
+               arch=`echo "$UNAME_MACHINE_ARCH" | sed -e 's,^e\(armv[0-9]\).*$,\1,'`
+               endian=`echo "$UNAME_MACHINE_ARCH" | sed -ne 's,^.*\(eb\)$,\1,p'`
+               machine="${arch}${endian}"-unknown
                ;;
-           *) machine=${UNAME_MACHINE_ARCH}-unknown ;;
+           *) machine="$UNAME_MACHINE_ARCH"-unknown ;;
        esac
        # The Operating System including object format, if it has switched
        # to ELF recently (or will in the future) and ABI.
-       case "${UNAME_MACHINE_ARCH}" in
+       case "$UNAME_MACHINE_ARCH" in
            earm*)
                os=netbsdelf
                ;;
            arm*|i386|m68k|ns32k|sh3*|sparc|vax)
-               eval $set_cc_for_build
+               eval "$set_cc_for_build"
                if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \
                        | grep -q __ELF__
                then
@@ -208,10 +215,10 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
                ;;
        esac
        # Determine ABI tags.
-       case "${UNAME_MACHINE_ARCH}" in
+       case "$UNAME_MACHINE_ARCH" in
            earm*)
                expr='s/^earmv[0-9]/-eabi/;s/eb$//'
-               abi=`echo ${UNAME_MACHINE_ARCH} | sed -e "$expr"`
+               abi=`echo "$UNAME_MACHINE_ARCH" | sed -e "$expr"`
                ;;
        esac
        # The OS release
@@ -219,51 +226,51 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
        # thus, need a distinct triplet. However, they do not need
        # kernel version information, so it can be replaced with a
        # suitable tag, in the style of linux-gnu.
-       case "${UNAME_VERSION}" in
+       case "$UNAME_VERSION" in
            Debian*)
                release='-gnu'
                ;;
            *)
-               release=`echo ${UNAME_RELEASE} | sed -e 's/[-_].*//' | cut -d. -f1,2`
+               release=`echo "$UNAME_RELEASE" | sed -e 's/[-_].*//' | cut -d. -f1,2`
                ;;
        esac
        # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM:
        # contains redundant information, the shorter form:
        # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
-       echo "${machine}-${os}${release}${abi}"
+       echo "$machine-${os}${release}${abi-}"
        exit ;;
     *:Bitrig:*:*)
        UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'`
-       echo ${UNAME_MACHINE_ARCH}-unknown-bitrig${UNAME_RELEASE}
+       echo "$UNAME_MACHINE_ARCH"-unknown-bitrig"$UNAME_RELEASE"
        exit ;;
     *:OpenBSD:*:*)
        UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'`
-       echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE}
+       echo "$UNAME_MACHINE_ARCH"-unknown-openbsd"$UNAME_RELEASE"
        exit ;;
     *:LibertyBSD:*:*)
        UNAME_MACHINE_ARCH=`arch | sed 's/^.*BSD\.//'`
-       echo ${UNAME_MACHINE_ARCH}-unknown-libertybsd${UNAME_RELEASE}
+       echo "$UNAME_MACHINE_ARCH"-unknown-libertybsd"$UNAME_RELEASE"
        exit ;;
     *:MidnightBSD:*:*)
-       echo ${UNAME_MACHINE}-unknown-midnightbsd${UNAME_RELEASE}
+       echo "$UNAME_MACHINE"-unknown-midnightbsd"$UNAME_RELEASE"
        exit ;;
     *:ekkoBSD:*:*)
-       echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE}
+       echo "$UNAME_MACHINE"-unknown-ekkobsd"$UNAME_RELEASE"
        exit ;;
     *:SolidBSD:*:*)
-       echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE}
+       echo "$UNAME_MACHINE"-unknown-solidbsd"$UNAME_RELEASE"
        exit ;;
     macppc:MirBSD:*:*)
-       echo powerpc-unknown-mirbsd${UNAME_RELEASE}
+       echo powerpc-unknown-mirbsd"$UNAME_RELEASE"
        exit ;;
     *:MirBSD:*:*)
-       echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE}
+       echo "$UNAME_MACHINE"-unknown-mirbsd"$UNAME_RELEASE"
        exit ;;
     *:Sortix:*:*)
-       echo ${UNAME_MACHINE}-unknown-sortix
+       echo "$UNAME_MACHINE"-unknown-sortix
        exit ;;
     *:Redox:*:*)
-       echo ${UNAME_MACHINE}-unknown-redox
+       echo "$UNAME_MACHINE"-unknown-redox
        exit ;;
     mips:OSF1:*.*)
         echo mips-dec-osf1
@@ -319,7 +326,7 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
        # A Tn.n version is a released field test version.
        # A Xn.n version is an unreleased experimental baselevel.
        # 1.2 uses "1.2" for uname -r.
-       echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz`
+       echo "$UNAME_MACHINE"-dec-osf"`echo "$UNAME_RELEASE" | sed -e 's/^[PVTX]//' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz`"
        # Reset EXIT trap before exiting to avoid spurious non-zero exit code.
        exitcode=$?
        trap '' 0
@@ -328,10 +335,10 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
        echo m68k-unknown-sysv4
        exit ;;
     *:[Aa]miga[Oo][Ss]:*:*)
-       echo ${UNAME_MACHINE}-unknown-amigaos
+       echo "$UNAME_MACHINE"-unknown-amigaos
        exit ;;
     *:[Mm]orph[Oo][Ss]:*:*)
-       echo ${UNAME_MACHINE}-unknown-morphos
+       echo "$UNAME_MACHINE"-unknown-morphos
        exit ;;
     *:OS/390:*:*)
        echo i370-ibm-openedition
@@ -343,7 +350,7 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
        echo powerpc-ibm-os400
        exit ;;
     arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
-       echo arm-acorn-riscix${UNAME_RELEASE}
+       echo arm-acorn-riscix"$UNAME_RELEASE"
        exit ;;
     arm*:riscos:*:*|arm*:RISCOS:*:*)
        echo arm-unknown-riscos
@@ -370,19 +377,19 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
            sparc) echo sparc-icl-nx7; exit ;;
        esac ;;
     s390x:SunOS:*:*)
-       echo ${UNAME_MACHINE}-ibm-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+       echo "$UNAME_MACHINE"-ibm-solaris2"`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`"
        exit ;;
     sun4H:SunOS:5.*:*)
-       echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+       echo sparc-hal-solaris2"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`"
        exit ;;
     sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
-       echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+       echo sparc-sun-solaris2"`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`"
        exit ;;
     i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*)
-       echo i386-pc-auroraux${UNAME_RELEASE}
+       echo i386-pc-auroraux"$UNAME_RELEASE"
        exit ;;
     i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*)
-       eval $set_cc_for_build
+       eval "$set_cc_for_build"
        SUN_ARCH=i386
        # If there is a compiler, see if it is configured for 64-bit objects.
        # Note that the Sun cc does not turn __LP64__ into 1 like gcc does.
@@ -395,13 +402,13 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
                SUN_ARCH=x86_64
            fi
        fi
-       echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+       echo "$SUN_ARCH"-pc-solaris2"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`"
        exit ;;
     sun4*:SunOS:6*:*)
        # According to config.sub, this is the proper way to canonicalize
        # SunOS6.  Hard to guess exactly what SunOS6 will be like, but
        # it's likely to be more like Solaris than SunOS4.
-       echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+       echo sparc-sun-solaris3"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`"
        exit ;;
     sun4*:SunOS:*:*)
        case "`/usr/bin/arch -k`" in
@@ -410,25 +417,25 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
                ;;
        esac
        # Japanese Language versions have a version number like `4.1.3-JL'.
-       echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'`
+       echo sparc-sun-sunos"`echo "$UNAME_RELEASE"|sed -e 's/-/_/'`"
        exit ;;
     sun3*:SunOS:*:*)
-       echo m68k-sun-sunos${UNAME_RELEASE}
+       echo m68k-sun-sunos"$UNAME_RELEASE"
        exit ;;
     sun*:*:4.2BSD:*)
        UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null`
-       test "x${UNAME_RELEASE}" = x && UNAME_RELEASE=3
+       test "x$UNAME_RELEASE" = x && UNAME_RELEASE=3
        case "`/bin/arch`" in
            sun3)
-               echo m68k-sun-sunos${UNAME_RELEASE}
+               echo m68k-sun-sunos"$UNAME_RELEASE"
                ;;
            sun4)
-               echo sparc-sun-sunos${UNAME_RELEASE}
+               echo sparc-sun-sunos"$UNAME_RELEASE"
                ;;
        esac
        exit ;;
     aushp:SunOS:*:*)
-       echo sparc-auspex-sunos${UNAME_RELEASE}
+       echo sparc-auspex-sunos"$UNAME_RELEASE"
        exit ;;
     # The situation for MiNT is a little confusing.  The machine name
     # can be virtually everything (everything which is not
@@ -439,44 +446,44 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
     # MiNT.  But MiNT is downward compatible to TOS, so this should
     # be no problem.
     atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*)
-       echo m68k-atari-mint${UNAME_RELEASE}
+       echo m68k-atari-mint"$UNAME_RELEASE"
        exit ;;
     atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*)
-       echo m68k-atari-mint${UNAME_RELEASE}
+       echo m68k-atari-mint"$UNAME_RELEASE"
        exit ;;
     *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*)
-       echo m68k-atari-mint${UNAME_RELEASE}
+       echo m68k-atari-mint"$UNAME_RELEASE"
        exit ;;
     milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*)
-       echo m68k-milan-mint${UNAME_RELEASE}
+       echo m68k-milan-mint"$UNAME_RELEASE"
        exit ;;
     hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*)
-       echo m68k-hades-mint${UNAME_RELEASE}
+       echo m68k-hades-mint"$UNAME_RELEASE"
        exit ;;
     *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
-       echo m68k-unknown-mint${UNAME_RELEASE}
+       echo m68k-unknown-mint"$UNAME_RELEASE"
        exit ;;
     m68k:machten:*:*)
-       echo m68k-apple-machten${UNAME_RELEASE}
+       echo m68k-apple-machten"$UNAME_RELEASE"
        exit ;;
     powerpc:machten:*:*)
-       echo powerpc-apple-machten${UNAME_RELEASE}
+       echo powerpc-apple-machten"$UNAME_RELEASE"
        exit ;;
     RISC*:Mach:*:*)
        echo mips-dec-mach_bsd4.3
        exit ;;
     RISC*:ULTRIX:*:*)
-       echo mips-dec-ultrix${UNAME_RELEASE}
+       echo mips-dec-ultrix"$UNAME_RELEASE"
        exit ;;
     VAX*:ULTRIX*:*:*)
-       echo vax-dec-ultrix${UNAME_RELEASE}
+       echo vax-dec-ultrix"$UNAME_RELEASE"
        exit ;;
     2020:CLIX:*:* | 2430:CLIX:*:*)
-       echo clipper-intergraph-clix${UNAME_RELEASE}
+       echo clipper-intergraph-clix"$UNAME_RELEASE"
        exit ;;
     mips:*:*:UMIPS | mips:*:*:RISCos)
-       eval $set_cc_for_build
-       sed 's/^        //' << EOF >$dummy.c
+       eval "$set_cc_for_build"
+       sed 's/^        //' << EOF > "$dummy.c"
 #ifdef __cplusplus
 #include <stdio.h>  /* for printf() prototype */
        int main (int argc, char *argv[]) {
@@ -497,11 +504,11 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
          exit (-1);
        }
 EOF
-       $CC_FOR_BUILD -o $dummy $dummy.c &&
-         dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` &&
-         SYSTEM_NAME=`$dummy $dummyarg` &&
+       $CC_FOR_BUILD -o "$dummy" "$dummy.c" &&
+         dummyarg=`echo "$UNAME_RELEASE" | sed -n 's/\([0-9]*\).*/\1/p'` &&
+         SYSTEM_NAME=`"$dummy" "$dummyarg"` &&
            { echo "$SYSTEM_NAME"; exit; }
-       echo mips-mips-riscos${UNAME_RELEASE}
+       echo mips-mips-riscos"$UNAME_RELEASE"
        exit ;;
     Motorola:PowerMAX_OS:*:*)
        echo powerpc-motorola-powermax
@@ -527,17 +534,17 @@ EOF
     AViiON:dgux:*:*)
        # DG/UX returns AViiON for all architectures
        UNAME_PROCESSOR=`/usr/bin/uname -p`
-       if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ]
+       if [ "$UNAME_PROCESSOR" = mc88100 ] || [ "$UNAME_PROCESSOR" = mc88110 ]
        then
-           if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \
-              [ ${TARGET_BINARY_INTERFACE}x = x ]
+           if [ "$TARGET_BINARY_INTERFACE"x = m88kdguxelfx ] || \
+              [ "$TARGET_BINARY_INTERFACE"x = x ]
            then
-               echo m88k-dg-dgux${UNAME_RELEASE}
+               echo m88k-dg-dgux"$UNAME_RELEASE"
            else
-               echo m88k-dg-dguxbcs${UNAME_RELEASE}
+               echo m88k-dg-dguxbcs"$UNAME_RELEASE"
            fi
        else
-           echo i586-dg-dgux${UNAME_RELEASE}
+           echo i586-dg-dgux"$UNAME_RELEASE"
        fi
        exit ;;
     M88*:DolphinOS:*:*)        # DolphinOS (SVR3)
@@ -554,7 +561,7 @@ EOF
        echo m68k-tektronix-bsd
        exit ;;
     *:IRIX*:*:*)
-       echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'`
+       echo mips-sgi-irix"`echo "$UNAME_RELEASE"|sed -e 's/-/_/g'`"
        exit ;;
     ????????:AIX?:[12].1:2)   # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX.
        echo romp-ibm-aix     # uname -m gives an 8 hex-code CPU id
@@ -566,14 +573,14 @@ EOF
        if [ -x /usr/bin/oslevel ] ; then
                IBM_REV=`/usr/bin/oslevel`
        else
-               IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
+               IBM_REV="$UNAME_VERSION.$UNAME_RELEASE"
        fi
-       echo ${UNAME_MACHINE}-ibm-aix${IBM_REV}
+       echo "$UNAME_MACHINE"-ibm-aix"$IBM_REV"
        exit ;;
     *:AIX:2:3)
        if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then
-               eval $set_cc_for_build
-               sed 's/^                //' << EOF >$dummy.c
+               eval "$set_cc_for_build"
+               sed 's/^                //' << EOF > "$dummy.c"
                #include <sys/systemcfg.h>
 
                main()
@@ -584,7 +591,7 @@ EOF
                        exit(0);
                        }
 EOF
-               if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy`
+               if $CC_FOR_BUILD -o "$dummy" "$dummy.c" && SYSTEM_NAME=`"$dummy"`
                then
                        echo "$SYSTEM_NAME"
                else
@@ -598,7 +605,7 @@ EOF
        exit ;;
     *:AIX:*:[4567])
        IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'`
-       if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then
+       if /usr/sbin/lsattr -El "$IBM_CPU_ID" | grep ' POWER' >/dev/null 2>&1; then
                IBM_ARCH=rs6000
        else
                IBM_ARCH=powerpc
@@ -607,9 +614,9 @@ EOF
                IBM_REV=`/usr/bin/lslpp -Lqc bos.rte.libc |
                           awk -F: '{ print $3 }' | sed s/[0-9]*$/0/`
        else
-               IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
+               IBM_REV="$UNAME_VERSION.$UNAME_RELEASE"
        fi
-       echo ${IBM_ARCH}-ibm-aix${IBM_REV}
+       echo "$IBM_ARCH"-ibm-aix"$IBM_REV"
        exit ;;
     *:AIX:*:*)
        echo rs6000-ibm-aix
@@ -618,7 +625,7 @@ EOF
        echo romp-ibm-bsd4.4
        exit ;;
     ibmrt:*BSD:*|romp-ibm:BSD:*)            # covers RT/PC BSD and
-       echo romp-ibm-bsd${UNAME_RELEASE}   # 4.3 with uname added to
+       echo romp-ibm-bsd"$UNAME_RELEASE"   # 4.3 with uname added to
        exit ;;                             # report: romp-ibm BSD 4.3
     *:BOSX:*:*)
        echo rs6000-bull-bosx
@@ -633,28 +640,28 @@ EOF
        echo m68k-hp-bsd4.4
        exit ;;
     9000/[34678]??:HP-UX:*:*)
-       HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
-       case "${UNAME_MACHINE}" in
+       HPUX_REV=`echo "$UNAME_RELEASE"|sed -e 's/[^.]*.[0B]*//'`
+       case "$UNAME_MACHINE" in
            9000/31?)            HP_ARCH=m68000 ;;
            9000/[34]??)         HP_ARCH=m68k ;;
            9000/[678][0-9][0-9])
                if [ -x /usr/bin/getconf ]; then
                    sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null`
                    sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`
-                   case "${sc_cpu_version}" in
+                   case "$sc_cpu_version" in
                      523) HP_ARCH=hppa1.0 ;; # CPU_PA_RISC1_0
                      528) HP_ARCH=hppa1.1 ;; # CPU_PA_RISC1_1
                      532)                      # CPU_PA_RISC2_0
-                       case "${sc_kernel_bits}" in
+                       case "$sc_kernel_bits" in
                          32) HP_ARCH=hppa2.0n ;;
                          64) HP_ARCH=hppa2.0w ;;
                          '') HP_ARCH=hppa2.0 ;;   # HP-UX 10.20
                        esac ;;
                    esac
                fi
-               if [ "${HP_ARCH}" = "" ]; then
-                   eval $set_cc_for_build
-                   sed 's/^            //' << EOF >$dummy.c
+               if [ "$HP_ARCH" = "" ]; then
+                   eval "$set_cc_for_build"
+                   sed 's/^            //' << EOF > "$dummy.c"
 
                #define _HPUX_SOURCE
                #include <stdlib.h>
@@ -687,13 +694,13 @@ EOF
                    exit (0);
                }
 EOF
-                   (CCOPTS="" $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy`
+                   (CCOPTS="" $CC_FOR_BUILD -o "$dummy" "$dummy.c" 2>/dev/null) && HP_ARCH=`"$dummy"`
                    test -z "$HP_ARCH" && HP_ARCH=hppa
                fi ;;
        esac
-       if [ ${HP_ARCH} = hppa2.0w ]
+       if [ "$HP_ARCH" = hppa2.0w ]
        then
-           eval $set_cc_for_build
+           eval "$set_cc_for_build"
 
            # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating
            # 32-bit code.  hppa64-hp-hpux* has the same kernel and a compiler
@@ -712,15 +719,15 @@ EOF
                HP_ARCH=hppa64
            fi
        fi
-       echo ${HP_ARCH}-hp-hpux${HPUX_REV}
+       echo "$HP_ARCH"-hp-hpux"$HPUX_REV"
        exit ;;
     ia64:HP-UX:*:*)
-       HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
-       echo ia64-hp-hpux${HPUX_REV}
+       HPUX_REV=`echo "$UNAME_RELEASE"|sed -e 's/[^.]*.[0B]*//'`
+       echo ia64-hp-hpux"$HPUX_REV"
        exit ;;
     3050*:HI-UX:*:*)
-       eval $set_cc_for_build
-       sed 's/^        //' << EOF >$dummy.c
+       eval "$set_cc_for_build"
+       sed 's/^        //' << EOF > "$dummy.c"
        #include <unistd.h>
        int
        main ()
@@ -745,7 +752,7 @@ EOF
          exit (0);
        }
 EOF
-       $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` &&
+       $CC_FOR_BUILD -o "$dummy" "$dummy.c" && SYSTEM_NAME=`"$dummy"` &&
                { echo "$SYSTEM_NAME"; exit; }
        echo unknown-hitachi-hiuxwe2
        exit ;;
@@ -766,9 +773,9 @@ EOF
        exit ;;
     i*86:OSF1:*:*)
        if [ -x /usr/sbin/sysversion ] ; then
-           echo ${UNAME_MACHINE}-unknown-osf1mk
+           echo "$UNAME_MACHINE"-unknown-osf1mk
        else
-           echo ${UNAME_MACHINE}-unknown-osf1
+           echo "$UNAME_MACHINE"-unknown-osf1
        fi
        exit ;;
     parisc*:Lites*:*:*)
@@ -793,109 +800,109 @@ EOF
        echo c4-convex-bsd
        exit ;;
     CRAY*Y-MP:*:*:*)
-       echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+       echo ymp-cray-unicos"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'
        exit ;;
     CRAY*[A-Z]90:*:*:*)
-       echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \
+       echo "$UNAME_MACHINE"-cray-unicos"$UNAME_RELEASE" \
        | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \
              -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \
              -e 's/\.[^.]*$/.X/'
        exit ;;
     CRAY*TS:*:*:*)
-       echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+       echo t90-cray-unicos"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'
        exit ;;
     CRAY*T3E:*:*:*)
-       echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+       echo alphaev5-cray-unicosmk"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'
        exit ;;
     CRAY*SV1:*:*:*)
-       echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+       echo sv1-cray-unicos"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'
        exit ;;
     *:UNICOS/mp:*:*)
-       echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+       echo craynv-cray-unicosmp"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'
        exit ;;
     F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)
        FUJITSU_PROC=`uname -m | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz`
        FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'`
-       FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
+       FUJITSU_REL=`echo "$UNAME_RELEASE" | sed -e 's/ /_/'`
        echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
        exit ;;
     5000:UNIX_System_V:4.*:*)
        FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'`
-       FUJITSU_REL=`echo ${UNAME_RELEASE} | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/ /_/'`
+       FUJITSU_REL=`echo "$UNAME_RELEASE" | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/ /_/'`
        echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
        exit ;;
     i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
-       echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE}
+       echo "$UNAME_MACHINE"-pc-bsdi"$UNAME_RELEASE"
        exit ;;
     sparc*:BSD/OS:*:*)
-       echo sparc-unknown-bsdi${UNAME_RELEASE}
+       echo sparc-unknown-bsdi"$UNAME_RELEASE"
        exit ;;
     *:BSD/OS:*:*)
-       echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE}
+       echo "$UNAME_MACHINE"-unknown-bsdi"$UNAME_RELEASE"
        exit ;;
     *:FreeBSD:*:*)
        UNAME_PROCESSOR=`/usr/bin/uname -p`
-       case ${UNAME_PROCESSOR} in
+       case "$UNAME_PROCESSOR" in
            amd64)
                UNAME_PROCESSOR=x86_64 ;;
            i386)
                UNAME_PROCESSOR=i586 ;;
        esac
-       echo ${UNAME_PROCESSOR}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
+       echo "$UNAME_PROCESSOR"-unknown-freebsd"`echo "$UNAME_RELEASE"|sed -e 's/[-(].*//'`"
        exit ;;
     i*:CYGWIN*:*)
-       echo ${UNAME_MACHINE}-pc-cygwin
+       echo "$UNAME_MACHINE"-pc-cygwin
        exit ;;
     *:MINGW64*:*)
-       echo ${UNAME_MACHINE}-pc-mingw64
+       echo "$UNAME_MACHINE"-pc-mingw64
        exit ;;
     *:MINGW*:*)
-       echo ${UNAME_MACHINE}-pc-mingw32
+       echo "$UNAME_MACHINE"-pc-mingw32
        exit ;;
     *:MSYS*:*)
-       echo ${UNAME_MACHINE}-pc-msys
+       echo "$UNAME_MACHINE"-pc-msys
        exit ;;
     i*:PW*:*)
-       echo ${UNAME_MACHINE}-pc-pw32
+       echo "$UNAME_MACHINE"-pc-pw32
        exit ;;
     *:Interix*:*)
-       case ${UNAME_MACHINE} in
+       case "$UNAME_MACHINE" in
            x86)
-               echo i586-pc-interix${UNAME_RELEASE}
+               echo i586-pc-interix"$UNAME_RELEASE"
                exit ;;
            authenticamd | genuineintel | EM64T)
-               echo x86_64-unknown-interix${UNAME_RELEASE}
+               echo x86_64-unknown-interix"$UNAME_RELEASE"
                exit ;;
            IA64)
-               echo ia64-unknown-interix${UNAME_RELEASE}
+               echo ia64-unknown-interix"$UNAME_RELEASE"
                exit ;;
        esac ;;
     i*:UWIN*:*)
-       echo ${UNAME_MACHINE}-pc-uwin
+       echo "$UNAME_MACHINE"-pc-uwin
        exit ;;
     amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*)
        echo x86_64-unknown-cygwin
        exit ;;
     prep*:SunOS:5.*:*)
-       echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+       echo powerpcle-unknown-solaris2"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`"
        exit ;;
     *:GNU:*:*)
        # the GNU system
-       echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-${LIBC}`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
+       echo "`echo "$UNAME_MACHINE"|sed -e 's,[-/].*$,,'`-unknown-$LIBC`echo "$UNAME_RELEASE"|sed -e 's,/.*$,,'`"
        exit ;;
     *:GNU/*:*:*)
        # other systems with GNU libc and userland
-       echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr "[:upper:]" "[:lower:]"``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-${LIBC}
+       echo "$UNAME_MACHINE-unknown-`echo "$UNAME_SYSTEM" | sed 's,^[^/]*/,,' | tr "[:upper:]" "[:lower:]"``echo "$UNAME_RELEASE"|sed -e 's/[-(].*//'`-$LIBC"
        exit ;;
     i*86:Minix:*:*)
-       echo ${UNAME_MACHINE}-pc-minix
+       echo "$UNAME_MACHINE"-pc-minix
        exit ;;
     aarch64:Linux:*:*)
-       echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+       echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
        exit ;;
     aarch64_be:Linux:*:*)
        UNAME_MACHINE=aarch64_be
-       echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+       echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
        exit ;;
     alpha:Linux:*:*)
        case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
@@ -909,63 +916,63 @@ EOF
        esac
        objdump --private-headers /bin/sh | grep -q ld.so.1
        if test "$?" = 0 ; then LIBC=gnulibc1 ; fi
-       echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+       echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
        exit ;;
     arc:Linux:*:* | arceb:Linux:*:*)
-       echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+       echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
        exit ;;
     arm*:Linux:*:*)
-       eval $set_cc_for_build
+       eval "$set_cc_for_build"
        if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \
            | grep -q __ARM_EABI__
        then
-           echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+           echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
        else
            if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \
                | grep -q __ARM_PCS_VFP
            then
-               echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabi
+               echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"eabi
            else
-               echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabihf
+               echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"eabihf
            fi
        fi
        exit ;;
     avr32*:Linux:*:*)
-       echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+       echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
        exit ;;
     cris:Linux:*:*)
-       echo ${UNAME_MACHINE}-axis-linux-${LIBC}
+       echo "$UNAME_MACHINE"-axis-linux-"$LIBC"
        exit ;;
     crisv32:Linux:*:*)
-       echo ${UNAME_MACHINE}-axis-linux-${LIBC}
+       echo "$UNAME_MACHINE"-axis-linux-"$LIBC"
        exit ;;
     e2k:Linux:*:*)
-       echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+       echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
        exit ;;
     frv:Linux:*:*)
-       echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+       echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
        exit ;;
     hexagon:Linux:*:*)
-       echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+       echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
        exit ;;
     i*86:Linux:*:*)
-       echo ${UNAME_MACHINE}-pc-linux-${LIBC}
+       echo "$UNAME_MACHINE"-pc-linux-"$LIBC"
        exit ;;
     ia64:Linux:*:*)
-       echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+       echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
        exit ;;
     k1om:Linux:*:*)
-       echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+       echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
        exit ;;
     m32r*:Linux:*:*)
-       echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+       echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
        exit ;;
     m68*:Linux:*:*)
-       echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+       echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
        exit ;;
     mips:Linux:*:* | mips64:Linux:*:*)
-       eval $set_cc_for_build
-       sed 's/^        //' << EOF >$dummy.c
+       eval "$set_cc_for_build"
+       sed 's/^        //' << EOF > "$dummy.c"
        #undef CPU
        #undef ${UNAME_MACHINE}
        #undef ${UNAME_MACHINE}el
@@ -979,70 +986,70 @@ EOF
        #endif
        #endif
 EOF
-       eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'`
-       test x"${CPU}" != x && { echo "${CPU}-unknown-linux-${LIBC}"; exit; }
+       eval "`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^CPU'`"
+       test "x$CPU" != x && { echo "$CPU-unknown-linux-$LIBC"; exit; }
        ;;
     mips64el:Linux:*:*)
-       echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+       echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
        exit ;;
     openrisc*:Linux:*:*)
-       echo or1k-unknown-linux-${LIBC}
+       echo or1k-unknown-linux-"$LIBC"
        exit ;;
     or32:Linux:*:* | or1k*:Linux:*:*)
-       echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+       echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
        exit ;;
     padre:Linux:*:*)
-       echo sparc-unknown-linux-${LIBC}
+       echo sparc-unknown-linux-"$LIBC"
        exit ;;
     parisc64:Linux:*:* | hppa64:Linux:*:*)
-       echo hppa64-unknown-linux-${LIBC}
+       echo hppa64-unknown-linux-"$LIBC"
        exit ;;
     parisc:Linux:*:* | hppa:Linux:*:*)
        # Look for CPU level
        case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
-         PA7*) echo hppa1.1-unknown-linux-${LIBC} ;;
-         PA8*) echo hppa2.0-unknown-linux-${LIBC} ;;
-         *)    echo hppa-unknown-linux-${LIBC} ;;
+         PA7*) echo hppa1.1-unknown-linux-"$LIBC" ;;
+         PA8*) echo hppa2.0-unknown-linux-"$LIBC" ;;
+         *)    echo hppa-unknown-linux-"$LIBC" ;;
        esac
        exit ;;
     ppc64:Linux:*:*)
-       echo powerpc64-unknown-linux-${LIBC}
+       echo powerpc64-unknown-linux-"$LIBC"
        exit ;;
     ppc:Linux:*:*)
-       echo powerpc-unknown-linux-${LIBC}
+       echo powerpc-unknown-linux-"$LIBC"
        exit ;;
     ppc64le:Linux:*:*)
-       echo powerpc64le-unknown-linux-${LIBC}
+       echo powerpc64le-unknown-linux-"$LIBC"
        exit ;;
     ppcle:Linux:*:*)
-       echo powerpcle-unknown-linux-${LIBC}
+       echo powerpcle-unknown-linux-"$LIBC"
        exit ;;
     riscv32:Linux:*:* | riscv64:Linux:*:*)
-       echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+       echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
        exit ;;
     s390:Linux:*:* | s390x:Linux:*:*)
-       echo ${UNAME_MACHINE}-ibm-linux-${LIBC}
+       echo "$UNAME_MACHINE"-ibm-linux-"$LIBC"
        exit ;;
     sh64*:Linux:*:*)
-       echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+       echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
        exit ;;
     sh*:Linux:*:*)
-       echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+       echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
        exit ;;
     sparc:Linux:*:* | sparc64:Linux:*:*)
-       echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+       echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
        exit ;;
     tile*:Linux:*:*)
-       echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+       echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
        exit ;;
     vax:Linux:*:*)
-       echo ${UNAME_MACHINE}-dec-linux-${LIBC}
+       echo "$UNAME_MACHINE"-dec-linux-"$LIBC"
        exit ;;
     x86_64:Linux:*:*)
-       echo ${UNAME_MACHINE}-pc-linux-${LIBC}
+       echo "$UNAME_MACHINE"-pc-linux-"$LIBC"
        exit ;;
     xtensa*:Linux:*:*)
-       echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+       echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
        exit ;;
     i*86:DYNIX/ptx:4*:*)
        # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
@@ -1056,34 +1063,34 @@ EOF
        # I am not positive that other SVR4 systems won't match this,
        # I just have to hope.  -- rms.
        # Use sysv4.2uw... so that sysv4* matches it.
-       echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION}
+       echo "$UNAME_MACHINE"-pc-sysv4.2uw"$UNAME_VERSION"
        exit ;;
     i*86:OS/2:*:*)
        # If we were able to find `uname', then EMX Unix compatibility
        # is probably installed.
-       echo ${UNAME_MACHINE}-pc-os2-emx
+       echo "$UNAME_MACHINE"-pc-os2-emx
        exit ;;
     i*86:XTS-300:*:STOP)
-       echo ${UNAME_MACHINE}-unknown-stop
+       echo "$UNAME_MACHINE"-unknown-stop
        exit ;;
     i*86:atheos:*:*)
-       echo ${UNAME_MACHINE}-unknown-atheos
+       echo "$UNAME_MACHINE"-unknown-atheos
        exit ;;
     i*86:syllable:*:*)
-       echo ${UNAME_MACHINE}-pc-syllable
+       echo "$UNAME_MACHINE"-pc-syllable
        exit ;;
     i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*)
-       echo i386-unknown-lynxos${UNAME_RELEASE}
+       echo i386-unknown-lynxos"$UNAME_RELEASE"
        exit ;;
     i*86:*DOS:*:*)
-       echo ${UNAME_MACHINE}-pc-msdosdjgpp
+       echo "$UNAME_MACHINE"-pc-msdosdjgpp
        exit ;;
     i*86:*:4.*:*)
-       UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'`
+       UNAME_REL=`echo "$UNAME_RELEASE" | sed 's/\/MP$//'`
        if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then
-               echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL}
+               echo "$UNAME_MACHINE"-univel-sysv"$UNAME_REL"
        else
-               echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL}
+               echo "$UNAME_MACHINE"-pc-sysv"$UNAME_REL"
        fi
        exit ;;
     i*86:*:5:[678]*)
@@ -1093,12 +1100,12 @@ EOF
            *Pentium)        UNAME_MACHINE=i586 ;;
            *Pent*|*Celeron) UNAME_MACHINE=i686 ;;
        esac
-       echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION}
+       echo "$UNAME_MACHINE-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}{$UNAME_VERSION}"
        exit ;;
     i*86:*:3.2:*)
        if test -f /usr/options/cb.name; then
                UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name`
-               echo ${UNAME_MACHINE}-pc-isc$UNAME_REL
+               echo "$UNAME_MACHINE"-pc-isc"$UNAME_REL"
        elif /bin/uname -X 2>/dev/null >/dev/null ; then
                UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')`
                (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486
@@ -1108,9 +1115,9 @@ EOF
                        && UNAME_MACHINE=i686
                (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \
                        && UNAME_MACHINE=i686
-               echo ${UNAME_MACHINE}-pc-sco$UNAME_REL
+               echo "$UNAME_MACHINE"-pc-sco"$UNAME_REL"
        else
-               echo ${UNAME_MACHINE}-pc-sysv32
+               echo "$UNAME_MACHINE"-pc-sysv32
        fi
        exit ;;
     pc:*:*:*)
@@ -1130,9 +1137,9 @@ EOF
        exit ;;
     i860:*:4.*:*) # i860-SVR4
        if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then
-         echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4
+         echo i860-stardent-sysv"$UNAME_RELEASE" # Stardent Vistra i860-SVR4
        else # Add other i860-SVR4 vendors below as they are discovered.
-         echo i860-unknown-sysv${UNAME_RELEASE}  # Unknown i860-SVR4
+         echo i860-unknown-sysv"$UNAME_RELEASE"  # Unknown i860-SVR4
        fi
        exit ;;
     mini*:CTIX:SYS*5:*)
@@ -1152,9 +1159,9 @@ EOF
        test -r /etc/.relid \
        && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
        /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
-         && { echo i486-ncr-sysv4.3${OS_REL}; exit; }
+         && { echo i486-ncr-sysv4.3"$OS_REL"; exit; }
        /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
-         && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;;
+         && { echo i586-ncr-sysv4.3"$OS_REL"; exit; } ;;
     3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
        /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
          && { echo i486-ncr-sysv4; exit; } ;;
@@ -1163,28 +1170,28 @@ EOF
        test -r /etc/.relid \
            && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
        /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
-           && { echo i486-ncr-sysv4.3${OS_REL}; exit; }
+           && { echo i486-ncr-sysv4.3"$OS_REL"; exit; }
        /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
-           && { echo i586-ncr-sysv4.3${OS_REL}; exit; }
+           && { echo i586-ncr-sysv4.3"$OS_REL"; exit; }
        /bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \
-           && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;;
+           && { echo i586-ncr-sysv4.3"$OS_REL"; exit; } ;;
     m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*)
-       echo m68k-unknown-lynxos${UNAME_RELEASE}
+       echo m68k-unknown-lynxos"$UNAME_RELEASE"
        exit ;;
     mc68030:UNIX_System_V:4.*:*)
        echo m68k-atari-sysv4
        exit ;;
     TSUNAMI:LynxOS:2.*:*)
-       echo sparc-unknown-lynxos${UNAME_RELEASE}
+       echo sparc-unknown-lynxos"$UNAME_RELEASE"
        exit ;;
     rs6000:LynxOS:2.*:*)
-       echo rs6000-unknown-lynxos${UNAME_RELEASE}
+       echo rs6000-unknown-lynxos"$UNAME_RELEASE"
        exit ;;
     PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*)
-       echo powerpc-unknown-lynxos${UNAME_RELEASE}
+       echo powerpc-unknown-lynxos"$UNAME_RELEASE"
        exit ;;
     SM[BE]S:UNIX_SV:*:*)
-       echo mips-dde-sysv${UNAME_RELEASE}
+       echo mips-dde-sysv"$UNAME_RELEASE"
        exit ;;
     RM*:ReliantUNIX-*:*:*)
        echo mips-sni-sysv4
@@ -1195,7 +1202,7 @@ EOF
     *:SINIX-*:*:*)
        if uname -p 2>/dev/null >/dev/null ; then
                UNAME_MACHINE=`(uname -p) 2>/dev/null`
-               echo ${UNAME_MACHINE}-sni-sysv4
+               echo "$UNAME_MACHINE"-sni-sysv4
        else
                echo ns32k-sni-sysv
        fi
@@ -1215,23 +1222,23 @@ EOF
        exit ;;
     i*86:VOS:*:*)
        # From Paul.Green@stratus.com.
-       echo ${UNAME_MACHINE}-stratus-vos
+       echo "$UNAME_MACHINE"-stratus-vos
        exit ;;
     *:VOS:*:*)
        # From Paul.Green@stratus.com.
        echo hppa1.1-stratus-vos
        exit ;;
     mc68*:A/UX:*:*)
-       echo m68k-apple-aux${UNAME_RELEASE}
+       echo m68k-apple-aux"$UNAME_RELEASE"
        exit ;;
     news*:NEWS-OS:6*:*)
        echo mips-sony-newsos6
        exit ;;
     R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)
        if [ -d /usr/nec ]; then
-               echo mips-nec-sysv${UNAME_RELEASE}
+               echo mips-nec-sysv"$UNAME_RELEASE"
        else
-               echo mips-unknown-sysv${UNAME_RELEASE}
+               echo mips-unknown-sysv"$UNAME_RELEASE"
        fi
        exit ;;
     BeBox:BeOS:*:*)    # BeOS running on hardware made by Be, PPC only.
@@ -1250,39 +1257,39 @@ EOF
        echo x86_64-unknown-haiku
        exit ;;
     SX-4:SUPER-UX:*:*)
-       echo sx4-nec-superux${UNAME_RELEASE}
+       echo sx4-nec-superux"$UNAME_RELEASE"
        exit ;;
     SX-5:SUPER-UX:*:*)
-       echo sx5-nec-superux${UNAME_RELEASE}
+       echo sx5-nec-superux"$UNAME_RELEASE"
        exit ;;
     SX-6:SUPER-UX:*:*)
-       echo sx6-nec-superux${UNAME_RELEASE}
+       echo sx6-nec-superux"$UNAME_RELEASE"
        exit ;;
     SX-7:SUPER-UX:*:*)
-       echo sx7-nec-superux${UNAME_RELEASE}
+       echo sx7-nec-superux"$UNAME_RELEASE"
        exit ;;
     SX-8:SUPER-UX:*:*)
-       echo sx8-nec-superux${UNAME_RELEASE}
+       echo sx8-nec-superux"$UNAME_RELEASE"
        exit ;;
     SX-8R:SUPER-UX:*:*)
-       echo sx8r-nec-superux${UNAME_RELEASE}
+       echo sx8r-nec-superux"$UNAME_RELEASE"
        exit ;;
     SX-ACE:SUPER-UX:*:*)
-       echo sxace-nec-superux${UNAME_RELEASE}
+       echo sxace-nec-superux"$UNAME_RELEASE"
        exit ;;
     Power*:Rhapsody:*:*)
-       echo powerpc-apple-rhapsody${UNAME_RELEASE}
+       echo powerpc-apple-rhapsody"$UNAME_RELEASE"
        exit ;;
     *:Rhapsody:*:*)
-       echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE}
+       echo "$UNAME_MACHINE"-apple-rhapsody"$UNAME_RELEASE"
        exit ;;
     *:Darwin:*:*)
        UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown
-       eval $set_cc_for_build
+       eval "$set_cc_for_build"
        if test "$UNAME_PROCESSOR" = unknown ; then
            UNAME_PROCESSOR=powerpc
        fi
-       if test `echo "$UNAME_RELEASE" | sed -e 's/\..*//'` -le 10 ; then
+       if test "`echo "$UNAME_RELEASE" | sed -e 's/\..*//'`" -le 10 ; then
            if [ "$CC_FOR_BUILD" != no_compiler_found ]; then
                if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \
                       (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
@@ -1310,7 +1317,7 @@ EOF
            # that Apple uses in portable devices.
            UNAME_PROCESSOR=x86_64
        fi
-       echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE}
+       echo "$UNAME_PROCESSOR"-apple-darwin"$UNAME_RELEASE"
        exit ;;
     *:procnto*:*:* | *:QNX:[0123456789]*:*)
        UNAME_PROCESSOR=`uname -p`
@@ -1318,22 +1325,25 @@ EOF
                UNAME_PROCESSOR=i386
                UNAME_MACHINE=pc
        fi
-       echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE}
+       echo "$UNAME_PROCESSOR"-"$UNAME_MACHINE"-nto-qnx"$UNAME_RELEASE"
        exit ;;
     *:QNX:*:4*)
        echo i386-pc-qnx
        exit ;;
     NEO-*:NONSTOP_KERNEL:*:*)
-       echo neo-tandem-nsk${UNAME_RELEASE}
+       echo neo-tandem-nsk"$UNAME_RELEASE"
        exit ;;
     NSE-*:NONSTOP_KERNEL:*:*)
-       echo nse-tandem-nsk${UNAME_RELEASE}
+       echo nse-tandem-nsk"$UNAME_RELEASE"
        exit ;;
     NSR-*:NONSTOP_KERNEL:*:*)
-       echo nsr-tandem-nsk${UNAME_RELEASE}
+       echo nsr-tandem-nsk"$UNAME_RELEASE"
+       exit ;;
+    NSV-*:NONSTOP_KERNEL:*:*)
+       echo nsv-tandem-nsk"$UNAME_RELEASE"
        exit ;;
     NSX-*:NONSTOP_KERNEL:*:*)
-       echo nsx-tandem-nsk${UNAME_RELEASE}
+       echo nsx-tandem-nsk"$UNAME_RELEASE"
        exit ;;
     *:NonStop-UX:*:*)
        echo mips-compaq-nonstopux
@@ -1342,7 +1352,7 @@ EOF
        echo bs2000-siemens-sysv
        exit ;;
     DS/*:UNIX_System_V:*:*)
-       echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE}
+       echo "$UNAME_MACHINE"-"$UNAME_SYSTEM"-"$UNAME_RELEASE"
        exit ;;
     *:Plan9:*:*)
        # "uname -m" is not consistent, so use $cputype instead. 386
@@ -1353,7 +1363,7 @@ EOF
        else
            UNAME_MACHINE="$cputype"
        fi
-       echo ${UNAME_MACHINE}-unknown-plan9
+       echo "$UNAME_MACHINE"-unknown-plan9
        exit ;;
     *:TOPS-10:*:*)
        echo pdp10-unknown-tops10
@@ -1374,14 +1384,14 @@ EOF
        echo pdp10-unknown-its
        exit ;;
     SEI:*:*:SEIUX)
-       echo mips-sei-seiux${UNAME_RELEASE}
+       echo mips-sei-seiux"$UNAME_RELEASE"
        exit ;;
     *:DragonFly:*:*)
-       echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
+       echo "$UNAME_MACHINE"-unknown-dragonfly"`echo "$UNAME_RELEASE"|sed -e 's/[-(].*//'`"
        exit ;;
     *:*VMS:*:*)
        UNAME_MACHINE=`(uname -p) 2>/dev/null`
-       case "${UNAME_MACHINE}" in
+       case "$UNAME_MACHINE" in
            A*) echo alpha-dec-vms ; exit ;;
            I*) echo ia64-dec-vms ; exit ;;
            V*) echo vax-dec-vms ; exit ;;
@@ -1390,16 +1400,16 @@ EOF
        echo i386-pc-xenix
        exit ;;
     i*86:skyos:*:*)
-       echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE} | sed -e 's/ .*$//'`
+       echo "$UNAME_MACHINE"-pc-skyos"`echo "$UNAME_RELEASE" | sed -e 's/ .*$//'`"
        exit ;;
     i*86:rdos:*:*)
-       echo ${UNAME_MACHINE}-pc-rdos
+       echo "$UNAME_MACHINE"-pc-rdos
        exit ;;
     i*86:AROS:*:*)
-       echo ${UNAME_MACHINE}-pc-aros
+       echo "$UNAME_MACHINE"-pc-aros
        exit ;;
     x86_64:VMkernel:*:*)
-       echo ${UNAME_MACHINE}-unknown-esx
+       echo "$UNAME_MACHINE"-unknown-esx
        exit ;;
     amd64:Isilon\ OneFS:*:*)
        echo x86_64-unknown-onefs
@@ -1408,7 +1418,7 @@ esac
 
 echo "$0: unable to guess system type" >&2
 
-case "${UNAME_MACHINE}:${UNAME_SYSTEM}" in
+case "$UNAME_MACHINE:$UNAME_SYSTEM" in
     mips:Linux | mips64:Linux)
        # If we got here on MIPS GNU/Linux, output extra information.
        cat >&2 <<EOF
@@ -1450,16 +1460,16 @@ hostinfo               = `(hostinfo) 2>/dev/null`
 /usr/bin/oslevel       = `(/usr/bin/oslevel) 2>/dev/null`
 /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null`
 
-UNAME_MACHINE = ${UNAME_MACHINE}
-UNAME_RELEASE = ${UNAME_RELEASE}
-UNAME_SYSTEM  = ${UNAME_SYSTEM}
-UNAME_VERSION = ${UNAME_VERSION}
+UNAME_MACHINE = "$UNAME_MACHINE"
+UNAME_RELEASE = "$UNAME_RELEASE"
+UNAME_SYSTEM  = "$UNAME_SYSTEM"
+UNAME_VERSION = "$UNAME_VERSION"
 EOF
 
 exit 1
 
 # Local variables:
-# eval: (add-hook 'write-file-functions 'time-stamp)
+# eval: (add-hook 'before-save-hook 'time-stamp)
 # time-stamp-start: "timestamp='"
 # time-stamp-format: "%:y-%02m-%02d"
 # time-stamp-end: "'"
index b6c4d8ffc0aab2ff41ed7bd3a284a7988e4e3b78..fc5913d7878bc855696d599b4585c0c44f166449 100755 (executable)
@@ -2,27 +2,13 @@
 # Output a system dependent set of variables, describing how to set the
 # run time search path of shared libraries in an executable.
 #
-#   Copyright 1996-2003 Free Software Foundation, Inc.
+#   Copyright 1996-2018 Free Software Foundation, Inc.
 #   Taken from GNU libtool, 2001
 #   Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
 #
-#   This program is free software: you can redistribute it and/or modify
-#   it under the terms of the GNU General Public License as published by
-#   the Free Software Foundation, either version 3 of the License, or
-#   (at your option) any later version.
-#
-#   This program is distributed in the hope that it will be useful,
-#   but WITHOUT ANY WARRANTY; without even the implied warranty of
-#   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-#   GNU General Public License for more details.
-#
-#   You should have received a copy of the GNU General Public License
-#   along with this program.  If not, see <http://www.gnu.org/licenses/>.
-#
-#   As a special exception to the GNU General Public License, if you
-#   distribute this file as part of a program that contains a
-#   configuration script generated by Autoconf, you may include it under
-#   the same distribution terms that you use for the rest of that program.
+#   This file is free software; the Free Software Foundation gives
+#   unlimited permission to copy and/or distribute it, with or without
+#   modifications, as long as this notice is preserved.
 #
 # The first argument passed to this file is the canonical host specification,
 #    CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM
@@ -39,7 +25,7 @@
 #   known workaround is to choose shorter directory names for the build
 #   directory and/or the installation directory.
 
-# All known linkers require a `.a' archive for static linking (except M$VC,
+# All known linkers require a '.a' archive for static linking (except MSVC,
 # which needs '.lib').
 libext=a
 shrext=.so
@@ -49,7 +35,19 @@ host_cpu=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
 host_vendor=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
 host_os=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
 
-# Code taken from libtool.m4's AC_LIBTOOL_PROG_COMPILER_PIC.
+# Code taken from libtool.m4's _LT_CC_BASENAME.
+
+for cc_temp in $CC""; do
+  case $cc_temp in
+    compile | *[\\/]compile | ccache | *[\\/]ccache ) ;;
+    distcc | *[\\/]distcc | purify | *[\\/]purify ) ;;
+    \-*) ;;
+    *) break;;
+  esac
+done
+cc_basename=`echo "$cc_temp" | sed -e 's%^.*/%%'`
+
+# Code taken from libtool.m4's _LT_COMPILER_PIC.
 
 wl=
 if test "$GCC" = yes; then
@@ -59,7 +57,7 @@ else
     aix*)
       wl='-Wl,'
       ;;
-    mingw* | pw32* | os2*)
+    mingw* | cygwin* | pw32* | os2* | cegcc*)
       ;;
     hpux9* | hpux10* | hpux11*)
       wl='-Wl,'
@@ -67,40 +65,83 @@ else
     irix5* | irix6* | nonstopux*)
       wl='-Wl,'
       ;;
-    newsos6)
-      ;;
-    linux*)
-      case $CC in
-        icc|ecc)
+    linux* | k*bsd*-gnu | kopensolaris*-gnu)
+      case $cc_basename in
+        ecc*)
+          wl='-Wl,'
+          ;;
+        icc* | ifort*)
+          wl='-Wl,'
+          ;;
+        lf95*)
+          wl='-Wl,'
+          ;;
+        nagfor*)
+          wl='-Wl,-Wl,,'
+          ;;
+        pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*)
+          wl='-Wl,'
+          ;;
+        ccc*)
           wl='-Wl,'
           ;;
-        ccc)
+        xl* | bgxl* | bgf* | mpixl*)
           wl='-Wl,'
           ;;
+        como)
+          wl='-lopt='
+          ;;
+        *)
+          case `$CC -V 2>&1 | sed 5q` in
+            *Sun\ F* | *Sun*Fortran*)
+              wl=
+              ;;
+            *Sun\ C*)
+              wl='-Wl,'
+              ;;
+          esac
+          ;;
       esac
       ;;
+    newsos6)
+      ;;
+    *nto* | *qnx*)
+      ;;
     osf3* | osf4* | osf5*)
       wl='-Wl,'
       ;;
-    sco3.2v5*)
+    rdos*)
       ;;
     solaris*)
-      wl='-Wl,'
+      case $cc_basename in
+        f77* | f90* | f95* | sunf77* | sunf90* | sunf95*)
+          wl='-Qoption ld '
+          ;;
+        *)
+          wl='-Wl,'
+          ;;
+      esac
       ;;
     sunos4*)
       wl='-Qoption ld '
       ;;
-    sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
+    sysv4 | sysv4.2uw2* | sysv4.3*)
       wl='-Wl,'
       ;;
     sysv4*MP*)
       ;;
+    sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*)
+      wl='-Wl,'
+      ;;
+    unicos*)
+      wl='-Wl,'
+      ;;
     uts4*)
       ;;
   esac
 fi
 
-# Code taken from libtool.m4's AC_LIBTOOL_PROG_LD_SHLIBS.
+# Code taken from libtool.m4's _LT_LINKER_SHLIBS.
 
 hardcode_libdir_flag_spec=
 hardcode_libdir_separator=
@@ -108,7 +149,7 @@ hardcode_direct=no
 hardcode_minus_L=no
 
 case "$host_os" in
-  cygwin* | mingw* | pw32*)
+  cygwin* | mingw* | pw32* | cegcc*)
     # FIXME: the MSVC++ port hasn't been tested in a loooong time
     # When not using gcc, we currently assume that we are using
     # Microsoft Visual C++.
@@ -116,6 +157,10 @@ case "$host_os" in
       with_gnu_ld=no
     fi
     ;;
+  interix*)
+    # we just hope/assume this is gcc and not c89 (= MSVC++)
+    with_gnu_ld=yes
+    ;;
   openbsd*)
     with_gnu_ld=no
     ;;
@@ -123,32 +168,37 @@ esac
 
 ld_shlibs=yes
 if test "$with_gnu_ld" = yes; then
+  # Set some defaults for GNU ld with shared library support. These
+  # are reset later if shared libraries are not supported. Putting them
+  # here allows them to be overridden if necessary.
+  # Unlike libtool, we use -rpath here, not --rpath, since the documented
+  # option of GNU ld is called -rpath, not --rpath.
+  hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
   case "$host_os" in
-    aix3* | aix4* | aix5*)
+    aix[3-9]*)
       # On AIX/PPC, the GNU linker is very broken
       if test "$host_cpu" != ia64; then
         ld_shlibs=no
       fi
       ;;
     amigaos*)
-      hardcode_libdir_flag_spec='-L$libdir'
-      hardcode_minus_L=yes
-      # Samuel A. Falvo II <kc5tja@dolphin.openprojects.net> reports
-      # that the semantics of dynamic libraries on AmigaOS, at least up
-      # to version 4, is to share data among multiple programs linked
-      # with the same dynamic library.  Since this doesn't match the
-      # behavior of shared libraries on other platforms, we can use
-      # them.
-      ld_shlibs=no
+      case "$host_cpu" in
+        powerpc)
+          ;;
+        m68k)
+          hardcode_libdir_flag_spec='-L$libdir'
+          hardcode_minus_L=yes
+          ;;
+      esac
       ;;
     beos*)
-      if $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then
+      if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
         :
       else
         ld_shlibs=no
       fi
       ;;
-    cygwin* | mingw* | pw32*)
+    cygwin* | mingw* | pw32* | cegcc*)
       # hardcode_libdir_flag_spec is actually meaningless, as there is
       # no search path for DLLs.
       hardcode_libdir_flag_spec='-L$libdir'
@@ -158,32 +208,57 @@ if test "$with_gnu_ld" = yes; then
         ld_shlibs=no
       fi
       ;;
+    haiku*)
+      ;;
+    interix[3-9]*)
+      hardcode_direct=no
+      hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
+      ;;
+    gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu)
+      if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
+        :
+      else
+        ld_shlibs=no
+      fi
+      ;;
     netbsd*)
       ;;
-    solaris* | sysv5*)
-      if $LD -v 2>&1 | egrep 'BFD 2\.8' > /dev/null; then
+    solaris*)
+      if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then
         ld_shlibs=no
-      elif $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then
+      elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
         :
       else
         ld_shlibs=no
       fi
       ;;
+    sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*)
+      case `$LD -v 2>&1` in
+        *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*)
+          ld_shlibs=no
+          ;;
+        *)
+          if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
+            hardcode_libdir_flag_spec='`test -z "$SCOABSPATH" && echo ${wl}-rpath,$libdir`'
+          else
+            ld_shlibs=no
+          fi
+          ;;
+      esac
+      ;;
     sunos4*)
       hardcode_direct=yes
       ;;
     *)
-      if $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then
+      if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
         :
       else
         ld_shlibs=no
       fi
       ;;
   esac
-  if test "$ld_shlibs" = yes; then
-    # Unlike libtool, we use -rpath here, not --rpath, since the documented
-    # option of GNU ld is called -rpath, not --rpath.
-    hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+  if test "$ld_shlibs" = no; then
+    hardcode_libdir_flag_spec=
   fi
 else
   case "$host_os" in
@@ -197,7 +272,7 @@ else
         hardcode_direct=unsupported
       fi
       ;;
-    aix4* | aix5*)
+    aix[4-9]*)
       if test "$host_cpu" = ia64; then
         # On IA64, the linker does run time linking by default, so we don't
         # have to do anything special.
@@ -207,13 +282,14 @@ else
         # Test if we are trying to use run time linking or normal
         # AIX style linking. If -brtl is somewhere in LDFLAGS, we
         # need to do runtime linking.
-        case $host_os in aix4.[23]|aix4.[23].*|aix5*)
+        case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*)
           for ld_flag in $LDFLAGS; do
             if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then
               aix_use_runtimelinking=yes
               break
             fi
           done
+          ;;
         esac
       fi
       hardcode_direct=yes
@@ -225,7 +301,7 @@ else
             strings "$collect2name" | grep resolve_lib_name >/dev/null
           then
             # We have reworked collect2
-            hardcode_direct=yes
+            :
           else
             # We have old collect2
             hardcode_direct=unsupported
@@ -233,6 +309,7 @@ else
             hardcode_libdir_flag_spec='-L$libdir'
             hardcode_libdir_separator=
           fi
+          ;;
         esac
       fi
       # Begin _LT_AC_SYS_LIBPATH_AIX.
@@ -260,14 +337,18 @@ else
       fi
       ;;
     amigaos*)
-      hardcode_libdir_flag_spec='-L$libdir'
-      hardcode_minus_L=yes
-      # see comment about different semantics on the GNU ld section
-      ld_shlibs=no
+      case "$host_cpu" in
+        powerpc)
+          ;;
+        m68k)
+          hardcode_libdir_flag_spec='-L$libdir'
+          hardcode_minus_L=yes
+          ;;
+      esac
       ;;
-    bsdi4*)
+    bsdi[45]*)
       ;;
-    cygwin* | mingw* | pw32*)
+    cygwin* | mingw* | pw32* | cegcc*)
       # When not using gcc, we currently assume that we are using
       # Microsoft Visual C++.
       # hardcode_libdir_flag_spec is actually meaningless, as there is
@@ -276,25 +357,21 @@ else
       libext=lib
       ;;
     darwin* | rhapsody*)
-      if $CC -v 2>&1 | grep 'Apple' >/dev/null ; then
-        hardcode_direct=no
+      hardcode_direct=no
+      if { case $cc_basename in ifort*) true;; *) test "$GCC" = yes;; esac; }; then
+        :
+      else
+        ld_shlibs=no
       fi
       ;;
     dgux*)
       hardcode_libdir_flag_spec='-L$libdir'
       ;;
-    freebsd1*)
-      ld_shlibs=no
-      ;;
-    freebsd2.2*)
-      hardcode_libdir_flag_spec='-R$libdir'
-      hardcode_direct=yes
-      ;;
-    freebsd2*)
+    freebsd2.[01]*)
       hardcode_direct=yes
       hardcode_minus_L=yes
       ;;
-    freebsd*)
+    freebsd* | dragonfly*)
       hardcode_libdir_flag_spec='-R$libdir'
       hardcode_direct=yes
       ;;
@@ -306,24 +383,25 @@ else
       # but as the default location of the library.
       hardcode_minus_L=yes
       ;;
-    hpux10* | hpux11*)
+    hpux10*)
       if test "$with_gnu_ld" = no; then
-        case "$host_cpu" in
-          hppa*64*)
-            hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
-            hardcode_libdir_separator=:
-            hardcode_direct=no
-            ;;
-          ia64*)
-            hardcode_libdir_flag_spec='-L$libdir'
+        hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
+        hardcode_libdir_separator=:
+        hardcode_direct=yes
+        # hardcode_minus_L: Not really in the search PATH,
+        # but as the default location of the library.
+        hardcode_minus_L=yes
+      fi
+      ;;
+    hpux11*)
+      if test "$with_gnu_ld" = no; then
+        hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
+        hardcode_libdir_separator=:
+        case $host_cpu in
+          hppa*64*|ia64*)
             hardcode_direct=no
-            # hardcode_minus_L: Not really in the search PATH,
-            # but as the default location of the library.
-            hardcode_minus_L=yes
             ;;
           *)
-            hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
-            hardcode_libdir_separator=:
             hardcode_direct=yes
             # hardcode_minus_L: Not really in the search PATH,
             # but as the default location of the library.
@@ -345,19 +423,25 @@ else
       hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
       hardcode_libdir_separator=:
       ;;
+    *nto* | *qnx*)
+      ;;
     openbsd*)
-      hardcode_direct=yes
-      if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
-        hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
+      if test -f /usr/libexec/ld.so; then
+        hardcode_direct=yes
+        if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+          hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
+        else
+          case "$host_os" in
+            openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*)
+              hardcode_libdir_flag_spec='-R$libdir'
+              ;;
+            *)
+              hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
+              ;;
+          esac
+        fi
       else
-        case "$host_os" in
-          openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*)
-            hardcode_libdir_flag_spec='-R$libdir'
-            ;;
-          *)
-            hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
-            ;;
-        esac
+        ld_shlibs=no
       fi
       ;;
     os2*)
@@ -377,8 +461,6 @@ else
       fi
       hardcode_libdir_separator=:
       ;;
-    sco3.2v5*)
-      ;;
     solaris*)
       hardcode_libdir_flag_spec='-R$libdir'
       ;;
@@ -407,14 +489,11 @@ else
         ld_shlibs=yes
       fi
       ;;
-    sysv4.2uw2*)
-      hardcode_direct=yes
-      hardcode_minus_L=no
+    sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*)
       ;;
-    sysv5OpenUNIX8* | sysv5UnixWare7* |  sysv5uw[78]* | unixware7*)
-      ;;
-    sysv5*)
-      hardcode_libdir_flag_spec=
+    sysv5* | sco3.2v5* | sco5v6*)
+      hardcode_libdir_flag_spec='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`'
+      hardcode_libdir_separator=':'
       ;;
     uts4*)
       hardcode_libdir_flag_spec='-L$libdir'
@@ -426,35 +505,59 @@ else
 fi
 
 # Check dynamic linker characteristics
-# Code taken from libtool.m4's AC_LIBTOOL_SYS_DYNAMIC_LINKER.
+# Code taken from libtool.m4's _LT_SYS_DYNAMIC_LINKER.
+# Unlike libtool.m4, here we don't care about _all_ names of the library, but
+# only about the one the linker finds when passed -lNAME. This is the last
+# element of library_names_spec in libtool.m4, or possibly two of them if the
+# linker has special search rules.
+library_names_spec=      # the last element of library_names_spec in libtool.m4
 libname_spec='lib$name'
 case "$host_os" in
   aix3*)
+    library_names_spec='$libname.a'
     ;;
-  aix4* | aix5*)
+  aix[4-9]*)
+    library_names_spec='$libname$shrext'
     ;;
   amigaos*)
+    case "$host_cpu" in
+      powerpc*)
+        library_names_spec='$libname$shrext' ;;
+      m68k)
+        library_names_spec='$libname.a' ;;
+    esac
     ;;
   beos*)
+    library_names_spec='$libname$shrext'
     ;;
-  bsdi4*)
+  bsdi[45]*)
+    library_names_spec='$libname$shrext'
     ;;
-  cygwin* | mingw* | pw32*)
+  cygwin* | mingw* | pw32* | cegcc*)
     shrext=.dll
+    library_names_spec='$libname.dll.a $libname.lib'
     ;;
   darwin* | rhapsody*)
     shrext=.dylib
+    library_names_spec='$libname$shrext'
     ;;
   dgux*)
+    library_names_spec='$libname$shrext'
     ;;
-  freebsd1*)
+  freebsd[23].*)
+    library_names_spec='$libname$shrext$versuffix'
     ;;
-  freebsd*)
+  freebsd* | dragonfly*)
+    library_names_spec='$libname$shrext'
     ;;
   gnu*)
+    library_names_spec='$libname$shrext'
+    ;;
+  haiku*)
+    library_names_spec='$libname$shrext'
     ;;
   hpux9* | hpux10* | hpux11*)
-    case "$host_cpu" in
+    case $host_cpu in
       ia64*)
         shrext=.so
         ;;
@@ -465,8 +568,13 @@ case "$host_os" in
         shrext=.sl
         ;;
     esac
+    library_names_spec='$libname$shrext'
+    ;;
+  interix[3-9]*)
+    library_names_spec='$libname$shrext'
     ;;
   irix5* | irix6* | nonstopux*)
+    library_names_spec='$libname$shrext'
     case "$host_os" in
       irix5* | nonstopux*)
         libsuff= shlibsuff=
@@ -483,42 +591,65 @@ case "$host_os" in
     ;;
   linux*oldld* | linux*aout* | linux*coff*)
     ;;
-  linux*)
+  linux* | k*bsd*-gnu | kopensolaris*-gnu)
+    library_names_spec='$libname$shrext'
+    ;;
+  knetbsd*-gnu)
+    library_names_spec='$libname$shrext'
     ;;
   netbsd*)
+    library_names_spec='$libname$shrext'
     ;;
   newsos6)
+    library_names_spec='$libname$shrext'
     ;;
-  nto-qnx)
+  *nto* | *qnx*)
+    library_names_spec='$libname$shrext'
     ;;
   openbsd*)
+    library_names_spec='$libname$shrext$versuffix'
     ;;
   os2*)
     libname_spec='$name'
     shrext=.dll
+    library_names_spec='$libname.a'
     ;;
   osf3* | osf4* | osf5*)
+    library_names_spec='$libname$shrext'
     ;;
-  sco3.2v5*)
+  rdos*)
     ;;
   solaris*)
+    library_names_spec='$libname$shrext'
     ;;
   sunos4*)
+    library_names_spec='$libname$shrext$versuffix'
     ;;
-  sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
+  sysv4 | sysv4.3*)
+    library_names_spec='$libname$shrext'
     ;;
   sysv4*MP*)
+    library_names_spec='$libname$shrext'
+    ;;
+  sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
+    library_names_spec='$libname$shrext'
+    ;;
+  tpf*)
+    library_names_spec='$libname$shrext'
     ;;
   uts4*)
+    library_names_spec='$libname$shrext'
     ;;
 esac
 
 sed_quote_subst='s/\(["`$\\]\)/\\\1/g'
 escaped_wl=`echo "X$wl" | sed -e 's/^X//' -e "$sed_quote_subst"`
 shlibext=`echo "$shrext" | sed -e 's,^\.,,'`
+escaped_libname_spec=`echo "X$libname_spec" | sed -e 's/^X//' -e "$sed_quote_subst"`
+escaped_library_names_spec=`echo "X$library_names_spec" | sed -e 's/^X//' -e "$sed_quote_subst"`
 escaped_hardcode_libdir_flag_spec=`echo "X$hardcode_libdir_flag_spec" | sed -e 's/^X//' -e "$sed_quote_subst"`
 
-sed -e 's/^\([a-zA-Z0-9_]*\)=/acl_cv_\1=/' <<EOF
+LC_ALL=C sed -e 's/^\([a-zA-Z0-9_]*\)=/acl_cv_\1=/' <<EOF
 
 # How to pass a linker flag through the compiler.
 wl="$escaped_wl"
@@ -529,6 +660,12 @@ libext="$libext"
 # Shared library suffix (normally "so").
 shlibext="$shlibext"
 
+# Format of library name prefix.
+libname_spec="$escaped_libname_spec"
+
+# Library names that the linker finds when passed -lNAME.
+library_names_spec="$escaped_library_names_spec"
+
 # Flag to hardcode \$libdir into a binary during linking.
 # This must work even if \$libdir does not exist.
 hardcode_libdir_flag_spec="$escaped_hardcode_libdir_flag_spec"
old mode 100644 (file)
new mode 100755 (executable)
index 00f68b8..f38250f
@@ -1,8 +1,8 @@
 #! /bin/sh
 # Configuration validation subroutine script.
-#   Copyright 1992-2017 Free Software Foundation, Inc.
+#   Copyright 1992-2018 Free Software Foundation, Inc.
 
-timestamp='2017-11-23'
+timestamp='2018-05-19'
 
 # This file is free software; you can redistribute it and/or modify it
 # under the terms of the GNU General Public License as published by
@@ -67,7 +67,7 @@ Report bugs and patches to <config-patches@gnu.org>."
 version="\
 GNU config.sub ($timestamp)
 
-Copyright 1992-2017 Free Software Foundation, Inc.
+Copyright 1992-2018 Free Software Foundation, Inc.
 
 This is free software; see the source for copying conditions.  There is NO
 warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
@@ -94,7 +94,7 @@ while test $# -gt 0 ; do
 
     *local*)
        # First pass through any local machine types.
-       echo $1
+       echo "$1"
        exit ;;
 
     * )
@@ -110,28 +110,434 @@ case $# in
     exit 1;;
 esac
 
-# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any).
-# Here we must recognize all the valid KERNEL-OS combinations.
-maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
-case $maybe_os in
-  nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \
-  linux-musl* | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \
-  knetbsd*-gnu* | netbsd*-gnu* | netbsd*-eabi* | \
-  kopensolaris*-gnu* | cloudabi*-eabi* | \
-  storm-chaos* | os2-emx* | rtmk-nova*)
-    os=-$maybe_os
-    basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
-    ;;
-  android-linux)
-    os=-linux-android
-    basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`-unknown
-    ;;
-  *)
-    basic_machine=`echo $1 | sed 's/-[^-]*$//'`
-    if [ $basic_machine != $1 ]
-    then os=`echo $1 | sed 's/.*-/-/'`
-    else os=; fi
-    ;;
+# Split fields of configuration type
+IFS="-" read -r field1 field2 field3 field4 <<EOF
+$1
+EOF
+
+# Separate into logical components for further validation
+case $1 in
+       *-*-*-*-*)
+               echo Invalid configuration \`"$1"\': more than four components >&2
+               exit 1
+               ;;
+       *-*-*-*)
+               basic_machine=$field1-$field2
+               os=$field3-$field4
+               ;;
+       *-*-*)
+               # Ambiguous whether COMPANY is present, or skipped and KERNEL-OS is two
+               # parts
+               maybe_os=$field2-$field3
+               case $maybe_os in
+                       nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc \
+                       | linux-newlib* | linux-musl* | linux-uclibc* | uclinux-uclibc* \
+                       | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* \
+                       | netbsd*-eabi* | kopensolaris*-gnu* | cloudabi*-eabi* \
+                       | storm-chaos* | os2-emx* | rtmk-nova*)
+                               basic_machine=$field1
+                               os=$maybe_os
+                               ;;
+                       android-linux)
+                               basic_machine=$field1-unknown
+                               os=linux-android
+                               ;;
+                       *)
+                               basic_machine=$field1-$field2
+                               os=$field3
+                               ;;
+               esac
+               ;;
+       *-*)
+               basic_machine=$field1
+               os=$field2
+               ;;
+       *)
+               # Convert single-component short-hands not valid as part of
+               # multi-component configurations.
+               case $field1 in
+                       386bsd)
+                               basic_machine=i386-pc
+                               os=bsd
+                               ;;
+                       a29khif)
+                               basic_machine=a29k-amd
+                               os=udi
+                               ;;
+                       adobe68k)
+                               basic_machine=m68010-adobe
+                               os=scout
+                               ;;
+                       am29k)
+                               basic_machine=a29k-none
+                               os=bsd
+                               ;;
+                       amdahl)
+                               basic_machine=580-amdahl
+                               os=sysv
+                               ;;
+                       amigaos | amigados)
+                               basic_machine=m68k-unknown
+                               os=amigaos
+                               ;;
+                       amigaunix | amix)
+                               basic_machine=m68k-unknown
+                               os=sysv4
+                               ;;
+                       apollo68)
+                               basic_machine=m68k-apollo
+                               os=sysv
+                               ;;
+                       apollo68bsd)
+                               basic_machine=m68k-apollo
+                               os=bsd
+                               ;;
+                       aros)
+                               basic_machine=i386-pc
+                               os=aros
+                               ;;
+                       aux)
+                               basic_machine=m68k-apple
+                               os=aux
+                               ;;
+                       balance)
+                               basic_machine=ns32k-sequent
+                               os=dynix
+                               ;;
+                       blackfin)
+                               basic_machine=bfin-unknown
+                               os=linux
+                               ;;
+                       cegcc)
+                               basic_machine=arm-unknown
+                               os=cegcc
+                               ;;
+                       cray)
+                               basic_machine=j90-cray
+                               os=unicos
+                               ;;
+                       craynv)
+                               basic_machine=craynv-cray
+                               os=unicosmp
+                               ;;
+                       delta88)
+                               basic_machine=m88k-motorola
+                               os=sysv3
+                               ;;
+                       dicos)
+                               basic_machine=i686-pc
+                               os=dicos
+                               ;;
+                       djgpp)
+                               basic_machine=i586-pc
+                               os=msdosdjgpp
+                               ;;
+                       ebmon29k)
+                               basic_machine=a29k-amd
+                               os=ebmon
+                               ;;
+                       es1800 | OSE68k | ose68k | ose | OSE)
+                               basic_machine=m68k-ericsson
+                               os=ose
+                               ;;
+                       gmicro)
+                               basic_machine=tron-gmicro
+                               os=sysv
+                               ;;
+                       go32)
+                               basic_machine=i386-pc
+                               os=go32
+                               ;;
+                       h8300hms)
+                               basic_machine=h8300-hitachi
+                               os=hms
+                               ;;
+                       h8300xray)
+                               basic_machine=h8300-hitachi
+                               os=xray
+                               ;;
+                       h8500hms)
+                               basic_machine=h8500-hitachi
+                               os=hms
+                               ;;
+                       harris)
+                               basic_machine=m88k-harris
+                               os=sysv3
+                               ;;
+                       hp300bsd)
+                               basic_machine=m68k-hp
+                               os=bsd
+                               ;;
+                       hp300hpux)
+                               basic_machine=m68k-hp
+                               os=hpux
+                               ;;
+                       hppaosf)
+                               basic_machine=hppa1.1-hp
+                               os=osf
+                               ;;
+                       hppro)
+                               basic_machine=hppa1.1-hp
+                               os=proelf
+                               ;;
+                       i386mach)
+                               basic_machine=i386-mach
+                               os=mach
+                               ;;
+                       vsta)
+                               basic_machine=i386-unknown
+                               os=vsta
+                               ;;
+                       isi68 | isi)
+                               basic_machine=m68k-isi
+                               os=sysv
+                               ;;
+                       m68knommu)
+                               basic_machine=m68k-unknown
+                               os=linux
+                               ;;
+                       magnum | m3230)
+                               basic_machine=mips-mips
+                               os=sysv
+                               ;;
+                       merlin)
+                               basic_machine=ns32k-utek
+                               os=sysv
+                               ;;
+                       mingw64)
+                               basic_machine=x86_64-pc
+                               os=mingw64
+                               ;;
+                       mingw32)
+                               basic_machine=i686-pc
+                               os=mingw32
+                               ;;
+                       mingw32ce)
+                               basic_machine=arm-unknown
+                               os=mingw32ce
+                               ;;
+                       monitor)
+                               basic_machine=m68k-rom68k
+                               os=coff
+                               ;;
+                       morphos)
+                               basic_machine=powerpc-unknown
+                               os=morphos
+                               ;;
+                       moxiebox)
+                               basic_machine=moxie-unknown
+                               os=moxiebox
+                               ;;
+                       msdos)
+                               basic_machine=i386-pc
+                               os=msdos
+                               ;;
+                       msys)
+                               basic_machine=i686-pc
+                               os=msys
+                               ;;
+                       mvs)
+                               basic_machine=i370-ibm
+                               os=mvs
+                               ;;
+                       nacl)
+                               basic_machine=le32-unknown
+                               os=nacl
+                               ;;
+                       ncr3000)
+                               basic_machine=i486-ncr
+                               os=sysv4
+                               ;;
+                       netbsd386)
+                               basic_machine=i386-unknown
+                               os=netbsd
+                               ;;
+                       netwinder)
+                               basic_machine=armv4l-rebel
+                               os=linux
+                               ;;
+                       news | news700 | news800 | news900)
+                               basic_machine=m68k-sony
+                               os=newsos
+                               ;;
+                       news1000)
+                               basic_machine=m68030-sony
+                               os=newsos
+                               ;;
+                       necv70)
+                               basic_machine=v70-nec
+                               os=sysv
+                               ;;
+                       nh3000)
+                               basic_machine=m68k-harris
+                               os=cxux
+                               ;;
+                       nh[45]000)
+                               basic_machine=m88k-harris
+                               os=cxux
+                               ;;
+                       nindy960)
+                               basic_machine=i960-intel
+                               os=nindy
+                               ;;
+                       mon960)
+                               basic_machine=i960-intel
+                               os=mon960
+                               ;;
+                       nonstopux)
+                               basic_machine=mips-compaq
+                               os=nonstopux
+                               ;;
+                       os400)
+                               basic_machine=powerpc-ibm
+                               os=os400
+                               ;;
+                       OSE68000 | ose68000)
+                               basic_machine=m68000-ericsson
+                               os=ose
+                               ;;
+                       os68k)
+                               basic_machine=m68k-none
+                               os=os68k
+                               ;;
+                       paragon)
+                               basic_machine=i860-intel
+                               os=osf
+                               ;;
+                       parisc)
+                               basic_machine=hppa-unknown
+                               os=linux
+                               ;;
+                       pw32)
+                               basic_machine=i586-unknown
+                               os=pw32
+                               ;;
+                       rdos | rdos64)
+                               basic_machine=x86_64-pc
+                               os=rdos
+                               ;;
+                       rdos32)
+                               basic_machine=i386-pc
+                               os=rdos
+                               ;;
+                       rom68k)
+                               basic_machine=m68k-rom68k
+                               os=coff
+                               ;;
+                       sa29200)
+                               basic_machine=a29k-amd
+                               os=udi
+                               ;;
+                       sei)
+                               basic_machine=mips-sei
+                               os=seiux
+                               ;;
+                       sps7)
+                               basic_machine=m68k-bull
+                               os=sysv2
+                               ;;
+                       stratus)
+                               basic_machine=i860-stratus
+                               os=sysv4
+                               ;;
+                       sun2os3)
+                               basic_machine=m68000-sun
+                               os=sunos3
+                               ;;
+                       sun2os4)
+                               basic_machine=m68000-sun
+                               os=sunos4
+                               ;;
+                       sun3os3)
+                               basic_machine=m68k-sun
+                               os=sunos3
+                               ;;
+                       sun3os4)
+                               basic_machine=m68k-sun
+                               os=sunos4
+                               ;;
+                       sun4os3)
+                               basic_machine=sparc-sun
+                               os=sunos3
+                               ;;
+                       sun4os4)
+                               basic_machine=sparc-sun
+                               os=sunos4
+                               ;;
+                       sun4sol2)
+                               basic_machine=sparc-sun
+                               os=solaris2
+                               ;;
+                       sv1)
+                               basic_machine=sv1-cray
+                               os=unicos
+                               ;;
+                       symmetry)
+                               basic_machine=i386-sequent
+                               os=dynix
+                               ;;
+                       t3e)
+                               basic_machine=alphaev5-cray
+                               os=unicos
+                               ;;
+                       t90)
+                               basic_machine=t90-cray
+                               os=unicos
+                               ;;
+                       toad1)
+                               basic_machine=pdp10-xkl
+                               os=tops20
+                               ;;
+                       tpf)
+                               basic_machine=s390x-ibm
+                               os=tpf
+                               ;;
+                       udi29k)
+                               basic_machine=a29k-amd
+                               os=udi
+                               ;;
+                       ultra3)
+                               basic_machine=a29k-nyu
+                               os=sym1
+                               ;;
+                       v810 | necv810)
+                               basic_machine=v810-nec
+                               os=none
+                               ;;
+                       vaxv)
+                               basic_machine=vax-dec
+                               os=sysv
+                               ;;
+                       vms)
+                               basic_machine=vax-dec
+                               os=vms
+                               ;;
+                       vxworks960)
+                               basic_machine=i960-wrs
+                               os=vxworks
+                               ;;
+                       vxworks68)
+                               basic_machine=m68k-wrs
+                               os=vxworks
+                               ;;
+                       vxworks29k)
+                               basic_machine=a29k-wrs
+                               os=vxworks
+                               ;;
+                       xbox)
+                               basic_machine=i686-pc
+                               os=mingw32
+                               ;;
+                       ymp)
+                               basic_machine=ymp-cray
+                               os=unicos
+                               ;;
+                       *)
+                               basic_machine=$1
+                               os=
+                               ;;
+               esac
+               ;;
 esac
 
 ### Let's recognize common machines as not being operating systems so
@@ -139,102 +545,102 @@ esac
 ### recognize some manufacturers as not being operating systems, so we
 ### can provide default operating systems below.
 case $os in
-       -sun*os*)
+       sun*os*)
                # Prevent following clause from handling this invalid input.
                ;;
-       -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \
-       -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \
-       -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \
-       -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\
-       -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \
-       -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \
-       -apple | -axis | -knuth | -cray | -microblaze*)
+       dec* | mips* | sequent* | encore* | pc532* | sgi* | sony* | \
+       att* | 7300* | 3300* | delta* | motorola* | sun[234]* | \
+       unicom* | ibm* | next | hp | isi* | apollo | altos* | \
+       convergent* | ncr* | news | 32* | 3600* | 3100* | hitachi* |\
+       c[123]* | convex* | sun | crds | omron* | dg | ultra | tti* | \
+       harris | dolphin | highlevel | gould | cbm | ns | masscomp | \
+       apple | axis | knuth | cray | microblaze*)
                os=
                basic_machine=$1
                ;;
-       -bluegene*)
-               os=-cnk
+       bluegene*)
+               os=cnk
                ;;
-       -sim | -cisco | -oki | -wec | -winbond)
+       sim | cisco | oki | wec | winbond)
                os=
                basic_machine=$1
                ;;
-       -scout)
+       scout)
                ;;
-       -wrs)
-               os=-vxworks
+       wrs)
+               os=vxworks
                basic_machine=$1
                ;;
-       -chorusos*)
-               os=-chorusos
+       chorusos*)
+               os=chorusos
                basic_machine=$1
                ;;
-       -chorusrdb)
-               os=-chorusrdb
+       chorusrdb)
+               os=chorusrdb
                basic_machine=$1
                ;;
-       -hiux*)
-               os=-hiuxwe2
+       hiux*)
+               os=hiuxwe2
                ;;
-       -sco6)
-               os=-sco5v6
-               basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+       sco6)
+               os=sco5v6
+               basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
                ;;
-       -sco5)
-               os=-sco3.2v5
-               basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+       sco5)
+               os=sco3.2v5
+               basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
                ;;
-       -sco4)
-               os=-sco3.2v4
-               basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+       sco4)
+               os=sco3.2v4
+               basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
                ;;
-       -sco3.2.[4-9]*)
+       sco3.2.[4-9]*)
                os=`echo $os | sed -e 's/sco3.2./sco3.2v/'`
-               basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+               basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
                ;;
-       -sco3.2v[4-9]*)
+       sco3.2v[4-9]*)
                # Don't forget version if it is 3.2v4 or newer.
-               basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+               basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
                ;;
-       -sco5v6*)
+       sco5v6*)
                # Don't forget version if it is 3.2v4 or newer.
-               basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+               basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
                ;;
-       -sco*)
-               os=-sco3.2v2
-               basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+       sco*)
+               os=sco3.2v2
+               basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
                ;;
-       -udk*)
-               basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+       udk*)
+               basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
                ;;
-       -isc)
-               os=-isc2.2
-               basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+       isc)
+               os=isc2.2
+               basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
                ;;
-       -clix*)
+       clix*)
                basic_machine=clipper-intergraph
                ;;
-       -isc*)
-               basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+       isc*)
+               basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
                ;;
-       -lynx*178)
-               os=-lynxos178
+       lynx*178)
+               os=lynxos178
                ;;
-       -lynx*5)
-               os=-lynxos5
+       lynx*5)
+               os=lynxos5
                ;;
-       -lynx*)
-               os=-lynxos
+       lynx*)
+               os=lynxos
                ;;
-       -ptx*)
-               basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'`
+       ptx*)
+               basic_machine=`echo "$1" | sed -e 's/86-.*/86-sequent/'`
                ;;
-       -psos*)
-               os=-psos
+       psos*)
+               os=psos
                ;;
-       -mint | -mint[0-9]*)
+       mint | mint[0-9]*)
                basic_machine=m68k-atari
-               os=-mint
+               os=mint
                ;;
 esac
 
@@ -249,12 +655,12 @@ case $basic_machine in
        | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \
        | am33_2.0 \
        | arc | arceb \
-       | arm | arm[bl]e | arme[lb] | armv[2-8] | armv[3-8][lb] | armv7[arm] \
+       | arm | arm[bl]e | arme[lb] | armv[2-8] | armv[3-8][lb] | armv6m | armv[78][arm] \
        | avr | avr32 \
        | ba \
        | be32 | be64 \
        | bfin \
-       | c4x | c8051 | clipper \
+       | c4x | c8051 | clipper | csky \
        | d10v | d30v | dlx | dsp16xx \
        | e2k | epiphany \
        | fido | fr30 | frv | ft32 \
@@ -293,10 +699,11 @@ case $basic_machine in
        | mt \
        | msp430 \
        | nds32 | nds32le | nds32be \
+       | nfp \
        | nios | nios2 | nios2eb | nios2el \
        | ns16k | ns32k \
        | open8 | or1k | or1knd | or32 \
-       | pdp10 | pdp11 | pj | pjl \
+       | pdp10 | pj | pjl \
        | powerpc | powerpc64 | powerpc64le | powerpcle \
        | pru \
        | pyramid \
@@ -331,20 +738,23 @@ case $basic_machine in
                ;;
        m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | nvptx | picochip)
                basic_machine=$basic_machine-unknown
-               os=-none
+               os=${os:-none}
+               ;;
+       m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65)
                ;;
-       m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k)
+       m9s12z | m68hcs12z | hcs12z | s12z)
+               basic_machine=s12z-unknown
+               os=${os:-none}
                ;;
        ms1)
                basic_machine=mt-unknown
                ;;
-
        strongarm | thumb | xscale)
                basic_machine=arm-unknown
                ;;
        xgate)
                basic_machine=$basic_machine-unknown
-               os=-none
+               os=${os:-none}
                ;;
        xscaleeb)
                basic_machine=armeb-unknown
@@ -360,11 +770,6 @@ case $basic_machine in
        i*86 | x86_64)
          basic_machine=$basic_machine-pc
          ;;
-       # Object if more than one company name word.
-       *-*-*)
-               echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
-               exit 1
-               ;;
        # Recognize the basic CPU types with company name.
        580-* \
        | a29k-* \
@@ -378,7 +783,7 @@ case $basic_machine in
        | be32-* | be64-* \
        | bfin-* | bs2000-* \
        | c[123]* | c30-* | [cjt]90-* | c4x-* \
-       | c8051-* | clipper-* | craynv-* | cydra-* \
+       | c8051-* | clipper-* | craynv-* | csky-* | cydra-* \
        | d10v-* | d30v-* | dlx-* \
        | e2k-* | elxsi-* \
        | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \
@@ -419,6 +824,7 @@ case $basic_machine in
        | mt-* \
        | msp430-* \
        | nds32-* | nds32le-* | nds32be-* \
+       | nfp-* \
        | nios-* | nios2-* | nios2eb-* | nios2el-* \
        | none-* | np1-* | ns16k-* | ns32k-* \
        | open8-* \
@@ -456,141 +862,77 @@ case $basic_machine in
                ;;
        # Recognize the various machine names and aliases which stand
        # for a CPU type and a company and sometimes even an OS.
-       386bsd)
-               basic_machine=i386-unknown
-               os=-bsd
-               ;;
        3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc)
                basic_machine=m68000-att
                ;;
        3b*)
                basic_machine=we32k-att
                ;;
-       a29khif)
-               basic_machine=a29k-amd
-               os=-udi
-               ;;
        abacus)
                basic_machine=abacus-unknown
                ;;
-       adobe68k)
-               basic_machine=m68010-adobe
-               os=-scout
-               ;;
        alliant | fx80)
                basic_machine=fx80-alliant
                ;;
        altos | altos3068)
                basic_machine=m68k-altos
                ;;
-       am29k)
-               basic_machine=a29k-none
-               os=-bsd
-               ;;
        amd64)
                basic_machine=x86_64-pc
                ;;
        amd64-*)
-               basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'`
-               ;;
-       amdahl)
-               basic_machine=580-amdahl
-               os=-sysv
+               basic_machine=x86_64-`echo "$basic_machine" | sed 's/^[^-]*-//'`
                ;;
        amiga | amiga-*)
                basic_machine=m68k-unknown
                ;;
-       amigaos | amigados)
-               basic_machine=m68k-unknown
-               os=-amigaos
-               ;;
-       amigaunix | amix)
-               basic_machine=m68k-unknown
-               os=-sysv4
-               ;;
-       apollo68)
-               basic_machine=m68k-apollo
-               os=-sysv
-               ;;
-       apollo68bsd)
-               basic_machine=m68k-apollo
-               os=-bsd
-               ;;
-       aros)
-               basic_machine=i386-pc
-               os=-aros
-               ;;
        asmjs)
                basic_machine=asmjs-unknown
                ;;
-       aux)
-               basic_machine=m68k-apple
-               os=-aux
-               ;;
-       balance)
-               basic_machine=ns32k-sequent
-               os=-dynix
-               ;;
-       blackfin)
-               basic_machine=bfin-unknown
-               os=-linux
-               ;;
        blackfin-*)
-               basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'`
-               os=-linux
+               basic_machine=bfin-`echo "$basic_machine" | sed 's/^[^-]*-//'`
+               os=linux
                ;;
        bluegene*)
                basic_machine=powerpc-ibm
-               os=-cnk
+               os=cnk
                ;;
        c54x-*)
-               basic_machine=tic54x-`echo $basic_machine | sed 's/^[^-]*-//'`
+               basic_machine=tic54x-`echo "$basic_machine" | sed 's/^[^-]*-//'`
                ;;
        c55x-*)
-               basic_machine=tic55x-`echo $basic_machine | sed 's/^[^-]*-//'`
+               basic_machine=tic55x-`echo "$basic_machine" | sed 's/^[^-]*-//'`
                ;;
        c6x-*)
-               basic_machine=tic6x-`echo $basic_machine | sed 's/^[^-]*-//'`
+               basic_machine=tic6x-`echo "$basic_machine" | sed 's/^[^-]*-//'`
                ;;
        c90)
                basic_machine=c90-cray
-               os=-unicos
-               ;;
-       cegcc)
-               basic_machine=arm-unknown
-               os=-cegcc
+               os=${os:-unicos}
                ;;
        convex-c1)
                basic_machine=c1-convex
-               os=-bsd
+               os=bsd
                ;;
        convex-c2)
                basic_machine=c2-convex
-               os=-bsd
+               os=bsd
                ;;
        convex-c32)
                basic_machine=c32-convex
-               os=-bsd
+               os=bsd
                ;;
        convex-c34)
                basic_machine=c34-convex
-               os=-bsd
+               os=bsd
                ;;
        convex-c38)
                basic_machine=c38-convex
-               os=-bsd
-               ;;
-       cray | j90)
-               basic_machine=j90-cray
-               os=-unicos
-               ;;
-       craynv)
-               basic_machine=craynv-cray
-               os=-unicosmp
+               os=bsd
                ;;
        cr16 | cr16-*)
                basic_machine=cr16-unknown
-               os=-elf
+               os=${os:-elf}
                ;;
        crds | unos)
                basic_machine=m68k-crds
@@ -603,7 +945,7 @@ case $basic_machine in
                ;;
        crx)
                basic_machine=crx-unknown
-               os=-elf
+               os=${os:-elf}
                ;;
        da30 | da30-*)
                basic_machine=m68k-da30
@@ -613,58 +955,38 @@ case $basic_machine in
                ;;
        decsystem10* | dec10*)
                basic_machine=pdp10-dec
-               os=-tops10
+               os=tops10
                ;;
        decsystem20* | dec20*)
                basic_machine=pdp10-dec
-               os=-tops20
+               os=tops20
                ;;
        delta | 3300 | motorola-3300 | motorola-delta \
              | 3300-motorola | delta-motorola)
                basic_machine=m68k-motorola
                ;;
-       delta88)
-               basic_machine=m88k-motorola
-               os=-sysv3
-               ;;
-       dicos)
-               basic_machine=i686-pc
-               os=-dicos
-               ;;
-       djgpp)
-               basic_machine=i586-pc
-               os=-msdosdjgpp
-               ;;
        dpx20 | dpx20-*)
                basic_machine=rs6000-bull
-               os=-bosx
+               os=${os:-bosx}
                ;;
        dpx2*)
                basic_machine=m68k-bull
-               os=-sysv3
+               os=sysv3
                ;;
        e500v[12])
                basic_machine=powerpc-unknown
                os=$os"spe"
                ;;
        e500v[12]-*)
-               basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
+               basic_machine=powerpc-`echo "$basic_machine" | sed 's/^[^-]*-//'`
                os=$os"spe"
                ;;
-       ebmon29k)
-               basic_machine=a29k-amd
-               os=-ebmon
-               ;;
-       elxsi)
-               basic_machine=elxsi-elxsi
-               os=-bsd
-               ;;
        encore | umax | mmax)
                basic_machine=ns32k-encore
                ;;
-       es1800 | OSE68k | ose68k | ose | OSE)
-               basic_machine=m68k-ericsson
-               os=-ose
+       elxsi)
+               basic_machine=elxsi-elxsi
+               os=${os:-bsd}
                ;;
        fx2800)
                basic_machine=i860-alliant
@@ -672,45 +994,13 @@ case $basic_machine in
        genix)
                basic_machine=ns32k-ns
                ;;
-       gmicro)
-               basic_machine=tron-gmicro
-               os=-sysv
-               ;;
-       go32)
-               basic_machine=i386-pc
-               os=-go32
-               ;;
        h3050r* | hiux*)
                basic_machine=hppa1.1-hitachi
-               os=-hiuxwe2
-               ;;
-       h8300hms)
-               basic_machine=h8300-hitachi
-               os=-hms
-               ;;
-       h8300xray)
-               basic_machine=h8300-hitachi
-               os=-xray
-               ;;
-       h8500hms)
-               basic_machine=h8500-hitachi
-               os=-hms
-               ;;
-       harris)
-               basic_machine=m88k-harris
-               os=-sysv3
+               os=hiuxwe2
                ;;
        hp300-*)
                basic_machine=m68k-hp
                ;;
-       hp300bsd)
-               basic_machine=m68k-hp
-               os=-bsd
-               ;;
-       hp300hpux)
-               basic_machine=m68k-hp
-               os=-hpux
-               ;;
        hp3k9[0-9][0-9] | hp9[0-9][0-9])
                basic_machine=hppa1.0-hp
                ;;
@@ -740,200 +1030,82 @@ case $basic_machine in
        hp9k8[0-9][0-9] | hp8[0-9][0-9])
                basic_machine=hppa1.0-hp
                ;;
-       hppa-next)
-               os=-nextstep3
-               ;;
-       hppaosf)
-               basic_machine=hppa1.1-hp
-               os=-osf
-               ;;
-       hppro)
-               basic_machine=hppa1.1-hp
-               os=-proelf
-               ;;
        i370-ibm* | ibm*)
                basic_machine=i370-ibm
                ;;
        i*86v32)
-               basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
-               os=-sysv32
+               basic_machine=`echo "$1" | sed -e 's/86.*/86-pc/'`
+               os=sysv32
                ;;
        i*86v4*)
-               basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
-               os=-sysv4
+               basic_machine=`echo "$1" | sed -e 's/86.*/86-pc/'`
+               os=sysv4
                ;;
        i*86v)
-               basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
-               os=-sysv
+               basic_machine=`echo "$1" | sed -e 's/86.*/86-pc/'`
+               os=sysv
                ;;
        i*86sol2)
-               basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
-               os=-solaris2
+               basic_machine=`echo "$1" | sed -e 's/86.*/86-pc/'`
+               os=solaris2
                ;;
-       i386mach)
-               basic_machine=i386-mach
-               os=-mach
-               ;;
-       i386-vsta | vsta)
-               basic_machine=i386-unknown
-               os=-vsta
+       j90 | j90-cray)
+               basic_machine=j90-cray
+               os=${os:-unicos}
                ;;
        iris | iris4d)
                basic_machine=mips-sgi
                case $os in
-                   -irix*)
+                   irix*)
                        ;;
                    *)
-                       os=-irix4
+                       os=irix4
                        ;;
                esac
                ;;
-       isi68 | isi)
-               basic_machine=m68k-isi
-               os=-sysv
-               ;;
        leon-*|leon[3-9]-*)
-               basic_machine=sparc-`echo $basic_machine | sed 's/-.*//'`
-               ;;
-       m68knommu)
-               basic_machine=m68k-unknown
-               os=-linux
+               basic_machine=sparc-`echo "$basic_machine" | sed 's/-.*//'`
                ;;
        m68knommu-*)
-               basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'`
-               os=-linux
-               ;;
-       m88k-omron*)
-               basic_machine=m88k-omron
-               ;;
-       magnum | m3230)
-               basic_machine=mips-mips
-               os=-sysv
-               ;;
-       merlin)
-               basic_machine=ns32k-utek
-               os=-sysv
+               basic_machine=m68k-`echo "$basic_machine" | sed 's/^[^-]*-//'`
+               os=linux
                ;;
        microblaze*)
                basic_machine=microblaze-xilinx
                ;;
-       mingw64)
-               basic_machine=x86_64-pc
-               os=-mingw64
-               ;;
-       mingw32)
-               basic_machine=i686-pc
-               os=-mingw32
-               ;;
-       mingw32ce)
-               basic_machine=arm-unknown
-               os=-mingw32ce
-               ;;
        miniframe)
                basic_machine=m68000-convergent
                ;;
-       *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*)
+       *mint | mint[0-9]* | *MiNT | *MiNT[0-9]*)
                basic_machine=m68k-atari
-               os=-mint
+               os=mint
                ;;
        mips3*-*)
-               basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`
+               basic_machine=`echo "$basic_machine" | sed -e 's/mips3/mips64/'`
                ;;
        mips3*)
-               basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown
-               ;;
-       monitor)
-               basic_machine=m68k-rom68k
-               os=-coff
-               ;;
-       morphos)
-               basic_machine=powerpc-unknown
-               os=-morphos
-               ;;
-       moxiebox)
-               basic_machine=moxie-unknown
-               os=-moxiebox
-               ;;
-       msdos)
-               basic_machine=i386-pc
-               os=-msdos
+               basic_machine=`echo "$basic_machine" | sed -e 's/mips3/mips64/'`-unknown
                ;;
        ms1-*)
-               basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'`
-               ;;
-       msys)
-               basic_machine=i686-pc
-               os=-msys
-               ;;
-       mvs)
-               basic_machine=i370-ibm
-               os=-mvs
-               ;;
-       nacl)
-               basic_machine=le32-unknown
-               os=-nacl
-               ;;
-       ncr3000)
-               basic_machine=i486-ncr
-               os=-sysv4
-               ;;
-       netbsd386)
-               basic_machine=i386-unknown
-               os=-netbsd
-               ;;
-       netwinder)
-               basic_machine=armv4l-rebel
-               os=-linux
-               ;;
-       news | news700 | news800 | news900)
-               basic_machine=m68k-sony
-               os=-newsos
-               ;;
-       news1000)
-               basic_machine=m68030-sony
-               os=-newsos
+               basic_machine=`echo "$basic_machine" | sed -e 's/ms1-/mt-/'`
                ;;
        news-3600 | risc-news)
                basic_machine=mips-sony
-               os=-newsos
-               ;;
-       necv70)
-               basic_machine=v70-nec
-               os=-sysv
+               os=newsos
                ;;
        next | m*-next)
                basic_machine=m68k-next
                case $os in
-                   -nextstep* )
+                   nextstep* )
                        ;;
-                   -ns2*)
-                     os=-nextstep2
+                   ns2*)
+                     os=nextstep2
                        ;;
                    *)
-                     os=-nextstep3
+                     os=nextstep3
                        ;;
                esac
                ;;
-       nh3000)
-               basic_machine=m68k-harris
-               os=-cxux
-               ;;
-       nh[45]000)
-               basic_machine=m88k-harris
-               os=-cxux
-               ;;
-       nindy960)
-               basic_machine=i960-intel
-               os=-nindy
-               ;;
-       mon960)
-               basic_machine=i960-intel
-               os=-mon960
-               ;;
-       nonstopux)
-               basic_machine=mips-compaq
-               os=-nonstopux
-               ;;
        np1)
                basic_machine=np1-gould
                ;;
@@ -946,43 +1118,26 @@ case $basic_machine in
        nsr-tandem)
                basic_machine=nsr-tandem
                ;;
+       nsv-tandem)
+               basic_machine=nsv-tandem
+               ;;
        nsx-tandem)
                basic_machine=nsx-tandem
                ;;
        op50n-* | op60c-*)
                basic_machine=hppa1.1-oki
-               os=-proelf
+               os=proelf
                ;;
        openrisc | openrisc-*)
                basic_machine=or32-unknown
                ;;
-       os400)
-               basic_machine=powerpc-ibm
-               os=-os400
-               ;;
-       OSE68000 | ose68000)
-               basic_machine=m68000-ericsson
-               os=-ose
-               ;;
-       os68k)
-               basic_machine=m68k-none
-               os=-os68k
-               ;;
        pa-hitachi)
                basic_machine=hppa1.1-hitachi
-               os=-hiuxwe2
-               ;;
-       paragon)
-               basic_machine=i860-intel
-               os=-osf
-               ;;
-       parisc)
-               basic_machine=hppa-unknown
-               os=-linux
+               os=hiuxwe2
                ;;
        parisc-*)
-               basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'`
-               os=-linux
+               basic_machine=hppa-`echo "$basic_machine" | sed 's/^[^-]*-//'`
+               os=linux
                ;;
        pbd)
                basic_machine=sparc-tti
@@ -997,7 +1152,7 @@ case $basic_machine in
                basic_machine=i386-pc
                ;;
        pc98-*)
-               basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'`
+               basic_machine=i386-`echo "$basic_machine" | sed 's/^[^-]*-//'`
                ;;
        pentium | p5 | k5 | k6 | nexgen | viac3)
                basic_machine=i586-pc
@@ -1012,16 +1167,16 @@ case $basic_machine in
                basic_machine=i786-pc
                ;;
        pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*)
-               basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'`
+               basic_machine=i586-`echo "$basic_machine" | sed 's/^[^-]*-//'`
                ;;
        pentiumpro-* | p6-* | 6x86-* | athlon-*)
-               basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
+               basic_machine=i686-`echo "$basic_machine" | sed 's/^[^-]*-//'`
                ;;
        pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*)
-               basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
+               basic_machine=i686-`echo "$basic_machine" | sed 's/^[^-]*-//'`
                ;;
        pentium4-*)
-               basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'`
+               basic_machine=i786-`echo "$basic_machine" | sed 's/^[^-]*-//'`
                ;;
        pn)
                basic_machine=pn-gould
@@ -1031,43 +1186,27 @@ case $basic_machine in
        ppc | ppcbe)    basic_machine=powerpc-unknown
                ;;
        ppc-* | ppcbe-*)
-               basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
+               basic_machine=powerpc-`echo "$basic_machine" | sed 's/^[^-]*-//'`
                ;;
        ppcle | powerpclittle)
                basic_machine=powerpcle-unknown
                ;;
        ppcle-* | powerpclittle-*)
-               basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'`
+               basic_machine=powerpcle-`echo "$basic_machine" | sed 's/^[^-]*-//'`
                ;;
        ppc64)  basic_machine=powerpc64-unknown
                ;;
-       ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'`
+       ppc64-*) basic_machine=powerpc64-`echo "$basic_machine" | sed 's/^[^-]*-//'`
                ;;
        ppc64le | powerpc64little)
                basic_machine=powerpc64le-unknown
                ;;
        ppc64le-* | powerpc64little-*)
-               basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'`
+               basic_machine=powerpc64le-`echo "$basic_machine" | sed 's/^[^-]*-//'`
                ;;
        ps2)
                basic_machine=i386-ibm
                ;;
-       pw32)
-               basic_machine=i586-unknown
-               os=-pw32
-               ;;
-       rdos | rdos64)
-               basic_machine=x86_64-pc
-               os=-rdos
-               ;;
-       rdos32)
-               basic_machine=i386-pc
-               os=-rdos
-               ;;
-       rom68k)
-               basic_machine=m68k-rom68k
-               os=-coff
-               ;;
        rm[46]00)
                basic_machine=mips-siemens
                ;;
@@ -1080,10 +1219,6 @@ case $basic_machine in
        s390x | s390x-*)
                basic_machine=s390x-ibm
                ;;
-       sa29200)
-               basic_machine=a29k-amd
-               os=-udi
-               ;;
        sb1)
                basic_machine=mipsisa64sb1-unknown
                ;;
@@ -1092,32 +1227,17 @@ case $basic_machine in
                ;;
        sde)
                basic_machine=mipsisa32-sde
-               os=-elf
-               ;;
-       sei)
-               basic_machine=mips-sei
-               os=-seiux
+               os=${os:-elf}
                ;;
        sequent)
                basic_machine=i386-sequent
                ;;
-       sh)
-               basic_machine=sh-hitachi
-               os=-hms
-               ;;
        sh5el)
                basic_machine=sh5le-unknown
                ;;
-       sh64)
-               basic_machine=sh64-unknown
-               ;;
-       sparclite-wrs | simso-wrs)
+       simso-wrs)
                basic_machine=sparclite-wrs
-               os=-vxworks
-               ;;
-       sps7)
-               basic_machine=m68k-bull
-               os=-sysv2
+               os=vxworks
                ;;
        spur)
                basic_machine=spur-unknown
@@ -1125,44 +1245,12 @@ case $basic_machine in
        st2000)
                basic_machine=m68k-tandem
                ;;
-       stratus)
-               basic_machine=i860-stratus
-               os=-sysv4
-               ;;
        strongarm-* | thumb-*)
-               basic_machine=arm-`echo $basic_machine | sed 's/^[^-]*-//'`
+               basic_machine=arm-`echo "$basic_machine" | sed 's/^[^-]*-//'`
                ;;
        sun2)
                basic_machine=m68000-sun
                ;;
-       sun2os3)
-               basic_machine=m68000-sun
-               os=-sunos3
-               ;;
-       sun2os4)
-               basic_machine=m68000-sun
-               os=-sunos4
-               ;;
-       sun3os3)
-               basic_machine=m68k-sun
-               os=-sunos3
-               ;;
-       sun3os4)
-               basic_machine=m68k-sun
-               os=-sunos4
-               ;;
-       sun4os3)
-               basic_machine=sparc-sun
-               os=-sunos3
-               ;;
-       sun4os4)
-               basic_machine=sparc-sun
-               os=-sunos4
-               ;;
-       sun4sol2)
-               basic_machine=sparc-sun
-               os=-solaris2
-               ;;
        sun3 | sun3-*)
                basic_machine=m68k-sun
                ;;
@@ -1172,25 +1260,9 @@ case $basic_machine in
        sun386 | sun386i | roadrunner)
                basic_machine=i386-sun
                ;;
-       sv1)
-               basic_machine=sv1-cray
-               os=-unicos
-               ;;
-       symmetry)
-               basic_machine=i386-sequent
-               os=-dynix
-               ;;
-       t3e)
-               basic_machine=alphaev5-cray
-               os=-unicos
-               ;;
-       t90)
-               basic_machine=t90-cray
-               os=-unicos
-               ;;
        tile*)
                basic_machine=$basic_machine-unknown
-               os=-linux-gnu
+               os=linux-gnu
                ;;
        tx39)
                basic_machine=mipstx39-unknown
@@ -1198,91 +1270,32 @@ case $basic_machine in
        tx39el)
                basic_machine=mipstx39el-unknown
                ;;
-       toad1)
-               basic_machine=pdp10-xkl
-               os=-tops20
-               ;;
        tower | tower-32)
                basic_machine=m68k-ncr
                ;;
-       tpf)
-               basic_machine=s390x-ibm
-               os=-tpf
-               ;;
-       udi29k)
-               basic_machine=a29k-amd
-               os=-udi
-               ;;
-       ultra3)
-               basic_machine=a29k-nyu
-               os=-sym1
-               ;;
-       v810 | necv810)
-               basic_machine=v810-nec
-               os=-none
-               ;;
-       vaxv)
-               basic_machine=vax-dec
-               os=-sysv
-               ;;
-       vms)
-               basic_machine=vax-dec
-               os=-vms
-               ;;
        vpp*|vx|vx-*)
                basic_machine=f301-fujitsu
                ;;
-       vxworks960)
-               basic_machine=i960-wrs
-               os=-vxworks
-               ;;
-       vxworks68)
-               basic_machine=m68k-wrs
-               os=-vxworks
-               ;;
-       vxworks29k)
-               basic_machine=a29k-wrs
-               os=-vxworks
-               ;;
-       wasm32)
-               basic_machine=wasm32-unknown
-               ;;
        w65*)
                basic_machine=w65-wdc
-               os=-none
+               os=none
                ;;
        w89k-*)
                basic_machine=hppa1.1-winbond
-               os=-proelf
+               os=proelf
                ;;
        x64)
                basic_machine=x86_64-pc
                ;;
-       xbox)
-               basic_machine=i686-pc
-               os=-mingw32
-               ;;
        xps | xps100)
                basic_machine=xps100-honeywell
                ;;
        xscale-* | xscalee[bl]-*)
-               basic_machine=`echo $basic_machine | sed 's/^xscale/arm/'`
-               ;;
-       ymp)
-               basic_machine=ymp-cray
-               os=-unicos
-               ;;
-       z8k-*-coff)
-               basic_machine=z8k-unknown
-               os=-sim
-               ;;
-       z80-*-coff)
-               basic_machine=z80-unknown
-               os=-sim
+               basic_machine=`echo "$basic_machine" | sed 's/^xscale/arm/'`
                ;;
        none)
                basic_machine=none-none
-               os=-none
+               os=${os:-none}
                ;;
 
 # Here we handle the default manufacturer of certain CPU types.  It is in
@@ -1308,10 +1321,6 @@ case $basic_machine in
        vax)
                basic_machine=vax-dec
                ;;
-       pdp10)
-               # there are many clones, so DEC is not a safe bet
-               basic_machine=pdp10-unknown
-               ;;
        pdp11)
                basic_machine=pdp11-dec
                ;;
@@ -1321,9 +1330,6 @@ case $basic_machine in
        sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele)
                basic_machine=sh-unknown
                ;;
-       sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v)
-               basic_machine=sparc-sun
-               ;;
        cydra)
                basic_machine=cydra-cydrome
                ;;
@@ -1343,7 +1349,7 @@ case $basic_machine in
                # Make sure to match an already-canonicalized machine name.
                ;;
        *)
-               echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
+               echo Invalid configuration \`"$1"\': machine \`"$basic_machine"\' not recognized 1>&2
                exit 1
                ;;
 esac
@@ -1351,10 +1357,10 @@ esac
 # Here we canonicalize certain aliases for manufacturers.
 case $basic_machine in
        *-digital*)
-               basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'`
+               basic_machine=`echo "$basic_machine" | sed 's/digital.*/dec/'`
                ;;
        *-commodore*)
-               basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'`
+               basic_machine=`echo "$basic_machine" | sed 's/commodore.*/cbm/'`
                ;;
        *)
                ;;
@@ -1362,213 +1368,200 @@ esac
 
 # Decode manufacturer-specific aliases for certain operating systems.
 
-if [ x"$os" != x"" ]
+if [ x$os != x ]
 then
 case $os in
        # First match some system type aliases that might get confused
        # with valid system types.
-       # -solaris* is a basic system type, with this one exception.
-       -auroraux)
-               os=-auroraux
+       # solaris* is a basic system type, with this one exception.
+       auroraux)
+               os=auroraux
                ;;
-       -solaris1 | -solaris1.*)
+       solaris1 | solaris1.*)
                os=`echo $os | sed -e 's|solaris1|sunos4|'`
                ;;
-       -solaris)
-               os=-solaris2
-               ;;
-       -svr4*)
-               os=-sysv4
+       solaris)
+               os=solaris2
                ;;
-       -unixware*)
-               os=-sysv4.2uw
+       unixware*)
+               os=sysv4.2uw
                ;;
-       -gnu/linux*)
+       gnu/linux*)
                os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'`
                ;;
+       # es1800 is here to avoid being matched by es* (a different OS)
+       es1800*)
+               os=ose
+               ;;
        # Now accept the basic system types.
        # The portable systems comes first.
        # Each alternative MUST end in a * to match a version number.
-       # -sysv* is not here because it comes later, after sysvr4.
-       -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \
-             | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\
-             | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \
-             | -sym* | -kopensolaris* | -plan9* \
-             | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \
-             | -aos* | -aros* | -cloudabi* | -sortix* \
-             | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
-             | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
-             | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \
-             | -bitrig* | -openbsd* | -solidbsd* | -libertybsd* \
-             | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \
-             | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
-             | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
-             | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
-             | -chorusos* | -chorusrdb* | -cegcc* | -glidix* \
-             | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
-             | -midipix* | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \
-             | -linux-newlib* | -linux-musl* | -linux-uclibc* \
-             | -uxpv* | -beos* | -mpeix* | -udk* | -moxiebox* \
-             | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \
-             | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
-             | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \
-             | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
-             | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \
-             | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \
-             | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es* \
-             | -onefs* | -tirtos* | -phoenix* | -fuchsia* | -redox*)
+       # sysv* is not here because it comes later, after sysvr4.
+       gnu* | bsd* | mach* | minix* | genix* | ultrix* | irix* \
+            | *vms* | sco* | esix* | isc* | aix* | cnk* | sunos | sunos[34]*\
+            | hpux* | unos* | osf* | luna* | dgux* | auroraux* | solaris* \
+            | sym* | kopensolaris* | plan9* \
+            | amigaos* | amigados* | msdos* | newsos* | unicos* | aof* \
+            | aos* | aros* | cloudabi* | sortix* \
+            | nindy* | vxsim* | vxworks* | ebmon* | hms* | mvs* \
+            | clix* | riscos* | uniplus* | iris* | rtu* | xenix* \
+            | hiux* | knetbsd* | mirbsd* | netbsd* \
+            | bitrig* | openbsd* | solidbsd* | libertybsd* \
+            | ekkobsd* | kfreebsd* | freebsd* | riscix* | lynxos* \
+            | bosx* | nextstep* | cxux* | aout* | elf* | oabi* \
+            | ptx* | coff* | ecoff* | winnt* | domain* | vsta* \
+            | udi* | eabi* | lites* | ieee* | go32* | aux* | hcos* \
+            | chorusos* | chorusrdb* | cegcc* | glidix* \
+            | cygwin* | msys* | pe* | psos* | moss* | proelf* | rtems* \
+            | midipix* | mingw32* | mingw64* | linux-gnu* | linux-android* \
+            | linux-newlib* | linux-musl* | linux-uclibc* \
+            | uxpv* | beos* | mpeix* | udk* | moxiebox* \
+            | interix* | uwin* | mks* | rhapsody* | darwin* \
+            | openstep* | oskit* | conix* | pw32* | nonstopux* \
+            | storm-chaos* | tops10* | tenex* | tops20* | its* \
+            | os2* | vos* | palmos* | uclinux* | nucleus* \
+            | morphos* | superux* | rtmk* | windiss* \
+            | powermax* | dnix* | nx6 | nx7 | sei* | dragonfly* \
+            | skyos* | haiku* | rdos* | toppers* | drops* | es* \
+            | onefs* | tirtos* | phoenix* | fuchsia* | redox* | bme* \
+            | midnightbsd*)
        # Remember, each alternative MUST END IN *, to match a version number.
                ;;
-       -qnx*)
+       qnx*)
                case $basic_machine in
                    x86-* | i*86-*)
                        ;;
                    *)
-                       os=-nto$os
+                       os=nto-$os
                        ;;
                esac
                ;;
-       -nto-qnx*)
+       nto-qnx*)
                ;;
-       -nto*)
+       nto*)
                os=`echo $os | sed -e 's|nto|nto-qnx|'`
                ;;
-       -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \
-             | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \
-             | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*)
+       sim | xray | os68k* | v88r* \
+           | windows* | osx | abug | netware* | os9* \
+           | macos* | mpw* | magic* | mmixware* | mon960* | lnews*)
                ;;
-       -mac*)
-               os=`echo $os | sed -e 's|mac|macos|'`
+       mac*)
+               os=`echo "$os" | sed -e 's|mac|macos|'`
                ;;
-       -linux-dietlibc)
-               os=-linux-dietlibc
+       linux-dietlibc)
+               os=linux-dietlibc
                ;;
-       -linux*)
+       linux*)
                os=`echo $os | sed -e 's|linux|linux-gnu|'`
                ;;
-       -sunos5*)
-               os=`echo $os | sed -e 's|sunos5|solaris2|'`
-               ;;
-       -sunos6*)
-               os=`echo $os | sed -e 's|sunos6|solaris3|'`
+       sunos5*)
+               os=`echo "$os" | sed -e 's|sunos5|solaris2|'`
                ;;
-       -opened*)
-               os=-openedition
+       sunos6*)
+               os=`echo "$os" | sed -e 's|sunos6|solaris3|'`
                ;;
-       -os400*)
-               os=-os400
+       opened*)
+               os=openedition
                ;;
-       -wince*)
-               os=-wince
+       os400*)
+               os=os400
                ;;
-       -osfrose*)
-               os=-osfrose
+       wince*)
+               os=wince
                ;;
-       -osf*)
-               os=-osf
+       utek*)
+               os=bsd
                ;;
-       -utek*)
-               os=-bsd
+       dynix*)
+               os=bsd
                ;;
-       -dynix*)
-               os=-bsd
+       acis*)
+               os=aos
                ;;
-       -acis*)
-               os=-aos
+       atheos*)
+               os=atheos
                ;;
-       -atheos*)
-               os=-atheos
+       syllable*)
+               os=syllable
                ;;
-       -syllable*)
-               os=-syllable
-               ;;
-       -386bsd)
-               os=-bsd
+       386bsd)
+               os=bsd
                ;;
-       -ctix* | -uts*)
-               os=-sysv
+       ctix* | uts*)
+               os=sysv
                ;;
-       -nova*)
-               os=-rtmk-nova
+       nova*)
+               os=rtmk-nova
                ;;
-       -ns2)
-               os=-nextstep2
+       ns2)
+               os=nextstep2
                ;;
-       -nsk*)
-               os=-nsk
+       nsk*)
+               os=nsk
                ;;
        # Preserve the version number of sinix5.
-       -sinix5.*)
+       sinix5.*)
                os=`echo $os | sed -e 's|sinix|sysv|'`
                ;;
-       -sinix*)
-               os=-sysv4
+       sinix*)
+               os=sysv4
                ;;
-       -tpf*)
-               os=-tpf
+       tpf*)
+               os=tpf
                ;;
-       -triton*)
-               os=-sysv3
+       triton*)
+               os=sysv3
                ;;
-       -oss*)
-               os=-sysv3
+       oss*)
+               os=sysv3
                ;;
-       -svr4)
-               os=-sysv4
+       svr4*)
+               os=sysv4
                ;;
-       -svr3)
-               os=-sysv3
+       svr3)
+               os=sysv3
                ;;
-       -sysvr4)
-               os=-sysv4
+       sysvr4)
+               os=sysv4
                ;;
-       # This must come after -sysvr4.
-       -sysv*)
+       # This must come after sysvr4.
+       sysv*)
                ;;
-       -ose*)
-               os=-ose
+       ose*)
+               os=ose
                ;;
-       -es1800*)
-               os=-ose
+       *mint | mint[0-9]* | *MiNT | MiNT[0-9]*)
+               os=mint
                ;;
-       -xenix)
-               os=-xenix
+       zvmoe)
+               os=zvmoe
                ;;
-       -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
-               os=-mint
+       dicos*)
+               os=dicos
                ;;
-       -aros*)
-               os=-aros
-               ;;
-       -zvmoe)
-               os=-zvmoe
-               ;;
-       -dicos*)
-               os=-dicos
-               ;;
-       -pikeos*)
+       pikeos*)
                # Until real need of OS specific support for
                # particular features comes up, bare metal
                # configurations are quite functional.
                case $basic_machine in
                    arm*)
-                       os=-eabi
+                       os=eabi
                        ;;
                    *)
-                       os=-elf
+                       os=elf
                        ;;
                esac
                ;;
-       -nacl*)
+       nacl*)
+               ;;
+       ios)
                ;;
-       -ios)
+       none)
                ;;
-       -none)
+       *-eabi)
                ;;
        *)
-               # Get rid of the `-' at the beginning of $os.
-               os=`echo $os | sed 's/[^-]*-//'`
-               echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2
+               echo Invalid configuration \`"$1"\': system \`"$os"\' not recognized 1>&2
                exit 1
                ;;
 esac
@@ -1586,179 +1579,173 @@ else
 
 case $basic_machine in
        score-*)
-               os=-elf
+               os=elf
                ;;
        spu-*)
-               os=-elf
+               os=elf
                ;;
        *-acorn)
-               os=-riscix1.2
+               os=riscix1.2
                ;;
        arm*-rebel)
-               os=-linux
+               os=linux
                ;;
        arm*-semi)
-               os=-aout
+               os=aout
                ;;
        c4x-* | tic4x-*)
-               os=-coff
+               os=coff
                ;;
        c8051-*)
-               os=-elf
+               os=elf
                ;;
        hexagon-*)
-               os=-elf
+               os=elf
                ;;
        tic54x-*)
-               os=-coff
+               os=coff
                ;;
        tic55x-*)
-               os=-coff
+               os=coff
                ;;
        tic6x-*)
-               os=-coff
+               os=coff
                ;;
        # This must come before the *-dec entry.
        pdp10-*)
-               os=-tops20
+               os=tops20
                ;;
        pdp11-*)
-               os=-none
+               os=none
                ;;
        *-dec | vax-*)
-               os=-ultrix4.2
+               os=ultrix4.2
                ;;
        m68*-apollo)
-               os=-domain
+               os=domain
                ;;
        i386-sun)
-               os=-sunos4.0.2
+               os=sunos4.0.2
                ;;
        m68000-sun)
-               os=-sunos3
+               os=sunos3
                ;;
        m68*-cisco)
-               os=-aout
+               os=aout
                ;;
        mep-*)
-               os=-elf
+               os=elf
                ;;
        mips*-cisco)
-               os=-elf
+               os=elf
                ;;
        mips*-*)
-               os=-elf
+               os=elf
                ;;
        or32-*)
-               os=-coff
+               os=coff
                ;;
        *-tti)  # must be before sparc entry or we get the wrong os.
-               os=-sysv3
+               os=sysv3
                ;;
        sparc-* | *-sun)
-               os=-sunos4.1.1
+               os=sunos4.1.1
                ;;
        pru-*)
-               os=-elf
+               os=elf
                ;;
        *-be)
-               os=-beos
-               ;;
-       *-haiku)
-               os=-haiku
+               os=beos
                ;;
        *-ibm)
-               os=-aix
+               os=aix
                ;;
        *-knuth)
-               os=-mmixware
+               os=mmixware
                ;;
        *-wec)
-               os=-proelf
+               os=proelf
                ;;
        *-winbond)
-               os=-proelf
+               os=proelf
                ;;
        *-oki)
-               os=-proelf
+               os=proelf
                ;;
        *-hp)
-               os=-hpux
+               os=hpux
                ;;
        *-hitachi)
-               os=-hiux
+               os=hiux
                ;;
        i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent)
-               os=-sysv
+               os=sysv
                ;;
        *-cbm)
-               os=-amigaos
+               os=amigaos
                ;;
        *-dg)
-               os=-dgux
+               os=dgux
                ;;
        *-dolphin)
-               os=-sysv3
+               os=sysv3
                ;;
        m68k-ccur)
-               os=-rtu
+               os=rtu
                ;;
        m88k-omron*)
-               os=-luna
+               os=luna
                ;;
        *-next)
-               os=-nextstep
+               os=nextstep
                ;;
        *-sequent)
-               os=-ptx
+               os=ptx
                ;;
        *-crds)
-               os=-unos
+               os=unos
                ;;
        *-ns)
-               os=-genix
+               os=genix
                ;;
        i370-*)
-               os=-mvs
-               ;;
-       *-next)
-               os=-nextstep3
+               os=mvs
                ;;
        *-gould)
-               os=-sysv
+               os=sysv
                ;;
        *-highlevel)
-               os=-bsd
+               os=bsd
                ;;
        *-encore)
-               os=-bsd
+               os=bsd
                ;;
        *-sgi)
-               os=-irix
+               os=irix
                ;;
        *-siemens)
-               os=-sysv4
+               os=sysv4
                ;;
        *-masscomp)
-               os=-rtu
+               os=rtu
                ;;
        f30[01]-fujitsu | f700-fujitsu)
-               os=-uxpv
+               os=uxpv
                ;;
        *-rom68k)
-               os=-coff
+               os=coff
                ;;
        *-*bug)
-               os=-coff
+               os=coff
                ;;
        *-apple)
-               os=-macos
+               os=macos
                ;;
        *-atari*)
-               os=-mint
+               os=mint
                ;;
        *)
-               os=-none
+               os=none
                ;;
 esac
 fi
@@ -1769,79 +1756,79 @@ vendor=unknown
 case $basic_machine in
        *-unknown)
                case $os in
-                       -riscix*)
+                       riscix*)
                                vendor=acorn
                                ;;
-                       -sunos*)
+                       sunos*)
                                vendor=sun
                                ;;
-                       -cnk*|-aix*)
+                       cnk*|-aix*)
                                vendor=ibm
                                ;;
-                       -beos*)
+                       beos*)
                                vendor=be
                                ;;
-                       -hpux*)
+                       hpux*)
                                vendor=hp
                                ;;
-                       -mpeix*)
+                       mpeix*)
                                vendor=hp
                                ;;
-                       -hiux*)
+                       hiux*)
                                vendor=hitachi
                                ;;
-                       -unos*)
+                       unos*)
                                vendor=crds
                                ;;
-                       -dgux*)
+                       dgux*)
                                vendor=dg
                                ;;
-                       -luna*)
+                       luna*)
                                vendor=omron
                                ;;
-                       -genix*)
+                       genix*)
                                vendor=ns
                                ;;
-                       -mvs* | -opened*)
+                       mvs* | opened*)
                                vendor=ibm
                                ;;
-                       -os400*)
+                       os400*)
                                vendor=ibm
                                ;;
-                       -ptx*)
+                       ptx*)
                                vendor=sequent
                                ;;
-                       -tpf*)
+                       tpf*)
                                vendor=ibm
                                ;;
-                       -vxsim* | -vxworks* | -windiss*)
+                       vxsim* | vxworks* | windiss*)
                                vendor=wrs
                                ;;
-                       -aux*)
+                       aux*)
                                vendor=apple
                                ;;
-                       -hms*)
+                       hms*)
                                vendor=hitachi
                                ;;
-                       -mpw* | -macos*)
+                       mpw* | macos*)
                                vendor=apple
                                ;;
-                       -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
+                       *mint | mint[0-9]* | *MiNT | MiNT[0-9]*)
                                vendor=atari
                                ;;
-                       -vos*)
+                       vos*)
                                vendor=stratus
                                ;;
                esac
-               basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"`
+               basic_machine=`echo "$basic_machine" | sed "s/unknown/$vendor/"`
                ;;
 esac
 
-echo $basic_machine$os
+echo "$basic_machine-$os"
 exit
 
 # Local variables:
-# eval: (add-hook 'write-file-functions 'time-stamp)
+# eval: (add-hook 'before-save-hook 'time-stamp)
 # time-stamp-start: "timestamp='"
 # time-stamp-format: "%:y-%02m-%02d"
 # time-stamp-end: "'"
index 6ba50616a131bd715a0c18cf5c46ced4c9eb7ebd..3ab105f3252aa66a75d454da924a3379a748e986 100644 (file)
@@ -1992,7 +1992,7 @@ unescape (char *c)
        while (i < l && c[i]) {
                if (c[i] == '\a') {
                        if (c[i+1])
-                               strcpy(c + i, c + i + 1);       /* should be memmove */
+                               memmove (c + i, c + i + 1, l - i);
                        else {
                                c[i] = '\0';
                                break;
diff --git a/test.c b/test.c
index 3da8c7b360f3e4c34d78a9b45bcf489bc2f7042a..4cb3343cda15171b22d145ce68e9e88f44210a7c 100644 (file)
--- a/test.c
+++ b/test.c
@@ -622,9 +622,8 @@ unary_test (op, arg)
       return (minus_o_option_value (arg) == 1);
 
     case 'v':
-      v = find_variable (arg);
 #if defined (ARRAY_VARS)
-      if (v == 0 && valid_array_reference (arg, 0))
+      if (valid_array_reference (arg, 0))
        {
          char *t;
          int rtype, ret;
@@ -634,7 +633,8 @@ unary_test (op, arg)
            free (t);
          return ret;
        }
-     else if (v && invisible_p (v) == 0 && array_p (v))
+      v = find_variable (arg);
+      if (v && invisible_p (v) == 0 && array_p (v))
        {
          char *t;
          /* [[ -v foo ]] == [[ -v foo[0] ]] */
@@ -647,6 +647,8 @@ unary_test (op, arg)
          t = assoc_reference (assoc_cell (v), "0");
          return (t ? TRUE : FALSE);
        }
+#else
+      v = find_variable (arg);
 #endif
       return (v && invisible_p (v) == 0 && var_isset (v) ? TRUE : FALSE);
 
index aab4153d0d0e0c884c5d791c0ba50e79aaa4cb89..3c465248bac43166d4ae6d03530f06b76789a130 100644 (file)
@@ -621,3 +621,123 @@ arithmetic:
 6.declare -A a=([" "]="13" [0]="0" [1]="1" ["\" \""]="11" )
 7.declare -A a=([" "]="13" [0]="0" [1]="1" ["\" \""]="11" )
 8.declare -A a=([" "]="13" [0]="0" [1]="1" ["\" \""]="13" )
+argv[1] = <aa>
+argv[2] = <bb>
+argv[1] = <aa>
+argv[2] = <bb>
+argv[1] = <aa>
+argv[2] = <bb>
+argv[1] = <aa>
+argv[2] = <bb>
+argv[1] = <aa>
+argv[2] = <bb>
+argv[3] = <aa>
+argv[4] = <bb>
+argv[1] = <aa>
+argv[2] = <bb>
+argv[3] = <aa>
+argv[4] = <bb>
+argv[1] = <aa+bb>
+argv[2] = <aa+bb>
+argv[1] = <aa>
+argv[2] = <bb>
+argv[3] = <aa>
+argv[4] = <bb>
+argv[1] = <xa>
+argv[2] = <bb>
+argv[1] = <xa>
+argv[2] = <bb>
+argv[1] = <xa>
+argv[2] = <bb>
+argv[1] = <xa>
+argv[2] = <bb>
+argv[1] = <xa>
+argv[2] = <bb>
+argv[1] = <xa>
+argv[2] = <bb>
+argv[1] = <xa+bb>
+argv[1] = <xa+bb>
+argv[1] = <xa+bb>
+argv[2] = <xa+bb>
+argv[1] = <xa>
+argv[2] = <bb>
+argv[1] = <xa>
+argv[2] = <bb>
+argv[1] = <xa>
+argv[2] = <bb>
+argv[1] = <xa+bb>
+argv[1] = <xa>
+argv[2] = <bb>
+argv[1] = <xa>
+argv[2] = <bb>
+argv[1] = <xa>
+argv[2] = <bb>
+argv[1] = <xa>
+argv[2] = <bb>
+argv[1] = <xa>
+argv[2] = <bb>
+argv[1] = <xa>
+argv[2] = <bb>
+argv[1] = <xabb>
+argv[1] = <xabb>
+argv[1] = <xabb>
+argv[2] = <xabb>
+argv[1] = <xa>
+argv[2] = <bb>
+argv[1] = <xa>
+argv[2] = <bb>
+argv[1] = <xa>
+argv[2] = <bb>
+argv[1] = <xabb>
+argv[1] = <aa>
+argv[2] = <bb>
+argv[1] = <aa>
+argv[2] = <bb>
+argv[1] = <aa>
+argv[2] = <bb>
+argv[1] = <aa>
+argv[2] = <bb>
+argv[1] = <aa>
+argv[2] = <bb>
+argv[3] = <aa>
+argv[4] = <bb>
+argv[1] = <aa>
+argv[2] = <bb>
+argv[3] = <aa>
+argv[4] = <bb>
+argv[1] = <aa+bb>
+argv[2] = <aa+bb>
+argv[1] = <aa+bb>
+argv[2] = <aa+bb>
+argv[1] = <aa>
+argv[2] = <bb>
+argv[3] = <aa>
+argv[4] = <bb>
+argv[1] = <aa>
+argv[2] = <bb>
+argv[1] = <aa>
+argv[2] = <bb>
+argv[1] = <aa>
+argv[2] = <bb>
+argv[1] = <aa+bb>
+argv[1] = <a>
+argv[2] = <b>
+argv[1] = <a>
+argv[2] = <b>
+argv[1] = <a>
+argv[2] = <b>
+argv[3] = <a>
+argv[4] = <b>
+argv[1] = <a+b>
+argv[2] = <a+b>
+argv[1] = <a>
+argv[2] = <b>
+argv[3] = <a>
+argv[4] = <b>
+argv[1] = <a>
+argv[2] = <b>
+argv[1] = <a>
+argv[2] = <b>
+argv[1] = <a>
+argv[2] = <b>
+argv[1] = <a+b>
index e045d5c4aef42d25d9dc7157fa88a6b726339120..7fa1cdaf19324a8704027c51301a7de4194eea86 100644 (file)
@@ -404,3 +404,4 @@ ${THIS_SH} ./array22.sub
 ${THIS_SH} ./array23.sub
 ${THIS_SH} ./array24.sub
 ${THIS_SH} ./array25.sub
+${THIS_SH} ./array26.sub
diff --git a/tests/array26.sub b/tests/array26.sub
new file mode 100644 (file)
index 0000000..826774f
--- /dev/null
@@ -0,0 +1,118 @@
+# these should produce the same results
+a=(aa bb)
+set -- aa bb
+
+IFS=+
+
+recho ${a[@]} 
+recho ${a[@]:0} 
+
+recho $@
+recho ${@:1} 
+
+A=${a[*]} B=${a[*]:0}
+recho $* ${*:1}
+recho ${a[*]} ${a[*]:0}
+recho "$A" "$B"
+recho $A $B
+
+unset A B
+
+recho ${@/a/x} 
+recho ${a[@]/a/x} 
+recho "${@/a/x}"
+recho "${a[@]/a/x}"
+
+recho ${*/a/x} 
+recho ${a[*]/a/x} 
+recho "${*/a/x}"
+recho "${a[*]/a/x}"
+
+A=${*/a/x}
+B=${a[*]/a/x}
+
+recho "$A" "$B"
+
+unset A B
+declare -A A
+A[0]=aa
+A[1]=bb
+
+recho ${A[@]/a/x}
+recho "${A[@]/a/x}"
+recho ${A[*]/a/x}
+recho "${A[*]/a/x}"
+
+unset A
+IFS=
+
+recho ${@/a/x}
+recho ${a[@]/a/x}
+recho "${@/a/x}"
+recho "${a[@]/a/x}"
+
+recho ${*/a/x}
+recho ${a[*]/a/x}
+recho "${*/a/x}"
+recho "${a[*]/a/x}"
+
+A=${*/a/x}
+B=${a[*]/a/x}
+
+recho "$A" "$B"
+
+unset A B
+declare -A A
+A[0]=aa
+A[1]=bb
+
+recho ${A[@]/a/x}  
+recho "${A[@]/a/x}" 
+recho ${A[*]/a/x}   
+recho "${A[*]/a/x}"
+
+unset A
+
+IFS=+
+
+recho ${a[@]}
+recho ${a[@],,} 
+recho "${a[@]}"
+recho "${a[@],,}"
+
+A=${a[*]} B=${a[*],,}
+recho $* ${*,,}
+recho ${a[*]} ${a[*],,}
+recho "${a[*]}" "${a[*],,}"
+recho "$A" "$B"
+recho $A $B
+
+unset A B
+declare -A A
+A[0]=aa
+A[1]=bb
+
+recho ${A[@],,}
+recho "${A[@],,}"
+recho ${A[*],,}
+recho "${A[*],,}"
+
+unset A
+
+recho ${a[@]#?}
+recho ${@#?}
+
+A=${a[*]#?} B=${a[*]#?}
+recho ${*#?} ${a[*]#?}
+recho "$A" "$B"
+recho $A $B
+
+unset A B
+declare -A A
+A[0]=aa
+A[1]=bb
+
+recho ${A[@]#?}  
+recho "${A[@]#?}"   
+recho ${A[*]#?}  
+recho "${A[*]#?}" 
index e10636b2d627306edc734b16c57a250b05f1972e..99143f006b0256b687fb0001707a2246eed1e3c7 100644 (file)
@@ -220,3 +220,12 @@ declare -A a=(["80's"]="Depeche Mode" )
 1+5
 declare -A a=(["\$(date >&2)"]="5" )
 declare -A myarray=([foo]="bleh" ["foo[bar"]="bleh" )
+./assoc10.sub: line 1: declare: a: cannot convert indexed to associative array
+f: declare -a a
+./assoc10.sub: line 4: declare: a: cannot convert associative to indexed array
+f: declare -A a
+
+f: declare -a a
+main: declare -- a="7"
+f: declare -A a
+main: declare -- a="42"
index 24ab08c02fa0c4428eda91e5a4d6a1729a1b1dfe..84326c9c66a634919522025786fdf0eae8b2089a 100644 (file)
@@ -217,3 +217,5 @@ ${THIS_SH} ./assoc8.sub
 
 # new shopt option to prevent multiple expansion of assoc array subscripts
 ${THIS_SH} ./assoc9.sub
+
+${THIS_SH} ./assoc10.sub
diff --git a/tests/assoc10.sub b/tests/assoc10.sub
new file mode 100644 (file)
index 0000000..9eef2ca
--- /dev/null
@@ -0,0 +1,17 @@
+f() { declare -a a; declare -A a; echo -n "$FUNCNAME: " ; declare -p a; }
+f
+
+f() { declare -A a; declare -a a; echo -n "$FUNCNAME: " ; declare -p a; }
+f
+
+echo 
+
+f() { declare -a a; echo -n "$FUNCNAME: " ; declare -p a; }
+a=7
+f
+echo -n 'main: '; declare -p a
+
+f() { declare -A a; echo -n "$FUNCNAME: " ; declare -p a; }
+a=42
+f
+echo -n 'main: '; declare -p a
index bcf5dea68c9eda384960771c1b7dceb3a2847912..9dc592cb6db1646e512f7dc2b6a2de693e92a6f7 100644 (file)
@@ -203,3 +203,40 @@ d
 e
 ! !
 ./histexp4.sub: line 20: !': event not found
+/tmp/Step1
+echo /$(echo tmp)/Step1
+/tmp/Step1
+echo /<(echo tmp)/Step1 > /dev/null
+/tmp/Step1
+echo $(echo /tmp)/Step1
+/tmp/Step1
+echo <(echo /tmp)/Step1 > /dev/null
+/+(one|two|three)/Step1
+echo /+(one|two|three)/Step1
+/+(one|two|three)/Step1
+/*(tmp|dev|usr)/Step1
+echo /*(tmp|dev|usr)/Step1
+/*(tmp|dev|usr)/Step1
++(/one|/two|/three)/Step1
+echo +(/one|/two|/three)/Step1
++(/one|/two|/three)/Step1
+*(/tmp|/dev|/usr)/Step1
+echo *(/tmp|/dev|/usr)/Step1
+*(/tmp|/dev|/usr)/Step1
+one
+       echo echo one
+echo one
+echo one
+echo one
+    1  set -o histexpand
+    2  echo one
+    3  for f in a b c; do      echo echo one; done
+    4  history
+two
+       echo echo two
+echo two
+echo two
+echo two
+    1  echo two
+    2  for f in a b c; do      echo echo two; done
+    3  history
index 2901064f2972add956b0bbdf31b52bd9dbf5d080..5ae925e132b0dc63391a0ab1e28703d27599f378 100644 (file)
@@ -140,3 +140,5 @@ ${THIS_SH} ./histexp1.sub
 ${THIS_SH} ./histexp2.sub
 ${THIS_SH} ./histexp3.sub
 ${THIS_SH} ./histexp4.sub
+${THIS_SH} ./histexp5.sub
+${THIS_SH} ./histexp6.sub
diff --git a/tests/histexp5.sub b/tests/histexp5.sub
new file mode 100644 (file)
index 0000000..0fe62fe
--- /dev/null
@@ -0,0 +1,28 @@
+set -o history
+set -o histexpand
+
+# command and process substitutions should be tokenized as a single word
+echo /$(echo tmp)/Step1
+echo !:*
+echo /<(echo tmp)/Step1 >/dev/null
+echo !:*
+
+# same tests at the beginning of a word
+echo $(echo /tmp)/Step1
+echo !:*
+echo <(echo /tmp)/Step1 >/dev/null
+echo !:*
+
+# so should shell extended glob patterns
+shopt -s extglob
+
+echo /+(one|two|three)/Step1
+echo !:*
+echo /*(tmp|dev|usr)/Step1
+echo !:*
+
+# same tests at the beginning of a word
+echo +(/one|/two|/three)/Step1
+echo !:*
+echo *(/tmp|/dev|/usr)/Step1
+echo !:*
diff --git a/tests/histexp6.sub b/tests/histexp6.sub
new file mode 100644 (file)
index 0000000..00610b0
--- /dev/null
@@ -0,0 +1,24 @@
+unset HISTIGNORE
+HISTFILE=$TMPDIR/bashhist-$$
+
+set -o history
+set -o histexpand
+
+echo one
+
+for f in a b c; do
+       echo !!
+done
+
+history
+history -c
+
+echo two
+for f in a b c; do
+       echo !-1
+done
+
+history
+
+set +o history
+rm -f $HISTFILE
index 006318e59e22b9288f2a0059530f62fe63551012..7da99192dec7ee2defa09ea0487bba4821e480b3 100644 (file)
@@ -50,7 +50,8 @@ Passed all 1378 Unicode tests
 0000003
 0000000 101 040 302 243 040 305 222 012
 0000010
-./unicode3.sub: line 3: $'5\247@3\231+\306S8\237\242\352\263': command not found
-./unicode3.sub: line 5: cd: $'5\247@3\231+\306S8\237\242\352\263': No such file or directory
+./unicode3.sub: line 5: $'5\247@3\231+\306S8\237\242\352\263': command not found
+./unicode3.sub: line 7: cd: $'5\247@3\231+\306S8\237\242\352\263': No such file or directory
 $'5\247@3\231+\306S8\237\242\352\263'
 + : $'5\247@3\231+\306S8\237\242\352\263'
++ set +x
index 2ab62b094280bd3dc6d27f47c7981567efe17f65..698002ec8ffa016c8fd840c3b11413daaeb97d77 100644 (file)
@@ -440,3 +440,46 @@ declare -n foo="bar"
 declare -- bar
 declare -- foo="bar"
 declare -- bar
+declare -a v=([0]="Y")
+r: <Y>
+v: <Y>
+declare -n ref="var"
+declare -a var=([0]="X")
+declare -n ref="var"
+declare -a var=([0]="X")
+declare -n ref="var"
+./nameref20.sub: line 23: declare: var: not found
+outside:
+declare -a foo=([0]="X")
+declare -n ref="var"
+declare -a var=([0]="X")
+outside:
+./nameref20.sub: line 38: declare: ref: not found
+./nameref20.sub: line 38: declare: var: not found
+declare -n ref="var"
+declare -- var="X"
+outside:
+./nameref20.sub: line 45: declare: ref: not found
+./nameref20.sub: line 45: declare: var: not found
+declare -n ref="var"
+declare -a var=([0]="Y")
+declare -- ref="Y"
+declare -- var="X"
+ref=Y
+declare -- ref="Y"
+./nameref20.sub: line 61: declare: var: not found
+ref=Y
+declare -n ref="var"
+declare -A var=([2]="" )
+declare -n ref="var"
+declare -A var=([2]="" )
+declare -n ref="var"
+declare -a var=([2]="")
+declare -n ref="var"
+declare -a var=([2]="")
+declare -n ref="var"
+declare -ai var=([1]="0")
+declare -n ref="var"
+declare -ai var=([1]="0")
+declare -n ref="var"
+declare -- var="1"
diff --git a/tests/nameref20.sub b/tests/nameref20.sub
new file mode 100644 (file)
index 0000000..1e6faec
--- /dev/null
@@ -0,0 +1,71 @@
+# a collection of cases in bug reports after bash-5.0-alpha was released
+
+declare -n r=v[0]
+v=(X); r=Y
+declare -p ${!v*}
+printf "%s: <%s>\n" "r" "$r" "v" "$v"
+
+unset -n r
+unset -v v
+
+declare -n ref=var; declare -a ref
+ref=(X)
+declare -p ref var
+
+unset -n ref
+unset -v var
+
+f() { declare -n ref=var; declare ref=(X); declare -p ref var; };
+f
+
+unset -f f
+
+f() { declare -n ref=var; declare -g ref=(X); declare -p ref var; };
+
+declare -n ref=foo
+f
+echo outside:
+declare -p foo
+
+unset -n ref
+unset -v foo
+unset -f f
+
+f() { declare -n ref=var; declare -a ref; ref=(X); declare -p ref var; }
+
+f
+echo outside:
+declare -p ref var
+unset -f f
+
+f() { declare -n ref=var; declare ref; ref=X; declare -p ref var; }
+
+f
+echo outside:
+declare -p ref var
+
+unset -f f
+
+unset -n ref; unset var
+
+f()
+{
+       declare var=X; declare -n ref=var; declare ref=(Y)
+       declare -p ref var
+}
+f
+
+unset -f f
+
+declare -n ref=var
+f() { local ref=Y; declare -p ref var; local; }
+
+var=X
+f
+
+unset -v var
+f
+
+unset -n ref
+unset -f f
+
diff --git a/tests/nameref21.sub b/tests/nameref21.sub
new file mode 100644 (file)
index 0000000..a555a08
--- /dev/null
@@ -0,0 +1,56 @@
+# issues with local variables and local namerefs post-bash-4.4
+
+f()
+{
+       local -n ref=var
+       local -A ref=([1]=)
+#      declare -p ref var
+       ref=([2]=)
+       declare -p ref var
+}
+
+unset ref  var
+f
+
+unset ref; var=0
+f
+
+unset var
+unset -f f
+
+f()
+{      
+       local -n ref=var
+       local -a ref=([1]=)
+       ref=([2]=)
+       declare -p ref var
+}
+
+unset ref var
+f
+
+unset ref; var=0
+f
+
+unset var
+unset -f f
+
+f() { local -n ref=var; local -i ref=([1]=); declare -p ref var; }
+
+unset var
+f
+
+var=0
+f
+
+unset var
+unset -f f
+
+f() { local -n ref=var; local ref=1; declare -p ref var; }
+
+var=0
+f
+
+unset var
+unset -f f
+
index 26e16b9183d42d19a953da6a619c95419c1a19fa..45389ef39c39f4105ebe334820ed00705c6ab9b5 100644 (file)
@@ -119,3 +119,13 @@ argv[3] = <uv^Aw^Axy>
 argv[1] = <@2>
 argv[2] = <uv^Aw^Axy>
 argv[3] = <uv^Aw^Axy>
+argv[1] = <aa1>
+argv[2] = <uv^A^A>
+argv[1] = <aa2>
+argv[2] = <uv^A^A>
+argv[1] = <aa3>
+argv[2] = <uv^A^Awx>
+argv[3] = <uv^A^Awx>
+argv[1] = <aa4>
+argv[2] = <uv^A^Awx>
+argv[3] = <uv^A^Awx>
index 0970e77c1a03e1d343c5fa9ccc4198a1de4d8171..f47ab54eb9de9816d4d838d2d3d4c2d8effb80ab 100644 (file)
@@ -95,3 +95,12 @@ recho d2 "${1:2:2}"
 
 recho @1 ${@:1:2}
 recho @2 "${@:1:2}"
+
+declare -A assoc
+assoc=( [0]=$e [1]=$e )
+
+recho aa1 ${assoc:0:4}
+recho aa2 "${assoc:0:4}"
+
+recho aa3 ${assoc[@]:0:2}
+recho aa4 "${assoc[@]:0:2}"
index 1e81eadb8fa4b8caa3924105396c490f09bd130c..53a08e3b698f427d1f9ca0ff89a723b79dd99adb 100644 (file)
@@ -275,5 +275,9 @@ argv[2] = <b>
 [  abc    def  ghi  jkl /  abc    def  ghi  jkl ]
 [  abc    def  ghi  jkl ]
 [  abc    def  ghi  jkl /  abc    def  ghi  jkl /  abc    def  ghi  jkl ]
-./posixexp.tests: line 82: unexpected EOF while looking for matching `}'
-./posixexp.tests: line 83: syntax error: unexpected end of file
+5: notOK
+OK
+OK
+5: $'not\ttoo\nbad'
+./posixexp.tests: line 83: unexpected EOF while looking for matching `}'
+./posixexp.tests: line 84: syntax error: unexpected end of file
index 76dfede9ab2eb6a6ca0cec1367cb7257427219d3..3368711fb9c6cfd4ba632194117f349509d13ecb 100644 (file)
@@ -76,6 +76,7 @@ ${THIS_SH} ./posixexp3.sub
 ${THIS_SH} ./posixexp4.sub
 ${THIS_SH} ./posixexp5.sub
 ${THIS_SH} ./posixexp6.sub
+${THIS_SH} ./posixexp7.sub
 
 # this will be an error
 foo=bar
index cceeb00c4c97913dc69300d12c1dbb154abf30b2..e477bbb1e5da92e53b614e23b0956d8f8a32bfe4 100644 (file)
@@ -7,7 +7,7 @@ teststring=$(printf '\1\2\3\177')
 n=0
 
 trim_od() {
-       od -a | sed -n '1 { s/^0*[[:blank:]]*//; s/[[:blank:]]*$//; p; }'
+       od -a | sed -n '1 { s/^0*[[:blank:]]*//; s/[[:blank:]]*$//; p; }'
 }
 
 doTest() {
diff --git a/tests/posixexp7.sub b/tests/posixexp7.sub
new file mode 100644 (file)
index 0000000..2e230cf
--- /dev/null
@@ -0,0 +1,13 @@
+# test the effect of quotes on the WORD in the posix pattern removal operators
+# a here document does not behave the same as double quotes
+x=notOK
+cat <<EOF
+5: ${x#$'not'}
+EOF
+
+echo "${x#'not'}"
+echo "${x#$'not'}"
+
+cat <<EOF
+5: $'not\ttoo\nbad'
+EOF
index e4c25741bd7cd64de5980814985b7c1f3d698f11..e4eb9bb95c288481eac43e9526c62624b79022c7 100644 (file)
@@ -86,3 +86,37 @@ test'string
 a'b'c
 foo b   c baz
 foo 'bar baz
+argv[1] = <>
+argv[1] = <>
+argv[1] = <>
+argv[1] = <>
+argv[1] = <>
+argv[1] = <>
+argv[1] = <>
+argv[1] = <>
+argv[1] = <>
+argv[1] = <>
+=====
+argv[1] = <>
+argv[1] = <>
+argv[1] = <>
+argv[1] = <>
+argv[1] = <>
+argv[1] = <>
+argv[1] = <>
+=====
+argv[1] = <>
+argv[1] = <>
+argv[1] = <>
+argv[1] = <>
+argv[1] = <>
+argv[1] = <>
+argv[1] = <>
+=====
+argv[1] = <>
+argv[1] = <>
+argv[1] = <>
+argv[1] = <>
+argv[1] = <>
+argv[1] = <>
+argv[1] = <>
index 57ee7e58f9622220270c0d45978a9aa17a290daf..d7f13cd0c3005462724667e12a02c6a1d356f32f 100644 (file)
@@ -121,3 +121,4 @@ echo "${foo:-string \\}"
 echo ${foo:-string \\\}}
 
 ${THIS_SH} ./quote1.sub
+${THIS_SH} ./quote2.sub
diff --git a/tests/quote2.sub b/tests/quote2.sub
new file mode 100644 (file)
index 0000000..7deb4cf
--- /dev/null
@@ -0,0 +1,42 @@
+x=x
+e=
+
+recho ${x:+""}
+recho ${x:+ ""}
+recho ${x:+"" }
+recho ${x:+"$e"}
+recho ${x:+ "$e"}
+recho ${x:+"$e""$e"""}
+recho ${x:+"$e""$e"""}
+recho ${x:+"$e" "$e"""}
+recho ${x:+"$e""$e" ""}
+recho ${x:+ "$e""$e"""}
+
+echo =====
+recho ${x:+''}
+recho ${x:+ ''}
+recho ${x:+'' }
+recho ${x:+'' ''}
+
+recho ${x:+$e''}
+recho ${x:+''$e}
+
+recho ${x:+''$e $e''}
+
+echo =====
+recho ${x:+"$(:)"}
+recho ${x:+ "$(:)"}
+recho ${x:+"$(:)""$(:)"""}
+recho ${x:+"$(:)""$(:)"""}
+recho ${x:+"$(:)" "$(:)"""}
+recho ${x:+"$(:)""$(:)" ""}
+recho ${x:+ "$(:)""$(:)"""}
+
+echo =====
+recho ${x:+"`:`"}
+recho ${x:+ "`:`"}
+recho ${x:+"`:`""`:`"""}
+recho ${x:+"`:`""`:`"""}
+recho ${x:+"`:`" "`:`"""}
+recho ${x:+"`:`""`:`" ""}
+recho ${x:+ "`:`""`:`"""}
index ab737d494e6122f752e32f4f20bbf79e84ccc0ca..75ed45551c5f0b74c5e46fdaebe80f46a457a737 100644 (file)
@@ -44,7 +44,7 @@ kl
 ab
 cd
 cd
-./redir.tests: line 154: redir1.*: No such file or directory
+./redir.tests: line 157: redir1.*: No such file or directory
 # tests of ksh93-like dup-and-close redirection operators
 exec 9<$0
 
index 7b74ac53def7705ac83b5c20ab6f5bde5a28a98e..6af021948c9eeb4befb487e01dbd6dbd2ae1688e 100644 (file)
@@ -57,6 +57,9 @@ echo to c 1>&6
 cat $TMPDIR/bash-c
 echo "Point 5"
 
+# clean up before running scripts
+exec 4>&- 5>&- 6<&-
+
 rm -f $TMPDIR/bash-a $TMPDIR/bash-b $TMPDIR/bash-c
 
 #
index 5987a7f3e116d336d80001da45ff58b115a92a25..f147d70bf648898d190bf3f455ccd271cb5e8c4c 100644 (file)
@@ -1,2 +1,2 @@
-${THIS_SH} ./varenv.sh 2>&1 | grep -v '^expect' > ${BASH_TSTOUT}
+${THIS_SH} ./varenv.tests 2>&1 | grep -v '^expect' > ${BASH_TSTOUT}
 diff ${BASH_TSTOUT} varenv.right && rm -f ${BASH_TSTOUT}
index bb0ac6961295a3ab451a4d3a44cef45cf290e11e..64c718c8ddde154110c641d2b745ce3eae313292 100644 (file)
@@ -27,7 +27,7 @@ shopt -u extglob
 shopt -s extquote
 shopt -u failglob
 shopt -s force_fignore
-shopt -u globasciiranges
+shopt -s globasciiranges
 shopt -u globstar
 shopt -u gnu_errfmt
 shopt -u histappend
@@ -63,6 +63,7 @@ shopt -s complete_fullquote
 shopt -s expand_aliases
 shopt -s extquote
 shopt -s force_fignore
+shopt -s globasciiranges
 shopt -s hostcomplete
 shopt -s interactive_comments
 shopt -s progcomp
@@ -89,7 +90,6 @@ shopt -u execfail
 shopt -u extdebug
 shopt -u extglob
 shopt -u failglob
-shopt -u globasciiranges
 shopt -u globstar
 shopt -u gnu_errfmt
 shopt -u histappend
@@ -130,7 +130,6 @@ execfail            off
 extdebug               off
 extglob                off
 failglob               off
-globasciiranges        off
 globstar               off
 gnu_errfmt             off
 histappend             off
index b958ab71c2e7bd73f2e118239c2280e508e8d8cb..07ad8215fc5639ec175a8c00d0344fbf96d294d3 100644 (file)
@@ -9,5 +9,5 @@ _intl_normalize_spaces()
 # avoid whitespace differences in wc implementations
 _cut_leading_spaces()
 {
-       sed -e 's/^[[:space:]]*//g'
+       sed -e 's/^[    ]*//g'
 }
index b39f1d3ca58c48cffa5c3ef3c97ca5fd58e80ce7..cb1b8732880ae76e4cf2886add410e94c38aa695 100644 (file)
@@ -1,4 +1,6 @@
 export LANG=en_US.UTF-8        # make sure
+
+cd $TMPDIR     # try to avoid NFS artifacts
 payload=$'\065\247\100\063\231\053\306\123\070\237\242\352\263'
 "$payload"
 
@@ -6,4 +8,5 @@ cd "$payload"
 printf %q "$payload"
 echo
 
-set -x ; : "$payload"
+set -x ; : "$payload" ; set +x
+cd $OLDPWD
index 7ca5f661244f433c7ffd11c52ddbded647c51539..4e8c0d167ac862d24898f4c3407209830ccfe729 100644 (file)
@@ -145,8 +145,68 @@ outside:
 declare -x foo="abc"
 inside: declare -x var="value"
 outside: declare -- var="one"
+inside: declare -x var="value"
+outside: declare -x var="value"
 inside: declare -- var="local"
 outside: declare -x var="global"
+foo=<unset> environment foo=
+foo=foo environment foo=foo
+foo=foo environment foo=foo
+./varenv13.sub: line 3: `var[0]': not a valid identifier
+./varenv13.sub: line 3: `var[@]': not a valid identifier
+./varenv13.sub: line 1: declare: var: not found
+./varenv13.sub: line 12: var[@]: bad array subscript
+declare -A var=([0]="X" )
+help
+./varenv13.sub: line 21: `var[0]': not a valid identifier
+1
+./varenv14.sub: line 6: warning: var: cannot inherit value from incompatible type
+declare -a var=([0]="X")
+./varenv14.sub: line 9: warning: var: cannot inherit value from incompatible type
+declare -a var=([0]="Y")
+./varenv14.sub: line 10: warning: var: cannot inherit value from incompatible type
+declare -a var=([0]="Y")
+./varenv14.sub: line 11: warning: var: cannot inherit value from incompatible type
+declare -a var=()
+./varenv14.sub: line 12: warning: var: cannot inherit value from incompatible type
+declare -a var=()
+./varenv14.sub: line 18: f: var: cannot convert indexed to associative array
+declare -a a=([0]="X")
+declare -a s=([0]="X")
+declare -a a=([0]="X" [1]="Y")
+declare -a s=([0]="X" [1]="Y")
+declare -a a=([0]="XY")
+declare -a s=([0]="XY")
+f: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
+f1: after: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
+done: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100
+f3:1
+f3:2
+f3:3
+f3:4
+f3:5
+f3:6
+f3:7
+f3:8
+f3:9
+f3:10
+f3:11
+f3:12
+f3:13
+f3:14
+f3:15
+f3:16
+f3:17
+f3:18
+f3:19
+f3:20
+before source: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
+varenv15.in: before set: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
+varenv15.in: after set: a b c d e f g h i j k l m n o p q r s t u v w x y z
+after source 1: a b c d e f g h i j k l m n o p q r s t u v w x y z
+varenv15.in: before set: one two three four five six seven eight nine ten
+varenv15.in: after set: a b c d e f g h i j k l m n o p q r s t u v w x y z
+after source 2: a b c d e f g h i j k l m n o p q r s t u v w x y z
 a=z
 a=b
 a=z
diff --git a/tests/varenv.tests b/tests/varenv.tests
new file mode 100644 (file)
index 0000000..34b8559
--- /dev/null
@@ -0,0 +1,246 @@
+#
+# varenv.sh
+#
+# Test the behavior of the shell with respect to variable and environment
+# assignments
+#
+expect()
+{
+       echo expect "$@"
+}
+
+a=1
+b=2
+c=3
+d=4
+e=5
+f=6 g=7 h=8
+
+a=3 b=4 $CHMOD $MODE $FN
+
+# This should echo "3 4" according to Posix.2
+expect "3 4"
+echo $a $b
+
+set -k
+
+# Assignment statements made when no words are left affect the shell's
+# environment
+a=5 b=6 $CHMOD c=7 $MODE d=8 $FN e=9
+
+expect "5 6 7 8 9"
+echo $a $b $c $d $e
+
+$CHMOD f=7 $MODE g=8 $FN h=9
+expect "7 8 9"
+echo $f $g $h
+
+set +k
+
+# The temporary environment does not affect variable expansion, only the
+# environment given to the command
+
+export HOME=/usr/chet
+expect $HOME
+echo $HOME
+
+expect $HOME
+HOME=/a/b/c /bin/echo $HOME
+
+expect $HOME
+echo $HOME
+
+# This should echo /a/b/c
+expect /a/b/c
+HOME=/a/b/c printenv HOME
+
+set -k
+
+# This should echo $HOME 9, NOT /a/b/c 9
+
+expect "$HOME"
+HOME=/a/b/c /bin/echo $HOME c=9
+expect "$HOME 7"
+echo $HOME $c
+
+# I claim the next two echo calls should give identical output.
+# ksh agrees, the System V.3 sh does not
+
+expect "/a/b/c 9 /a/b/c"
+HOME=/a/b/c $ECHO a=$HOME c=9
+echo $HOME $c $a
+
+expect "/a/b/c 9 /a/b/c"
+HOME=/a/b/c a=$HOME c=9
+echo $HOME $c $a
+set +k
+
+# How do assignment statements affect subsequent assignments on the same
+# line?
+expect "/a/b/c /a/b/c"
+HOME=/a/b/c a=$HOME
+echo $HOME $a
+
+# The system V.3 sh does this wrong; the last echo should output "1 1",
+# but the system V.3 sh has it output "2 2".  Posix.2 says the assignment
+# statements are processed left-to-right.  bash and ksh output the right
+# thing
+c=1
+d=2
+expect "1 2"
+echo $c $d
+d=$c c=$d
+expect "1 1"
+echo $c $d
+
+# just for completeness
+unset d c
+expect unset
+echo ${d-unset}
+
+# no output
+export a
+a=bcde
+export a
+/bin/true 2>/dev/null
+
+func()
+{
+       local YYZ
+
+       YYZ="song by rush"
+       echo $YYZ
+       echo $A
+}
+
+YYZ="toronto airport"
+A="AVAR"
+echo $YYZ
+echo $A
+A=BVAR func
+echo $YYZ
+echo $A
+
+export A
+# Make sure expansion doesn't use assignment statements preceding a builtin
+A=ZVAR echo $A
+
+XPATH=/bin:/usr/bin:/usr/local/bin:.
+func2()
+{
+       local z=yy
+       local -a avar=( ${XPATH//: } )
+       echo ${avar[@]}
+       local
+}
+
+avar=42
+echo $avar
+func2
+echo $avar
+
+# try to set an attribute for an unset variable; make sure it persists
+# when the variable is assigned a value
+declare -i ivar
+
+ivar=10
+
+declare -p ivar
+unset ivar
+
+# export an unset variable, make sure it is not suddenly set, but make
+# sure the export attribute persists when the variable is assigned a
+# value
+export ivar
+echo ${ivar-unset}
+
+ivar=42
+declare -p ivar
+
+# make sure set [-+]o ignoreeof and $IGNOREEOF are reflected
+unset IGNOREEOF
+set +o ignoreeof
+set -o ignoreeof
+if [ "$IGNOREEOF" -ne 10 ]; then
+       echo "./varenv.sh: set -o ignoreeof is not reflected in IGNOREEOF" >&2
+fi
+unset IGNOREEOF
+set +o ignoreeof
+
+# older versions of bash used to not reset RANDOM in subshells correctly
+[[ $RANDOM -eq $(echo $RANDOM) ]] && echo "RANDOM: problem with subshells"
+
+# make sure that shopt -o is reflected in $SHELLOPTS
+# first, get rid of things that might be set automatically via shell
+# variables
+set +o posix
+set +o ignoreeof
+set +o monitor
+echo $-
+echo ${SHELLOPTS}
+shopt -so physical
+echo $-
+echo ${SHELLOPTS}
+
+# and make sure it is readonly
+readonly -p | grep SHELLOPTS
+
+# This was an error in bash versions prior to bash-2.04.  The `set -a'
+# should cause the assignment statement that's an argument to typeset
+# to create an exported variable
+unset FOOFOO
+FOOFOO=bar
+set -a
+typeset FOOFOO=abcde
+
+printenv FOOFOO
+
+# test out export behavior of variable assignments preceding builtins and
+# functions
+$THIS_SH ./varenv1.sub
+
+# more tests; bugs in bash up to version 2.05a
+$THIS_SH ./varenv2.sub
+
+# more tests; bugs in bash IFS scoping up through version 4.2
+$THIS_SH ./varenv3.sub
+
+# scoping problems with declare -g through bash-4.2
+${THIS_SH} ./varenv4.sub
+
+# more scoping and declaration problems with -g and arrays through bash-4.2
+${THIS_SH} ./varenv5.sub
+
+# variable scoping in the presence of nameref
+${THIS_SH} ./varenv6.sub
+
+# variable declaration problems with arrays and readonly local variables
+${THIS_SH} ./varenv7.sub
+
+# variable visibility problems with process substitution subshells in
+# redirections
+${THIS_SH} ./varenv8.sub
+
+# make sure that builtins like readonly and export modify local array variables
+# if executed in shell functions, like they modify local scalar variables
+${THIS_SH} ./varenv9.sub
+
+# more tests of unset and local variables with dynamic scoping
+${THIS_SH} ./varenv10.sub
+
+# tests of compound assignments in function scope
+${THIS_SH} ./varenv11.sub
+
+# temporary environment variable propagation and scoping in posix mode
+${THIS_SH} ./varenv12.sub
+
+# temporary environment and invalid shell indentifier names
+${THIS_SH} ./varenv13.sub
+
+# localvar_inherit
+${THIS_SH} ./varenv14.sub
+
+${THIS_SH} ./varenv15.sub
+
+# make sure variable scoping is done right
+tt() { typeset a=b;echo a=$a; };a=z;echo a=$a;tt;echo a=$a
index 6aaf512b5b4465146e2b6d7180c68222b4acf35b..edba3c9469aee22829cb0e3fe6d3bc4b3a992ac9 100644 (file)
@@ -47,6 +47,28 @@ echo -n 'outside: ' ; declare -p var
 unset -v var
 unset -f func
 
+# this will probably change behavior; export shouldn't behave like this when
+# not in posix mode and the sequencing is probably wrong in posix mode. since
+# export is a special builtin, the variable assignment should modify the
+# global variable, leaving the local variable unchanged. all shells, including
+# bash, modify the local variable; bash is the only one that propagates the
+# value out to the calling environment. bash does that only when in posix
+# mode.
+
+func()
+{
+       local var=inside
+       var=value export var
+       echo -n 'inside: ' ; declare -p var
+}
+
+var=outside
+func
+echo -n 'outside: ' ; declare -p var
+
+unset -v var
+unset -f func
+
 func()
 {
        local var=local
@@ -60,3 +82,19 @@ echo -n 'outside: ' ; declare -p var
 
 unset -v var
 unset -f func
+
+# test whether or not temporary environment assignments are exported
+# in posix mode
+showfoo()
+{
+       printf %s "foo=${foo-<unset>}"
+       echo -n ' environment foo='
+       printenv foo || echo 
+}
+unset foo
+showfoo
+foo=foo showfoo
+showfoo
+
+unset -v foo
+unset -f showfoo
diff --git a/tests/varenv13.sub b/tests/varenv13.sub
new file mode 100644 (file)
index 0000000..0e6a42c
--- /dev/null
@@ -0,0 +1,23 @@
+f() { declare -p ${!var*} | grep ^var; declare -p var ; }
+
+var[0]=X var[@]=Y f
+
+unset -f f
+unset -v var
+
+typeset -A var
+
+f() { declare -p ${!var*}; }
+
+var[0]=X var[@]=Y
+f
+
+: ${THIS_SH:=./bash}
+env 'v[0]=help' ${THIS_SH} -c 'printenv "v[0]"'
+
+unset -v var
+
+f() { test -v 'var[0]'; echo $?; }
+var[0]=X f
+
+unset -v var
diff --git a/tests/varenv14.sub b/tests/varenv14.sub
new file mode 100644 (file)
index 0000000..52b20d8
--- /dev/null
@@ -0,0 +1,33 @@
+# testing framework for local variable inheritence
+
+shopt -s localvar_inherit
+declare -A var
+
+f() { declare var+=([0]=X); declare -p var; }
+f
+
+f() { declare var=([Y]=Y); declare -p var; }; f
+f() { declare var+=([Y]=Y); declare -p var; }; f
+f() { declare var+=(); declare -p var; }; f
+f() { declare var=(); declare -p var; }; f
+
+unset -f f
+unset -v var
+
+declare -a var=( [0]=12 )
+f() { declare -A var+=([0]=X); declare -p var; }
+f
+
+unset -f f
+unset a s
+
+a=(X) s=X
+
+f() { local -a a s; declare -p a s; }
+f
+
+f() { local a+=(Y) s+=(Y); declare -p a s; }
+f
+
+f() { local -a a+=Y s+=Y; declare -p a s; }
+f
diff --git a/tests/varenv15.in b/tests/varenv15.in
new file mode 100644 (file)
index 0000000..e635b12
--- /dev/null
@@ -0,0 +1,3 @@
+echo varenv15.in: before set: "$@"
+set -- a b c d e f g h i j k l m n o p q r s t u v w x y z
+echo varenv15.in: after set: "$@"
diff --git a/tests/varenv15.sub b/tests/varenv15.sub
new file mode 100644 (file)
index 0000000..52c8a94
--- /dev/null
@@ -0,0 +1,38 @@
+# check saving and restoring positional parameters around function calls
+
+f()
+{
+       echo $FUNCNAME: "$@"
+}
+
+f1()
+{
+       f {1..50}
+       echo $FUNCNAME: after: $@
+}
+
+set -- {1..100}
+
+f1 {1..20}
+echo done: $@
+
+f3()
+{
+       echo $FUNCNAME:$1
+       shift
+       if [ $# -le 0 ]; then
+               return
+       fi
+       f3 "$@"
+}
+
+f3 {1..20}
+
+# now let's try source with and without positional parameters
+
+set -- {1..20}
+echo before source: "$@"
+. ./varenv15.in
+echo after source 1: "$@"
+. ./varenv15.in one two three four five six seven eight nine ten
+echo after source 2: "$@"
index 79a900716e0431813cee453355b3da68a1b226ea..00872d6479db43e291e2a657dd418d090c7afc62 100644 (file)
@@ -110,6 +110,8 @@ VAR_CONTEXT *shell_variables = (VAR_CONTEXT *)NULL;
    the environment. */
 HASH_TABLE *shell_functions = (HASH_TABLE *)NULL;
 
+HASH_TABLE *invalid_env = (HASH_TABLE *)NULL;
+
 #if defined (DEBUGGER)
 /* The table of shell function definitions that the user defined or that
    came from the environment. */
@@ -229,7 +231,9 @@ static SHELL_VAR *get_dirstack __P((SHELL_VAR *));
 
 #if defined (ARRAY_VARS)
 static SHELL_VAR *get_groupset __P((SHELL_VAR *));
-
+#  if defined (DEBUGGER)
+static SHELL_VAR *get_bashargcv __P((SHELL_VAR *));
+#  endif
 static SHELL_VAR *build_hashcmd __P((SHELL_VAR *));
 static SHELL_VAR *get_hashcmd __P((SHELL_VAR *));
 static SHELL_VAR *assign_hashcmd __P((SHELL_VAR *,  char *, arrayind_t, char *));
@@ -245,6 +249,10 @@ static SHELL_VAR *init_funcname_var __P((void));
 
 static void initialize_dynamic_variables __P((void));
 
+static SHELL_VAR *bind_invalid_envvar __P((const char *, char *, int));
+
+static int var_sametype __P((SHELL_VAR *, SHELL_VAR *));
+
 static SHELL_VAR *hash_lookup __P((const char *, HASH_TABLE *));
 static SHELL_VAR *new_shell_variable __P((const char *));
 static SHELL_VAR *make_new_variable __P((const char *, HASH_TABLE *));
@@ -391,7 +399,7 @@ initialize_shell_variables (env, privmode)
            }
          else
            {
-             if (temp_var = bind_variable (name, string, 0))
+             if (temp_var = bind_invalid_envvar (name, string, 0))
                {
                  VSETATTR (temp_var, (att_exported | att_imported | att_invisible));
                  array_needs_making = 1;
@@ -432,17 +440,24 @@ initialize_shell_variables (env, privmode)
              if (temp_var)
                VUNSETATTR (temp_var, att_readonly);
            }
-         temp_var = bind_variable (name, string, 0);
-         if (temp_var)
+         if (legal_identifier (name))
            {
-             if (legal_identifier (name))
-               VSETATTR (temp_var, (att_exported | att_imported));
-             else
+             temp_var = bind_variable (name, string, 0);
+             if (temp_var)
+               {
+                 VSETATTR (temp_var, (att_exported | att_imported));
+                 if (ro)
+                   VSETATTR (temp_var, att_readonly);
+               }
+           }
+         else
+           {
+             temp_var = bind_invalid_envvar (name, string, 0);
+             if (temp_var)
                VSETATTR (temp_var, (att_exported | att_imported | att_invisible));
-             if (ro)
-               VSETATTR (temp_var, att_readonly);
-             array_needs_making = 1;
            }
+         if (temp_var)
+           array_needs_making = 1;
        }
 
       name[char_index] = '=';
@@ -1652,6 +1667,27 @@ get_groupset (self)
   return (self);
 }
 
+#  if defined (DEBUGGER)
+static SHELL_VAR *
+get_bashargcv (self)
+     SHELL_VAR *self;
+{
+  static int self_semaphore = 0;
+
+  /* Backwards compatibility: if we refer to BASH_ARGV or BASH_ARGC at the
+     top level without enabling debug mode, and we don't have an instance
+     of the variable set, initialize the arg arrays.
+     This will already have been done if debugging_mode != 0. */
+  if (self_semaphore == 0 && variable_context == 0 && debugging_mode == 0)     /* don't do it for shell functions */
+    {
+      self_semaphore = 1;
+      init_bash_argv ();
+      self_semaphore = 0;
+    }
+  return self;
+}
+#  endif
+
 static SHELL_VAR *
 build_hashcmd (self)
      SHELL_VAR *self;
@@ -1777,6 +1813,11 @@ assign_aliasvar (self, value, ind, key)
      arrayind_t ind;
      char *key;
 {
+  if (legal_alias_name (key, 0) == 0)
+    {
+       report_error (_("`%s': invalid alias name"), key);
+       return (self);
+    }
   add_alias (key, value);
   return (build_aliasvar (self));
 }
@@ -1877,8 +1918,8 @@ initialize_dynamic_variables ()
   v = init_dynamic_array_var ("GROUPS", get_groupset, null_array_assign, att_noassign);
 
 #  if defined (DEBUGGER)
-  v = init_dynamic_array_var ("BASH_ARGC", get_self, null_array_assign, att_noassign|att_nounset);
-  v = init_dynamic_array_var ("BASH_ARGV", get_self, null_array_assign, att_noassign|att_nounset);
+  v = init_dynamic_array_var ("BASH_ARGC", get_bashargcv, null_array_assign, att_noassign|att_nounset);
+  v = init_dynamic_array_var ("BASH_ARGV", get_bashargcv, null_array_assign, att_noassign|att_nounset);
 #  endif /* DEBUGGER */
   v = init_dynamic_array_var ("BASH_SOURCE", get_self, null_array_assign, att_noassign|att_nounset);
   v = init_dynamic_array_var ("BASH_LINENO", get_self, null_array_assign, att_noassign|att_nounset);
@@ -2226,6 +2267,36 @@ find_variable_nameref_for_assignment (name, flags)
   return (var);
 }
 
+/* If find_variable (name) returns NULL, check that it's not a nameref
+   referencing a variable that doesn't exist. If it is, return the new
+   name. If not, return the original name. Kind of like the previous
+   function, but dealing strictly with names. This takes assignment flags
+   so it can deal with the various assignment modes used by `declare'. */
+char *
+nameref_transform_name (name, flags)
+     char *name;
+     int flags;
+{
+  SHELL_VAR *v;
+  char *newname;
+
+  v = 0;
+  if (flags & ASS_MKLOCAL)
+    {
+      v = find_variable_last_nameref (name, 1);
+      /* If we're making local variables, only follow namerefs that point to
+        non-existant variables at the same variable context. */
+      if (v && v->context != variable_context)
+       v = 0;
+    }
+  else if (flags & ASS_MKGLOBAL)
+    v = (flags & ASS_CHKLOCAL) ? find_variable_last_nameref (name, 1)
+                              : find_global_variable_last_nameref (name, 1);
+  if (v && nameref_p (v) && valid_nameref_value (nameref_cell (v), 1))
+    return nameref_cell (v);
+  return name;
+}
+
 /* Find a variable, forcing a search of the temporary environment first */
 SHELL_VAR *
 find_variable_tempenv (name)
@@ -2438,6 +2509,42 @@ sh_get_env_value (v)
 /*                                                                 */
 /* **************************************************************** */
 
+static int
+var_sametype (v1, v2)
+     SHELL_VAR *v1;
+     SHELL_VAR *v2;
+{
+  if (v1 == 0 || v2 == 0)
+    return 0;
+#if defined (ARRAY_VARS)
+  else if (assoc_p (v1) && assoc_p (v2))
+    return 1;
+  else if (array_p (v1) && array_p (v2))
+    return 1;
+  else if (array_p (v1) || array_p (v2))
+    return 0;
+  else if (assoc_p (v1) || assoc_p (v2))
+    return 0;
+#endif
+  else
+    return 1;
+}
+
+int
+validate_inherited_value (var, type)
+     SHELL_VAR *var;
+     int type;
+{
+#if defined (ARRAY_VARS)
+  if (type == att_array && assoc_p (var))
+    return 0;
+  else if (type == att_assoc && array_p (var))
+    return 0;
+  else
+#endif
+  return 1;    /* should we run convert_var_to_array here or let the caller? */
+}
+
 /* Set NAME to VALUE if NAME has no value. */
 SHELL_VAR *
 set_if_not (name, value)
@@ -2672,13 +2779,31 @@ make_local_array_variable (name, assoc_ok)
   ARRAY *array;
 
   var = make_local_variable (name, 0); /* XXX for now */
+  /* If ASSOC_OK is non-zero, assume that we are ok with letting an assoc
+     variable return to the caller without converting it. The caller will
+     either flag an error or do the conversion itself. */
   if (var == 0 || array_p (var) || (assoc_ok && assoc_p (var)))
     return var;
 
-  array = array_create ();
+  /* Validate any value we inherited from a variable instance at a previous
+     scope and disard anything that's invalid. */
+  if (localvar_inherit && assoc_p (var))
+    {
+      internal_warning ("%s: cannot inherit value from incompatible type", name);
+      VUNSETATTR (var, att_assoc);
+      dispose_variable_value (var);
+      array = array_create ();
+      var_setarray (var, array);
+    }
+  else if (localvar_inherit)
+    var = convert_var_to_array (var);          /* XXX */
+  else
+    {
+      dispose_variable_value (var);
+      array = array_create ();
+      var_setarray (var, array);
+    }
 
-  dispose_variable_value (var);
-  var_setarray (var, array);
   VSETATTR (var, att_array);
   return var;
 }
@@ -2699,20 +2824,39 @@ make_new_assoc_variable (name)
 }
 
 SHELL_VAR *
-make_local_assoc_variable (name)
+make_local_assoc_variable (name, array_ok)
      char *name;
+     int array_ok;
 {
   SHELL_VAR *var;
   HASH_TABLE *hash;
 
   var = make_local_variable (name, 0); /* XXX for now */
-  if (var == 0 || assoc_p (var))
+  /* If ARRAY_OK is non-zero, assume that we are ok with letting an array
+     variable return to the caller without converting it. The caller will
+     either flag an error or do the conversion itself. */
+  if (var == 0 || assoc_p (var) || (array_ok && array_p (var)))
     return var;
 
-  dispose_variable_value (var);
-  hash = assoc_create (0);
+  /* Validate any value we inherited from a variable instance at a previous
+     scope and disard anything that's invalid. */
+  if (localvar_inherit && array_p (var))
+    {
+      internal_warning ("%s: cannot inherit value from incompatible type", name);
+      VUNSETATTR (var, att_array);
+      dispose_variable_value (var);
+      hash = assoc_create (0);
+      var_setassoc (var, hash);
+    }
+  else if (localvar_inherit)
+    var = convert_var_to_assoc (var);          /* XXX */
+  else
+    {
+      dispose_variable_value (var);
+      hash = assoc_create (0);
+      var_setassoc (var, hash);
+    }
 
-  var_setassoc (var, hash);
   VSETATTR (var, att_assoc);
   return var;
 }
@@ -2911,7 +3055,12 @@ bind_variable_internal (name, value, table, hflags, aflags)
     }
   else if (entry && nameref_p (entry))
     {
-      newval = nameref_cell (entry);
+      newval = nameref_cell (entry);   /* XXX - newval can't be NULL here */
+      if (valid_nameref_value (newval, 0) == 0)
+       {
+         sh_invalidid (newval);
+         return ((SHELL_VAR *)NULL);
+       }
 #if defined (ARRAY_VARS)
       /* declare -n foo=x[2] ; foo=bar */
       if (valid_array_reference (newval, 0))
@@ -3124,6 +3273,17 @@ bind_global_variable (name, value, flags)
   return (bind_variable_internal (name, value, global_variables->table, 0, flags));
 }
 
+static SHELL_VAR *
+bind_invalid_envvar (name, value, flags)
+     const char *name;
+     char *value;
+     int flags;
+{
+  if (invalid_env == 0)
+    invalid_env = hash_create (64);    /* XXX */
+  return (bind_variable_internal (name, value, invalid_env, HASH_NOSRCH, flags));
+}
+
 /* Make VAR, a simple shell variable, have value VALUE.  Once assigned a
    value, variables are no longer invisible.  This is a duplicate of part
    of the internals of bind_variable.  If the variable is exported, or
@@ -3374,6 +3534,12 @@ assign_in_env (word, flags)
          aflags |= ASS_APPEND;
        }
 
+      if (legal_identifier (name) == 0)
+       {
+         sh_invalidid (name);
+         return (0);
+       }
+  
       var = find_variable (name);
       if (var == 0)
        {
@@ -4741,7 +4907,7 @@ maybe_make_export_env ()
 {
   register char **temp_array;
   int new_size;
-  VAR_CONTEXT *tcxt;
+  VAR_CONTEXT *tcxt, *icxt;
 
   if (array_needs_making)
     {
@@ -4753,7 +4919,7 @@ maybe_make_export_env ()
         variables are not (yet) exported, this will always be big enough
         for the exported variables and functions. */
       new_size = n_shell_variables () + HASH_ENTRIES (shell_functions) + 1 +
-                HASH_ENTRIES (temporary_env);
+                HASH_ENTRIES (temporary_env) + HASH_ENTRIES (invalid_env);
       if (new_size > export_env_size)
        {
          export_env_size = new_size;
@@ -4774,11 +4940,23 @@ maybe_make_export_env ()
        }
       else
        tcxt = shell_variables;
+
+      if (invalid_env)
+       {
+         icxt = new_var_context ((char *)NULL, 0);
+         icxt->table = invalid_env;
+         icxt->down = tcxt;
+       }
+      else
+       icxt = tcxt;
       
-      temp_array = make_var_export_array (tcxt);
+      temp_array = make_var_export_array (icxt);
       if (temp_array)
        add_temp_array_to_env (temp_array, 0, 0);
 
+      if (icxt != tcxt)
+       free (icxt);
+
       if (tcxt != shell_variables)
        free (tcxt);
 
@@ -4893,13 +5071,14 @@ push_var_context (name, flags, tempvars)
 
   /* As of IEEE Std 1003.1-2017, assignment statements preceding shell
      functions no longer behave like assignment statements preceding
-     special builtins, and do not persist in the current shell environment. */
-  posix_func_behavior = posixly_correct;       /* placeholder for later */
+     special builtins, and do not persist in the current shell environment.
+     This is austin group interp #654, though nobody implements it yet. */
+  posix_func_behavior = posixly_correct;
 
   vc = new_var_context (name, flags);
   /* Posix interp 1009, temporary assignments preceding function calls modify
      the current environment *before* the command is executed. */
-  if (posix_func_behavior && tempvars == temporary_env)
+  if (posix_func_behavior && (flags & VC_FUNCENV) && tempvars == temporary_env)
     merge_temporary_env ();
   else if (tempvars)
     {
@@ -4923,24 +5102,25 @@ push_var_context (name, flags, tempvars)
           calls to the surrounding scope.
 
   It takes variables out of a temporary environment hash table. We take the
-  variable in data
+  variable in data.
 */
 static void
 push_func_var (data)
      PTR_T data;
 {
   SHELL_VAR *var, *v;
-  int posix_func_behavior;
+  int posix_var_behavior;
 
   var = (SHELL_VAR *)data;
   /* As of IEEE Std 1003.1-2017, assignment statements preceding shell
      functions no longer behave like assignment statements preceding
-     special builtins, and do not persist in the current shell environment. */
-  posix_func_behavior = posixly_correct;       /* placeholder for later */
+     special builtins, and do not persist in the current shell environment.
+     This is austin group interp #654, though nobody implements it yet. */
+  posix_var_behavior = posixly_correct;  
 
   if (local_p (var) && STREQ (var->name, "-"))
     set_current_options (value_cell (var));
-  else if (tempvar_p (var) && (posix_func_behavior || (var->attributes & att_propagate)))
+  else if (tempvar_p (var) && (posix_var_behavior || (var->attributes & att_propagate)))
     {
       /* Make sure we have a hash table to store the variable in while it is
         being propagated down to the global variables table.  Create one if
@@ -5110,10 +5290,64 @@ pop_scope (is_special)
 /*                                                                 */
 /* **************************************************************** */
 
-static WORD_LIST **dollar_arg_stack = (WORD_LIST **)NULL;
+struct saved_dollar_vars {
+  char **first_ten;
+  WORD_LIST *rest;
+};
+
+static struct saved_dollar_vars *dollar_arg_stack = (struct saved_dollar_vars *)NULL;
 static int dollar_arg_stack_slots;
 static int dollar_arg_stack_index;
 
+/* Functions to manipulate dollar_vars array. Need to keep these in sync with
+   whatever remember_args() does. */
+static char **
+save_dollar_vars ()
+{
+  char **ret;
+  int i;
+
+  ret = strvec_create (10);
+  for (i = 1; i < 10; i++)
+    {
+      ret[i] = dollar_vars[i];
+      dollar_vars[i] = (char *)NULL;
+    }
+  return ret;
+}
+
+static void
+restore_dollar_vars (args)
+     char **args;
+{
+  int i;
+
+  for (i = 1; i < 10; i++)
+    dollar_vars[i] = args[i];
+}
+
+static void
+free_dollar_vars ()
+{
+  int i;
+
+  for (i = 1; i < 10; i++)
+    {
+      FREE (dollar_vars[i]);
+      dollar_vars[i] = (char *)NULL;
+    }
+}
+
+static void
+free_saved_dollar_vars (args)
+     char **args;
+{
+  int i;
+
+  for (i = 1; i < 10; i++)
+    FREE (args[i]);
+}
+
 /* XXX - should always be followed by remember_args () */
 void
 push_context (name, is_subshell, tempvars)
@@ -5145,35 +5379,53 @@ push_dollar_vars ()
 {
   if (dollar_arg_stack_index + 2 > dollar_arg_stack_slots)
     {
-      dollar_arg_stack = (WORD_LIST **)
+      dollar_arg_stack = (struct saved_dollar_vars *)
        xrealloc (dollar_arg_stack, (dollar_arg_stack_slots += 10)
-                 * sizeof (WORD_LIST *));
+                 * sizeof (struct saved_dollar_vars));
     }
-  dollar_arg_stack[dollar_arg_stack_index++] = list_rest_of_args ();
-  dollar_arg_stack[dollar_arg_stack_index] = (WORD_LIST *)NULL;
+  
+  dollar_arg_stack[dollar_arg_stack_index].first_ten = save_dollar_vars ();
+  dollar_arg_stack[dollar_arg_stack_index++].rest = rest_of_args;
+  rest_of_args = (WORD_LIST *)NULL;
+  
+  dollar_arg_stack[dollar_arg_stack_index].first_ten = (char **)NULL;
+  dollar_arg_stack[dollar_arg_stack_index].rest = (WORD_LIST *)NULL;  
 }
 
 /* Restore the positional parameters from our stack. */
 void
 pop_dollar_vars ()
 {
-  if (!dollar_arg_stack || dollar_arg_stack_index == 0)
+  if (dollar_arg_stack == 0 || dollar_arg_stack_index == 0)
     return;
 
-  remember_args (dollar_arg_stack[--dollar_arg_stack_index], 1);
-  dispose_words (dollar_arg_stack[dollar_arg_stack_index]);
-  dollar_arg_stack[dollar_arg_stack_index] = (WORD_LIST *)NULL;
+  /* Do what remember_args (xxx, 1) would have done. */
+  free_dollar_vars ();
+  dispose_words (rest_of_args);
+  
+  rest_of_args = dollar_arg_stack[--dollar_arg_stack_index].rest;
+  restore_dollar_vars (dollar_arg_stack[dollar_arg_stack_index].first_ten);
+  free (dollar_arg_stack[dollar_arg_stack_index].first_ten);
+
+  dollar_arg_stack[dollar_arg_stack_index].first_ten = (char **)NULL;
+  dollar_arg_stack[dollar_arg_stack_index].rest = (WORD_LIST *)NULL;
+  
   set_dollar_vars_unchanged ();
+  invalidate_cached_quoted_dollar_at ();
 }
 
 void
 dispose_saved_dollar_vars ()
 {
-  if (!dollar_arg_stack || dollar_arg_stack_index == 0)
+  if (dollar_arg_stack == 0 || dollar_arg_stack_index == 0)
     return;
 
-  dispose_words (dollar_arg_stack[dollar_arg_stack_index]);
-  dollar_arg_stack[dollar_arg_stack_index] = (WORD_LIST *)NULL;
+  dispose_words (dollar_arg_stack[--dollar_arg_stack_index].rest);    
+  free_saved_dollar_vars (dollar_arg_stack[dollar_arg_stack_index].first_ten); 
+  free (dollar_arg_stack[dollar_arg_stack_index].first_ten);
+
+  dollar_arg_stack[dollar_arg_stack_index].first_ten = (char **)NULL;  
+  dollar_arg_stack[dollar_arg_stack_index].rest = (WORD_LIST *)NULL;
 }
 
 /* Initialize BASH_ARGV and BASH_ARGC after turning on extdebug after the
index bc1546d16f046f3934a7ea538ec473804ba02049..2f6e35468f7ebae890835c04d30866fab48bc021 100644 (file)
@@ -251,6 +251,9 @@ extern WORD_LIST *rest_of_args;
 extern pid_t dollar_dollar_pid;
 
 extern void initialize_shell_variables __P((char **, int));
+
+extern int validate_inherited_value __P((SHELL_VAR *, int));
+
 extern SHELL_VAR *set_if_not __P((char *, char *));
 
 extern void sh_set_lines_and_columns __P((int, int));
@@ -278,6 +281,7 @@ extern SHELL_VAR *find_shell_variable __P((const char *));
 extern SHELL_VAR *find_tempenv_variable __P((const char *));
 extern SHELL_VAR *find_variable_no_invisible __P((const char *));
 extern SHELL_VAR *find_variable_for_assignment __P((const char *));
+extern char *nameref_transform_name __P((char *, int));
 extern SHELL_VAR *copy_variable __P((SHELL_VAR *));
 extern SHELL_VAR *make_local_variable __P((const char *, int));
 extern SHELL_VAR *bind_variable __P((const char *, char *, int));
@@ -380,7 +384,7 @@ extern SHELL_VAR *make_new_array_variable __P((char *));
 extern SHELL_VAR *make_local_array_variable __P((char *, int));
 
 extern SHELL_VAR *make_new_assoc_variable __P((char *));
-extern SHELL_VAR *make_local_assoc_variable __P((char *));
+extern SHELL_VAR *make_local_assoc_variable __P((char *, int));
 
 extern void set_pipestatus_array __P((int *, int));
 extern ARRAY *save_pipestatus_array __P((void));
diff --git a/y.tab.c b/y.tab.c
index d894bf604dc5d53b7bc31f466640499c974f9b27..86419834043f7f371e5ac3771405cdf9e8261cc3 100644 (file)
--- a/y.tab.c
+++ b/y.tab.c
@@ -4703,20 +4703,21 @@ shell_getc (remove_quoted_newline)
        {
          char *expansions;
 #  if defined (BANG_HISTORY)
-         int old_hist;
-
          /* If the current delimiter is a single quote, we should not be
             performing history expansion, even if we're on a different
             line from the original single quote. */
-         old_hist = history_expansion_inhibited;
          if (current_delimiter (dstack) == '\'')
-           history_expansion_inhibited = 1;
+           history_quoting_state = '\'';
+         else if (current_delimiter (dstack) == '"')
+           history_quoting_state = '"';
+         else
+           history_quoting_state = 0;
 #  endif
          /* Calling with a third argument of 1 allows remember_on_history to
             determine whether or not the line is saved to the history list */
          expansions = pre_process_line (shell_input_line, 1, 1);
 #  if defined (BANG_HISTORY)
-         history_expansion_inhibited = old_hist;
+         history_quoting_state = 0;
 #  endif
          if (expansions != shell_input_line)
            {
@@ -5456,6 +5457,13 @@ reset_parser ()
   token_to_read = '\n';
 }
 
+void
+reset_readahead_token ()
+{
+  if (token_to_read == '\n')
+    token_to_read = 0;
+}
+
 /* Read the next token.  Command can be READ (normal operation) or
    RESET (to normalize state). */
 static int